summaryrefslogtreecommitdiff
path: root/gnu/packages/tex.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r--gnu/packages/tex.scm65
1 files changed, 65 insertions, 0 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 910be212ac..256fe7da90 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -3746,6 +3746,71 @@ loading fonts by their proper names instead of file names.")
(define-deprecated-package texlive-luatex-luaotfload texlive-luaotfload)
+;; FIXME: This package is a temporary workaround to provide ‘lualatex.fmt’ for
+;; the LuaTeX engine. It is needed because it was discovered too late in the
+;; core-updates-frozen cycle that texlive-latex-base only provides it for
+;; LuaHBTeX. See https://issues.guix.gnu.org/51252.
+(define-public texlive-latex-luatex
+ (package
+ (name "texlive-latex-luatex")
+ (version (number->string %texlive-revision))
+ (source #f)
+ (build-system gnu-build-system)
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 rdelim)
+ (ice-9 string-fun))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'unpack)
+ (delete 'bootstrap)
+ (delete 'configure)
+ (delete 'check)
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir "web2c")
+ (let ((fmtutil.cnf-in (open-file
+ (string-append
+ (assoc-ref inputs "texlive-kpathsea")
+ "/share/texmf-dist/web2c/fmtutil.cnf")
+ "r"))
+ (fmtutil.cnf-out (open-file "web2c/fmtutil.cnf" "w")))
+
+ ;; Copy ‘lualatex’ format lines to the new fmtutil.cnf, changing
+ ;; the engine from ‘luahbtex’ to ‘luatex’.
+ (do ((line "" (read-line fmtutil.cnf-in 'concat)))
+ ((eof-object? line))
+ (when (string-prefix? "lualatex" line)
+ (display (string-replace-substring line "luahbtex" "luatex")
+ fmtutil.cnf-out)))
+ (close-port fmtutil.cnf-out)
+ (close-port fmtutil.cnf-in)
+
+ (invoke "fmtutil" "--sys" "--all" "--fmtdir=web2c"
+ "--cnffile=web2c/fmtutil.cnf")
+
+ ;; Don't risk this file interfering with anything else.
+ (delete-file "web2c/fmtutil.cnf"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((web2c (string-append %output "/share/texmf-dist/web2c")))
+ (mkdir-p web2c)
+ (copy-recursively "web2c" web2c)))))))
+ (native-inputs
+ `(("texlive-bin" ,texlive-bin)
+ ("texlive-babel" ,texlive-babel)
+ ("texlive-cm" ,texlive-cm)
+ ("texlive-fonts-latex" ,texlive-fonts-latex)
+ ("texlive-kpathsea" ,texlive-kpathsea)
+ ("texlive-latex-base" ,texlive-latex-base)
+ ("texlive-lm" ,texlive-lm)
+ ("texlive-tex-ini-files" ,texlive-tex-ini-files)))
+ (home-page (package-home-page texlive-latex-base))
+ (synopsis "LuaLaTeX format files for LuaTeX")
+ (description "This package is necessary to use LaTeX with the LuaTeX engine.")
+ (license (package-license texlive-latex-base))))
+
(define-public texlive-latex-amsmath
(package
(name "texlive-latex-amsmath")