aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/tex.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r--gnu/packages/tex.scm240
1 files changed, 225 insertions, 15 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index dafed9d3c3..1ce5b2ada8 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -23,6 +23,7 @@
;;; 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>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -63,6 +64,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)
@@ -1215,7 +1218,7 @@ support (for use with a variety of encodings) is provided.")
(base32
"0yyk0dr4yms82mwy4dc03zf5igyhgcb65icdah042rk23rlpxygv")
#:trivial? #t))
- (home-page "http://www.gust.org.pl/projects/e-foundry/latin-modern/")
+ (home-page "https://www.gust.org.pl/projects/e-foundry/latin-modern/")
(synopsis "Latin Modern family of fonts")
(description "The Latin Modern fonts are derived from the famous Computer
Modern fonts designed by Donald E. Knuth and described in Volume E of his
@@ -1236,7 +1239,7 @@ Computers & Typesetting series.")
(base32
"0gqdk8x3r1iz4n8j6r3pcqbwalxvkihayvmjfq4iv6hwb0pvys8z")
#:trivial? #t))
- (home-page "http://www.gust.org.pl/projects/e-foundry/latin-modern")
+ (home-page "https://www.gust.org.pl/projects/e-foundry/latin-modern")
(synopsis "OpenType maths fonts for Latin Modern")
(description "Latin Modern Math is a maths companion for the Latin Modern
family of fonts, in OpenType format. For use with LuaLaTeX or XeLaTeX,
@@ -3165,6 +3168,30 @@ users, via its Plain TeX version.)")
(define-deprecated-package texlive-generic-epsf texlive-epsf)
+(define-public texlive-fancyvrb
+ (package
+ (inherit (simple-texlive-package
+ "texlive-fancyvrb"
+ (list "/doc/latex/fancyvrb"
+ "/tex/latex/fancyvrb/")
+ (base32
+ "1qlrmc70ck2v3wqh8gjd5jl0f6011zzcsg9a93qf1z9b9virvjy2")
+ #:trivial? #t))
+ (propagated-inputs (list texlive-latex-upquote))
+ (home-page "https://ctan.org/macros/latex/contrib/fancyvrb")
+ (synopsis "Sophisticated verbatim text")
+ (description
+ "This package provides tools for the flexible handling of verbatim text
+including: verbatim commands in footnotes; a variety of verbatim environments
+with many parameters; ability to define new customized verbatim environments;
+save and restore verbatim text and environments; write and read files in
+verbatim mode; build @code{example} environments (showing both result and
+verbatim source).")
+ (license license:lppl1.3+)))
+
+;; FIXME: This package needs to be deprecated in favour of `texlive-fancyvrb',
+;; but this triggers 17k rebuilds. So leave it there and wait for
+;; core-updates or a topic branch to catch-up.
(define-public texlive-latex-fancyvrb
(package
(inherit (simple-texlive-package
@@ -3484,6 +3511,50 @@ arrows; record information about document class(es) used; and many more.")
(define-deprecated-package texlive-latex-oberdiek texlive-oberdiek)
+(define-public texlive-onedown
+ (let ((template
+ (simple-texlive-package
+ "texlive-onedown"
+ (list "doc/latex/onedown/"
+ "source/latex/onedown/"
+ "tex/latex/onedown/")
+ (base32
+ "04ih7i4v96ggwk4k1mpfx3dzcpi2siqablv93wryg7dk4cks5wkl"))))
+ (package
+ (inherit template)
+ (outputs '("doc" "out"))
+ (arguments
+ (substitute-keyword-arguments (package-arguments template)
+ ((#:tex-directory _ #t) "latex/onedown")
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "source/latex/onedown/")))
+ (replace 'copy-files
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((origin (assoc-ref inputs "source"))
+ (texmf (string-append #$output "/share/texmf-dist"))
+ (doc (string-append #$output:doc
+ "/share/texmf-dist/doc")))
+ (for-each
+ (lambda (directory)
+ (copy-recursively (string-append origin directory)
+ (string-append texmf directory)))
+ '("/source" "/tex/latex/onedown"))
+ (copy-recursively (string-append origin "/doc")
+ doc))))))))
+ (home-page "https://ctan.org/pkg/onedown")
+ (synopsis "Typeset bridge diagrams")
+ (description
+ "This is a comprehensive package to draw all sorts of bridge diagrams,
+including hands, bidding tables, trick tables, and expert quizzes.
+
+It works for all font sizes. Different fonts for hands, bidding diagrams and
+compass are possible. It also provides annotations to card and bidding
+diagrams, automated check on consistency of suit and hands, and multilingual
+output of bridge terms.")
+ (license license:lppl1.3+))))
+
(define-public texlive-latex-rerunfilecheck
(package
(inherit (simple-texlive-package
@@ -4151,7 +4222,7 @@ polyglossia package rather than Babel.")
"fonts/vf/cs/cs-a35/")
(base32 "1ww5lrqja051fh0ygmfdyy5a6bhwq9k5zv857vwiqf5syvw5djps")
#:trivial? #t))
- (home-page "http://petr.olsak.net/cstex/")
+ (home-page "https://petr.olsak.net/cstex/")
(synopsis "Czech/Slovak-tuned Computer Modern fonts")
(description "This package provides Czech/Slovak-tuned Computer Modern
fonts in the Metafont format; Type 1 format versions (csfonts-t1) are also
@@ -4167,7 +4238,7 @@ available.")
(list "tex/csplain/base/")
(base32 "0cgrwc8lgf2x2hq6bb4kqxw597card985zdd9ipn7k98mmwrxhz3")
#:trivial? #t))
- (home-page "http://petr.olsak.net/csplain-e.html")
+ (home-page "https://petr.olsak.net/csplain-e.html")
(synopsis "Plain TeX multilanguage support")
(description "CSplain is a small extension of basic Plain TeX macros from
which the formats @code{csplain} and @code{pdfcsplain} can be generated. It
@@ -4957,6 +5028,7 @@ corresponding italics: light, regular, medium, bold, ...")
(base32
"157pplavvm2z97b3jl4x41w11k6q9wgy074mfg0dwmsx5lm328jy"))))
(build-system texlive-build-system)
+ (propagated-inputs (list texlive-catchfile))
(arguments '(#:tex-directory "latex/ifplatform"))
(home-page "https://www.ctan.org/pkg/ifplatform")
(synopsis "Conditionals to test which platform is being used")
@@ -5304,6 +5376,26 @@ capabilities of longtable and tabularx; an environment for including plain TeX
in LaTeX documents; a jiffy to create slashed characters for physicists.")
(license license:lppl)))
+(define-public texlive-catchfile
+ (let ((template (simple-texlive-package
+ "texlive-catchfile"
+ (list "/doc/latex/catchfile/"
+ "/source/latex/catchfile/"
+ "/tex/generic/catchfile/")
+ (base32
+ "1dpxy64hs0bjp8d2dmikflc995vazf7fi6z92w51fnj2fidgl8gx"))))
+ (package
+ (inherit template)
+ (arguments
+ (substitute-keyword-arguments (package-arguments template)
+ ((#:tex-directory _ #t)
+ "latex/catchfile")))
+ (home-page "https://ctan.org/macros/latex/contrib/catchfile")
+ (synopsis "Catch an external file into a macro")
+ (description
+ "Catchfile catches the contents of a file and puts it in a macro.")
+ (license license:lppl1.3+))))
+
(define-public texlive-doi
(package
(inherit (simple-texlive-package
@@ -8173,7 +8265,7 @@ values (strings, macros, or numbers) pasted together.")
("perl-file-which" ,perl-file-which)
("perl-test-more" ,perl-test-most) ; FIXME: "more" would be sufficient
("perl-test-differences" ,perl-test-differences)))
- (home-page "http://biblatex-biber.sourceforge.net/")
+ (home-page "https://biblatex-biber.sourceforge.net/")
(synopsis "Backend for the BibLaTeX citation management tool")
(description "Biber is a BibTeX replacement for users of biblatex. Among
other things it comes with full Unicode support.")
@@ -8246,12 +8338,53 @@ PDF documents.")
(list poppler-qt5 qtbase-5 qtscript zlib))
(native-inputs
(list pkg-config))
- (home-page "http://www.xm1math.net/texmaker/")
+ (home-page "https://www.xm1math.net/texmaker/")
(synopsis "LaTeX editor")
(description "Texmaker is a program that integrates many tools needed to
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
@@ -10013,6 +10146,37 @@ various fonts are provided. An alternative package
the bundle.")
(license license:lppl1.3c))))
+(define-public texlive-minted
+ (let ((template (simple-texlive-package
+ "texlive-minted"
+ (list "/doc/latex/minted/"
+ "/source/latex/minted/"
+ "/tex/latex/minted/")
+ (base32
+ "13cjsjb3b04n9arwp46ayk8fcicylxq5g1864cpxl1lxjxh1yi0l"))))
+ (package
+ (inherit template)
+ (arguments
+ (substitute-keyword-arguments (package-arguments template)
+ ((#:tex-directory _ #t)
+ "latex/minted")))
+ (propagated-inputs (list python-pygments
+ texlive-etoolbox
+ texlive-fancyvrb
+ texlive-fvextra
+ texlive-latex-float
+ texlive-latex-framed
+ texlive-latex-ifplatform
+ texlive-latex-newfloat
+ texlive-lineno
+ texlive-xstring))
+ (home-page "https://ctan.org/pkg/minted")
+ (synopsis "Highlight source code in LaTeX documents")
+ (description "This package facilitates expressive syntax highlighting in
+LaTeX using the Pygments library. This package also provides options to
+customize the highlighted source code output using fancyvrb and fvextra.")
+ (license license:lppl1.3+))))
+
(define-public texlive-caption
(let ((template (simple-texlive-package
"texlive-caption"
@@ -11151,6 +11315,28 @@ span the full width of a page; it improves upon floatfig, and allows
tables and figures to be set left/right or alternating on even/odd pages.")
(license license:lppl1.3+)))
+(define-public texlive-fvextra
+ (let ((template (simple-texlive-package
+ "texlive-fvextra"
+ (list "/doc/latex/fvextra/"
+ "/source/latex/fvextra/"
+ "/tex/latex/fvextra/")
+ (base32
+ "0nawx1fh55yhqspy5jgss2qmwpqmikfrg7628smk931rph9nq0aa"))))
+ (package
+ (inherit template)
+ (arguments
+ (substitute-keyword-arguments (package-arguments template)
+ ((#:tex-directory _ #t)
+ "latex/fvextra")))
+ (home-page "https://ctan.org/macros/latex/contrib/fvextra")
+ (synopsis "Extensions and patches for fancyvrb")
+ (description
+ "This package provides several extensions to fancyvrb, including
+automatic line breaking and improved math mode. It also patches some fancyvrb
+internals.")
+ (license license:lppl1.3+))))
+
(define-public bibtool
(package
(name "bibtool")
@@ -11196,7 +11382,7 @@ and selecting references used in a publication.")
texlive-booktabs
texlive-endnotes
texlive-etoolbox
- texlive-generic-xstring
+ texlive-xstring
texlive-latex-draftwatermark
texlive-latex-fancyhdr
texlive-latex-float
@@ -11497,6 +11683,8 @@ Polish of standard ``LaTeX names''.")
"tex/latex/mdframed/")
(base32 "1i5rm946wg43rjckxlfhx79zfx5cgd3bxk71206hd1dqkrgpdpa8")
#:trivial? #t))
+ (propagated-inputs (list texlive-latex-needspace
+ texlive-zref))
(home-page "https://ctan.org/pkg/mdframed")
(synopsis "Framed environments that can split at page boundaries")
(description
@@ -11991,16 +12179,34 @@ which the command @code{\\tab} advances typesetting position to the next
defined ``tab stop''.")
(license license:lppl1.3+)))
-(define-public texlive-generic-soul
+(define-public texlive-soul
(let ((template (simple-texlive-package
- "texlive-generic-soul"
- (list "/doc/generic/soul/"
- "/tex/generic/soul/")
+ "texlive-soul"
+ (list "doc/generic/soul/"
+ "source/generic/soul/"
+ "tex/generic/soul/")
(base32
- "11jdgvfpcv10y5j898495lf29k2m03x39v9jzb4v79w4cgxcmfps")
- #:trivial? #t)))
+ "0ikipdswzsafi4rr6q9xh3hkxk2n2683ym1879qcax41xs6cizdl"))))
(package
(inherit template)
+ (outputs '("out" "doc"))
+ (arguments
+ (substitute-keyword-arguments (package-arguments template)
+ ((#:tex-directory _ #t) "generic/soul")
+ ((#:build-targets _ '()) '(list "soul.ins"))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "source/generic/soul/")))
+ (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 "http://www.ctan.org/pkg/soul")
(synopsis "Hyphenation for letterspacing, underlining, and more")
(description
@@ -12012,9 +12218,11 @@ syllable. The package itself does not support UTF-8 input in ordinary
(PDF)LaTeX; some UTF-8 support is offered by package @code{soulutf8}.")
(license license:lppl))))
-(define-public texlive-generic-xstring
+(define-deprecated-package texlive-generic-soul texlive-soul)
+
+(define-public texlive-xstring
(let ((template (simple-texlive-package
- "texlive-generic-xstring"
+ "texlive-xstring"
(list "/doc/generic/xstring/"
"/tex/generic/xstring/")
(base32
@@ -12033,6 +12241,8 @@ recurrences of, a substring. The package works equally in Plain TeX and LaTeX
(expandable) macros.")
(license license:lppl1.3c))))
+(define-deprecated texlive-generic-xstring texlive-xstring)
+
(define-public texlive-substr
(package
(inherit (simple-texlive-package