diff options
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r-- | gnu/packages/tex.scm | 362 |
1 files changed, 361 insertions, 1 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 7abf7f93da..e755b8d715 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> -;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016-2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017, 2020-2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> @@ -24,6 +24,8 @@ ;;; Copyright © 2022 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2022 Fabio Natali <me@fabionatali.com> ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> +;;; Copyright © 2023 Thomas Albers Raviola <thomas@thomaslabs.org> +;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -64,6 +66,8 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) + #:use-module (gnu packages digest) #:use-module (gnu packages lisp) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) @@ -746,6 +750,37 @@ the autogenerated files @file{language.dat} and @file{language.def} (and default versions of those), etc.") (license license:knuth))) +(define-public texlive-dvipdfmx + (let ((template (simple-texlive-package + "texlive-dvipdfmx" + (list "doc/dvipdfm/" + "doc/dvipdfmx/" + "doc/man/man1/" + "dvipdfmx/" + "fonts/cmap/dvipdfmx/" + "fonts/map/dvipdfmx/") + (base32 + "04x93w777l9qzdzglwanb14k8cmq74kjcsgyanvp3bsmnn5zfrgz") + #:trivial? #t))) + (package + (inherit template) + (source + (origin + (inherit (package-source template)) + ;; This map file is supposed to be generated in a profile hook. + (snippet '(delete-file "fonts/map/dvipdfmx/updmap/kanjix.map")))) + (propagated-inputs (list texlive-glyphlist)) + (home-page "https://www.tug.org/texlive/") + (synopsis "Extended version of dvipdfm") + (description + "Dvipdfmx (formerly dvipdfm-cjk) is a development of dvipdfm created to +support multi-byte character encodings and large character sets for East Asian +languages. Dvipdfmx, if \"called\" with the name dvipdfm, operates in a +\"dvipdfm compatibility\" mode, so that users of the both packages need only +keep one executable. A secondary design goal is to support as many \"PDF\" +features as does pdfTeX.") + (license license:gpl3+)))) + (define-public texlive-dvips (package (inherit (simple-texlive-package @@ -1629,6 +1664,60 @@ described in the TeXbook, together with various supporting files (some also discussed in the book).") (license license:knuth))) +(define-public texlive-halloweenmath + (let ((template (simple-texlive-package + "texlive-halloweenmath" + (list "doc/latex/halloweenmath/" + "source/latex/halloweenmath/" + "tex/latex/halloweenmath/") + (base32 + "1xq72k1p820b5q3haxf936g69p6gv34hr30870l96jnxa3ad7y05")))) + (package + (inherit template) + (outputs '("out" "doc")) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) "latex/halloweenmath") + ((#:build-targets _ '()) '(list "halloweenmath.ins")) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/halloweenmath/"))) + (add-after 'chdir 'non-interactive-build + ;; When it realizes it cannot employ the usedir directive, the + ;; build process stops and waits for an input before inserting + ;; generated files in the working directory. Do not ask for + ;; an input. + (lambda _ + (substitute* "halloweenmath.ins" + (("\\Ask.*") "") + (("\\(your .*? will be ignored\\).*") "")))) + (replace 'copy-files + (lambda* (#:key inputs #:allow-other-keys) + (let ((origin (assoc-ref inputs "source")) + (source (string-append #$output + "/share/texmf-dist/source")) + (doc (string-append #$output:doc + "/share/texmf-dist/doc"))) + (copy-recursively (string-append origin "/source") source) + (copy-recursively (string-append origin "/doc") doc)))))))) + (native-inputs + (list texlive-bin + texlive-kpathsea + (texlive-updmap.cfg))) ;for psfonts.map + (propagated-inputs + (list texlive-amsmath texlive-pict2e)) + (home-page "https://ctan.org/pkg/halloweenmath") + (synopsis "Scary and creepy math symbols with AMS-LaTeX integration") + (description + "The package defines a handful of commands for typesetting mathematical +symbols of various kinds, ranging from large operators to extensible +arrow-like relations and growing arrow-like math accents that all draw from +the classic Halloween-related iconography (pumpkins, witches, ghosts, cats, +and so on) while being, at the same time, seamlessly integrated within the +rest of the mathematics produced by (AmS-)LaTeX.") + (license license:lppl1.3+)))) + (define-public texlive-hardwrap (package (inherit (simple-texlive-package @@ -3248,6 +3337,22 @@ verbatim source).") (define-deprecated-package texlive-latex-fancyvrb texlive-fancyvrb) +(define-public texlive-glyphlist + (package + (inherit (simple-texlive-package + "texlive-glyphlist" + (list "fonts/map/glyphlist/") + (base32 + "12nmmyh77vr2622lzi11nm1z1k2bxs7jz018yl4rwjlpg0sxg1ja") + #:trivial? #t)) + (home-page "https://www.tug.org/texlive/") + (synopsis "Adobe glyph list and TeX extensions") + (description + "This package provides a map between traditional Adobe glyph names and +Unicode points; it is maintained by Adobe. The additional +@file{texglyphlist.txt} is maintained as part of lcdf-typetools.") + (license license:asl2.0))) + (define-public texlive-graphics-def (package (inherit (simple-texlive-package @@ -4581,6 +4686,55 @@ 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-pict2e + (let ((template (simple-texlive-package + "texlive-pict2e" + (list "doc/latex/pict2e/" + "source/latex/pict2e/" + "tex/latex/pict2e/") + (base32 + "0pazv1khsgjhxc673qrhjrbzlkgmcj53qccb9hw7ygdajxrjc2ba")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) "latex/pict2e") + ((#:build-targets _ '()) '(list "pict2e.ins")) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/pict2e/"))) + (add-after 'build 'build-doc + (lambda _ + (copy-file "p2e-drivers.dtx" "build/p2e-drivers.dtx") + (with-directory-excursion "build" + (invoke "pdflatex" "p2e-drivers.dtx") + (delete-file "p2e-drivers.dtx") + ;; texlive.tlpbd expects a "pict2e.cfg" configuration file + ;; instead of "pict2e-example.cfg". Please it. + (rename-file "pict2e-example.cfg" "pict2e.cfg")))) + (replace 'copy-files + (lambda* (#:key inputs #:allow-other-keys) + (let ((origin (assoc-ref inputs "source")) + (source (string-append #$output + "/share/texmf-dist/source")) + (doc (string-append #$output:doc + "/share/texmf-dist/doc"))) + (copy-recursively (string-append origin "/source") source) + (copy-recursively (string-append origin "/doc") doc)))))))) + (home-page "https://ctan.org/pkg/pict2e") + (native-inputs + (list (texlive-updmap.cfg))) + (synopsis "New implementation of picture commands") + (description + "This package extends the existing LaTeX @code{picture} environment, +using the familiar technique (the @code{graphics} and @code{color} packages) +of driver files (at present, drivers for dvips, pdfTeX, LuaTeX, XeTeX, VTeX, +dvipdfm, and dvipdfmx are available). The package documentation has a fair +number of examples of use, showing where things are improved by comparison +with the LaTeX @code{picture} environment.") + (license license:lppl1.3+)))) + (define-public texlive-psnfss (let ((template (simple-texlive-package "texlive-psnfss" @@ -5227,6 +5381,44 @@ corresponding italics: light, regular, medium, bold, ...") (license (list license:lppl license:silofl1.1)))) +(define-public texlive-firstaid + (let ((template (simple-texlive-package + "texlive-firstaid" + (list "/doc/latex/firstaid/" + "/source/latex/firstaid/" + "/tex/latex/firstaid/") + (base32 + "1ahn47kz8a2qdmzdfdgjanf6h5bn8f2rzp1zvwgjpk1plcix8k90")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) "tex/latex/firstaid") + ((#:build-targets _ '()) '(list "firstaid.ins")) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/firstaid/"))) + (replace 'copy-files + (lambda* (#:key inputs #:allow-other-keys) + (let ((origin (assoc-ref inputs "source")) + (source (string-append #$output + "/share/texmf-dist/source")) + (doc (string-append #$output:doc + "/share/texmf-dist/doc"))) + (copy-recursively (string-append origin "/source") source) + (copy-recursively (string-append origin "/doc") doc)))))))) + (home-page "https://ctan.org/macros/latex/required/firstaid") + (synopsis + "First aid for external LaTeX files and packages that need updating") + (description + "This package contains some first aid for LaTeX packages or classes +that require updates because of internal changes to the LaTeX kernel that are +not yet reflected in the package's or class's code. The file +@file{latex2e-first-aid-for-external-files.ltx} provided by this package is +meant to be loaded during format generation and not by the user.") + (license license:lppl1.3c)))) + (define-public texlive-latex-ifplatform (package (name "texlive-latex-ifplatform") @@ -5654,6 +5846,31 @@ in LaTeX documents; a jiffy to create slashed characters for physicists.") "Catchfile catches the contents of a file and puts it in a macro.") (license license:lppl1.3+)))) +(define-public texlive-ddphonism + (package + (inherit (simple-texlive-package + "texlive-ddphonism" + (list "doc/latex/ddphonism/" + "tex/latex/ddphonism/") + (base32 "1p02ai76nnh6042pnmqv4n30z6yxsvyyk2nb9jk7xlyyc87zzbdd") + #:trivial? #t)) + (propagated-inputs + (list texlive-etoolbox + texlive-hyperref + texlive-latex-l3packages + texlive-listings + texlive-pgf + texlive-latex-tools + texlive-xstring)) + (home-page "https://www.ctan.org/pkg/ddphonism") + (synopsis "Dodecaphonic diagrams for LaTeX") + (description + "This is a music-related package which is focused on notation from the +twelve-tone system, also called dodecaphonism. It provides LaTeX algorithms +that produce typical dodecaphonic notation based off a musical series, or row +sequence, of variable length.") + (license license:lppl1.3c))) + (define-public texlive-doi (package (inherit (simple-texlive-package @@ -8722,6 +8939,47 @@ PDF documents.") develop documents with LaTeX, in a single application.") (license license:gpl2+))) +(define-public dvisvgm + (package + (name "dvisvgm") + (version "3.0.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mgieseki/dvisvgm") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11r401yqbw61n1mwsfk5qmwx2c92djwpl0q756qkds5kh25l9ci8")))) + (native-inputs (list pkg-config + autoconf + autoconf-archive + automake + python-wrapper + libtool)) + (inputs (list texlive-libkpathsea + freetype + fontforge + clipper + ghostscript + xxhash + google-brotli + woff2 + zlib)) + (build-system gnu-build-system) + (synopsis "Command-line utility for generating SVG from DVI, EPS and PDF +files") + (description + "Dvisvgm converts TeX DVI, EPS and PDF files into an +SVG (Scalable Vector Graphics) image. It provides full font support including +virtual fonts, font maps and sub-fonts. The embedded SVG fonts can optionally +be replaced with graphics paths for applications that do not support SVG +fonts. Dvisvgm supports also colors, emTeX, tpic, papersize, PDF mapfile +and PostScript specials. A working TeX installation is needed.") + (home-page "https://dvisvgm.de/") + (license license:gpl3+))) + (define-public teximpatient ;; The homepage seems to be distributing this version which is currently the ;; most recent commit @@ -11867,6 +12125,24 @@ family and SGML-based languages. Xindy is highly configurable, both in markup terms and in terms of the collating order of the text being processed.") (license license:gpl2+))) +(define-public texlive-nth + (package + (inherit (simple-texlive-package + "texlive-nth" + (list "tex/generic/nth/") + (base32 + "0716sd99xjdkplm7jdmg4lx8lpfnnx6mxjp1l1sp2bfqcg73p4hm") + #:trivial? #t)) + (home-page "https://ctan.org/macros/generic/misc/nth.sty") + (synopsis "Generate English ordinal numbers") + (description + "The command @code{\\nth{<number>}} generates English ordinal numbers of +the form 1st, 2nd, 3rd, 4th, etc. LaTeX package options may specify that the +ordinal mark be superscripted, and that negative numbers may be treated; Plain +TeX users have no access to package options, so need to redefine macros for +these changes.") + (license license:public-domain))) + (define-public texlive-fmtcount (package (inherit (simple-texlive-package @@ -12843,6 +13119,46 @@ syllable. The package itself does not support UTF-8 input in ordinary (define-deprecated-package texlive-generic-soul texlive-soul) +(define-public texlive-soulutf8 + (let ((template (simple-texlive-package + "texlive-soulutf8" + (list "doc/latex/soulutf8/" + "source/latex/soulutf8/" + "tex/generic/soulutf8/") + (base32 + "0d9lv3xsads8ms642ys3pghxnsa2hlzafkcx66d2hbq224bz1phc")))) + (package + (inherit template) + (outputs '("out" "doc")) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ #t) "generic/soulutf8") + ((#:build-targets _ '()) '(list "soulutf8.dtx")) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/soulutf8/"))) + (replace 'copy-files + (lambda* (#:key inputs #:allow-other-keys) + (let ((origin (assoc-ref inputs "source")) + (source (string-append #$output + "/share/texmf-dist/source")) + (doc (string-append #$output:doc + "/share/texmf-dist/doc"))) + (copy-recursively (string-append origin "/source") source) + (copy-recursively (string-append origin "/doc") doc)))))))) + (propagated-inputs + (list texlive-generic-etexcmds + texlive-generic-infwarerr + texlive-soul)) + (home-page "https://ctan.org/pkg/soulutf8") + (synopsis "Permit use of UTF-8 characters in @code{soul}") + (description + "This package extends package @code{soul} and adds some support for +UTF-8. Namely the input encodings in @file{utf8.def} from package +@code{inputenc} and @file{utf8x.def} from package @code{ucs} are supported.") + (license license:lppl1.3+)))) + (define-public texlive-xstring (let ((template (simple-texlive-package "texlive-xstring" @@ -12905,6 +13221,50 @@ interest. Since most such counters are simply incremented when they are changed, the recorded value will usually be the maximum value.") (license license:lppl1.3c+))) +(define-public texlive-xetex + (package + (inherit (simple-texlive-package + "texlive-xetex" + (list "/doc/man/man1/xetex.1" + "/doc/man/man1/xelatex.1" + "/doc/xetex/base/" + "/fonts/misc/xetex/fontmapping/base/" + "/tex/xelatex/xetexconfig/") + (base32 + "1gmgagvsv2qknrjzjk840ca3wging8wfc20rgq7bnhphm9n87m6q") + #:trivial? #t)) + (propagated-inputs + (list texlive-generic-atbegshi + texlive-latex-atveryend + texlive-babel + texlive-cm + texlive-dvipdfmx + texlive-etex + texlive-everyshi + texlive-firstaid + texlive-hyphen-base + texlive-latex-base + texlive-fonts-latex + texlive-latex-l3backend + texlive-latex-l3kernel + texlive-latex-l3packages + texlive-lm + texlive-tex-ini-files + texlive-tex-plain + texlive-unicode-data)) + (home-page "https://www.tug.org/texlive/") + (synopsis "Extended variant of TeX for use with Unicode sources") + (description + "XeTeX is a TeX typesetting engine using Unicode and supporting modern font +technologies such as OpenType, TrueType or Apple Advanced Typography (AAT), +including OpenType mathematics fonts. XeTeX supports many extensions that +reflect its origins in linguistic research; it also supports micro-typography +(as available in pdfTeX). XeTeX was developed by the SIL (the first version +was specifically developed for those studying linguistics, and using Macintosh +computers). XeTeX's immediate output is an extended variant of DVI format, +which is ordinarily processed by a tightly bound processor (called +@code{xdvipdfmx}), that produces PDF.") + (license license:x11))) ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar |