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