diff options
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r-- | gnu/packages/tex.scm | 1078 |
1 files changed, 629 insertions, 449 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 3c5f08196e..15eaabb985 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -324,6 +324,7 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use. #:configure-flags '("--disable-static" "--disable-native-texlive-build" + "--enable-shared" "--with-system-cairo" "--with-system-freetype2" "--with-system-gd" @@ -550,9 +551,9 @@ to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.") (define-public texlive-generic-tex-ini-files (deprecated-package "texlive-generic-tex-ini-files" texlive-tex-ini-files)) -(define-public texlive-metafont-base +(define-public texlive-metafont (package - (name "texlive-metafont-base") + (name "texlive-metafont") (version (number->string %texlive-revision)) (source (origin (method svn-fetch) @@ -588,11 +589,13 @@ to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (base (string-append out "/share/texmf-dist/web2c")) - (mf (string-append out "/share/texmf-dist/metafont/base"))) + (mf (string-append out "/share/texmf-dist/metafont/"))) (mkdir-p base) (mkdir-p mf) (install-file "build/mf.base" base) - (copy-recursively "base" mf) + (for-each (lambda (where) + (copy-recursively where (string-append mf where))) + (list "base" "misc" "config")) #t)))))) (native-inputs `(("texlive-bin" ,texlive-bin))) @@ -602,6 +605,9 @@ to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.") build fonts using the Metafont system.") (license license:knuth))) +(define-public texlive-metafont-base + (deprecated-package "texlive-metafont-base" texlive-metafont)) + (define-public texlive-fontinst (let ((template (simple-texlive-package "texlive-fontinst" @@ -733,7 +739,7 @@ documents.") `(modify-phases ,phases (replace 'build (lambda* (#:key inputs #:allow-other-keys) - (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + (let ((mf (assoc-ref inputs "texlive-metafont"))) ;; Tell mf where to find mf.base (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c")) ;; Tell mf where to look for source files @@ -777,7 +783,7 @@ documents.") #t))))))) (native-inputs `(("texlive-bin" ,texlive-bin) - ("texlive-metafont-base" ,texlive-metafont-base))) + ("texlive-metafont" ,texlive-metafont))) (home-page "https://www.ctan.org/pkg/cm") (synopsis "Computer Modern fonts for TeX") (description "This package provides the Computer Modern fonts by Donald @@ -853,73 +859,69 @@ Computers & Typesetting series.") (define-public texlive-fonts-lm (deprecated-package "texlive-fonts-lm" texlive-lm)) -(define-public texlive-fonts-knuth-lib - (package - (name "texlive-fonts-knuth-lib") - (version (number->string %texlive-revision)) - (source (origin - (method svn-fetch) - (uri (svn-reference - (url (string-append "svn://www.tug.org/texlive/tags/" - %texlive-tag "/Master/texmf-dist/" - "/fonts/source/public/knuth-lib")) - (revision %texlive-revision))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0in9aqyi8jkyf9d16z0li50z5fpwj1iwgwm83gmvwqcf7chfs04y")))) - (build-system gnu-build-system) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-26)) - #:tests? #f ; no tests - #:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda* (#:key inputs #:allow-other-keys) - (let ((mf (assoc-ref inputs "texlive-metafont-base"))) - ;; Tell mf where to find mf.base - (setenv "MFBASES" - (string-append mf "/share/texmf-dist/web2c")) - ;; Tell mf where to look for source files - (setenv "MFINPUTS" - (string-append (getcwd) ":" - mf "/share/texmf-dist/metafont/base"))) - (mkdir "build") - (for-each (lambda (font) - (format #t "building font ~a\n" font) - (invoke "mf" "-progname=mf" - "-output-directory=build" - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "batchmode; " - "input " font))) - (find-files "." "(manfnt|logo.+)\\.mf$")) - #t)) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (tfm (string-append - out "/share/texmf-dist/fonts/tfm/public/knuth-lib")) - (mf (string-append - out "/share/texmf-dist/fonts/source/public/knuth-lib"))) - (for-each (cut install-file <> tfm) - (find-files "build" "\\.*")) - (for-each (cut install-file <> mf) - (find-files "." "\\.mf")) - #t)))))) - (native-inputs - `(("texlive-bin" ,texlive-bin) - ("texlive-metafont-base" ,texlive-metafont-base))) - (home-page "https://www.ctan.org/pkg/knuth-lib") - (synopsis "Small library of METAFONT sources") - (description "This is a collection of core TeX and METAFONT macro files +(define-public texlive-knuth-lib + (let ((template (simple-texlive-package + "texlive-knuth-lib" + (list "/fonts/source/public/knuth-lib/" + "/tex/generic/knuth-lib/" + "/tex/plain/knuth-lib/") + (base32 + "0lizrhdr4pirhh4ry44znddksd7akkxli2i6sddm5rzqljiqdy3v") + #:trivial? #t))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:modules _ '()) + '((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26))) + ((#:phases phases '()) + `(modify-phases ,phases + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "fonts/source/public/knuth-lib" + (let ((mf (assoc-ref inputs "texlive-metafont"))) + ;; Tell mf where to find mf.base + (setenv "MFBASES" + (string-append mf "/share/texmf-dist/web2c")) + ;; Tell mf where to look for source files + (setenv "MFINPUTS" + (string-append (getcwd) ":" + mf "/share/texmf-dist/metafont/base"))) + (mkdir "build") + (for-each (lambda (font) + (format #t "building font ~a\n" font) + (invoke "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "batchmode; " + "input " font))) + (find-files "." "(manfnt|logo.+)\\.mf$"))) + #t)) + (add-after 'install 'install-fonts + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion "fonts/source/public/knuth-lib" + (let* ((out (assoc-ref outputs "out")) + (tfm (string-append + out "/share/texmf-dist/fonts/tfm/public/knuth-lib"))) + (for-each (cut install-file <> tfm) + (find-files "build" "\\.tfm")) + #t)))))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-metafont" ,texlive-metafont))) + (home-page "https://www.ctan.org/pkg/knuth-lib") + (synopsis "Small library of METAFONT sources") + (description "This is a collection of core TeX and METAFONT macro files from Donald Knuth, including the plain format, plain base, and the MF logo fonts.") - (license license:knuth))) + (license license:knuth)))) + +(define-public texlive-fonts-knuth-lib + (deprecated-package "texlive-fonts-knuth-lib" texlive-knuth-lib)) (define-public texlive-fonts-latex (package @@ -948,7 +950,7 @@ fonts.") (delete 'configure) (replace 'build (lambda* (#:key inputs #:allow-other-keys) - (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + (let ((mf (assoc-ref inputs "texlive-metafont"))) ;; Tell mf where to find mf.base (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c")) ;; Tell mf where to look for source files @@ -987,7 +989,7 @@ fonts.") #t)))))) (native-inputs `(("texlive-bin" ,texlive-bin) - ("texlive-metafont-base" ,texlive-metafont-base) + ("texlive-metafont" ,texlive-metafont) ("texlive-cm" ,texlive-cm))) (home-page "https://www.ctan.org/pkg/latex-fonts") (synopsis "Collection of fonts used in LaTeX distributions") @@ -997,27 +999,81 @@ class), line and circle fonts (for use in the picture environment) and LaTeX symbol fonts.") (license license:lppl1.2+))) -(define-public texlive-latex-mflogo - (package - (name "texlive-latex-mflogo") - (version (number->string %texlive-revision)) - (source - (origin - (method svn-fetch) - (uri (texlive-ref "latex" "mflogo")) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "15i2ib6nvhf31g1b92c6njf7n0g29znlq7hbfp9ii7qabhcwwvrj")))) - (build-system texlive-build-system) - (arguments '(#:tex-directory "latex/mflogo")) - (home-page "http://www.ctan.org/pkg/mflogo") - (synopsis "LaTeX support for Metafont logo fonts") - (description - "This package provides LaTeX and font definition files to access the +(define-public texlive-mflogo + (let ((template (simple-texlive-package + "texlive-mflogo" + (list "/doc/latex/mflogo/" + "/source/latex/mflogo/" + "/fonts/source/public/mflogo/logosl8.mf") + (base32 + "1vb4mg7fh4k54g7nqwiw3qm4iir8whpfnspis76l4sddzar1amh7")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:modules _ '()) + '((guix build texlive-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26))) + ((#:tex-directory _ #t) + "latex/mflogo") + ((#:phases phases '()) + `(modify-phases ,phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "source/latex/mflogo") #t)) + (add-after 'build 'build-font-metrics + (lambda* (#:key inputs #:allow-other-keys) + (let ((root "../../..") + (mf (assoc-ref inputs "texlive-metafont")) + (kl (assoc-ref inputs "texlive-knuth-lib"))) + ;; Tell mf where to find mf.base + (setenv "MFBASES" + (string-append mf "/share/texmf-dist/web2c")) + ;; Tell mf where to look for source files + (setenv "MFINPUTS" + (string-append root ":" + mf "/share/texmf-dist/metafont/base:" + kl "/share/texmf-dist/fonts/source/public/knuth-lib:" + root "/fonts/source/public/mflogo/")) + (for-each (lambda (font) + (format #t "building font ~a\n" font) + (invoke "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "scrollmode; " + "input " (basename font)))) + (find-files (string-append root + "/fonts/source/public/mflogo/") + "\\.mf$"))) + #t)) + (add-before 'install 'install-fonts + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (tfm (string-append + out "/share/texmf-dist/fonts/tfm/public/mflogo"))) + (for-each (lambda (file) + (install-file file tfm) + (delete-file file)) + (find-files "build" "\\.tfm")) + #t))))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-metafont" ,texlive-metafont) + ("texlive-knuth-lib" ,texlive-knuth-lib))) + (home-page "http://www.ctan.org/pkg/mflogo") + (synopsis "LaTeX support for Metafont logo fonts") + (description + "This package provides LaTeX and font definition files to access the Knuthian mflogo fonts described in The Metafontbook and to typeset Metafont logos in LaTeX documents.") - (license license:lppl))) + (license license:lppl)))) + +(define-public texlive-latex-mflogo + (deprecated-package "texlive-latex-mflogo" texlive-mflogo)) (define-public texlive-mflogo-font (package @@ -1110,7 +1166,7 @@ Taco Hoekwater.") ;; convert the afm files instead. (let ((build (string-append (getcwd) "/build-fonts/euler"))) (mkdir build) - (with-directory-excursion "fonts/afm/public/amsfonts/" + (with-directory-excursion "fonts/afm/public/amsfonts/euler" (for-each (lambda (font) (format #t "converting afm font ~a\n" (basename font ".afm")) (invoke "afm2tfm" font @@ -1173,7 +1229,7 @@ Taco Hoekwater.") (native-inputs `(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base texlive-cm - texlive-metafont-base))))) + texlive-metafont))))) (home-page "https://www.ctan.org/pkg/amsfonts") (synopsis "TeX fonts from the American Mathematical Society") (description @@ -1237,7 +1293,7 @@ output encodings, and features generation of clean UTF-8 patterns.") ;; Build tfm font. (replace 'build (lambda* (#:key inputs #:allow-other-keys) - (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + (let ((mf (assoc-ref inputs "texlive-metafont"))) ;; Tell mf where to find mf.base (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c")) ;; Tell mf where to look for source files @@ -1263,7 +1319,7 @@ output encodings, and features generation of clean UTF-8 patterns.") #t)))))) (native-inputs `(("texlive-bin" ,texlive-bin) - ("texlive-metafont-base" ,texlive-metafont-base) + ("texlive-metafont" ,texlive-metafont) ("texlive-cm" ,texlive-cm))) (home-page "https://www.ctan.org/pkg/etex") (synopsis "Extended version of TeX") @@ -2147,7 +2203,7 @@ T1/EC and UTF-8 encodings.") (setenv "TFMFONTS" (string-append (assoc-ref inputs "texlive-cm") "/share/texmf-dist/fonts/tfm/public/cm:" - (assoc-ref inputs "texlive-fonts-knuth-lib") + (assoc-ref inputs "texlive-knuth-lib") "/share/texmf-dist/fonts/tfm/public/knuth-lib")) ;; ...and find all tex files in this environment. (setenv "TEXINPUTS" @@ -2201,7 +2257,7 @@ T1/EC and UTF-8 encodings.") ;; for a working "tex". ("texlive-tex-plain" ,texlive-tex-plain) ("texlive-cm" ,texlive-cm) - ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib) + ("texlive-knuth-lib" ,texlive-knuth-lib) ("texlive-hyphen-base" ,texlive-hyphen-base))) (home-page "https://ctan.org/pkg/hyph-utf8") (synopsis "Hyphenation patterns expressed in UTF-8") @@ -2427,7 +2483,7 @@ formats.") '(("texlive-etex" . "/etex") ("texlive-cm" . "/cm") ("texlive-fonts-latex" . "/latex-fonts") - ("texlive-fonts-knuth-lib" . "/knuth-lib"))) + ("texlive-knuth-lib" . "/knuth-lib"))) ":")) (let ((cwd (getcwd))) (setenv "TEXINPUTS" @@ -2470,7 +2526,10 @@ formats.") (make-file-writable "web2c/fmtutil.cnf") (substitute* "web2c/fmtutil.cnf" (((string-append "^(" (string-join disabled-formats "|") ")") m) - (string-append "#! " m)))) + (string-append "#! " m)) + (("translate-file=cp227") + (format #f "translate-file=~a/share/texmf-dist/web2c/cp227" + (assoc-ref inputs "texlive-kpathsea"))))) (invoke "fmtutil-sys" "--all" "--fmtdir=web2c" (string-append "--cnffile=web2c/fmtutil.cnf")) @@ -2506,7 +2565,7 @@ formats.") ("texlive-kpathsea" ,texlive-kpathsea) ("texlive-cm" ,texlive-cm) ("texlive-fonts-latex" ,texlive-fonts-latex) - ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib) + ("texlive-knuth-lib" ,texlive-knuth-lib) ("texlive-luatexconfig" ,(texlive-origin "texlive-luatexconfig" (number->string %texlive-revision) @@ -2783,29 +2842,35 @@ tables.") (define-public texlive-latex-xcolor (deprecated-package "texlive-latex-xcolor" texlive-xcolor)) -(define-public texlive-latex-hyperref - (package - (name "texlive-latex-hyperref") - (version "6.84a2") - ;; The sources in the TeX Live SVN repository do not contain hluatex.dtx, - ;; so we fetch the release from GitHub. - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ho-tex/hyperref/" - "archive/release-" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1d3rmjgzh0025a1dza55zb6nzzlgd1y9snwx45wq1c1vf42m79h2")))) - (build-system texlive-build-system) - (arguments '(#:tex-directory "latex/hyperref")) - (propagated-inputs - `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek) ; for ltxcmds.sty - ("texlive-latex-url" ,texlive-latex-url))) - (home-page "https://www.ctan.org/pkg/hyperref") - (synopsis "Extensive support for hypertext in LaTeX") - (description - "The @code{hyperref} package is used to handle cross-referencing commands +(define-public texlive-hyperref + (let ((template (simple-texlive-package + "texlive-hyperref" + (list "/doc/latex/hyperref/" + "/source/latex/hyperref/" + ;; These files are not generated from the sources + "/tex/latex/hyperref/hylatex.ltx" + "/tex/latex/hyperref/minitoc-hyper.sty" + "/tex/latex/hyperref/ntheorem-hyper.sty" + "/tex/latex/hyperref/xr-hyper.sty") + (base32 + "1074rnymyf7xj2ggajnijmy1p7avfjl216qyi86p38wg0qdf48zd")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) + "latex/hyperref") + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/hyperref") #t)))))) + (propagated-inputs + `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek) ; for ltxcmds.sty + ("texlive-latex-url" ,texlive-latex-url))) + (home-page "https://www.ctan.org/pkg/hyperref") + (synopsis "Extensive support for hypertext in LaTeX") + (description + "The @code{hyperref} package is used to handle cross-referencing commands in LaTeX to produce hypertext links in the document. The package provides backends for the @code{\\special} set defined for HyperTeX DVI processors; for embedded @code{pdfmark} commands for processing by Acrobat @@ -2813,7 +2878,10 @@ Distiller (@code{dvips} and Y&Y's @code{dvipsone}); for Y&Y's @code{dviwindo}; for PDF control within pdfTeX and @code{dvipdfm}; for TeX4ht; and for VTeX's pdf and HTML backends. The package is distributed with the @code{backref} and @code{nameref} packages, which make use of the facilities of @code{hyperref}.") - (license license:lppl1.3+))) + (license license:lppl1.3+)))) + +(define-public texlive-latex-hyperref + (deprecated-package "texlive-latex-hyperref" texlive-hyperref)) (define-public texlive-latex-oberdiek (package @@ -2996,58 +3064,84 @@ programming tools and kernel supĀport. Packages provided in this release are: @end enumerate\n") (license license:lppl1.3c+))) -(define-public texlive-latex-fontspec - (package - (name "texlive-latex-fontspec") - (version (number->string %texlive-revision)) - (source (origin - (method svn-fetch) - (uri (texlive-ref "latex" "fontspec")) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1223cw029n6zff7pqpwbsq1x8v3w63smczkmnybqxkw5h2za8gbz")))) - (build-system texlive-build-system) - (arguments - '(#:tex-directory "latex/fontspec" - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-default-fontspec.cfg - (lambda* (#:key outputs #:allow-other-keys) - (with-output-to-file - (string-append (assoc-ref outputs "out") - "/share/texmf-dist/tex/latex/fontspec/fontspec.cfg") - (lambda _ - (display "\ -%%% FONTSPEC.CFG %%% -% -% This configuration file sets up TeX Ligatures by default for all fonts loaded -% with `\\setmainfont` and `\\setsansfont`. -% -% In addition, `\\setmonofont` has default features to enforce \"monospace\" -% settings with regard to space stretchability and shrinkability. - -\\defaultfontfeatures - [\\rmfamily,\\sffamily] - {Ligatures=TeX} - -\\defaultfontfeatures - [\\ttfamily] - {WordSpace={1,0,0}, - HyphenChar=None, - PunctuationSpace=WordSpace} -"))) - #t))))) - (propagated-inputs - `(("texlive-latex-l3packages" ,texlive-latex-l3packages))) - (home-page "https://www.ctan.org/pkg/fontspec") - (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX") - (description - "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an +(define-public texlive-fontspec + (let ((template (simple-texlive-package + "texlive-fontspec" + (list "/doc/latex/fontspec/" + "/source/latex/fontspec/" + "/tex/latex/fontspec/fontspec.cfg") + (base32 + "1ksqhxlnqia4v85hbx0bw58cw77wfdhs33n1a1qmczd4b3zg4wp9")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) + "latex/fontspec") + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/fontspec/") #t)))))) + (propagated-inputs + `(("texlive-latex-l3packages" ,texlive-latex-l3packages))) + (home-page "https://www.ctan.org/pkg/fontspec") + (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX") + (description + "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an automatic and unified interface to feature-rich AAT and OpenType fonts through the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires the l3kernel and xparse bundles from the LaTeX 3 development team.") - (license license:lppl1.3+))) + (license license:lppl1.3+)))) + +(define-public texlive-latex-fontspec + (deprecated-package "texlive-latex-fontspec" texlive-fontspec)) + +(define-public texlive-l3build + (let ((template (simple-texlive-package + "texlive-l3build" + (list "/doc/latex/l3build/" + "/doc/man/man1/l3build.1" + "/scripts/l3build/" + "/tex/latex/l3build/" + ;; TODO: The dtx file builds only the documentation. + ;; We avoid this for a simpler package definition, + ;; but it may be possible to exclude + ;; /doc/latex/l3build and the man page in the future. + "/source/latex/l3build/") + (base32 + "009dccv5lq7bq13431l4ihmagxvb3j1pb5bhidsbiyxi3wvi8y97") + #:trivial? #t))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'patch-shebangs-again + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; XXX: Since the 'patch-shebangs' phase cannot change the + ;; original source files patch the shebangs again here. + (let* ((coreutils (assoc-ref inputs "coreutils")) + (texlive-bin (assoc-ref inputs "texlive-bin")) + (path (list (string-append coreutils "/bin") + (string-append texlive-bin "/bin")))) + (for-each (lambda (file) + (format #t "~a~%" file) + (patch-shebang file path)) + (find-files (assoc-ref outputs "out"))) + #t))))))) + (inputs + `(("coreutils" ,coreutils) + ("texlive-bin" ,texlive-bin))) + (home-page "https://github.com/latex3/luaotfload") + (synopsis "Testing and building system for LaTeX") + (description + "The l3build module is designed to support the development of +high-quality LaTeX code by providing: a unit testing system, automated +typesetting of code sources, and a reliable packaging system for CTAN +releases. The bundle consists of a Lua script to run the tasks and a +@code{.tex} file which provides the testing environment.") + (license license:lppl1.3c+)))) ;; The SVN directory contains little more than a dtx file that generates three ;; of the many lua files that should be installed as part of this package. @@ -3087,97 +3181,38 @@ this bundle for use independent of ConTeXt.") ;; GPL version 2 only (license license:gpl2))) -(define-public texlive-luatex-luaotfload - (package - (name "texlive-luatex-luaotfload") - (version "2.8-fix-2") - ;; The release tarball does not contain all source files. - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lualatex/luaotfload") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0l5l7iq3dxcxl65qaghcpjg27yd9iw1sxa8pnd7xlvlm09dhfdnf")))) - (build-system gnu-build-system) - (arguments - `(#:make-flags - (list (string-append "DESTDIR=" - (assoc-ref %outputs "out") - "/share/texmf-dist") - "all") - #:parallel-build? #f ; not supported - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "doc/Makefile" - (("rst2man") "rst2man.py") - ;; Don't build the PDF. This requires more of LaTeX. - (("\\$\\(DOCPDF\\)") "")) - - (substitute* "Makefile" - ;; We don't build the PDF, so don't attempt to install it. - (("cp \\$\\(RESOURCES\\) \\$\\(DOCPDF\\)") - "cp $(RESOURCES)") - (("= \\$\\(DOCPDF\\)") "= ") - ;; Fix name of fontloader file - (("^LOADER.*= \\$\\(BUILDDIR\\)/fontloader-\\$\\(shell date \\+%F\\).lua") - "LOADER = $(BUILDDIR)/fontloader.lua")) - - (mkdir "build") - - ;; Don't download this file. - (copy-file (assoc-ref inputs "glyphlist") - "build/glyphlist.txt") - - ;; Don't use git - (let ((notes - `((committer . "Philipp Gesang <phg@phi-gamma.net>") - (description . ,version) - (loader . "fontloader.lua") - (revision . "ad480924393fffa2896156e1a32c22f5c61120dd") - (timestamp . "2019-01-01 00:00:00 +0000")))) - (substitute* "scripts/mkstatus" - (("local notes.*=.*") - (string-append "local notes = {" - (string-join - (map (lambda (entry) - (format "[\"~a\"]=\"~a\"," - (symbol->string (car entry)) - (cdr entry))) - notes)) - "}")))) - #t))))) - (native-inputs - `(("zip" ,zip) - ("unzip" ,unzip) - ("graphviz" ,graphviz) - ("lualatex" ,(texlive-union (list texlive-luatex-lualibs - texlive-context-base))) - ("python-docutils" ,python-docutils) - ("glyphlist" - ,(origin - (method url-fetch) - (uri (string-append "https://raw.githubusercontent.com/adobe-type-tools/" - "agl-aglfn/b2a04cb906f9257cc06a2fe0ad4b3d663bc02136/" - "glyphlist.txt")) - (sha256 - (base32 "1s6svfw23rqzdvflv8frgd4xrwvrmsj8szwzqgcd39dp9rpjafjp")))))) - (propagated-inputs - `(("texlive-luatex-lualibs" ,texlive-luatex-lualibs))) - (home-page "https://github.com/lualatex/luaotfload") - (synopsis "OpenType font loader for LuaTeX") - (description - "Luaotfload is an adaptation of the ConTeXt font loading system for the +;; TODO: We should be able to build this from the sources on Github with +;; texlive-l3build, but I haven't been able to get it to work. +(define-public texlive-luaotfload + (let ((template (simple-texlive-package + "texlive-luaotfload" + (list "/doc/luatex/luaotfload/" + "/doc/man/man1/luaotfload-tool.1" + "/doc/man/man5/luaotfload.conf.5" + "/source/luatex/luaotfload/fontloader-reference-load-order.lua" + "/source/luatex/luaotfload/fontloader-reference-load-order.tex" + "/scripts/luaotfload/luaotfload-tool.lua" + "/tex/luatex/luaotfload/") + (base32 + "04xlcc9k56kf9460dzxifnxbv5bkv7kcp9ijiqi054miybw1pymr") + #:trivial? #t))) + (package + (inherit template) + (propagated-inputs + `(("texlive-luatex-lualibs" ,texlive-luatex-lualibs))) + (home-page "https://github.com/lualatex/luaotfload") + (synopsis "OpenType font loader for LuaTeX") + (description + "Luaotfload is an adaptation of the ConTeXt font loading system for the Plain and LaTeX formats. It allows OpenType fonts to be loaded with font features accessible using an extended font request syntax while providing compatibilitywith XeTeX. By indexing metadata in a database it facilitates loading fonts by their proper names instead of file names.") - ;; GPL version 2 only - (license license:gpl2))) + ;; GPL version 2 only + (license license:gpl2)))) + +(define-public texlive-luatex-luaotfload + (deprecated-package "texlive-luatex-luaotfload" texlive-luaotfload)) (define-public texlive-latex-amsmath (package @@ -3208,64 +3243,86 @@ mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar) definitions.") (license license:lppl1.3c+))) -(define-public texlive-latex-amscls - (package - (name "texlive-latex-amscls") - (version (number->string %texlive-revision)) - (source (origin - (method svn-fetch) - (uri (texlive-ref "latex" "amscls")) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0c2j9xh4qpi0x1vvcxdjxq6say0zhyr569fryi5cmhp8bclh4kca")))) - (build-system texlive-build-system) - (arguments - `(#:tex-directory "latex/amscls")) - (home-page "https://www.ctan.org/pkg/amscls") - (synopsis "AMS document classes for LaTeX") - (description - "This bundle contains three AMS classes: @code{amsartamsart} (for writing +(define-public texlive-amscls + (let ((template (simple-texlive-package + "texlive-amscls" + (list "/doc/latex/amscls/" + "/source/latex/amscls/" + "/bibtex/bst/amscls/") + (base32 + "1mv96i5372257zaciv06n1wwa7v09q0fa9pbq9kck826a0syidvs")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) + "latex/amscls") + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/amscls/") #t)))))) + (home-page "https://www.ctan.org/pkg/amscls") + (synopsis "AMS document classes for LaTeX") + (description + "This bundle contains three AMS classes: @code{amsartamsart} (for writing articles for the AMS), @code{amsbookamsbook} (for books) and @code{amsprocamsproc} (for proceedings), together with some supporting material. The material is made available as part of the AMS-LaTeX distribution.") - (license license:lppl1.3c+))) + (license license:lppl1.3c+)))) -(define-public texlive-latex-babel - (package - (name "texlive-latex-babel") - (version (number->string %texlive-revision)) - (source (origin - (method svn-fetch) - (uri (texlive-ref "latex" "babel")) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1rwqq841i1rxywymzwkw0cw2yhgvxwjx5mgygfasvypwrwll6f6s")))) - (build-system texlive-build-system) - (arguments - '(#:tex-directory "generic/babel" - #:phases - (modify-phases %standard-phases - ;; This package tries to produce babel.aux twice but refuses to - ;; overwrite the first one. - (add-before 'build 'fix-ins - (lambda _ - (substitute* "babel.ins" - (("askonceonly") "askforoverwritefalse")) - #t))))) - (home-page "https://www.ctan.org/pkg/babel") - (synopsis "Multilingual support for Plain TeX or LaTeX") - (description - "The package manages culturally-determined typographical (and other) +(define-public texlive-latex-amscls + (deprecated-package "texlive-latex-amscls" texlive-amscls)) + +(define-public texlive-babel + (let ((template (simple-texlive-package + "texlive-babel" + (list "/doc/latex/babel/" + "/source/latex/babel/" + "/makeindex/babel/") + (base32 + "07k9igpwa8sjxlmyxmcbffl8833qhrs34h70kgmakiix5jycznsd")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) + "generic/babel") + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/babel/") #t)) + ;; This package tries to produce babel.aux twice but refuses to + ;; overwrite the first one. + (add-before 'build 'fix-ins + (lambda _ + (substitute* "babel.ins" + (("askonceonly") "askforoverwritefalse")) + #t)) + (add-after 'install 'install-locales + (lambda* (#:key outputs #:allow-other-keys) + (let ((locale-directory + (string-append (assoc-ref outputs "out") + "/share/texmf-dist/tex/generic/babel/locale/"))) + (mkdir-p locale-directory) + (invoke "unzip" "locale.zip" "-d" + locale-directory)))))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "https://www.ctan.org/pkg/babel") + (synopsis "Multilingual support for Plain TeX or LaTeX") + (description + "The package manages culturally-determined typographical (and other) rules, and hyphenation patterns for a wide range of languages. A document may select a single language to be supported, or it may select several, in which case the document may switch from one language to another in a variety of ways. Babel uses contributed configuration files that provide the detail of what has to be done for each language. Users of XeTeX are advised to use the polyglossia package rather than Babel.") - (license license:lppl1.3+))) + (license license:lppl1.3+)))) + +(define-public texlive-latex-babel + (deprecated-package "texlive-latex-babel" texlive-babel)) (define-public texlive-generic-babel-english (package @@ -3335,30 +3392,129 @@ T2* and X2 encodings. These encodings cover (between them) pretty much every language that is written in a Cyrillic alphabet.") (license license:lppl1.3c+))) -(define-public texlive-latex-psnfss - (package - (name "texlive-latex-psnfss") - (version (number->string %texlive-revision)) - (source (origin - (method svn-fetch) - (uri (texlive-ref "latex" "psnfss")) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1920dcq8613yzprasbg80fh4fcjcidvvl54wkx438nimyxcri7qz")))) - (build-system texlive-build-system) - (arguments '(#:tex-directory "latex/psnfss")) - (home-page "https://www.ctan.org/pkg/psnfss") - (synopsis "Font support for common PostScript fonts") - (description - "The PSNFSS collection includes a set of files that provide a complete +(define-public texlive-psnfss + (let ((template (simple-texlive-package + "texlive-psnfss" + (list "/doc/latex/psnfss/" + "/source/latex/psnfss/" + "/fonts/map/dvips/psnfss/" + + ;; Only the .sty files are generated from the sources. + "/tex/latex/psnfss/8rbch.fd" + "/tex/latex/psnfss/8rpag.fd" + "/tex/latex/psnfss/8rpbk.fd" + "/tex/latex/psnfss/8rpcr.fd" + "/tex/latex/psnfss/8rphv.fd" + "/tex/latex/psnfss/8rpnc.fd" + "/tex/latex/psnfss/8rppl.fd" + "/tex/latex/psnfss/8rptm.fd" + "/tex/latex/psnfss/8rput.fd" + "/tex/latex/psnfss/8rpzc.fd" + "/tex/latex/psnfss/omlbch.fd" + "/tex/latex/psnfss/omlpag.fd" + "/tex/latex/psnfss/omlpbk.fd" + "/tex/latex/psnfss/omlpcr.fd" + "/tex/latex/psnfss/omlphv.fd" + "/tex/latex/psnfss/omlpnc.fd" + "/tex/latex/psnfss/omlppl.fd" + "/tex/latex/psnfss/omlptm.fd" + "/tex/latex/psnfss/omlptmcm.fd" + "/tex/latex/psnfss/omlput.fd" + "/tex/latex/psnfss/omlpzc.fd" + "/tex/latex/psnfss/omlzplm.fd" + "/tex/latex/psnfss/omlzpple.fd" + "/tex/latex/psnfss/omlztmcm.fd" + "/tex/latex/psnfss/omsbch.fd" + "/tex/latex/psnfss/omspag.fd" + "/tex/latex/psnfss/omspbk.fd" + "/tex/latex/psnfss/omspcr.fd" + "/tex/latex/psnfss/omsphv.fd" + "/tex/latex/psnfss/omspnc.fd" + "/tex/latex/psnfss/omsppl.fd" + "/tex/latex/psnfss/omsptm.fd" + "/tex/latex/psnfss/omsput.fd" + "/tex/latex/psnfss/omspzc.fd" + "/tex/latex/psnfss/omspzccm.fd" + "/tex/latex/psnfss/omszplm.fd" + "/tex/latex/psnfss/omszpple.fd" + "/tex/latex/psnfss/omsztmcm.fd" + "/tex/latex/psnfss/omxpsycm.fd" + "/tex/latex/psnfss/omxzplm.fd" + "/tex/latex/psnfss/omxzpple.fd" + "/tex/latex/psnfss/omxztmcm.fd" + "/tex/latex/psnfss/ot1bch.fd" + "/tex/latex/psnfss/ot1pag.fd" + "/tex/latex/psnfss/ot1pbk.fd" + "/tex/latex/psnfss/ot1pcr.fd" + "/tex/latex/psnfss/ot1phv.fd" + "/tex/latex/psnfss/ot1pnc.fd" + "/tex/latex/psnfss/ot1ppl.fd" + "/tex/latex/psnfss/ot1pplj.fd" + "/tex/latex/psnfss/ot1pplx.fd" + "/tex/latex/psnfss/ot1ptm.fd" + "/tex/latex/psnfss/ot1ptmcm.fd" + "/tex/latex/psnfss/ot1put.fd" + "/tex/latex/psnfss/ot1pzc.fd" + "/tex/latex/psnfss/ot1zplm.fd" + "/tex/latex/psnfss/ot1zpple.fd" + "/tex/latex/psnfss/ot1ztmcm.fd" + "/tex/latex/psnfss/t1bch.fd" + "/tex/latex/psnfss/t1pag.fd" + "/tex/latex/psnfss/t1pbk.fd" + "/tex/latex/psnfss/t1pcr.fd" + "/tex/latex/psnfss/t1phv.fd" + "/tex/latex/psnfss/t1pnc.fd" + "/tex/latex/psnfss/t1ppl.fd" + "/tex/latex/psnfss/t1pplj.fd" + "/tex/latex/psnfss/t1pplx.fd" + "/tex/latex/psnfss/t1ptm.fd" + "/tex/latex/psnfss/t1put.fd" + "/tex/latex/psnfss/t1pzc.fd" + "/tex/latex/psnfss/ts1bch.fd" + "/tex/latex/psnfss/ts1pag.fd" + "/tex/latex/psnfss/ts1pbk.fd" + "/tex/latex/psnfss/ts1pcr.fd" + "/tex/latex/psnfss/ts1phv.fd" + "/tex/latex/psnfss/ts1pnc.fd" + "/tex/latex/psnfss/ts1ppl.fd" + "/tex/latex/psnfss/ts1pplj.fd" + "/tex/latex/psnfss/ts1pplx.fd" + "/tex/latex/psnfss/ts1ptm.fd" + "/tex/latex/psnfss/ts1put.fd" + "/tex/latex/psnfss/ts1pzc.fd" + "/tex/latex/psnfss/ufplm.fd" + "/tex/latex/psnfss/ufplmbb.fd" + "/tex/latex/psnfss/upsy.fd" + "/tex/latex/psnfss/upzd.fd") + (base32 + "1ql4gidwf5m5gwcwwmx7vj60lj4xygw02pm5mzin49nlwsa1vbnv")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) + "latex/psnfss") + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "source/latex/psnfss") #t)))))) + (native-inputs + `(("texlive-cm" ,texlive-cm))) + (home-page "https://www.ctan.org/pkg/psnfss") + (synopsis "Font support for common PostScript fonts") + (description + "The PSNFSS collection includes a set of files that provide a complete working setup of the LaTeX font selection scheme (NFSS2) for use with common PostScript fonts. It covers the so-called \"Base\" fonts (which are built into any Level 2 PostScript printing device and the Ghostscript interpreter) and a number of free fonts. It provides font definition files, macros and font metrics. The bundle as a whole is part of the LaTeX required set of packages.") - (license license:lppl1.2+))) + (license license:lppl1.2+)))) + +(define-public texlive-latex-psnfss + (deprecated-package "texlive-latex-psnfss" texlive-psnfss)) ;; For user profiles (define-public texlive-base @@ -3367,17 +3523,18 @@ packages.") texlive-dvips texlive-fontname texlive-cm + texlive-cm-super ; to avoid bitmap fonts texlive-fonts-latex - texlive-metafont-base + texlive-metafont texlive-latex-base ;; LaTeX packages from the "required" set. texlive-latex-amsmath - texlive-latex-amscls - texlive-latex-babel + texlive-amscls + texlive-babel texlive-generic-babel-english texlive-latex-cyrillic texlive-latex-graphics - texlive-latex-psnfss + texlive-psnfss texlive-latex-tools texlive-tetex))) (package @@ -3496,7 +3653,7 @@ standard LaTeX packages." (delete-file (string-append out "/share/texmf-dist/ls-R"))) #t)))) (inputs - `(("bash" ,bash) + `(("bash" ,bash-minimal) ,@(map (lambda (package) (list (package-name package) package)) (append default-packages packages)))) @@ -4678,7 +4835,7 @@ in SGML; use maths minus in text as appropriate; simple Young tableaux.") (delete 'configure) (replace 'build (lambda* (#:key inputs #:allow-other-keys) - (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + (let ((mf (assoc-ref inputs "texlive-metafont"))) ;; Tell mf where to find mf.base (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c")) ;; Tell mf where to look for source files @@ -4713,7 +4870,7 @@ in SGML; use maths minus in text as appropriate; simple Young tableaux.") #t)))))) (native-inputs `(("texlive-bin" ,texlive-bin) - ("texlive-metafont-base" ,texlive-metafont-base) + ("texlive-metafont" ,texlive-metafont) ("texlive-cm" ,texlive-cm))) (home-page "https://www.ctan.org/pkg/ec") (synopsis "Computer modern fonts in T1 and TS1 encodings") @@ -4895,7 +5052,7 @@ Adobe's basic set.") (delete 'configure) (replace 'build (lambda* (#:key inputs #:allow-other-keys) - (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + (let ((mf (assoc-ref inputs "texlive-metafont"))) ;; Tell mf where to find mf.base (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c")) ;; Tell mf where to look for source files @@ -4930,7 +5087,7 @@ Adobe's basic set.") #t)))))) (native-inputs `(("texlive-bin" ,texlive-bin) - ("texlive-metafont-base" ,texlive-metafont-base) + ("texlive-metafont" ,texlive-metafont) ("texlive-cm" ,texlive-cm))) (home-page "https://www.ctan.org/pkg/rsfs") (synopsis "Ralph Smith's Formal Script font") @@ -5477,23 +5634,32 @@ now contains a package @code{fix-cm},f which performs the task of @code{ec} fonts.") (license license:lppl))) -(define-public texlive-latex-lh - (package - (name "texlive-latex-lh") - (version (number->string %texlive-revision)) - (source (origin - (method svn-fetch) - (uri (texlive-ref "latex" "lh")) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "00gdiwh3sfhh1iimjhpja7lm7k4vzqzql2irgwnpz94qvh25zwi5")))) - (build-system texlive-build-system) - (arguments '(#:tex-directory "latex/lh")) - (home-page "https://www.ctan.org/pkg/lh") - (synopsis "Cyrillic fonts that support LaTeX standard encodings") - (description - "The LH fonts address the problem of the wide variety of alphabets that +(define-public texlive-lh + (let ((template (simple-texlive-package + "texlive-lh" + (list "/doc/fonts/lh/" + "/source/fonts/lh/" + "/source/latex/lh/" + "/fonts/source/lh/" + "/tex/plain/lh/") + (base32 + "0vw75i52asi5sssp8k9r8dy4ihvqbvmbsl3dini3ls8cky15lz37")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) + "latex/lh") + ((#:build-targets _ '()) + ''("nfssfox.ins" "lcyfonts.ins" "ot2fonts.ins" "t2ccfonts.ins")) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/lh") #t)))))) + (home-page "https://www.ctan.org/pkg/lh") + (synopsis "Cyrillic fonts that support LaTeX standard encodings") + (description + "The LH fonts address the problem of the wide variety of alphabets that are written with Cyrillic-style characters. The fonts are the original basis of the set of T2* and X2 encodings that are now used when LaTeX users need to write in Cyrillic languages. Macro support in standard LaTeX encodings is @@ -5502,7 +5668,10 @@ offers support for other (more traditional) encodings. The fonts, in the standard T2* and X2 encodings are available in Adobe Type 1 format, in the CM-Super family of fonts. The package also offers its own LaTeX support for OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.") - (license license:lppl))) + (license license:lppl)))) + +(define-public texlive-latex-lh + (deprecated-package "texlive-latex-lh" texlive-lh)) (define-public texlive-metapost (package @@ -5743,49 +5912,24 @@ requires the suffix package, which in turn requires that it runs under e-TeX.") (license license:lppl1.3+))) -(define-public texlive-generic-pdftex +(define-public texlive-pdftex (package - (name "texlive-generic-pdftex") - (version (number->string %texlive-revision)) - (source (origin - (method svn-fetch) - (uri (svn-reference - (url (string-append "svn://www.tug.org/texlive/tags/" - %texlive-tag "/Master/texmf-dist/" - "/tex/generic/pdftex")) - (revision %texlive-revision))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0k68zmqzs4qvrqxdwsrawbjb14hxqjfamq649azvai0jjxdpkljd")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let ((target (string-append (assoc-ref %outputs "out") - "/share/texmf-dist/tex/generic/pdftex")) - (target-map (string-append (assoc-ref %outputs "out") - "/share/texmf-dist/fonts/map/pdftex"))) - (mkdir-p target) - (copy-recursively (assoc-ref %build-inputs "source") target) - (mkdir-p target-map) - (copy-recursively (assoc-ref %build-inputs "pdftex-map") target-map) - #t)))) - (native-inputs - `(("pdftex-map" - ,(origin - (method svn-fetch) - (uri (svn-reference - (url (string-append "svn://www.tug.org/texlive/tags/" - %texlive-tag "/Master/texmf-dist/" - "/fonts/map/pdftex")) - (revision %texlive-revision))) - (file-name (string-append name "-map-" version "-checkout")) - (sha256 - (base32 - "03rfif2631pgd8g1ar4xblcdh078kky7fvw3kfsj5a47rxxgicp2")))))) + (inherit (simple-texlive-package + "texlive-pdftex" + (list "/doc/pdftex/" + "/doc/man/man1/pdfetex.1" + "/doc/man/man1/pdftex.1" + + "/fonts/map/dvips/dummy-space/dummy-space.map" + "/fonts/tfm/public/pdftex/dummy-space.tfm" + "/fonts/type1/public/pdftex/dummy-space.pfb" + "/scripts/simpdftex/simpdftex" + + "/tex/generic/config/pdftex-dvi.tex" + "/tex/generic/pdftex/") + (base32 + "0wsgbl0jrqc1qzgf23dla6b95lv2h8x6xvs5466d8jdrih6pwriq") + #:trivial? #t)) (home-page "https://www.ctan.org/pkg/pdftex") (synopsis "TeX extension for direct creation of PDF") (description @@ -5793,6 +5937,9 @@ e-TeX.") directly generate PDF documents instead of DVI.") (license license:gpl2+))) +(define-public texlive-generic-pdftex + (deprecated-package "texlive-generic-pdftex" texlive-pdftex)) + (define texlive-texmf (package (name "texlive-texmf") @@ -5876,7 +6023,7 @@ This package contains the complete tree of texmf-dist data.") (version "20190410") (source #f) (build-system trivial-build-system) - (inputs `(("bash" ,bash) ; for wrap-program + (inputs `(("bash" ,bash-minimal) ;for wrap-program ("texlive-bin" ,texlive-bin) ("texlive-texmf" ,texlive-texmf))) (native-search-paths @@ -6171,9 +6318,9 @@ develop documents with LaTeX, in a single application.") `(("texlive" ,(texlive-union (list texlive-amsfonts texlive-fonts-adobe-palatino texlive-fonts-adobe-zapfding - texlive-fonts-knuth-lib + texlive-knuth-lib texlive-fonts-mflogo-font - texlive-generic-pdftex))) + texlive-pdftex))) ("automake" ,automake))) (home-page "https://www.gnu.org/software/teximpatient/") (synopsis "Book on TeX, plain TeX and Eplain") @@ -6891,6 +7038,52 @@ supports advanced interactive documents. See the ConTeXt garden for a wealth of support information.") (license license:gpl2+))) +(define-public texlive-context + (package + (inherit (simple-texlive-package + "texlive-context" + (list "/doc/context/" + ;; XXX Omitting /doc/man/man1/*.pdf + "/bibtex/bst/context/mkii/" + "/context/data/" + + "/fonts/afm/hoekwater/context/contnav.afm" + "/fonts/cid/fontforge/Adobe-CNS1-4.cidmap" + "/fonts/cid/fontforge/Adobe-GB1-4.cidmap" + "/fonts/cid/fontforge/Adobe-Identity-0.cidmap" + "/fonts/cid/fontforge/Adobe-Japan1-5.cidmap" + "/fonts/cid/fontforge/Adobe-Japan1-6.cidmap" + "/fonts/cid/fontforge/Adobe-Japan2-0.cidmap" + "/fonts/cid/fontforge/Adobe-Korea1-2.cidmap" + "/fonts/enc/dvips/context/" + "/fonts/map/dvips/context/" + "/fonts/map/luatex/context/" + "/fonts/map/pdftex/context/" + "/fonts/misc/xetex/fontmapping/context/" + "/fonts/tfm/hoekwater/context/contnav.tfm" + "/fonts/type1/hoekwater/context/" + + "/metapost/context/" + "/scripts/context/" + "/tex/context/" + + "/tex/generic/context/luatex/" + "/tex/generic/context/ppchtex/" + "/tex/latex/context/") + (base32 + "0cc8509hrc25ri4a8hshgasip5z4qlipx3nxdm97f1sr0l6ncxdr") + #:trivial? #t)) + (home-page "https://www.ctan.org/pkg/context") + (synopsis "ConTeXt macro package") + (description "ConTeXt is a full featured, parameter driven macro package, +which fully supports advanced interactive documents. See the ConTeXt garden +for a wealth of support information.") + ;; The GPL applies to all code; alternatively, the LaTeX license may be used. + ;; The CC-BY-SA license applies to all documentation. + (license (list license:lppl1.3c+ + license:gpl2+ + license:cc-by-sa4.0)))) + (define-public texlive-beamer (package (inherit (simple-texlive-package @@ -6946,58 +7139,45 @@ the metadata is stored in an XML file, and this XML stream is then embedded in the file to which it applies.") (license license:gpl3+))) -(define-public texlive-latex-pdfx - (package - (name "texlive-latex-pdfx") - (version (number->string %texlive-revision)) - (source - (origin - (method svn-fetch) - (uri (texlive-ref "latex" "pdfx")) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "18294h0cr05fs424m3x6aq24z5hf5zmiflalkj4kvpmsyyqqsj74")))) - (build-system texlive-build-system) - (arguments - '(#:tex-directory "latex/pdfx" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-encoding - (lambda _ - (substitute* "pdfx.dtx" - ((" .+umaczy") "umaczy")) - #t)) - (add-before 'install 'install-tex-files - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((target (string-append (assoc-ref outputs "out") - "/share/texmf-dist/tex/latex/pdfx"))) - (mkdir-p target) - (copy-recursively (assoc-ref inputs "texlive-tex-pdfx") target) - ;; Install the generated version in the "install" phase. - (delete-file (string-append target "/pdfx.sty")) - #t)))))) - (propagated-inputs - `(("texlive-generic-pdftex" ,texlive-generic-pdftex))) - (native-inputs - `(("texlive-tex-pdfx" - ,(origin - (method svn-fetch) - (uri (svn-reference - (url (string-append "svn://www.tug.org/texlive/tags/" - %texlive-tag "/Master/texmf-dist/" - "/tex/latex/pdfx")) - (revision %texlive-revision))) - (file-name (string-append "texlive-tex-latex-pdfx-" version "-checkout")) - (sha256 - (base32 - "171ffvpkj2fab4ljcxv3l6l5c8ga8zavdhmhfq07id8zyyr619ip")))))) - (home-page "https://www.ctan.org/pkg/pdfx") - (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX") - (description - "This package helps LaTeX users to create PDF/X, PDF/A and other +(define-public texlive-pdfx + (let ((template (simple-texlive-package + "texlive-pdfx" + (list "/doc/latex/pdfx/" + "/source/latex/pdfx/" + "/tex/latex/pdfx/") + (base32 + "1z4j4d92k2fjmf8jfap4zn7ij97d9rz2jcs9aslcac07ag4x5bdp")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) + "latex/pdfx") + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'delete-generated-file + (lambda _ + ;; Generate this file from sources + (delete-file "tex/latex/pdfx/pdfx.sty") + #t)) + (add-after 'delete-generated-file 'chdir + (lambda _ (chdir "source/latex/pdfx") #t)) + (add-after 'chdir 'fix-encoding + (lambda _ + (substitute* "pdfx.dtx" + ((" .+umaczy") "umaczy")) + #t)))))) + (propagated-inputs + `(("texlive-pdftex" ,texlive-pdftex))) + (home-page "https://www.ctan.org/pkg/pdfx") + (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX") + (description + "This package helps LaTeX users to create PDF/X, PDF/A and other standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX.") - (license license:lppl1.2+))) + (license license:lppl1.2+)))) + +(define-public texlive-latex-pdfx + (deprecated-package "texlive-latex-pdfx" texlive-pdfx)) (define-public texlive-ydoc (let ((template (simple-texlive-package |