gnu: texlive-arev: Fix typo.
[jackhill/guix/guix.git] / gnu / packages / tex.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
4 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
6 ;;; Copyright © 2016, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
7 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
8 ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
9 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
10 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
11 ;;; Copyright © 2017, 2020 Marius Bakke <mbakke@fastmail.com>
12 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
13 ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
14 ;;; Copyright © 2018, 2020 Arun Isaac <arunisaac@systemreboot.net>
15 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
16 ;;; Copyright © 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
17 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
18 ;;;
19 ;;; This file is part of GNU Guix.
20 ;;;
21 ;;; GNU Guix is free software; you can redistribute it and/or modify it
22 ;;; under the terms of the GNU General Public License as published by
23 ;;; the Free Software Foundation; either version 3 of the License, or (at
24 ;;; your option) any later version.
25 ;;;
26 ;;; GNU Guix is distributed in the hope that it will be useful, but
27 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
28 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 ;;; GNU General Public License for more details.
30 ;;;
31 ;;; You should have received a copy of the GNU General Public License
32 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33
34 (define-module (gnu packages tex)
35 #:use-module ((guix licenses) #:prefix license:)
36 #:use-module (guix packages)
37 #:use-module (guix download)
38 #:use-module (guix build-system gnu)
39 #:use-module (guix build-system perl)
40 #:use-module (guix build-system python)
41 #:use-module (guix build-system qt)
42 #:use-module (guix build-system trivial)
43 #:use-module (guix build-system texlive)
44 #:use-module (guix utils)
45 #:use-module (guix git-download)
46 #:use-module (guix svn-download)
47 #:use-module (gnu packages)
48 #:use-module (gnu packages algebra)
49 #:use-module (gnu packages autotools)
50 #:use-module (gnu packages bash)
51 #:use-module (gnu packages boost)
52 #:use-module (gnu packages compression)
53 #:use-module (gnu packages fontutils)
54 #:use-module (gnu packages gd)
55 #:use-module (gnu packages ghostscript)
56 #:use-module (gnu packages graphviz)
57 #:use-module (gnu packages gtk)
58 #:use-module (gnu packages icu4c)
59 #:use-module (gnu packages image)
60 #:use-module (gnu packages libreoffice)
61 #:use-module (gnu packages lua)
62 #:use-module (gnu packages multiprecision)
63 #:use-module (gnu packages pdf)
64 #:use-module (gnu packages perl)
65 #:use-module (gnu packages perl-check)
66 #:use-module (gnu packages pkg-config)
67 #:use-module (gnu packages python)
68 #:use-module (gnu packages python-xyz)
69 #:use-module (gnu packages qt)
70 #:use-module (gnu packages ruby)
71 #:use-module (gnu packages shells)
72 #:use-module (gnu packages base)
73 #:use-module (gnu packages gawk)
74 #:use-module (gnu packages web)
75 #:use-module (gnu packages xml)
76 #:use-module (gnu packages xorg)
77 #:use-module (gnu packages xdisorg)
78 #:use-module (gnu packages texinfo)
79 #:use-module (ice-9 ftw)
80 #:use-module (ice-9 match)
81 #:use-module ((srfi srfi-1) #:hide (zip)))
82
83 (define* (simple-texlive-package name locations hash
84 #:key trivial?)
85 "Return a template for a simple TeX Live package with the given NAME,
86 downloading from a list of LOCATIONS in the TeX Live repository, and expecting
87 the provided output HASH. If TRIVIAL? is provided, all files will simply be
88 copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
89 (define with-documentation?
90 (and trivial?
91 (any (lambda (location)
92 (string-prefix? "/doc" location))
93 locations)))
94 (package
95 (name name)
96 (version (number->string %texlive-revision))
97 (source (texlive-origin name version
98 locations hash))
99 (outputs (if with-documentation?
100 '("out" "doc")
101 '("out")))
102 (build-system (if trivial?
103 gnu-build-system
104 texlive-build-system))
105 (arguments
106 (let ((copy-files
107 `(lambda* (#:key outputs inputs #:allow-other-keys)
108 (let (,@(if with-documentation?
109 `((doc (string-append (assoc-ref outputs "doc")
110 "/share/texmf-dist/")))
111 '())
112 (out (string-append (assoc-ref outputs "out")
113 "/share/texmf-dist/")))
114 ,@(if with-documentation?
115 '((mkdir-p doc)
116 (copy-recursively
117 (string-append (assoc-ref inputs "source") "/doc")
118 (string-append doc "/doc")))
119 '())
120 (mkdir-p out)
121 (copy-recursively (assoc-ref inputs "source") out)
122 ,@(if with-documentation?
123 '((delete-file-recursively (string-append out "/doc")))
124 '())
125 #t))))
126 (if trivial?
127 `(#:tests? #f
128 #:phases
129 (modify-phases %standard-phases
130 (delete 'configure)
131 (replace 'build (const #t))
132 (replace 'install ,copy-files)))
133 `(#:phases
134 (modify-phases %standard-phases
135 (add-after 'install 'copy-files ,copy-files))))))
136 (home-page #f)
137 (synopsis #f)
138 (description #f)
139 (license #f)))
140
141 (define hyph-utf8-scripts
142 (origin
143 (method svn-fetch)
144 (uri (texlive-ref "generic" "hyph-utf8"))
145 (file-name (string-append "hyph-utf8-scripts-"
146 (number->string %texlive-revision)
147 "-checkout"))
148 (sha256
149 (base32
150 "0lk7shx768sxvgr85y8bnmmnj8x4bbkgpxrz3z8jp8avi33prw83"))))
151
152 (define (texlive-hyphen-package name code locations hash)
153 "Return a TeX Live hyphenation package with the given NAME, using source
154 files from LOCATIONS with expected checksum HASH. CODE is not currently in use."
155 (let ((parent (simple-texlive-package
156 name locations hash #:trivial? #t)))
157 (package
158 (inherit parent)
159 (arguments
160 (substitute-keyword-arguments (package-arguments parent)
161 ((#:phases phases)
162 `(modify-phases ,phases
163 (replace 'build
164 (lambda* (#:key inputs outputs #:allow-other-keys)
165 (let* ((out (assoc-ref outputs "out"))
166 (root (string-append out "/share/texmf-dist"))
167 (patterns
168 (string-append root "/tex/generic/hyph-utf8/patterns/txt/"))
169 (loaders
170 (string-append root "/tex/generic/hyph-utf8/loadhyph"))
171 (ptex
172 (string-append root "/tex/generic/hyph-utf8/patterns/ptex"))
173 (quote
174 (string-append root "/tex/generic/hyph-utf8/patterns/quote")))
175 (mkdir "scripts")
176 (copy-recursively
177 (assoc-ref inputs "hyph-utf8-scripts") "scripts")
178
179 ;; Prepare target directories
180 (mkdir-p patterns)
181 (mkdir-p loaders)
182 (mkdir-p ptex)
183 (mkdir-p quote)
184
185 ;; Generate plain patterns
186 (with-directory-excursion "scripts"
187 (substitute* "lib/tex/hyphen/path.rb"
188 (("^([[:blank:]]+)TeXROOT = .*" _ indent)
189 (string-append indent "TeXROOT = \""
190 (getcwd) "/..\"\n")))
191
192 (substitute* "generate-plain-patterns.rb"
193 ;; Ruby 2 does not need this.
194 (("require 'unicode'") "")
195 ;; Write directly to the output directory
196 (("File\\.join\\(PATH::TXT")
197 (string-append "File.join(\"" patterns "\""))
198 (("File\\.join\\(PATH::QUOTE")
199 (string-append "File.join(\"" quote "\"")))
200 (invoke "ruby" "generate-plain-patterns.rb")
201
202 ;; Build pattern loaders
203 (substitute* "generate-pattern-loaders.rb"
204 (("File\\.join\\(PATH::LOADER")
205 (string-append "File.join(\"" loaders "\"")))
206
207 (invoke "ruby" "generate-pattern-loaders.rb")
208
209 ;; Build ptex patterns
210 (substitute* "generate-ptex-patterns.rb"
211 (("File\\.join\\(PATH::PTEX")
212 (string-append "File.join(\"" ptex "\"")))
213 (invoke "ruby" "generate-ptex-patterns.rb")))))))))
214 (native-inputs
215 `(("ruby" ,ruby)
216 ("ruby-hydra" ,ruby-hydra)
217 ("hyph-utf8-scripts" ,hyph-utf8-scripts)))
218 (home-page "https://ctan.org/pkg/hyph-utf8"))))
219
220 (define texlive-extra-src
221 (origin
222 (method url-fetch)
223 (uri "ftp://tug.org/historic/systems/texlive/2019/texlive-20190410-extra.tar.xz")
224 (sha256 (base32
225 "13ncf2an4nlqv18lki6y2p6pcsgs1i54zqkhfwprax5j53bk70j8"))))
226
227 (define texlive-texmf-src
228 (origin
229 (method url-fetch)
230 (uri "ftp://tug.org/historic/systems/texlive/2019/texlive-20190410-texmf.tar.xz")
231 (sha256 (base32
232 "00n4qh9fj8v9zzy3y488hpfq1g3dnnh72y4yjsaikfcqpi59gv62"))))
233
234 (define-public texlive-bin
235 (package
236 (name "texlive-bin")
237 (version "20190410")
238 (source
239 (origin
240 (method url-fetch)
241 (uri (string-append "ftp://tug.org/historic/systems/texlive/2019/"
242 "texlive-" version "-source.tar.xz"))
243 (sha256
244 (base32
245 "1dfps39q6bdr1zsbp9p74mvalmy3bycihv19sb9c6kg30kprz8nj"))
246 (patches
247 (let ((arch-patch
248 (lambda (name revision hash)
249 (origin
250 (method url-fetch)
251 (uri (string-append "https://git.archlinux.org/svntogit/packages.git"
252 "/plain/trunk/" name "?h=packages/texlive-bin"
253 "&id=" revision))
254 (file-name (string-append "texlive-bin-" name))
255 (sha256 (base32 hash)))))
256 (arch-revision "49d7fe25e5ea63f136ebc20270c1d8fc9b00041c"))
257 (list
258 (arch-patch "pdftex-poppler0.76.patch" arch-revision
259 "03vc88dz37mjjyaspzv0fik2fp5gp8qv82114869akd1dhszbaax")
260 (search-patch "texlive-bin-poppler-0.83.patch")
261 (arch-patch "texlive-poppler-0.84.patch" arch-revision
262 "1ia6cr99krk4ipx4hdi2qdb98bh2h26mckjlpxdzrjnfhlnghksa")
263 (search-patch "texlive-bin-poppler-0.86.patch"))))
264 (modules '((guix build utils)
265 (ice-9 ftw)))
266 (snippet
267 '(begin
268 (with-directory-excursion "libs"
269 (let ((preserved-directories '("." ".." "lua53" "luajit")))
270 ;; Delete bundled software, except Lua which cannot easily be
271 ;; used as an external dependency.
272 (for-each delete-file-recursively
273 (scandir "."
274 (lambda (file)
275 (and (not (member file preserved-directories))
276 (eq? 'directory (stat:type (stat file)))))))))
277 ;; TODO: Unbundle stuff in texk/dvisvgm/dvisvgm-src/libs too.
278 #t))))
279 (build-system gnu-build-system)
280 (inputs
281 `(("texlive-extra-src" ,texlive-extra-src)
282 ("texlive-scripts"
283 ,(origin
284 (method svn-fetch)
285 (uri (svn-reference
286 (url (string-append "svn://www.tug.org/texlive/tags/"
287 %texlive-tag "/Master/texmf-dist/"
288 "/scripts/texlive"))
289 (revision %texlive-revision)))
290 (file-name (string-append "texlive-scripts-"
291 (number->string %texlive-revision)
292 "-checkout"))
293 (sha256
294 (base32
295 "1cj04svl8bpfwjr4gqfcc04rmklz3aggrxvgj7q5bxrh7c7g18xh"))))
296 ("cairo" ,cairo)
297 ("fontconfig" ,fontconfig)
298 ("fontforge" ,fontforge)
299 ("freetype" ,freetype)
300 ("gd" ,gd)
301 ("gmp" ,gmp)
302 ("ghostscript" ,ghostscript)
303 ("graphite2" ,graphite2)
304 ("harfbuzz" ,harfbuzz)
305 ("icu4c" ,icu4c)
306 ("libpaper" ,libpaper)
307 ("libpng" ,libpng)
308 ("libxaw" ,libxaw)
309 ("libxt" ,libxt)
310 ("mpfr" ,mpfr)
311 ("perl" ,perl)
312 ("pixman" ,pixman)
313 ("poppler" ,poppler)
314 ("potrace" ,potrace)
315 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
316 ("ruby" ,ruby)
317 ("tcsh" ,tcsh)
318 ("teckit" ,teckit)
319 ("zlib" ,zlib)
320 ("zziplib" ,zziplib)))
321 (native-inputs
322 `(("pkg-config" ,pkg-config)))
323 (arguments
324 `(#:out-of-source? #t
325 #:configure-flags
326 '("--disable-static"
327 "--disable-native-texlive-build"
328 "--with-system-cairo"
329 "--with-system-freetype2"
330 "--with-system-gd"
331 "--with-system-gmp"
332 "--with-system-graphite2"
333 "--with-system-harfbuzz"
334 "--with-system-icu"
335 "--with-system-libgs"
336 "--with-system-libpaper"
337 "--with-system-libpng"
338 "--with-system-mpfr"
339 "--with-system-pixman"
340 "--with-system-poppler"
341 "--with-system-potrace"
342 "--with-system-teckit"
343 "--with-system-xpdf"
344 "--with-system-zlib"
345 "--with-system-zziplib")
346
347 ;; Disable tests on mips64/aarch64 to cope with a failure of luajiterr.test.
348 ;; XXX FIXME fix luajit properly on mips64 and aarch64.
349 #:tests? ,(let ((s (or (%current-target-system)
350 (%current-system))))
351 (not (or (string-prefix? "aarch64" s)
352 (string-prefix? "mips64" s))))
353 #:phases
354 (modify-phases %standard-phases
355 (add-after 'unpack 'configure-ghostscript-executable
356 ;; ps2eps.pl uses the "gswin32c" ghostscript executable on Windows,
357 ;; and the "gs" ghostscript executable on Unix. It detects Unix by
358 ;; checking for the existence of the /usr/bin directory. Since
359 ;; Guix System does not have /usr/bin, it is also detected as Windows.
360 (lambda* (#:key inputs #:allow-other-keys)
361 (substitute* "utils/ps2eps/ps2eps-src/bin/ps2eps.pl"
362 (("gswin32c") "gs"))
363 (substitute* "texk/texlive/linked_scripts/epstopdf/epstopdf.pl"
364 (("\"gs\"")
365 (string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\"")))
366 #t))
367 (add-after 'unpack 'use-code-for-new-poppler
368 (lambda _
369 (copy-file "texk/web2c/pdftexdir/pdftoepdf-poppler0.76.0.cc"
370 "texk/web2c/pdftexdir/pdftoepdf.cc")
371 (copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.76.0.cc"
372 "texk/web2c/pdftexdir/pdftosrc.cc")
373 #t))
374 (add-after 'unpack 'patch-dvisvgm-build-files
375 (lambda _
376 ;; XXX: Ghostscript is detected, but HAVE_LIBGS is never set, so
377 ;; the appropriate linker flags are not added.
378 (substitute* "texk/dvisvgm/configure"
379 (("^have_libgs=yes" all)
380 (string-append all "\nHAVE_LIBGS=1")))
381 #t))
382 (add-after 'unpack 'disable-failing-test
383 (lambda _
384 ;; FIXME: This test fails on 32-bit architectures since Glibc 2.28:
385 ;; <https://bugzilla.redhat.com/show_bug.cgi?id=1631847>.
386 (substitute* "texk/web2c/omegafonts/check.test"
387 (("^\\./omfonts -ofm2opl \\$srcdir/tests/check tests/xcheck \\|\\| exit 1")
388 "./omfonts -ofm2opl $srcdir/tests/check tests/xcheck || exit 77"))
389 #t))
390 (add-after 'install 'postint
391 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
392 (let* ((out (assoc-ref outputs "out"))
393 (share (string-append out "/share"))
394 (texlive-extra (assoc-ref inputs "texlive-extra-src"))
395 (unpack (assoc-ref %standard-phases 'unpack))
396 (patch-source-shebangs
397 (assoc-ref %standard-phases 'patch-source-shebangs)))
398 (substitute* (string-append share "/texmf-dist/web2c/texmf.cnf")
399 ;; Don't truncate lines.
400 (("^error_line = .*$") "error_line = 254\n")
401 (("^half_error_line = .*$") "half_error_line = 238\n")
402 (("^max_print_line = .*$") "max_print_line = 1000\n"))
403 ;; Create symbolic links for the latex variants and their
404 ;; man pages.
405 (with-directory-excursion (string-append out "/bin/")
406 (for-each symlink
407 '("pdftex" "pdftex" "xetex" "luatex")
408 '("latex" "pdflatex" "xelatex" "lualatex")))
409 (with-directory-excursion (string-append share "/man/man1/")
410 (symlink "luatex.1" "lualatex.1"))
411 ;; Unpack texlive-extra and install tlpkg.
412 (mkdir "texlive-extra")
413 (with-directory-excursion "texlive-extra"
414 (apply unpack (list #:source texlive-extra))
415 (apply patch-source-shebangs (list #:source texlive-extra))
416 (invoke "mv" "tlpkg" share))
417 (let ((scripts (string-append share "/texmf-dist/scripts/texlive/")))
418 (mkdir-p scripts)
419 (copy-recursively (assoc-ref inputs "texlive-scripts") scripts)
420 ;; Make sure that fmtutil can find its Perl modules.
421 (substitute* (string-append scripts "fmtutil.pl")
422 (("\\$TEXMFROOT/") (string-append share "/"))))
423
424 ;; texlua shebangs are not patched by the patch-source-shebangs
425 ;; phase because the texlua executable does not exist at that
426 ;; time.
427 (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))
428 (with-directory-excursion out
429 (patch-source-shebangs))))))))
430 (native-search-paths
431 (list (search-path-specification
432 (variable "TEXMF")
433 (files '("share/texmf-dist"))
434 (separator #f))
435 (search-path-specification
436 (variable "TEXMFCNF")
437 (files '("share/texmf-dist/web2c"))
438 (separator #f))))
439 (synopsis "TeX Live, a package of the TeX typesetting system")
440 (description
441 "TeX Live provides a comprehensive TeX document production system.
442 It includes all the major TeX-related programs, macro packages, and fonts
443 that are free software, including support for many languages around the
444 world.
445
446 This package contains the binaries.")
447 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
448 (home-page "https://www.tug.org/texlive/")))
449
450 \f
451 (define texlive-docstrip
452 (package
453 (inherit (simple-texlive-package
454 "texlive-docstrip"
455 (list "/tex/latex/base/docstrip.tex")
456 (base32
457 "1f9sx1lp7v34zwm186msf03q2h28rrg0lh65z59zc0cvqffs6dvb")
458 #:trivial? #t))
459 (home-page "https://www.ctan.org/texlive")
460 (synopsis "Utility to strip documentation from TeX files.")
461 (description "This package provides the docstrip utility to strip
462 documentation from TeX files. It is part of the LaTeX base.")
463 (license license:lppl1.3+)))
464
465 (define-public texlive-unicode-data
466 (package
467 (inherit (simple-texlive-package
468 "texlive-unicode-data"
469 (list "/tex/generic/unicode-data/"
470 "/doc/generic/unicode-data/")
471 (base32
472 "0zy4v9y667cka5fi4dnc6x500907812y7pcaf63s5qxi8l7khxxy")
473 #:trivial? #t))
474 (home-page "https://www.ctan.org/pkg/unicode-data")
475 (synopsis "Unicode data and loaders for TeX")
476 (description "This bundle provides generic access to Unicode Consortium
477 data for TeX use. It contains a set of text files provided by the Unicode
478 Consortium which are currently all from Unicode 8.0.0, with the exception of
479 @code{MathClass.txt} which is not currently part of the Unicode Character
480 Database. Accompanying these source data are generic TeX loader files
481 allowing this data to be used as part of TeX runs, in particular in building
482 format files. Currently there are two loader files: one for general character
483 set up and one for initializing XeTeX character classes as has been carried
484 out to date by @code{unicode-letters.tex}. ")
485 (license license:lppl1.3c+)))
486
487 (define-public texlive-generic-unicode-data
488 (deprecated-package "texlive-generic-unicode-data" texlive-unicode-data))
489
490 (define-public texlive-hyphen-base
491 (package
492 (inherit (simple-texlive-package
493 "texlive-hyphen-base"
494 (list "/tex/generic/config/language.dat"
495 "/tex/generic/config/language.dat.lua"
496 "/tex/generic/config/language.def"
497 "/tex/generic/config/language.us"
498 "/tex/generic/config/language.us.def"
499 "/tex/generic/config/language.us.lua"
500 "/tex/generic/hyphen/dumyhyph.tex"
501 "/tex/generic/hyphen/hyphen.tex"
502 "/tex/generic/hyphen/hypht1.tex"
503 "/tex/generic/hyphen/zerohyph.tex")
504 (base32
505 "0f19nml4hdx9lh7accqdk1b9ismwfm2523l5zsc4kb4arysgcakz")
506 #:trivial? #t))
507 (home-page "https://tug.org/texlive/")
508 (synopsis "Core hyphenation support files")
509 (description "This package includes Knuth's original @file{hyphen.tex},
510 @file{zerohyph.tex} to disable hyphenation, @file{language.us} which starts
511 the autogenerated files @file{language.dat} and @file{language.def} (and
512 default versions of those), etc.")
513 (license license:knuth)))
514
515 (define-public texlive-dvips
516 (package
517 (inherit (simple-texlive-package
518 "texlive-dvips"
519 (list "/doc/man/man1/afm2tfm.1"
520 "/doc/man/man1/dvips.1"
521 "/dvips/base/"
522 "/dvips/config/"
523 "/fonts/enc/dvips/base/"
524 "/tex/generic/dvips/")
525 (base32
526 "1qr7h0ahycmz5wmpv54glfss9jqdmmyymj6kim626d1c8v9bmg86")
527 #:trivial? #t))
528 (home-page "https://www.ctan.org/pkg/dvips")
529 (synopsis "DVI to PostScript drivers")
530 (description "This package provides files needed for converting DVI files
531 to PostScript.")
532 (license license:lppl)))
533
534 (define-public texlive-tex-ini-files
535 (package
536 (inherit (simple-texlive-package
537 "texlive-tex-ini-files"
538 (list "/tex/generic/tex-ini-files/")
539 (base32
540 "0q1g62jg0qiqslm93ycvm30bw8ydmssjdshzsnzl7n2vpd62qfi2")
541 #:trivial? #t))
542 (home-page "https://www.ctan.org/pkg/tex-ini-files")
543 (synopsis "Files for creating TeX formats")
544 (description "This bundle provides a collection of model \".ini\" files
545 for creating TeX formats. These files are commonly used to introduced
546 distribution-dependent variations in formats. They are also used to
547 allow existing format source files to be used with newer engines, for example
548 to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.")
549 (license license:public-domain)))
550
551 (define-public texlive-generic-tex-ini-files
552 (deprecated-package "texlive-generic-tex-ini-files" texlive-tex-ini-files))
553
554 (define-public texlive-metafont-base
555 (package
556 (name "texlive-metafont-base")
557 (version (number->string %texlive-revision))
558 (source (origin
559 (method svn-fetch)
560 (uri (svn-reference
561 (url (string-append "svn://www.tug.org/texlive/tags/"
562 %texlive-tag "/Master/texmf-dist/"
563 "/metafont"))
564 (revision %texlive-revision)))
565 (file-name (string-append name "-" version "-checkout"))
566 (sha256
567 (base32
568 "1yl4n8cn5xqk2nc22zgzq6ymd7bhm6xx1mz3azip7i3ki4bhb5q5"))))
569 (build-system gnu-build-system)
570 (arguments
571 `(#:tests? #f ; no test target
572 #:phases
573 (modify-phases %standard-phases
574 (delete 'configure)
575 (replace 'build
576 (lambda* (#:key inputs #:allow-other-keys)
577 (let ((cwd (getcwd)))
578 (setenv "MFINPUTS"
579 (string-append cwd "/base:"
580 cwd "/misc:"
581 cwd "/roex:"
582 cwd "/feynmf:"
583 cwd "/mfpic:"
584 cwd "/config")))
585 (mkdir "build")
586 (with-directory-excursion "build"
587 (invoke "inimf" "mf.mf"))))
588 (replace 'install
589 (lambda* (#:key outputs #:allow-other-keys)
590 (let* ((out (assoc-ref outputs "out"))
591 (base (string-append out "/share/texmf-dist/web2c"))
592 (mf (string-append out "/share/texmf-dist/metafont/base")))
593 (mkdir-p base)
594 (mkdir-p mf)
595 (install-file "build/mf.base" base)
596 (copy-recursively "base" mf)
597 #t))))))
598 (native-inputs
599 `(("texlive-bin" ,texlive-bin)))
600 (home-page "https://www.ctan.org/pkg/metafont")
601 (synopsis "Metafont base files")
602 (description "This package provides the Metafont base files needed to
603 build fonts using the Metafont system.")
604 (license license:knuth)))
605
606 (define-public texlive-fontinst
607 (let ((template (simple-texlive-package
608 "texlive-fontinst"
609 (list "/doc/fonts/fontinst/"
610 "/doc/man/man1/fontinst.1"
611 "/doc/man/man1/fontinst.man1.pdf"
612
613 ;; This is used to build parts of
614 ;; /tex/fontinst/{base,misc}/ and
615 ;; /tex/latex/fontinst/fontdoc.sty.
616 "/source/fontinst/base/"
617
618 ;; These are not generated.
619 "/tex/fontinst/base/bbox.sty"
620 "/tex/fontinst/base/multislot.sty"
621 "/tex/fontinst/misc/glyphbox.mtx"
622 "/tex/fontinst/misc/glyphoff.mtx"
623 "/tex/fontinst/misc/glyphon.mtx"
624 "/tex/fontinst/misc/kernoff.mtx"
625 "/tex/fontinst/misc/kernon.mtx"
626
627 "/tex/fontinst/latinetx/"
628 "/tex/fontinst/latinmtx/"
629 "/tex/fontinst/mathmtx/"
630 "/tex/fontinst/smblmtx/"
631
632 "/scripts/texlive/fontinst.sh")
633 (base32
634 "0lprwib7n2ygfxvrw675vhif7ghyip2x6k70kqs9syp8lqxiizf8")
635 #:trivial? #t)))
636 (package
637 (inherit template)
638 (arguments
639 (substitute-keyword-arguments (package-arguments template)
640 ((#:modules _ '())
641 '((guix build gnu-build-system)
642 (guix build utils)
643 (ice-9 match)))
644 ((#:phases phases)
645 `(modify-phases ,phases
646 (replace 'build
647 (lambda* (#:key inputs #:allow-other-keys)
648 (setenv "TEXINPUTS"
649 (string-append (getcwd) "//:"
650 (getcwd) "/source/fontinst/base//:"
651 (assoc-ref inputs "texlive-docstrip") "//"))
652 (mkdir "build")
653 (invoke "tex" "-ini" "-interaction=scrollmode"
654 "-output-directory=build"
655 "fontinst.ins")))
656 ;; Since we're using docstrip without LaTeX we can't set \UseTDS
657 ;; or \BaseDirectory, so the generated files are just dumped in
658 ;; the "build" directory.
659 (add-after 'install 'install-generated-files
660 (lambda* (#:key outputs #:allow-other-keys)
661 (let* ((out (assoc-ref outputs "out"))
662 (root (string-append out "/share/texmf-dist")))
663 (for-each (match-lambda
664 ((dir files ...)
665 (for-each (lambda (file)
666 (install-file
667 (string-append "build/" file)
668 (string-append root dir)))
669 files)))
670 '(("/tex/fontinst/base"
671 "fontinst.sty"
672 "cfntinst.sty"
673 "xfntinst.sty"
674 "finstmsc.sty"
675 "fontinst.ini")
676 ("/tex/fontinst/misc"
677 "csc2x.tex"
678 "csckrn2x.tex"
679 "osf2x.tex")
680 ("/tex/latex/fontinst"
681 "fontdoc.sty")))
682 #t)))))))
683 (native-inputs
684 `(("texlive-bin" ,texlive-bin)
685 ("texlive-docstrip" ,texlive-docstrip)))
686 (home-page "https://www.ctan.org/pkg/fontinst")
687 (synopsis "Tools for converting and installing fonts for TeX and LaTeX")
688 (description "This package provides TeX macros for converting Adobe Font
689 Metric files to TeX metric and virtual font format. Fontinst helps mainly
690 with the number crunching and shovelling parts of font installation. This
691 means in practice that it creates a number of files which give the TeX
692 metrics (and related information) for a font family that TeX needs to do any
693 typesetting in these fonts.")
694 (license license:lppl1.1+))))
695
696 (define-public texlive-tex-fontinst-base
697 (deprecated-package "texlive-tex-fontinst-base" texlive-fontinst))
698
699 (define-public texlive-fontname
700 (package
701 (inherit (simple-texlive-package
702 "texlive-fontname"
703 (list "/doc/fonts/fontname/fontname.texi"
704 "/fonts/map/fontname/")
705 (base32
706 "0h5im5rnhycrrkd6z10f17m2caa8lv594wf482b68qjmnxfrqnxj")
707 #:trivial? #t))
708 (home-page "https://www.ctan.org/pkg/fontname")
709 (synopsis "Scheme for naming fonts in TeX")
710 (description "This is Fontname, a naming scheme for (the base part of)
711 external TeX font filenames. This makes at most eight-character names
712 from (almost) arbitrarily complex font names, thus helping portability of TeX
713 documents.")
714 (license license:public-domain)))
715
716 (define-public texlive-cm
717 (let ((template (simple-texlive-package
718 "texlive-cm"
719 (list "/fonts/source/public/cm/"
720 "/fonts/map/dvips/cm/cmtext-bsr-interpolated.map"
721 "/doc/fonts/cm/")
722 (base32
723 "09mvl94qrwlb9b4pkigi151l256v3djhwl4m5lgvk6yhn5y75zrp")
724 #:trivial? #t)))
725 (package
726 (inherit template)
727 (arguments
728 (substitute-keyword-arguments (package-arguments template)
729 ((#:modules modules '())
730 '((guix build gnu-build-system)
731 (guix build utils)
732 (srfi srfi-26)))
733 ((#:phases phases)
734 `(modify-phases ,phases
735 (replace 'build
736 (lambda* (#:key inputs #:allow-other-keys)
737 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
738 ;; Tell mf where to find mf.base
739 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
740 ;; Tell mf where to look for source files
741 (setenv "MFINPUTS"
742 (string-append (getcwd) "/fonts/source/public/cm/:"
743 mf "/share/texmf-dist/metafont/base")))
744 (for-each make-file-writable
745 (cons "fonts/source/public/cm/"
746 (find-files "fonts/source/public/cm/" ".*")))
747 (let ((build (string-append (getcwd) "/build"))
748 (pkdir (string-append (getcwd) "/pk/ljfour/public/cm/dpi600")))
749 (mkdir-p pkdir)
750 (mkdir-p build)
751 (with-directory-excursion "fonts/source/public/cm/"
752 (for-each (lambda (font)
753 (format #t "building font ~a\n" font)
754 (invoke "mf" "-progname=mf"
755 (string-append "-output-directory=" build)
756 (string-append "\\"
757 "mode:=ljfour; "
758 "mag:=1+0/600; "
759 "scrollmode; "
760 "input "
761 (basename font ".mf")))
762 (invoke "gftopk"
763 (string-append build "/"
764 (basename font ".mf") ".600gf")
765 (string-append pkdir "/"
766 (basename font ".mf") ".pk")))
767 (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$"))))
768 #t))
769 (add-after 'install 'install-generated-fonts
770 (lambda* (#:key inputs outputs #:allow-other-keys)
771 (let* ((out (assoc-ref outputs "out"))
772 (fonts (string-append out "/share/texmf-dist/fonts/"))
773 (pk (string-append fonts "pk"))
774 (tfm (string-append fonts "tfm/public/cm")))
775 (for-each (cut install-file <> tfm)
776 (find-files "build" "\\.*"))
777 (copy-recursively "pk" pk)
778 #t)))))))
779 (native-inputs
780 `(("texlive-bin" ,texlive-bin)
781 ("texlive-metafont-base" ,texlive-metafont-base)))
782 (home-page "https://www.ctan.org/pkg/cm")
783 (synopsis "Computer Modern fonts for TeX")
784 (description "This package provides the Computer Modern fonts by Donald
785 Knuth. The Computer Modern font family is a large collection of text,
786 display, and mathematical fonts in a range of styles, based on Monotype Modern
787 8A.")
788 (license license:knuth))))
789
790 (define-public texlive-fonts-cm
791 (deprecated-package "texlive-fonts-cm" texlive-cm))
792
793 (define-public texlive-cm-super
794 (let ((template (simple-texlive-package
795 "texlive-cm-super"
796 (list "/doc/fonts/cm-super/"
797 "/dvips/cm-super/"
798 "/fonts/afm/public/cm-super/"
799 "/fonts/enc/dvips/cm-super/"
800 "/fonts/map/dvips/cm-super/"
801 "/fonts/map/vtex/cm-super/"
802 "/fonts/type1/public/cm-super/"
803 "/tex/latex/cm-super/")
804 (base32
805 "1k3afl0x0bqbr5mnawbnp7rr2126dwn0vwnxzibm9ggvzqilnkm6")
806 #:trivial? #t)))
807 (package
808 (inherit template)
809 (arguments
810 (substitute-keyword-arguments (package-arguments template)
811 ((#:phases phases)
812 `(modify-phases ,phases
813 (delete 'reset-gzip-timestamps)))))
814 (home-page "https://www.ctan.org/pkg/cm-super")
815 (synopsis "Computer Modern Super family of fonts")
816 (description "The CM-Super family provides Adobe Type 1 fonts that replace
817 the T1/TS1-encoded Computer Modern (EC/TC), T1/TS1-encoded Concrete,
818 T1/TS1-encoded CM bright and LH Cyrillic fonts (thus supporting all European
819 languages except Greek), and bringing many ameliorations in typesetting
820 quality. The fonts exhibit the same metrics as the METAFONT-encoded
821 originals.")
822 ;; With font exception
823 (license license:gpl2+))))
824
825 (define-public texlive-fonts-cm-super
826 (deprecated-package "texlive-fonts-cm-super" texlive-cm-super))
827
828 (define-public texlive-courier
829 (package
830 (inherit (simple-texlive-package
831 "texlive-courier"
832 (list "/dvips/courier/"
833 "/fonts/afm/adobe/courier/"
834 "/fonts/afm/urw/courier/"
835 "/fonts/map/dvips/courier/"
836 "/fonts/tfm/adobe/courier/"
837 "/fonts/tfm/urw35vf/courier/"
838 "/fonts/type1/adobe/courier/"
839 "/fonts/type1/urw/courier/"
840 "/fonts/vf/adobe/courier/"
841 "/fonts/vf/urw35vf/courier/"
842 "/tex/latex/courier/"
843 "/tex4ht/ht-fonts/alias/adobe/courier/"
844 "/tex4ht/ht-fonts/unicode/adobe/courier/")
845 (base32
846 "1hfgisdi7mjf5156ax6d6zsbiq42zkmp1x5lg17rgzf61k6d6z1y")
847 #:trivial? #t))
848 (home-page "https://ctan.org/pkg/urw-base35")
849 (synopsis "URW Base 35 font pack for LaTeX")
850 (description "This package provides a drop-in replacements for the Courier
851 font from Adobe's basic set.")
852 ;; No license version specified.
853 (license license:gpl3+)))
854
855 (define-public texlive-lm
856 (package
857 (inherit (simple-texlive-package
858 "texlive-lm"
859 (list "/doc/fonts/lm/"
860 "/fonts/afm/public/lm/"
861 "/fonts/enc/dvips/lm/"
862 "/fonts/map/dvipdfm/lm/"
863 "/fonts/map/dvips/lm/"
864 "/fonts/opentype/public/lm/"
865 "/fonts/tfm/public/lm/"
866 "/fonts/type1/public/lm/"
867 "/tex/latex/lm/")
868 (base32
869 "0i1hwr8rp0jqyvs4qyplrirscd4w7lsgwsncyv3yzy80bsa56jq5")
870 #:trivial? #t))
871 (home-page "http://www.gust.org.pl/projects/e-foundry/latin-modern/")
872 (synopsis "Latin Modern family of fonts")
873 (description "The Latin Modern fonts are derived from the famous Computer
874 Modern fonts designed by Donald E. Knuth and described in Volume E of his
875 Computers & Typesetting series.")
876 ;; The GUST font license (GFL) is legally identical to the LaTeX Project
877 ;; Public License (LPPL), version 1.3c or later, but comes with an
878 ;; additional but not legally binding clause.
879 (license license:lppl1.3c+)))
880
881 (define-public texlive-fonts-lm
882 (deprecated-package "texlive-fonts-lm" texlive-lm))
883
884 (define-public texlive-fonts-knuth-lib
885 (package
886 (name "texlive-fonts-knuth-lib")
887 (version (number->string %texlive-revision))
888 (source (origin
889 (method svn-fetch)
890 (uri (svn-reference
891 (url (string-append "svn://www.tug.org/texlive/tags/"
892 %texlive-tag "/Master/texmf-dist/"
893 "/fonts/source/public/knuth-lib"))
894 (revision %texlive-revision)))
895 (file-name (string-append name "-" version "-checkout"))
896 (sha256
897 (base32
898 "0in9aqyi8jkyf9d16z0li50z5fpwj1iwgwm83gmvwqcf7chfs04y"))))
899 (build-system gnu-build-system)
900 (arguments
901 `(#:modules ((guix build gnu-build-system)
902 (guix build utils)
903 (srfi srfi-26))
904 #:tests? #f ; no tests
905 #:phases
906 (modify-phases %standard-phases
907 (delete 'configure)
908 (replace 'build
909 (lambda* (#:key inputs #:allow-other-keys)
910 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
911 ;; Tell mf where to find mf.base
912 (setenv "MFBASES"
913 (string-append mf "/share/texmf-dist/web2c"))
914 ;; Tell mf where to look for source files
915 (setenv "MFINPUTS"
916 (string-append (getcwd) ":"
917 mf "/share/texmf-dist/metafont/base")))
918 (mkdir "build")
919 (for-each (lambda (font)
920 (format #t "building font ~a\n" font)
921 (invoke "mf" "-progname=mf"
922 "-output-directory=build"
923 (string-append "\\"
924 "mode:=ljfour; "
925 "mag:=1; "
926 "batchmode; "
927 "input " font)))
928 (find-files "." "(manfnt|logo.+)\\.mf$"))
929 #t))
930 (replace 'install
931 (lambda* (#:key outputs #:allow-other-keys)
932 (let* ((out (assoc-ref outputs "out"))
933 (tfm (string-append
934 out "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
935 (mf (string-append
936 out "/share/texmf-dist/fonts/source/public/knuth-lib")))
937 (for-each (cut install-file <> tfm)
938 (find-files "build" "\\.*"))
939 (for-each (cut install-file <> mf)
940 (find-files "." "\\.mf"))
941 #t))))))
942 (native-inputs
943 `(("texlive-bin" ,texlive-bin)
944 ("texlive-metafont-base" ,texlive-metafont-base)))
945 (home-page "https://www.ctan.org/pkg/knuth-lib")
946 (synopsis "Small library of METAFONT sources")
947 (description "This is a collection of core TeX and METAFONT macro files
948 from Donald Knuth, including the plain format, plain base, and the MF logo
949 fonts.")
950 (license license:knuth)))
951
952 (define-public texlive-fonts-latex
953 (package
954 (name "texlive-fonts-latex")
955 (version (number->string %texlive-revision))
956 (source (origin
957 (method svn-fetch)
958 (uri (svn-reference
959 (url (string-append "svn://www.tug.org/texlive/tags/"
960 %texlive-tag "/Master/texmf-dist/"
961 "/fonts/source/public/latex-fonts"))
962 (revision %texlive-revision)))
963 (file-name (string-append name "-" version "-checkout"))
964 (sha256
965 (base32
966 "0ypsm4xv9cw0jckk2qc7gi9hcmhf31mrg56pz3llyx3yd9vq2lps"))))
967 (build-system gnu-build-system)
968 (arguments
969 `(#:modules ((guix build gnu-build-system)
970 (guix build utils)
971 (srfi srfi-1)
972 (srfi srfi-26))
973 #:tests? #f ; no tests
974 #:phases
975 (modify-phases %standard-phases
976 (delete 'configure)
977 (replace 'build
978 (lambda* (#:key inputs #:allow-other-keys)
979 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
980 ;; Tell mf where to find mf.base
981 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
982 ;; Tell mf where to look for source files
983 (setenv "MFINPUTS"
984 (string-append (getcwd) ":"
985 mf "/share/texmf-dist/metafont/base:"
986 (assoc-ref inputs "texlive-cm")
987 "/share/texmf-dist/fonts/source/public/cm")))
988 (mkdir "build")
989 (for-each (lambda (font)
990 (format #t "building font ~a\n" font)
991 (invoke "mf" "-progname=mf"
992 "-output-directory=build"
993 (string-append "\\"
994 "mode:=ljfour; "
995 "mag:=1; "
996 "batchmode; "
997 "input " font)))
998 '("icmcsc10" "icmex10" "icmmi8" "icmsy8" "icmtt8"
999 "ilasy8" "ilcmss8" "ilcmssb8" "ilcmssi8"
1000 "lasy5" "lasy6" "lasy7" "lasy8" "lasy9" "lasy10" "lasyb10"
1001 "lcircle10" "lcirclew10" "lcmss8" "lcmssb8" "lcmssi8"
1002 "line10" "linew10"))
1003 #t))
1004 (replace 'install
1005 (lambda* (#:key outputs #:allow-other-keys)
1006 (let* ((out (assoc-ref outputs "out"))
1007 (tfm (string-append
1008 out "/share/texmf-dist/fonts/tfm/public/latex-fonts"))
1009 (mf (string-append
1010 out "/share/texmf-dist/fonts/source/public/latex-fonts")))
1011 (for-each (cut install-file <> tfm)
1012 (find-files "build" "\\.*"))
1013 (for-each (cut install-file <> mf)
1014 (find-files "." "\\.mf"))
1015 #t))))))
1016 (native-inputs
1017 `(("texlive-bin" ,texlive-bin)
1018 ("texlive-metafont-base" ,texlive-metafont-base)
1019 ("texlive-cm" ,texlive-cm)))
1020 (home-page "https://www.ctan.org/pkg/latex-fonts")
1021 (synopsis "Collection of fonts used in LaTeX distributions")
1022 (description "This is a collection of fonts for use with standard LaTeX
1023 packages and classes. It includes invisible fonts (for use with the slides
1024 class), line and circle fonts (for use in the picture environment) and LaTeX
1025 symbol fonts.")
1026 (license license:lppl1.2+)))
1027
1028 (define-public texlive-latex-mflogo
1029 (package
1030 (name "texlive-latex-mflogo")
1031 (version (number->string %texlive-revision))
1032 (source
1033 (origin
1034 (method svn-fetch)
1035 (uri (texlive-ref "latex" "mflogo"))
1036 (file-name (string-append name "-" version "-checkout"))
1037 (sha256
1038 (base32
1039 "15i2ib6nvhf31g1b92c6njf7n0g29znlq7hbfp9ii7qabhcwwvrj"))))
1040 (build-system texlive-build-system)
1041 (arguments '(#:tex-directory "latex/mflogo"))
1042 (home-page "http://www.ctan.org/pkg/mflogo")
1043 (synopsis "LaTeX support for Metafont logo fonts")
1044 (description
1045 "This package provides LaTeX and font definition files to access the
1046 Knuthian mflogo fonts described in The Metafontbook and to typeset Metafont
1047 logos in LaTeX documents.")
1048 (license license:lppl)))
1049
1050 (define-public texlive-mflogo-font
1051 (package
1052 (inherit (simple-texlive-package
1053 "texlive-mflogo-font"
1054 (list "/doc/fonts/mflogo-font/README"
1055 "/fonts/afm/hoekwater/mflogo-font/"
1056 "/fonts/map/dvips/mflogo-font/"
1057 "/fonts/type1/hoekwater/mflogo-font/")
1058 (base32
1059 "094mknjv8ki2pvj1zin0f1z4f1w12g0cfqjiqcsawjsry4yfrmbg")
1060 #:trivial? #t))
1061 (home-page "https://www.ctan.org/pkg/mflogo-font")
1062 (synopsis "Metafont logo font")
1063 (description
1064 "These fonts were created in METAFONT by Knuth, for his own publications.
1065 At some stage, the letters P and S were added, so that the METAPOST logo could
1066 also be expressed. The fonts were originally issued (of course) as METAFONT
1067 source; they have since been autotraced and reissued in Adobe Type 1 format by
1068 Taco Hoekwater.")
1069 (license license:knuth)))
1070
1071 (define-public texlive-fonts-mflogo-font
1072 (deprecated-package "texlive-fonts-mflogo-font" texlive-mflogo-font))
1073
1074 (define-public texlive-amsfonts
1075 (let ((template (simple-texlive-package
1076 "texlive-amsfonts"
1077 (list "/source/latex/amsfonts/"
1078 "/fonts/source/public/amsfonts/"
1079 "/fonts/type1/public/amsfonts/"
1080 "/fonts/afm/public/amsfonts/"
1081 "/fonts/map/dvips/amsfonts/"
1082 "/tex/plain/amsfonts/"
1083 "/doc/fonts/amsfonts/")
1084 (base32
1085 "15q70nkjf8wqzbd5ivcdx3i2sdgqxjb38q0qn9a2qw9i0qcnx6zw"))))
1086 (package
1087 (inherit template)
1088 (arguments
1089 (substitute-keyword-arguments (package-arguments template)
1090 ((#:build-targets _ #t)
1091 '(list "amsfonts.ins"))
1092 ((#:tex-directory _ #t)
1093 "latex/amsfonts")
1094 ((#:modules modules '())
1095 `((guix build texlive-build-system)
1096 (guix build utils)
1097 (ice-9 match)
1098 (srfi srfi-1)
1099 (srfi srfi-26)))
1100 ((#:phases phases)
1101 `(modify-phases ,phases
1102 (add-before 'build 'build-fonts
1103 (lambda* (#:key inputs #:allow-other-keys)
1104 (let ((mf (assoc-ref inputs "texlive-union"))
1105 (src (string-append (getcwd) "/fonts/source/public/amsfonts/")))
1106 ;; Make METAFONT reproducible
1107 (setenv "SOURCE_DATE_EPOCH" "1")
1108 ;; Tell mf where to find mf.base
1109 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
1110 ;; Tell mf where to look for source files
1111 (setenv "MFINPUTS"
1112 (string-append src ":"
1113 src "/cmextra:"
1114 src "/cyrillic:"
1115 src "/dummy:"
1116 src "/symbols:"
1117 mf "/share/texmf-dist/metafont/base:"
1118 (assoc-ref inputs "texlive-cm")
1119 "/share/texmf-dist/fonts/source/public/cm")))
1120 (let ((build (string-append (getcwd) "/build-fonts")))
1121 (mkdir-p build)
1122 (with-directory-excursion "fonts/source/public/amsfonts"
1123 (for-each (lambda (font)
1124 (format #t "building font ~a\n" (basename font ".mf"))
1125 (with-directory-excursion (dirname font)
1126 (invoke "mf" "-progname=mf"
1127 (string-append "-output-directory=" build)
1128 (string-append "\\"
1129 "mode:=ljfour; "
1130 "mag:=1; "
1131 "nonstopmode; "
1132 "input "
1133 (getcwd) "/"
1134 (basename font ".mf")))))
1135 (find-files "." "[0-9]+\\.mf$"))))
1136
1137 ;; There are no metafont sources for the Euler fonts, so we
1138 ;; convert the afm files instead.
1139 (let ((build (string-append (getcwd) "/build-fonts/euler")))
1140 (mkdir build)
1141 (with-directory-excursion "fonts/afm/public/amsfonts/"
1142 (for-each (lambda (font)
1143 (format #t "converting afm font ~a\n" (basename font ".afm"))
1144 (invoke "afm2tfm" font
1145 (string-append build "/"
1146 (basename font ".tfm"))))
1147 (find-files "." "\\.afm$")))
1148
1149 ;; Frustratingly, not all fonts can be created this way. To
1150 ;; generate eufm8.tfm, for example, we first scale down
1151 ;; eufm10.afm to eufm8.pl, and then generate the tfm file from
1152 ;; the pl file.
1153 (setenv "TEXINPUTS"
1154 (string-append build "//:"
1155 (getcwd) "/fonts/afm/public/amsfonts//:"
1156 (getcwd) "/source/latex/amsfonts//:"
1157 (assoc-ref inputs "texlive-union") "//"))
1158 (with-directory-excursion build
1159 (for-each (match-lambda
1160 (((target-base target-size)
1161 (source-base source-size))
1162 (let ((factor (number->string
1163 (truncate/ (* 1000 target-size)
1164 source-size))))
1165 (invoke "tex"
1166 "-interaction=scrollmode"
1167 (string-append "\\input fontinst.sty "
1168 "\\transformfont{" target-base "}"
1169 "{\\scalefont{" factor "}"
1170 "{\\fromafm{" source-base "}}} "
1171 "\\bye")))
1172 (invoke "pltotf"
1173 (string-append target-base ".pl")
1174 (string-append target-base ".tfm"))
1175 (delete-file (string-append target-base ".pl"))))
1176
1177 '((("eufm8" 8) ("eufm10" 10))
1178
1179 (("eufb6" 6) ("eufb7" 7))
1180 (("eufb8" 8) ("eufb10" 10))
1181 (("eufb9" 9) ("eufb10" 10))
1182
1183 (("eufm6" 6) ("eufb7" 7))
1184 (("eufm9" 9) ("eufb10" 10))
1185
1186 (("eurb6" 6) ("eurb7" 7))
1187 (("eurb8" 8) ("eurb10" 10))
1188 (("eurb9" 9) ("eurb10" 10))
1189
1190 (("eurm6" 6) ("eurm7" 7))
1191 (("eurm8" 8) ("eurm10" 10))
1192 (("eurm9" 9) ("eurm10" 10))))))
1193 #t))
1194 (add-after 'install 'install-generated-fonts
1195 (lambda* (#:key inputs outputs #:allow-other-keys)
1196 (copy-recursively "build-fonts"
1197 (string-append
1198 (assoc-ref outputs "out")
1199 "/share/texmf-dist/fonts/tfm/public/amsfonts"))
1200 #t))))))
1201 (native-inputs
1202 `(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base
1203 texlive-cm
1204 texlive-metafont-base)))))
1205 (home-page "https://www.ctan.org/pkg/amsfonts")
1206 (synopsis "TeX fonts from the American Mathematical Society")
1207 (description
1208 "This package provides an extended set of fonts for use in mathematics,
1209 including: extra mathematical symbols; blackboard bold letters (uppercase
1210 only); fraktur letters; subscript sizes of bold math italic and bold Greek
1211 letters; subscript sizes of large symbols such as sum and product; added sizes
1212 of the Computer Modern small caps font; cyrillic fonts (from the University of
1213 Washington); Euler mathematical fonts. All fonts are provided as Adobe Type 1
1214 files, and all except the Euler fonts are provided as Metafont source. The
1215 distribution also includes the canonical Type 1 versions of the Computer
1216 Modern family of fonts. The Euler fonts are supported by separate packages;
1217 details can be found in the documentation.")
1218 (license license:silofl1.1))))
1219
1220 (define-public texlive-fonts-amsfonts
1221 (deprecated-package "texlive-fonts-amsfonts" texlive-amsfonts))
1222
1223 (define-public texlive-latex-amsfonts
1224 (deprecated-package "texlive-latex-amsfonts" texlive-amsfonts))
1225
1226 (define-public texlive-mkpattern
1227 (package
1228 (inherit (simple-texlive-package
1229 "texlive-mkpattern"
1230 (list "/doc/plain/mkpattern/README"
1231 "/doc/plain/mkpattern/mkpatdoc.tex"
1232 "/doc/plain/mkpattern/mkpatter.pdf"
1233 "/doc/plain/mkpattern/mkpattern-exmpl.tex"
1234 "/tex/plain/mkpattern/mkpatter.tex")
1235 (base32
1236 "0sxnkbcc802jl3fj56x9hvg978bpv15lhrwj0aykb4syq29l47ga")
1237 #:trivial? #t))
1238 (home-page "https://ctan.org/pkg/mkpattern")
1239 (synopsis "Utility for making hyphenation patterns")
1240 (description "Mkpattern is a general purpose program for the generation of
1241 hyphenation patterns, with definition of letter sets and template-like
1242 constructions. It also provides an easy way to handle different input and
1243 output encodings, and features generation of clean UTF-8 patterns.")
1244 (license license:lppl)))
1245
1246 ;; This provides etex.src which is needed to build various formats, including
1247 ;; luatex.fmt and pdflatex.fmt
1248 (define-public texlive-etex
1249 (let ((template (simple-texlive-package
1250 "texlive-etex"
1251 (list "/doc/etex/base/"
1252 "/doc/man/man1/etex.1"
1253 "/doc/man/man1/etex.man1.pdf"
1254 "/tex/plain/etex/"
1255 "/fonts/source/public/etex/")
1256 (base32
1257 "1qv6vxm5a8pw38gas3i69ivmsn79zj2yq5n5vdmh0rzic5hw2hmc")
1258 #:trivial? #t)))
1259 (package
1260 (inherit template)
1261 (arguments
1262 (substitute-keyword-arguments (package-arguments template)
1263 ((#:phases phases)
1264 `(modify-phases ,phases
1265 ;; Build tfm font.
1266 (replace 'build
1267 (lambda* (#:key inputs #:allow-other-keys)
1268 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
1269 ;; Tell mf where to find mf.base
1270 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
1271 ;; Tell mf where to look for source files
1272 (setenv "MFINPUTS"
1273 (string-append (getcwd)
1274 "/fonts/source/public/etex/:"
1275 mf "/share/texmf-dist/metafont/base:"
1276 (assoc-ref inputs "texlive-cm")
1277 "/share/texmf-dist/fonts/source/public/cm")))
1278 (invoke "mf" "-progname=mf"
1279 (string-append "\\"
1280 "mode:=ljfour; "
1281 "mag:=1; "
1282 "scrollmode; "
1283 "input xbmc10"))
1284 #t))
1285 (add-after 'install 'install-font
1286 (lambda* (#:key outputs #:allow-other-keys)
1287 (install-file
1288 "xbmc10.tfm"
1289 (string-append (assoc-ref outputs "out")
1290 "/share/texmf-dist/fonts/tfm/public/etex/"))
1291 #t))))))
1292 (native-inputs
1293 `(("texlive-bin" ,texlive-bin)
1294 ("texlive-metafont-base" ,texlive-metafont-base)
1295 ("texlive-cm" ,texlive-cm)))
1296 (home-page "https://www.ctan.org/pkg/etex")
1297 (synopsis "Extended version of TeX")
1298 (description
1299 "This package provides an extended version of TeX (which is capable of
1300 running as if it were TeX unmodified). E-TeX has been specified by the LaTeX
1301 team as the engine for the development of LaTeX2e; as a result, LaTeX
1302 programmers may assume e-TeX functionality. The pdftex engine directly
1303 incorporates the e-TeX extensions.")
1304 (license license:knuth))))
1305
1306 (define-public texlive-tex-plain
1307 (package
1308 (inherit (simple-texlive-package
1309 "texlive-tex-plain"
1310 (list "/tex/plain/")
1311 (base32
1312 "1m4qpaszwfv7j8a85rlwl7rs4iv5nlj67c1vvn6ysly72h9gjydb")
1313 #:trivial? #t))
1314 (home-page "https://www.ctan.org/pkg/plain")
1315 (synopsis "Plain TeX format and supporting files")
1316 (description
1317 "This package contains files used to build the Plain TeX format, as
1318 described in the TeXbook, together with various supporting files (some also
1319 discussed in the book).")
1320 (license license:knuth)))
1321
1322 (define-public texlive-helvetic
1323 (package
1324 (inherit (simple-texlive-package
1325 "texlive-helvetic"
1326 (list "/dvips/helvetic/"
1327 "/fonts/afm/adobe/helvetic/"
1328 "/fonts/afm/urw/helvetic/"
1329 "/fonts/map/dvips/helvetic/"
1330 "/fonts/tfm/adobe/helvetic/"
1331 "/fonts/tfm/monotype/helvetic/"
1332 "/fonts/tfm/urw35vf/helvetic/"
1333 "/fonts/type1/urw/helvetic/"
1334 "/fonts/vf/adobe/helvetic/"
1335 "/fonts/vf/monotype/helvetic/"
1336 "/fonts/vf/urw35vf/helvetic/"
1337 "/tex/latex/helvetic/")
1338 (base32
1339 "0c3f1ly7y6404z0akbfbbfql13sz717v0n0g69qjpr69hi4n0nsl")
1340 #:trivial? #t))
1341 (home-page "https://ctan.org/pkg/urw-base35")
1342 (synopsis "URW Base 35 font pack for LaTeX")
1343 (description "This package provides a drop-in replacements for the Helvetica
1344 font from Adobe's basic set.")
1345 ;; No license version specified.
1346 (license license:gpl3+)))
1347
1348 (define-public texlive-hyphen-afrikaans
1349 (package
1350 (inherit (texlive-hyphen-package
1351 "texlive-hyphen-afrikaans" "af"
1352 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-af.tex")
1353 (base32
1354 "1k9k27a27bbrb0gz36191w32l2v6d3zbdh8zhrp4l3ild2pj3n4l")))
1355 (synopsis "Hyphenation patterns for Afrikaans")
1356 (description "The package provides hyphenation patterns for the Afrikaans
1357 language.")
1358 (license license:lppl1.3+)))
1359
1360 (define-public texlive-hyphen-ancientgreek
1361 (package
1362 (inherit (texlive-hyphen-package
1363 "texlive-hyphen-ancientgreek" "grc"
1364 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-grc.tex"
1365 "/tex/generic/hyphen/grahyph5.tex"
1366 "/tex/generic/hyphen/ibyhyph.tex")
1367 (base32
1368 "01326lb6z0s8krcfgs8i1pnjfrm4gr33rc53gy80f63qbv4ssxrw")))
1369 (synopsis "Hyphenation patterns for ancient Greek")
1370 (description "The package provides hyphenation patterns for ancient
1371 Greek.")
1372 (license license:lppl1.3+)))
1373
1374 (define-public texlive-hyphen-armenian
1375 (let ((template (texlive-hyphen-package
1376 "texlive-hyphen-armenian" "hy"
1377 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hy.tex")
1378 (base32
1379 "0hzny0npynsb07syxrpbfa5pkpj8r0j51pj64yxyfl1c0bak1fwp"))))
1380 (package
1381 (inherit template)
1382 (synopsis "Hyphenation patterns for Armenian")
1383 (description "The package provides hyphenation patterns for the Armenian
1384 language.")
1385 ;; Any version of the LGPL.
1386 (license license:lgpl3+))))
1387
1388 (define-public texlive-hyphen-basque
1389 (let ((template (texlive-hyphen-package
1390 "texlive-hyphen-basque" "eu"
1391 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-eu.tex")
1392 (base32
1393 "15w969g1jqzn68l2b2lzf7iv7g3kil02aba3if6cag3qcnq92ra9"))))
1394 (package
1395 (inherit template)
1396 (synopsis "Hyphenation patterns for Basque")
1397 (description "The package provides hyphenation patterns for the Basque
1398 language.")
1399 ;; Similar to Unicode license.
1400 (license (license:fsf-free
1401 "/tex/generic/hyph-utf8/patterns/tex/hyph-eu.tex")))))
1402
1403 (define-public texlive-hyphen-belarusian
1404 (package
1405 (inherit (texlive-hyphen-package
1406 "texlive-hyphen-belarusian" "be"
1407 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-be.tex")
1408 (base32
1409 "0ppm12wndaxv9da62dwkbnk7w9nijikn6jkc97m76xis338g2h02")))
1410 (synopsis "Hyphenation patterns for Belarusian")
1411 (description "The package provides hyphenation patterns for the Belarusian
1412 language.")
1413 (license license:expat)))
1414
1415 (define-public texlive-hyphen-bulgarian
1416 (package
1417 (inherit (texlive-hyphen-package
1418 "texlive-hyphen-bulgarian" "bg"
1419 (list "/doc/generic/hyph-utf8/bg/azbukaExtended.pdf"
1420 "/doc/generic/hyph-utf8/bg/azbukaExtended.tex"
1421 "/tex/generic/hyph-utf8/patterns/tex/hyph-bg.tex")
1422 (base32
1423 "0ngrgw2rmipxss76rgfk62x9nnsgwmaxxna2jqxxhybai3q39mx5")))
1424 (synopsis "Hyphenation patterns for Bulgarian")
1425 (description "The package provides hyphenation patterns for the Bulgarian
1426 language in T2A and UTF-8 encodings.")
1427 (license (license:non-copyleft
1428 "file:///tex/generic/hyph-utf8/patterns/tex/hyph-bg.tex"
1429 "Ancestral BSD variant"))))
1430
1431 (define-public texlive-hyphen-catalan
1432 (package
1433 (inherit (texlive-hyphen-package
1434 "texlive-hyphen-catalan" "ca"
1435 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ca.tex")
1436 (base32
1437 "10zzlfz5v8d9csg85ibpp2vfvmpqa56vbl85qy5gws099vygpayg")))
1438 (synopsis "Hyphenation patterns for Catalan")
1439 (description "The package provides hyphenation patterns for Catalan in
1440 T1/EC and UTF-8 encodings.")
1441 (license license:lppl1.0+)))
1442
1443 (define-public texlive-hyphen-chinese
1444 (package
1445 (inherit (texlive-hyphen-package
1446 "texlive-hyphen-chinese" "zh-latn-pinyin"
1447 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-zh-latn-pinyin.tex")
1448 (base32
1449 "1j68mry2zy91m1kbzwhin5q2jajf6xh48npdds8wvp1sqmzih2a3")))
1450 (synopsis "Hyphenation patterns for unaccented Chinese pinyin")
1451 (description "The package provides hyphenation patterns for unaccented
1452 Chinese pinyin T1/EC and UTF-8 encodings.")
1453 (license license:gpl2+)))
1454
1455 (define-public texlive-hyphen-churchslavonic
1456 (package
1457 (inherit (texlive-hyphen-package
1458 "texlive-hyphen-churchslavonic" "cu"
1459 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cu.tex")
1460 (base32
1461 "0fhbwaapq2213msbhgr0d1lw06ihmrqirxj092mn73d8ynl13qlh")))
1462 (synopsis "Hyphenation patterns for Church Slavonic")
1463 (description "The package provides hyphenation patterns for Church
1464 Slavonic in UTF-8 encoding.")
1465 (license license:expat)))
1466
1467 (define-public texlive-hyphen-coptic
1468 (package
1469 (inherit (texlive-hyphen-package
1470 "texlive-hyphen-coptic" "cop"
1471 (list "/tex/generic/hyph-utf8/patterns/tex-8bit/copthyph.tex"
1472 "/tex/generic/hyph-utf8/patterns/tex/hyph-cop.tex")
1473 (base32
1474 "1jlxxvyfa2aljizaa3qlcxyhqsrb4dawv3q3fbyp2lxz6ag9fy6m")))
1475 (synopsis "Hyphenation patterns for Coptic")
1476 (description "The package provides hyphenation patterns for Coptic in
1477 UTF-8 encoding as well as in ASCII-based encoding for 8-bit engines.")
1478 ;; No explicit license declaration, so we use the project license.
1479 (license license:lppl)))
1480
1481 (define-public texlive-hyphen-croatian
1482 (package
1483 (inherit (texlive-hyphen-package
1484 "texlive-hyphen-croatian" "hr"
1485 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hr.tex")
1486 (base32
1487 "12n9r2winai15jc622sqdwclgcs1s68r6vcf7ic8vvq0x9qhwc5v")))
1488 (synopsis "Hyphenation patterns for Croatian")
1489 (description "The package provides hyphenation patterns for Croatian in
1490 T1/EC and UTF-8 encodings.")
1491 (license license:lppl1.0+)))
1492
1493 (define-public texlive-hyphen-czech
1494 (package
1495 (inherit (texlive-hyphen-package
1496 "texlive-hyphen-czech" "cs"
1497 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cs.tex")
1498 (base32
1499 "1q37s6p8yfyi3rp1azbz421lg4lr4aiki8m631i4x9rmps89m8iq")))
1500 (synopsis "Hyphenation patterns for Czech")
1501 (description "The package provides hyphenation patterns for Czech in T1/EC
1502 and UTF-8 encodings.")
1503 (license license:gpl2+)))
1504
1505 (define-public texlive-hyphen-danish
1506 (package
1507 (inherit (texlive-hyphen-package
1508 "texlive-hyphen-danish" "da"
1509 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-da.tex")
1510 (base32
1511 "1vj8nip64rzcrcg3skm4vqad1ggqwgan74znrdns610wjcm1z9qd")))
1512 (synopsis "Hyphenation patterns for Danish")
1513 (description "The package provides hyphenation patterns for Danish in
1514 T1/EC and UTF-8 encodings.")
1515 ;; Either LPPL 1.3 or later, or Expat
1516 (license (list license:lppl1.3+ license:expat))))
1517
1518 (define-public texlive-hyphen-dutch
1519 (package
1520 (inherit (texlive-hyphen-package
1521 "texlive-hyphen-dutch" "nl"
1522 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-nl.tex")
1523 (base32
1524 "1bg9g790ksq5cn8qihai6pacmkp9vpf35h4771z361nvwa40l8yk")))
1525 (synopsis "Hyphenation patterns for Dutch")
1526 (description "The package provides hyphenation patterns for Dutch in T1/EC
1527 and UTF-8 encodings.")
1528 (license license:lppl1.0+)))
1529
1530 (define-public texlive-hyphen-english
1531 (package
1532 (inherit (texlive-hyphen-package
1533 "texlive-hyphen-english" '("en-gb" "en-us")
1534 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-en-gb.tex"
1535 "/tex/generic/hyph-utf8/patterns/tex/hyph-en-us.tex")
1536 (base32
1537 "08b3jihjaamcl1pvffi0s47nwavkm66l9mrrmby3l32dfpkprrc5")))
1538 (synopsis "Hyphenation patterns for American and British English")
1539 (description "The package provides additional hyphenation patterns for
1540 American and British English in ASCII encoding.")
1541 (license (license:non-copyleft
1542 "file:///tex/generic/hyph-utf8/patterns/tex/hyph-en-us.tex"
1543 "FSF all permissive license"))))
1544
1545 (define-public texlive-hyphen-esperanto
1546 (package
1547 (inherit (texlive-hyphen-package
1548 "texlive-hyphen-esperanto" "eo"
1549 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-eo.tex")
1550 (base32
1551 "1503kzn9bk4mm4ba35cka2hm8rz0v3j5l30v5rrsd4rqgpibcgic")))
1552 (synopsis "Hyphenation patterns for Esperanto")
1553 (description "The package provides hyphenation patterns for Esperanto ISO
1554 Latin 3 and UTF-8 encodings.")
1555 (license license:lppl1.0+)))
1556
1557 (define-public texlive-hyphen-estonian
1558 (package
1559 (inherit (texlive-hyphen-package
1560 "texlive-hyphen-estonian" "et"
1561 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-et.tex")
1562 (base32
1563 "1rdas2450ib02rwy65i69l86nyc9h15bl07xbbwhmhxfnj8zj4v8")))
1564 (synopsis "Hyphenation patterns for Estonian")
1565 (description "The package provides hyphenation patterns for Estonian in
1566 T1/EC and UTF-8 encodings.")
1567 ;; Dual licensed under either license.
1568 (license (list license:lppl1.3+ license:expat))))
1569
1570 (define-public texlive-hyphen-ethiopic
1571 (let ((template (texlive-hyphen-package
1572 "texlive-hyphen-ethiopic" "mul-ethi"
1573 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-mul-ethi.tex")
1574 (base32
1575 "1b93fc6j4aybh0pgq23hsn1njm6asf7sfz803fbj3ai0whsxd10l"))))
1576 (package
1577 (inherit template)
1578 (synopsis "Hyphenation patterns for Ethiopic scripts")
1579 (description "The package provides hyphenation patterns for languages
1580 written using the Ethiopic script for Unicode engines. They are not supposed
1581 to be linguistically relevant in all cases and should, for proper typography,
1582 be replaced by files tailored to individual languages.")
1583 (license license:expat))))
1584
1585 (define-public texlive-hyphen-finnish
1586 (package
1587 (inherit (texlive-hyphen-package
1588 "texlive-hyphen-finnish" "fi"
1589 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fi.tex")
1590 (base32
1591 "1f72b4ydb4zddvw2i004948khmwzigxkdkwfym5v1kkq0183sfpj")))
1592 (synopsis "Hyphenation patterns for Finnish")
1593 (description "The package provides hyphenation patterns for Finnish in
1594 T1/EC and UTF-8 encodings.")
1595 (license license:public-domain)))
1596
1597 (define-public texlive-hyphen-french
1598 (package
1599 (inherit (texlive-hyphen-package
1600 "texlive-hyphen-french" "fr"
1601 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fr.tex")
1602 (base32
1603 "0jc3kqys6cxjw8x8pzjln7z78l8s7f5rlyrkv7dzr1kiwnwilk9d")))
1604 (synopsis "Hyphenation patterns for French")
1605 (description "The package provides hyphenation patterns for French in
1606 T1/EC and UTF-8 encodings.")
1607 (license license:expat)))
1608
1609 (define-public texlive-hyphen-friulan
1610 (package
1611 (inherit (texlive-hyphen-package
1612 "texlive-hyphen-friulan" "fur"
1613 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fur.tex")
1614 (base32
1615 "1dlnh8slpf50mryxv7zzbx08xp54zkdfs1j7y37ipwbrajvd740f")))
1616 (synopsis "Hyphenation patterns for Friulan")
1617 (description "The package provides hyphenation patterns for Friulan in
1618 ASCII encodings.")
1619 (license license:lppl1.3+)))
1620
1621 (define-public texlive-hyphen-galician
1622 (let ((template (texlive-hyphen-package
1623 "texlive-hyphen-galician" "gl"
1624 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-gl.tex")
1625 (base32
1626 "13zx2r3nrxdr025g2lxrph0ga6wf7cs8dxixn4fhbl6xr1cx028g"))))
1627 (package
1628 (inherit template)
1629 (synopsis "Hyphenation patterns for Galician")
1630 (description "The package provides hyphenation patterns for Galician in
1631 T1/EC and UTF-8 encodings.")
1632 (license license:lppl1.3))))
1633
1634 (define-public texlive-hyphen-georgian
1635 (package
1636 (inherit (texlive-hyphen-package
1637 "texlive-hyphen-georgian" "ka"
1638 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ka.tex")
1639 (base32
1640 "0l0hk7ka04fr8x11nnw95x151cxyycy0fph772m3a3p8qk4x9wp7")))
1641 (synopsis "Hyphenation patterns for Georgian")
1642 (description "The package provides hyphenation patterns for Georgian in
1643 T8M, T8K, and UTF-8 encodings.")
1644 (license license:lppl1.3+)))
1645
1646 (define-public texlive-hyphen-german
1647 (package
1648 (inherit (texlive-hyphen-package
1649 "texlive-hyphen-german" '("de-1901" "de-1996" "de-ch-1901")
1650 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-de-1901.tex"
1651 "/tex/generic/hyph-utf8/patterns/tex/hyph-de-1996.tex"
1652 "/tex/generic/hyph-utf8/patterns/tex/hyph-de-ch-1901.tex"
1653 "/tex/generic/dehyph/dehyphn.tex"
1654 "/tex/generic/dehyph/dehypht.tex"
1655 "/tex/generic/dehyph/dehyphtex.tex"
1656 "/tex/generic/dehyph/README")
1657 (base32
1658 "0wp5by5kkf4ac6li5mbppqzw11500wa7f22p5vpz3m1kwd15zavw")))
1659 (synopsis "Hyphenation patterns for German")
1660 (description "This package provides hyphenation patterns for German in
1661 T1/EC and UTF-8 encodings, for traditional and reformed spelling, including
1662 Swiss German.")
1663 ;; The patterns are released under the Expat license; the dehyph* files
1664 ;; are released under the LPPL version 1 or later.
1665 (license (list license:expat license:lppl1.0+))))
1666
1667 (define-public texlive-hyphen-greek
1668 (package
1669 (inherit (texlive-hyphen-package
1670 "texlive-hyphen-greek" '("el-monoton" "el-polyton")
1671 (list "/doc/generic/elhyphen/"
1672 "/tex/generic/hyph-utf8/patterns/tex/hyph-el-monoton.tex"
1673 "/tex/generic/hyph-utf8/patterns/tex/hyph-el-polyton.tex"
1674 "/tex/generic/hyphen/grmhyph5.tex"
1675 "/tex/generic/hyphen/grphyph5.tex")
1676 (base32
1677 "1qyr6m1nh6d4wj68616cfxv4wjpiy1w2rlldxlx2ajzba381w3hf")))
1678 (synopsis "Hyphenation patterns for Greek")
1679 (description "This package provides hyphenation patterns for Modern Greek
1680 in monotonic and polytonic spelling in LGR and UTF-8 encodings.")
1681 (license license:lppl)))
1682
1683 (define-public texlive-hyphen-hungarian
1684 (package
1685 (inherit (texlive-hyphen-package
1686 "texlive-hyphen-hungarian" "hu"
1687 (list "/doc/generic/huhyphen/"
1688 "/doc/generic/hyph-utf8/hu/"
1689 "/tex/generic/hyph-utf8/patterns/tex/hyph-hu.tex")
1690 (base32
1691 "1j1b8kksg9r8nmjyjvvz8fr3hgcrjj6jlybf9p06nwrrwm2r8j8f")))
1692 (synopsis "Hyphenation patterns for Hungarian")
1693 (description "This package provides hyphenation patterns for Hungarian in
1694 T1/EC and UTF-8 encodings.")
1695 ;; Any of these licenses
1696 (license (list license:gpl2 license:lgpl2.1+ license:mpl1.1))))
1697
1698 (define-public texlive-hyphen-icelandic
1699 (package
1700 (inherit (texlive-hyphen-package
1701 "texlive-hyphen-icelandic" "is"
1702 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-is.tex")
1703 (base32
1704 "1m9xj41csj3ldym09d82zjbd3345sg2z10d8pxpvhgibf97mb66h")))
1705 (synopsis "Hyphenation patterns for Icelandic")
1706 (description "This package provides hyphenation patterns for Icelandic in
1707 T1/EC and UTF-8 encodings.")
1708 (license license:lppl1.2+)))
1709
1710 (define-public texlive-hyphen-indic
1711 (package
1712 (inherit (texlive-hyphen-package
1713 "texlive-hyphen-indic"
1714 '("as" "bn" "gu" "hi" "kn" "ml" "mr" "or" "pa" "ta" "te")
1715 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-as.tex"
1716 "/tex/generic/hyph-utf8/patterns/tex/hyph-bn.tex"
1717 "/tex/generic/hyph-utf8/patterns/tex/hyph-gu.tex"
1718 "/tex/generic/hyph-utf8/patterns/tex/hyph-hi.tex"
1719 "/tex/generic/hyph-utf8/patterns/tex/hyph-kn.tex"
1720 "/tex/generic/hyph-utf8/patterns/tex/hyph-ml.tex"
1721 "/tex/generic/hyph-utf8/patterns/tex/hyph-mr.tex"
1722 "/tex/generic/hyph-utf8/patterns/tex/hyph-or.tex"
1723 "/tex/generic/hyph-utf8/patterns/tex/hyph-pa.tex"
1724 "/tex/generic/hyph-utf8/patterns/tex/hyph-ta.tex"
1725 "/tex/generic/hyph-utf8/patterns/tex/hyph-te.tex")
1726 (base32
1727 "02d2kcd3lpk95fykjwhzw9s2a1s2w1skz8h2mmszrz979d1xzhpm")))
1728 (synopsis "Indic hyphenation patterns")
1729 (description "This package provides hyphenation patterns for Assamese,
1730 Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Panjabi, Tamil
1731 and Telugu for Unicode engines.")
1732 (license license:expat)))
1733
1734 (define-public texlive-hyphen-indonesian
1735 (package
1736 (inherit (texlive-hyphen-package
1737 "texlive-hyphen-indonesian" "id"
1738 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-id.tex")
1739 (base32
1740 "1r62w02rf0i4z0jgij54d16qjbj0zyfwm9dwdkqka76jrivij83q")))
1741 (synopsis "Indonesian hyphenation patterns")
1742 (description "This package provides hyphenation patterns for
1743 Indonesian (Bahasa Indonesia) in ASCII encoding. They are probably also
1744 usable for Malay (Bahasa Melayu).")
1745 (license license:gpl2)))
1746
1747 (define-public texlive-hyphen-interlingua
1748 (package
1749 (inherit (texlive-hyphen-package
1750 "texlive-hyphen-interlingua" "ia"
1751 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ia.tex")
1752 (base32
1753 "0a9na20vjnzhgjbicaxay0jk4rm5zg1rjyiswr377mjhd9mx5cg3")))
1754 (synopsis "Interlingua hyphenation patterns")
1755 (description "This package provides hyphenation patterns for Interlingua
1756 in ASCII encoding.")
1757 (license license:lppl1.3+)))
1758
1759 (define-public texlive-hyphen-irish
1760 (package
1761 (inherit (texlive-hyphen-package
1762 "texlive-hyphen-irish" "ga"
1763 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ga.tex")
1764 (base32
1765 "1h1l9jzkpsb91nyhz6s6c9jfrbz8jx5ip8vyq3dkz0rl6g960i6b")))
1766 (synopsis "Irish hyphenation patterns")
1767 (description "This package provides hyphenation patterns for
1768 Irish (Gaeilge) in T1/EC and UTF-8 encodings.")
1769 ;; Either of these licenses
1770 (license (list license:gpl2+ license:expat))))
1771
1772 (define-public texlive-hyphen-italian
1773 (package
1774 (inherit (texlive-hyphen-package
1775 "texlive-hyphen-italian" "it"
1776 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-it.tex")
1777 (base32
1778 "03c7jiqslfxvl3gbdx79hggbvrfi2l4z2bnwxc0na8f8lkp1m787")))
1779 (synopsis "Italian hyphenation patterns")
1780 (description "This package provides hyphenation patterns for Italian in
1781 ASCII encoding. Compliant with the Recommendation UNI 6461 on hyphenation
1782 issued by the Italian Standards Institution (Ente Nazionale di Unificazione
1783 UNI).")
1784 (license license:lppl1.3+)))
1785
1786 (define-public texlive-hyphen-kurmanji
1787 (package
1788 (inherit (texlive-hyphen-package
1789 "texlive-hyphen-kurmanji" "kmr"
1790 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-kmr.tex")
1791 (base32
1792 "01ylbsi5wymrdrxr9b28nmjmcj72mdhqr657lwsb6m9aj33c9ql6")))
1793 (synopsis "Kurmanji hyphenation patterns")
1794 (description "This package provides hyphenation patterns for
1795 Kurmanji (Northern Kurdish) as spoken in Turkey and by the Kurdish diaspora in
1796 Europe, in T1/EC and UTF-8 encodings.")
1797 (license license:lppl1.3)))
1798
1799 (define-public texlive-hyphen-latin
1800 (package
1801 (inherit (texlive-hyphen-package
1802 "texlive-hyphen-latin" '("la-x-classic" "la-x-liturgic" "la")
1803 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-la-x-classic.tex"
1804 "/tex/generic/hyph-utf8/patterns/tex/hyph-la-x-liturgic.tex"
1805 "/tex/generic/hyph-utf8/patterns/tex/hyph-la.tex")
1806 (base32
1807 "0rxg8a4s5cpj8vlkz5a74a036axda5jqgvr3f9aj2cc2x9f2f3w9")))
1808 (synopsis "Liturgical Latin hyphenation patterns")
1809 (description "This package provides hyphenation patterns for Latin in
1810 T1/EC and UTF-8 encodings, mainly in modern spelling (u when u is needed and v
1811 when v is needed), medieval spelling with the ligatures @code{\\ae} and
1812 @code{\\oe} and the (uncial) lowercase 'v' written as a 'u' is also supported.
1813 Apparently there is no conflict between the patterns of modern Latin and those
1814 of medieval Latin. It also includes hyphenation patterns for the Classical
1815 Latin in T1/EC and UTF-8 encodings. Classical Latin hyphenation patterns are
1816 different from those of 'plain' Latin, the latter being more adapted to modern
1817 Latin. It also provides hyphenation patterns for the Liturgical Latin in
1818 T1/EC and UTF-8 encodings.")
1819 ;; Either of these licenses
1820 (license (list license:lppl1.0+ license:expat))))
1821
1822 (define-public texlive-hyphen-latvian
1823 (package
1824 (inherit (texlive-hyphen-package
1825 "texlive-hyphen-latvian" "lv"
1826 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-lv.tex")
1827 (base32
1828 "00jf8xma4ldz0zpqwma97k9q3j0mqx7qdj6b7baph3n5xgc24aaw")))
1829 (synopsis "Latvian hyphenation patterns")
1830 (description "This package provides hyphenation patterns for Latvian in
1831 L7X and UTF-8 encodings.")
1832 ;; Either of these licenses.
1833 (license (list license:gpl2 license:lgpl2.1))))
1834
1835 (define-public texlive-hyphen-lithuanian
1836 (package
1837 (inherit (texlive-hyphen-package
1838 "texlive-hyphen-lithuanian" "lt"
1839 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-lt.tex")
1840 (base32
1841 "1kfq7j2ajg6nj952s1ygd520sj9z9kl0bqvd291a36ni2b1frzgd")))
1842 (synopsis "Lithuanian hyphenation patterns")
1843 (description "This package provides hyphenation patterns for Lithuanian in
1844 L7X and UTF-8 encodings.")
1845 ;; "Do ... whatever ... as long as you respect the copyright"; as part of
1846 ;; the hyph-utf8 package we choose the LPPL license.
1847 (license license:lppl)))
1848
1849 (define-public texlive-hyphen-mongolian
1850 (package
1851 (inherit (texlive-hyphen-package
1852 "texlive-hyphen-mongolian" '("mn-cyrl-x-lmc" "mn-cyrl")
1853 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-mn-cyrl-x-lmc.tex"
1854 "/tex/generic/hyph-utf8/patterns/tex/hyph-mn-cyrl.tex")
1855 (base32
1856 "1y1b91ihrdl9bad3rxlsfjpd9wmyd5zzgci3qv9w8qqk33jxhwya")))
1857 (synopsis "Mongolian hyphenation patterns in Cyrillic script")
1858 (description "This package provides hyphenation patterns for Mongolian in
1859 T2A, LMC and UTF-8 encodings.")
1860 ;; Either of these licenses
1861 (license (list license:lppl1.3+ license:expat))))
1862
1863 (define-public texlive-hyphen-norwegian
1864 (package
1865 (inherit (texlive-hyphen-package
1866 "texlive-hyphen-norwegian" '("nb" "nn" "no")
1867 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-nb.tex"
1868 "/tex/generic/hyph-utf8/patterns/tex/hyph-nn.tex"
1869 "/tex/generic/hyph-utf8/patterns/tex/hyph-no.tex")
1870 (base32
1871 "08gbwj64p4fckm199k52yp5lx65h9f4wwdkvl4pv4aa7k370jq9y")))
1872 (synopsis "Norwegian Bokmal and Nynorsk hyphenation patterns")
1873 (description "This package provides hyphenation patterns for Norwegian
1874 Bokmal and Nynorsk in T1/EC and UTF-8 encodings.")
1875 (license (license:non-copyleft
1876 "/tex/generic/hyph-utf8/patterns/tex/hyph-no.tex"
1877 "FSF All permissive license"))))
1878
1879 (define-public texlive-hyphen-occitan
1880 (package
1881 (inherit (texlive-hyphen-package
1882 "texlive-hyphen-occitan" "oc"
1883 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-oc.tex")
1884 (base32
1885 "0vhjbq2nr58vhqwwky3cwx4dqiwjmmfwp81rb65mfpf0m8yypdfg")))
1886 (synopsis "Occitan hyphenation patterns")
1887 (description "This package provides hyphenation patterns for Occitan in
1888 T1/EC and UTF-8 encodings. They are supposed to be valid for all the Occitan
1889 variants spoken and written in the wide area called 'Occitanie' by the French.
1890 It ranges from the Val d'Aran within Catalunya, to the South Western Italian
1891 Alps encompassing the southern half of the French pentagon.")
1892 (license license:lppl1.0+)))
1893
1894 (define-public texlive-hyphen-pali
1895 (package
1896 (inherit (texlive-hyphen-package
1897 "texlive-hyphen-pali" "pi"
1898 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pi.tex")
1899 (base32
1900 "1fak853s4ijdqgrnhwymaq1lh8jab3qfyxapdmf6qpg6bqd20kxq")))
1901 (synopsis "Panjabi hyphenation patterns")
1902 (description "This package provides hyphenation patterns for Panjabi in
1903 T1/EC encoding.")
1904 ;; Can be used with either license.
1905 (license (list license:expat license:lgpl3+ license:gpl3+))))
1906
1907 (define-public texlive-hyphen-piedmontese
1908 (package
1909 (inherit (texlive-hyphen-package
1910 "texlive-hyphen-piedmontese" "pms"
1911 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pms.tex")
1912 (base32
1913 "0xva3l2gwzkqw1sz64k5g5iprhdyr27w1mv8rxp8x62i5y3aqr1k")))
1914 (synopsis "Piedmontese hyphenation patterns")
1915 (description "This package provides hyphenation patterns for Piedmontese
1916 in ASCII encoding. Compliant with 'Gramatica dla lengua piemonteisa' by
1917 Camillo Brero.")
1918 (license license:lppl1.3+)))
1919
1920 (define-public texlive-hyphen-polish
1921 (package
1922 (inherit (texlive-hyphen-package
1923 "texlive-hyphen-polish" "pl"
1924 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pl.tex")
1925 (base32
1926 "1c22g99isxapv4xjrmsw24hhp1xb83wbgcxyd8j24mxdnizywxzm")))
1927 (synopsis "Polish hyphenation patterns")
1928 (description "This package provides hyphenation patterns for Polish in QX
1929 and UTF-8 encodings.")
1930 ;; No differing license declared, so we choose the project license.
1931 (license license:lppl)))
1932
1933 (define-public texlive-hyphen-portuguese
1934 (package
1935 (inherit (texlive-hyphen-package
1936 "texlive-hyphen-portuguese" "pt"
1937 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pt.tex")
1938 (base32
1939 "00rkjy4p7893zs940bq3s4hp7al0skgxqggj5qfax0bx8karf30b")))
1940 (synopsis "Portuguese hyphenation patterns")
1941 (description "This package provides hyphenation patterns for Portuguese in
1942 T1/EC and UTF-8 encodings.")
1943 (license license:bsd-3)))
1944
1945 (define-public texlive-hyphen-romanian
1946 (package
1947 (inherit (texlive-hyphen-package
1948 "texlive-hyphen-romanian" "ro"
1949 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ro.tex")
1950 (base32
1951 "1ykb5v7ip6p3n34wq8qypfyrap4gg946by5rsl6ab0k5gv6ypsbf")))
1952 (synopsis "Romanian hyphenation patterns")
1953 (description "This package provides hyphenation patterns for Romanian in
1954 T1/EC and UTF-8 encodings.")
1955 ;; No differing license declared, so we choose the project license.
1956 (license license:lppl)))
1957
1958 (define-public texlive-hyphen-romansh
1959 (package
1960 (inherit (texlive-hyphen-package
1961 "texlive-hyphen-romansh" "rm"
1962 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-rm.tex")
1963 (base32
1964 "0a1q9p6sp5n6a9w6xhwk03vmkrrmnh2md7g1k4qhnf0dc4h7dy9r")))
1965 (synopsis "Romansh hyphenation patterns")
1966 (description "This package provides hyphenation patterns for Romansh in
1967 ASCII encodings. They are supposed to comply with the rules indicated by the
1968 Lia Rumantscha (Romansh language society).")
1969 (license license:lppl1.3+)))
1970
1971 (define-public texlive-hyphen-russian
1972 (package
1973 (inherit (texlive-hyphen-package
1974 "texlive-hyphen-russian" "ru"
1975 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ru.tex")
1976 (base32
1977 "00sy7qh5f8ryxw36fwbyd1yi2hxhv7hmk99yp7dwh73n4mxv6lpl")))
1978 (synopsis "Russian hyphenation patterns")
1979 (description "This package provides hyphenation patterns for Russian in
1980 T2A and UTF-8 encodings.")
1981 (license license:lppl1.2+)))
1982
1983 (define-public texlive-hyphen-sanskrit
1984 (package
1985 (inherit (texlive-hyphen-package
1986 "texlive-hyphen-sanskrit" "sa"
1987 (list "/doc/generic/hyph-utf8/sa/hyphenmin.txt"
1988 "/tex/generic/hyph-utf8/patterns/tex/hyph-sa.tex")
1989 (base32
1990 "0gi2qk0wf388h9n25gzhv0cdz67ph83wal8h3iz2sqnpdjsw8kpc")))
1991 (synopsis "Sanskrit hyphenation patterns")
1992 (description "This package provides hyphenation patterns for Sanskrit and
1993 Prakrit in longdesc transliteration, and in Devanagari, Bengali, Kannada,
1994 Malayalam longdesc and Telugu scripts for Unicode engines.")
1995 ;; "You may freely use, copy, modify and/or distribute this file."
1996 (license (license:non-copyleft
1997 "file:///tex/generic/hyph-utf8/patterns/tex/hyph-sa.tex"))))
1998
1999 (define-public texlive-hyphen-serbian
2000 (package
2001 (inherit (texlive-hyphen-package
2002 "texlive-hyphen-serbian" '("sh-cyrl" "sh-latn" "sr-cyrl")
2003 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sh-cyrl.tex"
2004 "/tex/generic/hyph-utf8/patterns/tex/hyph-sh-latn.tex"
2005 "/tex/generic/hyph-utf8/patterns/tex/hyph-sr-cyrl.tex")
2006 (base32
2007 "0pwc9z0m5y6acq1vqm0da9akg156jbhxzvsfp2f8bsz5b99y5z45")))
2008 (synopsis "Serbian hyphenation patterns")
2009 (description "This package provides hyphenation patterns for Serbian in
2010 T1/EC, T2A and UTF-8 encodings.")
2011 ;; Any version of the GPL.
2012 (license license:gpl3+)))
2013
2014 (define-public texlive-hyphen-slovak
2015 (package
2016 (inherit (texlive-hyphen-package
2017 "texlive-hyphen-slovak" "sk"
2018 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sk.tex")
2019 (base32
2020 "0ppp53bbclp5c8wvx748krvrp5y5053khgkjnnv966a90fvp3vgd")))
2021 (synopsis "Slovak hyphenation patterns")
2022 (description "This package provides hyphenation patterns for Slovak in
2023 T1/EC and UTF-8 encodings.")
2024 (license license:gpl2+)))
2025
2026 (define-public texlive-hyphen-slovenian
2027 (package
2028 (inherit (texlive-hyphen-package
2029 "texlive-hyphen-slovenian" "sl"
2030 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sl.tex")
2031 (base32
2032 "02n8l9yf4hqyhbpsc1n6b2mggy09z6lq4dcb8ndiwawb6h0mp7s4")))
2033 (synopsis "Slovenian hyphenation patterns")
2034 (description "This package provides hyphenation patterns for Slovenian in
2035 T1/EC and UTF-8 encodings.")
2036 ;; Either license
2037 (license (list license:lppl1.0+ license:expat))))
2038
2039 (define-public texlive-hyphen-spanish
2040 (package
2041 ;; The source files "eshyph-make.lua" and "eshyph.src" are provided to
2042 ;; generate obsolete hyphenation patterns, which aren't included in a
2043 ;; default TeX Live distribution, so we don't include them either.
2044 (inherit (texlive-hyphen-package
2045 "texlive-hyphen-spanish" "es"
2046 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-es.tex")
2047 (base32
2048 "1h3yg9vcq0lf7hxv0ahkqmyg269dxjs8m2mz8sgz5l1fxmvahvaj")))
2049 (synopsis "Hyphenation patterns for Spanish")
2050 (description "The package provides hyphenation patterns for Spanish in
2051 T1/EC and UTF-8 encodings.")
2052 (license license:expat)))
2053
2054 (define-public texlive-hyphen-swedish
2055 (package
2056 (inherit (texlive-hyphen-package
2057 "texlive-hyphen-swedish" "sv"
2058 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sv.tex")
2059 (base32
2060 "1n7incy7n24pix1q2i8c3h7i78zpql5ayhskavlmy6mhd7ayncaw")))
2061 (synopsis "Swedish hyphenation patterns")
2062 (description "This package provides hyphenation patterns for Swedish in
2063 T1/EC and UTF-8 encodings.")
2064 (license license:lppl1.2+)))
2065
2066 (define-public texlive-hyphen-thai
2067 (package
2068 (inherit (texlive-hyphen-package
2069 "texlive-hyphen-thai" "th"
2070 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-th.tex")
2071 (base32
2072 "00gxcs4jfqifd5cnrjipn77m73fmpw2qms4lp216jj3kz4a7h9kf")))
2073 (synopsis "Thai hyphenation patterns")
2074 (description "This package provides hyphenation patterns for Thai in LTH
2075 and UTF-8 encodings.")
2076 (license license:lppl1.3+)))
2077
2078 (define-public texlive-hyphen-turkish
2079 (let ((template (texlive-hyphen-package
2080 "texlive-hyphen-turkish" "tr"
2081 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-tr.tex")
2082 (base32
2083 "04sihjgpm31i5bi67rrfp15w3imn7hxwwk70v0vhx053ghxy72vh"))))
2084 (package
2085 (inherit template)
2086 (synopsis "Hyphenation patterns for Turkish")
2087 (description "The package provides hyphenation patterns for Turkish in
2088 T1/EC and UTF-8 encodings. The patterns for Turkish were first produced for
2089 the Ottoman Texts Project in 1987 and were suitable for both Modern Turkish
2090 and Ottoman Turkish in Latin script, however the required character set didn't
2091 fit into EC encoding, so support for Ottoman Turkish had to be dropped to keep
2092 compatibility with 8-bit engines.")
2093 (license license:lppl1.0+))))
2094
2095 (define-public texlive-hyphen-turkmen
2096 (let ((template (texlive-hyphen-package
2097 "texlive-hyphen-turkmen" "tk"
2098 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-tk.tex")
2099 (base32
2100 "0g5ip2lw9g47s61mv3cypswc6qm7zy9c4iqq4h19ysvds81adzkr"))))
2101 (package
2102 (inherit template)
2103 (synopsis "Hyphenation patterns for Turkmen")
2104 (description "The package provides hyphenation patterns for Turkmen in
2105 T1/EC and UTF-8 encodings.")
2106 (license license:expat))))
2107
2108 (define-public texlive-hyphen-ukrainian
2109 (package
2110 (inherit (texlive-hyphen-package
2111 "texlive-hyphen-ukrainian" "uk"
2112 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-uk.tex")
2113 (base32
2114 "0fbfhx1fmbshxr4ihsjaqgx251h69h7i288p8gh3w6ysgxr53p60")))
2115 (synopsis "Ukrainian hyphenation patterns")
2116 (description "This package provides hyphenation patterns for Ukrainian in
2117 T2A and UTF-8 encodings.")
2118 ;; No version specified
2119 (license license:lppl)))
2120
2121 (define-public texlive-hyphen-uppersorbian
2122 (package
2123 (inherit (texlive-hyphen-package
2124 "texlive-hyphen-uppersorbian" "hsb"
2125 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hsb.tex")
2126 (base32
2127 "0x0051wph3sqmzzw6prvjy6bp7gn02rbmys1bmbc210jk3pkylfj")))
2128 (synopsis "Upper Sorbian hyphenation patterns")
2129 (description "This package provides hyphenation patterns for Upper Sorbian
2130 in T1/EC and UTF-8 encodings.")
2131 (license license:lppl1.3a+)))
2132
2133 (define-public texlive-hyphen-welsh
2134 (package
2135 (inherit (texlive-hyphen-package
2136 "texlive-hyphen-welsh" "cy"
2137 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cy.tex")
2138 (base32
2139 "1bpxp3jiifdw7waw2idz5j9xgi3526nkxm8mbmsspr4mlf2xyr76")))
2140 (synopsis "Welsh hyphenation patterns")
2141 (description "This package provides hyphenation patterns for Welsh in
2142 T1/EC and UTF-8 encodings.")
2143 ;; Either license
2144 (license (list license:lppl1.0+ license:expat))))
2145
2146 (define-public texlive-hyph-utf8
2147 (package
2148 (inherit (simple-texlive-package
2149 "texlive-hyph-utf8"
2150 (list "/source/generic/hyph-utf8/"
2151 "/source/luatex/hyph-utf8/"
2152 "/doc/luatex/hyph-utf8/"
2153 "/tex/luatex/hyph-utf8/etex.src"
2154 ;; Used to extract luatex-hyphen.lua
2155 "/tex/latex/base/docstrip.tex"
2156
2157 ;; Documentation; we can't use the whole directory because
2158 ;; it includes files from other packages.
2159 "/doc/generic/hyph-utf8/CHANGES"
2160 "/doc/generic/hyph-utf8/HISTORY"
2161 "/doc/generic/hyph-utf8/hyph-utf8.pdf"
2162 "/doc/generic/hyph-utf8/hyph-utf8.tex"
2163 "/doc/generic/hyph-utf8/hyphenation-distribution.pdf"
2164 "/doc/generic/hyph-utf8/hyphenation-distribution.tex"
2165 "/doc/generic/hyph-utf8/img/miktex-languages.png"
2166 "/doc/generic/hyph-utf8/img/texlive-collection.png")
2167 (base32
2168 "1bar5mc808ch20anhqrdxcwiych359qsvr7mggxpg2l2kq5xdyq0")))
2169 (outputs '("out" "doc"))
2170 (build-system gnu-build-system)
2171 (arguments
2172 `(#:tests? #f ; there are none
2173 #:modules ((guix build gnu-build-system)
2174 (guix build utils)
2175 (ice-9 match))
2176 #:make-flags
2177 (list "-C" "source/luatex/hyph-utf8/"
2178 (string-append "DO_TEX = tex --interaction=nonstopmode '&tex' $<")
2179 (string-append "RUNDIR =" (assoc-ref %outputs "out") "/share/texmf-dist/tex/luatex/hyph-utf8/")
2180 (string-append "DOCDIR =" (assoc-ref %outputs "doc") "/share/texmf-dist/doc/luatex/hyph-utf8/")
2181 ;; hyphen.cfg is neither included nor generated, so let's only build the lua file.
2182 (string-append "UNPACKED = $(NAME).lua"))
2183 #:phases
2184 (modify-phases %standard-phases
2185 ;; TeX isn't usable at this point, so we first need to generate the
2186 ;; tex.fmt.
2187 (replace 'configure
2188 (lambda* (#:key inputs outputs #:allow-other-keys)
2189 ;; Target directories must exist.
2190 (mkdir-p (string-append (assoc-ref %outputs "out")
2191 "/share/texmf-dist/tex/luatex/hyph-utf8/"))
2192 (mkdir-p (string-append (assoc-ref %outputs "doc")
2193 "/share/texmf-dist/doc/luatex/hyph-utf8/"))
2194
2195 ;; We cannot build the documentation because that requires a
2196 ;; fully functional pdflatex, which depends on this package.
2197 (substitute* "source/luatex/hyph-utf8/Makefile"
2198 (("all: .*") "all: $(RUNFILES)\n"))
2199
2200 ;; Find required fonts for building tex.fmt
2201 (setenv "TFMFONTS"
2202 (string-append (assoc-ref inputs "texlive-cm")
2203 "/share/texmf-dist/fonts/tfm/public/cm:"
2204 (assoc-ref inputs "texlive-fonts-knuth-lib")
2205 "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
2206 ;; ...and find all tex files in this environment.
2207 (setenv "TEXINPUTS"
2208 (string-append
2209 (getcwd) ":"
2210 (string-join
2211 (map (match-lambda ((_ . dir) dir)) inputs)
2212 "//:")))
2213
2214 ;; Generate tex.fmt.
2215 (let ((where "source/luatex/hyph-utf8"))
2216 (mkdir-p where)
2217 (with-directory-excursion where
2218 (invoke "tex" "-ini"
2219 (string-append (assoc-ref inputs "texlive-tex-plain")
2220 "/share/texmf-dist/tex/plain/config/tex.ini"))))))
2221 (add-before 'build 'build-loaders-and-converters
2222 (lambda* (#:key outputs #:allow-other-keys)
2223 (let* ((root (string-append (assoc-ref outputs "out")
2224 "/share/texmf-dist"))
2225 (conv
2226 (string-append root
2227 "/tex/generic/hyph-utf8/conversions")))
2228
2229 ;; Build converters
2230 (mkdir-p conv)
2231 (with-directory-excursion "source/generic/hyph-utf8"
2232 (substitute* "generate-converters.rb"
2233 (("\\$path_root=File.*")
2234 (string-append "$path_root=\"" root "\"\n"))
2235 ;; Avoid error with newer Ruby.
2236 (("#1\\{%") "#1{%%"))
2237 (invoke "ruby" "generate-converters.rb"))
2238 #t)))
2239 (replace 'install
2240 (lambda* (#:key source outputs #:allow-other-keys)
2241 (let ((doc (assoc-ref outputs "doc"))
2242 (out (assoc-ref outputs "out")))
2243 (mkdir-p doc)
2244 (copy-recursively
2245 (string-append source "/doc")
2246 (string-append doc "/doc"))
2247 (install-file
2248 (string-append source "/tex/luatex/hyph-utf8/etex.src")
2249 (string-append out "/share/texmf-dist/tex/luatex/hyph-utf8/")))
2250 #t)))))
2251 (native-inputs
2252 `(("ruby" ,ruby)
2253 ("texlive-bin" ,texlive-bin)
2254 ;; The following packages are needed for build "tex.fmt", which we need
2255 ;; for a working "tex".
2256 ("texlive-tex-plain" ,texlive-tex-plain)
2257 ("texlive-cm" ,texlive-cm)
2258 ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)
2259 ("texlive-hyphen-base" ,texlive-hyphen-base)))
2260 (home-page "https://ctan.org/pkg/hyph-utf8")
2261 (synopsis "Hyphenation patterns expressed in UTF-8")
2262 (description "Modern native UTF-8 engines such as XeTeX and LuaTeX need
2263 hyphenation patterns in UTF-8 format, whereas older systems require
2264 hyphenation patterns in the 8-bit encoding of the font in use (such encodings
2265 are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1,
2266 etc). The present package offers a collection of conversions of existing
2267 patterns to UTF-8 format, together with converters for use with 8-bit fonts in
2268 older systems. Since hyphenation patterns for Knuthian-style TeX systems are
2269 only read at iniTeX time, it is hoped that the UTF-8 patterns, with their
2270 converters, will completely supplant the older patterns.")
2271 ;; Individual files each have their own license. Most of these files are
2272 ;; independent hyphenation patterns.
2273 (license (list license:lppl1.0+
2274 license:lppl1.2+
2275 license:lppl1.3
2276 license:lppl1.3+
2277 license:lppl1.3a+
2278 license:lgpl2.1
2279 license:lgpl2.1+
2280 license:lgpl3+
2281 license:gpl2+
2282 license:gpl3+
2283 license:mpl1.1
2284 license:asl2.0
2285 license:expat
2286 license:bsd-3
2287 license:cc0
2288 license:public-domain
2289 license:wtfpl2))))
2290
2291 (define-public texlive-generic-hyph-utf8
2292 (deprecated-package "texlive-generic-hyph-utf8" texlive-hyph-utf8))
2293
2294 (define-public texlive-dehyph-exptl
2295 (package
2296 (inherit (simple-texlive-package
2297 "texlive-dehyph-exptl"
2298 (list "/tex/generic/dehyph-exptl/"
2299 "/doc/generic/dehyph-exptl/")
2300 (base32
2301 "1fnqc63gz8gvdyfz45bx8dxn1r1rwrypahs3bqd2vlc8ff76xp86")
2302 #:trivial? #t))
2303 (propagated-inputs
2304 `(("texlive-hyphen-base" ,texlive-hyphen-base)
2305 ("texlive-hyph-utf8" ,texlive-hyph-utf8)))
2306 (home-page "http://projekte.dante.de/Trennmuster/WebHome")
2307 (synopsis "Hyphenation patterns for German")
2308 (description "The package provides experimental hyphenation patterns for
2309 the German language, covering both traditional and reformed orthography. The
2310 patterns can be used with packages Babel and hyphsubst from the Oberdiek
2311 bundle.")
2312 ;; Hyphenation patterns are under the Expat license; documentation is
2313 ;; under LPPL.
2314 (license (list license:expat license:lppl))))
2315
2316 (define-public texlive-generic-dehyph-exptl
2317 (deprecated-package "texlive-generic-dehyph-exptl" texlive-dehyph-exptl))
2318
2319 (define-public texlive-ukrhyph
2320 (package
2321 (inherit (simple-texlive-package
2322 "texlive-ukrhyph"
2323 (list "/doc/generic/ukrhyph/"
2324 "/tex/generic/ukrhyph/")
2325 (base32
2326 "01ma274sixcrbpb7fpqkxwfvrnzfj2srv9b4a42rfnph1pdql74z")
2327 #:trivial? #t))
2328 (home-page "https://www.ctan.org/pkg/ukrhyph")
2329 (synopsis "Hyphenation patterns for Ukrainian")
2330 (description "The package provides a range of hyphenation patterns for
2331 Ukrainian, depending on the encoding of the output font including the standard
2332 T2A.")
2333 (license license:lppl)))
2334
2335 (define-public texlive-ruhyphen
2336 (let ((template (simple-texlive-package
2337 "texlive-ruhyphen"
2338 (list "/source/generic/ruhyphen/"
2339 "/tex/generic/ruhyphen/")
2340 (base32
2341 "18n1bqhh8jv765vz3a3fjwffy7m71vhwx9yq8zl0p5j7p72q9qcn")
2342 #:trivial? #t)))
2343 (package
2344 (inherit template)
2345 (arguments
2346 (substitute-keyword-arguments (package-arguments template)
2347 ((#:phases phases)
2348 `(modify-phases ,phases
2349 (replace 'build
2350 (lambda _
2351 (let ((cwd (getcwd)))
2352 ;; Remove generated files.
2353 (for-each delete-file
2354 (find-files "tex/generic/ruhyphen/"
2355 "^cyry.*.tex$"))
2356 (substitute* "source/generic/ruhyphen/Makefile"
2357 (("./mkcyryo") (string-append cwd "/source/generic/ruhyphen/mkcyryo")))
2358 (with-directory-excursion "tex/generic/ruhyphen"
2359 (invoke "make" "-f"
2360 (string-append cwd "/source/generic/ruhyphen/Makefile"))))))))))
2361 (native-inputs
2362 `(("coreutils" ,coreutils)
2363 ("gawk" ,gawk)
2364 ("sed" ,sed)
2365 ("grep" ,grep)
2366 ("perl" ,perl)))
2367 (home-page "https://www.ctan.org/pkg/ruhyphen")
2368 (synopsis "Hyphenation patterns for Russian")
2369 (description "The package provides a collection of Russian hyphenation
2370 patterns supporting a number of Cyrillic font encodings, including T2,
2371 UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r.")
2372 (license license:lppl))))
2373
2374 (define-public texlive-kpathsea
2375 (package
2376 (inherit (simple-texlive-package
2377 "texlive-kpathsea"
2378 (list "/web2c/amiga-pl.tcx"
2379 "/web2c/cp1250cs.tcx"
2380 "/web2c/cp1250pl.tcx"
2381 "/web2c/cp1250t1.tcx"
2382 "/web2c/cp227.tcx"
2383 "/web2c/cp852-cs.tcx"
2384 "/web2c/cp852-pl.tcx"
2385 "/web2c/cp8bit.tcx"
2386 "/web2c/empty.tcx"
2387 "/web2c/fmtutil.cnf"
2388 "/web2c/il1-t1.tcx"
2389 "/web2c/il2-cs.tcx"
2390 "/web2c/il2-pl.tcx"
2391 "/web2c/il2-t1.tcx"
2392 "/web2c/kam-cs.tcx"
2393 "/web2c/kam-t1.tcx"
2394 "/web2c/macce-pl.tcx"
2395 "/web2c/macce-t1.tcx"
2396 "/web2c/maz-pl.tcx"
2397 "/web2c/mktex.cnf"
2398 "/web2c/mktex.opt"
2399 "/web2c/mktexdir"
2400 "/web2c/mktexdir.opt"
2401 "/web2c/mktexnam"
2402 "/web2c/mktexnam.opt"
2403 "/web2c/mktexupd"
2404 "/web2c/natural.tcx"
2405 "/web2c/tcvn-t5.tcx"
2406 "/web2c/viscii-t5.tcx")
2407 (base32
2408 "191i8n3g46p53bb9dkx2ggwpzy7skgg0pbklsrpx8x4ayd86wcaf")
2409 #:trivial? #t))
2410 (home-page "https://www.tug.org/texlive/")
2411 (synopsis "Files related to the path searching library for TeX")
2412 (description "Kpathsea is a library and utility programs which provide
2413 path searching facilities for TeX file types, including the self-locating
2414 feature required for movable installations, layered on top of a general search
2415 mechanism. This package provides supporting files.")
2416 (license license:lgpl3+)))
2417
2418 (define-public texlive-latexconfig
2419 (package
2420 (inherit (simple-texlive-package
2421 "texlive-latexconfig"
2422 (list "/tex/latex/latexconfig/")
2423 (base32
2424 "1wa7yhdpnz1nyidwgli68fyr33jn951bnniqrih5lj98k09rqc3h")
2425 #:trivial? #t))
2426 (home-page "https://www.tug.org/")
2427 (synopsis "Configuration files for LaTeX-related formats")
2428 (description "The package provides configuration files for LaTeX-related
2429 formats.")
2430 (license license:lppl)))
2431
2432 (define-public texlive-latex-base
2433 (let ((template (simple-texlive-package
2434 "texlive-latex-base"
2435 (list "/doc/latex/base/"
2436 "/source/latex/base/"
2437 ;; Almost all files in /tex/latex/base are generated, but
2438 ;; these are not:
2439 "/tex/latex/base/idx.tex"
2440 "/tex/latex/base/lablst.tex"
2441 "/tex/latex/base/ltnews.cls"
2442 "/tex/latex/base/ltxcheck.tex"
2443 "/tex/latex/base/ltxguide.cls"
2444 "/tex/latex/base/minimal.cls"
2445 "/tex/latex/base/sample2e.tex"
2446 "/tex/latex/base/small2e.tex"
2447 "/tex/latex/base/testpage.tex"
2448 "/tex/latex/base/texsys.cfg")
2449 (base32
2450 "0m0gjb4hbsf2iqkkx3px4f28r2scjvsjv4zb2whkbnb44apyw1f0")
2451 #:trivial? #t)))
2452 (package
2453 (inherit template)
2454 (arguments
2455 (substitute-keyword-arguments (package-arguments template)
2456 ((#:modules modules '())
2457 '((guix build gnu-build-system)
2458 (guix build utils)
2459 (ice-9 match)
2460 (srfi srfi-26)))
2461 ((#:phases phases)
2462 `(modify-phases ,phases
2463 ;; The literal tab in the dtx file is translated to the string
2464 ;; "^^I" in the generated Lua file, which causes a syntax error.
2465 (add-after 'unpack 'fix-lua-sources
2466 (lambda _
2467 (substitute* "source/latex/base/ltluatex.dtx"
2468 ((" ") " "))
2469 #t))
2470 (replace 'build
2471 (lambda* (#:key inputs #:allow-other-keys)
2472 ;; Find required fonts
2473 (setenv "TFMFONTS"
2474 (string-join
2475 (map (match-lambda
2476 ((pkg-name . dir)
2477 (string-append
2478 (assoc-ref inputs pkg-name)
2479 "/share/texmf-dist/fonts/tfm/public"
2480 dir)))
2481 '(("texlive-etex" . "/etex")
2482 ("texlive-cm" . "/cm")
2483 ("texlive-fonts-latex" . "/latex-fonts")
2484 ("texlive-fonts-knuth-lib" . "/knuth-lib")))
2485 ":"))
2486 (let ((cwd (getcwd)))
2487 (setenv "TEXINPUTS"
2488 (string-append
2489 cwd "//:"
2490 cwd "/source/latex/base//:"
2491 cwd "/build:"
2492 (string-join
2493 (map (match-lambda ((_ . dir) dir)) inputs)
2494 "//:"))))
2495
2496 ;; This is the actual build step.
2497 (mkdir "build")
2498 (invoke "tex" "-ini" "-interaction=scrollmode"
2499 "-output-directory=build" "unpack.ins")
2500
2501 ;; XXX: We can't build all formats at this point, nor are they
2502 ;; part of the LaTeX base, so we disable them. Actually, we
2503 ;; should be running this all in a profile hook, so that only
2504 ;; selected formats and hyphenation patterns are included, but it
2505 ;; takes long and TeX Live isn't designed to be modular like
2506 ;; that. Everything operates on a shared directory, which we
2507 ;; would only have at profile generation time.
2508 (let ((disabled-formats
2509 '("aleph aleph" "lamed aleph" "uptex uptex" "euptex euptex"
2510 "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex"
2511 "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex"
2512 "luacsplain luatex"
2513 "cont-en xetex" "cont-en pdftex" "pdfcsplain xetex"
2514 "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex"
2515 "mptopdf pdftex" "uplatex euptex" "jadetex pdftex"
2516 "amstex pdftex" "pdfcslatex pdftex" "lollipop tex"
2517 "xmltex pdftex" "pdfjadetex pdftex" "eplain pdftex"
2518 "texsis pdftex" "mltex pdftex" "utf8mex pdftex")))
2519 (mkdir "web2c")
2520 (install-file (string-append
2521 (assoc-ref inputs "texlive-kpathsea")
2522 "/share/texmf-dist/web2c/fmtutil.cnf")
2523 "web2c")
2524 (make-file-writable "web2c/fmtutil.cnf")
2525 (substitute* "web2c/fmtutil.cnf"
2526 (((string-append "^(" (string-join disabled-formats "|") ")") m)
2527 (string-append "#! " m))))
2528 (invoke "fmtutil-sys" "--all"
2529 "--fmtdir=web2c"
2530 (string-append "--cnffile=web2c/fmtutil.cnf"))
2531 ;; We don't actually want to install it.
2532 (delete-file "web2c/fmtutil.cnf")
2533 #t))
2534 (add-after 'install 'install-more
2535 (lambda* (#:key inputs outputs #:allow-other-keys)
2536 (let* ((out (assoc-ref outputs "out"))
2537 (root (string-append out "/share/texmf-dist"))
2538 (target (string-append root "/tex/latex/base"))
2539 (web2c (string-append root "/web2c"))
2540 (makeindex (string-append root "/makeindex/latex")))
2541 (for-each delete-file (find-files "." "\\.(log|aux)$"))
2542
2543 ;; The usedir directive in docstrip.ins is ignored, so these
2544 ;; two files end up in the wrong place. Move them.
2545 (mkdir-p makeindex)
2546 (for-each (lambda (file)
2547 (install-file file makeindex)
2548 (delete-file file))
2549 '("build/gglo.ist"
2550 "build/gind.ist"))
2551 (for-each (cut install-file <> target)
2552 (find-files "build" ".*"))
2553 (for-each (cut install-file <> web2c)
2554 (find-files "web2c" ".*"))
2555 #t)))))))
2556 (native-inputs
2557 `(("texlive-bin" ,texlive-bin)
2558 ("texlive-tex-ini-files" ,texlive-tex-ini-files)
2559 ("texlive-tex-plain" ,texlive-tex-plain)
2560 ("texlive-kpathsea" ,texlive-kpathsea)
2561 ("texlive-cm" ,texlive-cm)
2562 ("texlive-fonts-latex" ,texlive-fonts-latex)
2563 ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)
2564 ("texlive-luatexconfig"
2565 ,(texlive-origin
2566 "texlive-luatexconfig" (number->string %texlive-revision)
2567 (list "/tex/generic/config/luatex-unicode-letters.tex"
2568 "/tex/generic/config/luatexiniconfig.tex"
2569 "/web2c/texmfcnf.lua")
2570 (base32
2571 "1gi87wy12r8w8fhx9ajcid382dmqzf6b9070b5nndvbbjrvhwf23")))))
2572 (propagated-inputs
2573 `(("texlive-dehyph-exptl" ,texlive-dehyph-exptl)
2574 ("texlive-etex" ,texlive-etex)
2575 ("texlive-hyph-utf8" ,texlive-hyph-utf8)
2576 ("texlive-hyphen-base" ,texlive-hyphen-base)
2577 ("texlive-hyphen-afrikaans" ,texlive-hyphen-afrikaans)
2578 ("texlive-hyphen-ancientgreek" ,texlive-hyphen-ancientgreek)
2579 ("texlive-hyphen-armenian" ,texlive-hyphen-armenian)
2580 ("texlive-hyphen-basque" ,texlive-hyphen-basque)
2581 ("texlive-hyphen-belarusian" ,texlive-hyphen-belarusian)
2582 ("texlive-hyphen-bulgarian" ,texlive-hyphen-bulgarian)
2583 ("texlive-hyphen-catalan" ,texlive-hyphen-catalan)
2584 ("texlive-hyphen-chinese" ,texlive-hyphen-chinese)
2585 ("texlive-hyphen-churchslavonic" ,texlive-hyphen-churchslavonic)
2586 ("texlive-hyphen-coptic" ,texlive-hyphen-coptic)
2587 ("texlive-hyphen-croatian" ,texlive-hyphen-croatian)
2588 ("texlive-hyphen-czech" ,texlive-hyphen-czech)
2589 ("texlive-hyphen-danish" ,texlive-hyphen-danish)
2590 ("texlive-hyphen-dutch" ,texlive-hyphen-dutch)
2591 ("texlive-hyphen-english" ,texlive-hyphen-english)
2592 ("texlive-hyphen-esperanto" ,texlive-hyphen-esperanto)
2593 ("texlive-hyphen-estonian" ,texlive-hyphen-estonian)
2594 ("texlive-hyphen-ethiopic" ,texlive-hyphen-ethiopic)
2595 ("texlive-hyphen-finnish" ,texlive-hyphen-finnish)
2596 ("texlive-hyphen-french" ,texlive-hyphen-french)
2597 ("texlive-hyphen-friulan" ,texlive-hyphen-friulan)
2598 ("texlive-hyphen-galician" ,texlive-hyphen-galician)
2599 ("texlive-hyphen-georgian" ,texlive-hyphen-georgian)
2600 ("texlive-hyphen-german" ,texlive-hyphen-german)
2601 ("texlive-hyphen-greek" ,texlive-hyphen-greek)
2602 ("texlive-hyphen-hungarian" ,texlive-hyphen-hungarian)
2603 ("texlive-hyphen-icelandic" ,texlive-hyphen-icelandic)
2604 ("texlive-hyphen-indic" ,texlive-hyphen-indic)
2605 ("texlive-hyphen-indonesian" ,texlive-hyphen-indonesian)
2606 ("texlive-hyphen-interlingua" ,texlive-hyphen-interlingua)
2607 ("texlive-hyphen-irish" ,texlive-hyphen-irish)
2608 ("texlive-hyphen-italian" ,texlive-hyphen-italian)
2609 ("texlive-hyphen-kurmanji" ,texlive-hyphen-kurmanji)
2610 ("texlive-hyphen-latin" ,texlive-hyphen-latin)
2611 ("texlive-hyphen-latvian" ,texlive-hyphen-latvian)
2612 ("texlive-hyphen-lithuanian" ,texlive-hyphen-lithuanian)
2613 ("texlive-hyphen-mongolian" ,texlive-hyphen-mongolian)
2614 ("texlive-hyphen-norwegian" ,texlive-hyphen-norwegian)
2615 ("texlive-hyphen-occitan" ,texlive-hyphen-occitan)
2616 ("texlive-hyphen-pali" ,texlive-hyphen-pali)
2617 ("texlive-hyphen-piedmontese" ,texlive-hyphen-piedmontese)
2618 ("texlive-hyphen-polish" ,texlive-hyphen-polish)
2619 ("texlive-hyphen-portuguese" ,texlive-hyphen-portuguese)
2620 ("texlive-hyphen-romanian" ,texlive-hyphen-romanian)
2621 ("texlive-hyphen-romansh" ,texlive-hyphen-romansh)
2622 ("texlive-hyphen-russian" ,texlive-hyphen-russian)
2623 ("texlive-hyphen-sanskrit" ,texlive-hyphen-sanskrit)
2624 ("texlive-hyphen-serbian" ,texlive-hyphen-serbian)
2625 ("texlive-hyphen-slovak" ,texlive-hyphen-slovak)
2626 ("texlive-hyphen-slovenian" ,texlive-hyphen-slovenian)
2627 ("texlive-hyphen-spanish" ,texlive-hyphen-spanish)
2628 ("texlive-hyphen-swedish" ,texlive-hyphen-swedish)
2629 ("texlive-hyphen-thai" ,texlive-hyphen-thai)
2630 ("texlive-hyphen-turkish" ,texlive-hyphen-turkish)
2631 ("texlive-hyphen-turkmen" ,texlive-hyphen-turkmen)
2632 ("texlive-hyphen-ukrainian" ,texlive-hyphen-ukrainian)
2633 ("texlive-hyphen-uppersorbian" ,texlive-hyphen-uppersorbian)
2634 ("texlive-hyphen-welsh" ,texlive-hyphen-welsh)
2635 ("texlive-unicode-data" ,texlive-unicode-data)
2636 ("texlive-ukrhyph" ,texlive-ukrhyph)
2637 ("texlive-ruhyphen" ,texlive-ruhyphen)
2638 ("texlive-latexconfig" ,texlive-latexconfig)))
2639 (home-page "https://www.ctan.org/pkg/latex-base")
2640 (synopsis "Base sources of LaTeX")
2641 (description
2642 "This bundle comprises the source of LaTeX itself, together with several
2643 packages which are considered \"part of the kernel\". This bundle, together
2644 with the required packages, constitutes what every LaTeX distribution should
2645 contain.")
2646 (license license:lppl1.3c+))))
2647
2648 (define-public texlive-latex-filecontents
2649 (package
2650 (name "texlive-latex-filecontents")
2651 (version (number->string %texlive-revision))
2652 (source (origin
2653 (method svn-fetch)
2654 (uri (texlive-ref "latex" "filecontents"))
2655 (file-name (string-append name "-" version "-checkout"))
2656 (sha256
2657 (base32
2658 "1h78zw0vhldx478zs4v86ajg7vpkysd1kg3npc480qqls3q6ba40"))))
2659 (build-system texlive-build-system)
2660 (arguments '(#:tex-directory "latex/filecontents"))
2661 (home-page "https://www.ctan.org/pkg/filecontents")
2662 (synopsis "Extended filecontents and filecontents* environments")
2663 (description
2664 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments
2665 enable a LaTeX source file to generate external files as it runs through
2666 LaTeX. However, there are two limitations of these environments: they refuse
2667 to overwrite existing files, and they can only be used in the preamble of a
2668 document. The filecontents package removes these limitations, letting you
2669 overwrite existing files and letting you use @code{filecontents} /
2670 @code{filecontents*} anywhere.")
2671 (license license:lppl1.3c+)))
2672
2673 (define-public texlive-generic-ifxetex
2674 (package
2675 (name "texlive-generic-ifxetex")
2676 (version (number->string %texlive-revision))
2677 (source (origin
2678 (method svn-fetch)
2679 (uri (texlive-ref "generic" "ifxetex"))
2680 (file-name (string-append name "-" version "-checkout"))
2681 (sha256
2682 (base32
2683 "0w2xj7n0szavj329kds09q626szkc378p3w0sk022q0ln4ksz86d"))))
2684 (build-system texlive-build-system)
2685 (arguments
2686 '(#:tex-directory "generic/ifxetex"
2687 #:tex-format "xelatex"))
2688 (inputs
2689 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
2690 (home-page "https://www.ctan.org/pkg/ifxetex")
2691 (synopsis "Am I running under XeTeX?")
2692 (description
2693 "This is a simple package which provides an @code{\\ifxetex} conditional,
2694 so that other code can determine that it is running under XeTeX. The package
2695 requires the e-TeX extensions to the TeX primitive set.")
2696 (license license:lppl1.3c+)))
2697
2698 (define-public texlive-epsf
2699 (package
2700 (inherit (simple-texlive-package
2701 "texlive-epsf"
2702 (list "/doc/generic/epsf/"
2703 "/tex/generic/epsf/")
2704 (base32
2705 "03jcf0kqh47is965d2590miwj7d5kif3c4mgsnvkyl664jzjkh92")
2706 #:trivial? #t))
2707 (home-page "https://www.ctan.org/pkg/epsf")
2708 (synopsis "Simple macros for EPS inclusion")
2709 (description
2710 "This package provides the original (and now obsolescent) graphics
2711 inclusion macros for use with dvips, still widely used by Plain TeX users (in
2712 particular). For LaTeX users, the package is nowadays (rather strongly)
2713 deprecated in favour of the more sophisticated standard LaTeX latex-graphics
2714 bundle of packages. (The latex-graphics bundle is also available to Plain TeX
2715 users, via its Plain TeX version.)")
2716 (license license:public-domain)))
2717
2718 (define-public texlive-generic-epsf
2719 (deprecated-package "texlive-generic-epsf" texlive-epsf))
2720
2721 (define-public texlive-latex-fancyvrb
2722 (package
2723 (inherit (simple-texlive-package
2724 "texlive-latex-fancyvrb"
2725 (list "/doc/latex/fancyvrb/README"
2726 "/tex/latex/fancyvrb/")
2727 (base32
2728 "1dwkcradz9nwpjwmv1sjzn77lvw25ypr0rrgmf1kd8pd2mw7dxcn")
2729 #:trivial? #t))
2730 (home-page "https://www.ctan.org/pkg/fancyvrb")
2731 (synopsis "Sophisticated verbatim text")
2732 (description
2733 "This package provides tools for the flexible handling of verbatim text
2734 including: verbatim commands in footnotes; a variety of verbatim environments
2735 with many parameters; ability to define new customized verbatim environments;
2736 save and restore verbatim text and environments; write and read files in
2737 verbatim mode; build \"example\" environments (showing both result and
2738 verbatim source).")
2739 (license license:lppl1.0+)))
2740
2741 (define-public texlive-graphics-def
2742 (package
2743 (inherit (simple-texlive-package
2744 "texlive-graphics-def"
2745 (list "/doc/latex/graphics-def/README.md"
2746 "/tex/latex/graphics-def/")
2747 (base32
2748 "0zrbn9cwfnnrrl3b2zsd74ldksp9jwpvjh7z93ild1m75crpb39a")
2749 #:trivial? #t))
2750 (home-page "https://www.ctan.org/pkg/latex-graphics")
2751 (synopsis "Color and graphics option files")
2752 (description
2753 "This bundle is a combined distribution consisting of @file{dvips.def},
2754 @file{pdftex.def}, @file{luatex.def}, @file{xetex.def}, @file{dvipdfmx.def},
2755 and @file{dvisvgm.def} driver option files for the LaTeX graphics and color
2756 packages.")
2757 (license license:lppl1.3c+)))
2758
2759 (define-public texlive-graphics-cfg
2760 (package
2761 (inherit (simple-texlive-package
2762 "texlive-graphics-cfg"
2763 (list "/doc/latex/graphics-cfg/README.md"
2764 "/tex/latex/graphics-cfg/")
2765 (base32
2766 "00n63adb2laf43lzix39xl68aq0k5k80mmrw602w99w5n7f96gsf")
2767 #:trivial? #t))
2768 (home-page "https://www.ctan.org/pkg/latex-graphics")
2769 (synopsis "Sample configuration files for LaTeX color and graphics")
2770 (description
2771 "This bundle includes @file{color.cfg} and @file{graphics.cfg} files that
2772 set default \"driver\" options for the color and graphics packages.")
2773 (license license:public-domain)))
2774
2775 (define-public texlive-latex-graphics
2776 (package
2777 (name "texlive-latex-graphics")
2778 (version (number->string %texlive-revision))
2779 (source (origin
2780 (method svn-fetch)
2781 (uri (texlive-ref "latex" "graphics"))
2782 (file-name (string-append name "-" version "-checkout"))
2783 (sha256
2784 (base32
2785 "0nlfhn55ax89rcvpkrl9570671b62kcr4c9l5ch3w5zw9vmi00dz"))))
2786 (build-system texlive-build-system)
2787 (arguments '(#:tex-directory "latex/graphics"))
2788 (propagated-inputs
2789 `(("texlive-graphics-cfg" ,texlive-graphics-cfg)
2790 ("texlive-graphics-def" ,texlive-graphics-def)))
2791 (home-page "https://www.ctan.org/pkg/latex-graphics")
2792 (synopsis "LaTeX standard graphics bundle")
2793 (description
2794 "This is a collection of LaTeX packages for producing color, including
2795 graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX
2796 documents. It comprises the packages color, graphics, graphicx, trig, epsfig,
2797 keyval, and lscape.")
2798 (license license:lppl1.3c+)))
2799
2800 (define-public texlive-xcolor
2801 (let ((template (simple-texlive-package
2802 "texlive-xcolor"
2803 (list "/doc/latex/xcolor/"
2804 "/source/latex/xcolor/")
2805 (base32
2806 "12q6spmpxg30alhvarjmxzigmz7lazapbrb0mc4vhbn6n1sdz7pp"))))
2807 (package
2808 (inherit template)
2809 (arguments
2810 (substitute-keyword-arguments (package-arguments template)
2811 ((#:tex-directory _ #t)
2812 "latex/xcolor")
2813 ((#:phases phases)
2814 `(modify-phases ,phases
2815 (add-after 'unpack 'chdir
2816 (lambda _ (chdir "source/latex/xcolor") #t))
2817 (add-after 'install 'move-files
2818 (lambda* (#:key outputs #:allow-other-keys)
2819 (let ((share (string-append (assoc-ref outputs "out")
2820 "/share/texmf-dist")))
2821 (mkdir-p (string-append share "/dvips/xcolor"))
2822 (rename-file (string-append share "/tex/latex/xcolor/xcolor.pro")
2823 (string-append share "/dvips/xcolor/xcolor.pro"))
2824 #t)))))))
2825 (home-page "https://www.ctan.org/pkg/xcolor")
2826 (synopsis "Driver-independent color extensions for LaTeX and pdfLaTeX")
2827 (description
2828 "The package starts from the basic facilities of the colorcolor package,
2829 and provides easy driver-independent access to several kinds of color tints,
2830 shades, tones, and mixes of arbitrary colors. It allows a user to select a
2831 document-wide target color model and offers complete tools for conversion
2832 between eight color models. Additionally, there is a command for alternating
2833 row colors plus repeated non-aligned material (like horizontal lines) in
2834 tables.")
2835 (license license:lppl1.2+))))
2836
2837 (define-public texlive-latex-xcolor
2838 (deprecated-package "texlive-latex-xcolor" texlive-xcolor))
2839
2840 (define-public texlive-latex-hyperref
2841 (package
2842 (name "texlive-latex-hyperref")
2843 (version "6.84a2")
2844 ;; The sources in the TeX Live SVN repository do not contain hluatex.dtx,
2845 ;; so we fetch the release from GitHub.
2846 (source (origin
2847 (method url-fetch)
2848 (uri (string-append "https://github.com/ho-tex/hyperref/"
2849 "archive/release-" version ".tar.gz"))
2850 (file-name (string-append name "-" version ".tar.gz"))
2851 (sha256
2852 (base32
2853 "1d3rmjgzh0025a1dza55zb6nzzlgd1y9snwx45wq1c1vf42m79h2"))))
2854 (build-system texlive-build-system)
2855 (arguments '(#:tex-directory "latex/hyperref"))
2856 (propagated-inputs
2857 `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek) ; for ltxcmds.sty
2858 ("texlive-latex-url" ,texlive-latex-url)))
2859 (home-page "https://www.ctan.org/pkg/hyperref")
2860 (synopsis "Extensive support for hypertext in LaTeX")
2861 (description
2862 "The @code{hyperref} package is used to handle cross-referencing commands
2863 in LaTeX to produce hypertext links in the document. The package provides
2864 backends for the @code{\\special} set defined for HyperTeX DVI processors; for
2865 embedded @code{pdfmark} commands for processing by Acrobat
2866 Distiller (@code{dvips} and Y&Y's @code{dvipsone}); for Y&Y's @code{dviwindo};
2867 for PDF control within pdfTeX and @code{dvipdfm}; for TeX4ht; and for VTeX's
2868 pdf and HTML backends. The package is distributed with the @code{backref} and
2869 @code{nameref} packages, which make use of the facilities of @code{hyperref}.")
2870 (license license:lppl1.3+)))
2871
2872 (define-public texlive-latex-oberdiek
2873 (package
2874 (name "texlive-latex-oberdiek")
2875 (version (number->string %texlive-revision))
2876 (source (origin
2877 (method svn-fetch)
2878 (uri (texlive-ref "latex" "oberdiek"))
2879 (file-name (string-append name "-" version "-checkout"))
2880 (sha256
2881 (base32
2882 "0pi2d6gsddcs9wprdbar46s91kdc5fxl1m79g7xrbccsx8s9xbml"))))
2883 (build-system texlive-build-system)
2884 (arguments
2885 '(#:tex-directory "latex/oberdiek"
2886 #:build-targets '("oberdiek.ins")
2887 #:phases
2888 (modify-phases %standard-phases
2889 ;; "ifpdf.ins" is not generated, so we need to process the dtx file.
2890 (add-after 'unpack 'do-not-process-ifpdf.ins
2891 (lambda _
2892 (substitute* "oberdiek.ins"
2893 (("ifpdf.ins") "ifpdf.dtx"))
2894 #t)))))
2895 (propagated-inputs
2896 `(("texlive-generic-ifxetex" ,texlive-generic-ifxetex)))
2897 (home-page "https://www.ctan.org/pkg/oberdiek")
2898 (synopsis "Bundle of packages submitted by Heiko Oberdiek")
2899 (description
2900 "The bundle comprises various LaTeX packages, providing among others:
2901 better accessibility support for PDF files; extensible chemists reaction
2902 arrows; record information about document class(es) used; and many more.")
2903 (license license:lppl1.3+)))
2904
2905 (define-public texlive-latex-tools
2906 (package
2907 (name "texlive-latex-tools")
2908 (version (number->string %texlive-revision))
2909 (source (origin
2910 (method svn-fetch)
2911 (uri (texlive-ref "latex" "tools"))
2912 (file-name (string-append name "-" version "-checkout"))
2913 (sha256
2914 (base32
2915 "1wqvn4z0s92h5iqzrvxw7hinzp95avjk9v8lnqbqr4kz6nv4xb9l"))))
2916 (build-system texlive-build-system)
2917 (arguments
2918 '(#:tex-directory "latex/tools"
2919 #:build-targets '("tools.ins")))
2920 (home-page "https://www.ctan.org/pkg/latex-tools")
2921 (synopsis "LaTeX standard tools bundle")
2922 (description
2923 "This package is a collection of (variously) simple tools provided as
2924 part of the LaTeX required tools distribution, comprising the following
2925 packages: afterpage, array, bm, calc, dcolumn, delarray, enumerate, fileerr,
2926 fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol,
2927 rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim,
2928 xr, and xspace.")
2929 (license license:lppl1.3+)))
2930
2931 (define-public texlive-url
2932 (package
2933 (inherit (simple-texlive-package
2934 "texlive-url"
2935 (list "/doc/latex/url/"
2936 "/tex/latex/url/")
2937 (base32
2938 "184m40wgnx939ky2hbxnj0v9aak023ldrhgffp0lgyk9wdqpxlqg")
2939 #:trivial? #t))
2940 (home-page "https://www.ctan.org/pkg/url")
2941 (synopsis "Verbatim with URL-sensitive line breaks")
2942 (description "The command @code{\\url} is a form of verbatim command that
2943 allows linebreaks at certain characters or combinations of characters, accepts
2944 reconfiguration, and can usually be used in the argument to another command.
2945 The command is intended for email addresses, hypertext links,
2946 directories/paths, etc., which normally have no spaces, so by default the
2947 package ignores spaces in its argument. However, a package option allows
2948 spaces, which is useful for operating systems where spaces are a common part
2949 of file names.")
2950 ;; The license header states that it is under LPPL version 2 or later, but
2951 ;; the latest version is 1.3c.
2952 (license license:lppl1.3c+)))
2953
2954 (define-public texlive-latex-url
2955 (deprecated-package "texlive-latex-url" texlive-url))
2956
2957 (define-public texlive-tetex
2958 (package
2959 (inherit (simple-texlive-package
2960 "texlive-tetex"
2961 (list "/dvips/tetex/"
2962 "/fonts/enc/dvips/tetex/"
2963 "/fonts/map/dvips/tetex/")
2964 (base32
2965 "1si3as8mwi8837965djlw6jhwwzsp3r1hkflvdxv2avx9vb45hjb")
2966 #:trivial? #t))
2967 (home-page "https://www.ctan.org/pkg/tetex")
2968 (synopsis "Font maps originally from teTeX")
2969 (description "This package provides font maps that were originally part of
2970 the now obsolete teTeX distributions but are still used at the core of the TeX
2971 Live distribution.")
2972 (license license:public-domain)))
2973
2974 (define-public texlive-latex-l3kernel
2975 (package
2976 (name "texlive-latex-l3kernel")
2977 (version (number->string %texlive-revision))
2978 (source (origin
2979 (method svn-fetch)
2980 (uri (texlive-ref "latex" "l3kernel"))
2981 (file-name (string-append name "-" version "-checkout"))
2982 (sha256
2983 (base32
2984 "0s77z2cbv841l45qrpf0s8qhzfa4wi689lg7zkw88qg18nzvy0ly"))))
2985 (build-system texlive-build-system)
2986 (arguments
2987 '(#:tex-directory "latex/l3kernel"))
2988 (home-page "https://www.ctan.org/pkg/l3kernel")
2989 (synopsis "LaTeX3 programmers’ interface")
2990 (description
2991 "The l3kernel bundle provides an implementation of the LaTeX3
2992 programmers’ interface, as a set of packages that run under LaTeX 2e. The
2993 interface provides the foundation on which the LaTeX3 kernel and other future
2994 code are built: it is an API for TeX programmers. The packages are set up so
2995 that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
2996 (license license:lppl1.3c+)))
2997
2998 (define-public texlive-latex-l3packages
2999 (package
3000 (name "texlive-latex-l3packages")
3001 (version (number->string %texlive-revision))
3002 (source (origin
3003 (method svn-fetch)
3004 (uri (texlive-ref "latex" "l3packages"))
3005 (file-name (string-append name "-" version "-checkout"))
3006 (sha256
3007 (base32
3008 "1cv4fk9pabh7mkxhfsdmh4k8xpmzg1psgcsvd11c869m7n3a629h"))))
3009 (build-system texlive-build-system)
3010 (arguments
3011 '(#:tex-directory "latex/l3packages"
3012 ;; build-targets must be specified manually since they are in
3013 ;; sub-directories.
3014 #:build-targets '("l3keys2e.ins" "xparse.ins" "xfrac.ins" "xfp.ins" "xtemplate.ins")
3015 #:phases
3016 (modify-phases %standard-phases
3017 ;; All package sources are in sub-directories, so we need to add them
3018 ;; to TEXINPUTS.
3019 (add-after 'unpack 'set-TEXINPUTS
3020 (lambda _
3021 (let ((cwd (getcwd)))
3022 (setenv "TEXINPUTS"
3023 (string-append cwd "/l3keys2e:"
3024 cwd "/xparse:"
3025 cwd "/xfrac:"
3026 cwd "/xfp:"
3027 cwd "/xtemplate"
3028 ;; The terminating ":" is required to include the
3029 ;; l3kernel input as well.
3030 ":")))
3031 #t)))
3032 ))
3033 (propagated-inputs
3034 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
3035 (home-page "https://www.ctan.org/pkg/l3packages")
3036 (synopsis "High-level LaTeX3 concepts")
3037 (description
3038 "This bundle holds prototype implementations of concepts for a LaTeX
3039 designer interface, to be used with the experimental LaTeX kernel as
3040 programming tools and kernel sup­port. Packages provided in this release are:
3041
3042 @enumerate
3043 @item l3keys2e, which makes the facilities of the kernel module l3keys
3044 available for use by LaTeX 2e packages;
3045 @item xfrac, which provides flexible splitlevel fractions;
3046 @item xparse, which provides a high-level interface for declaring document
3047 commands; and
3048 @item xtemplate, which provides a means of defining generic functions using a
3049 key-value syntax.
3050 @end enumerate\n")
3051 (license license:lppl1.3c+)))
3052
3053 (define-public texlive-latex-fontspec
3054 (package
3055 (name "texlive-latex-fontspec")
3056 (version (number->string %texlive-revision))
3057 (source (origin
3058 (method svn-fetch)
3059 (uri (texlive-ref "latex" "fontspec"))
3060 (file-name (string-append name "-" version "-checkout"))
3061 (sha256
3062 (base32
3063 "1223cw029n6zff7pqpwbsq1x8v3w63smczkmnybqxkw5h2za8gbz"))))
3064 (build-system texlive-build-system)
3065 (arguments
3066 '(#:tex-directory "latex/fontspec"
3067 #:phases
3068 (modify-phases %standard-phases
3069 (add-after 'install 'install-default-fontspec.cfg
3070 (lambda* (#:key outputs #:allow-other-keys)
3071 (with-output-to-file
3072 (string-append (assoc-ref outputs "out")
3073 "/share/texmf-dist/tex/latex/fontspec/fontspec.cfg")
3074 (lambda _
3075 (display "\
3076 %%% FONTSPEC.CFG %%%
3077 %
3078 % This configuration file sets up TeX Ligatures by default for all fonts loaded
3079 % with `\\setmainfont` and `\\setsansfont`.
3080 %
3081 % In addition, `\\setmonofont` has default features to enforce \"monospace\"
3082 % settings with regard to space stretchability and shrinkability.
3083
3084 \\defaultfontfeatures
3085 [\\rmfamily,\\sffamily]
3086 {Ligatures=TeX}
3087
3088 \\defaultfontfeatures
3089 [\\ttfamily]
3090 {WordSpace={1,0,0},
3091 HyphenChar=None,
3092 PunctuationSpace=WordSpace}
3093 ")))
3094 #t)))))
3095 (propagated-inputs
3096 `(("texlive-latex-l3packages" ,texlive-latex-l3packages)))
3097 (home-page "https://www.ctan.org/pkg/fontspec")
3098 (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX")
3099 (description
3100 "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an
3101 automatic and unified interface to feature-rich AAT and OpenType fonts through
3102 the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires
3103 the l3kernel and xparse bundles from the LaTeX 3 development team.")
3104 (license license:lppl1.3+)))
3105
3106 ;; The SVN directory contains little more than a dtx file that generates three
3107 ;; of the many lua files that should be installed as part of this package.
3108 ;; This is why we take the release from GitHub instead.
3109 (define-public texlive-luatex-lualibs
3110 (package
3111 (name "texlive-luatex-lualibs")
3112 (version "2.5")
3113 (source (origin
3114 (method url-fetch)
3115 (uri (string-append "https://github.com/lualatex/lualibs/"
3116 "releases/download/v"
3117 version "/lualibs.zip"))
3118 (file-name (string-append name "-" version ".zip"))
3119 (sha256
3120 (base32
3121 "1xx9blvrmx9hyhrl345lpai9m6xxnw997261a1ahn1bm5r2j5fqy"))))
3122 (build-system gnu-build-system)
3123 (arguments
3124 `(#:make-flags
3125 (list (string-append "DESTDIR="
3126 (assoc-ref %outputs "out")
3127 "/share/texmf-dist"))
3128 #:phases
3129 (modify-phases %standard-phases
3130 (delete 'configure))))
3131 (native-inputs
3132 `(("texlive-bin" ,texlive-bin)
3133 ("unzip" ,unzip)
3134 ("zip" ,zip)))
3135 (home-page "https://github.com/lualatex/lualibs")
3136 (synopsis "Lua modules for general programming (in the (La)TeX world)")
3137 (description
3138 "Lualibs is a collection of Lua modules useful for general programming.
3139 The bundle is based on Lua modules shipped with ConTeXt, and made available in
3140 this bundle for use independent of ConTeXt.")
3141 ;; GPL version 2 only
3142 (license license:gpl2)))
3143
3144 (define-public texlive-luatex-luaotfload
3145 (package
3146 (name "texlive-luatex-luaotfload")
3147 (version "2.8-fix-2")
3148 ;; The release tarball does not contain all source files.
3149 (source (origin
3150 (method git-fetch)
3151 (uri (git-reference
3152 (url "https://github.com/lualatex/luaotfload")
3153 (commit (string-append "v" version))))
3154 (file-name (git-file-name name version))
3155 (sha256
3156 (base32
3157 "0l5l7iq3dxcxl65qaghcpjg27yd9iw1sxa8pnd7xlvlm09dhfdnf"))))
3158 (build-system gnu-build-system)
3159 (arguments
3160 `(#:make-flags
3161 (list (string-append "DESTDIR="
3162 (assoc-ref %outputs "out")
3163 "/share/texmf-dist")
3164 "all")
3165 #:parallel-build? #f ; not supported
3166 #:phases
3167 (modify-phases %standard-phases
3168 (replace 'configure
3169 (lambda* (#:key inputs #:allow-other-keys)
3170 (substitute* "doc/Makefile"
3171 (("rst2man") "rst2man.py")
3172 ;; Don't build the PDF. This requires more of LaTeX.
3173 (("\\$\\(DOCPDF\\)") ""))
3174
3175 (substitute* "Makefile"
3176 ;; We don't build the PDF, so don't attempt to install it.
3177 (("cp \\$\\(RESOURCES\\) \\$\\(DOCPDF\\)")
3178 "cp $(RESOURCES)")
3179 (("= \\$\\(DOCPDF\\)") "= ")
3180 ;; Fix name of fontloader file
3181 (("^LOADER.*= \\$\\(BUILDDIR\\)/fontloader-\\$\\(shell date \\+%F\\).lua")
3182 "LOADER = $(BUILDDIR)/fontloader.lua"))
3183
3184 (mkdir "build")
3185
3186 ;; Don't download this file.
3187 (copy-file (assoc-ref inputs "glyphlist")
3188 "build/glyphlist.txt")
3189
3190 ;; Don't use git
3191 (let ((notes
3192 `((committer . "Philipp Gesang <phg@phi-gamma.net>")
3193 (description . ,version)
3194 (loader . "fontloader.lua")
3195 (revision . "ad480924393fffa2896156e1a32c22f5c61120dd")
3196 (timestamp . "2019-01-01 00:00:00 +0000"))))
3197 (substitute* "scripts/mkstatus"
3198 (("local notes.*=.*")
3199 (string-append "local notes = {"
3200 (string-join
3201 (map (lambda (entry)
3202 (format "[\"~a\"]=\"~a\","
3203 (symbol->string (car entry))
3204 (cdr entry)))
3205 notes))
3206 "}"))))
3207 #t)))))
3208 (native-inputs
3209 `(("zip" ,zip)
3210 ("unzip" ,unzip)
3211 ("graphviz" ,graphviz)
3212 ("lualatex" ,(texlive-union (list texlive-luatex-lualibs
3213 texlive-context-base)))
3214 ("python-docutils" ,python-docutils)
3215 ("glyphlist"
3216 ,(origin
3217 (method url-fetch)
3218 (uri (string-append "https://raw.githubusercontent.com/adobe-type-tools/"
3219 "agl-aglfn/b2a04cb906f9257cc06a2fe0ad4b3d663bc02136/"
3220 "glyphlist.txt"))
3221 (sha256
3222 (base32 "1s6svfw23rqzdvflv8frgd4xrwvrmsj8szwzqgcd39dp9rpjafjp"))))))
3223 (propagated-inputs
3224 `(("texlive-luatex-lualibs" ,texlive-luatex-lualibs)))
3225 (home-page "https://github.com/lualatex/luaotfload")
3226 (synopsis "OpenType font loader for LuaTeX")
3227 (description
3228 "Luaotfload is an adaptation of the ConTeXt font loading system for the
3229 Plain and LaTeX formats. It allows OpenType fonts to be loaded with font
3230 features accessible using an extended font request syntax while providing
3231 compatibilitywith XeTeX. By indexing metadata in a database it facilitates
3232 loading fonts by their proper names instead of file names.")
3233 ;; GPL version 2 only
3234 (license license:gpl2)))
3235
3236 (define-public texlive-latex-amsmath
3237 (package
3238 (name "texlive-latex-amsmath")
3239 (version (number->string %texlive-revision))
3240 (source (origin
3241 (method svn-fetch)
3242 (uri (texlive-ref "latex" "amsmath"))
3243 (file-name (string-append name "-" version "-checkout"))
3244 (sha256
3245 (base32
3246 "0qgk2332dacsxn1z95qzp35gbs7wrzl1ipjdhnmk1r897msm4sf5"))))
3247 (build-system texlive-build-system)
3248 (arguments '(#:tex-directory "latex/amsmath"))
3249 (home-page "https://www.ctan.org/pkg/amsmath")
3250 (synopsis "AMS mathematical facilities for LaTeX")
3251 (description
3252 "This is the principal package in the AMS-LaTeX distribution. It adapts
3253 for use in LaTeX most of the mathematical features found in AMS-TeX; it is
3254 highly recommended as an adjunct to serious mathematical typesetting in LaTeX.
3255 When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold
3256 symbols), @code{amsopnamsopn} (for operator names) and
3257 @code{amstextamstext} (for text embedded in mathematics) are also loaded.
3258 This package is part of the LaTeX required distribution; however, several
3259 contributed packages add still further to its appeal; examples are
3260 @code{empheqempheq}, which provides functions for decorating and highlighting
3261 mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
3262 definitions.")
3263 (license license:lppl1.3c+)))
3264
3265 (define-public texlive-latex-amscls
3266 (package
3267 (name "texlive-latex-amscls")
3268 (version (number->string %texlive-revision))
3269 (source (origin
3270 (method svn-fetch)
3271 (uri (texlive-ref "latex" "amscls"))
3272 (file-name (string-append name "-" version "-checkout"))
3273 (sha256
3274 (base32
3275 "0c2j9xh4qpi0x1vvcxdjxq6say0zhyr569fryi5cmhp8bclh4kca"))))
3276 (build-system texlive-build-system)
3277 (arguments
3278 `(#:tex-directory "latex/amscls"))
3279 (home-page "https://www.ctan.org/pkg/amscls")
3280 (synopsis "AMS document classes for LaTeX")
3281 (description
3282 "This bundle contains three AMS classes: @code{amsartamsart} (for writing
3283 articles for the AMS), @code{amsbookamsbook} (for books) and
3284 @code{amsprocamsproc} (for proceedings), together with some supporting
3285 material. The material is made available as part of the AMS-LaTeX
3286 distribution.")
3287 (license license:lppl1.3c+)))
3288
3289 (define-public texlive-latex-babel
3290 (package
3291 (name "texlive-latex-babel")
3292 (version (number->string %texlive-revision))
3293 (source (origin
3294 (method svn-fetch)
3295 (uri (texlive-ref "latex" "babel"))
3296 (file-name (string-append name "-" version "-checkout"))
3297 (sha256
3298 (base32
3299 "1rwqq841i1rxywymzwkw0cw2yhgvxwjx5mgygfasvypwrwll6f6s"))))
3300 (build-system texlive-build-system)
3301 (arguments
3302 '(#:tex-directory "generic/babel"
3303 #:phases
3304 (modify-phases %standard-phases
3305 ;; This package tries to produce babel.aux twice but refuses to
3306 ;; overwrite the first one.
3307 (add-before 'build 'fix-ins
3308 (lambda _
3309 (substitute* "babel.ins"
3310 (("askonceonly") "askforoverwritefalse"))
3311 #t)))))
3312 (home-page "https://www.ctan.org/pkg/babel")
3313 (synopsis "Multilingual support for Plain TeX or LaTeX")
3314 (description
3315 "The package manages culturally-determined typographical (and other)
3316 rules, and hyphenation patterns for a wide range of languages. A document may
3317 select a single language to be supported, or it may select several, in which
3318 case the document may switch from one language to another in a variety of
3319 ways. Babel uses contributed configuration files that provide the detail of
3320 what has to be done for each language. Users of XeTeX are advised to use the
3321 polyglossia package rather than Babel.")
3322 (license license:lppl1.3+)))
3323
3324 (define-public texlive-generic-babel-english
3325 (package
3326 (name "texlive-generic-babel-english")
3327 (version (number->string %texlive-revision))
3328 (source (origin
3329 (method svn-fetch)
3330 (uri (texlive-ref "generic" "babel-english"))
3331 (file-name (string-append name "-" version "-checkout"))
3332 (sha256
3333 (base32
3334 "1s404wbx91z5w65hm024kyl4h56zsa096irx18vsx8jvlmwsr5wc"))))
3335 (build-system texlive-build-system)
3336 (arguments '(#:tex-directory "generic/babel-english"))
3337 (home-page "https://www.ctan.org/pkg/babel-english")
3338 (synopsis "Babel support for English")
3339 (description
3340 "This package provides the language definition file for support of
3341 English in @code{babel}. Care is taken to select British hyphenation patterns
3342 for British English and Australian text, and default (\"american\") patterns
3343 for Canadian and USA text.")
3344 (license license:lppl1.3+)))
3345
3346 (define-public texlive-generic-babel-german
3347 (package
3348 (name "texlive-generic-babel-german")
3349 (version (number->string %texlive-revision))
3350 (source (origin
3351 (method svn-fetch)
3352 (uri (texlive-ref "generic" "babel-german"))
3353 (file-name (string-append name "-" version "-checkout"))
3354 (sha256
3355 (base32
3356 "129f9w41cb6yyrr6kpv3zz9ml6334hyq1wcz7j9jn47p0hlxqfk8"))))
3357 (build-system texlive-build-system)
3358 (arguments '(#:tex-directory "generic/babel-german"))
3359 (home-page "https://www.ctan.org/pkg/babel-german")
3360 (synopsis "Babel support for German")
3361 (description
3362 "This package provides the language definition file for support of German
3363 in @code{babel}. It provides all the necessary macros, definitions and
3364 settings to typeset German documents. The bundle includes support for the
3365 traditional and reformed German orthography as well as for the Austrian and
3366 Swiss varieties of German.")
3367 (license license:lppl1.3+)))
3368
3369 (define-public texlive-latex-cyrillic
3370 (package
3371 (name "texlive-latex-cyrillic")
3372 (version (number->string %texlive-revision))
3373 (source (origin
3374 (method svn-fetch)
3375 (uri (texlive-ref "latex" "cyrillic"))
3376 (file-name (string-append name "-" version "-checkout"))
3377 (sha256
3378 (base32
3379 "083xbwg7hrnlv47fkwvz8yjb830bhxx7y0mq7z7nz2f96y2ldr6b"))))
3380 (build-system texlive-build-system)
3381 (arguments
3382 '(#:tex-directory "latex/cyrillic"))
3383 (home-page "https://www.ctan.org/pkg/latex-cyrillic")
3384 (synopsis "Support for Cyrillic fonts in LaTeX")
3385 (description
3386 "This bundle of macros files provides macro support (including font
3387 encoding macros) for the use of Cyrillic characters in fonts encoded under the
3388 T2* and X2 encodings. These encodings cover (between them) pretty much every
3389 language that is written in a Cyrillic alphabet.")
3390 (license license:lppl1.3c+)))
3391
3392 (define-public texlive-latex-psnfss
3393 (package
3394 (name "texlive-latex-psnfss")
3395 (version (number->string %texlive-revision))
3396 (source (origin
3397 (method svn-fetch)
3398 (uri (texlive-ref "latex" "psnfss"))
3399 (file-name (string-append name "-" version "-checkout"))
3400 (sha256
3401 (base32
3402 "1920dcq8613yzprasbg80fh4fcjcidvvl54wkx438nimyxcri7qz"))))
3403 (build-system texlive-build-system)
3404 (arguments '(#:tex-directory "latex/psnfss"))
3405 (home-page "https://www.ctan.org/pkg/psnfss")
3406 (synopsis "Font support for common PostScript fonts")
3407 (description
3408 "The PSNFSS collection includes a set of files that provide a complete
3409 working setup of the LaTeX font selection scheme (NFSS2) for use with common
3410 PostScript fonts. It covers the so-called \"Base\" fonts (which are built
3411 into any Level 2 PostScript printing device and the Ghostscript interpreter)
3412 and a number of free fonts. It provides font definition files, macros and
3413 font metrics. The bundle as a whole is part of the LaTeX required set of
3414 packages.")
3415 (license license:lppl1.2+)))
3416
3417 ;; For user profiles
3418 (define-public texlive-base
3419 (let ((default-packages
3420 (list texlive-bin
3421 texlive-dvips
3422 texlive-fontname
3423 texlive-cm
3424 texlive-fonts-latex
3425 texlive-metafont-base
3426 texlive-latex-base
3427 ;; LaTeX packages from the "required" set.
3428 texlive-latex-amsmath
3429 texlive-latex-amscls
3430 texlive-latex-babel
3431 texlive-generic-babel-english
3432 texlive-latex-cyrillic
3433 texlive-latex-graphics
3434 texlive-latex-psnfss
3435 texlive-latex-tools
3436 texlive-tetex)))
3437 (package
3438 (name "texlive-base")
3439 (version (number->string %texlive-revision))
3440 (source #f)
3441 (build-system trivial-build-system)
3442 (arguments
3443 '(#:builder
3444 (begin (mkdir (assoc-ref %outputs "out")))))
3445 (propagated-inputs
3446 (map (lambda (package)
3447 (list (package-name package) package))
3448 default-packages))
3449 (home-page (package-home-page texlive-bin))
3450 (synopsis "TeX Live base packages")
3451 (description "This is a very limited subset of the TeX Live distribution.
3452 It includes little more than the required set of LaTeX packages.")
3453 (license (fold (lambda (package result)
3454 (match (package-license package)
3455 ((lst ...)
3456 (append lst result))
3457 ((? license:license? license)
3458 (cons license result))))
3459 '()
3460 default-packages)))))
3461
3462 ;; For use in package definitions only
3463 (define-public texlive-union
3464 (lambda* (#:optional (packages '()))
3465 "Return 'texlive-union' package which is a union of PACKAGES and the
3466 standard LaTeX packages."
3467 (let ((default-packages (match (package-propagated-inputs texlive-base)
3468 (((labels packages) ...) packages))))
3469 (package (inherit texlive-base)
3470 (name "texlive-union")
3471 (build-system trivial-build-system)
3472 (arguments
3473 '(#:modules ((guix build union)
3474 (guix build utils)
3475 (guix build texlive-build-system)
3476 (guix build gnu-build-system)
3477 (guix build gremlin)
3478 (guix elf))
3479 #:builder
3480 (begin
3481 (use-modules (ice-9 match)
3482 (ice-9 popen)
3483 (srfi srfi-26)
3484 (guix build union)
3485 (guix build utils)
3486 (guix build texlive-build-system))
3487 (let* ((out (assoc-ref %outputs "out"))
3488 (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf")))
3489 ;; Build a modifiable union of all inputs (but exclude bash and
3490 ;; the updmap.cfg file)
3491 (match (filter (match-lambda
3492 ((name . _)
3493 (not (member name '("bash"
3494 "coreutils"
3495 "sed"
3496 "updmap.cfg")))))
3497 %build-inputs)
3498 (((names . directories) ...)
3499 (union-build (assoc-ref %outputs "out")
3500 directories
3501 #:create-all-directories? #t
3502 #:log-port (%make-void-port "w"))))
3503
3504 ;; The configuration file "texmf.cnf" is provided by the
3505 ;; "texlive-bin" package. We take it and override only the
3506 ;; setting for TEXMFROOT and TEXMF. This file won't be consulted
3507 ;; by default, though, so we still need to set TEXMFCNF.
3508 (substitute* texmf.cnf
3509 (("^TEXMFROOT = .*")
3510 (string-append "TEXMFROOT = " out "/share\n"))
3511 (("^TEXMF = .*")
3512 "TEXMF = $TEXMFROOT/share/texmf-dist\n"))
3513 (setenv "PATH" (string-append
3514 (assoc-ref %build-inputs "bash") "/bin:"
3515 (assoc-ref %build-inputs "coreutils") "/bin:"
3516 (assoc-ref %build-inputs "sed") "/bin:"
3517 (string-append out "/bin")))
3518 (for-each
3519 (cut wrap-program <>
3520 `("TEXMFCNF" ":" suffix (,(dirname texmf.cnf)))
3521 `("TEXMF" ":" suffix (,(string-append out "/share/texmf-dist"))))
3522 (find-files (string-append out "/bin") ".*"))
3523
3524 ;; Remove invalid maps from config file.
3525 (let ((web2c (string-append out "/share/texmf-config/web2c/"))
3526 (maproot (string-append out "/share/texmf-dist/fonts/map/")))
3527 (mkdir-p web2c)
3528 (copy-file
3529 (assoc-ref %build-inputs "updmap.cfg")
3530 (string-append web2c "updmap.cfg"))
3531 (make-file-writable (string-append web2c "updmap.cfg"))
3532
3533 (let* ((port (open-pipe* OPEN_WRITE "updmap-sys"
3534 "--syncwithtrees"
3535 "--nohash"
3536 (string-append "--cnffile=" web2c "updmap.cfg"))))
3537 (display "Y\n" port)
3538 (when (not (zero? (status:exit-val (close-pipe port))))
3539 (error "failed to filter updmap.cfg")))
3540 ;; Generate maps.
3541 (invoke "updmap-sys"
3542 (string-append "--cnffile=" web2c "updmap.cfg")
3543 (string-append "--dvipdfmxoutputdir="
3544 maproot "dvipdfmx/updmap/")
3545 (string-append "--dvipsoutputdir="
3546 maproot "dvips/updmap/")
3547 (string-append "--pdftexoutputdir="
3548 maproot "pdftex/updmap/"))
3549 ;; Having this file breaks all file lookups later.
3550 (delete-file (string-append out "/share/texmf-dist/ls-R")))
3551 #t))))
3552 (inputs
3553 `(("bash" ,bash)
3554 ,@(map (lambda (package)
3555 (list (package-name package) package))
3556 (append default-packages packages))))
3557 (native-inputs
3558 `(("coreutils" ,coreutils)
3559 ("sed" ,sed)
3560 ("updmap.cfg"
3561 ,(origin
3562 (method url-fetch)
3563 (uri (string-append "https://tug.org/svn/texlive/tags/"
3564 %texlive-tag "/Master/texmf-dist/web2c/updmap.cfg"
3565 "?revision=" (number->string %texlive-revision)))
3566 (file-name (string-append "updmap.cfg-"
3567 (number->string %texlive-revision)))
3568 (sha256
3569 (base32
3570 "0faqknqxs80qp9ywk0by5k85s0yalg97c4lja4q56lsyblrr4j7i"))))))
3571 (home-page (package-home-page texlive-bin))
3572 (synopsis "Union of TeX Live packages")
3573 (description "This package provides a subset of the TeX Live
3574 distribution.")
3575 (license (fold (lambda (package result)
3576 (match (package-license package)
3577 ((lst ...)
3578 (append lst result))
3579 ((? license:license? license)
3580 (cons license result))))
3581 '()
3582 (append default-packages packages)))))))
3583
3584 ;; For use in package definitions only
3585 (define-public texlive-tiny
3586 (package
3587 (inherit (texlive-union))
3588 (name "texlive-tiny")
3589 (description "This is a very limited subset of the TeX Live distribution.
3590 It includes little more than the required set of LaTeX packages.")))
3591
3592 (define-public texlive-tipa
3593 (package
3594 (inherit (simple-texlive-package
3595 "texlive-tipa"
3596 (list "/tex4ht/ht-fonts/alias/tipa/"
3597 "/doc/fonts/tipa/"
3598 "/fonts/map/dvips/tipa/"
3599 "/fonts/source/public/tipa/"
3600 "/fonts/tfm/public/tipa/"
3601 "/fonts/type1/public/tipa/"
3602 "/tex/latex/tipa/")
3603 (base32
3604 "1h53dscv8z6fsa0ax5dys3x11b2f1g60l22hpdf7c88cvdhcs8sn")
3605 #:trivial? #t))
3606 (home-page "https://www.ctan.org/pkg/tipa")
3607 (synopsis "Fonts and macros for IPA phonetics characters")
3608 (description "These fonts are considered the \"ultimate answer\" to IPA
3609 typesetting. The encoding of these 8-bit fonts has been registered as LaTeX
3610 standard encoding T3, and the set of addendum symbols as encoding
3611 TS3. \"Times-like\" Adobe Type 1 versions are provided for both the T3 and the
3612 TS3 fonts.")
3613 (license license:lppl)))
3614
3615 (define-public texlive-latex-amsrefs
3616 (package
3617 (name "texlive-latex-amsrefs")
3618 (version (number->string %texlive-revision))
3619 (source (origin
3620 (method svn-fetch)
3621 (uri (texlive-ref "latex" "amsrefs"))
3622 (file-name (string-append name "-" version "-checkout"))
3623 (sha256
3624 (base32
3625 "15i4k479dwrpr0kspmm70g1yn4p3dkh0whyzmr93hph9bggnh1i1"))))
3626 (build-system texlive-build-system)
3627 (arguments '(#:tex-directory "latex/amsrefs"))
3628 (home-page "https://www.ctan.org/pkg/amsrefs")
3629 (synopsis "LaTeX-based replacement for BibTeX")
3630 (description
3631 "Amsrefs is a LaTeX package for bibliographies that provides an archival
3632 data format similar to the format of BibTeX database files, but adapted to
3633 make direct processing by LaTeX easier. The package can be used either in
3634 conjunction with BibTeX or as a replacement for BibTeX.")
3635 (license license:lppl1.3+)))
3636
3637 (define-public texlive-latex-bigfoot
3638 (package
3639 (name "texlive-latex-bigfoot")
3640 (version (number->string %texlive-revision))
3641 (source (origin
3642 (method svn-fetch)
3643 (uri (texlive-ref "latex" "bigfoot"))
3644 (file-name (string-append name "-" version "-checkout"))
3645 (sha256
3646 (base32
3647 "092g8alnsdwlgl1isdnqrr32l161994295kadr1n05d81xgj5wnv"))))
3648 (build-system texlive-build-system)
3649 (arguments
3650 '(#:tex-directory "latex/bigfoot"
3651 #:phases
3652 (modify-phases %standard-phases
3653 (add-after 'unpack 'remove-generated-file
3654 (lambda _
3655 (for-each delete-file (find-files "." "\\.drv$"))
3656 #t)))))
3657 (home-page "https://www.ctan.org/pkg/bigfoot")
3658 (synopsis "Footnotes for critical editions")
3659 (description
3660 "This package aims to provide a one-stop solution to requirements for
3661 footnotes. It offers: Multiple footnote apparatus superior to that of
3662 @code{manyfoot}. Footnotes can be formatted in separate paragraphs, or be run
3663 into a single paragraph (this choice may be selected per footnote series);
3664 Things you might have expected (such as @code{\\verb}-like material in
3665 footnotes, and color selections over page breaks) now work. Note that the
3666 majority of the bigfoot package's interface is identical to that of
3667 @code{manyfoot}; users should seek information from that package's
3668 documentation. The bigfoot bundle also provides the @code{perpage} and
3669 @code{suffix} packages.")
3670 (license license:gpl2+)))
3671
3672 (define-public texlive-latex-blindtext
3673 (package
3674 (name "texlive-latex-blindtext")
3675 (version (number->string %texlive-revision))
3676 (source (origin
3677 (method svn-fetch)
3678 (uri (texlive-ref "latex" "blindtext"))
3679 (file-name (string-append name "-" version "-checkout"))
3680 (sha256
3681 (base32
3682 "1jrja9b1pzdh9zgv1jh807w4xijqja58n2mqny6dkwicv8qfgbfg"))))
3683 (build-system texlive-build-system)
3684 (arguments '(#:tex-directory "latex/blindtext"))
3685 (home-page "https://www.ctan.org/pkg/blindtext")
3686 (synopsis "Producing 'blind' text for testing")
3687 (description
3688 "The package provides the commands @code{\\blindtext} and
3689 @code{\\Blindtext} for creating \"blind\" text useful in testing new classes
3690 and packages, and @code{\\blinddocument}, @code{\\Blinddocument} for creating
3691 an entire random document with sections, lists, mathematics, etc. The package
3692 supports three languages, @code{english}, @code{(n)german} and @code{latin};
3693 the @code{latin} option provides a short \"lorem ipsum\" (for a fuller \"lorem
3694 ipsum\" text, see the @code{lipsum} package).")
3695 (license license:lppl)))
3696
3697 (define-public texlive-latex-dinbrief
3698 (package
3699 (name "texlive-latex-dinbrief")
3700 (version (number->string %texlive-revision))
3701 (source (origin
3702 (method svn-fetch)
3703 (uri (texlive-ref "latex" "dinbrief"))
3704 (file-name (string-append name "-" version "-checkout"))
3705 (sha256
3706 (base32
3707 "0lb0kiy8fxzl6cnhcw1sggy6jrjvcd6kj1kkw3k9lkimm388yjz6"))))
3708 (build-system texlive-build-system)
3709 (arguments
3710 '(#:tex-directory "latex/dinbrief"
3711 #:phases
3712 (modify-phases %standard-phases
3713 (add-after 'unpack 'remove-generated-file
3714 (lambda _
3715 (delete-file "dinbrief.drv")
3716 #t))
3717 (add-after 'unpack 'fix-encoding-error
3718 (lambda _
3719 (with-fluids ((%default-port-encoding "ISO-8859-1"))
3720 (substitute* "dinbrief.dtx"
3721 (("zur Verf.+ung. In der Pr\"aambel")
3722 "zur Verf\"ung. In der Pr\"aambel")))
3723 #t)))))
3724 (home-page "https://www.ctan.org/pkg/dinbrief")
3725 (synopsis "German letter DIN style")
3726 (description
3727 "This package implements a document layout for writing letters according
3728 to the rules of DIN (Deutsches Institut für Normung, German standardisation
3729 institute). A style file for LaTeX 2.09 (with limited support of the
3730 features) is part of the package. Since the letter layout is based on a
3731 German standard, the user guide is written in German, but most macros have
3732 English names from which the user can recognize what they are used for. In
3733 addition there are example files showing how letters may be created with the
3734 package.")
3735 (license license:lppl)))
3736
3737 (define-public texlive-latex-draftwatermark
3738 (package
3739 (name "texlive-latex-draftwatermark")
3740 (version (number->string %texlive-revision))
3741 (source (origin
3742 (method svn-fetch)
3743 (uri (texlive-ref "latex" "draftwatermark"))
3744 (file-name (string-append name "-" version "-checkout"))
3745 (sha256
3746 (base32
3747 "1zyl2pcz2x529gzj5m93a1s4ipymdabf7qdjl3l1673pizd4hfyv"))))
3748 (build-system texlive-build-system)
3749 (arguments '(#:tex-directory "latex/draftwatermark"))
3750 (home-page "https://www.ctan.org/pkg/draftwatermark")
3751 (synopsis "Put a grey textual watermark on document pages")
3752 (description
3753 "This package provides a means to add a textual, light grey watermark on
3754 every page or on the first page of a document. Typical usage may consist in
3755 writing words such as DRAFT or CONFIDENTIAL across document pages. The
3756 package performs a similar function to that of @code{draftcopy}, but its
3757 implementation is output device independent, and made very simple by relying
3758 on everypage.")
3759 (license license:lppl1.3+)))
3760
3761 (define-public texlive-latex-environ
3762 (package
3763 (name "texlive-latex-environ")
3764 (version (number->string %texlive-revision))
3765 (source (origin
3766 (method svn-fetch)
3767 (uri (texlive-ref "latex" "environ"))
3768 (file-name (string-append name "-" version "-checkout"))
3769 (sha256
3770 (base32
3771 "06h28b26dyjkj9shksphgqfv4130jfkwhbw737hxn7d3yvdfffyd"))))
3772 (build-system texlive-build-system)
3773 (arguments '(#:tex-directory "latex/environ"))
3774 (home-page "https://www.ctan.org/pkg/environ")
3775 (synopsis "New interface for environments in LaTeX")
3776 (description
3777 "This package provides the @code{\\collect@@body} command (as in
3778 @code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},
3779 for collecting the body text of an environment. These commands are used to
3780 define a new author interface to creating new environments.")
3781 (license license:lppl)))
3782
3783 (define-public texlive-latex-eqparbox
3784 (package
3785 (name "texlive-latex-eqparbox")
3786 (version (number->string %texlive-revision))
3787 (source (origin
3788 (method svn-fetch)
3789 (uri (texlive-ref "latex" "eqparbox"))
3790 (file-name (string-append name "-" version "-checkout"))
3791 (sha256
3792 (base32
3793 "1ib5xdwcj5wk23wgk41m2hdcjr1dzrs4l3wwnpink9mlapz12wjs"))))
3794 (build-system texlive-build-system)
3795 (arguments '(#:tex-directory "latex/eqparbox"))
3796 (home-page "https://www.ctan.org/pkg/eqparbox")
3797 (synopsis "Create equal-widthed parboxes")
3798 (description
3799 "LaTeX users sometimes need to ensure that two or more blocks of text
3800 occupy the same amount of horizontal space on the page. To that end, the
3801 @code{eqparbox} package defines a new command, @code{\\eqparbox}, which works
3802 just like @code{\\parbox}, except that instead of specifying a width, one
3803 specifies a tag. All @code{eqparbox}es with the same tag---regardless of
3804 where they are in the document---will stretch to fit the widest
3805 @code{eqparbox} with that tag. This simple, equal-width mechanism can be used
3806 for a variety of alignment purposes, as is evidenced by the examples in
3807 @code{eqparbox}'s documentation. Various derivatives of @code{\\eqparbox} are
3808 also provided.")
3809 (license license:lppl1.3+)))
3810
3811 (define-public texlive-latex-expdlist
3812 (package
3813 (name "texlive-latex-expdlist")
3814 (version (number->string %texlive-revision))
3815 (source (origin
3816 (method svn-fetch)
3817 (uri (texlive-ref "latex" "expdlist"))
3818 (file-name (string-append name "-" version "-checkout"))
3819 (sha256
3820 (base32
3821 "1x7byk6x10njir3y9rm56glhdzrxwqag7gsnw2sqn1czlq525w7r"))))
3822 (build-system texlive-build-system)
3823 (arguments
3824 '(#:tex-directory "latex/expdlist"
3825 #:phases
3826 (modify-phases %standard-phases
3827 (add-after 'unpack 'remove-generated-file
3828 (lambda _
3829 (for-each delete-file
3830 (find-files "." "\\.drv$"))
3831 #t)))))
3832 (home-page "https://www.ctan.org/pkg/expdlist")
3833 (synopsis "Expanded description environments")
3834 (description
3835 "The package provides additional features for the LaTeX
3836 @code{description} environment, including adjustable left margin. The package
3837 also allows the user to \"break\" a list (for example, to interpose a comment)
3838 without affecting the structure of the list (this works for @code{itemize} and
3839 @code{enumerate} lists, and numbered lists remain in sequence).")
3840 (license license:lppl)))
3841
3842 (define-public texlive-filemod
3843 (package
3844 (inherit (simple-texlive-package
3845 "texlive-filemod"
3846 (list "/doc/latex/filemod/"
3847 "/tex/latex/filemod/"
3848 "/tex/generic/filemod/")
3849 (base32
3850 "1snsj7kblkj1ig3x3845lsypz7ab04lf0dcpdh946xakgjnz4fb5")
3851 #:trivial? #t))
3852 (home-page "https://www.ctan.org/pkg/filemod")
3853 (synopsis "Provide file modification times, and compare them")
3854 (description
3855 "This package provides macros to read and compare the modification dates
3856 of files. The files may be @code{.tex} files, images or other files (as long
3857 as they can be found by LaTeX). It uses the @code{\\pdffilemoddate} primitive
3858 of pdfLaTeX to find the file modification date as PDF date string, parses the
3859 string and returns the value to the user. The package will also work for DVI
3860 output with recent versions of the LaTeX compiler which uses pdfLaTeX in DVI
3861 mode. The functionality is provided by purely expandable macros or by faster
3862 but non-expandable ones.")
3863 (license license:lppl1.3+)))
3864
3865 (define-public texlive-latex-filemod
3866 (deprecated-package "texlive-latex-filemod" texlive-filemod))
3867
3868 (define-public texlive-latex-ifplatform
3869 (package
3870 (name "texlive-latex-ifplatform")
3871 (version (number->string %texlive-revision))
3872 (source (origin
3873 (method svn-fetch)
3874 (uri (texlive-ref "latex" "ifplatform"))
3875 (file-name (string-append name "-" version "-checkout"))
3876 (sha256
3877 (base32
3878 "157pplavvm2z97b3jl4x41w11k6q9wgy074mfg0dwmsx5lm328jy"))))
3879 (build-system texlive-build-system)
3880 (arguments '(#:tex-directory "latex/ifplatform"))
3881 (home-page "https://www.ctan.org/pkg/ifplatform")
3882 (synopsis "Conditionals to test which platform is being used")
3883 (description
3884 "This package uses the (La)TeX extension @code{-shell-escape} to
3885 establish whether the document is being processed on a Windows or on a
3886 Unix-like system, or on Cygwin (Unix environment over a Windows system).
3887 Booleans provided are: @code{\\ifwindows}, @code{\\iflinux}, @code{\\ifmacosx}
3888 and @code{\\ifcygwin}. The package also preserves the output of @code{uname}
3889 on a Unix-like system, which may be used to distinguish between various
3890 classes of systems.")
3891 (license license:lppl)))
3892
3893 (define-public texlive-latex-natbib
3894 (package
3895 (name "texlive-latex-natbib")
3896 (version (number->string %texlive-revision))
3897 (source (origin
3898 (method svn-fetch)
3899 (uri (texlive-ref "latex" "natbib"))
3900 (file-name (string-append name "-" version "-checkout"))
3901 (sha256
3902 (base32
3903 "0aqliq0nwblxyrzhwhv77pnmk7qh2y3prgq7z7qhwcbgz5kisld7"))))
3904 (build-system texlive-build-system)
3905 (arguments '(#:tex-directory "latex/natbib"))
3906 (home-page "https://www.ctan.org/pkg/natbib")
3907 (synopsis "Flexible bibliography support")
3908 (description
3909 "This bundle provides a package that implements both author-year and
3910 numbered references, as well as much detailed of support for other
3911 bibliography use. Also provided are versions of the standard BibTeX styles
3912 that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat},
3913 @code{abbrnat}. The bibliography styles produced by @code{custom-bib} are
3914 designed from the start to be compatible with @code{natbib}.")
3915 (license license:lppl)))
3916
3917 (define-public texlive-latex-psfrag
3918 (package
3919 (name "texlive-latex-psfrag")
3920 (version (number->string %texlive-revision))
3921 (source (origin
3922 (method svn-fetch)
3923 (uri (texlive-ref "latex" "psfrag"))
3924 (file-name (string-append name "-" version "-checkout"))
3925 (sha256
3926 (base32
3927 "1dxbl5il7wbbsp0v45vk884xi1192wxw03849pb1g5q4x808n352"))))
3928 (build-system texlive-build-system)
3929 (arguments '(#:tex-directory "latex/psfrag"))
3930 (home-page "https://www.ctan.org/pkg/psfrag")
3931 (synopsis "Replace strings in encapsulated PostScript figures")
3932 (description
3933 "This package allows LaTeX constructions (equations, picture
3934 environments, etc.) to be precisely superimposed over Encapsulated PostScript
3935 figures, using your own favorite drawing tool to create an EPS figure and
3936 placing simple text \"tags\" where each replacement is to be placed, with
3937 PSfrag automatically removing these tags from the figure and replacing them
3938 with a user specified LaTeX construction, properly aligned, scaled, and/or
3939 rotated.")
3940 (license (license:fsf-free "file://psfrag.dtx"))))
3941
3942 (define-public texlive-pstool
3943 (package
3944 (inherit (simple-texlive-package
3945 "texlive-pstool"
3946 (list "/doc/latex/pstool/"
3947 "/tex/latex/pstool/")
3948 (base32
3949 "12clzcw2cl7g2chr2phgmmiwxw4859cln1gbx1wgp8bl9iw590nc")
3950 #:trivial? #t))
3951 (propagated-inputs
3952 `(("texlive-latex-bigfoot" ,texlive-latex-bigfoot) ; for suffix
3953 ("texlive-latex-filemod" ,texlive-latex-filemod)
3954 ("texlive-latex-graphics" ,texlive-latex-graphics)
3955 ("texlive-latex-ifplatform" ,texlive-latex-ifplatform)
3956 ("texlive-latex-l3kernel" ,texlive-latex-l3kernel) ; for expl3
3957 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
3958 ("texlive-latex-psfrag" ,texlive-latex-psfrag)
3959 ("texlive-latex-tools" ,texlive-latex-tools) ; for shellesc
3960 ("texlive-latex-trimspaces" ,texlive-latex-trimspaces)
3961 ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
3962 (home-page "https://www.ctan.org/pkg/pstool")
3963 (synopsis "Process PostScript graphics within pdfLaTeX documents")
3964 (description
3965 "This is a package for processing PostScript graphics with @code{psfrag}
3966 labels within pdfLaTeX documents. Every graphic is compiled individually,
3967 drastically speeding up compilation time when only a single figure needs
3968 re-processing.")
3969 (license license:lppl)))
3970
3971 (define-public texlive-latex-pstool
3972 (deprecated-package "texlive-latex-pstool" texlive-pstool))
3973
3974 (define-public texlive-seminar
3975 (package
3976 (inherit (simple-texlive-package
3977 "texlive-seminar"
3978 (list "/doc/latex/seminar/"
3979 "/tex/latex/seminar/")
3980 (base32
3981 "1clgw5xy867khzfn8d210rc5hsw5s7r0pznhk84niybvw4zc7r3f")
3982 #:trivial? #t))
3983 (home-page "https://www.ctan.org/pkg/seminar")
3984 (synopsis "Make overhead slides")
3985 ;; TODO: This package may need fancybox and xcomment at runtime.
3986 (description
3987 "This package provides a class that produces overhead
3988 slides (transparencies), with many facilities. Seminar is not nowadays
3989 reckoned a good basis for a presentation — users are advised to use more
3990 recent classes such as powerdot or beamer, both of which are tuned to
3991 21st-century presentation styles.")
3992 (license license:lppl1.2+)))
3993
3994 (define-public texlive-latex-seminar
3995 (deprecated-package "texlive-latex-seminar" texlive-seminar))
3996
3997 (define-public texlive-latex-trimspaces
3998 (package
3999 (name "texlive-latex-trimspaces")
4000 (version (number->string %texlive-revision))
4001 (source (origin
4002 (method svn-fetch)
4003 (uri (texlive-ref "latex" "trimspaces"))
4004 (file-name (string-append name "-" version "-checkout"))
4005 (sha256
4006 (base32
4007 "0da00lb32am4g63mn96625wg48p3pj3spx79lajrk17d549apwqa"))))
4008 (build-system texlive-build-system)
4009 (arguments
4010 '(#:tex-directory "latex/trimspaces"
4011 #:tex-format "latex"
4012 #:phases
4013 (modify-phases %standard-phases
4014 (add-after 'unpack 'fix-bug
4015 (lambda _
4016 ;; The "ins" file refers to the wrong source file.
4017 (substitute* "trimspaces.ins"
4018 (("pstool.tex") "trimspaces.tex"))
4019 #t)))))
4020 (inputs
4021 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
4022 (home-page "https://www.ctan.org/pkg/trimspaces")
4023 (synopsis "Trim spaces around an argument or within a macro")
4024 (description
4025 "This very short package allows you to expandably remove spaces around a
4026 token list (commands are provided to remove spaces before, spaces after, or
4027 both); or to remove surrounding spaces within a macro definition, or to define
4028 space-stripped macros.")
4029 (license license:lppl)))
4030
4031 (define-public texlive-latex-capt-of
4032 (package
4033 (name "texlive-latex-capt-of")
4034 (version (number->string %texlive-revision))
4035 (source (origin
4036 (method svn-fetch)
4037 (uri (svn-reference
4038 (url (string-append "svn://www.tug.org/texlive/tags/"
4039 %texlive-tag "/Master/texmf-dist/"
4040 "/tex/latex/capt-of"))
4041 (revision %texlive-revision)))
4042 (file-name (string-append name "-" version "-checkout"))
4043 (sha256
4044 (base32
4045 "1y2s50f6lz0jx2748lj3iy56hrpcczgnbzmvphxv7aqndyyamd4x"))))
4046 (build-system trivial-build-system)
4047 (arguments
4048 `(#:modules ((guix build utils))
4049 #:builder
4050 (begin
4051 (use-modules (guix build utils))
4052 (let ((target (string-append (assoc-ref %outputs "out")
4053 "/share/texmf-dist/tex/latex/capt-of")))
4054 (mkdir-p target)
4055 (copy-recursively (assoc-ref %build-inputs "source") target)
4056 #t))))
4057 (home-page "https://www.ctan.org/pkg/capt-of")
4058 (synopsis "Captions on more than floats")
4059 (description
4060 "This package defines a command @code{\\captionof} for putting a caption
4061 to something that's not a float.")
4062 (license license:lppl)))
4063
4064 (define-public texlive-doi
4065 (package
4066 (inherit (simple-texlive-package
4067 "texlive-doi"
4068 (list "/doc/latex/doi/README.md"
4069 "/tex/latex/doi/")
4070 (base32
4071 "18z9922lqb3hliqn95h883fndqs4lgyi5yqbnq2932ya0imc3j7h")
4072 #:trivial? #t))
4073 (home-page "https://www.ctan.org/pkg/doi")
4074 (synopsis "Create correct hyperlinks for DOI numbers")
4075 (description
4076 "You can hyperlink DOI numbers to doi.org. However, some publishers have
4077 elected to use nasty characters in their DOI numbering scheme (@code{<},
4078 @code{>}, @code{_} and @code{;} have all been spotted). This will either
4079 upset LaTeX, or your PDF reader. This package contains a single user-level
4080 command @code{\\doi{}}, which takes a DOI number, and creates a correct
4081 hyperlink to the target of the DOI.")
4082 ;; Any version of the LPPL.
4083 (license license:lppl1.3+)))
4084
4085 (define-public texlive-latex-doi
4086 (deprecated-package "texlive-latex-doi" texlive-doi))
4087
4088 (define-public texlive-etoolbox
4089 (package
4090 (inherit (simple-texlive-package
4091 "texlive-etoolbox"
4092 (list "/doc/latex/etoolbox/"
4093 "/tex/latex/etoolbox/")
4094 (base32
4095 "1cc1vw1ach55g4ff4x30by8k1mg01w199ccxvn72f5khlnnxial0")
4096 #:trivial? #t))
4097 (home-page "https://www.ctan.org/pkg/etoolbox")
4098 (synopsis "e-TeX tools for LaTeX")
4099 (description
4100 "This package is a toolbox of programming facilities geared primarily
4101 towards LaTeX class and package authors. It provides LaTeX frontends to some
4102 of the new primitives provided by e-TeX as well as some generic tools which
4103 are not strictly related to e-TeX but match the profile of this package. The
4104 package provides functions that seem to offer alternative ways of implementing
4105 some LaTeX kernel commands; nevertheless, the package will not modify any part
4106 of the LaTeX kernel.")
4107 (license license:lppl1.3+)))
4108
4109 (define-public texlive-latex-etoolbox
4110 (deprecated-package "texlive-latex-etoolbox" texlive-etoolbox))
4111
4112 (define-public texlive-latex-fncychap
4113 (package
4114 (name "texlive-latex-fncychap")
4115 (version (number->string %texlive-revision))
4116 (source (origin
4117 (method svn-fetch)
4118 (uri (svn-reference
4119 (url (string-append "svn://www.tug.org/texlive/tags/"
4120 %texlive-tag "/Master/texmf-dist/"
4121 "/tex/latex/fncychap"))
4122 (revision %texlive-revision)))
4123 (file-name (string-append name "-" version "-checkout"))
4124 (sha256
4125 (base32
4126 "0fdk84dbicfjfprkz6vk15x36mvlhaw9isjmgkc56jp2khwjswwq"))))
4127 (build-system trivial-build-system)
4128 (arguments
4129 `(#:modules ((guix build utils))
4130 #:builder
4131 (begin
4132 (use-modules (guix build utils))
4133 (let ((target (string-append (assoc-ref %outputs "out")
4134 "/share/texmf-dist/tex/latex/fncychap")))
4135 (mkdir-p target)
4136 (copy-recursively (assoc-ref %build-inputs "source") target)
4137 #t))))
4138 (home-page "https://www.ctan.org/pkg/fncychap")
4139 (synopsis "Seven predefined chapter heading styles")
4140 (description
4141 "This package provides seven predefined chapter heading styles. Each
4142 style can be modified using a set of simple commands. Optionally one can
4143 modify the formatting routines in order to create additional chapter
4144 headings.")
4145 (license license:lppl1.3+)))
4146
4147 (define-public texlive-latex-framed
4148 (package
4149 (name "texlive-latex-framed")
4150 (version (number->string %texlive-revision))
4151 (source (origin
4152 (method svn-fetch)
4153 (uri (svn-reference
4154 (url (string-append "svn://www.tug.org/texlive/tags/"
4155 %texlive-tag "/Master/texmf-dist/"
4156 "/tex/latex/framed"))
4157 (revision %texlive-revision)))
4158 (file-name (string-append name "-" version "-checkout"))
4159 (sha256
4160 (base32
4161 "14a4ydqsvp3vcfavl21jrv0ybiqypaaqzg2q2cs3rzkandg7w98x"))))
4162 (build-system trivial-build-system)
4163 (arguments
4164 `(#:modules ((guix build utils))
4165 #:builder
4166 (begin
4167 (use-modules (guix build utils))
4168 (let ((target (string-append (assoc-ref %outputs "out")
4169 "/share/texmf-dist/tex/latex/framed")))
4170 (mkdir-p target)
4171 (copy-recursively (assoc-ref %build-inputs "source") target)
4172 #t))))
4173 (home-page "https://www.ctan.org/pkg/framed")
4174 (synopsis "Framed or shaded regions that can break across pages")
4175 (description
4176 "The package creates three environments: @code{framed}, which puts an
4177 ordinary frame box around the region, @code{shaded}, which shades the region,
4178 and @code{leftbar}, which places a line at the left side. The environments
4179 allow a break at their start (the @code{\\FrameCommand} enables creation of a
4180 title that is “attached” to the environment); breaks are also allowed in the
4181 course of the framed/shaded matter. There is also a command
4182 @code{\\MakeFramed} to make your own framed-style environments.")
4183 ;; The header states: "These macros may be freely transmitted, reproduced,
4184 ;; or modified for any purpose provided that this notice is left intact."
4185 (license (license:fsf-free "file://framed.sty"))))
4186
4187 (define-public texlive-latex-g-brief
4188 (package
4189 (name "texlive-latex-g-brief")
4190 (version (number->string %texlive-revision))
4191 (source (origin
4192 (method svn-fetch)
4193 (uri (texlive-ref "latex" "g-brief"))
4194 (file-name (string-append name "-" version "-checkout"))
4195 (sha256
4196 (base32
4197 "1br4kv9y17cvngp83ykpvy7gy3jqfan5plk7sggcgbdfhndi5dsr"))))
4198 (build-system texlive-build-system)
4199 (arguments
4200 '(#:tex-directory "latex/g-brief"
4201 #:phases
4202 (modify-phases %standard-phases
4203 (add-after 'unpack 'remove-generated-file
4204 (lambda _
4205 (delete-file "g-brief.drv")
4206 #t)))))
4207 (home-page "https://www.ctan.org/pkg/g-brief")
4208 (synopsis "Letter document class")
4209 (description
4210 "This package is designed for formatting formless letters in German; it
4211 can also be used for English (by those who can read the documentation). There
4212 are LaTeX 2.09 @code{documentstyle} and LaTeX 2e class files for both an
4213 \"old\" and a \"new\" version of g-brief.")
4214 (license license:lppl)))
4215
4216 (define-public texlive-latex-galois
4217 (package
4218 (name "texlive-latex-galois")
4219 (version (number->string %texlive-revision))
4220 (source (origin
4221 (method svn-fetch)
4222 (uri (texlive-ref "latex" "galois"))
4223 (file-name (string-append name "-" version "-checkout"))
4224 (sha256
4225 (base32
4226 "0d4l0msk8j5pi95xnmm9wygv1vbpkwkv5amx9l0km86cs79jpp1h"))))
4227 (build-system texlive-build-system)
4228 (arguments '(#:tex-directory "latex/galois"))
4229 (home-page "https://www.ctan.org/pkg/galois")
4230 (synopsis "Typeset Galois connections")
4231 (description
4232 "The package deals with connections in two-dimensional style, optionally
4233 in colour.")
4234 (license license:lppl)))
4235
4236 (define-public texlive-latex-gcite
4237 (package
4238 (name "texlive-latex-gcite")
4239 (version (number->string %texlive-revision))
4240 (source (origin
4241 (method svn-fetch)
4242 (uri (texlive-ref "latex" "gcite"))
4243 (file-name (string-append name "-" version "-checkout"))
4244 (sha256
4245 (base32
4246 "03g9by54yrypn599y98r1xh7qw0bbbmpzq0bfwpj6j5q5rkl1mfa"))))
4247 (build-system texlive-build-system)
4248 (arguments '(#:tex-directory "latex/gcite"))
4249 (home-page "https://www.ctan.org/pkg/gcite")
4250 (synopsis "Citations in a reader-friendly style")
4251 (description
4252 "The package allows citations in the German style, which is considered by
4253 many to be particularly reader-friendly. The citation provides a small amount
4254 of bibliographic information in a footnote on the page where each citation is
4255 made. It combines a desire to eliminate unnecessary page-turning with the
4256 look-up efficiency afforded by numeric citations. The package makes use of
4257 BibLaTeX, and is considered experimental.")
4258 (license license:lppl1.3+)))
4259
4260 (define-public texlive-latex-geometry
4261 (package
4262 (name "texlive-latex-geometry")
4263 (version (number->string %texlive-revision))
4264 (source (origin
4265 (method svn-fetch)
4266 (uri (texlive-ref "latex" "geometry"))
4267 (file-name (string-append name "-" version "-checkout"))
4268 (sha256
4269 (base32
4270 "0a8f38c2ds1flxcr0apdpyaaz3k6fyalz6dkbrmcv9srjc40mh3n"))))
4271 (build-system texlive-build-system)
4272 (arguments '(#:tex-directory "latex/geometry"))
4273 (propagated-inputs
4274 `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek))) ;for ifpdf
4275 (home-page "https://www.ctan.org/pkg/geometry")
4276 (synopsis "Flexible and complete interface to document dimensions")
4277 (description
4278 "This package provides an easy and flexible user interface to customize
4279 page layout, implementing auto-centering and auto-balancing mechanisms so that
4280 the users have only to give the least description for the page layout. The
4281 package knows about all the standard paper sizes, so that the user need not
4282 know what the nominal \"real\" dimensions of the paper are, just its standard
4283 name (such as a4, letter, etc.). An important feature is the package's
4284 ability to communicate the paper size it's set up to the output.")
4285 (license license:lppl)))
4286
4287 (define-public texlive-latex-mdwtools
4288 (package
4289 (name "texlive-latex-mdwtools")
4290 (version (number->string %texlive-revision))
4291 (source (origin
4292 (method svn-fetch)
4293 (uri (texlive-ref "latex" "mdwtools"))
4294 (file-name (string-append name "-" version "-checkout"))
4295 (sha256
4296 (base32
4297 "0caxs74hla28hc67csf5i5ahadx97w8vxh3mdmsprxbpd1mr7ssg"))))
4298 (build-system texlive-build-system)
4299 (arguments '(#:tex-directory "latex/mdwtools"))
4300 (home-page "https://www.ctan.org/pkg/mdwtools")
4301 (synopsis "Miscellaneous tools by Mark Wooding")
4302 (description
4303 "This collection of tools includes: @code{atsupport} for short commands
4304 starting with @code{@@}, macros to sanitize the OT1 encoding of the
4305 @code{cmtt} fonts; a @code{doafter} command; improved @code{footnote} support;
4306 @code{mathenv} for various alignment in maths; list handling; @code{mdwmath}
4307 which adds some minor changes to LaTeX maths; a rewrite of LaTeX's tabular and
4308 array environments; verbatim handling; and syntax diagrams.")
4309 (license license:gpl3+)))
4310
4311 (define-public texlive-latex-polyglossia
4312 (package
4313 (name "texlive-latex-polyglossia")
4314 (version (number->string %texlive-revision))
4315 (source (origin
4316 (method svn-fetch)
4317 (uri (texlive-ref "latex" "polyglossia"))
4318 (file-name (string-append name "-" version "-checkout"))
4319 (sha256
4320 (base32
4321 "0na7v4hsyx5s67cpjj2dbnq8j67k8lln6b19hmj631gfs27slss1"))))
4322 (build-system texlive-build-system)
4323 (arguments '(#:tex-directory "latex/polyglossia"))
4324 (home-page "https://www.ctan.org/pkg/polyglossia")
4325 (synopsis "Alternative to babel for XeLaTeX and LuaLaTeX")
4326 (description
4327 "This package provides a complete Babel replacement for users of LuaLaTeX
4328 and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least.")
4329 (license license:lppl1.3+)))
4330
4331 (define-public texlive-latex-supertabular
4332 (package
4333 (name "texlive-latex-supertabular")
4334 (version (number->string %texlive-revision))
4335 (source (origin
4336 (method svn-fetch)
4337 (uri (texlive-ref "latex" "supertabular"))
4338 (file-name (string-append name "-" version "-checkout"))
4339 (sha256
4340 (base32
4341 "14b2bc7cqz4ckxxycim9sw6jkrr1pahivm1rdbpz5k6hl967w1s3"))))
4342 (build-system texlive-build-system)
4343 (arguments '(#:tex-directory "latex/supertabular"))
4344 (home-page "https://www.ctan.org/pkg/supertabular")
4345 (synopsis "Multi-page tables package")
4346 (description
4347 "This package was a predecessor of @code{longtable}; the newer
4348 package (designed on quite different principles) is easier to use and more
4349 flexible, in many cases, but supertabular retains its usefulness in a few
4350 situations where longtable has problems.")
4351 (license license:lppl1.3+)))
4352
4353 (define-public texlive-tex-texinfo
4354 (package
4355 (name "texlive-tex-texinfo")
4356 (version (number->string %texlive-revision))
4357 (source (origin
4358 (method svn-fetch)
4359 (uri (svn-reference
4360 (url (string-append "svn://www.tug.org/texlive/tags/"
4361 %texlive-tag "/Master/texmf-dist/"
4362 "/tex/texinfo"))
4363 (revision %texlive-revision)))
4364 (file-name (string-append name "-" version "-checkout"))
4365 (sha256
4366 (base32
4367 "16jy02m089m7n6v9vbfi4xjgngc1fnvsmmppk8axfwzbhdky3c9c"))))
4368 (build-system trivial-build-system)
4369 (arguments
4370 `(#:modules ((guix build utils))
4371 #:builder
4372 (begin
4373 (use-modules (guix build utils))
4374 (let ((target (string-append (assoc-ref %outputs "out")
4375 "/share/texmf-dist/tex/texinfo")))
4376 (mkdir-p target)
4377 (copy-recursively (assoc-ref %build-inputs "source") target)
4378 #t))))
4379 (home-page "https://www.ctan.org/pkg/texinfo")
4380 (synopsis "TeX macros to handle Texinfo files")
4381 (description
4382 "Texinfo is the preferred format for documentation in the GNU project;
4383 the format may be used to produce online or printed output from a single
4384 source. The Texinfo macros may be used to produce printable output using TeX;
4385 other programs in the distribution offer online interactive use (with
4386 hypertext linkages in some cases).")
4387 (license license:gpl3+)))
4388
4389 (define-public texlive-latex-upquote
4390 (package
4391 (name "texlive-latex-upquote")
4392 (version (number->string %texlive-revision))
4393 (source (origin
4394 (method svn-fetch)
4395 (uri (texlive-ref "latex" "upquote"))
4396 (file-name (string-append name "-" version "-checkout"))
4397 (sha256
4398 (base32
4399 "0d1050i973wnxigy0xpky5l7vn4ff7ldhkjpdqsw5s653gagwixp"))))
4400 (build-system texlive-build-system)
4401 (arguments '(#:tex-directory "latex/upquote"))
4402 (home-page "https://www.ctan.org/pkg/upquote")
4403 (synopsis "Show \"realistic\" quotes in verbatim")
4404 (description
4405 "Typewriter-style fonts are best for program listings, but Computer
4406 Modern Typewriter prints @code{`} and @code{'} as bent opening and closing
4407 single quotes. Other fonts, and most programming languages, print @code{`} as
4408 a grave accent and @code{'} upright; @code{'} is used both to open and to
4409 close quoted strings. The package switches the typewriter font to Computer
4410 Modern Typewriter in OT1 encoding, and modifies the behaviour of
4411 @code{verbatim}, @code{verbatim*}, @code{\\verb}, and @code{\\verb*} to print
4412 in the expected way. It does this regardless of other fonts or encodings in
4413 use, so long as the package is loaded after the other fonts were. The package
4414 does not affect @code{\\tt}, @code{\\texttt}, etc.")
4415 (license license:lppl1.2+)))
4416
4417 (define-public texlive-latex-anysize
4418 (package
4419 (name "texlive-latex-anysize")
4420 (version (number->string %texlive-revision))
4421 (source (origin
4422 (method svn-fetch)
4423 (uri (svn-reference
4424 (url (string-append "svn://www.tug.org/texlive/tags/"
4425 %texlive-tag "/Master/texmf-dist/"
4426 "/tex/latex/anysize"))
4427 (revision %texlive-revision)))
4428 (file-name (string-append name "-" version "-checkout"))
4429 (sha256
4430 (base32
4431 "19khwqjlvznc955sijhww3c4zbb0053rvzwv9nz738qknq7y18vb"))))
4432 (build-system trivial-build-system)
4433 (arguments
4434 `(#:modules ((guix build utils))
4435 #:builder
4436 (begin
4437 (use-modules (guix build utils))
4438 (let ((target (string-append (assoc-ref %outputs "out")
4439 "/share/texmf-dist/tex/latex/anysize")))
4440 (mkdir-p target)
4441 (copy-recursively (assoc-ref %build-inputs "source") target)
4442 #t))))
4443 (home-page "https://www.ctan.org/pkg/anysize")
4444 (synopsis "Simple package to set up document margins")
4445 (description
4446 "This is a simple package to set up document margins. This package is
4447 considered obsolete; alternatives are the @code{typearea} package from the
4448 @code{koma-script} bundle, or the @code{geometry} package.")
4449 (license license:public-domain)))
4450
4451 (define-public texlive-latex-appendix
4452 (package
4453 (name "texlive-latex-appendix")
4454 (version (number->string %texlive-revision))
4455 (source (origin
4456 (method svn-fetch)
4457 (uri (texlive-ref "latex" "appendix"))
4458 (file-name (string-append name "-" version "-checkout"))
4459 (sha256
4460 (base32
4461 "0rxfpr8vq3brwx5rc7qn91ixlp9zva4zrms8a579fqa1g5yva7vg"))))
4462 (build-system texlive-build-system)
4463 (arguments '(#:tex-directory "latex/appendix"))
4464 (home-page "https://www.ctan.org/pkg/appendix")
4465 (synopsis "Extra control of appendices")
4466 (description
4467 "The appendix package provides various ways of formatting the titles of
4468 appendices. Also (sub)appendices environments are provided that can be used,
4469 for example, for per chapter/section appendices. An @code{appendices}
4470 environment is provided which can be used instead of the @code{\\appendix}
4471 command.")
4472 (license license:lppl)))
4473
4474 (define-public texlive-latex-changebar
4475 (package
4476 (name "texlive-latex-changebar")
4477 (version (number->string %texlive-revision))
4478 (source (origin
4479 (method svn-fetch)
4480 (uri (texlive-ref "latex" "changebar"))
4481 (file-name (string-append name "-" version "-checkout"))
4482 (sha256
4483 (base32
4484 "05x15ilynqrl448h8l6qiraygamdldlngz89a2bw7kg74fym14ch"))))
4485 (build-system texlive-build-system)
4486 (arguments '(#:tex-directory "latex/changebar"))
4487 (home-page "https://www.ctan.org/pkg/changebar")
4488 (synopsis "Generate changebars in LaTeX documents")
4489 (description
4490 "Identify areas of text to be marked with changebars with the
4491 @code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured. The
4492 package uses @code{drivers} to place the bars; the available drivers can work
4493 with @code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI
4494 drivers, and VTeX and pdfTeX.")
4495 (license license:lppl)))
4496
4497 (define-public texlive-latex-cmap
4498 (package
4499 (name "texlive-latex-cmap")
4500 (version (number->string %texlive-revision))
4501 (source (origin
4502 (method svn-fetch)
4503 (uri (svn-reference
4504 (url (string-append "svn://www.tug.org/texlive/tags/"
4505 %texlive-tag "/Master/texmf-dist/"
4506 "/tex/latex/cmap"))
4507 (revision %texlive-revision)))
4508 (file-name (string-append name "-" version "-checkout"))
4509 (sha256
4510 (base32
4511 "1s1rv6zgw105w2j6ffhnk914qrix87y1ndzri1q72g2kbr91zlbg"))))
4512 (build-system trivial-build-system)
4513 (arguments
4514 `(#:modules ((guix build utils))
4515 #:builder
4516 (begin
4517 (use-modules (guix build utils))
4518 (let ((target (string-append (assoc-ref %outputs "out")
4519 "/share/texmf-dist/tex/latex/cmap")))
4520 (mkdir-p target)
4521 (copy-recursively (assoc-ref %build-inputs "source") target)
4522 #t))))
4523 (home-page "https://www.tug.org/svn/texlive/tags/texlive-2017.1/\
4524 Master/texmf-dist/tex/latex/cmap/")
4525 (synopsis "CMap support for PDF files")
4526 (description
4527 "This package embeds CMap tables into PDF files to make search and
4528 copy-and-paste functions work properly.")
4529 (license license:lppl)))
4530
4531 (define-public texlive-latex-colortbl
4532 (package
4533 (name "texlive-latex-colortbl")
4534 (version (number->string %texlive-revision))
4535 (source (origin
4536 (method svn-fetch)
4537 (uri (texlive-ref "latex" "colortbl"))
4538 (file-name (string-append name "-" version "-checkout"))
4539 (sha256
4540 (base32
4541 "16vd99p01a0y30xr5yf1z2j5da9x8gy21vb30wk08jh31zffbaqj"))))
4542 (build-system texlive-build-system)
4543 (arguments '(#:tex-directory "latex/colortbl"))
4544 (home-page "https://www.ctan.org/pkg/colortbl")
4545 (synopsis "Add colour to LaTeX tables")
4546 (description
4547 "This package allows rows, columns, and even individual cells in LaTeX
4548 tables to be coloured.")
4549 (license license:lppl)))
4550
4551 (define-public texlive-latex-fancybox
4552 (package
4553 (name "texlive-latex-fancybox")
4554 (version (number->string %texlive-revision))
4555 (source (origin
4556 (method svn-fetch)
4557 (uri (svn-reference
4558 (url (string-append "svn://www.tug.org/texlive/tags/"
4559 %texlive-tag "/Master/texmf-dist/"
4560 "/tex/latex/fancybox"))
4561 (revision %texlive-revision)))
4562 (file-name (string-append name "-" version "-checkout"))
4563 (sha256
4564 (base32
4565 "0smmnaad2q8qwicay1frri990lv65l0k8cwzsvdsyp3jk8kp042w"))))
4566 (build-system trivial-build-system)
4567 (arguments
4568 `(#:modules ((guix build utils))
4569 #:builder
4570 (begin
4571 (use-modules (guix build utils))
4572 (let ((target (string-append (assoc-ref %outputs "out")
4573 "/share/texmf-dist/tex/latex/fancybox")))
4574 (mkdir-p target)
4575 (copy-recursively (assoc-ref %build-inputs "source") target)
4576 #t))))
4577 (home-page "https://www.ctan.org/pkg/fancybox")
4578 (synopsis "Variants of \\fbox and other games with boxes")
4579 (description
4580 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},
4581 @code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for
4582 using box macros and flexible verbatim macros. You can box mathematics,
4583 floats, center, flushleft, and flushright, lists, and pages.")
4584 (license license:lppl1.2+)))
4585
4586 (define-public texlive-latex-fancyhdr
4587 (package
4588 (name "texlive-latex-fancyhdr")
4589 (version (number->string %texlive-revision))
4590 (source (origin
4591 (method svn-fetch)
4592 (uri (svn-reference
4593 (url (string-append "svn://www.tug.org/texlive/tags/"
4594 %texlive-tag "/Master/texmf-dist/"
4595 "/tex/latex/fancyhdr"))
4596 (revision %texlive-revision)))
4597 (file-name (string-append name "-" version "-checkout"))
4598 (sha256
4599 (base32
4600 "0hrwspqkqfahxyzzsnjyrxlgxj06zw1f3636gx76pvl4xhvdj1cj"))))
4601 (build-system trivial-build-system)
4602 (arguments
4603 `(#:modules ((guix build utils))
4604 #:builder
4605 (begin
4606 (use-modules (guix build utils))
4607 (let ((target (string-append (assoc-ref %outputs "out")
4608 "/share/texmf-dist/tex/latex/fancyhdr")))
4609 (mkdir-p target)
4610 (copy-recursively (assoc-ref %build-inputs "source") target)
4611 #t))))
4612 (home-page "https://www.ctan.org/pkg/fancyhdr")
4613 (synopsis "Extensive control of page headers and footers in LaTeX2e")
4614 (description
4615 "The package provides extensive facilities, both for constructing headers
4616 and footers, and for controlling their use (for example, at times when LaTeX
4617 would automatically change the heading style in use).")
4618 (license license:lppl)))
4619
4620 (define-public texlive-latex-float
4621 (package
4622 (name "texlive-latex-float")
4623 (version (number->string %texlive-revision))
4624 (source (origin
4625 (method svn-fetch)
4626 (uri (texlive-ref "latex" "float"))
4627 (file-name (string-append name "-" version "-checkout"))
4628 (sha256
4629 (base32
4630 "0nbl7wylkv22fcdv4p8byhhj575fli6jnqjpkhrkbv8dzwah84nq"))))
4631 (build-system texlive-build-system)
4632 (arguments '(#:tex-directory "latex/float"))
4633 (home-page "https://www.ctan.org/pkg/float")
4634 (synopsis "Improved interface for floating objects")
4635 (description
4636 "This package improves the interface for defining floating objects such
4637 as figures and tables. It introduces the boxed float, the ruled float and the
4638 plaintop float. You can define your own floats and improve the behaviour of
4639 the old ones. The package also provides the @code{H} float modifier option of
4640 the obsolete @code{here} package. You can select this as automatic default
4641 with @code{\\floatplacement{figure}{H}}.")
4642 (license license:lppl)))
4643
4644 (define-public texlive-latex-footmisc
4645 (package
4646 (name "texlive-latex-footmisc")
4647 (version (number->string %texlive-revision))
4648 (source (origin
4649 (method svn-fetch)
4650 (uri (texlive-ref "latex" "footmisc"))
4651 (file-name (string-append name "-" version "-checkout"))
4652 (sha256
4653 (base32
4654 "03x61wwql8nh6zrqiiiq3rb0x7m3pn48c606zapy19y21fybwdxs"))))
4655 (build-system texlive-build-system)
4656 (arguments '(#:tex-directory "latex/footmisc"))
4657 (home-page "https://www.ctan.org/pkg/footmisc")
4658 (synopsis "Range of footnote options")
4659 (description
4660 "This is a collection of ways to change the typesetting of footnotes.
4661 The package provides means of changing the layout of the footnotes themselves,
4662 a way to number footnotes per page, to make footnotes disappear in a
4663 \"moving\" argument, and to deal with multiple references to footnotes from
4664 the same place. The package also has a range of techniques for labelling
4665 footnotes with symbols rather than numbers.")
4666 (license license:lppl1.3+)))
4667
4668 (define-public texlive-latex-listings
4669 (package
4670 (name "texlive-latex-listings")
4671 (version (number->string %texlive-revision))
4672 (source (origin
4673 (method svn-fetch)
4674 (uri (texlive-ref "latex" "listings"))
4675 (file-name (string-append name "-" version "-checkout"))
4676 (sha256
4677 (base32
4678 "1fbrhqj22vzakn30j71fc41l8nliqbv1dmxm0zlwi2qjjbq6fwav"))))
4679 (build-system texlive-build-system)
4680 (arguments
4681 '(#:tex-directory "latex/listings"
4682 #:build-targets '("listings.ins")))
4683 (home-page "https://www.ctan.org/pkg/listings")
4684 (synopsis "Typeset source code listings using LaTeX")
4685 (description
4686 "The package enables the user to typeset programs (programming code)
4687 within LaTeX; the source code is read directly by TeX---no front-end processor
4688 is needed. Keywords, comments and strings can be typeset using different
4689 styles. Support for @code{hyperref} is provided.")
4690 (license license:lppl1.3+)))
4691
4692 (define-public texlive-latex-jknapltx
4693 (package
4694 (name "texlive-latex-jknapltx")
4695 (version (number->string %texlive-revision))
4696 (source (origin
4697 (method svn-fetch)
4698 (uri (svn-reference
4699 (url (string-append "svn://www.tug.org/texlive/tags/"
4700 %texlive-tag "/Master/texmf-dist/"
4701 "/tex/latex/jknapltx"))
4702 (revision %texlive-revision)))
4703 (file-name (string-append name "-" version "-checkout"))
4704 (sha256
4705 (base32
4706 "0m034x72f2g07icr50gacyxfb9g1lz2rmqh4kqr1qjb421x2kds9"))))
4707 (build-system trivial-build-system)
4708 (arguments
4709 `(#:modules ((guix build utils))
4710 #:builder
4711 (begin
4712 (use-modules (guix build utils))
4713 (let ((target (string-append (assoc-ref %outputs "out")
4714 "/share/texmf-dist/tex/latex/jknapltx")))
4715 (mkdir-p target)
4716 (copy-recursively (assoc-ref %build-inputs "source") target)
4717 #t))))
4718 (home-page "https://www.ctan.org/pkg/jknappen")
4719 (synopsis "Miscellaneous packages by Joerg Knappen")
4720 (description
4721 "This package provides miscellaneous macros by Joerg Knappen, including:
4722 represent counters in greek; Maxwell's non-commutative division;
4723 @code{latin1jk}, @code{latin2jk} and @code{latin3jk}, which are
4724 @code{inputenc} definition files that allow verbatim input in the respective
4725 ISO Latin codes; blackboard bold fonts in maths; use of RSFS fonts in maths;
4726 extra alignments for @code{\\parboxes}; swap Roman and Sans fonts;
4727 transliterate semitic languages; patches to make (La)TeX formulae embeddable
4728 in SGML; use maths minus in text as appropriate; simple Young tableaux.")
4729 (license license:gpl2)))
4730
4731 (define-public texlive-fonts-ec
4732 (package
4733 (name "texlive-fonts-ec")
4734 (version (number->string %texlive-revision))
4735 (source (origin
4736 (method svn-fetch)
4737 (uri (svn-reference
4738 (url (string-append "svn://www.tug.org/texlive/tags/"
4739 %texlive-tag "/Master/texmf-dist/"
4740 "/fonts/source/jknappen/ec/"))
4741 (revision %texlive-revision)))
4742 (file-name (string-append name "-" version "-checkout"))
4743 (sha256
4744 (base32
4745 "12av65fbz9xiashm09c9m1fj1mijxls5xspd7652ry1n5s0nixy4"))))
4746 (build-system gnu-build-system)
4747 (arguments
4748 `(#:modules ((guix build gnu-build-system)
4749 (guix build utils)
4750 (srfi srfi-1)
4751 (srfi srfi-26))
4752 #:tests? #f ; no tests
4753 #:phases
4754 (modify-phases %standard-phases
4755 (delete 'configure)
4756 (replace 'build
4757 (lambda* (#:key inputs #:allow-other-keys)
4758 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
4759 ;; Tell mf where to find mf.base
4760 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
4761 ;; Tell mf where to look for source files
4762 (setenv "MFINPUTS"
4763 (string-append (getcwd) ":"
4764 mf "/share/texmf-dist/metafont/base:"
4765 (assoc-ref inputs "texlive-cm")
4766 "/share/texmf-dist/fonts/source/public/cm")))
4767 (mkdir "build")
4768 (for-each (lambda (font)
4769 (format #t "building font ~a\n" font)
4770 (invoke "mf" "-progname=mf"
4771 "-output-directory=build"
4772 (string-append "\\"
4773 "mode:=ljfour; "
4774 "mag:=1; "
4775 "batchmode; "
4776 "input " (basename font ".mf"))))
4777 (find-files "." "[0-9]+\\.mf$"))
4778 #t))
4779 (replace 'install
4780 (lambda* (#:key outputs #:allow-other-keys)
4781 (let* ((out (assoc-ref outputs "out"))
4782 (tfm (string-append
4783 out "/share/texmf-dist/fonts/tfm/jknappen/ec"))
4784 (mf (string-append
4785 out "/share/texmf-dist/fonts/source/jknappen/ec")))
4786 (for-each (cut install-file <> tfm)
4787 (find-files "build" "\\.*"))
4788 (for-each (cut install-file <> mf)
4789 (find-files "." "\\.mf"))
4790 #t))))))
4791 (native-inputs
4792 `(("texlive-bin" ,texlive-bin)
4793 ("texlive-metafont-base" ,texlive-metafont-base)
4794 ("texlive-cm" ,texlive-cm)))
4795 (home-page "https://www.ctan.org/pkg/ec")
4796 (synopsis "Computer modern fonts in T1 and TS1 encodings")
4797 (description
4798 "The EC fonts are European Computer Modern Fonts, supporting the complete
4799 LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.
4800 These fonts are intended to be stable with no changes being made to the tfm
4801 files. The set also contains a Text Companion Symbol font, called @code{tc},
4802 featuring many useful characters needed in text typesetting, for example
4803 oldstyle digits, currency symbols (including the newly created Euro symbol),
4804 the permille sign, copyright, trade mark and servicemark as well as a copyleft
4805 sign, and many others. Recent releases of LaTeX2e support the EC fonts. The
4806 EC fonts supersede the preliminary version released as the DC fonts. The
4807 fonts are available in (traced) Adobe Type 1 format, as part of the
4808 @code{cm-super} bundle. The other Computer Modern-style T1-encoded Type 1
4809 set, Latin Modern, is not actually a direct development of the EC set, and
4810 differs from the EC in a number of particulars.")
4811 (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\
4812 texlive-2019.3/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
4813
4814 ;; FIXME: the fonts should be built from source, but running "tex aefonts.tex"
4815 ;; fails with obscure TeX-typical error messages.
4816 (define-public texlive-ae
4817 (package
4818 (inherit (simple-texlive-package
4819 "texlive-ae"
4820 (list "/doc/fonts/ae/"
4821 "/source/fonts/ae/"
4822 "/fonts/tfm/public/ae/"
4823 "/fonts/vf/public/ae/"
4824 "/tex/latex/ae/")
4825 (base32
4826 "1xkzg381y0avdq381r2m990wp27czkdff0qkvsp2n5q62yc0bdsw")
4827 #:trivial? #t))
4828 (home-page "https://www.ctan.org/pkg/ae")
4829 (synopsis "Virtual fonts for T1 encoded CMR-fonts")
4830 (description
4831 "This package provides a set of virtual fonts which emulates T1 coded
4832 fonts using the standard CM fonts. The package name, AE fonts, supposedly
4833 stands for \"Almost European\". The main use of the package was to produce
4834 PDF files using Adobe Type 1 versions of the CM fonts instead of bitmapped EC
4835 fonts. Note that direct substitutes for the bitmapped EC fonts are available,
4836 via the CM-super, Latin Modern and (in a restricted way) CM-LGC font sets.")
4837 (license license:lppl1.3+)))
4838
4839 (define-public texlive-inconsolata
4840 (package
4841 (inherit (simple-texlive-package
4842 "texlive-inconsolata"
4843 (list "/doc/fonts/inconsolata/"
4844 "/fonts/enc/dvips/inconsolata/"
4845 "/fonts/map/dvips/inconsolata/"
4846 "/fonts/opentype/public/inconsolata/"
4847 "/fonts/tfm/public/inconsolata/"
4848 "/fonts/type1/public/inconsolata/"
4849 "/tex/latex/inconsolata/")
4850 (base32
4851 "1a77w26m4c4j0202s1qkikz7ha6cxlv8zxhzi9s3l0x1l2pl7cr2")
4852 #:trivial? #t))
4853 (home-page "https://www.ctan.org/pkg/inconsolata")
4854 (synopsis "Monospaced font with support files for use with TeX")
4855 (description
4856 "Inconsolata is a monospaced font designed by Raph Levien. This package
4857 contains the font (in both Adobe Type 1 and OpenType formats) in regular and
4858 bold weights, with additional glyphs and options to control slashed zero,
4859 upright quotes and a shapelier lower-case L, plus metric files for use with
4860 TeX, and LaTeX font definition and other relevant files.")
4861 (license (list license:lppl1.3+
4862 license:silofl1.1
4863 license:asl2.0))))
4864
4865 (define-public texlive-times
4866 (package
4867 (inherit (simple-texlive-package
4868 "texlive-times"
4869 (list "/dvips/times/"
4870 "/fonts/afm/adobe/times/"
4871 "/fonts/afm/urw/times/"
4872 "/fonts/tfm/adobe/times/"
4873 "/fonts/tfm/urw35vf/times/"
4874 "/fonts/type1/urw/times/"
4875 "/fonts/vf/adobe/times/"
4876 "/fonts/vf/urw35vf/times/"
4877 "/fonts/map/dvips/times/"
4878 "/tex/latex/times/")
4879 (base32
4880 "13g41a7vbkvsf7ki9dgl7qm100w382mnlqkcngwgl3axp6s5s8l0")
4881 #:trivial? #t))
4882 (home-page "https://ctan.org/pkg/urw-base35")
4883 (synopsis "URW Base 35 font pack for LaTeX")
4884 (description
4885 "This package provides a drop-in replacements for the Times font from
4886 Adobe's basic set.")
4887 ;; No license version specified.
4888 (license license:gpl3+)))
4889
4890 (define-public texlive-fonts-adobe-times
4891 (deprecated-package "texlive-fonts-adobe-times" texlive-times))
4892
4893 (define-public texlive-palatino
4894 (package
4895 (inherit (simple-texlive-package
4896 "texlive-palatino"
4897 (list "/dvips/palatino/"
4898 "/fonts/afm/adobe/palatino/"
4899 "/fonts/afm/urw/palatino/"
4900 "/fonts/tfm/adobe/palatino/"
4901 "/fonts/tfm/urw35vf/palatino/"
4902 "/fonts/type1/urw/palatino/"
4903 "/fonts/vf/adobe/palatino/"
4904 "/fonts/vf/urw35vf/palatino/"
4905
4906 "/fonts/map/dvips/palatino/"
4907 "/tex/latex/palatino/")
4908 (base32
4909 "12jc0av7v99857jigmva47qaxyllhpzsnqis10n0qya2kz44xf22")
4910 #:trivial? #t))
4911 (home-page "https://ctan.org/pkg/urw-base35")
4912 (synopsis "URW Base 35 font pack for LaTeX")
4913 (description
4914 "This package provides a drop-in replacements for the Palatino font from
4915 Adobe's basic set.")
4916 ;; No license version specified.
4917 (license license:gpl3+)))
4918
4919 (define-public texlive-fonts-adobe-palatino
4920 (deprecated-package "texlive-fonts-adobe-palatino" texlive-palatino))
4921
4922 (define-public texlive-zapfding
4923 (package
4924 (inherit (simple-texlive-package
4925 "texlive-zapfding"
4926 (list "/dvips/zapfding/"
4927 "/fonts/afm/adobe/zapfding/"
4928 "/fonts/afm/urw/zapfding/"
4929 "/fonts/tfm/adobe/zapfding/"
4930 "/fonts/tfm/urw35vf/zapfding/"
4931 "/fonts/type1/urw/zapfding/"
4932 "/fonts/map/dvips/zapfding/"
4933 "/tex/latex/zapfding/")
4934 (base32
4935 "17mls8wilz9api9ivsbcczpiqp1f39qy8wa6ajssi8zhnc5lq7zn")
4936 #:trivial? #t))
4937 (home-page "https://ctan.org/pkg/urw-base35")
4938 (synopsis "URW Base 35 font pack for LaTeX")
4939 (description
4940 "This package provides a drop-in replacements for the Zapfding font from
4941 Adobe's basic set.")
4942 ;; No license version specified.
4943 (license license:gpl3+)))
4944
4945 (define-public texlive-fonts-adobe-zapfding
4946 (deprecated-package "texlive-fonts-adobe-zapfding" texlive-zapfding))
4947
4948 (define-public texlive-fonts-rsfs
4949 (package
4950 (name "texlive-fonts-rsfs")
4951 (version (number->string %texlive-revision))
4952 (source (origin
4953 (method svn-fetch)
4954 (uri (svn-reference
4955 (url (string-append "svn://www.tug.org/texlive/tags/"
4956 %texlive-tag "/Master/texmf-dist/"
4957 "/fonts/source/public/rsfs/"))
4958 (revision %texlive-revision)))
4959 (file-name (string-append name "-" version "-checkout"))
4960 (sha256
4961 (base32
4962 "0r12pn02r4a955prcvq0048nifh86ihlcgvw3pppqqvfngv34l5h"))))
4963 (build-system gnu-build-system)
4964 (arguments
4965 `(#:modules ((guix build gnu-build-system)
4966 (guix build utils)
4967 (srfi srfi-1)
4968 (srfi srfi-26))
4969 #:tests? #f ; no tests
4970 #:phases
4971 (modify-phases %standard-phases
4972 (delete 'configure)
4973 (replace 'build
4974 (lambda* (#:key inputs #:allow-other-keys)
4975 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
4976 ;; Tell mf where to find mf.base
4977 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
4978 ;; Tell mf where to look for source files
4979 (setenv "MFINPUTS"
4980 (string-append (getcwd) ":"
4981 mf "/share/texmf-dist/metafont/base:"
4982 (assoc-ref inputs "texlive-cm")
4983 "/share/texmf-dist/fonts/source/public/cm")))
4984 (mkdir "build")
4985 (for-each (lambda (font)
4986 (format #t "building font ~a\n" font)
4987 (invoke "mf" "-progname=mf"
4988 "-output-directory=build"
4989 (string-append "\\"
4990 "mode:=ljfour; "
4991 "mag:=1; "
4992 "batchmode; "
4993 "input " (basename font ".mf"))))
4994 (find-files "." "[0-9]+\\.mf$"))
4995 #t))
4996 (replace 'install
4997 (lambda* (#:key outputs #:allow-other-keys)
4998 (let* ((out (assoc-ref outputs "out"))
4999 (tfm (string-append
5000 out "/share/texmf-dist/fonts/tfm/public/rsfs"))
5001 (mf (string-append
5002 out "/share/texmf-dist/fonts/source/public/rsfs")))
5003 (for-each (cut install-file <> tfm)
5004 (find-files "build" "\\.*"))
5005 (for-each (cut install-file <> mf)
5006 (find-files "." "\\.mf"))
5007 #t))))))
5008 (native-inputs
5009 `(("texlive-bin" ,texlive-bin)
5010 ("texlive-metafont-base" ,texlive-metafont-base)
5011 ("texlive-cm" ,texlive-cm)))
5012 (home-page "https://www.ctan.org/pkg/rsfs")
5013 (synopsis "Ralph Smith's Formal Script font")
5014 (description
5015 "The fonts provide uppercase formal script letters for use as symbols in
5016 scientific and mathematical typesetting (in contrast to the informal script
5017 fonts such as that used for the calligraphic symbols in the TeX maths symbol
5018 font). The fonts are provided as Metafont source, and as derived Adobe Type 1
5019 format. LaTeX support, for using these fonts in mathematics, is available via
5020 one of the packages @code{calrsfs} and @code{mathrsfs}.")
5021 (license (license:fsf-free "http://mirrors.ctan.org/fonts/rsfs/README"))))
5022
5023 (define-public texlive-latex-eso-pic
5024 (package
5025 (name "texlive-latex-eso-pic")
5026 (version (number->string %texlive-revision))
5027 (source (origin
5028 (method svn-fetch)
5029 (uri (texlive-ref "latex" "eso-pic"))
5030 (file-name (string-append name "-" version "-checkout"))
5031 (sha256
5032 (base32
5033 "0y2y08kr3w6asm9lblj9yywqmhaal36fq71zzcbfsc7cvwf641q7"))))
5034 (build-system texlive-build-system)
5035 (arguments '(#:tex-directory "latex/eso-pic"))
5036 (home-page "https://www.ctan.org/pkg/eso-pic")
5037 (synopsis "Add picture commands (or backgrounds) to every page")
5038 (description
5039 "The package adds one or more user commands to LaTeX's @code{shipout}
5040 routine, which may be used to place the output at fixed positions. The
5041 @code{grid} option may be used to find the correct places.")
5042 (license license:lppl1.3+)))
5043
5044 (define-public texlive-latex-eepic
5045 (package
5046 (name "texlive-latex-eepic")
5047 (version (number->string %texlive-revision))
5048 (source (origin
5049 (method svn-fetch)
5050 (uri (svn-reference
5051 (url (string-append "svn://www.tug.org/texlive/tags/"
5052 %texlive-tag "/Master/texmf-dist/"
5053 "/tex/latex/eepic"))
5054 (revision %texlive-revision)))
5055 (file-name (string-append name "-" version "-checkout"))
5056 (sha256
5057 (base32
5058 "1c68gvh021pvybg07apsd2xhq2ljbg80kq94wh71drdga3c2zqjw"))))
5059 (build-system trivial-build-system)
5060 (arguments
5061 `(#:modules ((guix build utils))
5062 #:builder
5063 (begin
5064 (use-modules (guix build utils))
5065 (let ((target (string-append (assoc-ref %outputs "out")
5066 "/share/texmf-dist/tex/latex/eepic")))
5067 (mkdir-p target)
5068 (copy-recursively (assoc-ref %build-inputs "source") target)
5069 #t))))
5070 (home-page "https://www.ctan.org/pkg/eepic")
5071 (synopsis "Extensions to epic and the LaTeX drawing tools")
5072 (description
5073 "Extensions to @code{epic} and the LaTeX picture drawing environment,
5074 include the drawing of lines at any slope, the drawing of circles in any
5075 radii, and the drawing of dotted and dashed lines much faster with much less
5076 TeX memory, and providing several new commands for drawing ellipses, arcs,
5077 splines, and filled circles and ellipses. The package uses @code{tpic}
5078 @code{\\special} commands.")
5079 (license license:public-domain)))
5080
5081 (define-public texlive-latex-enumitem
5082 (package
5083 (name "texlive-latex-enumitem")
5084 (version (number->string %texlive-revision))
5085 (source (origin
5086 (method svn-fetch)
5087 (uri (svn-reference
5088 (url (string-append "svn://www.tug.org/texlive/tags/"
5089 %texlive-tag "/Master/texmf-dist/"
5090 "/tex/latex/enumitem"))
5091 (revision %texlive-revision)))
5092 (file-name (string-append name "-" version "-checkout"))
5093 (sha256
5094 (base32
5095 "1vm9xp67hzif0pqab4r3ialf0cyhi0fa4p8kxgp1ymcf85pqip14"))))
5096 (build-system trivial-build-system)
5097 (arguments
5098 `(#:modules ((guix build utils))
5099 #:builder
5100 (begin
5101 (use-modules (guix build utils))
5102 (let ((target (string-append (assoc-ref %outputs "out")
5103 "/share/texmf-dist/tex/latex/enumitem")))
5104 (mkdir-p target)
5105 (copy-recursively (assoc-ref %build-inputs "source") target)
5106 #t))))
5107 (home-page "https://www.ctan.org/pkg/enumitem")
5108 (synopsis "Customize basic list environments")
5109 (description
5110 "This package is intended to ease customizing the three basic list
5111 environments: @code{enumerate}, @code{itemize} and @code{description}. It
5112 extends their syntax to allow an optional argument where a set of parameters
5113 in the form @code{key=value} are available, for example:
5114 @code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}.")
5115 (license license:lppl1.3+)))
5116
5117 (define-public texlive-latex-multirow
5118 (package
5119 (name "texlive-latex-multirow")
5120 (version (number->string %texlive-revision))
5121 (source (origin
5122 (method svn-fetch)
5123 (uri (texlive-ref "latex" "multirow"))
5124 (file-name (string-append name "-" version "-checkout"))
5125 (sha256
5126 (base32
5127 "07vbcp6avdwldr870cwf65av2s9lfyzcpp8gpld53yw6lcxgaipj"))))
5128 (build-system texlive-build-system)
5129 (arguments '(#:tex-directory "latex/multirow"))
5130 (home-page "https://www.ctan.org/pkg/multirow")
5131 (synopsis "Create tabular cells spanning multiple rows")
5132 (description
5133 "The package provides tools for creating tabular cells spanning multiple
5134 rows. It has a lot of flexibility, including an option for specifying an
5135 entry at the \"natural\" width of its text.")
5136 (license license:lppl1.3+)))
5137
5138 (define-public texlive-latex-overpic
5139 (package
5140 (name "texlive-latex-overpic")
5141 (version (number->string %texlive-revision))
5142 (source (origin
5143 (method svn-fetch)
5144 (uri (svn-reference
5145 (url (string-append "svn://www.tug.org/texlive/tags/"
5146 %texlive-tag "/Master/texmf-dist/"
5147 "/tex/latex/overpic"))
5148 (revision %texlive-revision)))
5149 (file-name (string-append name "-" version "-checkout"))
5150 (sha256
5151 (base32
5152 "1pr6ym3ad7x14ng7gmhsmywh3685d2cnm5qgyrqbigng2r6fcc1k"))))
5153 (build-system trivial-build-system)
5154 (arguments
5155 `(#:modules ((guix build utils))
5156 #:builder
5157 (begin
5158 (use-modules (guix build utils))
5159 (let ((target (string-append (assoc-ref %outputs "out")
5160 "/share/texmf-dist/tex/latex/overpic")))
5161 (mkdir-p target)
5162 (copy-recursively (assoc-ref %build-inputs "source") target)
5163 #t))))
5164 (home-page "https://www.ctan.org/pkg/overpic")
5165 (synopsis "Combine LaTeX commands over included graphics")
5166 (description
5167 "The @code{overpic} environment is a cross between the LaTeX
5168 @code{picture} environment and the @code{\\includegraphics} command of
5169 @code{graphicx}. The resulting picture environment has the same dimensions as
5170 the included graphic. LaTeX commands can be placed on the graphic at defined
5171 positions; a grid for orientation is available.")
5172 (license license:lppl1.0+)))
5173
5174 (define-public texlive-latex-parskip
5175 (package
5176 (name "texlive-latex-parskip")
5177 (version (number->string %texlive-revision))
5178 (source (origin
5179 (method svn-fetch)
5180 (uri (svn-reference
5181 (url (string-append "svn://www.tug.org/texlive/tags/"
5182 %texlive-tag "/Master/texmf-dist/"
5183 "/tex/latex/parskip"))
5184 (revision %texlive-revision)))
5185 (file-name (string-append name "-" version "-checkout"))
5186 (sha256
5187 (base32
5188 "0j1fhm1m9k6rz80lmch3x44g20y9nm4abaaf8czb0q8hzwlx5aq5"))))
5189 (build-system trivial-build-system)
5190 (arguments
5191 `(#:modules ((guix build utils))
5192 #:builder
5193 (begin
5194 (use-modules (guix build utils))
5195 (let ((target (string-append (assoc-ref %outputs "out")
5196 "/share/texmf-dist/tex/latex/parskip")))
5197 (mkdir-p target)
5198 (copy-recursively (assoc-ref %build-inputs "source") target)
5199 #t))))
5200 (home-page "https://www.ctan.org/pkg/parskip")
5201 (synopsis "Layout with zero \\parindent, non-zero \\parskip")
5202 (description
5203 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout
5204 that is untidy; this package (though it is no substitute for a properly
5205 designed class) helps alleviate this untidiness.")
5206 (license license:lppl)))
5207
5208 (define-public texlive-latex-pdfpages
5209 (package
5210 (name "texlive-latex-pdfpages")
5211 (version (number->string %texlive-revision))
5212 (source (origin
5213 (method svn-fetch)
5214 (uri (texlive-ref "latex" "pdfpages"))
5215 (file-name (string-append name "-" version "-checkout"))
5216 (sha256
5217 (base32
5218 "0s4izcah7im67889qz4d26pcfpasmm35sj1rw4ragkkdk3rlbbbd"))))
5219 (build-system texlive-build-system)
5220 (arguments '(#:tex-directory "latex/pdfpages"))
5221 (home-page "https://www.ctan.org/pkg/pdfpages")
5222 (synopsis "Include PDF documents in LaTeX")
5223 (description
5224 "This package simplifies the inclusion of external multi-page PDF
5225 documents in LaTeX documents. Pages may be freely selected and it is possible
5226 to put several logical pages onto each sheet of paper. Furthermore a lot of
5227 hypertext features like hyperlinks and article threads are provided. The
5228 package supports pdfTeX (pdfLaTeX) and VTeX. With VTeX it is even possible to
5229 use this package to insert PostScript files, in addition to PDF files.")
5230 (license license:lppl1.3+)))
5231
5232 (define-public texlive-fonts-stmaryrd
5233 (package
5234 (name "texlive-fonts-stmaryrd")
5235 (version (number->string %texlive-revision))
5236 (source (origin
5237 (method svn-fetch)
5238 (uri (texlive-ref "fonts" "stmaryrd"))
5239 (file-name (string-append name "-" version "-checkout"))
5240 (sha256
5241 (base32
5242 "08pn4ca3vl6qm9l3wm5h5iyjsrg411kkm1yana329xwg2j14s9n6"))))
5243 (build-system texlive-build-system)
5244 (arguments
5245 '(#:tex-directory "latex/stmaryrd"
5246 #:phases
5247 (modify-phases %standard-phases
5248 (add-after 'configure 'patch-ins
5249 (lambda _
5250 (substitute* "stmaryrd.ins"
5251 (("^%% LaTeX2e.*") "\\input docstrip\n")
5252 (("fontdef\\}\\}" line)
5253 (string-append line "\n\\endbatchfile")))
5254 #t)))))
5255 (home-page "https://www.ctan.org/pkg/stmaryrd")
5256 (synopsis "St Mary Road symbols for theoretical computer science")
5257 (description
5258 "The fonts were originally distributed as Metafont sources only, but
5259 Adobe Type 1 versions are also now available. Macro support is provided for
5260 use under LaTeX; the package supports the @code{only} option (provided by the
5261 @code{somedefs} package) to restrict what is loaded, for those who don't need
5262 the whole font.")
5263 (license license:lppl)))
5264
5265 (define-public texlive-latex-subfigure
5266 (package
5267 (name "texlive-latex-subfigure")
5268 (version (number->string %texlive-revision))
5269 (source (origin
5270 (method svn-fetch)
5271 (uri (texlive-ref "latex" "subfigure"))
5272 (file-name (string-append name "-" version "-checkout"))
5273 (sha256
5274 (base32
5275 "15spcl5wb7w269qd6y596vp4yi8sa5ppcx8w4z2i9kyp02r3a0yb"))))
5276 (build-system texlive-build-system)
5277 (arguments '(#:tex-directory "latex/subfigure"))
5278 (home-page "https://www.ctan.org/pkg/subfigure")
5279 (synopsis "Figures divided into subfigures")
5280 (description
5281 "This (deprecated) package provides support for the manipulation and
5282 reference of small or \"sub\" figures and tables within a single figure or
5283 table environment. It is convenient to use this package when your subfigures
5284 are to be separately captioned, referenced, or are to be included in the
5285 List-of-Figures. A new @code{\\subfigure} command is introduced which can be
5286 used inside a figure environment for each subfigure. An optional first
5287 argument is used as the caption for that subfigure. The package is now
5288 considered obsolete: it was superseded by @code{subfig}, but users may find
5289 the more recent @code{subcaption} package more satisfactory.")
5290 (license license:lppl)))
5291
5292 (define-public texlive-latex-tabulary
5293 (package
5294 (name "texlive-latex-tabulary")
5295 (version (number->string %texlive-revision))
5296 (source (origin
5297 (method svn-fetch)
5298 (uri (texlive-ref "latex" "tabulary"))
5299 (file-name (string-append name "-" version "-checkout"))
5300 (sha256
5301 (base32
5302 "1adkdx2zkk42g82nqf57lv1nc1z7kwl13jmy8vpcsizsa0xdnx9n"))))
5303 (build-system texlive-build-system)
5304 (arguments '(#:tex-directory "latex/tabulary"))
5305 (home-page "https://www.ctan.org/pkg/tabulary")
5306 (synopsis "Tabular with variable width columns balanced")
5307 (description
5308 "The package defines a @code{tabular*}-like environment, @code{tabulary},
5309 taking a \"total width\" argument as well as the column specifications. The
5310 environment uses column types @code{L}, @code{C}, @code{R} and @code{J} for
5311 variable width columns (@code{\\raggedright}, @code{\\centering},
5312 @code{\\raggedleft}, and normally justified). In contrast to
5313 @code{tabularx}'s @code{X} columns, the width of each column is weighted
5314 according to the natural width of the widest cell in the column.")
5315 (license license:lppl)))
5316
5317 (define-public texlive-latex-threeparttable
5318 (package
5319 (name "texlive-latex-threeparttable")
5320 (version (number->string %texlive-revision))
5321 (source (origin
5322 (method svn-fetch)
5323 (uri (svn-reference
5324 (url (string-append "svn://www.tug.org/texlive/tags/"
5325 %texlive-tag "/Master/texmf-dist/"
5326 "/tex/latex/threeparttable"))
5327 (revision %texlive-revision)))
5328 (file-name (string-append name "-" version "-checkout"))
5329 (sha256
5330 (base32
5331 "10vy9k150w2lviw8h22s2mcykff38xci653m5823s2vv44pwbmzq"))))
5332 (build-system trivial-build-system)
5333 (arguments
5334 `(#:modules ((guix build utils))
5335 #:builder
5336 (begin
5337 (use-modules (guix build utils))
5338 (let ((target (string-append (assoc-ref %outputs "out")
5339 "/share/texmf-dist/tex/latex/threeparttable")))
5340 (mkdir-p target)
5341 (copy-recursively (assoc-ref %build-inputs "source") target)
5342 #t))))
5343 (home-page "https://www.ctan.org/pkg/threeparttable")
5344 (synopsis "Tables with captions and notes all the same width")
5345 (description
5346 "This package facilitates tables with titles (captions) and notes. The
5347 title and notes are given a width equal to the body of the table (a
5348 @code{tabular} environment). By itself, a @code{threeparttable} does not
5349 float, but you can put it in a @code{table} or a @code{table*} or some other
5350 environment.")
5351 (license (license:fsf-free "file://threeparttable.sty"))))
5352
5353 (define-public texlive-txfonts
5354 (package
5355 (inherit (simple-texlive-package
5356 "texlive-txfonts"
5357 (list "/doc/fonts/txfonts/"
5358
5359 "/fonts/afm/public/txfonts/"
5360 "/fonts/tfm/public/txfonts/"
5361 "/fonts/type1/public/txfonts/"
5362 "/fonts/vf/public/txfonts/"
5363
5364 "/fonts/map/dvips/txfonts/"
5365 "/fonts/enc/dvips/txfonts/"
5366 "/tex/latex/txfonts/")
5367 (base32
5368 "017zjas5y1zlyq0iy4x6mv1qbz23xcy3y5xs0crj6zdnfvnccqgp")
5369 #:trivial? #t))
5370 (home-page "https://www.ctan.org/pkg/txfonts")
5371 (synopsis "Times-like fonts in support of mathematics")
5372 (description
5373 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW
5374 NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,
5375 and TS1 encodings; maths alphabets using Times/URW Nimbus; maths fonts
5376 providing all the symbols of the Computer Modern and AMS fonts, including all
5377 the Greek capital letters from CMR; and additional maths fonts of various
5378 other symbols.
5379
5380 The set is complemented by a sans-serif set of text fonts, based on
5381 Helvetica/NimbusSanL, and a monospace set.
5382
5383 All the fonts are in Type 1 format (AFM and PFB files), and are supported by
5384 TeX metrics (VF and TFM files) and macros for use with LaTeX.")
5385 ;; Any version of the GPL with font exception.
5386 (license license:gpl3+)))
5387
5388 (define-public texlive-fonts-txfonts
5389 (deprecated-package "texlive-fonts-txfonts" texlive-txfonts))
5390
5391 (define-public texlive-fonts-iwona
5392 (package
5393 (name "texlive-fonts-iwona")
5394 (version "0.995b")
5395 (source (origin
5396 (method url-fetch)
5397 (uri (string-append "http://jmn.pl/pliki/Iwona-tex-"
5398 (string-map (lambda (c)
5399 (if (char=? c #\.)
5400 #\_ c))
5401 version)
5402 ".zip"))
5403 (sha256
5404 (base32
5405 "13684iqx5granpc5rfvqnmyvdpgpbr1x9y7i7y7bcaq0qxv7ph1x"))))
5406 (build-system trivial-build-system)
5407 (arguments
5408 `(#:modules ((guix build utils))
5409 #:builder
5410 (begin
5411 (use-modules (guix build utils))
5412 (let ((target (string-append (assoc-ref %outputs "out")
5413 "/share/texmf-dist/"))
5414 (unzip (string-append (assoc-ref %build-inputs "unzip")
5415 "/bin/unzip")))
5416 (invoke unzip (assoc-ref %build-inputs "source"))
5417 (mkdir-p target)
5418 (copy-recursively "iwona" target)
5419 #t))))
5420 (native-inputs
5421 `(("unzip" ,unzip)))
5422 (home-page "http://jmn.pl/en/kurier-i-iwona/")
5423 (synopsis "Sans-serif typeface for TeX")
5424 (description "Iwona is a two-element sans-serif typeface. It was created
5425 as an alternative version of the Kurier typeface, which was designed in 1975
5426 for a diploma in typeface design at the Warsaw Academy of Fine Arts under the
5427 supervision of Roman Tomaszewski. Kurier was designed for linotype
5428 typesetting of newspapers and similar periodicals. The Iwona fonts are an
5429 alternative version of the Kurier fonts. The difference lies in the absence
5430 of ink traps which typify the Kurier font.")
5431 (license license:gfl1.0)))
5432
5433 (define-public texlive-jknappen
5434 (package
5435 (inherit (simple-texlive-package
5436 "texlive-jknappen"
5437 (list "/fonts/source/jknappen/"
5438 "/fonts/tfm/jknappen/"
5439 "/fonts/source/jknappen/"
5440 "/fonts/tfm/jknappen/"
5441 "/tex4ht/ht-fonts/alias/jknappen/"
5442 "/tex4ht/ht-fonts/unicode/jknappen/")
5443 (base32
5444 "1v5wk5il41bddzr81h5636h3cjz0w1qann5g9garsb7qfch9fhws")
5445 #:trivial? #t))
5446 (home-page "https://www.ctan.org/pkg/jknappen")
5447 (synopsis "Miscellaneous packages by Jörg Knappen")
5448 (description
5449 "This package contains a collection of macros by Jörg Knappen:
5450 @table @code
5451 @item greekctr
5452 New counterstyles @code{\\greek} and @code{\\Greek}.
5453 @item holtpolt
5454 Non-commutative fractions
5455 @item latin1jk
5456 @itemx latin2jk
5457 @itemx latin3jk
5458 Inputenc definition files that allow verbatim input in the respective ISO
5459 Latin codes.
5460 @item mathbol
5461 Blackboard bold fonts for use in maths.
5462 @item mathrsfs
5463 Mathematical script letters, as traditionally used in physics for Lagrangian,
5464 Hamiltonian, path integral measures, etc.
5465 @item parboxx
5466 New alignment options for parboxen at top and bottom of the box.
5467 @item sans
5468 Interchanges the roles of sans serif and roman fonts throughout the document.
5469 @item semtrans
5470 Support for special latin letters and diacritics used in transliteration of
5471 semitic languages
5472 @item smartmn
5473 Intelligent hyphen/minus, which guesses whether to render as hyphen or minus.
5474 @item sgmlcmpt
5475 Commands replacing the characters <, >, and &.
5476 @item tccompat
5477 A compatibility package for users of the older versions of the textcomp package.
5478 @item young
5479 Simple Young tableaux.
5480 @end table")
5481 (license license:gpl2))) ;per the 00readme_txt file.
5482
5483 (define-public texlive-libertine
5484 (package
5485 (inherit (simple-texlive-package
5486 "texlive-libertine"
5487 (list "/doc/fonts/libertine/"
5488
5489 "/fonts/enc/dvips/libertine/"
5490 "/fonts/map/dvips/libertine/"
5491 "/fonts/opentype/public/libertine/"
5492 "/fonts/tfm/public/libertine/"
5493 "/fonts/type1/public/libertine/"
5494 "/fonts/vf/public/libertine/"
5495
5496 "/tex/latex/libertine/")
5497 (base32
5498 "1v2vimpfi0b08sd79dadrck7wkpa0bphiakwyvhjc3ygq9k5bp8k")
5499 #:trivial? #t))
5500 (home-page "https://www.ctan.org/pkg/libertine")
5501 (synopsis "Use Linux Libertine and Biolinum fonts with LaTeX")
5502 (description
5503 "The package provides the Libertine and Biolinum fonts in both Type 1 and
5504 OTF styles, together with support macros for their use. Monospaced and
5505 display fonts, and the \"keyboard\" set are also included, in OTF style, only.
5506 The @code{mweights} package is used to manage the selection of font weights.
5507 The package supersedes both the @code{libertineotf} and the
5508 @code{libertine-legacy} packages.")
5509 (license (list license:gpl2+ ; with font exception
5510 license:silofl1.1
5511 license:lppl))))
5512
5513 (define-public texlive-dejavu
5514 (package
5515 (inherit (simple-texlive-package
5516 "texlive-dejavu"
5517 (list "/doc/fonts/dejavu/"
5518
5519 "/fonts/enc/dvips/dejavu/"
5520 "/fonts/map/dvips/dejavu/"
5521
5522 "/fonts/afm/public/dejavu/"
5523 "/fonts/tfm/public/dejavu/"
5524 "/fonts/truetype/public/dejavu/"
5525 "/fonts/type1/public/dejavu/"
5526 "/fonts/vf/public/dejavu/"
5527
5528 "/tex/latex/dejavu/")
5529 (base32
5530 "0y4qf5jl0xncah9nkcaalmy69wwq02n3j895zp71n2p0nfi24aka")
5531 #:trivial? #t))
5532 (home-page "https://www.ctan.org/pkg/libertine")
5533 (synopsis "LaTeX support for the DejaVu fonts")
5534 (description
5535 "The package contains LaTeX support for the DejaVu fonts, which are
5536 derived from the Vera fonts but contain more characters and styles. The fonts
5537 are included in the original TrueType format, and in converted Type 1 format.
5538 The (currently) supported encodings are: OT1, T1, IL2, TS1, T2*, X2, QX, and
5539 LGR. The package doesn't (currently) support mathematics.")
5540 (license license:lppl)))
5541
5542 (define-public texlive-latex-titlesec
5543 (package
5544 (name "texlive-latex-titlesec")
5545 (version (number->string %texlive-revision))
5546 (source (origin
5547 (method svn-fetch)
5548 (uri (svn-reference
5549 (url (string-append "svn://www.tug.org/texlive/tags/"
5550 %texlive-tag "/Master/texmf-dist/"
5551 "/tex/latex/titlesec"))
5552 (revision %texlive-revision)))
5553 (file-name (string-append name "-" version "-checkout"))
5554 (sha256
5555 (base32
5556 "04nmkhqx6jxcxx9a30zbcd5smxi5fd0cbp132bki7fnvhspnhg21"))))
5557 (build-system trivial-build-system)
5558 (arguments
5559 `(#:modules ((guix build utils))
5560 #:builder
5561 (begin
5562 (use-modules (guix build utils))
5563 (let ((target (string-append (assoc-ref %outputs "out")
5564 "/share/texmf-dist/tex/latex/titlesec")))
5565 (mkdir-p target)
5566 (copy-recursively (assoc-ref %build-inputs "source") target)
5567 #t))))
5568 (home-page "https://www.ctan.org/pkg/titlesec")
5569 (synopsis "Select alternative section titles")
5570 (description
5571 "This package provides an interface to sectioning commands for selection
5572 from various title styles, e.g. for marginal titles and to change the font of
5573 all headings with a single command, also providing simple one-step page
5574 styles. It also includes a package to change the page styles when there are
5575 floats in a page. You may assign headers/footers to individual floats, too.")
5576 (license license:lppl)))
5577
5578 (define-public texlive-latex-type1cm
5579 (package
5580 (name "texlive-latex-type1cm")
5581 (version (number->string %texlive-revision))
5582 (source (origin
5583 (method svn-fetch)
5584 (uri (texlive-ref "latex" "type1cm"))
5585 (file-name (string-append name "-" version "-checkout"))
5586 (sha256
5587 (base32
5588 "1lvxrqfwcwa4p31zyfm80gr05v8c28xybv5ri79zi2ngz6834z12"))))
5589 (build-system texlive-build-system)
5590 (arguments '(#:tex-directory "latex/type1cm"))
5591 (home-page "https://www.ctan.org/pkg/type1cm")
5592 (synopsis "Arbitrary size font selection in LaTeX")
5593 (description
5594 "LaTeX, by default, restricts the sizes at which you can use its default
5595 computer modern fonts, to a fixed set of discrete sizes (effectively, a set
5596 specified by Knuth). The @code{type1cm} package removes this restriction;
5597 this is particularly useful when using scalable versions of the CM
5598 fonts (Bakoma, or the versions from BSR/Y&Y, or True Type versions from Kinch,
5599 PCTeX, etc.). In fact, since modern distributions will automatically generate
5600 any bitmap font you might need, @code{type1cm} has wider application than just
5601 those using scalable versions of the fonts. Note that the LaTeX distribution
5602 now contains a package @code{fix-cm},f which performs the task of
5603 @code{type1cm}, as well as doing the same job for T1- and TS1-encoded
5604 @code{ec} fonts.")
5605 (license license:lppl)))
5606
5607 (define-public texlive-latex-lh
5608 (package
5609 (name "texlive-latex-lh")
5610 (version (number->string %texlive-revision))
5611 (source (origin
5612 (method svn-fetch)
5613 (uri (texlive-ref "latex" "lh"))
5614 (file-name (string-append name "-" version "-checkout"))
5615 (sha256
5616 (base32
5617 "00gdiwh3sfhh1iimjhpja7lm7k4vzqzql2irgwnpz94qvh25zwi5"))))
5618 (build-system texlive-build-system)
5619 (arguments '(#:tex-directory "latex/lh"))
5620 (home-page "https://www.ctan.org/pkg/lh")
5621 (synopsis "Cyrillic fonts that support LaTeX standard encodings")
5622 (description
5623 "The LH fonts address the problem of the wide variety of alphabets that
5624 are written with Cyrillic-style characters. The fonts are the original basis
5625 of the set of T2* and X2 encodings that are now used when LaTeX users need to
5626 write in Cyrillic languages. Macro support in standard LaTeX encodings is
5627 offered through the latex-cyrillic and t2 bundles, and the package itself
5628 offers support for other (more traditional) encodings. The fonts, in the
5629 standard T2* and X2 encodings are available in Adobe Type 1 format, in the
5630 CM-Super family of fonts. The package also offers its own LaTeX support for
5631 OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
5632 (license license:lppl)))
5633
5634 (define-public texlive-marvosym
5635 (package
5636 (inherit (simple-texlive-package
5637 "texlive-marvosym"
5638 (list "/doc/fonts/marvosym/"
5639 "/fonts/afm/public/marvosym/"
5640 "/fonts/map/dvips/marvosym/"
5641 "/fonts/tfm/public/marvosym/"
5642 "/fonts/truetype/public/marvosym/"
5643 "/fonts/type1/public/marvosym/"
5644 "/tex/latex/marvosym/")
5645 (base32
5646 "0m3bbg06cia8ni86fjhvb7x4a5qcxgnpqcvicfms91w2px9ysc46")
5647 #:trivial? #t))
5648 (home-page "https://martinvogel.de/blog/index.php?\
5649 /archives/131-Marvosym.ttf.html")
5650 (synopsis "Martin Vogel's Symbols (marvosym) font")
5651 (description "The Martin Vogel’s Symbols fonts (marvosym) contains the
5652 Euro currency symbol as defined by the European commission, along with symbols
5653 for structural engineering, symbols for steel cross-sections, astronomy
5654 signs (sun, moon, planets), the 12 signs of the zodiac, scissor symbols, CE
5655 sign and others. This package contains both the original TrueType font and
5656 the derived Type 1 font, together with support files for TeX (LaTeX).")
5657 (license (list license:lppl ;for TeX support files
5658 license:silofl1.1)))) ;for fonts
5659
5660 (define-public texlive-metapost
5661 (package
5662 (name "texlive-metapost")
5663 (version (number->string %texlive-revision))
5664 (source (origin
5665 (method svn-fetch)
5666 (uri (svn-reference
5667 (url (string-append "svn://www.tug.org/texlive/tags/"
5668 %texlive-tag "/Master/texmf-dist/"
5669 "/metapost"))
5670 (revision %texlive-revision)))
5671 (file-name (string-append name "-" version "-checkout"))
5672 (sha256
5673 (base32
5674 "1xyd57c8z1xi0kbqpbad61flcazz68i9ssxrag0gjvci3irxi8xh"))))
5675 (build-system trivial-build-system)
5676 (arguments
5677 `(#:modules ((guix build utils))
5678 #:builder
5679 (begin
5680 (use-modules (guix build utils))
5681 (let ((target (string-append (assoc-ref %outputs "out")
5682 "/share/texmf-dist/metapost")))
5683 (mkdir-p target)
5684 (copy-recursively (assoc-ref %build-inputs "source") target)
5685 #t))))
5686 (home-page "https://www.ctan.org/pkg/metapost")
5687 (synopsis "Create scalable illustrations")
5688 (description
5689 "MetaPost uses a language based on that of Metafont to produce precise
5690 technical illustrations. Its output is scalable PostScript or SVG, rather
5691 than the bitmaps Metafont creates.")
5692 (license license:lppl)))
5693
5694 (define-public texlive-latex-acmart
5695 (package
5696 (name "texlive-latex-acmart")
5697 (version "1.60")
5698 (source (origin
5699 (method svn-fetch)
5700 (uri (texlive-ref "latex" "acmart"))
5701 (sha256
5702 (base32
5703 "18rl67p2zhngskisnhv78mksv8q8q658l6igkswzswldixmkpphq"))
5704 (file-name (string-append name "-" version "-checkout"))))
5705 (build-system texlive-build-system)
5706 (arguments '(#:tex-directory "latex/acmart"))
5707 (home-page "https://www.ctan.org/pkg/acmart")
5708 (synopsis "Class for typesetting publications of ACM")
5709 (description
5710 "This package provides a class for typesetting publications of the
5711 Association for Computing Machinery (ACM).")
5712 (license license:lppl1.3+)))
5713
5714 (define-public texlive-latex-varwidth
5715 (package
5716 (name "texlive-latex-varwidth")
5717 (version (number->string %texlive-revision))
5718 (source (origin
5719 (method svn-fetch)
5720 (uri (svn-reference
5721 (url (string-append "svn://www.tug.org/texlive/tags/"
5722 %texlive-tag "/Master/texmf-dist/"
5723 "/tex/latex/varwidth"))
5724 (revision %texlive-revision)))
5725 (file-name (string-append name "-" version "-checkout"))
5726 (sha256
5727 (base32
5728 "1bmz9ap0ffyg7qry2xi7lki06qx4809w028xvk88cl66h7p46g52"))))
5729 (build-system trivial-build-system)
5730 (arguments
5731 `(#:modules ((guix build utils))
5732 #:builder
5733 (begin
5734 (use-modules (guix build utils))
5735 (let ((target (string-append (assoc-ref %outputs "out")
5736 "/share/texmf-dist/tex/latex/varwidth")))
5737 (mkdir-p target)
5738 (copy-recursively (assoc-ref %build-inputs "source") target)
5739 #t))))
5740 (home-page "https://www.ctan.org/pkg/varwidth")
5741 (synopsis "Variable-width minipage")
5742 (description
5743 "The @code{varwidth} environment is superficially similar to
5744 @code{minipage}, but the specified width is just a maximum value — the box may
5745 get a narrower “natural” width.")
5746 (license license:lppl)))
5747
5748 (define-public texlive-wasy
5749 (package
5750 (inherit (simple-texlive-package
5751 "texlive-wasy"
5752 (list "/fonts/source/public/wasy/"
5753 "/fonts/tfm/public/wasy/"
5754 "/tex/plain/wasy/"
5755 "/doc/fonts/wasy/")
5756 (base32
5757 "10dxbqgv42niybj65hj6y47x8lsl83m48rgw2v2s50k05wbghwbm")
5758 #:trivial? #t))
5759 (home-page "https://www.ctan.org/pkg/wasy")
5760 (synopsis "Waldi symbol fonts")
5761 (description "This package provides the @code{wasy} (Waldi symbol) fonts,
5762 in the Metafont and Adobe Type 1 formats. Support under LaTeX is provided by
5763 the @code{wasysym} package.")
5764 (license license:public-domain)))
5765
5766 (define-public texlive-latex-wasysym
5767 (package
5768 (name "texlive-latex-wasysym")
5769 (version (number->string %texlive-revision))
5770 (source (origin
5771 (method svn-fetch)
5772 (uri (texlive-ref "latex" "wasysym"))
5773 (file-name (string-append name "-" version "-checkout"))
5774 (sha256
5775 (base32
5776 "1sgwbfwjjf70g54hh93gsd9jp9nm67w6n74x9d72a56n07jbk5hv"))))
5777 (build-system texlive-build-system)
5778 (arguments '(#:tex-directory "latex/wasysym"))
5779 (home-page "https://www.ctan.org/pkg/wasysym")
5780 (synopsis "LaTeX support file to use the @code{wasy} fonts")
5781 (description
5782 "The @code{wasy} (Waldi Symbol) font by Roland Waldi provides many glyphs like
5783 male and female symbols and astronomical symbols, as well as the complete
5784 @code{lasy} font set and other odds and ends. The @code{wasysym} package
5785 implements an easy to use interface for these symbols.")
5786 (license license:lppl)))
5787
5788 (define-public texlive-latex-wrapfig
5789 (package
5790 (name "texlive-latex-wrapfig")
5791 (version (number->string %texlive-revision))
5792 (source (origin
5793 (method svn-fetch)
5794 (uri (svn-reference
5795 (url (string-append "svn://www.tug.org/texlive/tags/"
5796 %texlive-tag "/Master/texmf-dist/"
5797 "/tex/latex/wrapfig"))
5798 (revision %texlive-revision)))
5799 (file-name (string-append name "-" version "-checkout"))
5800 (sha256
5801 (base32
5802 "16xpyl0csmmwndz1xhzqfg9l0zcsnqxslsixsqkwd4zsvfj30sv4"))))
5803 (build-system trivial-build-system)
5804 (arguments
5805 `(#:modules ((guix build utils))
5806 #:builder
5807 (begin
5808 (use-modules (guix build utils))
5809 (let ((target (string-append (assoc-ref %outputs "out")
5810 "/share/texmf-dist/tex/latex/wrapfig")))
5811 (mkdir-p target)
5812 (copy-recursively (assoc-ref %build-inputs "source") target)
5813 #t))))
5814 (home-page "https://www.ctan.org/pkg/wrapfig")
5815 (synopsis "Produces figures which text can flow around")
5816 (description
5817 "This package allows figures or tables to have text wrapped around them.
5818 It does not work in combination with list environments, but can be used in a
5819 @code{parbox} or @code{minipage}, and in two-column format.")
5820 (license license:lppl)))
5821
5822 (define-public texlive-latex-ucs
5823 (package
5824 (name "texlive-latex-ucs")
5825 (version (number->string %texlive-revision))
5826 (source (origin
5827 (method svn-fetch)
5828 (uri (svn-reference
5829 (url (string-append "svn://www.tug.org/texlive/tags/"
5830 %texlive-tag "/Master/texmf-dist/"
5831 "/tex/latex/ucs"))
5832 (revision %texlive-revision)))
5833 (file-name (string-append name "-" version "-checkout"))
5834 (sha256
5835 (base32
5836 "0rrxwi60wmz5dfjifl4fwk66plf7wix85qnhfv4ylvmj6qi6hw37"))))
5837 (build-system trivial-build-system)
5838 (arguments
5839 `(#:modules ((guix build utils))
5840 #:builder
5841 (begin
5842 (use-modules (guix build utils))
5843 (let ((target (string-append (assoc-ref %outputs "out")
5844 "/share/texmf-dist/tex/latex/ucs")))
5845 (mkdir-p target)
5846 (copy-recursively (assoc-ref %build-inputs "source") target)
5847 #t))))
5848 (home-page "https://www.ctan.org/pkg/ucs")
5849 (synopsis "Extended UTF-8 input encoding support for LaTeX")
5850 (description
5851 "The bundle provides the @code{ucs} package, and @code{utf8x.def},
5852 together with a large number of support files. The @code{utf8x.def}
5853 definition file for use with @code{inputenc} covers a wider range of Unicode
5854 characters than does @code{utf8.def} in the LaTeX distribution. The package
5855 provides facilities for efficient use of its large sets of Unicode characters.
5856 Glyph production may be controlled by various options, which permits use of
5857 non-ASCII characters when coding mathematical formulae. Note that the bundle
5858 previously had an alias “unicode”; that alias has now been withdrawn, and no
5859 package of that name now exists.")
5860 (license license:lppl1.3+)))
5861
5862 (define-public texlive-latex-preview
5863 (package
5864 (name "texlive-latex-preview")
5865 (version (number->string %texlive-revision))
5866 (source (origin
5867 (method svn-fetch)
5868 (uri (texlive-ref "latex" "preview"))
5869 (file-name (string-append name "-" version "-checkout"))
5870 (sha256
5871 (base32
5872 "1hpsk4yp08qvbl43kqiv0hhwxv3gcqqxcpahyv6ch2b38pbj4bh6"))))
5873 (build-system texlive-build-system)
5874 (arguments
5875 '(#:tex-directory "latex/preview"
5876 #:phases
5877 (modify-phases %standard-phases
5878 (add-after 'unpack 'remove-generated-file
5879 (lambda _
5880 (delete-file "preview.drv")
5881 #t)))))
5882 (home-page "https://www.ctan.org/pkg/preview")
5883 (synopsis "Extract bits of a LaTeX source for output")
5884 (description
5885 "The main purpose of the preview package is the extraction of selected
5886 elements from a LaTeX source, like formulas or graphics, into separate
5887 pages of a DVI file. A flexible and convenient interface allows it to
5888 specify what commands and constructs should be extracted. This works
5889 with DVI files postprocessed by either Dvips and Ghostscript or
5890 dvipng, but it also works when you are using PDFTeX for generating PDF
5891 files.")
5892 (license license:gpl3+)))
5893
5894 (define-public texlive-latex-acronym
5895 (package
5896 (name "texlive-latex-acronym")
5897 (version (number->string %texlive-revision))
5898 (source (origin
5899 (method svn-fetch)
5900 (uri (texlive-ref "latex" "acronym"))
5901 (file-name (string-append name "-" version "-checkout"))
5902 (sha256
5903 (base32
5904 "0jmasg40bk53zdd2jc8nc18jvdai3p2wmamy7hwli8gls4nf25qp"))))
5905 (build-system texlive-build-system)
5906 (arguments '(#:tex-directory "latex/acronym"))
5907 (home-page "https://www.ctan.org/pkg/acronym")
5908 (synopsis "Expand acronyms at least once")
5909 (description
5910 "This package ensures that all acronyms used in the text are spelled out
5911 in full at least once. It also provides an environment to build a list of
5912 acronyms used. The package is compatible with PDF bookmarks. The package
5913 requires the suffix package, which in turn requires that it runs under
5914 e-TeX.")
5915 (license license:lppl1.3+)))
5916
5917 (define-public texlive-generic-pdftex
5918 (package
5919 (name "texlive-generic-pdftex")
5920 (version (number->string %texlive-revision))
5921 (source (origin
5922 (method svn-fetch)
5923 (uri (svn-reference
5924 (url (string-append "svn://www.tug.org/texlive/tags/"
5925 %texlive-tag "/Master/texmf-dist/"
5926 "/tex/generic/pdftex"))
5927 (revision %texlive-revision)))
5928 (file-name (string-append name "-" version "-checkout"))
5929 (sha256
5930 (base32
5931 "0k68zmqzs4qvrqxdwsrawbjb14hxqjfamq649azvai0jjxdpkljd"))))
5932 (build-system trivial-build-system)
5933 (arguments
5934 `(#:modules ((guix build utils))
5935 #:builder
5936 (begin
5937 (use-modules (guix build utils))
5938 (let ((target (string-append (assoc-ref %outputs "out")
5939 "/share/texmf-dist/tex/generic/pdftex"))
5940 (target-map (string-append (assoc-ref %outputs "out")
5941 "/share/texmf-dist/fonts/map/pdftex")))
5942 (mkdir-p target)
5943 (copy-recursively (assoc-ref %build-inputs "source") target)
5944 (mkdir-p target-map)
5945 (copy-recursively (assoc-ref %build-inputs "pdftex-map") target-map)
5946 #t))))
5947 (native-inputs
5948 `(("pdftex-map"
5949 ,(origin
5950 (method svn-fetch)
5951 (uri (svn-reference
5952 (url (string-append "svn://www.tug.org/texlive/tags/"
5953 %texlive-tag "/Master/texmf-dist/"
5954 "/fonts/map/pdftex"))
5955 (revision %texlive-revision)))
5956 (file-name (string-append name "-map-" version "-checkout"))
5957 (sha256
5958 (base32
5959 "03rfif2631pgd8g1ar4xblcdh078kky7fvw3kfsj5a47rxxgicp2"))))))
5960 (home-page "https://www.ctan.org/pkg/pdftex")
5961 (synopsis "TeX extension for direct creation of PDF")
5962 (description
5963 "This package provides an extension of TeX which can be configured to
5964 directly generate PDF documents instead of DVI.")
5965 (license license:gpl2+)))
5966
5967 (define texlive-texmf
5968 (package
5969 (name "texlive-texmf")
5970 (version "20190410")
5971 (source texlive-texmf-src)
5972 (build-system gnu-build-system)
5973 (inputs
5974 `(("texlive-bin" ,texlive-bin)
5975 ("lua" ,lua)
5976 ("perl" ,perl)
5977 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5978 ("ruby" ,ruby)
5979 ("tcsh" ,tcsh)))
5980 (arguments
5981 `(#:modules ((guix build gnu-build-system)
5982 (guix build utils)
5983 (srfi srfi-26))
5984
5985 ;; This package takes 4 GiB, which we can't afford to distribute from
5986 ;; our servers.
5987 #:substitutable? #f
5988
5989 #:phases
5990 (modify-phases (map (cut assq <> %standard-phases)
5991 '(set-paths unpack patch-source-shebangs))
5992 (add-after 'unpack 'unset-environment-variables
5993 (lambda _
5994 (unsetenv "TEXMF")
5995 (unsetenv "TEXMFCNF")
5996 #t))
5997 (add-after 'patch-source-shebangs 'install
5998 (lambda* (#:key outputs #:allow-other-keys)
5999 (let ((share (string-append (assoc-ref outputs "out") "/share")))
6000 (mkdir-p share)
6001 (invoke "mv" "texmf-dist" share))))
6002 (add-after 'install 'texmf-config
6003 (lambda* (#:key inputs outputs #:allow-other-keys)
6004 (let* ((out (assoc-ref outputs "out"))
6005 (share (string-append out "/share"))
6006 (texmfroot (string-append share "/texmf-dist/web2c"))
6007 (texmfcnf (string-append texmfroot "/texmf.cnf"))
6008 (texlive-bin (assoc-ref inputs "texlive-bin"))
6009 (texbin (string-append texlive-bin "/bin"))
6010 (tlpkg (string-append texlive-bin "/share/tlpkg")))
6011 ;; Register SHARE as TEXMFROOT in texmf.cnf.
6012 (substitute* texmfcnf
6013 (("TEXMFROOT = \\$SELFAUTOPARENT")
6014 (string-append "TEXMFROOT = " share))
6015 (("TEXMFLOCAL = \\$SELFAUTOGRANDPARENT/texmf-local")
6016 "TEXMFLOCAL = $SELFAUTODIR/share/texmf-local")
6017 (("!!\\$TEXMFLOCAL") "$TEXMFLOCAL"))
6018 ;; Register paths in texmfcnf.lua, needed for context.
6019 (substitute* (string-append texmfroot "/texmfcnf.lua")
6020 (("selfautodir:") out)
6021 (("selfautoparent:") (string-append share "/")))
6022 ;; Set path to TeXLive Perl modules
6023 (setenv "PERL5LIB"
6024 (string-append (getenv "PERL5LIB") ":" tlpkg))
6025 ;; Configure the texmf-dist tree; inspired from
6026 ;; http://slackbuilds.org/repository/13.37/office/texlive/
6027 (setenv "PATH" (string-append (getenv "PATH") ":" texbin))
6028 (setenv "TEXMFCNF" texmfroot)
6029 (invoke "updmap-sys" "--nohash" "--syncwithtrees")
6030 (invoke "mktexlsr")
6031 (invoke "fmtutil-sys" "--all")))))))
6032 (properties `((max-silent-time . 9600))) ; don't time out while grafting
6033 (synopsis "TeX Live, a package of the TeX typesetting system")
6034 (description
6035 "TeX Live provides a comprehensive TeX document production system.
6036 It includes all the major TeX-related programs, macro packages, and fonts
6037 that are free software, including support for many languages around the
6038 world.
6039
6040 This package contains the complete tree of texmf-dist data.")
6041 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
6042 (home-page "https://www.tug.org/texlive/")))
6043
6044 (define-public texlive
6045 (package
6046 (name "texlive")
6047 (version "20190410")
6048 (source #f)
6049 (build-system trivial-build-system)
6050 (inputs `(("bash" ,bash) ; for wrap-program
6051 ("texlive-bin" ,texlive-bin)
6052 ("texlive-texmf" ,texlive-texmf)))
6053 (native-search-paths
6054 (list (search-path-specification
6055 (variable "TEXMFLOCAL")
6056 (files '("share/texmf-local")))))
6057 (arguments
6058 `(#:modules ((guix build utils))
6059 #:builder
6060 ;; Build the union of texlive-bin and texlive-texmf, but take the
6061 ;; conflicting subdirectory share/texmf-dist from texlive-texmf.
6062 (begin
6063 (use-modules (guix build utils))
6064 (let ((out (assoc-ref %outputs "out"))
6065 (bin (assoc-ref %build-inputs "texlive-bin"))
6066 (texmf (assoc-ref %build-inputs "texlive-texmf"))
6067 (bash (assoc-ref %build-inputs "bash")))
6068 (mkdir out)
6069 (with-directory-excursion out
6070 (for-each
6071 (lambda (name)
6072 (symlink (string-append bin "/" name) name))
6073 '("include" "lib"))
6074 (mkdir "bin")
6075 (with-directory-excursion "bin"
6076 (setenv "PATH" (string-append bash "/bin"))
6077 (for-each
6078 (lambda (name)
6079 (symlink name (basename name))
6080 (wrap-program
6081 (basename name)
6082 `("TEXMFCNF" =
6083 (,(string-append texmf "/share/texmf-dist/web2c")))))
6084 (find-files (string-append bin "/bin/") "")))
6085 (mkdir "share")
6086 (with-directory-excursion "share"
6087 (for-each
6088 (lambda (name)
6089 (symlink (string-append bin "/share/" name) name))
6090 '("info" "man" "tlpkg"))
6091 (for-each
6092 (lambda (name)
6093 (symlink (string-append texmf "/share/" name) name))
6094 '("texmf-dist" "texmf-var"))))
6095 #t))))
6096 (synopsis "TeX Live, a package of the TeX typesetting system")
6097 (description
6098 "TeX Live provides a comprehensive TeX document production system.
6099 It includes all the major TeX-related programs, macro packages, and fonts
6100 that are free software, including support for many languages around the
6101 world.
6102
6103 This package contains the complete TeX Live distribution.")
6104 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
6105 (home-page "https://www.tug.org/texlive/")))
6106
6107 (define-public perl-text-bibtex
6108 (package
6109 (name "perl-text-bibtex")
6110 (version "0.85")
6111 (source
6112 (origin
6113 (method url-fetch)
6114 (uri (string-append "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-"
6115 version ".tar.gz"))
6116 (sha256
6117 (base32
6118 "036kxgbn1jf70pfm2lmjlzjwnhbkd888fp5lyvmkjpdd15gla18h"))))
6119 (build-system perl-build-system)
6120 (arguments
6121 `(#:phases
6122 (modify-phases %standard-phases
6123 (add-after 'unpack 'add-output-directory-to-rpath
6124 (lambda* (#:key outputs #:allow-other-keys)
6125 (substitute* "inc/MyBuilder.pm"
6126 (("-Lbtparse" line)
6127 (string-append "-Wl,-rpath="
6128 (assoc-ref outputs "out") "/lib " line)))
6129 #t))
6130 (add-after 'unpack 'install-libraries-to-/lib
6131 (lambda* (#:key outputs #:allow-other-keys)
6132 (substitute* "Build.PL"
6133 (("lib64") "lib"))
6134 #t)))))
6135 (native-inputs
6136 `(("perl-capture-tiny" ,perl-capture-tiny)
6137 ("perl-config-autoconf" ,perl-config-autoconf)
6138 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
6139 ("perl-module-build" ,perl-module-build)))
6140 (home-page "https://metacpan.org/release/Text-BibTeX")
6141 (synopsis "Interface to read and parse BibTeX files")
6142 (description "@code{Text::BibTeX} is a Perl library for reading, parsing,
6143 and processing BibTeX files. @code{Text::BibTeX} gives you access to the data
6144 at many different levels: you may work with BibTeX entries as simple field to
6145 string mappings, or get at the original form of the data as a list of simple
6146 values (strings, macros, or numbers) pasted together.")
6147 (license license:perl-license)))
6148
6149 (define-public biber
6150 (package
6151 ;; Note: When updating Biber, make sure it matches our BibLaTeX version by
6152 ;; checking the Biber/BibLaTeX compatibility matrix in the BibLaTeX manual
6153 ;; at <https://ctan.org/pkg/biblatex>.
6154 (name "biber")
6155 (version "2.12")
6156 (source (origin
6157 (method git-fetch)
6158 (uri (git-reference
6159 (url "https://github.com/plk/biber/")
6160 (commit (string-append "v" version))))
6161 (file-name (git-file-name name version))
6162 ;; TODO: Patch awaiting inclusion upstream (see:
6163 ;; https://github.com/plk/biber/issues/239).
6164 (patches (search-patches "biber-fix-encoding-write.patch"
6165 "biber-sortinithash.patch"))
6166 (sha256
6167 (base32
6168 "1g1hi6zvf2hmrjly1sidjaxy5440gfqm4p7p3n7kayshnjsmlskx"))))
6169 (build-system perl-build-system)
6170 (arguments
6171 `(#:phases
6172 (modify-phases %standard-phases
6173 (add-after 'install 'wrap-programs
6174 (lambda* (#:key outputs #:allow-other-keys)
6175 (let* ((out (assoc-ref outputs "out"))
6176 (perl5lib (getenv "PERL5LIB")))
6177 (wrap-program (string-append out "/bin/biber")
6178 `("PERL5LIB" ":" prefix
6179 (,(string-append perl5lib ":" out
6180 "/lib/perl5/site_perl")))))
6181 #t)))))
6182 (inputs
6183 `(("perl-autovivification" ,perl-autovivification)
6184 ("perl-class-accessor" ,perl-class-accessor)
6185 ("perl-data-dump" ,perl-data-dump)
6186 ("perl-data-compare" ,perl-data-compare)
6187 ("perl-data-uniqid" ,perl-data-uniqid)
6188 ("perl-datetime-format-builder" ,perl-datetime-format-builder)
6189 ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
6190 ("perl-file-slurper" ,perl-file-slurper)
6191 ("perl-ipc-cmd" ,perl-ipc-cmd)
6192 ("perl-ipc-run3" ,perl-ipc-run3)
6193 ("perl-list-allutils" ,perl-list-allutils)
6194 ("perl-list-moreutils" ,perl-list-moreutils)
6195 ("perl-mozilla-ca" ,perl-mozilla-ca)
6196 ("perl-regexp-common" ,perl-regexp-common)
6197 ("perl-log-log4perl" ,perl-log-log4perl)
6198 ;; We cannot use perl-unicode-collate here, because otherwise the
6199 ;; hardcoded hashes in the tests would differ. See
6200 ;; https://mail-archive.com/debian-bugs-dist@lists.debian.org/msg1469249.html
6201 ;;("perl-unicode-collate" ,perl-unicode-collate)
6202 ("perl-unicode-normalize" ,perl-unicode-normalize)
6203 ("perl-unicode-linebreak" ,perl-unicode-linebreak)
6204 ("perl-encode-eucjpascii" ,perl-encode-eucjpascii)
6205 ("perl-encode-jis2k" ,perl-encode-jis2k)
6206 ("perl-encode-hanextra" ,perl-encode-hanextra)
6207 ("perl-xml-libxml" ,perl-xml-libxml)
6208 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)
6209 ("perl-xml-libxslt" ,perl-xml-libxslt)
6210 ("perl-xml-writer" ,perl-xml-writer)
6211 ("perl-sort-key" ,perl-sort-key)
6212 ("perl-text-csv" ,perl-text-csv)
6213 ("perl-text-csv-xs" ,perl-text-csv-xs)
6214 ("perl-text-roman" ,perl-text-roman)
6215 ("perl-uri" ,perl-uri)
6216 ("perl-text-bibtex" ,perl-text-bibtex)
6217 ("perl-libwww" ,perl-libwww)
6218 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
6219 ("perl-business-isbn" ,perl-business-isbn)
6220 ("perl-business-issn" ,perl-business-issn)
6221 ("perl-business-ismn" ,perl-business-ismn)
6222 ("perl-lingua-translit" ,perl-lingua-translit)))
6223 (native-inputs
6224 `(("perl-config-autoconf" ,perl-config-autoconf)
6225 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
6226 ("perl-module-build" ,perl-module-build)
6227 ;; for tests
6228 ("perl-file-which" ,perl-file-which)
6229 ("perl-test-more" ,perl-test-most) ; FIXME: "more" would be sufficient
6230 ("perl-test-differences" ,perl-test-differences)))
6231 (home-page "http://biblatex-biber.sourceforge.net/")
6232 (synopsis "Backend for the BibLaTeX citation management tool")
6233 (description "Biber is a BibTeX replacement for users of biblatex. Among
6234 other things it comes with full Unicode support.")
6235 (license license:artistic2.0)))
6236
6237 (define-public rubber
6238 (package
6239 (name "rubber")
6240 (version "1.5.1")
6241 (source (origin
6242 (method url-fetch)
6243 (uri (list (string-append "https://launchpad.net/rubber/trunk/"
6244 version "/+download/rubber-"
6245 version ".tar.gz")
6246 (string-append "http://ebeffara.free.fr/pub/rubber-"
6247 version ".tar.gz")))
6248 (sha256
6249 (base32
6250 "178dmrp0mza5gqjiqgk6dqs0c10s0c517pk6k9pjbam86vf47a1p"))))
6251 (build-system python-build-system)
6252 (arguments
6253 '(#:tests? #f ; no `check' target
6254 #:phases
6255 (modify-phases %standard-phases
6256 (delete 'build)
6257 (replace 'install
6258 (lambda* (#:key outputs #:allow-other-keys)
6259 ;; texlive is required to build the PDF documentation; do not
6260 ;; build it.
6261 (invoke "python" "setup.py" "build" "--pdf=False" "install"
6262 (string-append "--prefix=" (assoc-ref outputs "out"))))))))
6263 (native-inputs `(("texinfo" ,texinfo)))
6264 (home-page "https://launchpad.net/rubber")
6265 (synopsis "Wrapper for LaTeX and friends")
6266 (description
6267 "Rubber is a program whose purpose is to handle all tasks related to the
6268 compilation of LaTeX documents. This includes compiling the document itself,
6269 of course, enough times so that all references are defined, and running BibTeX
6270 to manage bibliographic references. Automatic execution of dvips to produce
6271 PostScript documents is also included, as well as usage of pdfLaTeX to produce
6272 PDF documents.")
6273 (license license:gpl2+)))
6274
6275 (define-public texmaker
6276 (package
6277 (name "texmaker")
6278 (version "5.0.4")
6279 (source (origin
6280 (method url-fetch)
6281 (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
6282 version ".tar.bz2"))
6283 (sha256
6284 (base32
6285 "1qnh5g8zkjpjmw2l8spcynpfgs3wpcfcla5ms2kkgvkbdlzspqqx"))))
6286 (build-system gnu-build-system)
6287 (arguments
6288 `(#:phases
6289 (modify-phases %standard-phases
6290 ;; Qt has its own configuration utility.
6291 (replace 'configure
6292 (lambda* (#:key outputs #:allow-other-keys)
6293 (let ((out (assoc-ref outputs "out")))
6294 (invoke "qmake"
6295 (string-append "PREFIX=" out)
6296 (string-append "DESKTOPDIR=" out "/share/applications")
6297 (string-append "ICONDIR=" out "/share/pixmaps")
6298 (string-append "METAINFODIR=" out "/share/metainfo")
6299 "texmaker.pro")))))))
6300 (inputs
6301 `(("poppler-qt5" ,poppler-qt5)
6302 ("qtbase" ,qtbase)
6303 ("qtscript" ,qtscript)
6304 ("qtwebkit" ,qtwebkit)
6305 ("zlib" ,zlib)))
6306 (native-inputs
6307 `(("pkg-config" ,pkg-config)))
6308 (home-page "http://www.xm1math.net/texmaker/")
6309 (synopsis "LaTeX editor")
6310 (description "Texmaker is a program that integrates many tools needed to
6311 develop documents with LaTeX, in a single application.")
6312 (license license:gpl2+)))
6313
6314 (define-public teximpatient
6315 (package
6316 (name "teximpatient")
6317 (version "2.4")
6318 (source (origin
6319 (method url-fetch/tarbomb)
6320 (uri (string-append "mirror://gnu/" name "/" name "-"
6321 version ".tar.gz"))
6322 (sha256
6323 (base32
6324 "0h56w22d99dh4fgld4ssik8ggnmhmrrbnrn1lnxi1zr0miphn1sd"))))
6325 (build-system gnu-build-system)
6326 (arguments
6327 `(#:tests? #f ; there are none
6328 #:phases
6329 (modify-phases %standard-phases
6330 (add-after 'unpack 'fix-packaging-error
6331 (lambda* (#:key inputs #:allow-other-keys)
6332 ;; This file should have been part of the tarball.
6333 (install-file (car
6334 (find-files
6335 (assoc-ref inputs "automake")
6336 "^install-sh$"))
6337 ".")
6338 ;; Remove generated file.
6339 (delete-file "book.pdf")
6340 #t)))))
6341 (native-inputs
6342 `(("texlive" ,(texlive-union (list texlive-amsfonts
6343 texlive-fonts-adobe-palatino
6344 texlive-fonts-adobe-zapfding
6345 texlive-fonts-knuth-lib
6346 texlive-fonts-mflogo-font
6347 texlive-generic-pdftex)))
6348 ("automake" ,automake)))
6349 (home-page "https://www.gnu.org/software/teximpatient/")
6350 (synopsis "Book on TeX, plain TeX and Eplain")
6351 (description "@i{TeX for the Impatient} is a ~350 page book on TeX,
6352 plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,
6353 and Karl Berry.")
6354 (license license:fdl1.3+)))
6355
6356 (define-public lyx
6357 (package
6358 (name "lyx")
6359 (version "2.3.6.1")
6360 (source (origin
6361 (method url-fetch)
6362 (uri (string-append "https://ftp.lyx.org/pub/lyx/stable/"
6363 (version-major+minor version) ".x/"
6364 "lyx-" version ".tar.xz"))
6365 (sha256
6366 (base32
6367 "0y7sx804ral14py5jwmb3icvyd6rsw806dfclw0qx28r6iix5gn6"))
6368 (modules '((guix build utils)))
6369 (snippet
6370 '(begin
6371 (delete-file-recursively "3rdparty")
6372 #t))))
6373 (build-system qt-build-system)
6374 (arguments
6375 `(#:configure-flags `("-DLYX_USE_QT=QT5"
6376 "-DLYX_EXTERNAL_BOOST=1"
6377 "-DLYX_INSTALL=1"
6378 "-DLYX_RELEASE=1"
6379 "-DLYX_PROGRAM_SUFFIX=OFF"
6380 ,(string-append "-DLYX_INSTALL_PREFIX="
6381 (assoc-ref %outputs "out")))
6382 #:phases
6383 (modify-phases %standard-phases
6384 (add-after 'unpack 'patch-python
6385 (lambda* (#:key inputs #:allow-other-keys)
6386 (substitute* '("lib/configure.py"
6387 "src/support/ForkedCalls.cpp"
6388 "src/support/Systemcall.cpp"
6389 "src/support/os.cpp"
6390 "src/support/filetools.cpp")
6391 (("\"python ")
6392 (string-append "\""
6393 (assoc-ref inputs "python")
6394 "/bin/python3 ")))
6395 #t))
6396 (add-after 'unpack 'add-missing-test-file
6397 (lambda _
6398 ;; Create missing file that would cause tests to fail.
6399 (with-output-to-file "src/tests/check_layout.cmake"
6400 (const #t))
6401 #t)))))
6402 (inputs
6403 `(("boost" ,boost)
6404 ("hunspell" ,hunspell) ; Note: Could also use aspell instead.
6405 ("libx11" ,libx11)
6406 ("mythes" ,mythes)
6407 ("python" ,python)
6408 ("qtbase" ,qtbase)
6409 ("qtsvg" ,qtsvg)
6410 ("zlib" ,zlib)))
6411 (propagated-inputs
6412 `(("texlive" ,(texlive-union (list texlive-fonts-ec)))))
6413 (native-inputs
6414 `(("python" ,python)
6415 ("pkg-config" ,pkg-config)))
6416 (home-page "https://www.lyx.org/")
6417 (synopsis "Document preparation system with GUI")
6418 (description "LyX is a document preparation system. It excels at letting
6419 you create complex technical and scientific articles with mathematics,
6420 cross-references, bibliographies, indexes, etc. It is very good for working
6421 with documents of any length in which the usual processing abilities are
6422 required: automatic sectioning and pagination, spell checking and so forth.")
6423 (license license:gpl2+)))
6424
6425 (define-public texlive-latex-media9
6426 (package
6427 (name "texlive-latex-media9")
6428 (version (number->string %texlive-revision))
6429 (source (origin
6430 (method svn-fetch)
6431 (uri (svn-reference
6432 (url (string-append "svn://www.tug.org/texlive/tags/"
6433 %texlive-tag "/Master/texmf-dist/"
6434 "/tex/latex/media9"))
6435 (revision %texlive-revision)))
6436 (file-name (string-append name "-" version "-checkout"))
6437 (sha256
6438 (base32
6439 "0s86v2b6b1vky1svmmn8pn0l2gz3v280mvjbr2d9l2sjyarlgz9w"))))
6440 (build-system trivial-build-system)
6441 (arguments
6442 `(#:modules ((guix build utils))
6443 #:builder
6444 (begin
6445 (use-modules (guix build utils))
6446 (let ((target (string-append (assoc-ref %outputs "out")
6447 "/share/texmf-dist/tex/latex/media9")))
6448 (mkdir-p target)
6449 (copy-recursively (assoc-ref %build-inputs "source") target)
6450 #t))))
6451 (home-page "https://www.ctan.org/pkg/media9")
6452 (synopsis "Multimedia inclusion package with Adobe Reader-9/X compatibility")
6453 (description
6454 "The package provides an interface to embed interactive Flash (SWF) and 3D
6455 objects (Adobe U3D & PRC), as well as video and sound files or streams in the
6456 popular MP4, FLV and MP3 formats into PDF documents with Acrobat-9/X
6457 compatibility. Playback of multimedia files uses the built-in Flash Player of
6458 Adobe Reader and does, therefore, not depend on external plug-ins. Flash Player
6459 supports the efficient H.264 codec for video compression.
6460
6461 The package is based on the RichMedia Annotation, an Adobe addition to the PDF
6462 specification. It replaces the now obsolete @code{movie15} package.")
6463 (license license:lppl)))
6464
6465 (define-public texlive-latex-ocgx2
6466 (package
6467 (name "texlive-latex-ocgx2")
6468 (version (number->string %texlive-revision))
6469 (source (origin
6470 (method svn-fetch)
6471 (uri (svn-reference
6472 (url (string-append "svn://www.tug.org/texlive/tags/"
6473 %texlive-tag "/Master/texmf-dist/"
6474 "/tex/latex/ocgx2"))
6475 (revision %texlive-revision)))
6476 (file-name (string-append name "-" version "-checkout"))
6477 (sha256
6478 (base32
6479 "1yhp51w8yr10c10pc9196q7hlw80brzqinnqbjw81d0sf2p0llc5"))))
6480 (build-system trivial-build-system)
6481 (arguments
6482 `(#:modules ((guix build utils))
6483 #:builder
6484 (begin
6485 (use-modules (guix build utils))
6486 (let ((target (string-append (assoc-ref %outputs "out")
6487 "/share/texmf-dist/tex/latex/ogcx2")))
6488 (mkdir-p target)
6489 (copy-recursively (assoc-ref %build-inputs "source") target)
6490 #t))))
6491 (home-page "https://www.ctan.org/pkg/ocgx2")
6492 (synopsis "Provide OCG (Optional Content Groups) support within a PDF document")
6493 (description
6494 "This package provides OCG (Optional Content Groups) support within a PDF
6495 document.
6496
6497 It re-implements the functionality of the @code{ocg}, @code{ocgx}, and
6498 @code{ocg-p} packages and adds support for all known engines and back-ends
6499 including:
6500
6501 @itemize
6502 @item LaTeX → dvips → @code{ps2pdf}/Distiller
6503 @item (Xe)LaTeX(x) → @code{dvipdfmx}
6504 @item pdfLaTeX and LuaLaTeX .
6505 @end itemize
6506
6507 It also ensures compatibility with the @code{media9} and @code{animate} packages.")
6508 (license license:lppl)))
6509
6510 (define-public texlive-latex-ms
6511 (package
6512 (name "texlive-latex-ms")
6513 (version (number->string %texlive-revision))
6514 (source (origin
6515 (method svn-fetch)
6516 (uri (texlive-ref "latex" "ms"))
6517 (file-name (string-append name "-" version "-checkout"))
6518 (sha256
6519 (base32
6520 "0m4wx3yjb5al1qsv995z8fii8xxy96mcfihbnlx43lpgayiwz35s"))))
6521 (build-system texlive-build-system)
6522 (arguments
6523 '(#:tex-directory "latex/ms"
6524 #:tex-format "latex"))
6525 (home-page "https://ctan.org/pkg/ms")
6526 (synopsis "Various LATEX packages by Martin Schröder")
6527 (description
6528 "A bundle of LATEX packages by Martin Schröder; the collection comprises:
6529
6530 @itemize
6531 @item @command{count1to}, make use of fixed TEX counters;
6532 @item @command{everysel}, set commands to execute every time a font is selected;
6533 @item @command{everyshi}, set commands to execute whenever a page is shipped out;
6534 @item @command{multitoc}, typeset the table of contents in multiple columns;
6535 @item @command{prelim2e}, mark typeset pages as preliminary; and
6536 @item @command{ragged2e}, typeset ragged text and allow hyphenation.
6537 @end itemize\n")
6538 (license license:lppl1.3c+)))
6539
6540 (define-public texlive-latex-needspace
6541 (package
6542 (name "texlive-latex-needspace")
6543 (version (number->string %texlive-revision))
6544 (source (origin
6545 (method svn-fetch)
6546 (uri (texlive-ref "latex" "needspace"))
6547 (file-name (string-append name "-" version "-checkout"))
6548 (sha256
6549 (base32
6550 "0kw80f5jh4gdpa2ka815abza3gr5z8b929w0745vrlc59pl0017y"))))
6551 (build-system texlive-build-system)
6552 (arguments
6553 '(#:tex-directory "latex/needspace"
6554 #:tex-format "latex"))
6555 (inputs
6556 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
6557 (home-page "https://www.ctan.org/pkg/needspace")
6558 (synopsis "Insert pagebreak if not enough space")
6559 (description
6560 "Provides commands to disable pagebreaking within a given vertical
6561 space. If there is not enough space between the command and the bottom of the
6562 page, a new page will be started.")
6563 (license license:lppl)))
6564
6565 (define-public texlive-latex-changepage
6566 (package
6567 (name "texlive-latex-changepage")
6568 (version (number->string %texlive-revision))
6569 (source
6570 (origin
6571 (method svn-fetch)
6572 (uri (texlive-ref "latex" "changepage"))
6573 (file-name (string-append name "-" version "-checkout"))
6574 (sha256
6575 (base32
6576 "1rpw8xg5p4jsyh236jma9dz3l29wjx4062f154b3wak5yjcxyxyb"))))
6577 (build-system texlive-build-system)
6578 (arguments
6579 '(#:tex-directory "latex/changepage"
6580 #:tex-format "latex"))
6581 (inputs
6582 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
6583 (home-page "https://www.ctan.org/pkg/changepage")
6584 (synopsis "Margin adjustment and detection of odd/even pages")
6585 (description
6586 "The package provides commands to change the page layout in the middle of
6587 a document, and to robustly check for typesetting on odd or even pages.
6588 Instructions for use are at the end of the file. The package is an extraction
6589 of code from the @code{memoir} class, whose user interface it shares.")
6590 (license license:lppl1.3+)))
6591
6592 (define-public texlive-latex-eukdate
6593 (package
6594 (name "texlive-latex-eukdate")
6595 (version (number->string %texlive-revision))
6596 (source
6597 (origin
6598 (method svn-fetch)
6599 (uri (svn-reference
6600 (url (string-append "svn://www.tug.org/texlive/tags/"
6601 %texlive-tag "/Master/texmf-dist/"
6602 "/tex/latex/eukdate"))
6603 (revision %texlive-revision)))
6604 (file-name (string-append name "-" version "-checkout"))
6605 (sha256
6606 (base32
6607 "18xan116l8w47v560bkw6nbhkrml7g04xrlzk3jrpc7qsyf3n5fz"))))
6608 (build-system trivial-build-system)
6609 (arguments
6610 `(#:modules ((guix build utils))
6611 #:builder
6612 (begin
6613 (use-modules (guix build utils))
6614 (let ((target (string-append (assoc-ref %outputs "out")
6615 "/share/texmf-dist/tex/latex/eukdate")))
6616 (mkdir-p target)
6617 (copy-recursively (assoc-ref %build-inputs "source") target)
6618 #t))))
6619 (home-page "https://www.ctan.org/pkg/eukdate")
6620 (synopsis "UK format dates, with weekday")
6621 (description
6622 "The package is used to change the format of @code{\\today}’s date,
6623 including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which
6624 is preferred in many parts of the world, as distinct from that which is used in
6625 @code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'.")
6626 (license license:lppl)))
6627
6628 (define-public texlive-generic-ulem
6629 (package
6630 (name "texlive-generic-ulem")
6631 (version (number->string %texlive-revision))
6632 (source
6633 (origin
6634 (method svn-fetch)
6635 (uri (svn-reference
6636 (url (string-append "svn://www.tug.org/texlive/tags/"
6637 %texlive-tag "/Master/texmf-dist/"
6638 "/tex/generic/ulem"))
6639 (revision %texlive-revision)))
6640 (file-name (string-append name "-" version "-checkout"))
6641 (sha256
6642 (base32
6643 "1rzdniqq9zk39w8ch8ylx3ywh2mj87s4ivchrsk2b8nx06jyn797"))))
6644 (build-system trivial-build-system)
6645 (arguments
6646 `(#:modules ((guix build utils))
6647 #:builder
6648 (begin
6649 (use-modules (guix build utils))
6650 (let ((target (string-append (assoc-ref %outputs "out")
6651 "/share/texmf-dist/tex/generic/ulem")))
6652 (mkdir-p target)
6653 (copy-recursively (assoc-ref %build-inputs "source") target)
6654 #t))))
6655 (home-page "https://www.ctan.org/pkg/ulem")
6656 (synopsis "Underline text in TeX")
6657 (description
6658 "The package provides an @code{\\ul} (underline) command which will break
6659 over line ends; this technique may be used to replace @code{\\em} (both in that
6660 form and as the @code{\\emph} command), so as to make output look as if it comes
6661 from a typewriter. The package also offers double and wavy underlining, and
6662 striking out (line through words) and crossing out (/// over words).")
6663 (license license:lppl1.3c+)))
6664
6665 (define-public texlive-latex-pgf
6666 (package
6667 (name "texlive-latex-pgf")
6668 (version (number->string %texlive-revision))
6669 (source
6670 (origin
6671 (method svn-fetch)
6672 (uri (svn-reference
6673 (url (string-append "svn://www.tug.org/texlive/tags/"
6674 %texlive-tag "/Master/texmf-dist/"
6675 "/tex/latex/pgf"))
6676 (revision %texlive-revision)))
6677 (file-name (string-append name "-" version "-checkout"))
6678 (sha256
6679 (base32
6680 "1dscrgwyr71vgx35mzb316xl669arzagfgq50fdv3nxga63959b3"))))
6681 (build-system trivial-build-system)
6682 (native-inputs
6683 `(("texlive-latex-pgf-generic"
6684 ,(origin
6685 (method svn-fetch)
6686 (uri (svn-reference
6687 (url (string-append "svn://www.tug.org/texlive/tags/"
6688 %texlive-tag "/Master/texmf-dist/"
6689 "/tex/generic/pgf"))
6690 (revision %texlive-revision)))
6691 (file-name (string-append "texlive-latex-pgf-generic" version "-checkout"))
6692 (sha256
6693 (base32
6694 "0hk5x2j15n4pps279cmkbjl1dvhasq3mbhna5xdvp2qgh635ahks"))))))
6695 (propagated-inputs
6696 `(("texlive-latex-xcolor" ,texlive-latex-xcolor)))
6697 (arguments
6698 `(#:modules ((guix build utils))
6699 #:builder
6700 (begin
6701 (use-modules (guix build utils))
6702 (let ((target-generic (string-append (assoc-ref %outputs "out")
6703 "/share/texmf-dist/tex/generic/pgf"))
6704 (target-latex (string-append (assoc-ref %outputs "out")
6705 "/share/texmf-dist/tex/latex/pgf")))
6706 (mkdir-p target-generic)
6707 (mkdir-p target-latex)
6708 (copy-recursively (assoc-ref %build-inputs "texlive-latex-pgf-generic") target-generic)
6709 (copy-recursively (assoc-ref %build-inputs "source") target-latex)
6710 #t))))
6711 (home-page "https://www.ctan.org/pkg/tikz")
6712 (synopsis "Create PostScript and PDF graphics in TeX")
6713 (description
6714 "PGF is a macro package for creating graphics. It is platform- and
6715 format-independent and works together with the most important TeX backend
6716 drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer
6717 called TikZ.
6718
6719 Its usage is similar to pstricks and the standard picture environment. PGF
6720 works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can
6721 produce either PostScript or PDF output.")
6722 (license license:lppl1.3c+)))
6723
6724 (define-public texlive-latex-koma-script
6725 (package
6726 (name "texlive-latex-koma-script")
6727 (version (number->string %texlive-revision))
6728 (source (origin
6729 (method svn-fetch)
6730 (uri (svn-reference
6731 (url (string-append "svn://www.tug.org/texlive/tags/"
6732 %texlive-tag "/Master/texmf-dist/"
6733 "/tex/latex/koma-script"))
6734 (revision %texlive-revision)))
6735 (file-name (string-append name "-" version "-checkout"))
6736 (sha256
6737 (base32
6738 "1vz9zg7s5w52xr323zgglzprfrvba2zvyzf6b8vrdf4wdghlpv4z"))))
6739 (build-system trivial-build-system)
6740 (arguments
6741 `(#:modules ((guix build utils)
6742 (ice-9 match))
6743 #:builder
6744 (begin
6745 (use-modules (guix build utils)
6746 (ice-9 match))
6747 (let ((root (string-append (assoc-ref %outputs "out")
6748 "/share/texmf-dist/"))
6749 (pkgs '(("source" . "tex/latex/koma-script"))))
6750 (for-each (match-lambda
6751 ((pkg . dir)
6752 (let ((target (string-append root dir)))
6753 (mkdir-p target)
6754 (copy-recursively (assoc-ref %build-inputs pkg)
6755 target))))
6756 pkgs)
6757 #t))))
6758 (home-page "https://www.ctan.org/pkg/koma-script")
6759 (synopsis "Bundle of versatile classes and packages")
6760 (description
6761 "The KOMA-Script bundle provides replacements for the article, report, and
6762 book classes with emphasis on typography and versatility. There is also a
6763 letter class.
6764
6765 The bundle also offers:
6766
6767 @itemize
6768 @item a package for calculating type areas in the way laid down by the
6769 typographer Jan Tschichold,
6770 @item packages for easily changing and defining page styles,
6771 @item a package scrdate for getting not only the current date but also the name
6772 of the day, and
6773 @item a package scrtime for getting the current time.
6774 @end itemize
6775
6776 All these packages may be used not only with KOMA-Script classes but also with
6777 the standard classes.
6778
6779 Since every package has its own version number, the version number quoted only
6780 refers to the version of scrbook, scrreprt, scrartcl, scrlttr2 and
6781 typearea (which are the main parts of the bundle).")
6782 (license license:lppl1.3+)))
6783
6784 (define-public texlive-generic-listofitems
6785 (package
6786 (name "texlive-generic-listofitems")
6787 (version (number->string %texlive-revision))
6788 (source (origin
6789 (method svn-fetch)
6790 (uri (svn-reference
6791 (url (string-append "svn://www.tug.org/texlive/tags/"
6792 %texlive-tag "/Master/texmf-dist/"
6793 "/tex/generic/listofitems"))
6794 (revision %texlive-revision)))
6795 (file-name (string-append name "-" version "-checkout"))
6796 (sha256
6797 (base32
6798 "1x4wnpca97rnbvvg6wjmbkxxvnfva274q9ahzx746b435q93z3i1"))))
6799 (build-system trivial-build-system)
6800 (arguments
6801 `(#:modules ((guix build utils))
6802 #:builder
6803 (begin
6804 (use-modules (guix build utils))
6805 (let ((target (string-append (assoc-ref %outputs "out")
6806 "/share/texmf-dist/tex/generic/listofitems")))
6807 (mkdir-p target)
6808 (copy-recursively (assoc-ref %build-inputs "source") target)
6809 #t))))
6810 (home-page "https://www.ctan.org/pkg/listofitems")
6811 (synopsis "Grab items in lists using user-specified separation character")
6812 (description
6813 "This package allows one to capture all the items of a list, for which
6814 the parsing character has been selected by the user, and to access any of
6815 these items with a simple syntax.")
6816 (license license:lppl1.3c+)))
6817
6818 (define-public texlive-latex-readarray
6819 (package
6820 (name "texlive-latex-readarray")
6821 (version (number->string %texlive-revision))
6822 (source (origin
6823 (method svn-fetch)
6824 (uri (svn-reference
6825 (url (string-append "svn://www.tug.org/texlive/tags/"
6826 %texlive-tag "/Master/texmf-dist/"
6827 "/tex/latex/readarray"))
6828 (revision %texlive-revision)))
6829 (file-name (string-append name "-" version "-checkout"))
6830 (sha256
6831 (base32
6832 "0c53k180ivn1n7fz3ngvd2w1i5dw3kxml0n64vhki88xsylz7lxp"))))
6833 (build-system trivial-build-system)
6834 (arguments
6835 `(#:modules ((guix build utils))
6836 #:builder
6837 (begin
6838 (use-modules (guix build utils))
6839 (let ((target (string-append (assoc-ref %outputs "out")
6840 "/share/texmf-dist/tex/latex/readarray")))
6841 (mkdir-p target)
6842 (copy-recursively (assoc-ref %build-inputs "source") target)
6843 #t))))
6844 (propagated-inputs
6845 `(("texlive-generic-listofitems" ,texlive-generic-listofitems)))
6846 (home-page "https://www.ctan.org/pkg/readarray")
6847 (synopsis "Read, store and recall array-formatted data")
6848 (description
6849 "This package allows the user to input formatted data into elements of a
6850 2-D or 3-D array and to recall that data at will by individual cell number.
6851 The data can be but need not be numerical in nature. It can be, for example,
6852 formatted text.")
6853 (license license:lppl1.3)))
6854
6855 (define-public texlive-latex-verbatimbox
6856 (package
6857 (name "texlive-latex-verbatimbox")
6858 (version (number->string %texlive-revision))
6859 (source (origin
6860 (method svn-fetch)
6861 (uri (svn-reference
6862 (url (string-append "svn://www.tug.org/texlive/tags/"
6863 %texlive-tag "/Master/texmf-dist/"
6864 "/tex/latex/verbatimbox"))
6865 (revision %texlive-revision)))
6866 (file-name (string-append name "-" version "-checkout"))
6867 (sha256
6868 (base32
6869 "0qh1cgvfs463zsi2pjg490gj0mkjfdpfc381j10cbb5la304psna"))))
6870 (build-system trivial-build-system)
6871 (arguments
6872 `(#:modules ((guix build utils))
6873 #:builder
6874 (begin
6875 (use-modules (guix build utils))
6876 (let ((target (string-append (assoc-ref %outputs "out")
6877 "/share/texmf-dist/tex/latex/verbatimbox")))
6878 (mkdir-p target)
6879 (copy-recursively (assoc-ref %build-inputs "source") target)
6880 #t))))
6881 (propagated-inputs
6882 `(("texlive-latex-readarray" ,texlive-latex-readarray)))
6883 (home-page "https://www.ctan.org/pkg/verbatimbox")
6884 (synopsis "Deposit verbatim text in a box")
6885 (description
6886 "The package provides a @code{verbbox} environment to place its contents
6887 into a globally available box, or into a box specified by the user. The
6888 global box may then be used in a variety of situations (for example, providing
6889 a replica of the @code{boxedverbatim} environment itself). A valuable use is
6890 in places where the standard @code{verbatim} environment (which is based on a
6891 @code{trivlist}) may not appear.")
6892 (license license:lppl1.3+)))
6893
6894 (define-public texlive-latex-examplep
6895 (package
6896 (name "texlive-latex-examplep")
6897 (version (number->string %texlive-revision))
6898 (source (origin
6899 (method svn-fetch)
6900 (uri (svn-reference
6901 (url (string-append "svn://www.tug.org/texlive/tags/"
6902 %texlive-tag "/Master/texmf-dist/"
6903 "/tex/latex/examplep"))
6904 (revision %texlive-revision)))
6905 (file-name (string-append name "-" version "-checkout"))
6906 (sha256
6907 (base32
6908 "0fsvvmz68ij0zwfzrny6x13d92grxr4ap59lxgah4smbkccd6s27"))))
6909 (build-system trivial-build-system)
6910 (arguments
6911 `(#:modules ((guix build utils))
6912 #:builder
6913 (begin
6914 (use-modules (guix build utils))
6915 (let ((target (string-append (assoc-ref %outputs "out")
6916 "/share/texmf-dist/tex/latex/examplep")))
6917 (mkdir-p target)
6918 (copy-recursively (assoc-ref %build-inputs "source") target)
6919 #t))))
6920 (home-page "https://www.ctan.org/pkg/examplep")
6921 (synopsis "Verbatim phrases and listings in LaTeX")
6922 (description
6923 "Examplep provides sophisticated features for typesetting verbatim source
6924 code listings, including the display of the source code and its compiled LaTeX
6925 or METAPOST output side-by-side, with automatic width detection and enabled
6926 page breaks (in the source), without the need for specifying the source twice.
6927 Special care is taken that section, page and footnote numbers do not interfere
6928 with the main document. For typesetting short verbatim phrases, a replacement
6929 for the @code{\\verb} command is also provided in the package, which can be
6930 used inside tables and moving arguments such as footnotes and section
6931 titles.")
6932 ;; No version of the GPL is specified.
6933 (license license:gpl3+)))
6934
6935 (define-public texlive-xypic
6936 (let ((template (simple-texlive-package
6937 "texlive-xypic"
6938 (list "/doc/generic/xypic/"
6939 "/dvips/xypic/xy389dict.pro"
6940 "/fonts/enc/dvips/xypic/"
6941 "/fonts/map/dvips/xypic/xypic.map"
6942
6943 "/fonts/source/public/xypic/"
6944 "/fonts/afm/public/xypic/"
6945 "/fonts/tfm/public/xypic/"
6946 "/fonts/type1/public/xypic/"
6947 "/tex/generic/xypic/")
6948 (base32
6949 "09b51bbm189xh7039h5n8nmab5nn2bybhh26qjn08763m80zdhjg")
6950 #:trivial? #t)))
6951 (package
6952 (inherit template)
6953 (arguments
6954 (substitute-keyword-arguments (package-arguments template)
6955 ((#:phases phases)
6956 `(modify-phases ,phases
6957 (delete 'reset-gzip-timestamps)))))
6958 (home-page "https://www.ctan.org/pkg/xypic")
6959 (synopsis "Flexible diagramming macros")
6960 (description "This is a package for typesetting a variety of graphs and
6961 diagrams with TeX. Xy-pic works with most formats (including LaTeX,
6962 AMS-LaTeX, AMS-TeX, and plain TeX). The distribution includes Michael Barr's
6963 @code{diag} package, which was previously distributed stand-alone.")
6964 (license license:gpl3+))))
6965
6966 (define-public texlive-fonts-xypic
6967 (deprecated-package "texlive-fonts-xypic" texlive-xypic))
6968
6969 (define-public texlive-generic-xypic
6970 (deprecated-package "texblive-generic-xypic" texlive-xypic))
6971
6972 (define-public texlive-bibtex
6973 (package
6974 (name "texlive-bibtex")
6975 (version (number->string %texlive-revision))
6976 (source
6977 (origin
6978 (method svn-fetch)
6979 (uri (svn-reference
6980 (url (string-append "svn://www.tug.org/texlive/tags/"
6981 %texlive-tag "/Master/texmf-dist/"
6982 "/bibtex"))
6983 (revision %texlive-revision)))
6984 (file-name (string-append name "-" version "-checkout"))
6985 (sha256
6986 (base32
6987 "1wijqq605cbhn2bdaryby3xpkwmnk9ixcrjn5zwlfrxbgfblzfmz"))))
6988 (build-system trivial-build-system)
6989 (arguments
6990 `(#:modules ((guix build utils))
6991 #:builder
6992 (begin
6993 (use-modules (guix build utils))
6994 (let ((target (string-append (assoc-ref %outputs "out")
6995 "/share/texmf-dist/bibtex")))
6996 (mkdir-p target)
6997 (copy-recursively (assoc-ref %build-inputs "source") target)
6998 #t))))
6999 (home-page "https://www.ctan.org/pkg/bibtex")
7000 (synopsis "Process bibliographies for LaTeX")
7001 (description
7002 "BibTeX allows the user to store his citation data in generic form, while
7003 printing citations in a document in the form specified by a BibTeX style, to
7004 be specified in the document itself (one often needs a LaTeX citation-style
7005 package, such as @command{natbib} as well).")
7006 (license license:knuth)))
7007
7008 (define-public texlive-charter
7009 (package
7010 (inherit (simple-texlive-package
7011 "texlive-charter"
7012 (list "/doc/fonts/charter/readme.charter"
7013 "/fonts/afm/bitstrea/charter/"
7014 "/fonts/tfm/bitstrea/charter/"
7015 "/fonts/type1/bitstrea/charter/"
7016 "/fonts/vf/bitstrea/charter/")
7017 (base32
7018 "09l5ymgz48s3hyn776l01g3isk3dnhrj1vdavdw4qq4kfxxpqdn9")
7019 #:trivial? #t))
7020 (home-page "https://www.ctan.org/pkg/charter")
7021 (synopsis "Charter fonts for TeX")
7022 (description "This package provides a copy of the Charter Type-1 fonts
7023 which Bitstream contributed to the X consortium, renamed for use with TeX.
7024 Support for use with LaTeX is available in @code{freenfss}, part of
7025 @command{psnfss}. ")
7026 (license (license:non-copyleft
7027 "http://mirrors.ctan.org/fonts/charter/readme.charter"))))
7028
7029 (define-public texlive-fonts-charter
7030 (deprecated-package "texlive-fonts-charter" texlive-charter))
7031
7032 (define-public texlive-context-base
7033 (package
7034 (name "texlive-context-base")
7035 (version (number->string %texlive-revision))
7036 (source (origin
7037 (method svn-fetch)
7038 (uri (svn-reference
7039 (url (string-append "svn://www.tug.org/texlive/tags/"
7040 %texlive-tag "/Master/texmf-dist/"
7041 "/tex/context/base"))
7042 (revision %texlive-revision)))
7043 (file-name (string-append name "-" version "-checkout"))
7044 (sha256
7045 (base32
7046 "0d7d74giz5knvj4rj6mbzd6c05mwg9jrxab86jxdqbc3jy7cl4kz"))))
7047 (build-system trivial-build-system)
7048 (arguments
7049 `(#:modules ((guix build utils))
7050 #:builder
7051 (begin
7052 (use-modules (guix build utils))
7053 (let ((target (string-append (assoc-ref %outputs "out")
7054 "/share/texmf-dist/tex/context/case")))
7055 (mkdir-p target)
7056 (copy-recursively (assoc-ref %build-inputs "source") target)
7057 #t))))
7058 (home-page "https://www.ctan.org/pkg/context")
7059 (synopsis "Full featured, parameter driven macro package for TeX")
7060 (description "A full featured, parameter driven macro package, which fully
7061 supports advanced interactive documents. See the ConTeXt garden for a wealth
7062 of support information.")
7063 (license license:gpl2+)))
7064
7065 (define-public texlive-beamer
7066 (package
7067 (inherit (simple-texlive-package
7068 "texlive-beamer"
7069 (list "/doc/latex/beamer/"
7070 "/tex/latex/beamer/")
7071 (base32
7072 "1fqzbkmw2kfxihab8j4dadc3v68xap6v2ghpp2064fna47xlwy1c")
7073 #:trivial? #t))
7074 (propagated-inputs
7075 `(("texlive-latex-hyperref" ,texlive-latex-hyperref)
7076 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
7077 ("texlive-latex-etoolbox" ,texlive-latex-etoolbox)
7078 ("texlive-latex-pgf" ,texlive-latex-pgf)))
7079 (home-page "https://www.ctan.org/pkg/beamer")
7080 (synopsis "LaTeX class for producing presentations and slides")
7081 (description "The beamer LaTeX class can be used for producing slides.
7082 The class works in both PostScript and direct PDF output modes, using the
7083 @code{pgf} graphics system for visual effects. Content is created in the
7084 @code{frame} environment, and each frame can be made up of a number of slides
7085 using a simple notation for specifying material to appear on each slide within
7086 a frame. Short versions of title, authors, institute can also be specified as
7087 optional parameters. Whole frame graphics are supported by plain frames. The
7088 class supports @code{figure} and @code{table} environments, transparency
7089 effects, varying slide transitions and animations.")
7090 ;; Code is dual licensed under GPLv2+ or LPPL1.3c+; documentation is
7091 ;; dual-licensed under either FDLv1.3+ or LPPL1.3c+.
7092 (license (list license:lppl1.3c+ license:gpl2+ license:fdl1.3+))))
7093
7094 (define-public texlive-latex-beamer
7095 (deprecated-package "texlive-latex-beamer" texlive-beamer))
7096
7097 (define-public texlive-latex-xmpincl
7098 (package
7099 (name "texlive-latex-xmpincl")
7100 (version (number->string %texlive-revision))
7101 (source
7102 (origin
7103 (method svn-fetch)
7104 (uri (texlive-ref "latex" "xmpincl"))
7105 (file-name (string-append name "-" version "-checkout"))
7106 (sha256
7107 (base32
7108 "0lq3dfb4fsw955gjwllnk7cg00ciq5mva64mlpbva6g2jz117734"))))
7109 (build-system texlive-build-system)
7110 (arguments '(#:tex-directory "latex/xmpincl"))
7111 (home-page "http://www.ctan.org/pkg/xmpincl")
7112 (synopsis "Include eXtensible Metadata Platform data in pdfLaTeX")
7113 (description
7114 "The XMP (eXtensible Metadata platform) is a framework to add metadata to
7115 digital material to enhance the workflow in publication. The essence is that
7116 the metadata is stored in an XML file, and this XML stream is then embedded in
7117 the file to which it applies.")
7118 (license license:gpl3+)))
7119
7120 (define-public texlive-latex-pdfx
7121 (package
7122 (name "texlive-latex-pdfx")
7123 (version (number->string %texlive-revision))
7124 (source
7125 (origin
7126 (method svn-fetch)
7127 (uri (texlive-ref "latex" "pdfx"))
7128 (file-name (string-append name "-" version "-checkout"))
7129 (sha256
7130 (base32
7131 "18294h0cr05fs424m3x6aq24z5hf5zmiflalkj4kvpmsyyqqsj74"))))
7132 (build-system texlive-build-system)
7133 (arguments
7134 '(#:tex-directory "latex/pdfx"
7135 #:phases
7136 (modify-phases %standard-phases
7137 (add-after 'unpack 'fix-encoding
7138 (lambda _
7139 (substitute* "pdfx.dtx"
7140 ((" .+umaczy") "umaczy"))
7141 #t))
7142 (add-before 'install 'install-tex-files
7143 (lambda* (#:key inputs outputs #:allow-other-keys)
7144 (let ((target (string-append (assoc-ref outputs "out")
7145 "/share/texmf-dist/tex/latex/pdfx")))
7146 (mkdir-p target)
7147 (copy-recursively (assoc-ref inputs "texlive-tex-pdfx") target)
7148 ;; Install the generated version in the "install" phase.
7149 (delete-file (string-append target "/pdfx.sty"))
7150 #t))))))
7151 (propagated-inputs
7152 `(("texlive-generic-pdftex" ,texlive-generic-pdftex)))
7153 (native-inputs
7154 `(("texlive-tex-pdfx"
7155 ,(origin
7156 (method svn-fetch)
7157 (uri (svn-reference
7158 (url (string-append "svn://www.tug.org/texlive/tags/"
7159 %texlive-tag "/Master/texmf-dist/"
7160 "/tex/latex/pdfx"))
7161 (revision %texlive-revision)))
7162 (file-name (string-append "texlive-tex-latex-pdfx-" version "-checkout"))
7163 (sha256
7164 (base32
7165 "171ffvpkj2fab4ljcxv3l6l5c8ga8zavdhmhfq07id8zyyr619ip"))))))
7166 (home-page "https://www.ctan.org/pkg/pdfx")
7167 (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX")
7168 (description
7169 "This package helps LaTeX users to create PDF/X, PDF/A and other
7170 standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX.")
7171 (license license:lppl1.2+)))
7172
7173 (define-public texlive-ydoc
7174 (let ((template (simple-texlive-package
7175 "texlive-ydoc"
7176 (list "/doc/latex/ydoc/"
7177 "/source/latex/ydoc/")
7178 (base32
7179 "0ckcpy1b8v1fk3qc8qkxgiag2wc0qzxm6bgksv000m4m1hsi2g8b")
7180 #:trivial? #f)))
7181 (package
7182 (inherit template)
7183 (outputs '("out" "doc"))
7184 (arguments
7185 (substitute-keyword-arguments (package-arguments template)
7186 ((#:tex-directory _ #t)
7187 "latex/ydoc")
7188 ((#:build-targets _ #t)
7189 ''("ydoc.dtx"))
7190 ((#:phases phases)
7191 `(modify-phases ,phases
7192 (add-after 'unpack 'chdir
7193 (lambda _ (chdir "source/latex/ydoc") #t))
7194 (add-after 'copy-files 'move-files
7195 (lambda* (#:key outputs #:allow-other-keys)
7196 (let* ((share (string-append (assoc-ref outputs "out")
7197 "/share/texmf-dist"))
7198 (target (string-append share "/tex/generic/ydoc"))
7199 (doc (string-append (assoc-ref outputs "doc")
7200 "/share/texmf-dist/doc") ))
7201 (mkdir-p target)
7202 (for-each
7203 (lambda (file)
7204 (rename-file (string-append share "/tex/latex/ydoc/" file)
7205 (string-append target "/" file)))
7206 '("ydocincl.tex" "ydocstrip.tex"))
7207 (mkdir-p doc)
7208 (rename-file (string-append share "/doc") doc)
7209 #t)))))))
7210 (home-page "http://www.ctan.org/pkg/ydoc")
7211 (synopsis "Macros for documentation of LaTeX classes and packages")
7212 (description "The package provides macros and environments to document
7213 LaTeX packages and classes. It is an (as yet unfinished) alternative to the
7214 @code{ltxdoc} class and the @code{doc} or @code{xdoc} packages. The aim is to
7215 provide a different layout and more modern styles (using the @code{xcolor},
7216 @code{hyperref} packages, etc.) This is an alpha release, and should probably
7217 not (yet) be used with other packages, since the implementation might
7218 change.")
7219 (license license:lppl1.3+))))
7220
7221 (define-public texlive-pstricks
7222 (let ((template (simple-texlive-package
7223 "texlive-pstricks"
7224 (list "/doc/generic/pstricks/"
7225 "/dvips/pstricks/"
7226 "/tex/generic/pstricks/"
7227 "/tex/latex/pstricks/")
7228 (base32
7229 "0sdxdd0qi4sccw9il7d4s7jivs24pq99cdzfnrf0gkqjb1y8s7cl")
7230 #:trivial? #t)))
7231 (package
7232 (inherit template)
7233 (arguments
7234 (substitute-keyword-arguments (package-arguments template)
7235 ((#:phases phases)
7236 `(modify-phases ,phases
7237 (delete 'reset-gzip-timestamps)))))
7238 (home-page "http://www.ctan.org/pkg/pstricks")
7239 (synopsis "PostScript macros for TeX")
7240 (description "PSTricks offers an extensive collection of macros for
7241 generating PostScript that is usable with most TeX macro formats, including
7242 Plain TeX, LaTeX, AMS-TeX, and AMS-LaTeX. Included are macros for colour,
7243 graphics, pie charts, rotation, trees and overlays. It has many special
7244 features, including a wide variety of graphics (picture drawing) macros, with
7245 a flexible interface and with colour support. There are macros for colouring
7246 or shading the cells of tables.")
7247 (license license:lppl1.3+))))
7248
7249 (define-public texlive-pst-text
7250 (let ((template (simple-texlive-package
7251 "texlive-pst-text"
7252 (list "/doc/generic/pst-text/"
7253 "/dvips/pst-text/pst-text.pro"
7254 "/tex/generic/pst-text/"
7255 "/tex/latex/pst-text/")
7256 (base32
7257 "146fpzd1xlqi94q5r48z8ni8qww713yh6nwkbr9pw27mjrqdadb9")
7258 #:trivial? #t)))
7259 (package
7260 (inherit template)
7261 (propagated-inputs
7262 `(("texlive-pstricks" ,texlive-pstricks)))
7263 (home-page "http://www.ctan.org/pkg/pst-text")
7264 (synopsis "Text and character manipulation in PSTricks")
7265 (description "Pst-text is a PSTricks based package for plotting text along
7266 a different path and manipulating characters. It includes the functionality
7267 of the old package @code{pst-char}.")
7268 (license license:lppl))))
7269
7270 (define-public texlive-marginnote
7271 (let ((template (simple-texlive-package
7272 "texlive-marginnote"
7273 (list "/source/latex/marginnote/marginnote.dtx")
7274 (base32
7275 "1vj1k8xm11gjdfj60as42d8lsv3dbzrm5dlgqcfk89d9dzm3k39j"))))
7276 (package
7277 (inherit template)
7278 (home-page "http://www.ctan.org/pkg/marginnote")
7279 (arguments
7280 (substitute-keyword-arguments (package-arguments template)
7281 ((#:tex-directory _ '())
7282 "latex/marginnote")
7283 ((#:build-targets _ '())
7284 ''("marginnote.dtx"))
7285 ((#:phases phases)
7286 `(modify-phases ,phases
7287 (add-after 'unpack 'chdir
7288 (lambda _ (chdir "source/latex/marginnote") #t))))))
7289 (synopsis "Notes in the margin")
7290 (description "This package provides the command @code{\\marginnote} that
7291 may be used instead of @code{\\marginpar} at almost every place where
7292 @code{\\marginpar} cannot be used, e.g., inside floats, footnotes, or in
7293 frames made with the @code{framed} package.")
7294 (license license:lppl1.3c+))))
7295
7296 (define-public texlive-iftex
7297 (let ((template (simple-texlive-package
7298 "texlive-iftex"
7299 (list "/doc/generic/iftex/"
7300 "/tex/generic/iftex/iftex.sty")
7301 (base32
7302 "089zvw31gby150n1k0zdk2c0q97pgbqs46phxydaqil64b55nnl7")
7303 #:trivial? #t)))
7304 (package
7305 (inherit template)
7306 (home-page "http://www.ctan.org/pkg/iftex")
7307 (synopsis "Determine the currently used TeX engine")
7308 (description "This package, which works both for Plain TeX and for
7309 LaTeX, defines the @code{\\ifPDFTeX}, @code{\\ifXeTeX}, and @code{\\ifLuaTeX}
7310 conditionals for testing which engine is being used for typesetting. The
7311 package also provides the @code{\\RequirePDFTeX}, @code{\\RequireXeTeX}, and
7312 @code{\\RequireLuaTeX} commands which throw an error if pdfTeX, XeTeX or
7313 LuaTeX (respectively) is not the engine in use.")
7314 (license license:lppl1.3+))))
7315
7316 (define-public texlive-tools
7317 (let ((template (simple-texlive-package
7318 "texlive-tools"
7319 (list "/doc/latex/tools/"
7320 "/source/latex/tools/")
7321 (base32
7322 "1ivhij7171wvrgcjn4wah84wxwpd21d0chh3zxab4pj067c8d0mh"))))
7323 (package
7324 (inherit template)
7325 (arguments
7326 (substitute-keyword-arguments (package-arguments template)
7327 ((#:tex-directory _ '())
7328 "latex/tools")
7329 ((#:build-targets _ '())
7330 ''("tools.ins"))
7331 ((#:phases phases)
7332 `(modify-phases ,phases
7333 (add-after 'unpack 'chdir
7334 (lambda _ (chdir "source/latex/tools") #t))))))
7335 (home-page "https://www.ctan.org/tex-archive/macros/latex/required/tools/")
7336 (synopsis "LaTeX standard tools bundle")
7337 (description "This package provides a collection of simple tools that
7338 are part of the LaTeX required tools distribution, comprising the packages:
7339 @code{afterpage}, @code{array}, @code{bm}, @code{calc}, @code{dcolumn},
7340 @code{delarray}, @code{enumerate}, @code{fileerr}, @code{fontsmpl},
7341 @code{ftnright}, @code{hhline}, @code{indentfirst}, @code{layout},
7342 @code{longtable}, @code{multicol}, @code{rawfonts}, @code{showkeys},
7343 @code{somedefs}, @code{tabularx}, @code{theorem}, @code{trace},
7344 @code{varioref}, @code{verbatim}, @code{xr}, and @code{xspace}.")
7345 (license license:lppl1.3+))))
7346
7347 (define-public texlive-latex-xkeyval
7348 (package
7349 (name "texlive-latex-xkeyval")
7350 (version (number->string %texlive-revision))
7351 (source (origin
7352 (method svn-fetch)
7353 (uri (texlive-ref "latex" "xkeyval"))
7354 (file-name (string-append name "-" version "-checkout"))
7355 (sha256
7356 (base32
7357 "0wancavix39j240pd8m9cgmwsijwx6jd6n54v8wg0x2rk5m44myp"))))
7358 (build-system texlive-build-system)
7359 (arguments
7360 '(#:tex-directory "latex/xkeyval"
7361 #:build-targets '("xkeyval.dtx")
7362 #:tex-format "latex" ; won't build with luatex
7363 #:phases
7364 (modify-phases %standard-phases
7365 ;; This package cannot be built out of tree as it expects to find
7366 ;; built files in the working directory.
7367 (add-before 'build 'fix-build
7368 (lambda _
7369 (setenv "TEXINPUTS"
7370 (string-append (getcwd) "/build:"))
7371 (substitute* "xkeyval.dtx"
7372 (("usepackage\\{xcolor\\}")
7373 "usepackage[dvips]{xcolor}"))
7374 #t))
7375 ;; FIXME: We don't have a package for this font yet.
7376 (add-after 'unpack 'remove-dependency-on-fourier
7377 (lambda _
7378 (substitute* "xkeyval.dtx"
7379 (("\\\\usepackage\\{fourier\\}") ""))
7380 #t))
7381 (add-after 'install 'move-files
7382 (lambda* (#:key outputs #:allow-other-keys)
7383 (let* ((out (assoc-ref outputs "out"))
7384 (share (string-append out "/share/texmf-dist"))
7385 (source (string-append share "/tex/latex/xkeyval/"))
7386 (target (string-append share "/tex/generic/xkeyval/")))
7387 (mkdir-p target)
7388 (for-each (lambda (file)
7389 (rename-file (string-append source file)
7390 (string-append target file)))
7391 '("keyval.tex"
7392 "pst-xkey.tex"
7393 "xkeyval.tex"
7394 "xkvex1.tex"
7395 "xkvex2.tex"
7396 "xkvex3.tex"
7397 "xkvex4.tex"
7398 "xkvtxhdr.tex"
7399 "xkvutils.tex"))
7400 #t))))))
7401 (native-inputs
7402 `(("texlive-latex-base" ,texlive-latex-base)
7403 ("texlive-cm" ,texlive-cm)
7404 ("texlive-lm" ,texlive-lm)
7405 ("texlive-url" ,texlive-url)
7406 ("texlive-graphics-def" ,texlive-graphics-def)
7407 ("texlive-xcolor" ,texlive-xcolor)
7408 ("texlive-latex-footmisc" ,texlive-latex-footmisc)
7409 ("texlive-latex-listings" ,texlive-latex-listings)
7410 ("texlive-iftex" ,texlive-iftex)
7411 ("texlive-pstricks" ,texlive-pstricks)
7412 ("texlive-pst-text" ,texlive-pst-text)
7413 ("texlive-tools" ,texlive-tools)
7414 ("texlive-latex-pgf" ,texlive-latex-pgf)))
7415 (home-page "http://www.ctan.org/pkg/xkeyval")
7416 (synopsis "Extension of the keyval package")
7417 (description
7418 "This package is an extension of the keyval package and offers additional
7419 macros for setting keys and declaring and setting class or package options.
7420 The package allows the programmer to specify a prefix to the name of the
7421 macros it defines for keys, and to define families of key definitions; these
7422 all help use in documents where several packages define their own sets of
7423 keys.")
7424 (license license:lppl1.3+)))
7425
7426 (define-public texlive-standalone
7427 (package
7428 (name "texlive-standalone")
7429 (version (number->string %texlive-revision))
7430 (source
7431 (origin
7432 (method svn-fetch)
7433 (uri (texlive-ref "latex" "standalone"))
7434 (file-name (string-append name "-" version "-checkout"))
7435 (sha256
7436 (base32
7437 "192ydxcn8ir96q8qwvnppksmqf5i0p50i0wz6iqazbwmh3dqxpx4"))))
7438 (build-system texlive-build-system)
7439 (arguments '(#:tex-directory "latex/standalone"))
7440 (propagated-inputs
7441 `(("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
7442 (native-inputs
7443 `(("texlive-ydoc" ,texlive-ydoc)))
7444 (home-page "http://www.ctan.org/pkg/standalone")
7445 (synopsis "Compile TeX pictures stand-alone or as part of a document")
7446 (description "A class and package is provided which allows TeX pictures or
7447 other TeX code to be compiled standalone or as part of a main document.
7448 Special support for pictures with beamer overlays is also provided. The
7449 package is used in the main document and skips extra preambles in sub-files.
7450 The class may be used to simplify the preamble in sub-files. By default the
7451 @code{preview} package is used to display the typeset code without margins.
7452 The behaviour in standalone mode may adjusted using a configuration file
7453 @code{standalone.cfg} to redefine the standalone environment.")
7454 (license license:lppl1.3+)))
7455
7456 (define-public texlive-siunitx
7457 (package
7458 (name "texlive-siunitx")
7459 (version (number->string %texlive-revision))
7460 (source (texlive-origin
7461 name version
7462 (list "/source/latex/siunitx/siunitx.dtx"
7463 "/doc/latex/siunitx/README.md")
7464 (base32
7465 "11kf6znkgw7y5qmw75qk6px6pqf57bwr53q0673zaiyq20lif96c")))
7466 (build-system texlive-build-system)
7467 (arguments
7468 '(#:tex-directory "latex/siunitx"
7469 #:build-targets '("siunitx.dtx")
7470 #:phases
7471 (modify-phases %standard-phases
7472 (add-after 'unpack 'chdir
7473 (lambda _ (chdir "source/latex/siunitx") #t)))))
7474 (propagated-inputs
7475 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)
7476 ("texlive-latex-l3packages" ,texlive-latex-l3packages)))
7477 (home-page "http://www.ctan.org/pkg/siunitx")
7478 (synopsis "Comprehensive SI units package")
7479 (description
7480 "Typesetting values with units requires care to ensure that the combined
7481 mathematical meaning of the value plus unit combination is clear. In
7482 particular, the SI units system lays down a consistent set of units with rules
7483 on how they are to be used. However, different countries and publishers have
7484 differing conventions on the exact appearance of numbers (and units). A
7485 number of LaTeX packages have been developed to provide consistent application
7486 of the various rules. The @code{siunitx} package takes the best from the
7487 existing packages, and adds new features and a consistent interface. A number
7488 of new ideas have been incorporated, to fill gaps in the existing provision.
7489 The package also provides backward-compatibility with @code{SIunits},
7490 @code{sistyle}, @code{unitsdef} and @code{units}. The aim is to have one
7491 package to handle all of the possible unit-related needs of LaTeX users.")
7492 (license license:lppl1.3c)))
7493
7494 (define-public texlive-booktabs
7495 (package
7496 (name "texlive-booktabs")
7497 (version (number->string %texlive-revision))
7498 (source
7499 (origin
7500 (method svn-fetch)
7501 (uri (texlive-ref "latex" "booktabs"))
7502 (file-name (string-append name "-" version "-checkout"))
7503 (sha256
7504 (base32
7505 "1dqid48vgh25wmw8xzmx6x3pfgz1y9f0r8aza1yxq2mjny5yf68x"))))
7506 (build-system texlive-build-system)
7507 (arguments '(#:tex-directory "latex/booktabs"))
7508 (home-page "http://www.ctan.org/pkg/booktabs")
7509 (synopsis "Publication quality tables in LaTeX")
7510 (description
7511 "This package enhances the quality of tables in LaTeX, providing extra
7512 commands as well as behind-the-scenes optimisation. Guidelines are given as
7513 to what constitutes a good table in this context. The package offers
7514 @code{longtable} compatibility.")
7515 (license license:lppl1.3+)))
7516
7517 (define-public texlive-csquotes
7518 (let ((template (simple-texlive-package
7519 "texlive-csquotes"
7520 (list "/doc/latex/csquotes/"
7521 "/tex/latex/csquotes/")
7522 (base32
7523 "088gvi60d7sdl6fgg68fbz30fnpqc3yrpkx80sfw7vwgar3wm3av")
7524 #:trivial? #t)))
7525 (package
7526 (inherit template)
7527 (propagated-inputs
7528 `(("texlive-etoolbox" ,texlive-etoolbox)))
7529 (home-page "https://www.ctan.org/pkg/csquotes")
7530 (synopsis "Context sensitive quotation facilities")
7531 (description "This package provides advanced facilities for inline and
7532 display quotations. It is designed for a wide range of tasks ranging from the
7533 most simple applications to the more complex demands of formal quotations.
7534 The facilities include commands, environments, and user-definable 'smart
7535 quotes' which dynamically adjust to their context. Quotation marks are
7536 switched automatically if quotations are nested and they can be adjusted to
7537 the current language if the babel package is available. There are additional
7538 facilities designed to cope with the more specific demands of academic
7539 writing, especially in the humanities and the social sciences. All quote
7540 styles as well as the optional active quotes are freely configurable.")
7541 (license license:lppl1.3c+))))
7542
7543 (define-public texlive-logreq
7544 (let ((template (simple-texlive-package
7545 "texlive-logreq"
7546 (list "/doc/latex/logreq/"
7547 "/tex/latex/logreq/")
7548 (base32
7549 "13difccs3cxlkqlnhw286yb0c7mifrxfd402a2x5wwxv0m1kgfqd")
7550 #:trivial? #t)))
7551 (package
7552 (inherit template)
7553 (propagated-inputs
7554 `(("texlive-etoolbox" ,texlive-etoolbox)))
7555 (home-page "https://www.ctan.org/pkg/logreq")
7556 (synopsis "Support for automation of the LaTeX workflow")
7557 (description "The package helps to automate a typical LaTeX
7558 workflow that involves running LaTeX several times and running tools
7559 such as BibTeX or makeindex. It will log requests like \"please rerun
7560 LaTeX\" or \"please run BibTeX on file X\" to an external file in a
7561 machine-readable format. Compiler scripts and integrated LaTeX
7562 editing environments may parse this file to determine the next steps
7563 in the workflow. In sum, the package will do two things:
7564
7565 @enumerate
7566 @item
7567 enable package authors to use LaTeX commands to issue requests, and
7568
7569 @item
7570 collect all requests from all packages and write them to an external
7571 XML file.
7572 @end enumerate\n")
7573 (license license:lppl1.3c))))
7574
7575 (define-public texlive-biblatex
7576 (let ((template (simple-texlive-package
7577 "texlive-biblatex"
7578 (list "/doc/latex/biblatex/"
7579 "/tex/latex/biblatex/")
7580 (base32
7581 "11kzvny50iklzkamr0rqd5x532q8rxny1xhmf96jl8mzj1d2zmay")
7582 #:trivial? #t)))
7583 (package
7584 (inherit template)
7585 (propagated-inputs
7586 `(("texlive-logreq" ,texlive-logreq)
7587 ("texlive-url" ,texlive-url)))
7588 (home-page "https://www.ctan.org/pkg/biblatex")
7589 (synopsis "Sophisticated bibliographies in LaTeX")
7590 (description "BibLaTeX is a complete reimplementation of the
7591 bibliographic facilities provided by LaTeX. Formatting of the
7592 bibliography is entirely controlled by LaTeX macros, facilitating the
7593 design of new bibliography and citation styles. BibLaTeX uses its own
7594 data backend program \"biber\" to read and process the bibliographic
7595 data. With biber, the range of features provided by biblatex
7596 includes:
7597
7598 @enumerate
7599 @item
7600 full unicode support,
7601
7602 @item
7603 customisable bibliography labels,
7604
7605 @item
7606 multiple bibliographies in the same document, and
7607
7608 @item
7609 subdivided bibliographies, such as bibliographies per chapter or
7610 section.
7611 @end enumerate\n")
7612 (license license:lppl1.3c))))
7613
7614 (define-public texlive-todonotes
7615 (let ((template (simple-texlive-package
7616 "texlive-todonotes"
7617 (list "/doc/latex/todonotes/"
7618 "/tex/latex/todonotes/")
7619 (base32
7620 "0lvxsskz4bdfxhd59hf77kiq8k4nh2spb66vc6hifdgi21z8r8wm")
7621 #:trivial? #t)))
7622 (package
7623 (inherit template)
7624 (propagated-inputs
7625 `(("texlive-latex-pgf" ,texlive-latex-pgf)
7626 ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
7627 (home-page "http://www.ctan.org/pkg/todonotes")
7628 (synopsis "Marking things to do in a LaTeX document")
7629 (description "The @code{todonotes} package lets the user mark
7630 things to do later, in a simple and visually appealing way. The
7631 package takes several options to enable customization and finetuning
7632 of the visual appearance.")
7633 (license license:lppl1.3+))))
7634
7635 (define-public texlive-units
7636 (let ((template (simple-texlive-package
7637 "texlive-units"
7638 (list "/doc/latex/units/"
7639 "/tex/latex/units/")
7640 (base32
7641 "1ia1vzy8dp7pdvmawwnmh9lmkajmpnnh62dixrjpb6mnxq118bfd")
7642 #:trivial? #t)))
7643 (package
7644 (inherit template)
7645 (home-page "http://www.ctan.org/pkg/units")
7646 (synopsis "Typeset physical units and fractions")
7647 (description "@code{units} is a package for typesetting physical
7648 units in a standard-looking way. The package is based upon
7649 @code{nicefrac}, a package for typing fractions. @code{nicefrac} is
7650 included in the @code{units} bundle.")
7651 (license license:gpl3+))))
7652
7653 (define-public texlive-microtype
7654 (let ((template (simple-texlive-package
7655 "texlive-microtype"
7656 (list "/doc/latex/microtype/"
7657 "/tex/latex/microtype/")
7658 (base32
7659 "0xmjpzbj4nqmnl5m7xx1bshdk2c8n57rmbvn0j479ypj4wdlq9iy")
7660 #:trivial? #t)))
7661 (package
7662 (inherit template)
7663 (home-page "http://www.ctan.org/pkg/microtype")
7664 (synopsis "Subliminal refinements towards typographical perfection")
7665 (description "@code{microtype} provides a LaTeX interface to the
7666 micro-typographic extensions that were introduced by pdfTeX and have
7667 since propagated to XeTeX and LuaTeX: most prominently character
7668 protrusion and font expansion, the adjustment of kerning and interword
7669 spacing, hyphenatable letterspacing and the possibility to disable all
7670 or selected ligatures. These features may be applied to customisable
7671 sets of fonts. All micro-typographic aspects of the fonts can be
7672 configured in a straight-forward and flexible way. Settings for
7673 various fonts are provided. An alternative package
7674 @code{letterspace}, which also works with plain TeX, is included in
7675 the bundle.")
7676 (license license:lppl1.3c))))
7677
7678 (define-public texlive-caption
7679 (let ((template (simple-texlive-package
7680 "texlive-caption"
7681 (list "/doc/latex/caption/"
7682 "/tex/latex/caption/")
7683 (base32
7684 "09gmh8yjj9f5zak8r18g87w9p5jn7flnvmlhxmvdq6992mbdc6hg")
7685 #:trivial? #t)))
7686 (package
7687 (inherit template)
7688 (home-page "http://www.ctan.org/pkg/caption")
7689 (synopsis "Customising captions in floating environments")
7690 (description "The @code{caption} package provides many ways to
7691 customise the captions in floating environments like figure and table.
7692 Facilities include rotating captions, sideways captions and continued
7693 captions (for tables or figures that come in several parts). A list
7694 of compatibility notes, for other packages, is provided in the
7695 documentation. The package also provides the \"caption outside
7696 float\" facility, in the same way that simpler packages like
7697 @code{capt-ofcapt-of} do. The package supersedes @code{caption2}.
7698 Packages @code{bicaption}, @code{ltcaption}, @code{newfloat},
7699 @code{subcaption} and @code{totalcount} are included in the bundle.")
7700 (license license:lppl1.3+))))
7701
7702 (define-public texlive-symbol
7703 (package
7704 (inherit (simple-texlive-package
7705 "texlive-symbol"
7706 (list "/dvips/symbol/"
7707 "/fonts/afm/adobe/symbol/"
7708 "/fonts/afm/urw/symbol/"
7709 "/fonts/tfm/adobe/symbol/"
7710 "/fonts/tfm/urw35vf/symbol/"
7711 "/fonts/type1/urw/symbol/"
7712 "/fonts/map/dvips/symbol/"
7713 "/tex/latex/symbol/")
7714 (base32
7715 "01xiygb88xwi7rfvh1zrlxzi5pqb5fvylws5zzszg379iz4pyzwj")
7716 #:trivial? #t))
7717 (home-page "https://ctan.org/pkg/urw-base35")
7718 (synopsis "URW Base 35 font pack for LaTeX")
7719 (description "This package provides a drop-in replacement for the
7720 Symbol font from Adobe's basic set.")
7721 (license license:gpl2)))
7722
7723 (define-public texlive-mathpazo
7724 (package
7725 (inherit (simple-texlive-package
7726 "texlive-mathpazo"
7727 (list "/doc/latex/mathpazo/"
7728 "/fonts/afm/public/mathpazo/"
7729 "/fonts/tfm/public/mathpazo/"
7730 "/fonts/type1/public/mathpazo/"
7731 "/fonts/vf/public/mathpazo/")
7732 (base32
7733 "02in6hdnbnkz216mpy8g6fk3wmlls8nh5982vmg37vhbj77lk0rh")
7734 #:trivial? #t))
7735 (home-page "http://www.ctan.org/pkg/mathpazo")
7736 (synopsis "Fonts to typeset mathematics to match Palatino")
7737 (description "The Pazo Math fonts are a family of PostScript fonts
7738 suitable for typesetting mathematics in combination with the Palatino
7739 family of text fonts. The Pazo Math family is made up of five fonts
7740 provided in Adobe Type 1 format. These contain glyphs that are
7741 usually not available in Palatino and for which Computer Modern looks
7742 odd when combined with Palatino. These glyphs include the uppercase
7743 Greek alphabet in upright and slanted shapes, the lowercase Greek
7744 alphabet in slanted shape, several mathematical glyphs and the
7745 uppercase letters commonly used to represent various number sets.
7746 LaTeX macro support is provided in package @code{psnfss}.")
7747 (license license:gpl3+)))
7748
7749 (define-public texlive-fpl
7750 (package
7751 (inherit (simple-texlive-package
7752 "texlive-fpl"
7753 (list "/doc/fonts/fpl/"
7754 "/source/fonts/fpl/"
7755 "/fonts/afm/public/fpl/"
7756 "/fonts/type1/public/fpl/")
7757 (base32
7758 "02gkl516z9kn8xqs269pdkqn37sxm8ib0pcs43s4rs2rhyyl5z68")
7759 #:trivial? #t))
7760 (home-page "https://www.ctan.org/pkg/fpl")
7761 (synopsis "SC and OsF fonts for URW Palladio L")
7762 (description "The FPL Fonts provide a set of SC/OsF fonts for URW
7763 Palladio L which are compatible with the Palatino SC/OsF fonts from
7764 Adobe. LaTeX use is enabled by the mathpazo package, which is part of
7765 the @code{psnfss} distribution.")
7766 ;; Either LPPL version 1.0 or later, or GPL version 2
7767 (license (list license:lppl1.0+ license:gpl2))))
7768
7769 (define-public texlive-arev
7770 (package
7771 (inherit (simple-texlive-package
7772 "texlive-arev"
7773 (list "/doc/fonts/arev/"
7774 "/fonts/afm/public/arev/"
7775 "/fonts/enc/dvips/arev/"
7776 "/fonts/map/dvips/arev/"
7777 "/fonts/tfm/public/arev/"
7778 "/fonts/type1/public/arev/"
7779 "/fonts/vf/public/arev/"
7780 "/tex/latex/arev/")
7781 (base32
7782 "15wkgc48r52mjpymv6l7j9bl99kwxbvg3g1mi3qyq7nfm799dkxy")
7783 #:trivial? #t))
7784 (home-page "https://www.ctan.org/pkg/arev")
7785 (synopsis "Fonts and LaTeX support files for Arev Sans")
7786 (description "The @code{arev} package provides type 1 fonts,
7787 virtual fonts and LaTeX packages for using Arev Sans in both text and
7788 mathematics. Arev Sans is a derivative of Bitstream Vera Sans, adding
7789 support for Greek and Cyrillic characters and a few variant letters
7790 appropriate for mathematics. The font is primarily used in LaTeX for
7791 presentations, particularly when using a computer projector. Arev
7792 Sans has large x-height, \"open letters\", wide spacing and thick
7793 stems. The style is very similar to the SliTeX font lcmss but
7794 heavier. Arev is one of a very small number of sans-font mathematics
7795 support packages. Others are cmbright, hvmath and kerkis.")
7796 (license (list license:silofl1.1 ;for Arev Sans
7797 license:lppl1.3a ;for TeX support files
7798 license:gpl2)))) ;for ams-mdbch.sty