summary refs log tree commit diff
path: root/gnu/packages/tex.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-04-14 16:57:37 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-04-14 17:15:08 -0400
commit3bacd3c76a58ebe70f98be654f09cbd4166093ab (patch)
tree89f687565205971a9925d33400235968a569a069 /gnu/packages/tex.scm
parentdf3391c0309443ac37f9a9a6b1038a85454b8ee6 (diff)
parent97ed675718b948319e6f6e51f2d577971bea1176 (diff)
downloadguix-3bacd3c76a58ebe70f98be654f09cbd4166093ab.tar.gz
Merge branch 'master' into core-updates.
Conflicts:
	gnu/local.mk
	gnu/packages/build-tools.scm
	gnu/packages/certs.scm
	gnu/packages/check.scm
	gnu/packages/compression.scm
	gnu/packages/cups.scm
	gnu/packages/fontutils.scm
	gnu/packages/gnuzilla.scm
	gnu/packages/guile.scm
	gnu/packages/ibus.scm
	gnu/packages/image-processing.scm
	gnu/packages/linux.scm
	gnu/packages/music.scm
	gnu/packages/nss.scm
	gnu/packages/pdf.scm
	gnu/packages/python-xyz.scm
	gnu/packages/qt.scm
	gnu/packages/ruby.scm
	gnu/packages/shells.scm
	gnu/packages/tex.scm
	gnu/packages/video.scm
	gnu/packages/vulkan.scm
	gnu/packages/web.scm
	gnu/packages/webkit.scm
	gnu/packages/wm.scm
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r--gnu/packages/tex.scm362
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