Merge branch 'master' into core-updates
[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 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 Ricardo Wurmus <rekado@elephly.net>
10 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
11 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
12 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
13 ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
14 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
15 ;;;
16 ;;; This file is part of GNU Guix.
17 ;;;
18 ;;; GNU Guix is free software; you can redistribute it and/or modify it
19 ;;; under the terms of the GNU General Public License as published by
20 ;;; the Free Software Foundation; either version 3 of the License, or (at
21 ;;; your option) any later version.
22 ;;;
23 ;;; GNU Guix is distributed in the hope that it will be useful, but
24 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
25 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 ;;; GNU General Public License for more details.
27 ;;;
28 ;;; You should have received a copy of the GNU General Public License
29 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30
31 (define-module (gnu packages tex)
32 #:use-module ((guix licenses) #:prefix license:)
33 #:use-module (guix packages)
34 #:use-module (guix download)
35 #:use-module (guix build-system cmake)
36 #:use-module (guix build-system gnu)
37 #:use-module (guix build-system perl)
38 #:use-module (guix build-system trivial)
39 #:use-module (guix build-system texlive)
40 #:use-module (guix utils)
41 #:use-module (guix git-download)
42 #:use-module (guix svn-download)
43 #:use-module (gnu packages)
44 #:use-module (gnu packages algebra)
45 #:use-module (gnu packages autotools)
46 #:use-module (gnu packages bash)
47 #:use-module (gnu packages boost)
48 #:use-module (gnu packages compression)
49 #:use-module (gnu packages fontutils)
50 #:use-module (gnu packages gd)
51 #:use-module (gnu packages ghostscript)
52 #:use-module (gnu packages graphviz)
53 #:use-module (gnu packages gtk)
54 #:use-module (gnu packages icu4c)
55 #:use-module (gnu packages image)
56 #:use-module (gnu packages libreoffice)
57 #:use-module (gnu packages lua)
58 #:use-module (gnu packages multiprecision)
59 #:use-module (gnu packages pdf)
60 #:use-module (gnu packages perl)
61 #:use-module (gnu packages perl-check)
62 #:use-module (gnu packages pkg-config)
63 #:use-module (gnu packages python)
64 #:use-module (gnu packages python-xyz)
65 #:use-module (gnu packages qt)
66 #:use-module (gnu packages ruby)
67 #:use-module (gnu packages shells)
68 #:use-module (gnu packages base)
69 #:use-module (gnu packages web)
70 #:use-module (gnu packages xml)
71 #:use-module (gnu packages xorg)
72 #:use-module (gnu packages xdisorg)
73 #:autoload (gnu packages texinfo) (texinfo)
74 #:use-module (ice-9 ftw)
75 #:use-module (ice-9 match)
76 #:use-module ((srfi srfi-1) #:hide (zip)))
77
78 (define texlive-extra-src
79 (origin
80 (method url-fetch)
81 (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-extra.tar.xz")
82 (sha256 (base32
83 "0a83kymxc8zmlxjb0y1gf6mx7qnf0hxffwkivwh5yh138y2rfhsv"))))
84
85 (define texlive-texmf-src
86 (origin
87 (method url-fetch)
88 (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-texmf.tar.xz")
89 (sha256 (base32
90 "1b8zigzg8raxkhhzphcmynf84rbdbj2ym2qkz24v8n0qx82zmqms"))))
91
92 (define-public texlive-bin
93 (package
94 (name "texlive-bin")
95 (version "20180414")
96 (source
97 (origin
98 (method url-fetch)
99 (uri (string-append "ftp://tug.org/historic/systems/texlive/2018/"
100 "texlive-" version "-source.tar.xz"))
101 (sha256
102 (base32
103 "0khyi6h015r2zfqgg0a44a2j7vmr1cy42knw7jbss237yvakc07y"))
104 (patches
105 (let ((arch-patch
106 (lambda (name revision hash)
107 (origin
108 (method url-fetch)
109 (uri (string-append "https://git.archlinux.org/svntogit/packages.git"
110 "/plain/trunk/" name "?h=packages/texlive-bin"
111 "&id=" revision))
112 (file-name (string-append "texlive-bin-" name))
113 (sha256 (base32 hash)))))
114 (arch-revision "c4b99aba97213ea554b6592a4916d3c7394a6d7b"))
115 (append (search-patches "texlive-bin-CVE-2018-17407.patch"
116 "texlive-bin-luatex-poppler-compat.patch")
117 (list
118 (arch-patch "pdftex-poppler0.76.patch" arch-revision
119 "15ypbh21amfsdxy7ca825x28lkmmkklxk1w660gpgvzdi7s70h0b")
120 (arch-patch "xetex-poppler-fixes.patch" arch-revision
121 "1jj1p5zkjljb7id9pjv29cw0cf8mwrgrh4ackgzz9c200vaqpsvx")))))))
122 (build-system gnu-build-system)
123 (inputs
124 `(("texlive-extra-src" ,texlive-extra-src)
125 ("cairo" ,cairo)
126 ("fontconfig" ,fontconfig)
127 ("fontforge" ,fontforge)
128 ("freetype" ,freetype)
129 ("gd" ,gd)
130 ("gmp" ,gmp)
131 ("ghostscript" ,ghostscript)
132 ("graphite2" ,graphite2)
133 ("harfbuzz" ,harfbuzz)
134 ("icu4c" ,icu4c)
135 ("libpaper" ,libpaper)
136 ("libpng" ,libpng)
137 ("libxaw" ,libxaw)
138 ("libxt" ,libxt)
139 ("mpfr" ,mpfr)
140 ("perl" ,perl)
141 ("pixman" ,pixman)
142 ("poppler" ,poppler)
143 ("potrace" ,potrace)
144 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
145 ("ruby" ,ruby)
146 ("tcsh" ,tcsh)
147 ("teckit" ,teckit)
148 ("zlib" ,zlib)
149 ("zziplib" ,zziplib)))
150 (native-inputs
151 `(("pkg-config" ,pkg-config)))
152 (arguments
153 `(#:out-of-source? #t
154 #:configure-flags
155 `("--disable-native-texlive-build"
156 "--with-system-cairo"
157 "--with-system-freetype2"
158 "--with-system-gd"
159 "--with-system-gmp"
160 "--with-system-graphite2"
161 "--with-system-harfbuzz"
162 "--with-system-icu"
163 "--with-system-libgs"
164 "--with-system-libpaper"
165 "--with-system-libpng"
166 "--with-system-mpfr"
167 "--with-system-pixman"
168 "--with-system-poppler"
169 "--with-system-potrace"
170 "--with-system-teckit"
171 "--with-system-xpdf"
172 "--with-system-zlib"
173 "--with-system-zziplib")
174
175 ;; Disable tests on mips64/aarch64 to cope with a failure of luajiterr.test.
176 ;; XXX FIXME fix luajit properly on mips64 and aarch64.
177 #:tests? ,(let ((s (or (%current-target-system)
178 (%current-system))))
179 (not (or (string-prefix? "aarch64" s)
180 (string-prefix? "mips64" s))))
181 #:phases
182 (modify-phases %standard-phases
183 (add-after 'unpack 'configure-ghostscript-executable
184 ;; ps2eps.pl uses the "gswin32c" ghostscript executable on Windows,
185 ;; and the "gs" ghostscript executable on Unix. It detects Unix by
186 ;; checking for the existence of the /usr/bin directory. Since
187 ;; Guix System does not have /usr/bin, it is also detected as Windows.
188 (lambda* (#:key inputs #:allow-other-keys)
189 (substitute* "utils/ps2eps/ps2eps-src/bin/ps2eps.pl"
190 (("gswin32c") "gs"))
191 (substitute* "texk/texlive/linked_scripts/epstopdf/epstopdf.pl"
192 (("\"gs\"")
193 (string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\"")))
194 #t))
195 (add-after 'unpack 'use-code-for-new-poppler
196 (lambda _
197 (copy-file "texk/web2c/pdftexdir/pdftoepdf-poppler0.76.0.cc"
198 "texk/web2c/pdftexdir/pdftoepdf.cc")
199 (copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.76.0.cc"
200 "texk/web2c/pdftexdir/pdftosrc.cc")
201 #t))
202 (add-after 'use-code-for-new-poppler 'use-code-for-even-newer-poppler
203 (lambda _
204 ;; Adjust for deprecated types in Poppler 0.73 and later.
205 (substitute* (append
206 (find-files "texk/web2c/luatexdir/" "\\.(cc|w)$")
207 '("texk/web2c/pdftexdir/pdftosrc.cc"))
208 (("GBool") "bool")
209 (("gFalse") "false")
210 (("gTrue") "true")
211 (("getCString") "c_str")
212 (("Guint") "unsigned int")
213 (("Guchar") "unsigned char"))
214 #t))
215 (add-after 'unpack 'disable-failing-test
216 (lambda _
217 ;; FIXME: This test fails on 32-bit architectures since Glibc 2.28:
218 ;; <https://bugzilla.redhat.com/show_bug.cgi?id=1631847>.
219 (substitute* "texk/web2c/omegafonts/check.test"
220 (("^\\./omfonts -ofm2opl \\$srcdir/tests/check tests/xcheck \\|\\| exit 1")
221 "./omfonts -ofm2opl $srcdir/tests/check tests/xcheck || exit 77"))
222 #t))
223 (add-after 'install 'postint
224 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
225 (let* ((out (assoc-ref outputs "out"))
226 (share (string-append out "/share"))
227 (texlive-extra (assoc-ref inputs "texlive-extra-src"))
228 (unpack (assoc-ref %standard-phases 'unpack))
229 (patch-source-shebangs
230 (assoc-ref %standard-phases 'patch-source-shebangs)))
231 (substitute* (string-append share "/texmf-dist/web2c/texmf.cnf")
232 ;; Don't truncate lines.
233 (("^error_line = .*$") "error_line = 254\n")
234 (("^half_error_line = .*$") "half_error_line = 238\n")
235 (("^max_print_line = .*$") "max_print_line = 1000\n"))
236 ;; Create symbolic links for the latex variants and their
237 ;; man pages.
238 (with-directory-excursion (string-append out "/bin/")
239 (for-each symlink
240 '("pdftex" "pdftex" "xetex" "luatex")
241 '("latex" "pdflatex" "xelatex" "lualatex")))
242 (with-directory-excursion (string-append share "/man/man1/")
243 (symlink "luatex.1" "lualatex.1"))
244 ;; Unpack texlive-extra and install tlpkg.
245 (mkdir "texlive-extra")
246 (with-directory-excursion "texlive-extra"
247 (apply unpack (list #:source texlive-extra))
248 (apply patch-source-shebangs (list #:source texlive-extra))
249 (invoke "mv" "tlpkg" share))
250 ;; texlua shebangs are not patched by the patch-source-shebangs
251 ;; phase because the texlua executable does not exist at that
252 ;; time.
253 (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))
254 (with-directory-excursion out
255 (patch-source-shebangs))))))))
256 (native-search-paths
257 (list (search-path-specification
258 (variable "TEXMF")
259 (files '("share/texmf-dist"))
260 (separator #f))
261 (search-path-specification
262 (variable "TEXMFCNF")
263 (files '("share/texmf-dist/web2c"))
264 (separator #f))))
265 (synopsis "TeX Live, a package of the TeX typesetting system")
266 (description
267 "TeX Live provides a comprehensive TeX document production system.
268 It includes all the major TeX-related programs, macro packages, and fonts
269 that are free software, including support for many languages around the
270 world.
271
272 This package contains the binaries.")
273 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
274 (home-page "https://www.tug.org/texlive/")))
275
276 (define-public texlive-dvips
277 (package
278 (name "texlive-dvips")
279 (version (number->string %texlive-revision))
280 (source (origin
281 (method svn-fetch)
282 (uri (svn-reference
283 (url (string-append "svn://www.tug.org/texlive/tags/"
284 %texlive-tag "/Master/texmf-dist/"
285 "/dvips"))
286 (revision %texlive-revision)))
287 (file-name (string-append name "-" version "-checkout"))
288 (sha256
289 (base32
290 "1ky6wc173jhf0b33lhyb4r3bx1d4bmiqkn6y1hxn92kwjdzl42p7"))))
291 (build-system trivial-build-system)
292 (arguments
293 `(#:modules ((guix build utils))
294 #:builder
295 (begin
296 (use-modules (guix build utils))
297 (let* ((root (string-append (assoc-ref %outputs "out")
298 "/share/texmf-dist"))
299 (dvips (string-append root "/dvips"))
300 (maps (string-append root "/fonts/map/dvips"))
301 (encs (string-append root "/fonts/enc/dvips/base")))
302 (mkdir-p dvips)
303 (copy-recursively (assoc-ref %build-inputs "source") dvips)
304 (mkdir-p maps)
305 (copy-recursively (assoc-ref %build-inputs "dvips-font-maps") maps)
306 (mkdir-p encs)
307 (copy-recursively (assoc-ref %build-inputs "dvips-base-enc") encs)
308 #t))))
309 (native-inputs
310 `(("dvips-font-maps"
311 ,(origin
312 (method svn-fetch)
313 (uri (svn-reference
314 (url (string-append "svn://www.tug.org/texlive/tags/"
315 %texlive-tag "/Master/texmf-dist/"
316 "/fonts/map/dvips"))
317 (revision %texlive-revision)))
318 (file-name (string-append "dvips-font-maps-" version "-checkout"))
319 (sha256
320 (base32
321 "0nxvfbb5vsvakiw0iviicghdc2sxk05cj056ilqnpa62fffc36a6"))))
322 ("dvips-base-enc"
323 ,(origin
324 (method svn-fetch)
325 (uri (svn-reference
326 (url (string-append "svn://www.tug.org/texlive/tags/"
327 %texlive-tag "/Master/texmf-dist/"
328 "/fonts/enc/dvips/base"))
329 (revision %texlive-revision)))
330 (file-name (string-append "dvips-base-enc-" version "-checkout"))
331 (sha256
332 (base32
333 "1xnf6ms0h87r55kxik4vicwr1907scj789lhqflqns8svvsli5iy"))))))
334 (home-page "https://www.ctan.org/pkg/dvips")
335 (synopsis "DVI to PostScript drivers")
336 (description "This package provides files needed for converting DVI files
337 to PostScript.")
338 ;; Various free software licenses apply to individual files.
339 (license (list license:lppl1.3c+
340 license:expat
341 license:lgpl3+))))
342
343 (define-public texlive-generic-unicode-data
344 (package
345 (name "texlive-generic-unicode-data")
346 (version (number->string %texlive-revision))
347 (source (origin
348 (method svn-fetch)
349 (uri (svn-reference
350 (url (string-append "svn://www.tug.org/texlive/tags/"
351 %texlive-tag "/Master/texmf-dist/"
352 "/tex/generic/unicode-data"))
353 (revision %texlive-revision)))
354 (file-name (string-append name "-" version "-checkout"))
355 (sha256
356 (base32
357 "0r1v16jyfpz6dwqsgm6b9jcj4kf2pkzc9hg07s6fx9g8ba8qglih"))))
358 (build-system trivial-build-system)
359 (arguments
360 `(#:modules ((guix build utils))
361 #:builder
362 (begin
363 (use-modules (guix build utils))
364 (let ((target (string-append (assoc-ref %outputs "out")
365 "/share/texmf-dist/tex/generic/unicode-data")))
366 (mkdir-p target)
367 (copy-recursively (assoc-ref %build-inputs "source") target)
368 #t))))
369 (home-page "https://www.ctan.org/pkg/unicode-data")
370 (synopsis "Unicode data and loaders for TeX")
371 (description "This bundle provides generic access to Unicode Consortium
372 data for TeX use. It contains a set of text files provided by the Unicode
373 Consortium which are currently all from Unicode 8.0.0, with the exception of
374 @code{MathClass.txt} which is not currently part of the Unicode Character
375 Database. Accompanying these source data are generic TeX loader files
376 allowing this data to be used as part of TeX runs, in particular in building
377 format files. Currently there are two loader files: one for general character
378 set up and one for initializing XeTeX character classes as has been carried
379 out to date by @code{unicode-letters.tex}. ")
380 (license license:lppl1.3c+)))
381
382 (define-public texlive-generic-dehyph-exptl
383 (package
384 (name "texlive-generic-dehyph-exptl")
385 (version (number->string %texlive-revision))
386 (source (origin
387 (method svn-fetch)
388 (uri (svn-reference
389 (url (string-append "svn://www.tug.org/texlive/tags/"
390 %texlive-tag "/Master/texmf-dist/"
391 "/tex/generic/dehyph-exptl"))
392 (revision %texlive-revision)))
393 (file-name (string-append name "-" version "-checkout"))
394 (sha256
395 (base32
396 "03yj1di9py92drp6gpfva6q69vk2iixr79r7cp7ja570s3pr0m33"))))
397 (build-system trivial-build-system)
398 (arguments
399 `(#:modules ((guix build utils))
400 #:builder
401 (begin
402 (use-modules (guix build utils))
403 (let ((target (string-append (assoc-ref %outputs "out")
404 "/share/texmf-dist/tex/generic/dehyph-exptl")))
405 (mkdir-p target)
406 (copy-recursively (assoc-ref %build-inputs "source") target)
407 #t))))
408 (home-page "http://projekte.dante.de/Trennmuster/WebHome")
409 (synopsis "Hyphenation patterns for German")
410 (description "The package provides experimental hyphenation patterns for
411 the German language, covering both traditional and reformed orthography. The
412 patterns can be used with packages Babel and hyphsubst from the Oberdiek
413 bundle.")
414 ;; Hyphenation patterns are under the Expat license; documentation is
415 ;; under LPPL.
416 (license (list license:expat license:lppl))))
417
418 (define-public texlive-generic-tex-ini-files
419 (package
420 (name "texlive-generic-tex-ini-files")
421 (version (number->string %texlive-revision))
422 (source (origin
423 (method svn-fetch)
424 (uri (svn-reference
425 (url (string-append "svn://www.tug.org/texlive/tags/"
426 %texlive-tag "/Master/texmf-dist/"
427 "/tex/generic/tex-ini-files"))
428 (revision %texlive-revision)))
429 (file-name (string-append name "-" version "-checkout"))
430 (sha256
431 (base32
432 "1wh42n1lmzcvi3g6mm31nm3yd5ha5bl260xqc444jg1m9fdp3wz5"))))
433 (build-system trivial-build-system)
434 (arguments
435 `(#:modules ((guix build utils))
436 #:builder
437 (begin
438 (use-modules (guix build utils))
439 (let ((target (string-append (assoc-ref %outputs "out")
440 "/share/texmf-dist/tex/generic/tex-ini-files")))
441 (mkdir-p target)
442 (copy-recursively (assoc-ref %build-inputs "source") target)
443 #t))))
444 (home-page "https://www.ctan.org/pkg/tex-ini-files")
445 (synopsis "Files for creating TeX formats")
446 (description "This bundle provides a collection of model \".ini\" files
447 for creating TeX formats. These files are commonly used to introduced
448 distribution-dependent variations in formats. They are also used to
449 allow existing format source files to be used with newer engines, for example
450 to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.")
451 (license license:public-domain)))
452
453 (define-public texlive-generic-hyph-utf8
454 (package
455 (name "texlive-generic-hyph-utf8")
456 (version (number->string %texlive-revision))
457 (source (origin
458 (method svn-fetch)
459 (uri (svn-reference
460 (url (string-append "svn://www.tug.org/texlive/tags/"
461 %texlive-tag "/Master/texmf-dist/"
462 "/tex/generic/hyph-utf8"))
463 (revision %texlive-revision)))
464 (file-name (string-append name "-" version "-checkout"))
465 (sha256
466 (base32
467 "1alnn9cd60m2c12vym9f9q22ap1ngywxpkjl9dk472why44g1dmy"))))
468 (build-system trivial-build-system)
469 (arguments
470 `(#:modules ((guix build utils))
471 #:builder
472 (begin
473 (use-modules (guix build utils))
474 (let ((target (string-append (assoc-ref %outputs "out")
475 "/share/texmf-dist/tex/generic/hyph-utf8")))
476 (mkdir-p target)
477 (copy-recursively (assoc-ref %build-inputs "source") target)
478 #t))))
479 (home-page "https://ctan.org/pkg/hyph-utf8")
480 (synopsis "Hyphenation patterns expressed in UTF-8")
481 (description "Modern native UTF-8 engines such as XeTeX and LuaTeX need
482 hyphenation patterns in UTF-8 format, whereas older systems require
483 hyphenation patterns in the 8-bit encoding of the font in use (such encodings
484 are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1,
485 etc). The present package offers a collection of conversions of existing
486 patterns to UTF-8 format, together with converters for use with 8-bit fonts in
487 older systems. Since hyphenation patterns for Knuthian-style TeX systems are
488 only read at iniTeX time, it is hoped that the UTF-8 patterns, with their
489 converters, will completely supplant the older patterns.")
490 ;; Individual files each have their own license. Most of these files are
491 ;; independent hyphenation patterns.
492 (license (list license:lppl1.0+
493 license:lppl1.2+
494 license:lppl1.3
495 license:lppl1.3+
496 license:lppl1.3a+
497 license:lgpl2.1
498 license:lgpl2.1+
499 license:lgpl3+
500 license:gpl2+
501 license:gpl3+
502 license:mpl1.1
503 license:asl2.0
504 license:expat
505 license:bsd-3
506 license:cc0
507 license:public-domain
508 license:wtfpl2))))
509
510 (define-public texlive-metafont-base
511 (package
512 (name "texlive-metafont-base")
513 (version (number->string %texlive-revision))
514 (source (origin
515 (method svn-fetch)
516 (uri (svn-reference
517 (url (string-append "svn://www.tug.org/texlive/tags/"
518 %texlive-tag "/Master/texmf-dist/"
519 "/metafont"))
520 (revision %texlive-revision)))
521 (file-name (string-append name "-" version "-checkout"))
522 (sha256
523 (base32
524 "1yl4n8cn5xqk2nc22zgzq6ymd7bhm6xx1mz3azip7i3ki4bhb5q5"))))
525 (build-system gnu-build-system)
526 (arguments
527 `(#:tests? #f ; no test target
528 #:phases
529 (modify-phases %standard-phases
530 (delete 'configure)
531 (replace 'build
532 (lambda* (#:key inputs #:allow-other-keys)
533 (let ((cwd (getcwd)))
534 (setenv "MFINPUTS"
535 (string-append cwd "/base:"
536 cwd "/misc:"
537 cwd "/roex:"
538 cwd "/feynmf:"
539 cwd "/mfpic:"
540 cwd "/config")))
541 (mkdir "build")
542 (with-directory-excursion "build"
543 (invoke "inimf" "mf.mf"))))
544 (replace 'install
545 (lambda* (#:key outputs #:allow-other-keys)
546 (let* ((out (assoc-ref outputs "out"))
547 (base (string-append out "/share/texmf-dist/web2c"))
548 (mf (string-append out "/share/texmf-dist/metafont/base")))
549 (mkdir-p base)
550 (mkdir-p mf)
551 (install-file "build/mf.base" base)
552 (copy-recursively "base" mf)
553 #t))))))
554 (native-inputs
555 `(("texlive-bin" ,texlive-bin)))
556 (home-page "https://www.ctan.org/pkg/metafont")
557 (synopsis "Metafont base files")
558 (description "This package provides the Metafont base files needed to
559 build fonts using the Metafont system.")
560 (license license:knuth)))
561
562 (define-public texlive-tex-fontinst-base
563 (package
564 (name "texlive-tex-fontinst-base")
565 (version (number->string %texlive-revision))
566 (source (origin
567 (method svn-fetch)
568 (uri (svn-reference
569 (url (string-append "svn://www.tug.org/texlive/tags/"
570 %texlive-tag "/Master/texmf-dist/"
571 "/tex/fontinst/base"))
572 (revision %texlive-revision)))
573 (file-name (string-append name "-" version "-checkout"))
574 (sha256
575 (base32
576 "12gnb8hc45p47pqn31msvi4mpr3wxbbbf2k4xhmshjqykwzlx508"))))
577 (build-system trivial-build-system)
578 (arguments
579 `(#:modules ((guix build utils))
580 #:builder
581 (begin
582 (use-modules (guix build utils))
583 (let ((target (string-append (assoc-ref %outputs "out")
584 "/share/texmf-dist/tex/fontinst/base")))
585 (mkdir-p target)
586 (copy-recursively (assoc-ref %build-inputs "source") target)
587 #t))))
588 (home-page "https://www.ctan.org/pkg/fontinst")
589 (synopsis "Tools for converting and installing fonts for TeX and LaTeX")
590 (description "This package provides TeX macros for converting Adobe Font
591 Metric files to TeX metric and virtual font format. Fontinst helps mainly
592 with the number crunching and shovelling parts of font installation. This
593 means in practice that it creates a number of files which give the TeX
594 metrics (and related information) for a font family that TeX needs to do any
595 typesetting in these fonts.")
596 (license license:lppl1.1+)))
597
598 (define-public texlive-fontname
599 (package
600 (name "texlive-fontname")
601 (version (number->string %texlive-revision))
602 (source (origin
603 (method svn-fetch)
604 (uri (svn-reference
605 (url (string-append "svn://www.tug.org/texlive/tags/"
606 %texlive-tag "/Master/texmf-dist/"
607 "/fonts/map/fontname"))
608 (revision %texlive-revision)))
609 (file-name (string-append name "-" version "-checkout"))
610 (sha256
611 (base32
612 "05rbn7z30xawd3n6w7c3ijp2yc67ga220jgqmkla9pd9wx185rzq"))))
613 (build-system trivial-build-system)
614 (arguments
615 `(#:modules ((guix build utils))
616 #:builder
617 (begin
618 (use-modules (guix build utils))
619 (let ((target (string-append (assoc-ref %outputs "out")
620 "/share/texmf-dist/fonts/map/fontname")))
621 (mkdir-p target)
622 (copy-recursively (assoc-ref %build-inputs "source") target)
623 #t))))
624 (home-page "https://www.ctan.org/pkg/fontname")
625 (synopsis "Scheme for naming fonts in TeX")
626 (description "This is Fontname, a naming scheme for (the base part of)
627 external TeX font filenames. This makes at most eight-character names
628 from (almost) arbitrarily complex font names, thus helping portability of TeX
629 documents.")
630 (license license:public-domain)))
631
632 (define-public texlive-fonts-cm
633 (package
634 (name "texlive-fonts-cm")
635 (version (number->string %texlive-revision))
636 (source (origin
637 (method svn-fetch)
638 (uri (svn-reference
639 (url (string-append "svn://www.tug.org/texlive/tags/"
640 %texlive-tag "/Master/texmf-dist/"
641 "/fonts/source/public/cm"))
642 (revision %texlive-revision)))
643 (file-name (string-append name "-" version "-checkout"))
644 (sha256
645 (base32
646 "0vfjhidr9pha613h8mfhnpcpvld6ahdfb449918fpsfs93cppkyj"))))
647 (build-system gnu-build-system)
648 (arguments
649 `(#:modules ((guix build gnu-build-system)
650 (guix build utils)
651 (srfi srfi-1)
652 (srfi srfi-26))
653 #:tests? #f ; no tests
654 #:phases
655 (modify-phases %standard-phases
656 (delete 'configure)
657 (replace 'build
658 (lambda* (#:key inputs #:allow-other-keys)
659 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
660 ;; Tell mf where to find mf.base
661 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
662 ;; Tell mf where to look for source files
663 (setenv "MFINPUTS"
664 (string-append (getcwd) ":"
665 mf "/share/texmf-dist/metafont/base")))
666 (mkdir "build")
667 (mkdir-p "pk/ljfour/public/cm/dpi600")
668 (for-each (lambda (font)
669 (format #t "building font ~a\n" font)
670 (invoke "mf" "-progname=mf"
671 "-output-directory=build"
672 (string-append "\\"
673 "mode:=ljfour; "
674 "mag:=1+0/600; "
675 "batchmode; "
676 "input "
677 (basename font ".mf")))
678 (invoke "gftopk"
679 (string-append "build/"
680 (basename font ".mf") ".600gf")
681 (string-append "pk/ljfour/public/cm/dpi600/"
682 (basename font ".mf") ".pk")))
683 (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$"))
684 #t))
685 (replace 'install
686 (lambda* (#:key inputs outputs #:allow-other-keys)
687 (let* ((out (assoc-ref outputs "out"))
688 (fonts (string-append out "/share/texmf-dist/fonts/"))
689 (pk (string-append fonts "pk"))
690 (tfm (string-append fonts "tfm/public/cm"))
691 (mf (string-append fonts "source/public/cm"))
692 (type1 (string-append fonts "type1/public/amsfonts/cm")))
693 (for-each (cut install-file <> tfm)
694 (find-files "build" "\\.*"))
695 (for-each (cut install-file <> mf)
696 (find-files "." "\\.mf"))
697 (copy-recursively "pk" pk)
698 (mkdir-p type1)
699 (copy-recursively (assoc-ref inputs "cm-type1") type1)
700 #t))))))
701 (native-inputs
702 `(("texlive-bin" ,texlive-bin)
703 ("texlive-metafont-base" ,texlive-metafont-base)
704 ("cm-type1"
705 ,(origin
706 (method svn-fetch)
707 (uri (svn-reference
708 (url (string-append "svn://www.tug.org/texlive/tags/"
709 %texlive-tag "/Master/texmf-dist/"
710 "/fonts/type1/public/amsfonts/cm"))
711 (revision %texlive-revision)))
712 (file-name (string-append name "-type1-" version "-checkout"))
713 (sha256
714 (base32
715 "12jyl9jp3hidifa4l5pmi47p71d5mb5kj5rknxkygilix8yz2iy6"))))))
716 (home-page "https://www.ctan.org/pkg/cm")
717 (synopsis "Computer Modern fonts for TeX")
718 (description "This package provides the Computer Modern fonts by Donald
719 Knuth. The Computer Modern font family is a large collection of text,
720 display, and mathematical fonts in a range of styles, based on Monotype Modern
721 8A.")
722 (license license:knuth)))
723
724 (define-public texlive-fonts-cm-super
725 (package
726 (name "texlive-fonts-cm-super")
727 (version (number->string %texlive-revision))
728 (source (origin
729 (method svn-fetch)
730 (uri (svn-reference
731 (url (string-append "svn://www.tug.org/texlive/tags/"
732 %texlive-tag "/Master/texmf-dist/"
733 "/tex/latex/cm-super"))
734 (revision %texlive-revision)))
735 (file-name (string-append name "-" version "-checkout"))
736 (sha256
737 (base32
738 "0ybb4gi2rblzpb6wfzm2wk7dj3y2jnmkzsla7mz7g3zc12y4r2b9"))))
739 (build-system trivial-build-system)
740 (arguments
741 `(#:modules ((guix build utils)
742 (ice-9 match))
743 #:builder
744 (begin
745 (use-modules (guix build utils)
746 (ice-9 match))
747 (let ((root (string-append (assoc-ref %outputs "out")
748 "/share/texmf-dist/"))
749 (pkgs '(("source" . "tex/latex/cm-super")
750 ("cm-super-afm" . "fonts/afm/public/cm-super")
751 ("cm-super-type1" . "fonts/type1/public/cm-super")
752 ("cm-super-enc" . "fonts/enc/dvips/cm-super")
753 ("cm-super-map" . "fonts/map/dvips/cm-super")
754 ("cm-super-vtex" . "fonts/map/vtex/cm-super"))))
755 (for-each (match-lambda
756 ((pkg . dir)
757 (let ((target (string-append root dir)))
758 (mkdir-p target)
759 (copy-recursively (assoc-ref %build-inputs pkg)
760 target))))
761 pkgs)
762 #t))))
763 (native-inputs
764 `(("cm-super-vtex"
765 ,(origin
766 (method svn-fetch)
767 (uri (svn-reference
768 (url (string-append "svn://www.tug.org/texlive/tags/"
769 %texlive-tag "/Master/texmf-dist/"
770 "/fonts/map/vtex/cm-super"))
771 (revision %texlive-revision)))
772 (file-name (string-append name "-map-vtex-" version "-checkout"))
773 (sha256
774 (base32
775 "14c9allsgfv6za9wznz4cxqxwz5nsmj8rnwvxams8fhs5rvglxqi"))))
776 ("cm-super-afm"
777 ,(origin
778 (method svn-fetch)
779 (uri (svn-reference
780 (url (string-append "svn://www.tug.org/texlive/tags/"
781 %texlive-tag "/Master/texmf-dist/"
782 "/fonts/afm/public/cm-super"))
783 (revision %texlive-revision)))
784 (file-name (string-append name "-afm-" version "-checkout"))
785 (sha256
786 (base32
787 "048ih65f2nghdabdar2p957c4s2spgllmy2gxdscddwqpnmd26yn"))))
788 ("cm-super-type1"
789 ,(origin
790 (method svn-fetch)
791 (uri (svn-reference
792 (url (string-append "svn://www.tug.org/texlive/tags/"
793 %texlive-tag "/Master/texmf-dist/"
794 "/fonts/type1/public/cm-super"))
795 (revision %texlive-revision)))
796 (file-name (string-append name "-type1-" version "-checkout"))
797 (sha256
798 (base32
799 "1140swk3w2ka0y4zdsq6pdifrdanb281q71p5gngbbjxdxjxf4qx"))))
800 ("cm-super-map"
801 ,(origin
802 (method svn-fetch)
803 (uri (svn-reference
804 (url (string-append "svn://www.tug.org/texlive/tags/"
805 %texlive-tag "/Master/texmf-dist/"
806 "/fonts/map/dvips/cm-super"))
807 (revision %texlive-revision)))
808 (file-name (string-append name "-map-" version "-checkout"))
809 (sha256
810 (base32
811 "10r6xqbwf9wk3ylg7givwyrw1952zydc6p7fw29zjf8ijl0lndim"))))
812 ("cm-super-enc"
813 ,(origin
814 (method svn-fetch)
815 (uri (svn-reference
816 (url (string-append "svn://www.tug.org/texlive/tags/"
817 %texlive-tag "/Master/texmf-dist/"
818 "/fonts/enc/dvips/cm-super"))
819 (revision %texlive-revision)))
820 (file-name (string-append name "-enc-" version "-checkout"))
821 (sha256
822 (base32
823 "1pgksy96gfgyjxfhs2k04bgg7nr7i128y01kjcahr7n38080h4ij"))))))
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-lm
836 (package
837 (name "texlive-fonts-lm")
838 (version "2.004")
839 (source (origin
840 (method url-fetch)
841 (uri (string-append "http://www.gust.org.pl/projects/e-foundry/"
842 "latin-modern/download/lm" version "bas.zip"))
843 (sha256
844 (base32
845 "0z2s253y751m2ci5aw8nq0sf2kyg9hpimv2gyixkch9d07m2b9wp"))))
846 (build-system trivial-build-system)
847 (arguments
848 `(#:modules ((guix build utils))
849 #:builder
850 (begin
851 (use-modules (guix build utils))
852 (let ((root (string-append (assoc-ref %outputs "out")
853 "/share/texmf-dist/")))
854 (mkdir-p root)
855 (with-directory-excursion root
856 (invoke (string-append (assoc-ref %build-inputs "unzip")
857 "/bin/unzip")
858 (assoc-ref %build-inputs "source")))
859 #t))))
860 (native-inputs
861 `(("unzip" ,unzip)))
862 (home-page "http://www.gust.org.pl/projects/e-foundry/latin-modern/")
863 (synopsis "Latin Modern family of fonts")
864 (description "The Latin Modern fonts are derived from the famous Computer
865 Modern fonts designed by Donald E. Knuth and described in Volume E of his
866 Computers & Typesetting series.")
867 ;; The GUST font license (GFL) is legally identical to the LaTeX Project
868 ;; Public License (LPPL), version 1.3c or later, but comes with an
869 ;; additional but not legally binding clause.
870 (license license:lppl1.3c+)))
871
872 (define-public texlive-fonts-knuth-lib
873 (package
874 (name "texlive-fonts-knuth-lib")
875 (version (number->string %texlive-revision))
876 (source (origin
877 (method svn-fetch)
878 (uri (svn-reference
879 (url (string-append "svn://www.tug.org/texlive/tags/"
880 %texlive-tag "/Master/texmf-dist/"
881 "/fonts/source/public/knuth-lib"))
882 (revision %texlive-revision)))
883 (file-name (string-append name "-" version "-checkout"))
884 (sha256
885 (base32
886 "0in9aqyi8jkyf9d16z0li50z5fpwj1iwgwm83gmvwqcf7chfs04y"))))
887 (build-system gnu-build-system)
888 (arguments
889 `(#:modules ((guix build gnu-build-system)
890 (guix build utils)
891 (srfi srfi-26))
892 #:tests? #f ; no tests
893 #:phases
894 (modify-phases %standard-phases
895 (delete 'configure)
896 (replace 'build
897 (lambda* (#:key inputs #:allow-other-keys)
898 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
899 ;; Tell mf where to find mf.base
900 (setenv "MFBASES"
901 (string-append mf "/share/texmf-dist/web2c"))
902 ;; Tell mf where to look for source files
903 (setenv "MFINPUTS"
904 (string-append (getcwd) ":"
905 mf "/share/texmf-dist/metafont/base")))
906 (mkdir "build")
907 (for-each (lambda (font)
908 (format #t "building font ~a\n" font)
909 (invoke "mf" "-progname=mf"
910 "-output-directory=build"
911 (string-append "\\"
912 "mode:=ljfour; "
913 "mag:=1; "
914 "batchmode; "
915 "input " font)))
916 (find-files "." "(manfnt|logo.+)\\.mf$"))
917 #t))
918 (replace 'install
919 (lambda* (#:key outputs #:allow-other-keys)
920 (let* ((out (assoc-ref outputs "out"))
921 (tfm (string-append
922 out "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
923 (mf (string-append
924 out "/share/texmf-dist/fonts/source/public/knuth-lib")))
925 (for-each (cut install-file <> tfm)
926 (find-files "build" "\\.*"))
927 (for-each (cut install-file <> mf)
928 (find-files "." "\\.mf"))
929 #t))))))
930 (native-inputs
931 `(("texlive-bin" ,texlive-bin)
932 ("texlive-metafont-base" ,texlive-metafont-base)))
933 (home-page "https://www.ctan.org/pkg/knuth-lib")
934 (synopsis "Small library of METAFONT sources")
935 (description "This is a collection of core TeX and METAFONT macro files
936 from Donald Knuth, including the plain format, plain base, and the MF logo
937 fonts.")
938 (license license:knuth)))
939
940 (define-public texlive-fonts-latex
941 (package
942 (name "texlive-fonts-latex")
943 (version (number->string %texlive-revision))
944 (source (origin
945 (method svn-fetch)
946 (uri (svn-reference
947 (url (string-append "svn://www.tug.org/texlive/tags/"
948 %texlive-tag "/Master/texmf-dist/"
949 "/fonts/source/public/latex-fonts"))
950 (revision %texlive-revision)))
951 (file-name (string-append name "-" version "-checkout"))
952 (sha256
953 (base32
954 "0ypsm4xv9cw0jckk2qc7gi9hcmhf31mrg56pz3llyx3yd9vq2lps"))))
955 (build-system gnu-build-system)
956 (arguments
957 `(#:modules ((guix build gnu-build-system)
958 (guix build utils)
959 (srfi srfi-1)
960 (srfi srfi-26))
961 #:tests? #f ; no tests
962 #:phases
963 (modify-phases %standard-phases
964 (delete 'configure)
965 (replace 'build
966 (lambda* (#:key inputs #:allow-other-keys)
967 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
968 ;; Tell mf where to find mf.base
969 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
970 ;; Tell mf where to look for source files
971 (setenv "MFINPUTS"
972 (string-append (getcwd) ":"
973 mf "/share/texmf-dist/metafont/base:"
974 (assoc-ref inputs "texlive-fonts-cm")
975 "/share/texmf-dist/fonts/source/public/cm")))
976 (mkdir "build")
977 (for-each (lambda (font)
978 (format #t "building font ~a\n" font)
979 (invoke "mf" "-progname=mf"
980 "-output-directory=build"
981 (string-append "\\"
982 "mode:=ljfour; "
983 "mag:=1; "
984 "batchmode; "
985 "input " font)))
986 '("icmcsc10" "icmex10" "icmmi8" "icmsy8" "icmtt8"
987 "ilasy8" "ilcmss8" "ilcmssb8" "ilcmssi8"
988 "lasy5" "lasy6" "lasy7" "lasy8" "lasy9" "lasy10" "lasyb10"
989 "lcircle10" "lcirclew10" "lcmss8" "lcmssb8" "lcmssi8"
990 "line10" "linew10"))
991 #t))
992 (replace 'install
993 (lambda* (#:key outputs #:allow-other-keys)
994 (let* ((out (assoc-ref outputs "out"))
995 (tfm (string-append
996 out "/share/texmf-dist/fonts/tfm/public/latex-fonts"))
997 (mf (string-append
998 out "/share/texmf-dist/fonts/source/public/latex-fonts")))
999 (for-each (cut install-file <> tfm)
1000 (find-files "build" "\\.*"))
1001 (for-each (cut install-file <> mf)
1002 (find-files "." "\\.mf"))
1003 #t))))))
1004 (native-inputs
1005 `(("texlive-bin" ,texlive-bin)
1006 ("texlive-metafont-base" ,texlive-metafont-base)
1007 ("texlive-fonts-cm" ,texlive-fonts-cm)))
1008 (home-page "https://www.ctan.org/pkg/latex-fonts")
1009 (synopsis "Collection of fonts used in LaTeX distributions")
1010 (description "This is a collection of fonts for use with standard LaTeX
1011 packages and classes. It includes invisible fonts (for use with the slides
1012 class), line and circle fonts (for use in the picture environment) and LaTeX
1013 symbol fonts.")
1014 (license license:lppl1.2+)))
1015
1016 (define-public texlive-latex-mflogo
1017 (package
1018 (name "texlive-latex-mflogo")
1019 (version (number->string %texlive-revision))
1020 (source
1021 (origin
1022 (method svn-fetch)
1023 (uri (texlive-ref "latex" "mflogo"))
1024 (sha256
1025 (base32
1026 "15i2ib6nvhf31g1b92c6njf7n0g29znlq7hbfp9ii7qabhcwwvrj"))))
1027 (build-system texlive-build-system)
1028 (arguments '(#:tex-directory "latex/mflogo"))
1029 (home-page "http://www.ctan.org/pkg/mflogo")
1030 (synopsis "LaTeX support for Metafont logo fonts")
1031 (description
1032 "This package provides LaTeX and font definition files to access the
1033 Knuthian mflogo fonts described in The Metafontbook and to typeset Metafont
1034 logos in LaTeX documents.")
1035 (license license:lppl)))
1036
1037 (define-public texlive-fonts-mflogo-font
1038 (package
1039 (name "texlive-fonts-mflogo-font")
1040 (version (number->string %texlive-revision))
1041 (source (origin
1042 (method svn-fetch)
1043 (uri (svn-reference
1044 (url (string-append "svn://www.tug.org/texlive/tags/"
1045 %texlive-tag "/Master/texmf-dist/"
1046 "/fonts/type1/hoekwater/mflogo-font"))
1047 (revision %texlive-revision)))
1048 (file-name (string-append name "-" version "-checkout"))
1049 (sha256
1050 (base32
1051 "09fsxfpiyxjljkrb52b197728bjnkcnv3bdwm4hl6hf23mbmqadf"))))
1052 (build-system trivial-build-system)
1053 (arguments
1054 `(#:modules ((guix build utils)
1055 (ice-9 match))
1056 #:builder
1057 (begin
1058 (use-modules (guix build utils)
1059 (ice-9 match))
1060 (let ((root (string-append (assoc-ref %outputs "out")
1061 "/share/texmf-dist/"))
1062 (pkgs '(("source" . "fonts/type1/hoekwater/mflogo-font")
1063 ("afm" . "fonts/afm/hoekwater/mflogo-font")
1064 ("fonts-map" . "fonts/map/dvips/mflogo-font"))))
1065 (for-each (match-lambda
1066 ((pkg . dir)
1067 (let ((target (string-append root dir)))
1068 (mkdir-p target)
1069 (copy-recursively (assoc-ref %build-inputs pkg)
1070 target))))
1071 pkgs)
1072 #t))))
1073 (native-inputs
1074 `(("afm"
1075 ,(origin
1076 (method svn-fetch)
1077 (uri (svn-reference
1078 (url (string-append "svn://www.tug.org/texlive/tags/"
1079 %texlive-tag "/Master/texmf-dist/"
1080 "/fonts/afm/hoekwater/mflogo-font"))
1081 (revision %texlive-revision)))
1082 (file-name (string-append name "-afm-" version "-checkout"))
1083 (sha256
1084 (base32
1085 "0bx1mfhhzsk9gj1pha36q2rk0jd0y285qm62zgvdvzzzlfnk8sdb"))))
1086 ("fonts-map"
1087 ,(origin
1088 (method svn-fetch)
1089 (uri (svn-reference
1090 (url (string-append "svn://www.tug.org/texlive/tags/"
1091 %texlive-tag "/Master/texmf-dist/"
1092 "/fonts/map/dvips/mflogo-font/"))
1093 (revision %texlive-revision)))
1094 (file-name (string-append name "-fonts-map-" version "-checkout"))
1095 (sha256
1096 (base32
1097 "044xrrpl8hnvj55cx2ql1ib1bcyr33nzanx5nkwxpai7fb7pg4y6"))))))
1098 (home-page "https://www.ctan.org/pkg/mflogo-font")
1099 (synopsis "Metafont logo font")
1100 (description
1101 "These fonts were created in METAFONT by Knuth, for his own publications.
1102 At some stage, the letters P and S were added, so that the METAPOST logo could
1103 also be expressed. The fonts were originally issued (of course) as METAFONT
1104 source; they have since been autotraced and reissued in Adobe Type 1 format by
1105 Taco Hoekwater.")
1106 (license license:knuth)))
1107
1108 (define-public texlive-fonts-amsfonts
1109 (package
1110 (name "texlive-fonts-amsfonts")
1111 (version (number->string %texlive-revision))
1112 (source (origin
1113 (method svn-fetch)
1114 (uri (svn-reference
1115 (url (string-append "svn://www.tug.org/texlive/tags/"
1116 %texlive-tag "/Master/texmf-dist/"
1117 "/fonts/source/public/amsfonts"))
1118 (revision %texlive-revision)))
1119 (file-name (string-append name "-" version "-checkout"))
1120 (sha256
1121 (base32
1122 "07h20rvpbdb4k72hzmjkyb29426zr9wxsfp6yd4ajbbpd3vx8grb"))))
1123 (build-system gnu-build-system)
1124 (arguments
1125 `(#:modules ((guix build gnu-build-system)
1126 (guix build utils)
1127 (ice-9 match)
1128 (srfi srfi-1)
1129 (srfi srfi-26))
1130 #:tests? #f ; no tests
1131 #:phases
1132 (modify-phases %standard-phases
1133 (delete 'configure)
1134 (replace 'build
1135 (lambda* (#:key inputs #:allow-other-keys)
1136 (let ((mf (assoc-ref inputs "texlive-union"))
1137 (cwd (getcwd)))
1138 ;; Make METAFONT reproducible
1139 (setenv "SOURCE_DATE_EPOCH" "1")
1140 ;; Tell mf where to find mf.base
1141 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
1142 ;; Tell mf where to look for source files
1143 (setenv "MFINPUTS"
1144 (string-append cwd ":"
1145 cwd "/cmextra:"
1146 cwd "/cyrillic:"
1147 cwd "/dummy:"
1148 cwd "/symbols:"
1149 mf "/share/texmf-dist/metafont/base:"
1150 (assoc-ref inputs "texlive-fonts-cm")
1151 "/share/texmf-dist/fonts/source/public/cm")))
1152 (mkdir "build")
1153 (for-each (lambda (font)
1154 (format #t "building font ~a\n" (basename font ".mf"))
1155 (with-directory-excursion (dirname font)
1156 (invoke "mf" "-progname=mf"
1157 "-output-directory=../build"
1158 (string-append "\\"
1159 "mode:=ljfour; "
1160 "mag:=1; "
1161 "nonstopmode; "
1162 "input "
1163 (getcwd) "/"
1164 (basename font ".mf")))))
1165 (find-files "." "[0-9]+\\.mf$"))
1166
1167 ;; There are no metafont sources for the Euler fonts, so we
1168 ;; convert the afm files instead.
1169 (mkdir "build/euler")
1170 (for-each (lambda (font)
1171 (format #t "converting afm font ~a\n" (basename font ".afm"))
1172 (invoke "afm2tfm" font
1173 (string-append "build/euler/"
1174 (basename font ".tfm"))))
1175 (find-files (assoc-ref inputs "amsfonts-afm")
1176 "\\.afm$"))
1177
1178 ;; Frustratingly, not all fonts can be created this way. To
1179 ;; generate eufm8.tfm, for example, we first scale down
1180 ;; eufm10.afm to eufm8.pl, and then generate the tfm file from
1181 ;; the pl file.
1182 (with-directory-excursion "build/euler"
1183 (setenv "TEXINPUTS"
1184 (string-append (getcwd) "//:"
1185 (assoc-ref inputs "amsfonts-afm") "//:"
1186 (assoc-ref inputs "texlive-union") "//"))
1187 (for-each (match-lambda
1188 (((target-base target-size)
1189 (source-base source-size))
1190 (let ((factor (number->string
1191 (truncate/ (* 1000 target-size)
1192 source-size))))
1193 (invoke "tex"
1194 "-interaction=scrollmode"
1195 (string-append "\\input fontinst.sty "
1196 "\\transformfont{" target-base "}"
1197 "{\\scalefont{" factor "}"
1198 "{\\fromafm{" source-base "}}} "
1199 "\\bye")))
1200 (invoke "pltotf"
1201 (string-append target-base ".pl")
1202 (string-append target-base ".tfm"))
1203 (delete-file (string-append target-base ".pl"))))
1204
1205 '((("eufm8" 8) ("eufm10" 10))
1206
1207 (("eufb6" 6) ("eufb7" 7))
1208 (("eufb8" 8) ("eufb10" 10))
1209 (("eufb9" 9) ("eufb10" 10))
1210
1211 (("eufm6" 6) ("eufb7" 7))
1212 (("eufm9" 9) ("eufb10" 10))
1213
1214 (("eurb6" 6) ("eurb7" 7))
1215 (("eurb8" 8) ("eurb10" 10))
1216 (("eurb9" 9) ("eurb10" 10))
1217
1218 (("eurm6" 6) ("eurm7" 7))
1219 (("eurm8" 8) ("eurm10" 10))
1220 (("eurm9" 9) ("eurm10" 10)))))
1221 #t))
1222 (replace 'install
1223 (lambda* (#:key inputs outputs #:allow-other-keys)
1224 (let* ((out (assoc-ref outputs "out"))
1225 (root (string-append out "/share/texmf-dist/fonts/"))
1226 (pkgs '(("amsfonts-afm" . "afm/public/amsfonts")
1227 ("amsfonts-type1" . "type1/public/amsfonts")
1228 ("amsfonts-map" . "map/dvips/amsfonts"))))
1229 (for-each (match-lambda
1230 ((pkg . dir)
1231 (let ((target (string-append root dir)))
1232 (mkdir-p target)
1233 (copy-recursively (assoc-ref inputs pkg)
1234 target))))
1235 pkgs)
1236 (copy-recursively (assoc-ref inputs "amsfonts-plain")
1237 (string-append out "/share/texmf-dist/tex/plain/amsfonts"))
1238 (let* ((tfm (string-append root "tfm/public/amsfonts"))
1239 (mf (string-append root "source/public/amsfonts")))
1240 (copy-recursively "build" tfm)
1241 (for-each (cut install-file <> mf)
1242 (find-files "." "\\.mf"))
1243 #t)))))))
1244 (native-inputs
1245 `(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base
1246 texlive-fonts-cm
1247 texlive-metafont-base)))
1248 ("amsfonts-plain"
1249 ,(origin
1250 (method svn-fetch)
1251 (uri (svn-reference
1252 (url (string-append "svn://www.tug.org/texlive/tags/"
1253 %texlive-tag "/Master/texmf-dist/"
1254 "/tex/plain/amsfonts"))
1255 (revision %texlive-revision)))
1256 (file-name (string-append name "-plain-" version "-checkout"))
1257 (sha256
1258 (base32
1259 "1hi8c9rkfb6395sxf7fhkr91xygfg8am1hqij9g3h2c7qx3714qp"))))
1260 ("amsfonts-map"
1261 ,(origin
1262 (method svn-fetch)
1263 (uri (svn-reference
1264 (url (string-append "svn://www.tug.org/texlive/tags/"
1265 %texlive-tag "/Master/texmf-dist/"
1266 "/fonts/map/dvips/amsfonts"))
1267 (revision %texlive-revision)))
1268 (file-name (string-append name "-map-" version "-checkout"))
1269 (sha256
1270 (base32
1271 "1lrj3bd9ybj4aawzlygc6qvakbrwc5s0mc5n9rpic331frv3axfs"))))
1272 ("amsfonts-type1"
1273 ,(origin
1274 (method svn-fetch)
1275 (uri (svn-reference
1276 (url (string-append "svn://www.tug.org/texlive/tags/"
1277 %texlive-tag "/Master/texmf-dist/"
1278 "/fonts/type1/public/amsfonts"))
1279 (revision %texlive-revision)))
1280 (file-name (string-append name "-type1-" version "-checkout"))
1281 (sha256
1282 (base32
1283 "1zfz33vn6gm19njy74n8wmn7sljrimfhwns5z8qqhxqfh1g4qip2"))))
1284 ("amsfonts-afm"
1285 ,(origin
1286 (method svn-fetch)
1287 (uri (svn-reference
1288 (url (string-append "svn://www.tug.org/texlive/tags/"
1289 %texlive-tag "/Master/texmf-dist/"
1290 "/fonts/afm/public/amsfonts"))
1291 (revision %texlive-revision)))
1292 (file-name (string-append name "-afm-" version "-checkout"))
1293 (sha256
1294 (base32
1295 "1fifzkaihmjgchnk7dmw0c23k0cz999dxnc78ivmqvgi1dhx0iv8"))))))
1296 (home-page "https://www.ctan.org/pkg/amsfonts")
1297 (synopsis "TeX fonts from the American Mathematical Society")
1298 (description
1299 "This package provides an extended set of fonts for use in mathematics,
1300 including: extra mathematical symbols; blackboard bold letters (uppercase
1301 only); fraktur letters; subscript sizes of bold math italic and bold Greek
1302 letters; subscript sizes of large symbols such as sum and product; added sizes
1303 of the Computer Modern small caps font; cyrillic fonts (from the University of
1304 Washington); Euler mathematical fonts. All fonts are provided as Adobe Type 1
1305 files, and all except the Euler fonts are provided as Metafont source. The
1306 distribution also includes the canonical Type 1 versions of the Computer
1307 Modern family of fonts. The Euler fonts are supported by separate packages;
1308 details can be found in the documentation.")
1309 (license license:silofl1.1)))
1310
1311 (define-public texlive-latex-amsfonts
1312 (package
1313 (name "texlive-latex-amsfonts")
1314 (version (number->string %texlive-revision))
1315 (source (origin
1316 (method svn-fetch)
1317 (uri (texlive-ref "latex" "amsfonts"))
1318 (file-name (string-append name "-" version "-checkout"))
1319 (sha256
1320 (base32
1321 "0slzfv5h2m03b2xvm2sasznz4azh6rgi069z161dja3l8rln79hm"))))
1322 (build-system texlive-build-system)
1323 (arguments '(#:tex-directory "latex/amsfonts"))
1324 (native-inputs
1325 `(("texlive-fonts-cm" ,texlive-fonts-cm)
1326 ("texlive-metafont-base" ,texlive-metafont-base)))
1327 (home-page "https://www.ctan.org/pkg/amsfonts")
1328 (synopsis "TeX fonts from the American Mathematical Society")
1329 (description
1330 "This package provides basic LaTeX support for the symbol fonts provides
1331 by the amsfonts package. It provides @code{amsfonts.sty}, with names of
1332 individual symbols defined in @code{amssymb.sty}.")
1333 (license license:silofl1.1)))
1334
1335 ;; This provides etex.src which is needed to build various formats, including
1336 ;; luatex.fmt and pdflatex.fmt
1337 (define-public texlive-tex-plain
1338 (package
1339 (name "texlive-tex-plain")
1340 (version (number->string %texlive-revision))
1341 (source (origin
1342 (method svn-fetch)
1343 (uri (svn-reference
1344 (url (string-append "svn://www.tug.org/texlive/tags/"
1345 %texlive-tag "/Master/texmf-dist/"
1346 "/tex/plain"))
1347 (revision %texlive-revision)))
1348 (file-name (string-append name "-" version "-checkout"))
1349 (sha256
1350 (base32
1351 "1xknlb3gcw6jjqh97bhghxi594bzpj1zfzzfsrr9pvr9s1bx7dnf"))))
1352 (build-system trivial-build-system)
1353 (arguments
1354 `(#:modules ((guix build utils))
1355 #:builder
1356 (begin
1357 (use-modules (guix build utils))
1358 (let ((target (string-append (assoc-ref %outputs "out")
1359 "/share/texmf-dist/tex/plain")))
1360 (mkdir-p target)
1361 (copy-recursively (assoc-ref %build-inputs "source") target)
1362 #t))))
1363 (home-page "https://www.ctan.org/pkg/plain")
1364 (synopsis "Plain TeX format and supporting files")
1365 (description
1366 "Contains files used to build the Plain TeX format, as described in the
1367 TeXbook, together with various supporting files (some also discussed in the
1368 book).")
1369 (license license:knuth)))
1370
1371 (define-public texlive-latex-base
1372 (let ((texlive-dir
1373 (lambda (dir hash)
1374 (origin
1375 (method svn-fetch)
1376 (uri (svn-reference
1377 (url (string-append "svn://www.tug.org/texlive/tags/"
1378 %texlive-tag "/Master/texmf-dist/"
1379 dir))
1380 (revision %texlive-revision)))
1381 (file-name (string-append "texlive-generic-"
1382 (last (string-split
1383 (string-drop-right dir 1) #\/))
1384 "-" (number->string %texlive-revision)
1385 "-checkout"))
1386 (sha256 (base32 hash))))))
1387 (package
1388 (name "texlive-latex-base")
1389 (version (number->string %texlive-revision))
1390 (source (origin
1391 (method svn-fetch)
1392 (uri (texlive-ref "latex" "base"))
1393 (file-name (string-append name "-" version "-checkout"))
1394 (sha256
1395 (base32
1396 "17bqrzzjz16k52sc7ydl4vw7ddy2z3g0p1xsk2c35h1ynq9h3wwm"))))
1397 (build-system gnu-build-system)
1398 (arguments
1399 `(#:modules ((guix build gnu-build-system)
1400 (guix build utils)
1401 (ice-9 match)
1402 (srfi srfi-1)
1403 (srfi srfi-26))
1404 #:tests? #f ; no tests
1405 #:phases
1406 (modify-phases %standard-phases
1407 (delete 'configure)
1408 (replace 'build
1409 (lambda* (#:key inputs #:allow-other-keys)
1410 ;; Find required fonts
1411 (setenv "TFMFONTS"
1412 (string-append (assoc-ref inputs "texlive-fonts-cm")
1413 "/share/texmf-dist/fonts/tfm/public/cm:"
1414 (assoc-ref inputs "texlive-fonts-latex")
1415 "/share/texmf-dist/fonts/tfm/public/latex-fonts:"
1416 (assoc-ref inputs "texlive-fonts-knuth-lib")
1417 "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
1418 (setenv "TEXINPUTS"
1419 (string-append
1420 (getcwd) ":"
1421 (getcwd) "/build:"
1422 (string-join
1423 (map (match-lambda ((_ . dir) dir)) inputs)
1424 "//:")))
1425
1426 ;; Create an empty texsys.cfg, because latex.ltx wants to include
1427 ;; it. This file must exist and it's fine if it's empty.
1428 (with-output-to-file "texsys.cfg"
1429 (lambda _ (format #t "%")))
1430
1431 (mkdir "build")
1432 (mkdir "web2c")
1433 (invoke "luatex" "-ini" "-interaction=batchmode"
1434 "-output-directory=build" "unpack.ins")
1435 (invoke "tex" "-ini" "-interaction=batchmode"
1436 "-output-directory=web2c" "tex.ini")
1437 ;; LaTeX, pdfetex/pdftex, and XeTeX require e-TeX, which
1438 ;; is enabled only in extended mode (activated with a
1439 ;; leading asterisk). We should not use luatex here,
1440 ;; because that would make the generated format files
1441 ;; incompatible with any other TeX engine.
1442 (for-each (lambda (format)
1443 (invoke "latex" "-ini" "-interaction=batchmode"
1444 "-output-directory=web2c"
1445 "-translate-file=cp227.tcx"
1446 (string-append "*" format ".ini")))
1447 '("latex"
1448 "pdflatex"
1449 "pdfetex"))
1450 (for-each (lambda (format)
1451 (invoke format "-ini" "-interaction=batchmode"
1452 "-output-directory=web2c"
1453 (string-append "*" format ".ini")))
1454 '("xetex"
1455 "xelatex"))
1456 (for-each (lambda (format)
1457 (invoke "luatex" "-ini" "-interaction=batchmode"
1458 "-output-directory=web2c"
1459 (string-append format ".ini")))
1460 '("dviluatex" "dvilualatex" "luatex" "lualatex"))
1461 #t))
1462 (replace 'install
1463 (lambda* (#:key inputs outputs #:allow-other-keys)
1464 (let* ((out (assoc-ref outputs "out"))
1465 (target (string-append
1466 out "/share/texmf-dist/tex/latex/base"))
1467 (web2c (string-append
1468 out "/share/texmf-dist/web2c"))
1469 (support-files (assoc-ref inputs "texlive-latex-base-support-files")))
1470 (mkdir-p target)
1471 (mkdir-p web2c)
1472 (for-each delete-file (find-files "." "\\.(log|aux)$"))
1473 (for-each (cut install-file <> target)
1474 (find-files "build" ".*"))
1475 (for-each (cut install-file <> web2c)
1476 (find-files "web2c" ".*"))
1477 ;; pdftex is really just the same as pdfetex, but since it
1478 ;; doesn't have its own format file, we need to copy it.
1479 (copy-file "web2c/pdfetex.fmt"
1480 (string-append web2c "/pdftex.fmt"))
1481 ;; "source" is missing the support files as per doc/latex/base/manifest.txt.
1482 ;; FIXME: We are probably not packaging this right.
1483 (for-each (lambda (file)
1484 (install-file
1485 (string-append support-files "/" file)
1486 target))
1487 '("ltxguide.cls" "ltnews.cls" "minimal.cls" "idx.tex"
1488 "lablst.tex" "testpage.tex" "ltxcheck.tex"))
1489 ;; Install configurations
1490 (copy-recursively
1491 (assoc-ref inputs "texlive-latex-latexconfig")
1492 (string-append out "/share/texmf-dist/tex/latex/latexconfig"))
1493 (copy-recursively
1494 (assoc-ref inputs "texlive-generic-config")
1495 (string-append out "/share/texmf-dist/tex/generic/config"))
1496 (copy-recursively
1497 (assoc-ref inputs "texlive-generic-hyphen")
1498 (string-append out "/share/texmf-dist/tex/generic/hyphen"))
1499 (copy-recursively
1500 (assoc-ref inputs "texlive-generic-ruhyphen")
1501 (string-append out "/share/texmf-dist/tex/generic/ruhyphen"))
1502 (copy-recursively
1503 (assoc-ref inputs "texlive-generic-ukrhyph")
1504 (string-append out "/share/texmf-dist/tex/generic/ukrhyph"))
1505 #t))))))
1506 (native-inputs
1507 `(("texlive-bin" ,texlive-bin)
1508 ("texlive-generic-unicode-data" ,texlive-generic-unicode-data)
1509 ("texlive-generic-dehyph-exptl" ,texlive-generic-dehyph-exptl)
1510 ("texlive-generic-tex-ini-files" ,texlive-generic-tex-ini-files)
1511 ("texlive-latex-latexconfig"
1512 ,(texlive-dir "tex/latex/latexconfig/"
1513 "1zb3j49cj8p75yph6c8iysjp7qbdvghwf0mn9j0l7qq3qkbz2xaf"))
1514 ("texlive-generic-hyphen"
1515 ,(texlive-dir "tex/generic/hyphen/"
1516 "0xim36wybw2625yd0zwlp9m2c2xrcybw58gl4rih9nkph0wqwwhd"))
1517 ("texlive-generic-ruhyphen"
1518 ,(texlive-dir "tex/generic/ruhyphen/"
1519 "14rjkpl4zkjqs13rcf9kcd24mn2kx7i1jbdwxq8ds94bi66ylzsd"))
1520 ("texlive-generic-ukrhyph"
1521 ,(texlive-dir "tex/generic/ukrhyph/"
1522 "1cfwdg2rhbayl3w0x1xqd36d45zbc96f029myp13s7cb6kbmbppv"))
1523 ("texlive-generic-config"
1524 ,(texlive-dir "tex/generic/config/"
1525 "1v90iihy112q93zdpblpdk8zv8rf99fgslsg06s1sxm27zjm9nap"))
1526 ("texlive-latex-base-support-files"
1527 ,(origin
1528 (method svn-fetch)
1529 (uri (svn-reference
1530 (url (string-append "svn://www.tug.org/texlive/tags/"
1531 %texlive-tag "/Master/texmf-dist/"
1532 "/tex/latex/base"))
1533 (revision %texlive-revision)))
1534 (file-name (string-append name "-" version "-checkout"))
1535 (sha256
1536 (base32
1537 "18wy8dlcw8adl6jzqwbg54pdwlhs8hilnfvqbw6ikj6y3zhqkj7q"))))
1538 ("texlive-tex-plain" ,texlive-tex-plain)
1539 ("texlive-fonts-cm" ,texlive-fonts-cm)
1540 ("texlive-fonts-latex" ,texlive-fonts-latex)
1541 ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)))
1542 (propagated-inputs
1543 `(("texlive-generic-hyph-utf8" ,texlive-generic-hyph-utf8)))
1544 (home-page "https://www.ctan.org/pkg/latex-base")
1545 (synopsis "Base sources of LaTeX")
1546 (description
1547 "This bundle comprises the source of LaTeX itself, together with several
1548 packages which are considered \"part of the kernel\". This bundle, together
1549 with the required packages, constitutes what every LaTeX distribution should
1550 contain.")
1551 (license license:lppl1.3c+))))
1552
1553 (define-public texlive-latex-filecontents
1554 (package
1555 (name "texlive-latex-filecontents")
1556 (version (number->string %texlive-revision))
1557 (source (origin
1558 (method svn-fetch)
1559 (uri (texlive-ref "latex" "filecontents"))
1560 (file-name (string-append name "-" version "-checkout"))
1561 (sha256
1562 (base32
1563 "0swkbxv8vg0yizadfnvrwjb4cj0pn34v9wm6v7wqq903fdav7k7q"))))
1564 (build-system texlive-build-system)
1565 (arguments '(#:tex-directory "latex/filecontents"))
1566 (home-page "https://www.ctan.org/pkg/filecontents")
1567 (synopsis "Extended filecontents and filecontents* environments")
1568 (description
1569 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments
1570 enable a LaTeX source file to generate external files as it runs through
1571 LaTeX. However, there are two limitations of these environments: they refuse
1572 to overwrite existing files, and they can only be used in the preamble of a
1573 document. The filecontents package removes these limitations, letting you
1574 overwrite existing files and letting you use @code{filecontents} /
1575 @code{filecontents*} anywhere.")
1576 (license license:lppl1.3c+)))
1577
1578 (define-public texlive-generic-ifxetex
1579 (package
1580 (name "texlive-generic-ifxetex")
1581 (version (number->string %texlive-revision))
1582 (source (origin
1583 (method svn-fetch)
1584 (uri (texlive-ref "generic" "ifxetex"))
1585 (file-name (string-append name "-" version "-checkout"))
1586 (sha256
1587 (base32
1588 "0w2xj7n0szavj329kds09q626szkc378p3w0sk022q0ln4ksz86d"))))
1589 (build-system texlive-build-system)
1590 (arguments
1591 '(#:tex-directory "generic/ifxetex"
1592 #:tex-format "xelatex"))
1593 (inputs
1594 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
1595 (home-page "https://www.ctan.org/pkg/ifxetex")
1596 (synopsis "Am I running under XeTeX?")
1597 (description
1598 "This is a simple package which provides an @code{\\ifxetex} conditional,
1599 so that other code can determine that it is running under XeTeX. The package
1600 requires the e-TeX extensions to the TeX primitive set.")
1601 (license license:lppl1.3c+)))
1602
1603 (define-public texlive-generic-epsf
1604 (package
1605 (name "texlive-generic-epsf")
1606 (version (number->string %texlive-revision))
1607 (source (origin
1608 (method svn-fetch)
1609 (uri (svn-reference
1610 (url (string-append "svn://www.tug.org/texlive/tags/"
1611 %texlive-tag "/Master/texmf-dist/"
1612 "/tex/generic/epsf"))
1613 (revision %texlive-revision)))
1614 (file-name (string-append name "-" version "-checkout"))
1615 (sha256
1616 (base32
1617 "14w3j81ympyvg8hkk9i1xgr8a0gfnfsb2ki8qqsk5pa051za1xcy"))))
1618 (build-system trivial-build-system)
1619 (arguments
1620 `(#:modules ((guix build utils))
1621 #:builder
1622 (begin
1623 (use-modules (guix build utils))
1624 (let ((target (string-append (assoc-ref %outputs "out")
1625 "/share/texmf-dist/tex/generic/epfs")))
1626 (mkdir-p target)
1627 (copy-recursively (assoc-ref %build-inputs "source") target)
1628 #t))))
1629 (home-page "https://www.ctan.org/pkg/epsf")
1630 (synopsis "Simple macros for EPS inclusion")
1631 (description
1632 "This package provides the original (and now obsolescent) graphics
1633 inclusion macros for use with dvips, still widely used by Plain TeX users (in
1634 particular). For LaTeX users, the package is nowadays (rather strongly)
1635 deprecated in favour of the more sophisticated standard LaTeX latex-graphics
1636 bundle of packages. (The latex-graphics bundle is also available to Plain TeX
1637 users, via its Plain TeX version.)")
1638 (license license:public-domain)))
1639
1640 (define-public texlive-latex-fancyvrb
1641 (package
1642 (name "texlive-latex-fancyvrb")
1643 (version (number->string %texlive-revision))
1644 (source (origin
1645 (method svn-fetch)
1646 (uri (texlive-ref "latex" "fancyvrb"))
1647 (file-name (string-append name "-" version "-checkout"))
1648 (sha256
1649 (base32
1650 "03l7140y031rr14h02i4z9zqsfvrbn7wzwxbjsrjcgrk6sdr71wv"))))
1651 (build-system texlive-build-system)
1652 (arguments
1653 '(#:tex-directory "latex/fancyvrb"
1654 #:tex-format "latex"))
1655 (home-page "https://www.ctan.org/pkg/fancyvrb")
1656 (synopsis "Sophisticated verbatim text")
1657 (description
1658 "This package provides tools for the flexible handling of verbatim text
1659 including: verbatim commands in footnotes; a variety of verbatim environments
1660 with many parameters; ability to define new customized verbatim environments;
1661 save and restore verbatim text and environments; write and read files in
1662 verbatim mode; build \"example\" environments (showing both result and
1663 verbatim source).")
1664 (license license:lppl1.0+)))
1665
1666 (define-public texlive-latex-graphics
1667 (package
1668 (name "texlive-latex-graphics")
1669 (version (number->string %texlive-revision))
1670 (source (origin
1671 (method svn-fetch)
1672 (uri (texlive-ref "latex" "graphics"))
1673 (file-name (string-append name "-" version "-checkout"))
1674 (sha256
1675 (base32
1676 "0nlfhn55ax89rcvpkrl9570671b62kcr4c9l5ch3w5zw9vmi00dz"))))
1677 (build-system texlive-build-system)
1678 (arguments
1679 '(#:tex-directory "latex/graphics"
1680 #:phases
1681 (modify-phases %standard-phases
1682 (add-after 'install 'install-config
1683 (lambda* (#:key inputs outputs #:allow-other-keys)
1684 (let ((cfg (assoc-ref inputs "graphics-cfg"))
1685 (target (string-append (assoc-ref outputs "out")
1686 "/share/texmf-dist/tex/latex/graphics-cfg")))
1687 (mkdir-p target)
1688 (install-file (string-append cfg "/graphics.cfg") target)
1689 (install-file (string-append cfg "/color.cfg") target)
1690 #t)))
1691 (add-after 'install 'install-defs
1692 (lambda* (#:key inputs outputs #:allow-other-keys)
1693 (let ((def (assoc-ref inputs "graphics-def"))
1694 (target (string-append (assoc-ref outputs "out")
1695 "/share/texmf-dist/tex/latex/graphics-def")))
1696 (mkdir-p target)
1697 (copy-recursively def target)
1698 #t))))))
1699 (native-inputs
1700 `(("graphics-cfg"
1701 ,(origin
1702 (method git-fetch)
1703 (uri (git-reference
1704 (url "https://github.com/latex3/graphics-cfg.git")
1705 (commit "19d1238af17df376cd46333b229579b0f7f3a41f")))
1706 (file-name (string-append "graphics-cfg-"
1707 (number->string %texlive-revision)
1708 "-checkout"))
1709 (sha256
1710 (base32
1711 "12kbgbm52gmmgn8zajb74s8n5rvnxcfdvs3iyj8vcw5vrsw5i6mh"))))
1712 ("graphics-def"
1713 ,(origin
1714 (method svn-fetch)
1715 (uri (svn-reference
1716 (url (string-append "svn://www.tug.org/texlive/tags/"
1717 %texlive-tag "/Master/texmf-dist/"
1718 "/tex/latex/graphics-def"))
1719 (revision %texlive-revision)))
1720 (file-name (string-append "graphics-def-"
1721 (number->string %texlive-revision)
1722 "-checkout"))
1723 (sha256
1724 (base32
1725 "17zpcgrfsr29g1dkz9np1qi63kjv7gb12rg979c6dai6qksbr3vq"))))))
1726 (home-page "https://www.ctan.org/pkg/latex-graphics")
1727 (synopsis "LaTeX standard graphics bundle")
1728 (description
1729 "This is a collection of LaTeX packages for producing color, including
1730 graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX
1731 documents. It comprises the packages color, graphics, graphicx, trig, epsfig,
1732 keyval, and lscape.")
1733 ;; The configuration files are released under CC0.
1734 (license (list license:lppl1.3c+
1735 license:cc0))))
1736
1737 (define-public texlive-latex-xcolor
1738 (package
1739 (name "texlive-latex-xcolor")
1740 (version (number->string %texlive-revision))
1741 (source (origin
1742 (method svn-fetch)
1743 (uri (texlive-ref "latex" "xcolor"))
1744 (file-name (string-append name "-" version "-checkout"))
1745 (sha256
1746 (base32
1747 "01n613s7bcrd2n4jfawm0k4nn2ny3aaifp2jjfif3lz4sbv31494"))))
1748 (build-system texlive-build-system)
1749 (arguments '(#:tex-directory "latex/xcolor"))
1750 (home-page "https://www.ctan.org/pkg/xcolor")
1751 (synopsis "Driver-independent color extensions for LaTeX and pdfLaTeX")
1752 (description
1753 "The package starts from the basic facilities of the colorcolor package,
1754 and provides easy driver-independent access to several kinds of color tints,
1755 shades, tones, and mixes of arbitrary colors. It allows a user to select a
1756 document-wide target color model and offers complete tools for conversion
1757 between eight color models. Additionally, there is a command for alternating
1758 row colors plus repeated non-aligned material (like horizontal lines) in
1759 tables.")
1760 (license license:lppl1.2+)))
1761
1762 (define-public texlive-latex-hyperref
1763 (package
1764 (name "texlive-latex-hyperref")
1765 (version "6.84a2")
1766 ;; The sources in the TeX Live SVN repository do not contain hluatex.dtx,
1767 ;; so we fetch the release from GitHub.
1768 (source (origin
1769 (method url-fetch)
1770 (uri (string-append "https://github.com/ho-tex/hyperref/"
1771 "archive/release-" version ".tar.gz"))
1772 (file-name (string-append name "-" version ".tar.gz"))
1773 (sha256
1774 (base32
1775 "1d3rmjgzh0025a1dza55zb6nzzlgd1y9snwx45wq1c1vf42m79h2"))))
1776 (build-system texlive-build-system)
1777 (arguments '(#:tex-directory "latex/hyperref"))
1778 (propagated-inputs
1779 `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek) ; for ltxcmds.sty
1780 ("texlive-latex-url" ,texlive-latex-url)))
1781 (home-page "https://www.ctan.org/pkg/hyperref")
1782 (synopsis "Extensive support for hypertext in LaTeX")
1783 (description
1784 "The @code{hyperref} package is used to handle cross-referencing commands
1785 in LaTeX to produce hypertext links in the document. The package provides
1786 backends for the @code{\\special} set defined for HyperTeX DVI processors; for
1787 embedded @code{pdfmark} commands for processing by Acrobat
1788 Distiller (@code{dvips} and Y&Y's @code{dvipsone}); for Y&Y's @code{dviwindo};
1789 for PDF control within pdfTeX and @code{dvipdfm}; for TeX4ht; and for VTeX's
1790 pdf and HTML backends. The package is distributed with the @code{backref} and
1791 @code{nameref} packages, which make use of the facilities of @code{hyperref}.")
1792 (license license:lppl1.3+)))
1793
1794 (define-public texlive-latex-oberdiek
1795 (package
1796 (name "texlive-latex-oberdiek")
1797 (version (number->string %texlive-revision))
1798 (source (origin
1799 (method svn-fetch)
1800 (uri (texlive-ref "latex" "oberdiek"))
1801 (file-name (string-append name "-" version "-checkout"))
1802 (sha256
1803 (base32
1804 "1m9fg8ddhpsl1212igr9a9fmj012lv780aghjn6fpidg2wqrffmn"))))
1805 (build-system texlive-build-system)
1806 (arguments
1807 '(#:tex-directory "latex/oberdiek"
1808 #:build-targets '("oberdiek.ins")
1809 #:phases
1810 (modify-phases %standard-phases
1811 ;; "ifpdf.ins" is not generated, so we need to process the dtx file.
1812 (add-after 'unpack 'do-not-process-ifpdf.ins
1813 (lambda _
1814 (substitute* "oberdiek.ins"
1815 (("ifpdf.ins") "ifpdf.dtx"))
1816 #t)))))
1817 (propagated-inputs
1818 `(("texlive-generic-ifxetex" ,texlive-generic-ifxetex)))
1819 (home-page "https://www.ctan.org/pkg/oberdiek")
1820 (synopsis "Bundle of packages submitted by Heiko Oberdiek")
1821 (description
1822 "The bundle comprises various LaTeX packages, providing among others:
1823 better accessibility support for PDF files; extensible chemists reaction
1824 arrows; record information about document class(es) used; and many more.")
1825 (license license:lppl1.3+)))
1826
1827 (define-public texlive-latex-tools
1828 (package
1829 (name "texlive-latex-tools")
1830 (version (number->string %texlive-revision))
1831 (source (origin
1832 (method svn-fetch)
1833 (uri (texlive-ref "latex" "tools"))
1834 (file-name (string-append name "-" version "-checkout"))
1835 (sha256
1836 (base32
1837 "0vj7h1fgf1396h4qjdc2m07y08i54gbbfrxl8y327cn3r1n093s6"))))
1838 (build-system texlive-build-system)
1839 (arguments
1840 '(#:tex-directory "latex/tools"
1841 #:build-targets '("tools.ins")))
1842 (home-page "https://www.ctan.org/pkg/latex-tools")
1843 (synopsis "LaTeX standard tools bundle")
1844 (description
1845 "This package is a collection of (variously) simple tools provided as
1846 part of the LaTeX required tools distribution, comprising the following
1847 packages: afterpage, array, bm, calc, dcolumn, delarray, enumerate, fileerr,
1848 fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol,
1849 rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim,
1850 xr, and xspace.")
1851 (license license:lppl1.3+)))
1852
1853 (define-public texlive-latex-url
1854 (package
1855 (name "texlive-latex-url")
1856 (version (number->string %texlive-revision))
1857 (source (origin
1858 (method svn-fetch)
1859 (uri (svn-reference
1860 (url (string-append "svn://www.tug.org/texlive/tags/"
1861 %texlive-tag "/Master/texmf-dist/"
1862 "/tex/latex/url"))
1863 (revision %texlive-revision)))
1864 (file-name (string-append name "-" version "-checkout"))
1865 (sha256
1866 (base32
1867 "184s2543cwia5l7iibhlkl1ffbncfhjpv5p56zq0c15by5sghlac"))))
1868 (build-system trivial-build-system)
1869 (arguments
1870 `(#:modules ((guix build utils))
1871 #:builder
1872 (begin
1873 (use-modules (guix build utils))
1874 (let ((target (string-append (assoc-ref %outputs "out")
1875 "/share/texmf-dist/tex/latex/url")))
1876 (mkdir-p target)
1877 (copy-recursively (assoc-ref %build-inputs "source") target)
1878 #t))))
1879 (home-page "https://www.ctan.org/pkg/url")
1880 (synopsis "Verbatim with URL-sensitive line breaks")
1881 (description "The command @code{\\url} is a form of verbatim command that
1882 allows linebreaks at certain characters or combinations of characters, accepts
1883 reconfiguration, and can usually be used in the argument to another command.
1884 The command is intended for email addresses, hypertext links,
1885 directories/paths, etc., which normally have no spaces, so by default the
1886 package ignores spaces in its argument. However, a package option allows
1887 spaces, which is useful for operating systems where spaces are a common part
1888 of file names.")
1889 ;; The license header states that it is under LPPL version 2 or later, but
1890 ;; the latest version is 1.3c.
1891 (license license:lppl1.3c+)))
1892
1893 (define-public texlive-latex-l3kernel
1894 (package
1895 (name "texlive-latex-l3kernel")
1896 (version (number->string %texlive-revision))
1897 (source (origin
1898 (method svn-fetch)
1899 (uri (texlive-ref "latex" "l3kernel"))
1900 (file-name (string-append name "-" version "-checkout"))
1901 (sha256
1902 (base32
1903 "0p3fsxap1ilwjz356aq4s5ygwvdscis8bh93g8klf8mhrd8cr2jy"))))
1904 (build-system texlive-build-system)
1905 (arguments
1906 '(#:tex-directory "latex/l3kernel"))
1907 (home-page "https://www.ctan.org/pkg/l3kernel")
1908 (synopsis "LaTeX3 programmers’ interface")
1909 (description
1910 "The l3kernel bundle provides an implementation of the LaTeX3
1911 programmers’ interface, as a set of packages that run under LaTeX 2e. The
1912 interface provides the foundation on which the LaTeX3 kernel and other future
1913 code are built: it is an API for TeX programmers. The packages are set up so
1914 that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
1915 (license license:lppl1.3c+)))
1916
1917 (define-public texlive-latex-l3packages
1918 (package
1919 (name "texlive-latex-l3packages")
1920 (version (number->string %texlive-revision))
1921 (source (origin
1922 (method svn-fetch)
1923 (uri (texlive-ref "latex" "l3packages"))
1924 (file-name (string-append name "-" version "-checkout"))
1925 (sha256
1926 (base32
1927 "0pyx0hffiyss363vv7fkrcdiaf7p099xnq0mngzqc7v8v9q849hs"))))
1928 (build-system texlive-build-system)
1929 (arguments
1930 '(#:tex-directory "latex/l3packages"
1931 ;; build-targets must be specified manually since they are in
1932 ;; sub-directories.
1933 #:build-targets '("l3keys2e.ins" "xparse.ins" "xfrac.ins" "xfp.ins" "xtemplate.ins")
1934 #:phases
1935 (modify-phases %standard-phases
1936 ;; All package sources are in sub-directories, so we need to add them
1937 ;; to TEXINPUTS.
1938 (add-after 'unpack 'set-TEXINPUTS
1939 (lambda _
1940 (let ((cwd (getcwd)))
1941 (setenv "TEXINPUTS"
1942 (string-append cwd "/l3keys2e:"
1943 cwd "/xparse:"
1944 cwd "/xfrac:"
1945 cwd "/xfp:"
1946 cwd "/xtemplate"
1947 ;; The terminating ":" is required to include the
1948 ;; l3kernel input as well.
1949 ":")))
1950 #t)))
1951 ))
1952 (propagated-inputs
1953 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
1954 (home-page "https://www.ctan.org/pkg/l3packages")
1955 (synopsis "High-level LaTeX3 concepts")
1956 (description
1957 "This bundle holds prototype implementations of concepts for a LaTeX
1958 designer interface, to be used with the experimental LaTeX kernel as
1959 programming tools and kernel sup­port. Packages provided in this release are:
1960
1961 @enumerate
1962 @item l3keys2e, which makes the facilities of the kernel module l3keys
1963 available for use by LaTeX 2e packages;
1964 @item xfrac, which provides flexible splitlevel fractions;
1965 @item xparse, which provides a high-level interface for declaring document
1966 commands; and
1967 @item xtemplate, which provides a means of defining generic functions using a
1968 key-value syntax.
1969 @end enumerate\n")
1970 (license license:lppl1.3c+)))
1971
1972 (define-public texlive-latex-fontspec
1973 (package
1974 (name "texlive-latex-fontspec")
1975 (version (number->string %texlive-revision))
1976 (source (origin
1977 (method svn-fetch)
1978 (uri (texlive-ref "latex" "fontspec"))
1979 (file-name (string-append name "-" version "-checkout"))
1980 (sha256
1981 (base32
1982 "1p0mkn6iywl0k4m9cx3hnhylpi499inisff3f72pcf349baqsnvq"))))
1983 (build-system texlive-build-system)
1984 (arguments
1985 '(#:tex-directory "latex/fontspec"
1986 #:phases
1987 (modify-phases %standard-phases
1988 (add-after 'install 'install-default-fontspec.cfg
1989 (lambda* (#:key outputs #:allow-other-keys)
1990 (with-output-to-file
1991 (string-append (assoc-ref outputs "out")
1992 "/share/texmf-dist/tex/latex/fontspec/fontspec.cfg")
1993 (lambda _
1994 (display "\
1995 %%% FONTSPEC.CFG %%%
1996 %
1997 % This configuration file sets up TeX Ligatures by default for all fonts loaded
1998 % with `\\setmainfont` and `\\setsansfont`.
1999 %
2000 % In addition, `\\setmonofont` has default features to enforce \"monospace\"
2001 % settings with regard to space stretchability and shrinkability.
2002
2003 \\defaultfontfeatures
2004 [\\rmfamily,\\sffamily]
2005 {Ligatures=TeX}
2006
2007 \\defaultfontfeatures
2008 [\\ttfamily]
2009 {WordSpace={1,0,0},
2010 HyphenChar=None,
2011 PunctuationSpace=WordSpace}
2012 ")))
2013 #t)))))
2014 (propagated-inputs
2015 `(("texlive-latex-l3packages" ,texlive-latex-l3packages)))
2016 (home-page "https://www.ctan.org/pkg/fontspec")
2017 (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX")
2018 (description
2019 "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an
2020 automatic and unified interface to feature-rich AAT and OpenType fonts through
2021 the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires
2022 the l3kernel and xparse bundles from the LaTeX 3 development team.")
2023 (license license:lppl1.3+)))
2024
2025 ;; The SVN directory contains little more than a dtx file that generates three
2026 ;; of the many lua files that should be installed as part of this package.
2027 ;; This is why we take the release from GitHub instead.
2028 (define-public texlive-luatex-lualibs
2029 (package
2030 (name "texlive-luatex-lualibs")
2031 (version "2.5")
2032 (source (origin
2033 (method url-fetch)
2034 (uri (string-append "https://github.com/lualatex/lualibs/"
2035 "releases/download/v"
2036 version "/lualibs.zip"))
2037 (file-name (string-append name "-" version ".zip"))
2038 (sha256
2039 (base32
2040 "1xx9blvrmx9hyhrl345lpai9m6xxnw997261a1ahn1bm5r2j5fqy"))))
2041 (build-system gnu-build-system)
2042 (arguments
2043 `(#:make-flags
2044 (list (string-append "DESTDIR="
2045 (assoc-ref %outputs "out")
2046 "/share/texmf-dist"))
2047 #:phases
2048 (modify-phases %standard-phases
2049 (delete 'configure))))
2050 (native-inputs
2051 `(("texlive-bin" ,texlive-bin)
2052 ("unzip" ,unzip)
2053 ("zip" ,zip)))
2054 (home-page "https://github.com/lualatex/lualibs")
2055 (synopsis "Lua modules for general programming (in the (La)TeX world)")
2056 (description
2057 "Lualibs is a collection of Lua modules useful for general programming.
2058 The bundle is based on Lua modules shipped with ConTeXt, and made available in
2059 this bundle for use independent of ConTeXt.")
2060 ;; GPL version 2 only
2061 (license license:gpl2)))
2062
2063 (define-public texlive-luatex-luaotfload
2064 (package
2065 (name "texlive-luatex-luaotfload")
2066 (version "2.8-fix-2")
2067 ;; The release tarball does not contain all source files.
2068 (source (origin
2069 (method git-fetch)
2070 (uri (git-reference
2071 (url "https://github.com/lualatex/luaotfload.git")
2072 (commit (string-append "v" version))))
2073 (file-name (git-file-name name version))
2074 (sha256
2075 (base32
2076 "0l5l7iq3dxcxl65qaghcpjg27yd9iw1sxa8pnd7xlvlm09dhfdnf"))))
2077 (build-system gnu-build-system)
2078 (arguments
2079 `(#:make-flags
2080 (list (string-append "DESTDIR="
2081 (assoc-ref %outputs "out")
2082 "/share/texmf-dist")
2083 "all")
2084 #:parallel-build? #f ; not supported
2085 #:phases
2086 (modify-phases %standard-phases
2087 (replace 'configure
2088 (lambda* (#:key inputs #:allow-other-keys)
2089 (substitute* "doc/Makefile"
2090 (("rst2man") "rst2man.py")
2091 ;; Don't build the PDF. This requires more of LaTeX.
2092 (("\\$\\(DOCPDF\\)") ""))
2093
2094 (substitute* "Makefile"
2095 ;; We don't build the PDF, so don't attempt to install it.
2096 (("cp \\$\\(RESOURCES\\) \\$\\(DOCPDF\\)")
2097 "cp $(RESOURCES)")
2098 (("= \\$\\(DOCPDF\\)") "= ")
2099 ;; Fix name of fontloader file
2100 (("^LOADER.*= \\$\\(BUILDDIR\\)/fontloader-\\$\\(shell date \\+%F\\).lua")
2101 "LOADER = $(BUILDDIR)/fontloader.lua"))
2102
2103 (mkdir "build")
2104
2105 ;; Don't download this file.
2106 (copy-file (assoc-ref inputs "glyphlist")
2107 "build/glyphlist.txt")
2108
2109 ;; Don't use git
2110 (let ((notes
2111 `((committer . "Philipp Gesang <phg@phi-gamma.net>")
2112 (description . ,version)
2113 (loader . "fontloader.lua")
2114 (revision . "ad480924393fffa2896156e1a32c22f5c61120dd")
2115 (timestamp . "2019-01-01 00:00:00 +0000"))))
2116 (substitute* "scripts/mkstatus"
2117 (("local notes.*=.*")
2118 (string-append "local notes = {"
2119 (string-join
2120 (map (lambda (entry)
2121 (format "[\"~a\"]=\"~a\","
2122 (symbol->string (car entry))
2123 (cdr entry)))
2124 notes))
2125 "}"))))
2126 #t)))))
2127 (native-inputs
2128 `(("zip" ,zip)
2129 ("unzip" ,unzip)
2130 ("graphviz" ,graphviz)
2131 ("lualatex" ,(texlive-union (list texlive-luatex-lualibs
2132 texlive-context-base)))
2133 ("python-docutils" ,python-docutils)
2134 ("glyphlist"
2135 ,(origin
2136 (method url-fetch)
2137 (uri (string-append "https://raw.githubusercontent.com/adobe-type-tools/"
2138 "agl-aglfn/b2a04cb906f9257cc06a2fe0ad4b3d663bc02136/"
2139 "glyphlist.txt"))
2140 (sha256
2141 (base32 "1s6svfw23rqzdvflv8frgd4xrwvrmsj8szwzqgcd39dp9rpjafjp"))))))
2142 (propagated-inputs
2143 `(("texlive-luatex-lualibs" ,texlive-luatex-lualibs)))
2144 (home-page "https://github.com/lualatex/luaotfload")
2145 (synopsis "OpenType font loader for LuaTeX")
2146 (description
2147 "Luaotfload is an adaptation of the ConTeXt font loading system for the
2148 Plain and LaTeX formats. It allows OpenType fonts to be loaded with font
2149 features accessible using an extended font request syntax while providing
2150 compatibilitywith XeTeX. By indexing metadata in a database it facilitates
2151 loading fonts by their proper names instead of file names.")
2152 ;; GPL version 2 only
2153 (license license:gpl2)))
2154
2155 (define-public texlive-latex-amsmath
2156 (package
2157 (name "texlive-latex-amsmath")
2158 (version (number->string %texlive-revision))
2159 (source (origin
2160 (method svn-fetch)
2161 (uri (texlive-ref "latex" "amsmath"))
2162 (file-name (string-append name "-" version "-checkout"))
2163 (sha256
2164 (base32
2165 "0arvk7gn32mshnfdad5qkgf3i1arxq77k3vq7wnpm4nwnrzclxal"))))
2166 (build-system texlive-build-system)
2167 (arguments '(#:tex-directory "latex/amsmath"))
2168 (home-page "https://www.ctan.org/pkg/amsmath")
2169 (synopsis "AMS mathematical facilities for LaTeX")
2170 (description
2171 "This is the principal package in the AMS-LaTeX distribution. It adapts
2172 for use in LaTeX most of the mathematical features found in AMS-TeX; it is
2173 highly recommended as an adjunct to serious mathematical typesetting in LaTeX.
2174 When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold
2175 symbols), @code{amsopnamsopn} (for operator names) and
2176 @code{amstextamstext} (for text embedded in mathematics) are also loaded.
2177 This package is part of the LaTeX required distribution; however, several
2178 contributed packages add still further to its appeal; examples are
2179 @code{empheqempheq}, which provides functions for decorating and highlighting
2180 mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
2181 definitions.")
2182 (license license:lppl1.3c+)))
2183
2184 (define-public texlive-latex-amscls
2185 (package
2186 (name "texlive-latex-amscls")
2187 (version (number->string %texlive-revision))
2188 (source (origin
2189 (method svn-fetch)
2190 (uri (texlive-ref "latex" "amscls"))
2191 (file-name (string-append name "-" version "-checkout"))
2192 (sha256
2193 (base32
2194 "0c2j9xh4qpi0x1vvcxdjxq6say0zhyr569fryi5cmhp8bclh4kca"))))
2195 (build-system texlive-build-system)
2196 (arguments
2197 `(#:tex-directory "latex/amscls"))
2198 (home-page "https://www.ctan.org/pkg/amscls")
2199 (synopsis "AMS document classes for LaTeX")
2200 (description
2201 "This bundle contains three AMS classes: @code{amsartamsart} (for writing
2202 articles for the AMS), @code{amsbookamsbook} (for books) and
2203 @code{amsprocamsproc} (for proceedings), together with some supporting
2204 material. The material is made available as part of the AMS-LaTeX
2205 distribution.")
2206 (license license:lppl1.3c+)))
2207
2208 (define-public texlive-latex-babel
2209 (package
2210 (name "texlive-latex-babel")
2211 (version (number->string %texlive-revision))
2212 (source (origin
2213 (method svn-fetch)
2214 (uri (texlive-ref "latex" "babel"))
2215 (file-name (string-append name "-" version "-checkout"))
2216 (sha256
2217 (base32
2218 "0yhlfiz3fjc8jd46f1zrjj4jig48l8rrzh8cmd8ammml8z9a01z6"))))
2219 (build-system texlive-build-system)
2220 (arguments
2221 '(#:tex-directory "generic/babel"
2222 #:phases
2223 (modify-phases %standard-phases
2224 ;; This package tries to produce babel.aux twice but refuses to
2225 ;; overwrite the first one.
2226 (add-before 'build 'fix-ins
2227 (lambda _
2228 (substitute* "babel.ins"
2229 (("askonceonly") "askforoverwritefalse"))
2230 #t)))))
2231 (home-page "https://www.ctan.org/pkg/babel")
2232 (synopsis "Multilingual support for Plain TeX or LaTeX")
2233 (description
2234 "The package manages culturally-determined typographical (and other)
2235 rules, and hyphenation patterns for a wide range of languages. A document may
2236 select a single language to be supported, or it may select several, in which
2237 case the document may switch from one language to another in a variety of
2238 ways. Babel uses contributed configuration files that provide the detail of
2239 what has to be done for each language. Users of XeTeX are advised to use the
2240 polyglossia package rather than Babel.")
2241 (license license:lppl1.3+)))
2242
2243 (define-public texlive-generic-babel-english
2244 (package
2245 (name "texlive-generic-babel-english")
2246 (version (number->string %texlive-revision))
2247 (source (origin
2248 (method svn-fetch)
2249 (uri (texlive-ref "generic" "babel-english"))
2250 (file-name (string-append name "-" version "-checkout"))
2251 (sha256
2252 (base32
2253 "1s404wbx91z5w65hm024kyl4h56zsa096irx18vsx8jvlmwsr5wc"))))
2254 (build-system texlive-build-system)
2255 (arguments '(#:tex-directory "generic/babel-english"))
2256 (home-page "https://www.ctan.org/pkg/babel-english")
2257 (synopsis "Babel support for English")
2258 (description
2259 "This package provides the language definition file for support of
2260 English in @code{babel}. Care is taken to select British hyphenation patterns
2261 for British English and Australian text, and default (\"american\") patterns
2262 for Canadian and USA text.")
2263 (license license:lppl1.3+)))
2264
2265 (define-public texlive-generic-babel-german
2266 (package
2267 (name "texlive-generic-babel-german")
2268 (version (number->string %texlive-revision))
2269 (source (origin
2270 (method svn-fetch)
2271 (uri (texlive-ref "generic" "babel-german"))
2272 (file-name (string-append name "-" version "-checkout"))
2273 (sha256
2274 (base32
2275 "0h47s67gnhdaxfgbf8pirp5vw4z6rrhxl8zav803yjxka0096i3y"))))
2276 (build-system texlive-build-system)
2277 (arguments '(#:tex-directory "generic/babel-german"))
2278 (home-page "https://www.ctan.org/pkg/babel-german")
2279 (synopsis "Babel support for German")
2280 (description
2281 "This package provides the language definition file for support of German
2282 in @code{babel}. It provides all the necessary macros, definitions and
2283 settings to typeset German documents. The bundle includes support for the
2284 traditional and reformed German orthography as well as for the Austrian and
2285 Swiss varieties of German.")
2286 (license license:lppl1.3+)))
2287
2288 (define-public texlive-latex-cyrillic
2289 (package
2290 (name "texlive-latex-cyrillic")
2291 (version (number->string %texlive-revision))
2292 (source (origin
2293 (method svn-fetch)
2294 (uri (texlive-ref "latex" "cyrillic"))
2295 (file-name (string-append name "-" version "-checkout"))
2296 (sha256
2297 (base32
2298 "083xbwg7hrnlv47fkwvz8yjb830bhxx7y0mq7z7nz2f96y2ldr6b"))))
2299 (build-system texlive-build-system)
2300 (arguments
2301 '(#:tex-directory "latex/cyrillic"))
2302 (home-page "https://www.ctan.org/pkg/latex-cyrillic")
2303 (synopsis "Support for Cyrillic fonts in LaTeX")
2304 (description
2305 "This bundle of macros files provides macro support (including font
2306 encoding macros) for the use of Cyrillic characters in fonts encoded under the
2307 T2* and X2 encodings. These encodings cover (between them) pretty much every
2308 language that is written in a Cyrillic alphabet.")
2309 (license license:lppl1.3c+)))
2310
2311 (define-public texlive-latex-psnfss
2312 (package
2313 (name "texlive-latex-psnfss")
2314 (version (number->string %texlive-revision))
2315 (source (origin
2316 (method svn-fetch)
2317 (uri (texlive-ref "latex" "psnfss"))
2318 (file-name (string-append name "-" version "-checkout"))
2319 (sha256
2320 (base32
2321 "1920dcq8613yzprasbg80fh4fcjcidvvl54wkx438nimyxcri7qz"))))
2322 (build-system texlive-build-system)
2323 (arguments '(#:tex-directory "latex/psnfss"))
2324 (home-page "https://www.ctan.org/pkg/psnfss")
2325 (synopsis "Font support for common PostScript fonts")
2326 (description
2327 "The PSNFSS collection includes a set of files that provide a complete
2328 working setup of the LaTeX font selection scheme (NFSS2) for use with common
2329 PostScript fonts. It covers the so-called \"Base\" fonts (which are built
2330 into any Level 2 PostScript printing device and the Ghostscript interpreter)
2331 and a number of free fonts. It provides font definition files, macros and
2332 font metrics. The bundle as a whole is part of the LaTeX required set of
2333 packages.")
2334 (license license:lppl1.2+)))
2335
2336 ;; For user profiles
2337 (define-public texlive-base
2338 (let ((default-packages
2339 (list texlive-bin
2340 texlive-dvips
2341 texlive-fontname
2342 texlive-fonts-cm
2343 texlive-fonts-latex
2344 texlive-metafont-base
2345 texlive-latex-base
2346 ;; LaTeX packages from the "required" set.
2347 texlive-latex-amsmath
2348 texlive-latex-amscls
2349 texlive-latex-babel
2350 texlive-generic-babel-english
2351 texlive-latex-cyrillic
2352 texlive-latex-graphics
2353 texlive-latex-psnfss
2354 texlive-latex-tools)))
2355 (package
2356 (name "texlive-base")
2357 (version (number->string %texlive-revision))
2358 (source #f)
2359 (build-system trivial-build-system)
2360 (arguments
2361 '(#:builder
2362 (begin (mkdir (assoc-ref %outputs "out")))))
2363 (propagated-inputs
2364 (map (lambda (package)
2365 (list (package-name package) package))
2366 default-packages))
2367 (home-page (package-home-page texlive-bin))
2368 (synopsis "TeX Live base packages")
2369 (description "This is a very limited subset of the TeX Live distribution.
2370 It includes little more than the required set of LaTeX packages.")
2371 (license (fold (lambda (package result)
2372 (match (package-license package)
2373 ((lst ...)
2374 (append lst result))
2375 ((? license:license? license)
2376 (cons license result))))
2377 '()
2378 default-packages)))))
2379
2380 ;; For use in package definitions only
2381 (define-public texlive-union
2382 (lambda* (#:optional (packages '()))
2383 "Return 'texlive-union' package which is a union of PACKAGES and the
2384 standard LaTeX packages."
2385 (let ((default-packages (match (package-propagated-inputs texlive-base)
2386 (((labels packages) ...) packages))))
2387 (package (inherit texlive-base)
2388 (name "texlive-union")
2389 (build-system trivial-build-system)
2390 (arguments
2391 '(#:modules ((guix build union)
2392 (guix build utils)
2393 (guix build texlive-build-system)
2394 (guix build gnu-build-system)
2395 (guix build gremlin)
2396 (guix elf))
2397 #:builder
2398 (begin
2399 (use-modules (ice-9 match)
2400 (srfi srfi-26)
2401 (guix build union)
2402 (guix build utils)
2403 (guix build texlive-build-system))
2404 (let* ((out (assoc-ref %outputs "out"))
2405 (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf")))
2406 ;; Build a modifiable union of all inputs (but exclude bash)
2407 (match (filter (match-lambda
2408 ((name . _)
2409 (not (string=? "bash" name))))
2410 %build-inputs)
2411 (((names . directories) ...)
2412 (union-build (assoc-ref %outputs "out")
2413 directories
2414 #:create-all-directories? #t
2415 #:log-port (%make-void-port "w"))))
2416
2417 ;; The configuration file "texmf.cnf" is provided by the
2418 ;; "texlive-bin" package. We take it and override only the
2419 ;; setting for TEXMFROOT and TEXMF. This file won't be consulted
2420 ;; by default, though, so we still need to set TEXMFCNF.
2421 (substitute* texmf.cnf
2422 (("^TEXMFROOT = .*")
2423 (string-append "TEXMFROOT = " out "/share\n"))
2424 (("^TEXMF = .*")
2425 "TEXMF = $TEXMFROOT/share/texmf-dist\n"))
2426 (setenv "PATH" (string-append (assoc-ref %build-inputs "bash")
2427 "/bin"))
2428 (for-each
2429 (cut wrap-program <>
2430 `("TEXMFCNF" ":" suffix (,(dirname texmf.cnf)))
2431 `("TEXMF" ":" suffix (,(string-append out "/share/texmf-dist"))))
2432 (find-files (string-append out "/bin") ".*"))
2433 #t))))
2434 (inputs
2435 `(("bash" ,bash)
2436 ,@(map (lambda (package)
2437 (list (package-name package) package))
2438 (append default-packages packages))))
2439 (home-page (package-home-page texlive-bin))
2440 (synopsis "Union of TeX Live packages")
2441 (description "This package provides a subset of the TeX Live
2442 distribution.")
2443 (license (fold (lambda (package result)
2444 (match (package-license package)
2445 ((lst ...)
2446 (append lst result))
2447 ((? license:license? license)
2448 (cons license result))))
2449 '()
2450 (append default-packages packages)))))))
2451
2452 ;; For use in package definitions only
2453 (define-public texlive-tiny
2454 (package
2455 (inherit (texlive-union))
2456 (name "texlive-tiny")
2457 (description "This is a very limited subset of the TeX Live distribution.
2458 It includes little more than the required set of LaTeX packages.")))
2459
2460 (define-public texlive-latex-amsrefs
2461 (package
2462 (name "texlive-latex-amsrefs")
2463 (version (number->string %texlive-revision))
2464 (source (origin
2465 (method svn-fetch)
2466 (uri (texlive-ref "latex" "amsrefs"))
2467 (file-name (string-append name "-" version "-checkout"))
2468 (sha256
2469 (base32
2470 "15i4k479dwrpr0kspmm70g1yn4p3dkh0whyzmr93hph9bggnh1i1"))))
2471 (build-system texlive-build-system)
2472 (arguments '(#:tex-directory "latex/amsrefs"))
2473 (home-page "https://www.ctan.org/pkg/amsrefs")
2474 (synopsis "LaTeX-based replacement for BibTeX")
2475 (description
2476 "Amsrefs is a LaTeX package for bibliographies that provides an archival
2477 data format similar to the format of BibTeX database files, but adapted to
2478 make direct processing by LaTeX easier. The package can be used either in
2479 conjunction with BibTeX or as a replacement for BibTeX.")
2480 (license license:lppl1.3+)))
2481
2482 (define-public texlive-latex-bigfoot
2483 (package
2484 (name "texlive-latex-bigfoot")
2485 (version (number->string %texlive-revision))
2486 (source (origin
2487 (method svn-fetch)
2488 (uri (texlive-ref "latex" "bigfoot"))
2489 (file-name (string-append name "-" version "-checkout"))
2490 (sha256
2491 (base32
2492 "092g8alnsdwlgl1isdnqrr32l161994295kadr1n05d81xgj5wnv"))))
2493 (build-system texlive-build-system)
2494 (arguments
2495 '(#:tex-directory "latex/bigfoot"
2496 #:phases
2497 (modify-phases %standard-phases
2498 (add-after 'unpack 'remove-generated-file
2499 (lambda _
2500 (for-each delete-file (find-files "." "\\.drv$"))
2501 #t)))))
2502 (home-page "https://www.ctan.org/pkg/bigfoot")
2503 (synopsis "Footnotes for critical editions")
2504 (description
2505 "This package aims to provide a one-stop solution to requirements for
2506 footnotes. It offers: Multiple footnote apparatus superior to that of
2507 @code{manyfoot}. Footnotes can be formatted in separate paragraphs, or be run
2508 into a single paragraph (this choice may be selected per footnote series);
2509 Things you might have expected (such as @code{\\verb}-like material in
2510 footnotes, and color selections over page breaks) now work. Note that the
2511 majority of the bigfoot package's interface is identical to that of
2512 @code{manyfoot}; users should seek information from that package's
2513 documentation. The bigfoot bundle also provides the @code{perpage} and
2514 @code{suffix} packages.")
2515 (license license:gpl2+)))
2516
2517 (define-public texlive-latex-blindtext
2518 (package
2519 (name "texlive-latex-blindtext")
2520 (version (number->string %texlive-revision))
2521 (source (origin
2522 (method svn-fetch)
2523 (uri (texlive-ref "latex" "blindtext"))
2524 (file-name (string-append name "-" version "-checkout"))
2525 (sha256
2526 (base32
2527 "1jrja9b1pzdh9zgv1jh807w4xijqja58n2mqny6dkwicv8qfgbfg"))))
2528 (build-system texlive-build-system)
2529 (arguments '(#:tex-directory "latex/blindtext"))
2530 (home-page "https://www.ctan.org/pkg/blindtext")
2531 (synopsis "Producing 'blind' text for testing")
2532 (description
2533 "The package provides the commands @code{\\blindtext} and
2534 @code{\\Blindtext} for creating \"blind\" text useful in testing new classes
2535 and packages, and @code{\\blinddocument}, @code{\\Blinddocument} for creating
2536 an entire random document with sections, lists, mathematics, etc. The package
2537 supports three languages, @code{english}, @code{(n)german} and @code{latin};
2538 the @code{latin} option provides a short \"lorem ipsum\" (for a fuller \"lorem
2539 ipsum\" text, see the @code{lipsum} package).")
2540 (license license:lppl)))
2541
2542 (define-public texlive-latex-dinbrief
2543 (package
2544 (name "texlive-latex-dinbrief")
2545 (version (number->string %texlive-revision))
2546 (source (origin
2547 (method svn-fetch)
2548 (uri (texlive-ref "latex" "dinbrief"))
2549 (file-name (string-append name "-" version "-checkout"))
2550 (sha256
2551 (base32
2552 "0lb0kiy8fxzl6cnhcw1sggy6jrjvcd6kj1kkw3k9lkimm388yjz6"))))
2553 (build-system texlive-build-system)
2554 (arguments
2555 '(#:tex-directory "latex/dinbrief"
2556 #:phases
2557 (modify-phases %standard-phases
2558 (add-after 'unpack 'remove-generated-file
2559 (lambda _
2560 (delete-file "dinbrief.drv")
2561 #t))
2562 (add-after 'unpack 'fix-encoding-error
2563 (lambda _
2564 (with-fluids ((%default-port-encoding "ISO-8859-1"))
2565 (substitute* "dinbrief.dtx"
2566 (("zur Verf.+ung. In der Pr\"aambel")
2567 "zur Verf\"ung. In der Pr\"aambel")))
2568 #t)))))
2569 (home-page "https://www.ctan.org/pkg/dinbrief")
2570 (synopsis "German letter DIN style")
2571 (description
2572 "This package implements a document layout for writing letters according
2573 to the rules of DIN (Deutsches Institut für Normung, German standardisation
2574 institute). A style file for LaTeX 2.09 (with limited support of the
2575 features) is part of the package. Since the letter layout is based on a
2576 German standard, the user guide is written in German, but most macros have
2577 English names from which the user can recognize what they are used for. In
2578 addition there are example files showing how letters may be created with the
2579 package.")
2580 (license license:lppl)))
2581
2582 (define-public texlive-latex-draftwatermark
2583 (package
2584 (name "texlive-latex-draftwatermark")
2585 (version (number->string %texlive-revision))
2586 (source (origin
2587 (method svn-fetch)
2588 (uri (texlive-ref "latex" "draftwatermark"))
2589 (file-name (string-append name "-" version "-checkout"))
2590 (sha256
2591 (base32
2592 "1zyl2pcz2x529gzj5m93a1s4ipymdabf7qdjl3l1673pizd4hfyv"))))
2593 (build-system texlive-build-system)
2594 (arguments '(#:tex-directory "latex/draftwatermark"))
2595 (home-page "https://www.ctan.org/pkg/draftwatermark")
2596 (synopsis "Put a grey textual watermark on document pages")
2597 (description
2598 "This package provides a means to add a textual, light grey watermark on
2599 every page or on the first page of a document. Typical usage may consist in
2600 writing words such as DRAFT or CONFIDENTIAL across document pages. The
2601 package performs a similar function to that of @code{draftcopy}, but its
2602 implementation is output device independent, and made very simple by relying
2603 on everypage.")
2604 (license license:lppl1.3+)))
2605
2606 (define-public texlive-latex-environ
2607 (package
2608 (name "texlive-latex-environ")
2609 (version (number->string %texlive-revision))
2610 (source (origin
2611 (method svn-fetch)
2612 (uri (texlive-ref "latex" "environ"))
2613 (file-name (string-append name "-" version "-checkout"))
2614 (sha256
2615 (base32
2616 "06h28b26dyjkj9shksphgqfv4130jfkwhbw737hxn7d3yvdfffyd"))))
2617 (build-system texlive-build-system)
2618 (arguments '(#:tex-directory "latex/environ"))
2619 (home-page "https://www.ctan.org/pkg/environ")
2620 (synopsis "New interface for environments in LaTeX")
2621 (description
2622 "This package provides the @code{\\collect@@body} command (as in
2623 @code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},
2624 for collecting the body text of an environment. These commands are used to
2625 define a new author interface to creating new environments.")
2626 (license license:lppl)))
2627
2628 (define-public texlive-latex-eqparbox
2629 (package
2630 (name "texlive-latex-eqparbox")
2631 (version (number->string %texlive-revision))
2632 (source (origin
2633 (method svn-fetch)
2634 (uri (texlive-ref "latex" "eqparbox"))
2635 (file-name (string-append name "-" version "-checkout"))
2636 (sha256
2637 (base32
2638 "1ib5xdwcj5wk23wgk41m2hdcjr1dzrs4l3wwnpink9mlapz12wjs"))))
2639 (build-system texlive-build-system)
2640 (arguments '(#:tex-directory "latex/eqparbox"))
2641 (home-page "https://www.ctan.org/pkg/eqparbox")
2642 (synopsis "Create equal-widthed parboxes")
2643 (description
2644 "LaTeX users sometimes need to ensure that two or more blocks of text
2645 occupy the same amount of horizontal space on the page. To that end, the
2646 @code{eqparbox} package defines a new command, @code{\\eqparbox}, which works
2647 just like @code{\\parbox}, except that instead of specifying a width, one
2648 specifies a tag. All @code{eqparbox}es with the same tag---regardless of
2649 where they are in the document---will stretch to fit the widest
2650 @code{eqparbox} with that tag. This simple, equal-width mechanism can be used
2651 for a variety of alignment purposes, as is evidenced by the examples in
2652 @code{eqparbox}'s documentation. Various derivatives of @code{\\eqparbox} are
2653 also provided.")
2654 (license license:lppl1.3+)))
2655
2656 (define-public texlive-latex-expdlist
2657 (package
2658 (name "texlive-latex-expdlist")
2659 (version (number->string %texlive-revision))
2660 (source (origin
2661 (method svn-fetch)
2662 (uri (texlive-ref "latex" "expdlist"))
2663 (file-name (string-append name "-" version "-checkout"))
2664 (sha256
2665 (base32
2666 "1x7byk6x10njir3y9rm56glhdzrxwqag7gsnw2sqn1czlq525w7r"))))
2667 (build-system texlive-build-system)
2668 (arguments
2669 '(#:tex-directory "latex/expdlist"
2670 #:phases
2671 (modify-phases %standard-phases
2672 (add-after 'unpack 'remove-generated-file
2673 (lambda _
2674 (for-each delete-file
2675 (find-files "." "\\.drv$"))
2676 #t)))))
2677 (home-page "https://www.ctan.org/pkg/expdlist")
2678 (synopsis "Expanded description environments")
2679 (description
2680 "The package provides additional features for the LaTeX
2681 @code{description} environment, including adjustable left margin. The package
2682 also allows the user to \"break\" a list (for example, to interpose a comment)
2683 without affecting the structure of the list (this works for @code{itemize} and
2684 @code{enumerate} lists, and numbered lists remain in sequence).")
2685 (license license:lppl)))
2686
2687 (define-public texlive-latex-filemod
2688 (package
2689 (name "texlive-latex-filemod")
2690 (version (number->string %texlive-revision))
2691 (source (origin
2692 (method svn-fetch)
2693 (uri (svn-reference
2694 (url (string-append "svn://www.tug.org/texlive/tags/"
2695 %texlive-tag "/Master/texmf-dist/"
2696 "/tex/latex/filemod"))
2697 (revision %texlive-revision)))
2698 (file-name (string-append name "-" version "-checkout"))
2699 (sha256
2700 (base32
2701 "0vpxilfw69xv78f03g0j0zw0bw4qcn36whqp8phcq48qk1ax2kr2"))))
2702 (build-system trivial-build-system)
2703 (arguments
2704 `(#:modules ((guix build utils))
2705 #:builder
2706 (begin
2707 (use-modules (guix build utils))
2708 (let ((target (string-append (assoc-ref %outputs "out")
2709 "/share/texmf-dist/tex/latex/filemod")))
2710 (mkdir-p target)
2711 (copy-recursively (assoc-ref %build-inputs "source") target)
2712 #t))))
2713 (home-page "https://www.ctan.org/pkg/filemod")
2714 (synopsis "Provide file modification times, and compare them")
2715 (description
2716 "This package provides macros to read and compare the modification dates
2717 of files. The files may be @code{.tex} files, images or other files (as long
2718 as they can be found by LaTeX). It uses the @code{\\pdffilemoddate} primitive
2719 of pdfLaTeX to find the file modification date as PDF date string, parses the
2720 string and returns the value to the user. The package will also work for DVI
2721 output with recent versions of the LaTeX compiler which uses pdfLaTeX in DVI
2722 mode. The functionality is provided by purely expandable macros or by faster
2723 but non-expandable ones.")
2724 (license license:lppl1.3+)))
2725
2726 (define-public texlive-latex-ifplatform
2727 (package
2728 (name "texlive-latex-ifplatform")
2729 (version (number->string %texlive-revision))
2730 (source (origin
2731 (method svn-fetch)
2732 (uri (texlive-ref "latex" "ifplatform"))
2733 (file-name (string-append name "-" version "-checkout"))
2734 (sha256
2735 (base32
2736 "157pplavvm2z97b3jl4x41w11k6q9wgy074mfg0dwmsx5lm328jy"))))
2737 (build-system texlive-build-system)
2738 (arguments '(#:tex-directory "latex/ifplatform"))
2739 (home-page "https://www.ctan.org/pkg/ifplatform")
2740 (synopsis "Conditionals to test which platform is being used")
2741 (description
2742 "This package uses the (La)TeX extension @code{-shell-escape} to
2743 establish whether the document is being processed on a Windows or on a
2744 Unix-like system, or on Cygwin (Unix environment over a Windows system).
2745 Booleans provided are: @code{\\ifwindows}, @code{\\iflinux}, @code{\\ifmacosx}
2746 and @code{\\ifcygwin}. The package also preserves the output of @code{uname}
2747 on a Unix-like system, which may be used to distinguish between various
2748 classes of systems.")
2749 (license license:lppl)))
2750
2751 (define-public texlive-latex-natbib
2752 (package
2753 (name "texlive-latex-natbib")
2754 (version (number->string %texlive-revision))
2755 (source (origin
2756 (method svn-fetch)
2757 (uri (texlive-ref "latex" "natbib"))
2758 (file-name (string-append name "-" version "-checkout"))
2759 (sha256
2760 (base32
2761 "0aqliq0nwblxyrzhwhv77pnmk7qh2y3prgq7z7qhwcbgz5kisld7"))))
2762 (build-system texlive-build-system)
2763 (arguments '(#:tex-directory "latex/natbib"))
2764 (home-page "https://www.ctan.org/pkg/natbib")
2765 (synopsis "Flexible bibliography support")
2766 (description
2767 "This bundle provides a package that implements both author-year and
2768 numbered references, as well as much detailed of support for other
2769 bibliography use. Also provided are versions of the standard BibTeX styles
2770 that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat},
2771 @code{abbrnat}. The bibliography styles produced by @code{custom-bib} are
2772 designed from the start to be compatible with @code{natbib}.")
2773 (license license:lppl)))
2774
2775 (define-public texlive-latex-psfrag
2776 (package
2777 (name "texlive-latex-psfrag")
2778 (version (number->string %texlive-revision))
2779 (source (origin
2780 (method svn-fetch)
2781 (uri (texlive-ref "latex" "psfrag"))
2782 (file-name (string-append name "-" version "-checkout"))
2783 (sha256
2784 (base32
2785 "1dxbl5il7wbbsp0v45vk884xi1192wxw03849pb1g5q4x808n352"))))
2786 (build-system texlive-build-system)
2787 (arguments '(#:tex-directory "latex/psfrag"))
2788 (home-page "https://www.ctan.org/pkg/psfrag")
2789 (synopsis "Replace strings in encapsulated PostScript figures")
2790 (description
2791 "This package allows LaTeX constructions (equations, picture
2792 environments, etc.) to be precisely superimposed over Encapsulated PostScript
2793 figures, using your own favorite drawing tool to create an EPS figure and
2794 placing simple text \"tags\" where each replacement is to be placed, with
2795 PSfrag automatically removing these tags from the figure and replacing them
2796 with a user specified LaTeX construction, properly aligned, scaled, and/or
2797 rotated.")
2798 (license (license:fsf-free "file://psfrag.dtx"))))
2799
2800 (define-public texlive-latex-xkeyval
2801 (package
2802 (name "texlive-latex-xkeyval")
2803 (version (number->string %texlive-revision))
2804 (source (origin
2805 (method svn-fetch)
2806 (uri (texlive-ref "latex" "xkeyval"))
2807 (file-name (string-append name "-" version "-checkout"))
2808 (sha256
2809 (base32
2810 "0wancavix39j240pd8m9cgmwsijwx6jd6n54v8wg0x2rk5m44myp"))))
2811 (build-system texlive-build-system)
2812 (arguments '(#:tex-directory "latex/xkeyval"))
2813 (home-page "https://www.ctan.org/pkg/xkeyval")
2814 (synopsis "Macros for defining and setting keys")
2815 (description
2816 "This package is an extension of the @code{keyval} package and offers
2817 more flexible macros for defining and setting keys. The package provides a
2818 pointer and a preset system. Furthermore, it supplies macros to allow class
2819 and package options to contain options of the @code{key=value} form. A LaTeX
2820 kernel patch is provided to avoid premature expansions of macros in class or
2821 package options. A specialized system for setting @code{PSTricks} keys is
2822 provided by the @code{pst-xkey} package.")
2823 (license license:lppl1.3+)))
2824
2825 (define-public texlive-latex-pstool
2826 (package
2827 (name "texlive-latex-pstool")
2828 (version (number->string %texlive-revision))
2829 (source (origin
2830 (method svn-fetch)
2831 (uri (svn-reference
2832 (url (string-append "svn://www.tug.org/texlive/tags/"
2833 %texlive-tag "/Master/texmf-dist/"
2834 "/tex/latex/pstool"))
2835 (revision %texlive-revision)))
2836 (file-name (string-append name "-" version "-checkout"))
2837 (sha256
2838 (base32
2839 "1h816jain8c9nky75kk8pmmwj5b4yf9dpqvdvi2l6jhfj5iqkzr8"))))
2840 (build-system trivial-build-system)
2841 (arguments
2842 `(#:modules ((guix build utils))
2843 #:builder
2844 (begin
2845 (use-modules (guix build utils))
2846 (let ((target (string-append (assoc-ref %outputs "out")
2847 "/share/texmf-dist/tex/latex/pstool")))
2848 (mkdir-p target)
2849 (copy-recursively (assoc-ref %build-inputs "source") target)
2850 #t))))
2851 (propagated-inputs
2852 `(("texlive-latex-bigfoot" ,texlive-latex-bigfoot) ; for suffix
2853 ("texlive-latex-filemod" ,texlive-latex-filemod)
2854 ("texlive-latex-graphics" ,texlive-latex-graphics)
2855 ("texlive-latex-ifplatform" ,texlive-latex-ifplatform)
2856 ("texlive-latex-l3kernel" ,texlive-latex-l3kernel) ; for expl3
2857 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
2858 ("texlive-latex-psfrag" ,texlive-latex-psfrag)
2859 ("texlive-latex-tools" ,texlive-latex-tools) ; for shellesc
2860 ("texlive-latex-trimspaces" ,texlive-latex-trimspaces)
2861 ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
2862 (home-page "https://www.ctan.org/pkg/pstool")
2863 (synopsis "Process PostScript graphics within pdfLaTeX documents")
2864 (description
2865 "This is a package for processing PostScript graphics with @code{psfrag}
2866 labels within pdfLaTeX documents. Every graphic is compiled individually,
2867 drastically speeding up compilation time when only a single figure needs
2868 re-processing.")
2869 (license license:lppl)))
2870
2871 (define-public texlive-latex-seminar
2872 (package
2873 (name "texlive-latex-seminar")
2874 (version (number->string %texlive-revision))
2875 (source (origin
2876 (method svn-fetch)
2877 (uri (svn-reference
2878 (url (string-append "svn://www.tug.org/texlive/tags/"
2879 %texlive-tag "/Master/texmf-dist/"
2880 "/tex/latex/seminar"))
2881 (revision %texlive-revision)))
2882 (file-name (string-append name "-" version "-checkout"))
2883 (sha256
2884 (base32
2885 "0y4i651b75y6006n03x8n86bsqvjsailvvz9bhzy51dzsznqidq0"))))
2886 (build-system trivial-build-system)
2887 (arguments
2888 `(#:modules ((guix build utils))
2889 #:builder
2890 (begin
2891 (use-modules (guix build utils))
2892 (let ((target (string-append (assoc-ref %outputs "out")
2893 "/share/texmf-dist/tex/latex/seminar")))
2894 (mkdir-p target)
2895 (copy-recursively (assoc-ref %build-inputs "source") target)
2896 #t))))
2897 (home-page "https://www.ctan.org/pkg/seminar")
2898 (synopsis "Make overhead slides")
2899 ;; TODO: This package may need fancybox and xcomment at runtime.
2900 (description
2901 "This package provides a class that produces overhead
2902 slides (transparencies), with many facilities. Seminar is not nowadays
2903 reckoned a good basis for a presentation — users are advised to use more
2904 recent classes such as powerdot or beamer, both of which are tuned to
2905 21st-century presentation styles.")
2906 (license license:lppl1.2+)))
2907
2908 (define-public texlive-latex-trimspaces
2909 (package
2910 (name "texlive-latex-trimspaces")
2911 (version (number->string %texlive-revision))
2912 (source (origin
2913 (method svn-fetch)
2914 (uri (texlive-ref "latex" "trimspaces"))
2915 (file-name (string-append name "-" version "-checkout"))
2916 (sha256
2917 (base32
2918 "0da00lb32am4g63mn96625wg48p3pj3spx79lajrk17d549apwqa"))))
2919 (build-system texlive-build-system)
2920 (arguments
2921 '(#:tex-directory "latex/trimspaces"
2922 #:tex-format "latex"
2923 #:phases
2924 (modify-phases %standard-phases
2925 (add-after 'unpack 'fix-bug
2926 (lambda _
2927 ;; The "ins" file refers to the wrong source file.
2928 (substitute* "trimspaces.ins"
2929 (("pstool.tex") "trimspaces.tex"))
2930 #t)))))
2931 (inputs
2932 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
2933 (home-page "https://www.ctan.org/pkg/trimspaces")
2934 (synopsis "Trim spaces around an argument or within a macro")
2935 (description
2936 "This very short package allows you to expandably remove spaces around a
2937 token list (commands are provided to remove spaces before, spaces after, or
2938 both); or to remove surrounding spaces within a macro definition, or to define
2939 space-stripped macros.")
2940 (license license:lppl)))
2941
2942 (define-public texlive-latex-capt-of
2943 (package
2944 (name "texlive-latex-capt-of")
2945 (version (number->string %texlive-revision))
2946 (source (origin
2947 (method svn-fetch)
2948 (uri (svn-reference
2949 (url (string-append "svn://www.tug.org/texlive/tags/"
2950 %texlive-tag "/Master/texmf-dist/"
2951 "/tex/latex/capt-of"))
2952 (revision %texlive-revision)))
2953 (file-name (string-append name "-" version "-checkout"))
2954 (sha256
2955 (base32
2956 "1y2s50f6lz0jx2748lj3iy56hrpcczgnbzmvphxv7aqndyyamd4x"))))
2957 (build-system trivial-build-system)
2958 (arguments
2959 `(#:modules ((guix build utils))
2960 #:builder
2961 (begin
2962 (use-modules (guix build utils))
2963 (let ((target (string-append (assoc-ref %outputs "out")
2964 "/share/texmf-dist/tex/latex/capt-of")))
2965 (mkdir-p target)
2966 (copy-recursively (assoc-ref %build-inputs "source") target)
2967 #t))))
2968 (home-page "https://www.ctan.org/pkg/capt-of")
2969 (synopsis "Captions on more than floats")
2970 (description
2971 "This package defines a command @code{\\captionof} for putting a caption
2972 to something that's not a float.")
2973 (license license:lppl)))
2974
2975 (define-public texlive-latex-doi
2976 (package
2977 (name "texlive-latex-doi")
2978 (version (number->string %texlive-revision))
2979 (source (origin
2980 (method svn-fetch)
2981 (uri (svn-reference
2982 (url (string-append "svn://www.tug.org/texlive/tags/"
2983 %texlive-tag "/Master/texmf-dist/"
2984 "/tex/latex/doi"))
2985 (revision %texlive-revision)))
2986 (file-name (string-append name "-" version "-checkout"))
2987 (sha256
2988 (base32
2989 "0378rdmrgr2lzbfi4qqy4dfpj5im20diyd8z8b9m4mlg05r7wgnb"))))
2990 (build-system trivial-build-system)
2991 (arguments
2992 `(#:modules ((guix build utils))
2993 #:builder
2994 (begin
2995 (use-modules (guix build utils))
2996 (let ((target (string-append (assoc-ref %outputs "out")
2997 "/share/texmf-dist/tex/latex/doi")))
2998 (mkdir-p target)
2999 (copy-recursively (assoc-ref %build-inputs "source") target)
3000 #t))))
3001 (home-page "https://www.ctan.org/pkg/doi")
3002 (synopsis "Create correct hyperlinks for DOI numbers")
3003 (description
3004 "You can hyperlink DOI numbers to doi.org. However, some publishers have
3005 elected to use nasty characters in their DOI numbering scheme (@code{<},
3006 @code{>}, @code{_} and @code{;} have all been spotted). This will either
3007 upset LaTeX, or your PDF reader. This package contains a single user-level
3008 command @code{\\doi{}}, which takes a DOI number, and creates a correct
3009 hyperlink to the target of the DOI.")
3010 ;; Any version of the LPPL.
3011 (license license:lppl1.3+)))
3012
3013 (define-public texlive-latex-etoolbox
3014 (package
3015 (name "texlive-latex-etoolbox")
3016 (version (number->string %texlive-revision))
3017 (source (origin
3018 (method svn-fetch)
3019 (uri (svn-reference
3020 (url (string-append "svn://www.tug.org/texlive/tags/"
3021 %texlive-tag "/Master/texmf-dist/"
3022 "/tex/latex/etoolbox"))
3023 (revision %texlive-revision)))
3024 (file-name (string-append name "-" version "-checkout"))
3025 (sha256
3026 (base32
3027 "1agmq6bf8wzcd77n20ng8bl4kh69cg5f6sjniii7bcw4llhd3nc8"))))
3028 (build-system trivial-build-system)
3029 (arguments
3030 `(#:modules ((guix build utils))
3031 #:builder
3032 (begin
3033 (use-modules (guix build utils))
3034 (let ((target (string-append (assoc-ref %outputs "out")
3035 "/share/texmf-dist/tex/latex/etoolbox")))
3036 (mkdir-p target)
3037 (copy-recursively (assoc-ref %build-inputs "source") target)
3038 #t))))
3039 (home-page "https://www.ctan.org/pkg/etoolbox")
3040 (synopsis "e-TeX tools for LaTeX")
3041 (description
3042 "This package is a toolbox of programming facilities geared primarily
3043 towards LaTeX class and package authors. It provides LaTeX frontends to some
3044 of the new primitives provided by e-TeX as well as some generic tools which
3045 are not strictly related to e-TeX but match the profile of this package. The
3046 package provides functions that seem to offer alternative ways of implementing
3047 some LaTeX kernel commands; nevertheless, the package will not modify any part
3048 of the LaTeX kernel.")
3049 (license license:lppl1.3+)))
3050
3051 (define-public texlive-latex-fncychap
3052 (package
3053 (name "texlive-latex-fncychap")
3054 (version (number->string %texlive-revision))
3055 (source (origin
3056 (method svn-fetch)
3057 (uri (svn-reference
3058 (url (string-append "svn://www.tug.org/texlive/tags/"
3059 %texlive-tag "/Master/texmf-dist/"
3060 "/tex/latex/fncychap"))
3061 (revision %texlive-revision)))
3062 (file-name (string-append name "-" version "-checkout"))
3063 (sha256
3064 (base32
3065 "0fdk84dbicfjfprkz6vk15x36mvlhaw9isjmgkc56jp2khwjswwq"))))
3066 (build-system trivial-build-system)
3067 (arguments
3068 `(#:modules ((guix build utils))
3069 #:builder
3070 (begin
3071 (use-modules (guix build utils))
3072 (let ((target (string-append (assoc-ref %outputs "out")
3073 "/share/texmf-dist/tex/latex/fncychap")))
3074 (mkdir-p target)
3075 (copy-recursively (assoc-ref %build-inputs "source") target)
3076 #t))))
3077 (home-page "https://www.ctan.org/pkg/fncychap")
3078 (synopsis "Seven predefined chapter heading styles")
3079 (description
3080 "This package provides seven predefined chapter heading styles. Each
3081 style can be modified using a set of simple commands. Optionally one can
3082 modify the formatting routines in order to create additional chapter
3083 headings.")
3084 (license license:lppl1.3+)))
3085
3086 (define-public texlive-latex-framed
3087 (package
3088 (name "texlive-latex-framed")
3089 (version (number->string %texlive-revision))
3090 (source (origin
3091 (method svn-fetch)
3092 (uri (svn-reference
3093 (url (string-append "svn://www.tug.org/texlive/tags/"
3094 %texlive-tag "/Master/texmf-dist/"
3095 "/tex/latex/framed"))
3096 (revision %texlive-revision)))
3097 (file-name (string-append name "-" version "-checkout"))
3098 (sha256
3099 (base32
3100 "14a4ydqsvp3vcfavl21jrv0ybiqypaaqzg2q2cs3rzkandg7w98x"))))
3101 (build-system trivial-build-system)
3102 (arguments
3103 `(#:modules ((guix build utils))
3104 #:builder
3105 (begin
3106 (use-modules (guix build utils))
3107 (let ((target (string-append (assoc-ref %outputs "out")
3108 "/share/texmf-dist/tex/latex/framed")))
3109 (mkdir-p target)
3110 (copy-recursively (assoc-ref %build-inputs "source") target)
3111 #t))))
3112 (home-page "https://www.ctan.org/pkg/framed")
3113 (synopsis "Framed or shaded regions that can break across pages")
3114 (description
3115 "The package creates three environments: @code{framed}, which puts an
3116 ordinary frame box around the region, @code{shaded}, which shades the region,
3117 and @code{leftbar}, which places a line at the left side. The environments
3118 allow a break at their start (the @code{\\FrameCommand} enables creation of a
3119 title that is “attached” to the environment); breaks are also allowed in the
3120 course of the framed/shaded matter. There is also a command
3121 @code{\\MakeFramed} to make your own framed-style environments.")
3122 ;; The header states: "These macros may be freely transmitted, reproduced,
3123 ;; or modified for any purpose provided that this notice is left intact."
3124 (license (license:fsf-free "file://framed.sty"))))
3125
3126 (define-public texlive-latex-g-brief
3127 (package
3128 (name "texlive-latex-g-brief")
3129 (version (number->string %texlive-revision))
3130 (source (origin
3131 (method svn-fetch)
3132 (uri (texlive-ref "latex" "g-brief"))
3133 (file-name (string-append name "-" version "-checkout"))
3134 (sha256
3135 (base32
3136 "0sikazkg0dpkcpzlbqw8qzxr81paf2f443vsrh14jnw7s4gswvc5"))))
3137 (build-system texlive-build-system)
3138 (arguments
3139 '(#:tex-directory "latex/g-brief"
3140 #:phases
3141 (modify-phases %standard-phases
3142 (add-after 'unpack 'remove-generated-file
3143 (lambda _
3144 (delete-file "g-brief.drv")
3145 #t)))))
3146 (home-page "https://www.ctan.org/pkg/g-brief")
3147 (synopsis "Letter document class")
3148 (description
3149 "This package is designed for formatting formless letters in German; it
3150 can also be used for English (by those who can read the documentation). There
3151 are LaTeX 2.09 @code{documentstyle} and LaTeX 2e class files for both an
3152 \"old\" and a \"new\" version of g-brief.")
3153 (license license:lppl)))
3154
3155 (define-public texlive-latex-galois
3156 (package
3157 (name "texlive-latex-galois")
3158 (version (number->string %texlive-revision))
3159 (source (origin
3160 (method svn-fetch)
3161 (uri (texlive-ref "latex" "galois"))
3162 (file-name (string-append name "-" version "-checkout"))
3163 (sha256
3164 (base32
3165 "0d4l0msk8j5pi95xnmm9wygv1vbpkwkv5amx9l0km86cs79jpp1h"))))
3166 (build-system texlive-build-system)
3167 (arguments '(#:tex-directory "latex/galois"))
3168 (home-page "https://www.ctan.org/pkg/galois")
3169 (synopsis "Typeset Galois connections")
3170 (description
3171 "The package deals with connections in two-dimensional style, optionally
3172 in colour.")
3173 (license license:lppl)))
3174
3175 (define-public texlive-latex-gcite
3176 (package
3177 (name "texlive-latex-gcite")
3178 (version (number->string %texlive-revision))
3179 (source (origin
3180 (method svn-fetch)
3181 (uri (texlive-ref "latex" "gcite"))
3182 (file-name (string-append name "-" version "-checkout"))
3183 (sha256
3184 (base32
3185 "03g9by54yrypn599y98r1xh7qw0bbbmpzq0bfwpj6j5q5rkl1mfa"))))
3186 (build-system texlive-build-system)
3187 (arguments '(#:tex-directory "latex/gcite"))
3188 (home-page "https://www.ctan.org/pkg/gcite")
3189 (synopsis "Citations in a reader-friendly style")
3190 (description
3191 "The package allows citations in the German style, which is considered by
3192 many to be particularly reader-friendly. The citation provides a small amount
3193 of bibliographic information in a footnote on the page where each citation is
3194 made. It combines a desire to eliminate unnecessary page-turning with the
3195 look-up efficiency afforded by numeric citations. The package makes use of
3196 BibLaTeX, and is considered experimental.")
3197 (license license:lppl1.3+)))
3198
3199 (define-public texlive-latex-geometry
3200 (package
3201 (name "texlive-latex-geometry")
3202 (version (number->string %texlive-revision))
3203 (source (origin
3204 (method svn-fetch)
3205 (uri (texlive-ref "latex" "geometry"))
3206 (file-name (string-append name "-" version "-checkout"))
3207 (sha256
3208 (base32
3209 "0yw6bjfgsli3s1dldsgb7mkr7lnk329cgdjbgs8z2xn59pmmdsn4"))))
3210 (build-system texlive-build-system)
3211 (arguments '(#:tex-directory "latex/geometry"))
3212 (propagated-inputs
3213 `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek))) ;for ifpdf
3214 (home-page "https://www.ctan.org/pkg/geometry")
3215 (synopsis "Flexible and complete interface to document dimensions")
3216 (description
3217 "This package provides an easy and flexible user interface to customize
3218 page layout, implementing auto-centering and auto-balancing mechanisms so that
3219 the users have only to give the least description for the page layout. The
3220 package knows about all the standard paper sizes, so that the user need not
3221 know what the nominal \"real\" dimensions of the paper are, just its standard
3222 name (such as a4, letter, etc.). An important feature is the package's
3223 ability to communicate the paper size it's set up to the output.")
3224 (license license:lppl)))
3225
3226 (define-public texlive-latex-mdwtools
3227 (package
3228 (name "texlive-latex-mdwtools")
3229 (version (number->string %texlive-revision))
3230 (source (origin
3231 (method svn-fetch)
3232 (uri (texlive-ref "latex" "mdwtools"))
3233 (file-name (string-append name "-" version "-checkout"))
3234 (sha256
3235 (base32
3236 "0caxs74hla28hc67csf5i5ahadx97w8vxh3mdmsprxbpd1mr7ssg"))))
3237 (build-system texlive-build-system)
3238 (arguments '(#:tex-directory "latex/mdwtools"))
3239 (home-page "https://www.ctan.org/pkg/mdwtools")
3240 (synopsis "Miscellaneous tools by Mark Wooding")
3241 (description
3242 "This collection of tools includes: @code{atsupport} for short commands
3243 starting with @code{@@}, macros to sanitize the OT1 encoding of the
3244 @code{cmtt} fonts; a @code{doafter} command; improved @code{footnote} support;
3245 @code{mathenv} for various alignment in maths; list handling; @code{mdwmath}
3246 which adds some minor changes to LaTeX maths; a rewrite of LaTeX's tabular and
3247 array environments; verbatim handling; and syntax diagrams.")
3248 (license license:gpl3+)))
3249
3250 (define-public texlive-latex-polyglossia
3251 (package
3252 (name "texlive-latex-polyglossia")
3253 (version (number->string %texlive-revision))
3254 (source (origin
3255 (method svn-fetch)
3256 (uri (texlive-ref "latex" "polyglossia"))
3257 (file-name (string-append name "-" version "-checkout"))
3258 (sha256
3259 (base32
3260 "03ma58z3ypsbp7zgkzb1ylpn2ygr27cxzkf042ns0rif4g8s491f"))))
3261 (build-system texlive-build-system)
3262 (arguments '(#:tex-directory "latex/polyglossia"))
3263 (home-page "https://www.ctan.org/pkg/polyglossia")
3264 (synopsis "Alternative to babel for XeLaTeX and LuaLaTeX")
3265 (description
3266 "This package provides a complete Babel replacement for users of LuaLaTeX
3267 and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least.")
3268 (license license:lppl1.3+)))
3269
3270 (define-public texlive-latex-supertabular
3271 (package
3272 (name "texlive-latex-supertabular")
3273 (version (number->string %texlive-revision))
3274 (source (origin
3275 (method svn-fetch)
3276 (uri (texlive-ref "latex" "supertabular"))
3277 (file-name (string-append name "-" version "-checkout"))
3278 (sha256
3279 (base32
3280 "14b2bc7cqz4ckxxycim9sw6jkrr1pahivm1rdbpz5k6hl967w1s3"))))
3281 (build-system texlive-build-system)
3282 (arguments '(#:tex-directory "latex/supertabular"))
3283 (home-page "https://www.ctan.org/pkg/supertabular")
3284 (synopsis "Multi-page tables package")
3285 (description
3286 "This package was a predecessor of @code{longtable}; the newer
3287 package (designed on quite different principles) is easier to use and more
3288 flexible, in many cases, but supertabular retains its usefulness in a few
3289 situations where longtable has problems.")
3290 (license license:lppl1.3+)))
3291
3292 (define-public texlive-tex-texinfo
3293 (package
3294 (name "texlive-tex-texinfo")
3295 (version (number->string %texlive-revision))
3296 (source (origin
3297 (method svn-fetch)
3298 (uri (svn-reference
3299 (url (string-append "svn://www.tug.org/texlive/tags/"
3300 %texlive-tag "/Master/texmf-dist/"
3301 "/tex/texinfo"))
3302 (revision %texlive-revision)))
3303 (file-name (string-append name "-" version "-checkout"))
3304 (sha256
3305 (base32
3306 "06cf821y1j7jdg93pb41ayigrfwgn0y49d7w1025zlijjxi6bvjp"))))
3307 (build-system trivial-build-system)
3308 (arguments
3309 `(#:modules ((guix build utils))
3310 #:builder
3311 (begin
3312 (use-modules (guix build utils))
3313 (let ((target (string-append (assoc-ref %outputs "out")
3314 "/share/texmf-dist/tex/texinfo")))
3315 (mkdir-p target)
3316 (copy-recursively (assoc-ref %build-inputs "source") target)
3317 #t))))
3318 (home-page "https://www.ctan.org/pkg/texinfo")
3319 (synopsis "TeX macros to handle Texinfo files")
3320 (description
3321 "Texinfo is the preferred format for documentation in the GNU project;
3322 the format may be used to produce online or printed output from a single
3323 source. The Texinfo macros may be used to produce printable output using TeX;
3324 other programs in the distribution offer online interactive use (with
3325 hypertext linkages in some cases).")
3326 (license license:gpl3+)))
3327
3328 (define-public texlive-latex-upquote
3329 (package
3330 (name "texlive-latex-upquote")
3331 (version (number->string %texlive-revision))
3332 (source (origin
3333 (method svn-fetch)
3334 (uri (texlive-ref "latex" "upquote"))
3335 (file-name (string-append name "-" version "-checkout"))
3336 (sha256
3337 (base32
3338 "0d1050i973wnxigy0xpky5l7vn4ff7ldhkjpdqsw5s653gagwixp"))))
3339 (build-system texlive-build-system)
3340 (arguments '(#:tex-directory "latex/upquote"))
3341 (home-page "https://www.ctan.org/pkg/upquote")
3342 (synopsis "Show \"realistic\" quotes in verbatim")
3343 (description
3344 "Typewriter-style fonts are best for program listings, but Computer
3345 Modern Typewriter prints @code{`} and @code{'} as bent opening and closing
3346 single quotes. Other fonts, and most programming languages, print @code{`} as
3347 a grave accent and @code{'} upright; @code{'} is used both to open and to
3348 close quoted strings. The package switches the typewriter font to Computer
3349 Modern Typewriter in OT1 encoding, and modifies the behaviour of
3350 @code{verbatim}, @code{verbatim*}, @code{\\verb}, and @code{\\verb*} to print
3351 in the expected way. It does this regardless of other fonts or encodings in
3352 use, so long as the package is loaded after the other fonts were. The package
3353 does not affect @code{\\tt}, @code{\\texttt}, etc.")
3354 (license license:lppl1.2+)))
3355
3356 (define-public texlive-latex-anysize
3357 (package
3358 (name "texlive-latex-anysize")
3359 (version (number->string %texlive-revision))
3360 (source (origin
3361 (method svn-fetch)
3362 (uri (svn-reference
3363 (url (string-append "svn://www.tug.org/texlive/tags/"
3364 %texlive-tag "/Master/texmf-dist/"
3365 "/tex/latex/anysize"))
3366 (revision %texlive-revision)))
3367 (file-name (string-append name "-" version "-checkout"))
3368 (sha256
3369 (base32
3370 "19khwqjlvznc955sijhww3c4zbb0053rvzwv9nz738qknq7y18vb"))))
3371 (build-system trivial-build-system)
3372 (arguments
3373 `(#:modules ((guix build utils))
3374 #:builder
3375 (begin
3376 (use-modules (guix build utils))
3377 (let ((target (string-append (assoc-ref %outputs "out")
3378 "/share/texmf-dist/tex/latex/anysize")))
3379 (mkdir-p target)
3380 (copy-recursively (assoc-ref %build-inputs "source") target)
3381 #t))))
3382 (home-page "https://www.ctan.org/pkg/anysize")
3383 (synopsis "Simple package to set up document margins")
3384 (description
3385 "This is a simple package to set up document margins. This package is
3386 considered obsolete; alternatives are the @code{typearea} package from the
3387 @code{koma-script} bundle, or the @code{geometry} package.")
3388 (license license:public-domain)))
3389
3390 (define-public texlive-latex-appendix
3391 (package
3392 (name "texlive-latex-appendix")
3393 (version (number->string %texlive-revision))
3394 (source (origin
3395 (method svn-fetch)
3396 (uri (texlive-ref "latex" "appendix"))
3397 (file-name (string-append name "-" version "-checkout"))
3398 (sha256
3399 (base32
3400 "0rxfpr8vq3brwx5rc7qn91ixlp9zva4zrms8a579fqa1g5yva7vg"))))
3401 (build-system texlive-build-system)
3402 (arguments '(#:tex-directory "latex/appendix"))
3403 (home-page "https://www.ctan.org/pkg/appendix")
3404 (synopsis "Extra control of appendices")
3405 (description
3406 "The appendix package provides various ways of formatting the titles of
3407 appendices. Also (sub)appendices environments are provided that can be used,
3408 for example, for per chapter/section appendices. An @code{appendices}
3409 environment is provided which can be used instead of the @code{\\appendix}
3410 command.")
3411 (license license:lppl)))
3412
3413 (define-public texlive-latex-changebar
3414 (package
3415 (name "texlive-latex-changebar")
3416 (version (number->string %texlive-revision))
3417 (source (origin
3418 (method svn-fetch)
3419 (uri (texlive-ref "latex" "changebar"))
3420 (file-name (string-append name "-" version "-checkout"))
3421 (sha256
3422 (base32
3423 "05x15ilynqrl448h8l6qiraygamdldlngz89a2bw7kg74fym14ch"))))
3424 (build-system texlive-build-system)
3425 (arguments '(#:tex-directory "latex/changebar"))
3426 (home-page "https://www.ctan.org/pkg/changebar")
3427 (synopsis "Generate changebars in LaTeX documents")
3428 (description
3429 "Identify areas of text to be marked with changebars with the
3430 @code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured. The
3431 package uses @code{drivers} to place the bars; the available drivers can work
3432 with @code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI
3433 drivers, and VTeX and pdfTeX.")
3434 (license license:lppl)))
3435
3436 (define-public texlive-latex-cmap
3437 (package
3438 (name "texlive-latex-cmap")
3439 (version (number->string %texlive-revision))
3440 (source (origin
3441 (method svn-fetch)
3442 (uri (svn-reference
3443 (url (string-append "svn://www.tug.org/texlive/tags/"
3444 %texlive-tag "/Master/texmf-dist/"
3445 "/tex/latex/cmap"))
3446 (revision %texlive-revision)))
3447 (file-name (string-append name "-" version "-checkout"))
3448 (sha256
3449 (base32
3450 "1s1rv6zgw105w2j6ffhnk914qrix87y1ndzri1q72g2kbr91zlbg"))))
3451 (build-system trivial-build-system)
3452 (arguments
3453 `(#:modules ((guix build utils))
3454 #:builder
3455 (begin
3456 (use-modules (guix build utils))
3457 (let ((target (string-append (assoc-ref %outputs "out")
3458 "/share/texmf-dist/tex/latex/cmap")))
3459 (mkdir-p target)
3460 (copy-recursively (assoc-ref %build-inputs "source") target)
3461 #t))))
3462 (home-page "https://www.tug.org/svn/texlive/tags/texlive-2017.1/\
3463 Master/texmf-dist/tex/latex/cmap/")
3464 (synopsis "CMap support for PDF files")
3465 (description
3466 "This package embeds CMap tables into PDF files to make search and
3467 copy-and-paste functions work properly.")
3468 (license license:lppl)))
3469
3470 (define-public texlive-latex-colortbl
3471 (package
3472 (name "texlive-latex-colortbl")
3473 (version (number->string %texlive-revision))
3474 (source (origin
3475 (method svn-fetch)
3476 (uri (texlive-ref "latex" "colortbl"))
3477 (file-name (string-append name "-" version "-checkout"))
3478 (sha256
3479 (base32
3480 "190pmq8la2rq07xry8bn8z8yywzxv6fqyqaj7yjfj5rgw6x0mas8"))))
3481 (build-system texlive-build-system)
3482 (arguments '(#:tex-directory "latex/colortbl"))
3483 (home-page "https://www.ctan.org/pkg/colortbl")
3484 (synopsis "Add colour to LaTeX tables")
3485 (description
3486 "This package allows rows, columns, and even individual cells in LaTeX
3487 tables to be coloured.")
3488 (license license:lppl)))
3489
3490 (define-public texlive-latex-fancybox
3491 (package
3492 (name "texlive-latex-fancybox")
3493 (version (number->string %texlive-revision))
3494 (source (origin
3495 (method svn-fetch)
3496 (uri (svn-reference
3497 (url (string-append "svn://www.tug.org/texlive/tags/"
3498 %texlive-tag "/Master/texmf-dist/"
3499 "/tex/latex/fancybox"))
3500 (revision %texlive-revision)))
3501 (file-name (string-append name "-" version "-checkout"))
3502 (sha256
3503 (base32
3504 "0smmnaad2q8qwicay1frri990lv65l0k8cwzsvdsyp3jk8kp042w"))))
3505 (build-system trivial-build-system)
3506 (arguments
3507 `(#:modules ((guix build utils))
3508 #:builder
3509 (begin
3510 (use-modules (guix build utils))
3511 (let ((target (string-append (assoc-ref %outputs "out")
3512 "/share/texmf-dist/tex/latex/fancybox")))
3513 (mkdir-p target)
3514 (copy-recursively (assoc-ref %build-inputs "source") target)
3515 #t))))
3516 (home-page "https://www.ctan.org/pkg/fancybox")
3517 (synopsis "Variants of \\fbox and other games with boxes")
3518 (description
3519 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},
3520 @code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for
3521 using box macros and flexible verbatim macros. You can box mathematics,
3522 floats, center, flushleft, and flushright, lists, and pages.")
3523 (license license:lppl1.2+)))
3524
3525 (define-public texlive-latex-fancyhdr
3526 (package
3527 (name "texlive-latex-fancyhdr")
3528 (version (number->string %texlive-revision))
3529 (source (origin
3530 (method svn-fetch)
3531 (uri (svn-reference
3532 (url (string-append "svn://www.tug.org/texlive/tags/"
3533 %texlive-tag "/Master/texmf-dist/"
3534 "/tex/latex/fancyhdr"))
3535 (revision %texlive-revision)))
3536 (file-name (string-append name "-" version "-checkout"))
3537 (sha256
3538 (base32
3539 "1xsnzx7vgdfh9zh2m7bjz6bgdpxsgb1kyc19p50vhs34x5nbgsnr"))))
3540 (build-system trivial-build-system)
3541 (arguments
3542 `(#:modules ((guix build utils))
3543 #:builder
3544 (begin
3545 (use-modules (guix build utils))
3546 (let ((target (string-append (assoc-ref %outputs "out")
3547 "/share/texmf-dist/tex/latex/fancyhdr")))
3548 (mkdir-p target)
3549 (copy-recursively (assoc-ref %build-inputs "source") target)
3550 #t))))
3551 (home-page "https://www.ctan.org/pkg/fancyhdr")
3552 (synopsis "Extensive control of page headers and footers in LaTeX2e")
3553 (description
3554 "The package provides extensive facilities, both for constructing headers
3555 and footers, and for controlling their use (for example, at times when LaTeX
3556 would automatically change the heading style in use).")
3557 (license license:lppl)))
3558
3559 (define-public texlive-latex-float
3560 (package
3561 (name "texlive-latex-float")
3562 (version (number->string %texlive-revision))
3563 (source (origin
3564 (method svn-fetch)
3565 (uri (texlive-ref "latex" "float"))
3566 (file-name (string-append name "-" version "-checkout"))
3567 (sha256
3568 (base32
3569 "0nbl7wylkv22fcdv4p8byhhj575fli6jnqjpkhrkbv8dzwah84nq"))))
3570 (build-system texlive-build-system)
3571 (arguments '(#:tex-directory "latex/float"))
3572 (home-page "https://www.ctan.org/pkg/float")
3573 (synopsis "Improved interface for floating objects")
3574 (description
3575 "This package improves the interface for defining floating objects such
3576 as figures and tables. It introduces the boxed float, the ruled float and the
3577 plaintop float. You can define your own floats and improve the behaviour of
3578 the old ones. The package also provides the @code{H} float modifier option of
3579 the obsolete @code{here} package. You can select this as automatic default
3580 with @code{\\floatplacement{figure}{H}}.")
3581 (license license:lppl)))
3582
3583 (define-public texlive-latex-footmisc
3584 (package
3585 (name "texlive-latex-footmisc")
3586 (version (number->string %texlive-revision))
3587 (source (origin
3588 (method svn-fetch)
3589 (uri (texlive-ref "latex" "footmisc"))
3590 (file-name (string-append name "-" version "-checkout"))
3591 (sha256
3592 (base32
3593 "03x61wwql8nh6zrqiiiq3rb0x7m3pn48c606zapy19y21fybwdxs"))))
3594 (build-system texlive-build-system)
3595 (arguments '(#:tex-directory "latex/footmisc"))
3596 (home-page "https://www.ctan.org/pkg/footmisc")
3597 (synopsis "Range of footnote options")
3598 (description
3599 "This is a collection of ways to change the typesetting of footnotes.
3600 The package provides means of changing the layout of the footnotes themselves,
3601 a way to number footnotes per page, to make footnotes disappear in a
3602 \"moving\" argument, and to deal with multiple references to footnotes from
3603 the same place. The package also has a range of techniques for labelling
3604 footnotes with symbols rather than numbers.")
3605 (license license:lppl1.3+)))
3606
3607 (define-public texlive-latex-listings
3608 (package
3609 (name "texlive-latex-listings")
3610 (version (number->string %texlive-revision))
3611 (source (origin
3612 (method svn-fetch)
3613 (uri (texlive-ref "latex" "listings"))
3614 (file-name (string-append name "-" version "-checkout"))
3615 (sha256
3616 (base32
3617 "1nsn9wp3wl12b36c0sqrim33lf33cr5wky0h4ncnw8lvqgm7h8wf"))))
3618 (build-system texlive-build-system)
3619 (arguments
3620 '(#:tex-directory "latex/listings"
3621 #:build-targets '("listings.ins")))
3622 (home-page "https://www.ctan.org/pkg/listings")
3623 (synopsis "Typeset source code listings using LaTeX")
3624 (description
3625 "The package enables the user to typeset programs (programming code)
3626 within LaTeX; the source code is read directly by TeX---no front-end processor
3627 is needed. Keywords, comments and strings can be typeset using different
3628 styles. Support for @code{hyperref} is provided.")
3629 (license license:lppl1.3+)))
3630
3631 (define-public texlive-latex-jknapltx
3632 (package
3633 (name "texlive-latex-jknapltx")
3634 (version (number->string %texlive-revision))
3635 (source (origin
3636 (method svn-fetch)
3637 (uri (svn-reference
3638 (url (string-append "svn://www.tug.org/texlive/tags/"
3639 %texlive-tag "/Master/texmf-dist/"
3640 "/tex/latex/jknapltx"))
3641 (revision %texlive-revision)))
3642 (file-name (string-append name "-" version "-checkout"))
3643 (sha256
3644 (base32
3645 "0m034x72f2g07icr50gacyxfb9g1lz2rmqh4kqr1qjb421x2kds9"))))
3646 (build-system trivial-build-system)
3647 (arguments
3648 `(#:modules ((guix build utils))
3649 #:builder
3650 (begin
3651 (use-modules (guix build utils))
3652 (let ((target (string-append (assoc-ref %outputs "out")
3653 "/share/texmf-dist/tex/latex/jknapltx")))
3654 (mkdir-p target)
3655 (copy-recursively (assoc-ref %build-inputs "source") target)
3656 #t))))
3657 (home-page "https://www.ctan.org/pkg/jknappen")
3658 (synopsis "Miscellaneous packages by Joerg Knappen")
3659 (description
3660 "This package provides miscellaneous macros by Joerg Knappen, including:
3661 represent counters in greek; Maxwell's non-commutative division;
3662 @code{latin1jk}, @code{latin2jk} and @code{latin3jk}, which are
3663 @code{inputenc} definition files that allow verbatim input in the respective
3664 ISO Latin codes; blackboard bold fonts in maths; use of RSFS fonts in maths;
3665 extra alignments for @code{\\parboxes}; swap Roman and Sans fonts;
3666 transliterate semitic languages; patches to make (La)TeX formulae embeddable
3667 in SGML; use maths minus in text as appropriate; simple Young tableaux.")
3668 (license license:gpl2)))
3669
3670 (define-public texlive-fonts-ec
3671 (package
3672 (name "texlive-fonts-ec")
3673 (version (number->string %texlive-revision))
3674 (source (origin
3675 (method svn-fetch)
3676 (uri (svn-reference
3677 (url (string-append "svn://www.tug.org/texlive/tags/"
3678 %texlive-tag "/Master/texmf-dist/"
3679 "/fonts/source/jknappen/ec/"))
3680 (revision %texlive-revision)))
3681 (file-name (string-append name "-" version "-checkout"))
3682 (sha256
3683 (base32
3684 "12av65fbz9xiashm09c9m1fj1mijxls5xspd7652ry1n5s0nixy4"))))
3685 (build-system gnu-build-system)
3686 (arguments
3687 `(#:modules ((guix build gnu-build-system)
3688 (guix build utils)
3689 (srfi srfi-1)
3690 (srfi srfi-26))
3691 #:tests? #f ; no tests
3692 #:phases
3693 (modify-phases %standard-phases
3694 (delete 'configure)
3695 (replace 'build
3696 (lambda* (#:key inputs #:allow-other-keys)
3697 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
3698 ;; Tell mf where to find mf.base
3699 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
3700 ;; Tell mf where to look for source files
3701 (setenv "MFINPUTS"
3702 (string-append (getcwd) ":"
3703 mf "/share/texmf-dist/metafont/base:"
3704 (assoc-ref inputs "texlive-fonts-cm")
3705 "/share/texmf-dist/fonts/source/public/cm")))
3706 (mkdir "build")
3707 (for-each (lambda (font)
3708 (format #t "building font ~a\n" font)
3709 (invoke "mf" "-progname=mf"
3710 "-output-directory=build"
3711 (string-append "\\"
3712 "mode:=ljfour; "
3713 "mag:=1; "
3714 "batchmode; "
3715 "input " (basename font ".mf"))))
3716 (find-files "." "[0-9]+\\.mf$"))
3717 #t))
3718 (replace 'install
3719 (lambda* (#:key outputs #:allow-other-keys)
3720 (let* ((out (assoc-ref outputs "out"))
3721 (tfm (string-append
3722 out "/share/texmf-dist/fonts/tfm/jknappen/ec"))
3723 (mf (string-append
3724 out "/share/texmf-dist/fonts/source/jknappen/ec")))
3725 (for-each (cut install-file <> tfm)
3726 (find-files "build" "\\.*"))
3727 (for-each (cut install-file <> mf)
3728 (find-files "." "\\.mf"))
3729 #t))))))
3730 (native-inputs
3731 `(("texlive-bin" ,texlive-bin)
3732 ("texlive-metafont-base" ,texlive-metafont-base)
3733 ("texlive-fonts-cm" ,texlive-fonts-cm)))
3734 (home-page "https://www.ctan.org/pkg/ec")
3735 (synopsis "Computer modern fonts in T1 and TS1 encodings")
3736 (description
3737 "The EC fonts are European Computer Modern Fonts, supporting the complete
3738 LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.
3739 These fonts are intended to be stable with no changes being made to the tfm
3740 files. The set also contains a Text Companion Symbol font, called @code{tc},
3741 featuring many useful characters needed in text typesetting, for example
3742 oldstyle digits, currency symbols (including the newly created Euro symbol),
3743 the permille sign, copyright, trade mark and servicemark as well as a copyleft
3744 sign, and many others. Recent releases of LaTeX2e support the EC fonts. The
3745 EC fonts supersede the preliminary version released as the DC fonts. The
3746 fonts are available in (traced) Adobe Type 1 format, as part of the
3747 @code{cm-super} bundle. The other Computer Modern-style T1-encoded Type 1
3748 set, Latin Modern, is not actually a direct development of the EC set, and
3749 differs from the EC in a number of particulars.")
3750 (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\
3751 texlive-2017.1/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
3752
3753 (define-public texlive-fonts-adobe-times
3754 (package
3755 (name "texlive-fonts-adobe-times")
3756 (version (number->string %texlive-revision))
3757 (source (origin
3758 (method svn-fetch)
3759 (uri (svn-reference
3760 (url (string-append "svn://www.tug.org/texlive/tags/"
3761 %texlive-tag "/Master/texmf-dist/"
3762 "/fonts/type1/urw/times/"))
3763 (revision %texlive-revision)))
3764 (file-name (string-append name "-" version "-checkout"))
3765 (sha256
3766 (base32
3767 "15vzyr7favkv1mj00qxr03s89kw78nd066fh69by93272g8p5sgd"))))
3768 (build-system trivial-build-system)
3769 (arguments
3770 `(#:modules ((guix build utils)
3771 (ice-9 match))
3772 #:builder
3773 (begin
3774 (use-modules (guix build utils)
3775 (ice-9 match))
3776 (let ((root (string-append (assoc-ref %outputs "out")
3777 "/share/texmf-dist/"))
3778 (pkgs '(("source" . "fonts/type1/urw/times")
3779
3780 ("times-afm" . "fonts/afm/adobe/times")
3781 ("times-tfm" . "fonts/tfm/adobe/times")
3782 ("times-vf" . "fonts/vf/adobe/times")
3783
3784 ("urw-afm" . "fonts/afm/urw/times")
3785 ("urw35vf-tfm" . "fonts/tfm/urw35vf/times")
3786 ("urw35vf-vf" . "fonts/vf/urw35vf/times")
3787
3788 ("times-tex" . "tex/latex/times")
3789 ("dvips" . "dvips/times")
3790 ("fonts-map" . "fonts/map/dvips/times"))))
3791 (for-each (match-lambda
3792 ((pkg . dir)
3793 (let ((target (string-append root dir)))
3794 (mkdir-p target)
3795 (copy-recursively (assoc-ref %build-inputs pkg)
3796 target))))
3797 pkgs)
3798 #t))))
3799 (native-inputs
3800 `(("times-afm"
3801 ,(origin
3802 (method svn-fetch)
3803 (uri (svn-reference
3804 (url (string-append "svn://www.tug.org/texlive/tags/"
3805 %texlive-tag "/Master/texmf-dist/"
3806 "/fonts/afm/adobe/times"))
3807 (revision %texlive-revision)))
3808 (file-name (string-append name "-afm-" version "-checkout"))
3809 (sha256
3810 (base32
3811 "1k7h6vihfc6ri2lq9ggnq2g4zq3qcgq1vd0hr486g9cqrdpys6cy"))))
3812 ("times-tfm"
3813 ,(origin
3814 (method svn-fetch)
3815 (uri (svn-reference
3816 (url (string-append "svn://www.tug.org/texlive/tags/"
3817 %texlive-tag "/Master/texmf-dist/"
3818 "/fonts/tfm/adobe/times"))
3819 (revision %texlive-revision)))
3820 (file-name (string-append name "-tfm-" version "-checkout"))
3821 (sha256
3822 (base32
3823 "1hbgkjnf5xyganbznwpwszvr3iyk4bzb0ys4hd8ybawp60paadrr"))))
3824 ("times-vf"
3825 ,(origin
3826 (method svn-fetch)
3827 (uri (svn-reference
3828 (url (string-append "svn://www.tug.org/texlive/tags/"
3829 %texlive-tag "/Master/texmf-dist/"
3830 "/fonts/vf/adobe/times"))
3831 (revision %texlive-revision)))
3832 (file-name (string-append name "-vf-" version "-checkout"))
3833 (sha256
3834 (base32
3835 "18rfspnwdw9r81dy18lb4w96d09b6c4g7y80azwylalkhwdf2lfp"))))
3836 ("urw-afm"
3837 ,(origin
3838 (method svn-fetch)
3839 (uri (svn-reference
3840 (url (string-append "svn://www.tug.org/texlive/tags/"
3841 %texlive-tag "/Master/texmf-dist/"
3842 "/fonts/afm/urw/times"))
3843 (revision %texlive-revision)))
3844 (file-name (string-append name "-urw-afm-" version "-checkout"))
3845 (sha256
3846 (base32
3847 "0g0xpsyn6634g0b4rpd420v7i4gkz3zr12vcy2b8csbcscjvwri5"))))
3848 ("urw35vf-tfm"
3849 ,(origin
3850 (method svn-fetch)
3851 (uri (svn-reference
3852 (url (string-append "svn://www.tug.org/texlive/tags/"
3853 %texlive-tag "/Master/texmf-dist/"
3854 "/fonts/tfm/urw35vf/times"))
3855 (revision %texlive-revision)))
3856 (file-name (string-append name "-urw35vf-tfm-" version "-checkout"))
3857 (sha256
3858 (base32
3859 "0a4idlvpaqd0ypqgy1xw0rpx8q23bvssg8xq757zzn3zikj0w7pr"))))
3860 ("urw35vf-vf"
3861 ,(origin
3862 (method svn-fetch)
3863 (uri (svn-reference
3864 (url (string-append "svn://www.tug.org/texlive/tags/"
3865 %texlive-tag "/Master/texmf-dist/"
3866 "/fonts/vf/urw35vf/times"))
3867 (revision %texlive-revision)))
3868 (file-name (string-append name "-urw35vf-vf-" version "-checkout"))
3869 (sha256
3870 (base32
3871 "05mppwxd4c5x0yw50gca726f0ylc1rk8jf0jjkrriixq6rnw03di"))))
3872 ("times-tex"
3873 ,(origin
3874 (method svn-fetch)
3875 (uri (svn-reference
3876 (url (string-append "svn://www.tug.org/texlive/tags/"
3877 %texlive-tag "/Master/texmf-dist/"
3878 "/tex/latex/times"))
3879 (revision %texlive-revision)))
3880 (file-name (string-append name "-tex-" version "-checkout"))
3881 (sha256
3882 (base32
3883 "1gmd0x7c3vkvfzgmrsp4866rcdbyimfk3bjr91zaadc41r1i8xrp"))))
3884 ("dvips"
3885 ,(origin
3886 (method svn-fetch)
3887 (uri (svn-reference
3888 (url (string-append "svn://www.tug.org/texlive/tags/"
3889 %texlive-tag "/Master/texmf-dist/"
3890 "/dvips/times/"))
3891 (revision %texlive-revision)))
3892 (file-name (string-append name "-dvips-" version "-checkout"))
3893 (sha256
3894 (base32
3895 "1fvqpgqi7bp2q76nf5kmlhsdijxw65arqfy3ax3djwih3yg12mp0"))))
3896 ("fonts-map"
3897 ,(origin
3898 (method svn-fetch)
3899 (uri (svn-reference
3900 (url (string-append "svn://www.tug.org/texlive/tags/"
3901 %texlive-tag "/Master/texmf-dist/"
3902 "/fonts/map/dvips/times/"))
3903 (revision %texlive-revision)))
3904 (file-name (string-append name "-fonts-map-" version "-checkout"))
3905 (sha256
3906 (base32
3907 "12f00gzs2zgllkm59qdhw2xxj7lvg3p256232f1l275z3pldfqqi"))))))
3908 (home-page "https://ctan.org/pkg/urw-base35")
3909 (synopsis "URW Base 35 font pack for LaTeX")
3910 (description
3911 "This package provides a drop-in replacements for the Times font from
3912 Adobe's basic set.")
3913 ;; No license version specified.
3914 (license license:gpl3+)))
3915
3916 (define-public texlive-fonts-adobe-palatino
3917 (package
3918 (name "texlive-fonts-adobe-palatino")
3919 (version (number->string %texlive-revision))
3920 (source (origin
3921 (method svn-fetch)
3922 (uri (svn-reference
3923 (url (string-append "svn://www.tug.org/texlive/tags/"
3924 %texlive-tag "/Master/texmf-dist/"
3925 "/fonts/type1/urw/palatino/"))
3926 (revision %texlive-revision)))
3927 (file-name (string-append name "-" version "-checkout"))
3928 (sha256
3929 (base32
3930 "18dw5260c6fy7acxaqwrg3hw04kg63ijq4lkn56q5pa2g6nyylrp"))))
3931 (build-system trivial-build-system)
3932 (arguments
3933 `(#:modules ((guix build utils)
3934 (ice-9 match))
3935 #:builder
3936 (begin
3937 (use-modules (guix build utils)
3938 (ice-9 match))
3939 (let ((root (string-append (assoc-ref %outputs "out")
3940 "/share/texmf-dist/"))
3941 (pkgs '(("source" . "fonts/type1/urw/palatino")
3942
3943 ("palatino-afm" . "fonts/afm/adobe/palatino")
3944 ("palatino-tfm" . "fonts/tfm/adobe/palatino")
3945 ("palatino-vf" . "fonts/vf/adobe/palatino")
3946
3947 ("urw-afm" . "fonts/afm/urw/palatino")
3948 ("urw35vf-tfm" . "fonts/tfm/urw35vf/palatino")
3949 ("urw35vf-vf" . "fonts/vf/urw35vf/palatino")
3950
3951 ("palatino-tex" . "tex/latex/palatino")
3952 ("dvips" . "dvips/palatino")
3953 ("fonts-map" . "fonts/map/dvips/palatino"))))
3954 (for-each (match-lambda
3955 ((pkg . dir)
3956 (let ((target (string-append root dir)))
3957 (mkdir-p target)
3958 (copy-recursively (assoc-ref %build-inputs pkg)
3959 target))))
3960 pkgs)
3961 #t))))
3962 (native-inputs
3963 `(("palatino-afm"
3964 ,(origin
3965 (method svn-fetch)
3966 (uri (svn-reference
3967 (url (string-append "svn://www.tug.org/texlive/tags/"
3968 %texlive-tag "/Master/texmf-dist/"
3969 "/fonts/afm/adobe/palatino"))
3970 (revision %texlive-revision)))
3971 (file-name (string-append name "-afm-" version "-checkout"))
3972 (sha256
3973 (base32
3974 "0pxizay730cx7rb9y5bqq9dn1zxx3arc33rmdsn7l29pc51flmmi"))))
3975 ("palatino-tfm"
3976 ,(origin
3977 (method svn-fetch)
3978 (uri (svn-reference
3979 (url (string-append "svn://www.tug.org/texlive/tags/"
3980 %texlive-tag "/Master/texmf-dist/"
3981 "/fonts/tfm/adobe/palatino"))
3982 (revision %texlive-revision)))
3983 (file-name (string-append name "-tfm-" version "-checkout"))
3984 (sha256
3985 (base32
3986 "1w1vm0sk9kpsy14yhyf1v1q3c6b97cgbba74g578bcwjlh810mg0"))))
3987 ("palatino-vf"
3988 ,(origin
3989 (method svn-fetch)
3990 (uri (svn-reference
3991 (url (string-append "svn://www.tug.org/texlive/tags/"
3992 %texlive-tag "/Master/texmf-dist/"
3993 "/fonts/vf/adobe/palatino"))
3994 (revision %texlive-revision)))
3995 (file-name (string-append name "-vf-" version "-checkout"))
3996 (sha256
3997 (base32
3998 "1maqfis8hpybcn9lmm8r2b1g56620lfpsncg0742c3kkjd6dh97h"))))
3999 ("urw-afm"
4000 ,(origin
4001 (method svn-fetch)
4002 (uri (svn-reference
4003 (url (string-append "svn://www.tug.org/texlive/tags/"
4004 %texlive-tag "/Master/texmf-dist/"
4005 "/fonts/afm/urw/palatino"))
4006 (revision %texlive-revision)))
4007 (file-name (string-append name "-urw-afm-" version "-checkout"))
4008 (sha256
4009 (base32
4010 "0gk0xwy1fs2si5kb1j3dzgm52c8sagv32gd9dmw88m7sgh5qkd87"))))
4011 ("urw35vf-tfm"
4012 ,(origin
4013 (method svn-fetch)
4014 (uri (svn-reference
4015 (url (string-append "svn://www.tug.org/texlive/tags/"
4016 %texlive-tag "/Master/texmf-dist/"
4017 "/fonts/tfm/urw35vf/palatino"))
4018 (revision %texlive-revision)))
4019 (file-name (string-append name "-urw35vf-tfm-" version "-checkout"))
4020 (sha256
4021 (base32
4022 "19aq3xwfg7vkf1qzjdxgcvcdqwpvpavq3l25y64xni72qx0kmppz"))))
4023 ("urw35vf-vf"
4024 ,(origin
4025 (method svn-fetch)
4026 (uri (svn-reference
4027 (url (string-append "svn://www.tug.org/texlive/tags/"
4028 %texlive-tag "/Master/texmf-dist/"
4029 "/fonts/vf/urw35vf/palatino"))
4030 (revision %texlive-revision)))
4031 (file-name (string-append name "-urw35vf-vf-" version "-checkout"))
4032 (sha256
4033 (base32
4034 "1lkn4p6zimrs0ah6mxsang4bicp8j7xzl016529a3f168an7mdmj"))))
4035 ("palatino-tex"
4036 ,(origin
4037 (method svn-fetch)
4038 (uri (svn-reference
4039 (url (string-append "svn://www.tug.org/texlive/tags/"
4040 %texlive-tag "/Master/texmf-dist/"
4041 "/tex/latex/palatino"))
4042 (revision %texlive-revision)))
4043 (file-name (string-append name "-tex-" version "-checkout"))
4044 (sha256
4045 (base32
4046 "0ng9w7i0p1nb51amla32jj86vx6p84m6qc7asam3g4x8w5jf7s27"))))
4047 ("dvips"
4048 ,(origin
4049 (method svn-fetch)
4050 (uri (svn-reference
4051 (url (string-append "svn://www.tug.org/texlive/tags/"
4052 %texlive-tag "/Master/texmf-dist/"
4053 "/dvips/palatino/"))
4054 (revision %texlive-revision)))
4055 (file-name (string-append name "-dvips-" version "-checkout"))
4056 (sha256
4057 (base32
4058 "1pdbkfmhx4kk3brh5lg6fyl9ad2kbjmkrhgcx84klnlhq01mfdhb"))))
4059 ("fonts-map"
4060 ,(origin
4061 (method svn-fetch)
4062 (uri (svn-reference
4063 (url (string-append "svn://www.tug.org/texlive/tags/"
4064 %texlive-tag "/Master/texmf-dist/"
4065 "/fonts/map/dvips/palatino/"))
4066 (revision %texlive-revision)))
4067 (file-name (string-append name "-fonts-map-" version "-checkout"))
4068 (sha256
4069 (base32
4070 "0rg13hyp652hp3gnrj5pbyb84zkqmyi1qnm8c6spcyaq8pm06l0d"))))))
4071 (home-page "https://ctan.org/pkg/urw-base35")
4072 (synopsis "URW Base 35 font pack for LaTeX")
4073 (description
4074 "This package provides a drop-in replacements for the Palatino font from
4075 Adobe's basic set.")
4076 ;; No license version specified.
4077 (license license:gpl3+)))
4078
4079 (define-public texlive-fonts-adobe-zapfding
4080 (package
4081 (name "texlive-fonts-adobe-zapfding")
4082 (version (number->string %texlive-revision))
4083 (source (origin
4084 (method svn-fetch)
4085 (uri (svn-reference
4086 (url (string-append "svn://www.tug.org/texlive/tags/"
4087 %texlive-tag "/Master/texmf-dist/"
4088 "/fonts/type1/urw/zapfding/"))
4089 (revision %texlive-revision)))
4090 (file-name (string-append name "-" version "-checkout"))
4091 (sha256
4092 (base32
4093 "1sp3jblg3khp0yj121blvhph6ib09919kyrsk5x2lg258yypqyis"))))
4094 (build-system trivial-build-system)
4095 (arguments
4096 `(#:modules ((guix build utils)
4097 (ice-9 match))
4098 #:builder
4099 (begin
4100 (use-modules (guix build utils)
4101 (ice-9 match))
4102 (let ((root (string-append (assoc-ref %outputs "out")
4103 "/share/texmf-dist/"))
4104 (pkgs '(("source" . "fonts/type1/urw/zapfding")
4105 ("zapf-afm" . "fonts/afm/adobe/zapfding")
4106 ("zapf-tfm" . "fonts/tfm/adobe/zapfding")
4107 ("urw-afm" . "fonts/afm/urw/zapfding")
4108 ("urw35vf-tfm" . "fonts/tfm/urw35vf/zapfding")
4109
4110 ("zapf-tex" . "tex/latex/zapfding")
4111 ("dvips" . "dvips/zapfding")
4112 ("fonts-map" . "fonts/map/dvips/zapfding"))))
4113 (for-each (match-lambda
4114 ((pkg . dir)
4115 (let ((target (string-append root dir)))
4116 (mkdir-p target)
4117 (copy-recursively (assoc-ref %build-inputs pkg)
4118 target))))
4119 pkgs)
4120 #t))))
4121 (native-inputs
4122 `(("zapf-afm"
4123 ,(origin
4124 (method svn-fetch)
4125 (uri (svn-reference
4126 (url (string-append "svn://www.tug.org/texlive/tags/"
4127 %texlive-tag "/Master/texmf-dist/"
4128 "/fonts/afm/adobe/zapfding"))
4129 (revision %texlive-revision)))
4130 (file-name (string-append name "-afm-" version "-checkout"))
4131 (sha256
4132 (base32
4133 "0qvl4w1bfcpiakkd8rvkism46qnvzj9w7x4r8z9m0y7mspbkblyr"))))
4134 ("zapf-tfm"
4135 ,(origin
4136 (method svn-fetch)
4137 (uri (svn-reference
4138 (url (string-append "svn://www.tug.org/texlive/tags/"
4139 %texlive-tag "/Master/texmf-dist/"
4140 "/fonts/tfm/adobe/zapfding"))
4141 (revision %texlive-revision)))
4142 (file-name (string-append name "-tfm-" version "-checkout"))
4143 (sha256
4144 (base32
4145 "1i8mh9xsl8l4cgsg3nl4ha9q6m55j122riclaxsvkc5ka83432qm"))))
4146 ("urw-afm"
4147 ,(origin
4148 (method svn-fetch)
4149 (uri (svn-reference
4150 (url (string-append "svn://www.tug.org/texlive/tags/"
4151 %texlive-tag "/Master/texmf-dist/"
4152 "/fonts/afm/urw/zapfding"))
4153 (revision %texlive-revision)))
4154 (file-name (string-append name "-urw-afm-" version "-checkout"))
4155 (sha256
4156 (base32
4157 "0m4qndqh7ji723ff82c5c1q8ziqvblbaip7vx05vnl15fqbsnfx1"))))
4158 ("urw35vf-tfm"
4159 ,(origin
4160 (method svn-fetch)
4161 (uri (svn-reference
4162 (url (string-append "svn://www.tug.org/texlive/tags/"
4163 %texlive-tag "/Master/texmf-dist/"
4164 "/fonts/tfm/urw35vf/zapfding"))
4165 (revision %texlive-revision)))
4166 (file-name (string-append name "-urw35vf-tfm-" version "-checkout"))
4167 (sha256
4168 (base32
4169 "167g2x6mpjfqh0w1fhjbw14qcx6ridrj2zm1bd8bi0l2d7phj28m"))))
4170 ("zapf-tex"
4171 ,(origin
4172 (method svn-fetch)
4173 (uri (svn-reference
4174 (url (string-append "svn://www.tug.org/texlive/tags/"
4175 %texlive-tag "/Master/texmf-dist/"
4176 "/tex/latex/zapfding"))
4177 (revision %texlive-revision)))
4178 (file-name (string-append name "-tex-" version "-checkout"))
4179 (sha256
4180 (base32
4181 "0hp7i8f6nbrg7irrwc8fd7n1hrzjysa84d6iyivwlc65v9p7lmd0"))))
4182 ("dvips"
4183 ,(origin
4184 (method svn-fetch)
4185 (uri (svn-reference
4186 (url (string-append "svn://www.tug.org/texlive/tags/"
4187 %texlive-tag "/Master/texmf-dist/"
4188 "/dvips/zapfding/"))
4189 (revision %texlive-revision)))
4190 (file-name (string-append name "-dvips-" version "-checkout"))
4191 (sha256
4192 (base32
4193 "1f18sc4qwxykd786zhn6szcrycqvpvfhlcim71aamxmwghakd7fa"))))
4194 ("fonts-map"
4195 ,(origin
4196 (method svn-fetch)
4197 (uri (svn-reference
4198 (url (string-append "svn://www.tug.org/texlive/tags/"
4199 %texlive-tag "/Master/texmf-dist/"
4200 "/fonts/map/dvips/zapfding/"))
4201 (revision %texlive-revision)))
4202 (file-name (string-append name "-fonts-map-" version "-checkout"))
4203 (sha256
4204 (base32
4205 "17kwxmdrgz2fb072hx57a3pidcrhbgayphx11zyld2hv9149pkyl"))))))
4206 (home-page "https://ctan.org/pkg/urw-base35")
4207 (synopsis "URW Base 35 font pack for LaTeX")
4208 (description
4209 "This package provides a drop-in replacements for the Zapfding font from
4210 Adobe's basic set.")
4211 ;; No license version specified.
4212 (license license:gpl3+)))
4213
4214 (define-public texlive-fonts-rsfs
4215 (package
4216 (name "texlive-fonts-rsfs")
4217 (version (number->string %texlive-revision))
4218 (source (origin
4219 (method svn-fetch)
4220 (uri (svn-reference
4221 (url (string-append "svn://www.tug.org/texlive/tags/"
4222 %texlive-tag "/Master/texmf-dist/"
4223 "/fonts/source/public/rsfs/"))
4224 (revision %texlive-revision)))
4225 (file-name (string-append name "-" version "-checkout"))
4226 (sha256
4227 (base32
4228 "0r12pn02r4a955prcvq0048nifh86ihlcgvw3pppqqvfngv34l5h"))))
4229 (build-system gnu-build-system)
4230 (arguments
4231 `(#:modules ((guix build gnu-build-system)
4232 (guix build utils)
4233 (srfi srfi-1)
4234 (srfi srfi-26))
4235 #:tests? #f ; no tests
4236 #:phases
4237 (modify-phases %standard-phases
4238 (delete 'configure)
4239 (replace 'build
4240 (lambda* (#:key inputs #:allow-other-keys)
4241 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
4242 ;; Tell mf where to find mf.base
4243 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
4244 ;; Tell mf where to look for source files
4245 (setenv "MFINPUTS"
4246 (string-append (getcwd) ":"
4247 mf "/share/texmf-dist/metafont/base:"
4248 (assoc-ref inputs "texlive-fonts-cm")
4249 "/share/texmf-dist/fonts/source/public/cm")))
4250 (mkdir "build")
4251 (for-each (lambda (font)
4252 (format #t "building font ~a\n" font)
4253 (invoke "mf" "-progname=mf"
4254 "-output-directory=build"
4255 (string-append "\\"
4256 "mode:=ljfour; "
4257 "mag:=1; "
4258 "batchmode; "
4259 "input " (basename font ".mf"))))
4260 (find-files "." "[0-9]+\\.mf$"))
4261 #t))
4262 (replace 'install
4263 (lambda* (#:key outputs #:allow-other-keys)
4264 (let* ((out (assoc-ref outputs "out"))
4265 (tfm (string-append
4266 out "/share/texmf-dist/fonts/tfm/public/rsfs"))
4267 (mf (string-append
4268 out "/share/texmf-dist/fonts/source/public/rsfs")))
4269 (for-each (cut install-file <> tfm)
4270 (find-files "build" "\\.*"))
4271 (for-each (cut install-file <> mf)
4272 (find-files "." "\\.mf"))
4273 #t))))))
4274 (native-inputs
4275 `(("texlive-bin" ,texlive-bin)
4276 ("texlive-metafont-base" ,texlive-metafont-base)
4277 ("texlive-fonts-cm" ,texlive-fonts-cm)))
4278 (home-page "https://www.ctan.org/pkg/rsfs")
4279 (synopsis "Ralph Smith's Formal Script font")
4280 (description
4281 "The fonts provide uppercase formal script letters for use as symbols in
4282 scientific and mathematical typesetting (in contrast to the informal script
4283 fonts such as that used for the calligraphic symbols in the TeX maths symbol
4284 font). The fonts are provided as Metafont source, and as derived Adobe Type 1
4285 format. LaTeX support, for using these fonts in mathematics, is available via
4286 one of the packages @code{calrsfs} and @code{mathrsfs}.")
4287 (license (license:fsf-free "http://mirrors.ctan.org/fonts/rsfs/README"))))
4288
4289 (define-public texlive-latex-eso-pic
4290 (package
4291 (name "texlive-latex-eso-pic")
4292 (version (number->string %texlive-revision))
4293 (source (origin
4294 (method svn-fetch)
4295 (uri (texlive-ref "latex" "eso-pic"))
4296 (file-name (string-append name "-" version "-checkout"))
4297 (sha256
4298 (base32
4299 "1xvmms28mvvfpks9x7lfya2xhh5k8jy3qnlih1mzcnf156xnb89z"))))
4300 (build-system texlive-build-system)
4301 (arguments '(#:tex-directory "latex/eso-pic"))
4302 (home-page "https://www.ctan.org/pkg/eso-pic")
4303 (synopsis "Add picture commands (or backgrounds) to every page")
4304 (description
4305 "The package adds one or more user commands to LaTeX's @code{shipout}
4306 routine, which may be used to place the output at fixed positions. The
4307 @code{grid} option may be used to find the correct places.")
4308 (license license:lppl1.3+)))
4309
4310 (define-public texlive-latex-eepic
4311 (package
4312 (name "texlive-latex-eepic")
4313 (version (number->string %texlive-revision))
4314 (source (origin
4315 (method svn-fetch)
4316 (uri (svn-reference
4317 (url (string-append "svn://www.tug.org/texlive/tags/"
4318 %texlive-tag "/Master/texmf-dist/"
4319 "/tex/latex/eepic"))
4320 (revision %texlive-revision)))
4321 (file-name (string-append name "-" version "-checkout"))
4322 (sha256
4323 (base32
4324 "1c68gvh021pvybg07apsd2xhq2ljbg80kq94wh71drdga3c2zqjw"))))
4325 (build-system trivial-build-system)
4326 (arguments
4327 `(#:modules ((guix build utils))
4328 #:builder
4329 (begin
4330 (use-modules (guix build utils))
4331 (let ((target (string-append (assoc-ref %outputs "out")
4332 "/share/texmf-dist/tex/latex/eepic")))
4333 (mkdir-p target)
4334 (copy-recursively (assoc-ref %build-inputs "source") target)
4335 #t))))
4336 (home-page "https://www.ctan.org/pkg/eepic")
4337 (synopsis "Extensions to epic and the LaTeX drawing tools")
4338 (description
4339 "Extensions to @code{epic} and the LaTeX picture drawing environment,
4340 include the drawing of lines at any slope, the drawing of circles in any
4341 radii, and the drawing of dotted and dashed lines much faster with much less
4342 TeX memory, and providing several new commands for drawing ellipses, arcs,
4343 splines, and filled circles and ellipses. The package uses @code{tpic}
4344 @code{\\special} commands.")
4345 (license license:public-domain)))
4346
4347 (define-public texlive-latex-enumitem
4348 (package
4349 (name "texlive-latex-enumitem")
4350 (version (number->string %texlive-revision))
4351 (source (origin
4352 (method svn-fetch)
4353 (uri (svn-reference
4354 (url (string-append "svn://www.tug.org/texlive/tags/"
4355 %texlive-tag "/Master/texmf-dist/"
4356 "/tex/latex/enumitem"))
4357 (revision %texlive-revision)))
4358 (file-name (string-append name "-" version "-checkout"))
4359 (sha256
4360 (base32
4361 "0q24b1bkdi9l6bw787bpggww83jh2vj8955aw2m5yccqbx4vgr5r"))))
4362 (build-system trivial-build-system)
4363 (arguments
4364 `(#:modules ((guix build utils))
4365 #:builder
4366 (begin
4367 (use-modules (guix build utils))
4368 (let ((target (string-append (assoc-ref %outputs "out")
4369 "/share/texmf-dist/tex/latex/enumitem")))
4370 (mkdir-p target)
4371 (copy-recursively (assoc-ref %build-inputs "source") target)
4372 #t))))
4373 (home-page "https://www.ctan.org/pkg/enumitem")
4374 (synopsis "Customize basic list environments")
4375 (description
4376 "This package is intended to ease customizing the three basic list
4377 environments: @code{enumerate}, @code{itemize} and @code{description}. It
4378 extends their syntax to allow an optional argument where a set of parameters
4379 in the form @code{key=value} are available, for example:
4380 @code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}.")
4381 (license license:lppl1.3+)))
4382
4383 (define-public texlive-latex-multirow
4384 (package
4385 (name "texlive-latex-multirow")
4386 (version (number->string %texlive-revision))
4387 (source (origin
4388 (method svn-fetch)
4389 (uri (texlive-ref "latex" "multirow"))
4390 (file-name (string-append name "-" version "-checkout"))
4391 (sha256
4392 (base32
4393 "0qlxy47f1f8plgch3jqfsnrdgpyz20sz46yp33i2jwvf9hvfczf0"))))
4394 (build-system texlive-build-system)
4395 (arguments '(#:tex-directory "latex/multirow"))
4396 (home-page "https://www.ctan.org/pkg/multirow")
4397 (synopsis "Create tabular cells spanning multiple rows")
4398 (description
4399 "The package provides tools for creating tabular cells spanning multiple
4400 rows. It has a lot of flexibility, including an option for specifying an
4401 entry at the \"natural\" width of its text.")
4402 (license license:lppl1.3+)))
4403
4404 (define-public texlive-latex-overpic
4405 (package
4406 (name "texlive-latex-overpic")
4407 (version (number->string %texlive-revision))
4408 (source (origin
4409 (method svn-fetch)
4410 (uri (svn-reference
4411 (url (string-append "svn://www.tug.org/texlive/tags/"
4412 %texlive-tag "/Master/texmf-dist/"
4413 "/tex/latex/overpic"))
4414 (revision %texlive-revision)))
4415 (file-name (string-append name "-" version "-checkout"))
4416 (sha256
4417 (base32
4418 "1rpx4ibjncj5416rg19v0xjbj3z9avhfdfn2gzp8r8sz9vz25c6g"))))
4419 (build-system trivial-build-system)
4420 (arguments
4421 `(#:modules ((guix build utils))
4422 #:builder
4423 (begin
4424 (use-modules (guix build utils))
4425 (let ((target (string-append (assoc-ref %outputs "out")
4426 "/share/texmf-dist/tex/latex/overpic")))
4427 (mkdir-p target)
4428 (copy-recursively (assoc-ref %build-inputs "source") target)
4429 #t))))
4430 (home-page "https://www.ctan.org/pkg/overpic")
4431 (synopsis "Combine LaTeX commands over included graphics")
4432 (description
4433 "The @code{overpic} environment is a cross between the LaTeX
4434 @code{picture} environment and the @code{\\includegraphics} command of
4435 @code{graphicx}. The resulting picture environment has the same dimensions as
4436 the included graphic. LaTeX commands can be placed on the graphic at defined
4437 positions; a grid for orientation is available.")
4438 (license license:lppl1.0+)))
4439
4440 (define-public texlive-latex-parskip
4441 (package
4442 (name "texlive-latex-parskip")
4443 (version (number->string %texlive-revision))
4444 (source (origin
4445 (method svn-fetch)
4446 (uri (svn-reference
4447 (url (string-append "svn://www.tug.org/texlive/tags/"
4448 %texlive-tag "/Master/texmf-dist/"
4449 "/tex/latex/parskip"))
4450 (revision %texlive-revision)))
4451 (file-name (string-append name "-" version "-checkout"))
4452 (sha256
4453 (base32
4454 "14r6h9hqb0qgccxj5l1208694fx8sb8avmgzps36lsbbpszl7i7m"))))
4455 (build-system trivial-build-system)
4456 (arguments
4457 `(#:modules ((guix build utils))
4458 #:builder
4459 (begin
4460 (use-modules (guix build utils))
4461 (let ((target (string-append (assoc-ref %outputs "out")
4462 "/share/texmf-dist/tex/latex/parskip")))
4463 (mkdir-p target)
4464 (copy-recursively (assoc-ref %build-inputs "source") target)
4465 #t))))
4466 (home-page "https://www.ctan.org/pkg/parskip")
4467 (synopsis "Layout with zero \\parindent, non-zero \\parskip")
4468 (description
4469 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout
4470 that is untidy; this package (though it is no substitute for a properly
4471 designed class) helps alleviate this untidiness.")
4472 (license license:lppl)))
4473
4474 (define-public texlive-latex-pdfpages
4475 (package
4476 (name "texlive-latex-pdfpages")
4477 (version (number->string %texlive-revision))
4478 (source (origin
4479 (method svn-fetch)
4480 (uri (texlive-ref "latex" "pdfpages"))
4481 (file-name (string-append name "-" version "-checkout"))
4482 (sha256
4483 (base32
4484 "0s4izcah7im67889qz4d26pcfpasmm35sj1rw4ragkkdk3rlbbbd"))))
4485 (build-system texlive-build-system)
4486 (arguments '(#:tex-directory "latex/pdfpages"))
4487 (home-page "https://www.ctan.org/pkg/pdfpages")
4488 (synopsis "Include PDF documents in LaTeX")
4489 (description
4490 "This package simplifies the inclusion of external multi-page PDF
4491 documents in LaTeX documents. Pages may be freely selected and it is possible
4492 to put several logical pages onto each sheet of paper. Furthermore a lot of
4493 hypertext features like hyperlinks and article threads are provided. The
4494 package supports pdfTeX (pdfLaTeX) and VTeX. With VTeX it is even possible to
4495 use this package to insert PostScript files, in addition to PDF files.")
4496 (license license:lppl1.3+)))
4497
4498 (define-public texlive-fonts-stmaryrd
4499 (package
4500 (name "texlive-fonts-stmaryrd")
4501 (version (number->string %texlive-revision))
4502 (source (origin
4503 (method svn-fetch)
4504 (uri (texlive-ref "fonts" "stmaryrd"))
4505 (file-name (string-append name "-" version "-checkout"))
4506 (sha256
4507 (base32
4508 "08pn4ca3vl6qm9l3wm5h5iyjsrg411kkm1yana329xwg2j14s9n6"))))
4509 (build-system texlive-build-system)
4510 (arguments
4511 '(#:tex-directory "latex/stmaryrd"
4512 #:phases
4513 (modify-phases %standard-phases
4514 (add-after 'configure 'patch-ins
4515 (lambda _
4516 (substitute* "stmaryrd.ins"
4517 (("^%% LaTeX2e.*") "\\input docstrip\n")
4518 (("fontdef\\}\\}" line)
4519 (string-append line "\n\\endbatchfile")))
4520 #t)))))
4521 (home-page "https://www.ctan.org/pkg/stmaryrd")
4522 (synopsis "St Mary Road symbols for theoretical computer science")
4523 (description
4524 "The fonts were originally distributed as Metafont sources only, but
4525 Adobe Type 1 versions are also now available. Macro support is provided for
4526 use under LaTeX; the package supports the @code{only} option (provided by the
4527 @code{somedefs} package) to restrict what is loaded, for those who don't need
4528 the whole font.")
4529 (license license:lppl)))
4530
4531 (define-public texlive-latex-subfigure
4532 (package
4533 (name "texlive-latex-subfigure")
4534 (version (number->string %texlive-revision))
4535 (source (origin
4536 (method svn-fetch)
4537 (uri (texlive-ref "latex" "subfigure"))
4538 (file-name (string-append name "-" version "-checkout"))
4539 (sha256
4540 (base32
4541 "15spcl5wb7w269qd6y596vp4yi8sa5ppcx8w4z2i9kyp02r3a0yb"))))
4542 (build-system texlive-build-system)
4543 (arguments '(#:tex-directory "latex/subfigure"))
4544 (home-page "https://www.ctan.org/pkg/subfigure")
4545 (synopsis "Figures divided into subfigures")
4546 (description
4547 "This (deprecated) package provides support for the manipulation and
4548 reference of small or \"sub\" figures and tables within a single figure or
4549 table environment. It is convenient to use this package when your subfigures
4550 are to be separately captioned, referenced, or are to be included in the
4551 List-of-Figures. A new @code{\\subfigure} command is introduced which can be
4552 used inside a figure environment for each subfigure. An optional first
4553 argument is used as the caption for that subfigure. The package is now
4554 considered obsolete: it was superseded by @code{subfig}, but users may find
4555 the more recent @code{subcaption} package more satisfactory.")
4556 (license license:lppl)))
4557
4558 (define-public texlive-latex-tabulary
4559 (package
4560 (name "texlive-latex-tabulary")
4561 (version (number->string %texlive-revision))
4562 (source (origin
4563 (method svn-fetch)
4564 (uri (texlive-ref "latex" "tabulary"))
4565 (file-name (string-append name "-" version "-checkout"))
4566 (sha256
4567 (base32
4568 "1adkdx2zkk42g82nqf57lv1nc1z7kwl13jmy8vpcsizsa0xdnx9n"))))
4569 (build-system texlive-build-system)
4570 (arguments '(#:tex-directory "latex/tabulary"))
4571 (home-page "https://www.ctan.org/pkg/tabulary")
4572 (synopsis "Tabular with variable width columns balanced")
4573 (description
4574 "The package defines a @code{tabular*}-like environment, @code{tabulary},
4575 taking a \"total width\" argument as well as the column specifications. The
4576 environment uses column types @code{L}, @code{C}, @code{R} and @code{J} for
4577 variable width columns (@code{\\raggedright}, @code{\\centering},
4578 @code{\\raggedleft}, and normally justified). In contrast to
4579 @code{tabularx}'s @code{X} columns, the width of each column is weighted
4580 according to the natural width of the widest cell in the column.")
4581 (license license:lppl)))
4582
4583 (define-public texlive-latex-threeparttable
4584 (package
4585 (name "texlive-latex-threeparttable")
4586 (version (number->string %texlive-revision))
4587 (source (origin
4588 (method svn-fetch)
4589 (uri (svn-reference
4590 (url (string-append "svn://www.tug.org/texlive/tags/"
4591 %texlive-tag "/Master/texmf-dist/"
4592 "/tex/latex/threeparttable"))
4593 (revision %texlive-revision)))
4594 (file-name (string-append name "-" version "-checkout"))
4595 (sha256
4596 (base32
4597 "10vy9k150w2lviw8h22s2mcykff38xci653m5823s2vv44pwbmzq"))))
4598 (build-system trivial-build-system)
4599 (arguments
4600 `(#:modules ((guix build utils))
4601 #:builder
4602 (begin
4603 (use-modules (guix build utils))
4604 (let ((target (string-append (assoc-ref %outputs "out")
4605 "/share/texmf-dist/tex/latex/threeparttable")))
4606 (mkdir-p target)
4607 (copy-recursively (assoc-ref %build-inputs "source") target)
4608 #t))))
4609 (home-page "https://www.ctan.org/pkg/threeparttable")
4610 (synopsis "Tables with captions and notes all the same width")
4611 (description
4612 "This package facilitates tables with titles (captions) and notes. The
4613 title and notes are given a width equal to the body of the table (a
4614 @code{tabular} environment). By itself, a @code{threeparttable} does not
4615 float, but you can put it in a @code{table} or a @code{table*} or some other
4616 environment.")
4617 (license (license:fsf-free "file://threeparttable.sty"))))
4618
4619 (define-public texlive-fonts-txfonts
4620 (package
4621 (name "texlive-fonts-txfonts")
4622 (version (number->string %texlive-revision))
4623 (source (origin
4624 (method svn-fetch)
4625 (uri (svn-reference
4626 (url (string-append "svn://www.tug.org/texlive/tags/"
4627 %texlive-tag "/Master/texmf-dist/"
4628 "/tex/latex/txfonts"))
4629 (revision %texlive-revision)))
4630 (file-name (string-append name "-" version "-checkout"))
4631 (sha256
4632 (base32
4633 "0jl921qdphg8i7bkfprackn3xd4gmvxckc526nmzqsmahqkavgg2"))))
4634 (build-system trivial-build-system)
4635 (arguments
4636 `(#:modules ((guix build utils)
4637 (ice-9 match))
4638 #:builder
4639 (begin
4640 (use-modules (guix build utils)
4641 (ice-9 match))
4642 (let ((root (string-append (assoc-ref %outputs "out")
4643 "/share/texmf-dist/"))
4644 (pkgs '(("source" . "tex/latex/txfonts")
4645 ("txfonts-vf" . "fonts/tfm/public/txfonts")
4646 ("txfonts-afm" . "fonts/afm/public/txfonts")
4647 ("txfonts-tfm" . "fonts/tfm/public/txfonts")
4648 ("txfonts-type1" . "fonts/type1/public/txfonts")
4649 ("txfonts-enc" . "fonts/enc/dvips/txfonts")
4650 ("txfonts-map" . "fonts/map/dvips/txfonts"))))
4651 (for-each (match-lambda
4652 ((pkg . dir)
4653 (let ((target (string-append root dir)))
4654 (mkdir-p target)
4655 (copy-recursively (assoc-ref %build-inputs pkg)
4656 target))))
4657 pkgs)
4658 #t))))
4659 (native-inputs
4660 `(("txfonts-tfm"
4661 ,(origin
4662 (method svn-fetch)
4663 (uri (svn-reference
4664 (url (string-append "svn://www.tug.org/texlive/tags/"
4665 %texlive-tag "/Master/texmf-dist/"
4666 "/fonts/tfm/public/txfonts"))
4667 (revision %texlive-revision)))
4668 (file-name (string-append name "-tfm-" version "-checkout"))
4669 (sha256
4670 (base32
4671 "12ffmbrp48ap35qa3b4mi6ckif9q2vf7972jxh5dc1yzykhla2xv"))))
4672 ("txfonts-vf"
4673 ,(origin
4674 (method svn-fetch)
4675 (uri (svn-reference
4676 (url (string-append "svn://www.tug.org/texlive/tags/"
4677 %texlive-tag "/Master/texmf-dist/"
4678 "/fonts/vf/public/txfonts"))
4679 (revision %texlive-revision)))
4680 (file-name (string-append name "-vf-" version "-checkout"))
4681 (sha256
4682 (base32
4683 "04acyfdwvxpfx4l2xh2bpzdmpvwdf2pzbs7a236b0xckz2jvc1ci"))))
4684 ("txfonts-afm"
4685 ,(origin
4686 (method svn-fetch)
4687 (uri (svn-reference
4688 (url (string-append "svn://www.tug.org/texlive/tags/"
4689 %texlive-tag "/Master/texmf-dist/"
4690 "/fonts/afm/public/txfonts"))
4691 (revision %texlive-revision)))
4692 (file-name (string-append name "-afm-" version "-checkout"))
4693 (sha256
4694 (base32
4695 "1705klz51pnqzcs89s3521b84b6c89wlczflsh0vci66nl155yis"))))
4696 ("txfonts-type1"
4697 ,(origin
4698 (method svn-fetch)
4699 (uri (svn-reference
4700 (url (string-append "svn://www.tug.org/texlive/tags/"
4701 %texlive-tag "/Master/texmf-dist/"
4702 "/fonts/type1/public/txfonts"))
4703 (revision %texlive-revision)))
4704 (file-name (string-append name "-type1-" version "-checkout"))
4705 (sha256
4706 (base32
4707 "0ajwr7zb6ch3gxd0g8p2i4llhy2wr9a9saz6jq6hm6fxf4pgl5h3"))))
4708 ("txfonts-map"
4709 ,(origin
4710 (method svn-fetch)
4711 (uri (svn-reference
4712 (url (string-append "svn://www.tug.org/texlive/tags/"
4713 %texlive-tag "/Master/texmf-dist/"
4714 "/fonts/map/dvips/txfonts"))
4715 (revision %texlive-revision)))
4716 (file-name (string-append name "-map-" version "-checkout"))
4717 (sha256
4718 (base32
4719 "0kamr8a9x24jakas3v09dgv7kkpybj3i7qv4vz1iyypqr6kk1raj"))))
4720 ("txfonts-enc"
4721 ,(origin
4722 (method svn-fetch)
4723 (uri (svn-reference
4724 (url (string-append "svn://www.tug.org/texlive/tags/"
4725 %texlive-tag "/Master/texmf-dist/"
4726 "/fonts/enc/dvips/txfonts"))
4727 (revision %texlive-revision)))
4728 (file-name (string-append name "-enc-" version "-checkout"))
4729 (sha256
4730 (base32
4731 "1bal5fhw0xlhl37ayv8vlnqnsn1y82kadzfjhbgr223blspp4zsj"))))))
4732 (home-page "https://www.ctan.org/pkg/threeparttable")
4733 (synopsis "Times-like fonts in support of mathematics")
4734 (description
4735 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW
4736 NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,
4737 and TS1 encodings; maths alphabets using Times/URW Nimbus; maths fonts
4738 providing all the symbols of the Computer Modern and AMS fonts, including all
4739 the Greek capital letters from CMR; and additional maths fonts of various
4740 other symbols.
4741
4742 The set is complemented by a sans-serif set of text fonts, based on
4743 Helvetica/NimbusSanL, and a monospace set.
4744
4745 All the fonts are in Type 1 format (AFM and PFB files), and are supported by
4746 TeX metrics (VF and TFM files) and macros for use with LaTeX.")
4747 ;; Any version of the GPL with font exception.
4748 (license license:gpl3+)))
4749
4750 (define-public texlive-fonts-iwona
4751 (package
4752 (name "texlive-fonts-iwona")
4753 (version "0.995b")
4754 (source (origin
4755 (method url-fetch)
4756 (uri (string-append "http://jmn.pl/pliki/Iwona-tex-"
4757 (string-map (lambda (c)
4758 (if (char=? c #\.)
4759 #\_ c))
4760 version)
4761 ".zip"))
4762 (sha256
4763 (base32
4764 "13684iqx5granpc5rfvqnmyvdpgpbr1x9y7i7y7bcaq0qxv7ph1x"))))
4765 (build-system trivial-build-system)
4766 (arguments
4767 `(#:modules ((guix build utils))
4768 #:builder
4769 (begin
4770 (use-modules (guix build utils))
4771 (let ((target (string-append (assoc-ref %outputs "out")
4772 "/share/texmf-dist/"))
4773 (unzip (string-append (assoc-ref %build-inputs "unzip")
4774 "/bin/unzip")))
4775 (invoke unzip (assoc-ref %build-inputs "source"))
4776 (mkdir-p target)
4777 (copy-recursively "iwona" target)
4778 #t))))
4779 (native-inputs
4780 `(("unzip" ,unzip)))
4781 (home-page "http://jmn.pl/en/kurier-i-iwona/")
4782 (synopsis "Sans-serif typeface for TeX")
4783 (description "Iwona is a two-element sans-serif typeface. It was created
4784 as an alternative version of the Kurier typeface, which was designed in 1975
4785 for a diploma in typeface design at the Warsaw Academy of Fine Arts under the
4786 supervision of Roman Tomaszewski. Kurier was designed for linotype
4787 typesetting of newspapers and similar periodicals. The Iwona fonts are an
4788 alternative version of the Kurier fonts. The difference lies in the absence
4789 of ink traps which typify the Kurier font.")
4790 (license license:gfl1.0)))
4791
4792 (define-public texlive-latex-titlesec
4793 (package
4794 (name "texlive-latex-titlesec")
4795 (version (number->string %texlive-revision))
4796 (source (origin
4797 (method svn-fetch)
4798 (uri (svn-reference
4799 (url (string-append "svn://www.tug.org/texlive/tags/"
4800 %texlive-tag "/Master/texmf-dist/"
4801 "/tex/latex/titlesec"))
4802 (revision %texlive-revision)))
4803 (file-name (string-append name "-" version "-checkout"))
4804 (sha256
4805 (base32
4806 "04nmkhqx6jxcxx9a30zbcd5smxi5fd0cbp132bki7fnvhspnhg21"))))
4807 (build-system trivial-build-system)
4808 (arguments
4809 `(#:modules ((guix build utils))
4810 #:builder
4811 (begin
4812 (use-modules (guix build utils))
4813 (let ((target (string-append (assoc-ref %outputs "out")
4814 "/share/texmf-dist/tex/latex/titlesec")))
4815 (mkdir-p target)
4816 (copy-recursively (assoc-ref %build-inputs "source") target)
4817 #t))))
4818 (home-page "https://www.ctan.org/pkg/titlesec")
4819 (synopsis "Select alternative section titles")
4820 (description
4821 "This package provides an interface to sectioning commands for selection
4822 from various title styles, e.g. for marginal titles and to change the font of
4823 all headings with a single command, also providing simple one-step page
4824 styles. It also includes a package to change the page styles when there are
4825 floats in a page. You may assign headers/footers to individual floats, too.")
4826 (license license:lppl)))
4827
4828 (define-public texlive-latex-type1cm
4829 (package
4830 (name "texlive-latex-type1cm")
4831 (version (number->string %texlive-revision))
4832 (source (origin
4833 (method svn-fetch)
4834 (uri (texlive-ref "latex" "type1cm"))
4835 (file-name (string-append name "-" version "-checkout"))
4836 (sha256
4837 (base32
4838 "1lvxrqfwcwa4p31zyfm80gr05v8c28xybv5ri79zi2ngz6834z12"))))
4839 (build-system texlive-build-system)
4840 (arguments '(#:tex-directory "latex/type1cm"))
4841 (home-page "https://www.ctan.org/pkg/type1cm")
4842 (synopsis "Arbitrary size font selection in LaTeX")
4843 (description
4844 "LaTeX, by default, restricts the sizes at which you can use its default
4845 computer modern fonts, to a fixed set of discrete sizes (effectively, a set
4846 specified by Knuth). The @code{type1cm} package removes this restriction;
4847 this is particularly useful when using scalable versions of the CM
4848 fonts (Bakoma, or the versions from BSR/Y&Y, or True Type versions from Kinch,
4849 PCTeX, etc.). In fact, since modern distributions will automatically generate
4850 any bitmap font you might need, @code{type1cm} has wider application than just
4851 those using scalable versions of the fonts. Note that the LaTeX distribution
4852 now contains a package @code{fix-cm},f which performs the task of
4853 @code{type1cm}, as well as doing the same job for T1- and TS1-encoded
4854 @code{ec} fonts.")
4855 (license license:lppl)))
4856
4857 (define-public texlive-latex-lh
4858 (package
4859 (name "texlive-latex-lh")
4860 (version (number->string %texlive-revision))
4861 (source (origin
4862 (method svn-fetch)
4863 (uri (texlive-ref "latex" "lh"))
4864 (file-name (string-append name "-" version "-checkout"))
4865 (sha256
4866 (base32
4867 "00gdiwh3sfhh1iimjhpja7lm7k4vzqzql2irgwnpz94qvh25zwi5"))))
4868 (build-system texlive-build-system)
4869 (arguments '(#:tex-directory "latex/lh"))
4870 (home-page "https://www.ctan.org/pkg/lh")
4871 (synopsis "Cyrillic fonts that support LaTeX standard encodings")
4872 (description
4873 "The LH fonts address the problem of the wide variety of alphabets that
4874 are written with Cyrillic-style characters. The fonts are the original basis
4875 of the set of T2* and X2 encodings that are now used when LaTeX users need to
4876 write in Cyrillic languages. Macro support in standard LaTeX encodings is
4877 offered through the latex-cyrillic and t2 bundles, and the package itself
4878 offers support for other (more traditional) encodings. The fonts, in the
4879 standard T2* and X2 encodings are available in Adobe Type 1 format, in the
4880 CM-Super family of fonts. The package also offers its own LaTeX support for
4881 OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
4882 (license license:lppl)))
4883
4884 (define-public texlive-metapost
4885 (package
4886 (name "texlive-metapost")
4887 (version (number->string %texlive-revision))
4888 (source (origin
4889 (method svn-fetch)
4890 (uri (svn-reference
4891 (url (string-append "svn://www.tug.org/texlive/tags/"
4892 %texlive-tag "/Master/texmf-dist/"
4893 "/metapost"))
4894 (revision %texlive-revision)))
4895 (file-name (string-append name "-" version "-checkout"))
4896 (sha256
4897 (base32
4898 "0sf18pc6chgy26p9bxxn44xcqhzjrfb53jxjr2y7l3jb6xllhblq"))))
4899 (build-system trivial-build-system)
4900 (arguments
4901 `(#:modules ((guix build utils))
4902 #:builder
4903 (begin
4904 (use-modules (guix build utils))
4905 (let ((target (string-append (assoc-ref %outputs "out")
4906 "/share/texmf-dist/metapost")))
4907 (mkdir-p target)
4908 (copy-recursively (assoc-ref %build-inputs "source") target)
4909 #t))))
4910 (home-page "https://www.ctan.org/pkg/metapost")
4911 (synopsis "Create scalable illustrations")
4912 (description
4913 "MetaPost uses a language based on that of Metafont to produce precise
4914 technical illustrations. Its output is scalable PostScript or SVG, rather
4915 than the bitmaps Metafont creates.")
4916 (license license:lppl)))
4917
4918 (define-public texlive-latex-acmart
4919 (package
4920 (name "texlive-latex-acmart")
4921 (version "1.60")
4922 (source (origin
4923 (method svn-fetch)
4924 (uri (texlive-ref "latex" "acmart"))
4925 (sha256
4926 (base32
4927 "0n62cs8dhcbn29y9ij1nnyigzr76yhk36kyahhqkkmvbafbys9s7"))
4928 (file-name (string-append name "-" version "-checkout"))))
4929 (build-system texlive-build-system)
4930 (arguments '(#:tex-directory "latex/acmart"))
4931 (home-page "https://www.ctan.org/pkg/acmart")
4932 (synopsis "Class for typesetting publications of ACM")
4933 (description
4934 "This package provides a class for typesetting publications of the
4935 Association for Computing Machinery (ACM).")
4936 (license license:lppl1.3+)))
4937
4938 (define-public texlive-latex-varwidth
4939 (package
4940 (name "texlive-latex-varwidth")
4941 (version (number->string %texlive-revision))
4942 (source (origin
4943 (method svn-fetch)
4944 (uri (svn-reference
4945 (url (string-append "svn://www.tug.org/texlive/tags/"
4946 %texlive-tag "/Master/texmf-dist/"
4947 "/tex/latex/varwidth"))
4948 (revision %texlive-revision)))
4949 (file-name (string-append name "-" version "-checkout"))
4950 (sha256
4951 (base32
4952 "1bmz9ap0ffyg7qry2xi7lki06qx4809w028xvk88cl66h7p46g52"))))
4953 (build-system trivial-build-system)
4954 (arguments
4955 `(#:modules ((guix build utils))
4956 #:builder
4957 (begin
4958 (use-modules (guix build utils))
4959 (let ((target (string-append (assoc-ref %outputs "out")
4960 "/share/texmf-dist/tex/latex/varwidth")))
4961 (mkdir-p target)
4962 (copy-recursively (assoc-ref %build-inputs "source") target)
4963 #t))))
4964 (home-page "https://www.ctan.org/pkg/varwidth")
4965 (synopsis "Variable-width minipage")
4966 (description
4967 "The @code{varwidth} environment is superficially similar to
4968 @code{minipage}, but the specified width is just a maximum value — the box may
4969 get a narrower “natural” width.")
4970 (license license:lppl)))
4971
4972 (define-public texlive-latex-wasysym
4973 (package
4974 (name "texlive-latex-wasysym")
4975 (version (number->string %texlive-revision))
4976 (source (origin
4977 (method svn-fetch)
4978 (uri (texlive-ref "latex" "wasysym"))
4979 (file-name (string-append name "-" version "-checkout"))
4980 (sha256
4981 (base32
4982 "1sgwbfwjjf70g54hh93gsd9jp9nm67w6n74x9d72a56n07jbk5hv"))))
4983 (build-system texlive-build-system)
4984 (arguments '(#:tex-directory "latex/wasysym"))
4985 (home-page "https://www.ctan.org/pkg/wasysym")
4986 (synopsis "LaTeX support file to use the WASY2 fonts")
4987 (description
4988 "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs
4989 like male and female symbols and astronomical symbols, as well as the complete
4990 lasy font set and other odds and ends. The wasysym package implements an easy
4991 to use interface for these symbols.")
4992 (license license:lppl)))
4993
4994 (define-public texlive-latex-wrapfig
4995 (package
4996 (name "texlive-latex-wrapfig")
4997 (version (number->string %texlive-revision))
4998 (source (origin
4999 (method svn-fetch)
5000 (uri (svn-reference
5001 (url (string-append "svn://www.tug.org/texlive/tags/"
5002 %texlive-tag "/Master/texmf-dist/"
5003 "/tex/latex/wrapfig"))
5004 (revision %texlive-revision)))
5005 (file-name (string-append name "-" version "-checkout"))
5006 (sha256
5007 (base32
5008 "16xpyl0csmmwndz1xhzqfg9l0zcsnqxslsixsqkwd4zsvfj30sv4"))))
5009 (build-system trivial-build-system)
5010 (arguments
5011 `(#:modules ((guix build utils))
5012 #:builder
5013 (begin
5014 (use-modules (guix build utils))
5015 (let ((target (string-append (assoc-ref %outputs "out")
5016 "/share/texmf-dist/tex/latex/wrapfig")))
5017 (mkdir-p target)
5018 (copy-recursively (assoc-ref %build-inputs "source") target)
5019 #t))))
5020 (home-page "https://www.ctan.org/pkg/wrapfig")
5021 (synopsis "Produces figures which text can flow around")
5022 (description
5023 "This package allows figures or tables to have text wrapped around them.
5024 It does not work in combination with list environments, but can be used in a
5025 @code{parbox} or @code{minipage}, and in two-column format.")
5026 (license license:lppl)))
5027
5028 (define-public texlive-latex-ucs
5029 (package
5030 (name "texlive-latex-ucs")
5031 (version (number->string %texlive-revision))
5032 (source (origin
5033 (method svn-fetch)
5034 (uri (svn-reference
5035 (url (string-append "svn://www.tug.org/texlive/tags/"
5036 %texlive-tag "/Master/texmf-dist/"
5037 "/tex/latex/ucs"))
5038 (revision %texlive-revision)))
5039 (file-name (string-append name "-" version "-checkout"))
5040 (sha256
5041 (base32
5042 "0rrxwi60wmz5dfjifl4fwk66plf7wix85qnhfv4ylvmj6qi6hw37"))))
5043 (build-system trivial-build-system)
5044 (arguments
5045 `(#:modules ((guix build utils))
5046 #:builder
5047 (begin
5048 (use-modules (guix build utils))
5049 (let ((target (string-append (assoc-ref %outputs "out")
5050 "/share/texmf-dist/tex/latex/ucs")))
5051 (mkdir-p target)
5052 (copy-recursively (assoc-ref %build-inputs "source") target)
5053 #t))))
5054 (home-page "https://www.ctan.org/pkg/ucs")
5055 (synopsis "Extended UTF-8 input encoding support for LaTeX")
5056 (description
5057 "The bundle provides the @code{ucs} package, and @code{utf8x.def},
5058 together with a large number of support files. The @code{utf8x.def}
5059 definition file for use with @code{inputenc} covers a wider range of Unicode
5060 characters than does @code{utf8.def} in the LaTeX distribution. The package
5061 provides facilities for efficient use of its large sets of Unicode characters.
5062 Glyph production may be controlled by various options, which permits use of
5063 non-ASCII characters when coding mathematical formulae. Note that the bundle
5064 previously had an alias “unicode”; that alias has now been withdrawn, and no
5065 package of that name now exists.")
5066 (license license:lppl1.3+)))
5067
5068 (define-public texlive-latex-preview
5069 (package
5070 (name "texlive-latex-preview")
5071 (version (number->string %texlive-revision))
5072 (source (origin
5073 (method svn-fetch)
5074 (uri (texlive-ref "latex" "preview"))
5075 (file-name (string-append name "-" version "-checkout"))
5076 (sha256
5077 (base32
5078 "1hpsk4yp08qvbl43kqiv0hhwxv3gcqqxcpahyv6ch2b38pbj4bh6"))))
5079 (build-system texlive-build-system)
5080 (arguments
5081 '(#:tex-directory "latex/preview"
5082 #:phases
5083 (modify-phases %standard-phases
5084 (add-after 'unpack 'remove-generated-file
5085 (lambda _
5086 (delete-file "preview.drv")
5087 #t)))))
5088 (home-page "https://www.ctan.org/pkg/preview")
5089 (synopsis "Extract bits of a LaTeX source for output")
5090 (description
5091 "The main purpose of the preview package is the extraction of selected
5092 elements from a LaTeX source, like formulas or graphics, into separate
5093 pages of a DVI file. A flexible and convenient interface allows it to
5094 specify what commands and constructs should be extracted. This works
5095 with DVI files postprocessed by either Dvips and Ghostscript or
5096 dvipng, but it also works when you are using PDFTeX for generating PDF
5097 files.")
5098 (license license:gpl3+)))
5099
5100 (define-public texlive-latex-acronym
5101 (package
5102 (name "texlive-latex-acronym")
5103 (version (number->string %texlive-revision))
5104 (source (origin
5105 (method svn-fetch)
5106 (uri (texlive-ref "latex" "acronym"))
5107 (file-name (string-append name "-" version "-checkout"))
5108 (sha256
5109 (base32
5110 "0jmasg40bk53zdd2jc8nc18jvdai3p2wmamy7hwli8gls4nf25qp"))))
5111 (build-system texlive-build-system)
5112 (arguments '(#:tex-directory "latex/acronym"))
5113 (home-page "https://www.ctan.org/pkg/acronym")
5114 (synopsis "Expand acronyms at least once")
5115 (description
5116 "This package ensures that all acronyms used in the text are spelled out
5117 in full at least once. It also provides an environment to build a list of
5118 acronyms used. The package is compatible with PDF bookmarks. The package
5119 requires the suffix package, which in turn requires that it runs under
5120 e-TeX.")
5121 (license license:lppl1.3+)))
5122
5123 (define-public texlive-generic-pdftex
5124 (package
5125 (name "texlive-generic-pdftex")
5126 (version (number->string %texlive-revision))
5127 (source (origin
5128 (method svn-fetch)
5129 (uri (svn-reference
5130 (url (string-append "svn://www.tug.org/texlive/tags/"
5131 %texlive-tag "/Master/texmf-dist/"
5132 "/tex/generic/pdftex"))
5133 (revision %texlive-revision)))
5134 (file-name (string-append name "-" version "-checkout"))
5135 (sha256
5136 (base32
5137 "0k68zmqzs4qvrqxdwsrawbjb14hxqjfamq649azvai0jjxdpkljd"))))
5138 (build-system trivial-build-system)
5139 (arguments
5140 `(#:modules ((guix build utils))
5141 #:builder
5142 (begin
5143 (use-modules (guix build utils))
5144 (let ((target (string-append (assoc-ref %outputs "out")
5145 "/share/texmf-dist/tex/generic/pdftex"))
5146 (target-map (string-append (assoc-ref %outputs "out")
5147 "/share/texmf-dist/fonts/map/pdftex")))
5148 (mkdir-p target)
5149 (copy-recursively (assoc-ref %build-inputs "source") target)
5150 (mkdir-p target-map)
5151 (copy-recursively (assoc-ref %build-inputs "pdftex-map") target-map)
5152 #t))))
5153 (native-inputs
5154 `(("pdftex-map"
5155 ,(origin
5156 (method svn-fetch)
5157 (uri (svn-reference
5158 (url (string-append "svn://www.tug.org/texlive/tags/"
5159 %texlive-tag "/Master/texmf-dist/"
5160 "/fonts/map/pdftex"))
5161 (revision %texlive-revision)))
5162 (file-name (string-append name "-map-" version "-checkout"))
5163 (sha256
5164 (base32
5165 "18jvcm0vwpg6wwzijvnb92xx78la45kkh71k6l44425krp2vnwm0"))))))
5166 (home-page "https://www.ctan.org/pkg/pdftex")
5167 (synopsis "TeX extension for direct creation of PDF")
5168 (description
5169 "This package provides an extension of TeX which can be configured to
5170 directly generate PDF documents instead of DVI.")
5171 (license license:gpl2+)))
5172
5173 (define texlive-texmf
5174 (package
5175 (name "texlive-texmf")
5176 (version "20180414")
5177 (source texlive-texmf-src)
5178 (build-system gnu-build-system)
5179 (inputs
5180 `(("texlive-bin" ,texlive-bin)
5181 ("lua" ,lua)
5182 ("perl" ,perl)
5183 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5184 ("ruby" ,ruby)
5185 ("tcsh" ,tcsh)))
5186 (arguments
5187 `(#:modules ((guix build gnu-build-system)
5188 (guix build utils)
5189 (srfi srfi-26))
5190
5191 ;; This package takes 4 GiB, which we can't afford to distribute from
5192 ;; our servers.
5193 #:substitutable? #f
5194
5195 #:phases
5196 (modify-phases (map (cut assq <> %standard-phases)
5197 '(set-paths unpack patch-source-shebangs))
5198 (add-after 'unpack 'unset-environment-variables
5199 (lambda _
5200 (unsetenv "TEXMF")
5201 (unsetenv "TEXMFCNF")
5202 #t))
5203 (add-after 'patch-source-shebangs 'install
5204 (lambda* (#:key outputs #:allow-other-keys)
5205 (let ((share (string-append (assoc-ref outputs "out") "/share")))
5206 (mkdir-p share)
5207 (invoke "mv" "texmf-dist" share))))
5208 (add-after 'install 'texmf-config
5209 (lambda* (#:key inputs outputs #:allow-other-keys)
5210 (let* ((out (assoc-ref outputs "out"))
5211 (share (string-append out "/share"))
5212 (texmfroot (string-append share "/texmf-dist/web2c"))
5213 (texmfcnf (string-append texmfroot "/texmf.cnf"))
5214 (texlive-bin (assoc-ref inputs "texlive-bin"))
5215 (texbin (string-append texlive-bin "/bin"))
5216 (tlpkg (string-append texlive-bin "/share/tlpkg")))
5217 ;; Register SHARE as TEXMFROOT in texmf.cnf.
5218 (substitute* texmfcnf
5219 (("TEXMFROOT = \\$SELFAUTOPARENT")
5220 (string-append "TEXMFROOT = " share))
5221 (("TEXMFLOCAL = \\$SELFAUTOGRANDPARENT/texmf-local")
5222 "TEXMFLOCAL = $SELFAUTODIR/share/texmf-local")
5223 (("!!\\$TEXMFLOCAL") "$TEXMFLOCAL"))
5224 ;; Register paths in texmfcnf.lua, needed for context.
5225 (substitute* (string-append texmfroot "/texmfcnf.lua")
5226 (("selfautodir:") out)
5227 (("selfautoparent:") (string-append share "/")))
5228 ;; Set path to TeXLive Perl modules
5229 (setenv "PERL5LIB"
5230 (string-append (getenv "PERL5LIB") ":" tlpkg))
5231 ;; Configure the texmf-dist tree; inspired from
5232 ;; http://slackbuilds.org/repository/13.37/office/texlive/
5233 (setenv "PATH" (string-append (getenv "PATH") ":" texbin))
5234 (setenv "TEXMFCNF" texmfroot)
5235 (invoke "updmap-sys" "--nohash" "--syncwithtrees")
5236 (invoke "mktexlsr")
5237 (invoke "fmtutil-sys" "--all")))))))
5238 (properties `((max-silent-time . 9600))) ; don't time out while grafting
5239 (synopsis "TeX Live, a package of the TeX typesetting system")
5240 (description
5241 "TeX Live provides a comprehensive TeX document production system.
5242 It includes all the major TeX-related programs, macro packages, and fonts
5243 that are free software, including support for many languages around the
5244 world.
5245
5246 This package contains the complete tree of texmf-dist data.")
5247 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
5248 (home-page "https://www.tug.org/texlive/")))
5249
5250 (define-public texlive
5251 (package
5252 (name "texlive")
5253 (version "20180414")
5254 (source #f)
5255 (build-system trivial-build-system)
5256 (inputs `(("bash" ,bash) ; for wrap-program
5257 ("texlive-bin" ,texlive-bin)
5258 ("texlive-texmf" ,texlive-texmf)))
5259 (native-search-paths
5260 (list (search-path-specification
5261 (variable "TEXMFLOCAL")
5262 (files '("share/texmf-local")))))
5263 (arguments
5264 `(#:modules ((guix build utils))
5265 #:builder
5266 ;; Build the union of texlive-bin and texlive-texmf, but take the
5267 ;; conflicting subdirectory share/texmf-dist from texlive-texmf.
5268 (begin
5269 (use-modules (guix build utils))
5270 (let ((out (assoc-ref %outputs "out"))
5271 (bin (assoc-ref %build-inputs "texlive-bin"))
5272 (texmf (assoc-ref %build-inputs "texlive-texmf"))
5273 (bash (assoc-ref %build-inputs "bash")))
5274 (mkdir out)
5275 (with-directory-excursion out
5276 (for-each
5277 (lambda (name)
5278 (symlink (string-append bin "/" name) name))
5279 '("include" "lib"))
5280 (mkdir "bin")
5281 (with-directory-excursion "bin"
5282 (setenv "PATH" (string-append bash "/bin"))
5283 (for-each
5284 (lambda (name)
5285 (symlink name (basename name))
5286 (wrap-program
5287 (basename name)
5288 `("TEXMFCNF" =
5289 (,(string-append texmf "/share/texmf-dist/web2c")))))
5290 (find-files (string-append bin "/bin/") "")))
5291 (mkdir "share")
5292 (with-directory-excursion "share"
5293 (for-each
5294 (lambda (name)
5295 (symlink (string-append bin "/share/" name) name))
5296 '("info" "man" "tlpkg"))
5297 (for-each
5298 (lambda (name)
5299 (symlink (string-append texmf "/share/" name) name))
5300 '("texmf-dist" "texmf-var"))))
5301 #t))))
5302 (synopsis "TeX Live, a package of the TeX typesetting system")
5303 (description
5304 "TeX Live provides a comprehensive TeX document production system.
5305 It includes all the major TeX-related programs, macro packages, and fonts
5306 that are free software, including support for many languages around the
5307 world.
5308
5309 This package contains the complete TeX Live distribution.")
5310 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
5311 (home-page "https://www.tug.org/texlive/")))
5312
5313 (define-public perl-text-bibtex
5314 (package
5315 (name "perl-text-bibtex")
5316 (version "0.85")
5317 (source
5318 (origin
5319 (method url-fetch)
5320 (uri (string-append "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-"
5321 version ".tar.gz"))
5322 (sha256
5323 (base32
5324 "036kxgbn1jf70pfm2lmjlzjwnhbkd888fp5lyvmkjpdd15gla18h"))))
5325 (build-system perl-build-system)
5326 (arguments
5327 `(#:phases
5328 (modify-phases %standard-phases
5329 (add-after 'unpack 'add-output-directory-to-rpath
5330 (lambda* (#:key outputs #:allow-other-keys)
5331 (substitute* "inc/MyBuilder.pm"
5332 (("-Lbtparse" line)
5333 (string-append "-Wl,-rpath="
5334 (assoc-ref outputs "out") "/lib " line)))
5335 #t))
5336 (add-after 'unpack 'install-libraries-to-/lib
5337 (lambda* (#:key outputs #:allow-other-keys)
5338 (substitute* "Build.PL"
5339 (("lib64") "lib"))
5340 #t)))))
5341 (native-inputs
5342 `(("perl-capture-tiny" ,perl-capture-tiny)
5343 ("perl-config-autoconf" ,perl-config-autoconf)
5344 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
5345 ("perl-module-build" ,perl-module-build)))
5346 (home-page "https://metacpan.org/release/Text-BibTeX")
5347 (synopsis "Interface to read and parse BibTeX files")
5348 (description "@code{Text::BibTeX} is a Perl library for reading, parsing,
5349 and processing BibTeX files. @code{Text::BibTeX} gives you access to the data
5350 at many different levels: you may work with BibTeX entries as simple field to
5351 string mappings, or get at the original form of the data as a list of simple
5352 values (strings, macros, or numbers) pasted together.")
5353 (license license:perl-license)))
5354
5355 (define-public biber
5356 (package
5357 (name "biber")
5358 (version "2.12")
5359 (source (origin
5360 (method git-fetch)
5361 (uri (git-reference
5362 (url "https://github.com/plk/biber/")
5363 (commit (string-append "v" version))))
5364 (file-name (git-file-name name version))
5365 ;; TODO: Patch awaiting inclusion upstream (see:
5366 ;; https://github.com/plk/biber/issues/239).
5367 (patches (search-patches "biber-fix-encoding-write.patch"))
5368 (sha256
5369 (base32
5370 "1g1hi6zvf2hmrjly1sidjaxy5440gfqm4p7p3n7kayshnjsmlskx"))))
5371 (build-system perl-build-system)
5372 (arguments
5373 `(#:phases
5374 (modify-phases %standard-phases
5375 (add-after 'install 'wrap-programs
5376 (lambda* (#:key outputs #:allow-other-keys)
5377 (let* ((out (assoc-ref outputs "out"))
5378 (perl5lib (getenv "PERL5LIB")))
5379 (wrap-program (string-append out "/bin/biber")
5380 `("PERL5LIB" ":" prefix
5381 (,(string-append perl5lib ":" out
5382 "/lib/perl5/site_perl")))))
5383 #t)))))
5384 (inputs
5385 `(("perl-autovivification" ,perl-autovivification)
5386 ("perl-class-accessor" ,perl-class-accessor)
5387 ("perl-data-dump" ,perl-data-dump)
5388 ("perl-data-compare" ,perl-data-compare)
5389 ("perl-data-uniqid" ,perl-data-uniqid)
5390 ("perl-datetime-format-builder" ,perl-datetime-format-builder)
5391 ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
5392 ("perl-file-slurper" ,perl-file-slurper)
5393 ("perl-ipc-cmd" ,perl-ipc-cmd)
5394 ("perl-ipc-run3" ,perl-ipc-run3)
5395 ("perl-list-allutils" ,perl-list-allutils)
5396 ("perl-list-moreutils" ,perl-list-moreutils)
5397 ("perl-mozilla-ca" ,perl-mozilla-ca)
5398 ("perl-regexp-common" ,perl-regexp-common)
5399 ("perl-log-log4perl" ,perl-log-log4perl)
5400 ;; We cannot use perl-unicode-collate here, because otherwise the
5401 ;; hardcoded hashes in the tests would differ. See
5402 ;; https://mail-archive.com/debian-bugs-dist@lists.debian.org/msg1469249.html
5403 ;;("perl-unicode-collate" ,perl-unicode-collate)
5404 ("perl-unicode-normalize" ,perl-unicode-normalize)
5405 ("perl-unicode-linebreak" ,perl-unicode-linebreak)
5406 ("perl-encode-eucjpascii" ,perl-encode-eucjpascii)
5407 ("perl-encode-jis2k" ,perl-encode-jis2k)
5408 ("perl-encode-hanextra" ,perl-encode-hanextra)
5409 ("perl-xml-libxml" ,perl-xml-libxml)
5410 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)
5411 ("perl-xml-libxslt" ,perl-xml-libxslt)
5412 ("perl-xml-writer" ,perl-xml-writer)
5413 ("perl-sort-key" ,perl-sort-key)
5414 ("perl-text-csv" ,perl-text-csv)
5415 ("perl-text-csv-xs" ,perl-text-csv-xs)
5416 ("perl-text-roman" ,perl-text-roman)
5417 ("perl-uri" ,perl-uri)
5418 ("perl-text-bibtex" ,perl-text-bibtex)
5419 ("perl-libwww" ,perl-libwww)
5420 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
5421 ("perl-business-isbn" ,perl-business-isbn)
5422 ("perl-business-issn" ,perl-business-issn)
5423 ("perl-business-ismn" ,perl-business-ismn)
5424 ("perl-lingua-translit" ,perl-lingua-translit)))
5425 (native-inputs
5426 `(("perl-config-autoconf" ,perl-config-autoconf)
5427 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
5428 ("perl-module-build" ,perl-module-build)
5429 ;; for tests
5430 ("perl-file-which" ,perl-file-which)
5431 ("perl-test-more" ,perl-test-most) ; FIXME: "more" would be sufficient
5432 ("perl-test-differences" ,perl-test-differences)))
5433 (home-page "http://biblatex-biber.sourceforge.net/")
5434 (synopsis "Backend for the BibLaTeX citation management tool")
5435 (description "Biber is a BibTeX replacement for users of biblatex. Among
5436 other things it comes with full Unicode support.")
5437 (license license:artistic2.0)))
5438
5439 (define-public rubber
5440 (package
5441 (name "rubber")
5442 (version "1.1")
5443 (source (origin
5444 (method url-fetch)
5445 (uri (list (string-append "https://launchpad.net/rubber/trunk/"
5446 version "/+download/rubber-"
5447 version ".tar.gz")
5448 (string-append "http://ebeffara.free.fr/pub/rubber-"
5449 version ".tar.gz")))
5450 (sha256
5451 (base32
5452 "1xbkv8ll889933gyi2a5hj7hhh216k04gn8fwz5lfv5iz8s34gbq"))))
5453 (build-system gnu-build-system)
5454 (arguments '(#:tests? #f)) ; no `check' target
5455 (inputs `(("texinfo" ,texinfo)
5456 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5457 ("which" ,which)))
5458 (home-page "https://launchpad.net/rubber")
5459 (synopsis "Wrapper for LaTeX and friends")
5460 (description
5461 "Rubber is a program whose purpose is to handle all tasks related to the
5462 compilation of LaTeX documents. This includes compiling the document itself,
5463 of course, enough times so that all references are defined, and running BibTeX
5464 to manage bibliographic references. Automatic execution of dvips to produce
5465 PostScript documents is also included, as well as usage of pdfLaTeX to produce
5466 PDF documents.")
5467 (license license:gpl2+)))
5468
5469 (define-public texmaker
5470 (package
5471 (name "texmaker")
5472 (version "5.0.3")
5473 (source (origin
5474 (method url-fetch)
5475 (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
5476 version ".tar.bz2"))
5477 (sha256
5478 (base32
5479 "0vrj9w5lk3vf6138n5bz8phmy3xp5kv4dq1rgirghcf4hbxdyx30"))))
5480 (build-system gnu-build-system)
5481 (arguments
5482 `(#:phases
5483 (modify-phases %standard-phases
5484 ;; Qt has its own configuration utility.
5485 (replace 'configure
5486 (lambda* (#:key outputs #:allow-other-keys)
5487 (let ((out (assoc-ref outputs "out")))
5488 (invoke "qmake"
5489 (string-append "PREFIX=" out)
5490 (string-append "DESKTOPDIR=" out "/share/applications")
5491 (string-append "ICONDIR=" out "/share/pixmaps")
5492 (string-append "METAINFODIR=" out "/share/metainfo")
5493 "texmaker.pro")))))))
5494 (inputs
5495 `(("poppler-qt5" ,poppler-qt5)
5496 ("qtbase" ,qtbase)
5497 ("qtscript" ,qtscript)
5498 ("qtwebkit" ,qtwebkit)
5499 ("zlib" ,zlib)))
5500 (native-inputs
5501 `(("pkg-config" ,pkg-config)))
5502 (home-page "http://www.xm1math.net/texmaker/")
5503 (synopsis "LaTeX editor")
5504 (description "Texmaker is a program that integrates many tools needed to
5505 develop documents with LaTeX, in a single application.")
5506 (license license:gpl2+)))
5507
5508 (define-public teximpatient
5509 (package
5510 (name "teximpatient")
5511 (version "2.4")
5512 (source (origin
5513 (method url-fetch/tarbomb)
5514 (uri (string-append "mirror://gnu/" name "/" name "-"
5515 version ".tar.gz"))
5516 (sha256
5517 (base32
5518 "0h56w22d99dh4fgld4ssik8ggnmhmrrbnrn1lnxi1zr0miphn1sd"))))
5519 (build-system gnu-build-system)
5520 (arguments
5521 `(#:tests? #f ; there are none
5522 #:phases
5523 (modify-phases %standard-phases
5524 (add-after 'unpack 'fix-packaging-error
5525 (lambda* (#:key inputs #:allow-other-keys)
5526 ;; This file should have been part of the tarball.
5527 (install-file (car
5528 (find-files
5529 (assoc-ref inputs "automake")
5530 "^install-sh$"))
5531 ".")
5532 ;; Remove generated file.
5533 (delete-file "book.pdf")
5534 #t)))))
5535 (native-inputs
5536 `(("texlive" ,(texlive-union (list texlive-latex-amsfonts
5537 texlive-fonts-amsfonts
5538 texlive-fonts-adobe-palatino
5539 texlive-fonts-adobe-zapfding
5540 texlive-fonts-knuth-lib
5541 texlive-fonts-mflogo-font
5542 texlive-generic-pdftex)))
5543 ("automake" ,automake)))
5544 (home-page "https://www.gnu.org/software/teximpatient/")
5545 (synopsis "Book on TeX, plain TeX and Eplain")
5546 (description "@i{TeX for the Impatient} is a ~350 page book on TeX,
5547 plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,
5548 and Karl Berry.")
5549 (license license:fdl1.3+)))
5550
5551 (define-public lyx
5552 (package
5553 (name "lyx")
5554 (version "2.3.2-2")
5555 (source (origin
5556 (method url-fetch)
5557 (uri (string-append "http://ftp.lyx.org/pub/lyx/stable/"
5558 (version-major+minor version) ".x/"
5559 name "-" version ".tar.gz"))
5560 (sha256
5561 (base32
5562 "0vr0qwis6rhind6azfa270hqxci7rj8qb1kk5x6lm80mc34nvrqi"))
5563 (modules '((guix build utils)))
5564 (snippet
5565 '(begin
5566 (delete-file-recursively "3rdparty")
5567 #t))))
5568 (build-system cmake-build-system)
5569 (arguments
5570 `(#:configure-flags `("-DLYX_USE_QT=QT5"
5571 "-DLYX_EXTERNAL_BOOST=1"
5572 "-DLYX_INSTALL=1"
5573 "-DLYX_RELEASE=1"
5574 ,(string-append "-DLYX_INSTALL_PREFIX="
5575 (assoc-ref %outputs "out")
5576 ;; Exact name and level is necessary.
5577 "/lyx" ,(version-major+minor version)))
5578 #:phases
5579 (modify-phases %standard-phases
5580 ;; See ;; https://www.lyx.org/trac/changeset/3a123b90af838b08680471d87170c38e56787df9/lyxgit
5581 (add-after 'unpack 'fix-compilation-with-boost-1.69
5582 (lambda _
5583 (substitute* "src/support/FileName.cpp"
5584 (("^template struct boost::detail::crc_table_t.*") ""))
5585 #t))
5586 (add-after 'unpack 'patch-python
5587 (lambda* (#:key inputs #:allow-other-keys)
5588 (substitute* '("src/support/os.cpp")
5589 (("\"python ")
5590 (string-append "\""
5591 (assoc-ref inputs "python")
5592 "/bin/python ")))
5593 #t))
5594 (add-after 'patch-python 'patch-desktop-file
5595 (lambda* (#:key outputs #:allow-other-keys)
5596 (substitute* "lib/lyx.desktop.in"
5597 (("Exec=")
5598 (string-append "Exec="
5599 (assoc-ref outputs "out")
5600 "/")))
5601 #t))
5602 (add-before 'check 'setenv-check
5603 (lambda _
5604 ;; Create missing file that would cause tests to fail.
5605 (with-output-to-file (string-append "../lyx-"
5606 ,version
5607 "/src/tests/check_layout.cmake")
5608 (const #t))
5609 (setenv (string-append "LYX_DIR_"
5610 (string-join
5611 (string-split
5612 ,(version-major+minor version) #\-)) "x")
5613 (string-append (getcwd) "/../lyx-" ,version "/lib"))
5614 #t))
5615 (add-after 'install 'install-symlinks
5616 (lambda* (#:key outputs #:allow-other-keys)
5617 (let ((out (assoc-ref outputs "out")))
5618 (mkdir-p (string-append out "/bin"))
5619 (symlink (string-append "../lyx" ,(version-major+minor version)
5620 "/bin/lyx" ,(version-major+minor version))
5621 (string-append out "/bin/lyx" ,(version-major+minor version)))
5622 #t))))))
5623 (inputs
5624 `(("boost" ,boost)
5625 ("hunspell" ,hunspell) ; Note: Could also use aspell instead.
5626 ("libx11" ,libx11)
5627 ("mythes" ,mythes)
5628 ("python" ,python-2)
5629 ("qtbase" ,qtbase)
5630 ("qtsvg" ,qtsvg)
5631 ("zlib" ,zlib)))
5632 (propagated-inputs
5633 `(("texlive" ,(texlive-union (list texlive-fonts-ec)))))
5634 ;; FIXME: Python 3.7.0 cannot be used because the test infrastructure
5635 ;; "requires a bytes-like object, not 'str'". This may be fixed with
5636 ;; upgrades to Python.
5637 (native-inputs
5638 `(("python" ,python-2)
5639 ("pkg-config" ,pkg-config)
5640 ("bc" ,bc)))
5641 (home-page "https://www.lyx.org/")
5642 (synopsis "Document preparation system with GUI")
5643 (description "LyX is a document preparation system. It excels at letting
5644 you create complex technical and scientific articles with mathematics,
5645 cross-references, bibliographies, indexes, etc. It is very good for working
5646 with documents of any length in which the usual processing abilities are
5647 required: automatic sectioning and pagination, spell checking and so forth.")
5648 (license license:gpl2+)))
5649
5650 (define-public texlive-latex-media9
5651 (package
5652 (name "texlive-latex-media9")
5653 (version (number->string %texlive-revision))
5654 (source (origin
5655 (method svn-fetch)
5656 (uri (svn-reference
5657 (url (string-append "svn://www.tug.org/texlive/tags/"
5658 %texlive-tag "/Master/texmf-dist/"
5659 "/tex/latex/media9"))
5660 (revision %texlive-revision)))
5661 (file-name (string-append name "-" version "-checkout"))
5662 (sha256
5663 (base32
5664 "0lhb2h5hxjq9alpk4r3gvg21pwyifs4ah6hqzp92k55mkp1xv73j"))))
5665 (build-system trivial-build-system)
5666 (arguments
5667 `(#:modules ((guix build utils))
5668 #:builder
5669 (begin
5670 (use-modules (guix build utils))
5671 (let ((target (string-append (assoc-ref %outputs "out")
5672 "/share/texmf-dist/tex/latex/media9")))
5673 (mkdir-p target)
5674 (copy-recursively (assoc-ref %build-inputs "source") target)
5675 #t))))
5676 (home-page "https://www.ctan.org/pkg/media9")
5677 (synopsis "Multimedia inclusion package with Adobe Reader-9/X compatibility")
5678 (description
5679 "The package provides an interface to embed interactive Flash (SWF) and 3D
5680 objects (Adobe U3D & PRC), as well as video and sound files or streams in the
5681 popular MP4, FLV and MP3 formats into PDF documents with Acrobat-9/X
5682 compatibility. Playback of multimedia files uses the built-in Flash Player of
5683 Adobe Reader and does, therefore, not depend on external plug-ins. Flash Player
5684 supports the efficient H.264 codec for video compression.
5685
5686 The package is based on the RichMedia Annotation, an Adobe addition to the PDF
5687 specification. It replaces the now obsolete @code{movie15} package.")
5688 (license license:lppl)))
5689
5690 (define-public texlive-latex-ocgx2
5691 (package
5692 (name "texlive-latex-ocgx2")
5693 (version (number->string %texlive-revision))
5694 (source (origin
5695 (method svn-fetch)
5696 (uri (svn-reference
5697 (url (string-append "svn://www.tug.org/texlive/tags/"
5698 %texlive-tag "/Master/texmf-dist/"
5699 "/tex/latex/ocgx2"))
5700 (revision %texlive-revision)))
5701 (file-name (string-append name "-" version "-checkout"))
5702 (sha256
5703 (base32
5704 "0zp00jg058djx8xp0xqwas92y3j97clkyd8z6pqr890yqy06myqb"))))
5705 (build-system trivial-build-system)
5706 (arguments
5707 `(#:modules ((guix build utils))
5708 #:builder
5709 (begin
5710 (use-modules (guix build utils))
5711 (let ((target (string-append (assoc-ref %outputs "out")
5712 "/share/texmf-dist/tex/latex/ogcx2")))
5713 (mkdir-p target)
5714 (copy-recursively (assoc-ref %build-inputs "source") target)
5715 #t))))
5716 (home-page "https://www.ctan.org/pkg/ocgx2")
5717 (synopsis "Provide OCG (Optional Content Groups) support within a PDF document")
5718 (description
5719 "This package provides OCG (Optional Content Groups) support within a PDF
5720 document.
5721
5722 It re-implements the functionality of the @code{ocg}, @code{ocgx}, and
5723 @code{ocg-p} packages and adds support for all known engines and back-ends
5724 including:
5725
5726 @itemize
5727 @item LaTeX → dvips → @code{ps2pdf}/Distiller
5728 @item (Xe)LaTeX(x) → @code{dvipdfmx}
5729 @item pdfLaTeX and LuaLaTeX .
5730 @end itemize
5731
5732 It also ensures compatibility with the @code{media9} and @code{animate} packages.")
5733 (license license:lppl)))
5734
5735 (define-public texlive-latex-ms
5736 (package
5737 (name "texlive-latex-ms")
5738 (version (number->string %texlive-revision))
5739 (source (origin
5740 (method svn-fetch)
5741 (uri (texlive-ref "latex" "ms"))
5742 (file-name (string-append name "-" version "-checkout"))
5743 (sha256
5744 (base32
5745 "0m4wx3yjb5al1qsv995z8fii8xxy96mcfihbnlx43lpgayiwz35s"))))
5746 (build-system texlive-build-system)
5747 (arguments
5748 '(#:tex-directory "latex/ms"
5749 #:tex-format "latex"))
5750 (home-page "https://ctan.org/pkg/ms")
5751 (synopsis "Various LATEX packages by Martin Schröder")
5752 (description
5753 "A bundle of LATEX packages by Martin Schröder; the collection comprises:
5754
5755 @itemize
5756 @item @command{count1to}, make use of fixed TEX counters;
5757 @item @command{everysel}, set commands to execute every time a font is selected;
5758 @item @command{everyshi}, set commands to execute whenever a page is shipped out;
5759 @item @command{multitoc}, typeset the table of contents in multiple columns;
5760 @item @command{prelim2e}, mark typeset pages as preliminary; and
5761 @item @command{ragged2e}, typeset ragged text and allow hyphenation.
5762 @end itemize\n")
5763 (license license:lppl1.3c+)))
5764
5765 (define-public texlive-latex-needspace
5766 (package
5767 (name "texlive-latex-needspace")
5768 (version (number->string %texlive-revision))
5769 (source (origin
5770 (method svn-fetch)
5771 (uri (texlive-ref "latex" "needspace"))
5772 (file-name (string-append name "-" version "-checkout"))
5773 (sha256
5774 (base32
5775 "0kw80f5jh4gdpa2ka815abza3gr5z8b929w0745vrlc59pl0017y"))))
5776 (build-system texlive-build-system)
5777 (arguments
5778 '(#:tex-directory "latex/needspace"
5779 #:tex-format "latex"))
5780 (inputs
5781 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
5782 (home-page "https://www.ctan.org/pkg/needspace")
5783 (synopsis "Insert pagebreak if not enough space")
5784 (description
5785 "Provides commands to disable pagebreaking within a given vertical
5786 space. If there is not enough space between the command and the bottom of the
5787 page, a new page will be started.")
5788 (license license:lppl)))
5789
5790 (define-public texlive-latex-changepage
5791 (package
5792 (name "texlive-latex-changepage")
5793 (version (number->string %texlive-revision))
5794 (source
5795 (origin
5796 (method svn-fetch)
5797 (uri (texlive-ref "latex" "changepage"))
5798 (sha256
5799 (base32
5800 "1rpw8xg5p4jsyh236jma9dz3l29wjx4062f154b3wak5yjcxyxyb"))))
5801 (build-system texlive-build-system)
5802 (arguments
5803 '(#:tex-directory "latex/changepage"
5804 #:tex-format "latex"))
5805 (inputs
5806 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
5807 (home-page "https://www.ctan.org/pkg/changepage")
5808 (synopsis "Margin adjustment and detection of odd/even pages")
5809 (description
5810 "The package provides commands to change the page layout in the middle of
5811 a document, and to robustly check for typesetting on odd or even pages.
5812 Instructions for use are at the end of the file. The package is an extraction
5813 of code from the @code{memoir} class, whose user interface it shares.")
5814 (license license:lppl1.3+)))
5815
5816 (define-public texlive-latex-eukdate
5817 (package
5818 (name "texlive-latex-eukdate")
5819 (version (number->string %texlive-revision))
5820 (source
5821 (origin
5822 (method svn-fetch)
5823 (uri (svn-reference
5824 (url (string-append "svn://www.tug.org/texlive/tags/"
5825 %texlive-tag "/Master/texmf-dist/"
5826 "/tex/latex/eukdate"))
5827 (revision %texlive-revision)))
5828 (file-name (string-append name "-" version "-checkout"))
5829 (sha256
5830 (base32
5831 "18xan116l8w47v560bkw6nbhkrml7g04xrlzk3jrpc7qsyf3n5fz"))))
5832 (build-system trivial-build-system)
5833 (arguments
5834 `(#:modules ((guix build utils))
5835 #:builder
5836 (begin
5837 (use-modules (guix build utils))
5838 (let ((target (string-append (assoc-ref %outputs "out")
5839 "/share/texmf-dist/tex/latex/eukdate")))
5840 (mkdir-p target)
5841 (copy-recursively (assoc-ref %build-inputs "source") target)
5842 #t))))
5843 (home-page "https://www.ctan.org/pkg/eukdate")
5844 (synopsis "UK format dates, with weekday")
5845 (description
5846 "The package is used to change the format of @code{\\today}’s date,
5847 including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which
5848 is preferred in many parts of the world, as distinct from that which is used in
5849 @code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'.")
5850 (license license:lppl)))
5851
5852 (define-public texlive-generic-ulem
5853 (package
5854 (name "texlive-generic-ulem")
5855 (version (number->string %texlive-revision))
5856 (source
5857 (origin
5858 (method svn-fetch)
5859 (uri (svn-reference
5860 (url (string-append "svn://www.tug.org/texlive/tags/"
5861 %texlive-tag "/Master/texmf-dist/"
5862 "/tex/generic/ulem"))
5863 (revision %texlive-revision)))
5864 (file-name (string-append name "-" version "-checkout"))
5865 (sha256
5866 (base32
5867 "1rzdniqq9zk39w8ch8ylx3ywh2mj87s4ivchrsk2b8nx06jyn797"))))
5868 (build-system trivial-build-system)
5869 (arguments
5870 `(#:modules ((guix build utils))
5871 #:builder
5872 (begin
5873 (use-modules (guix build utils))
5874 (let ((target (string-append (assoc-ref %outputs "out")
5875 "/share/texmf-dist/tex/generic/ulem")))
5876 (mkdir-p target)
5877 (copy-recursively (assoc-ref %build-inputs "source") target)
5878 #t))))
5879 (home-page "https://www.ctan.org/pkg/ulem")
5880 (synopsis "Underline text in TeX")
5881 (description
5882 "The package provides an @code{\\ul} (underline) command which will break
5883 over line ends; this technique may be used to replace @code{\\em} (both in that
5884 form and as the @code{\\emph} command), so as to make output look as if it comes
5885 from a typewriter. The package also offers double and wavy underlining, and
5886 striking out (line through words) and crossing out (/// over words).")
5887 (license license:lppl1.3c+)))
5888
5889 (define-public texlive-latex-pgf
5890 (package
5891 (name "texlive-latex-pgf")
5892 (version (number->string %texlive-revision))
5893 (source
5894 (origin
5895 (method svn-fetch)
5896 (uri (svn-reference
5897 (url (string-append "svn://www.tug.org/texlive/tags/"
5898 %texlive-tag "/Master/texmf-dist/"
5899 "/tex/latex/pgf"))
5900 (revision %texlive-revision)))
5901 (file-name (string-append name "-" version "-checkout"))
5902 (sha256
5903 (base32
5904 "1dq8p10pz8wn0vx412m7d7d5gj1syxly3yqdqvf7lv2xl8zndn5h"))))
5905 (build-system trivial-build-system)
5906 (native-inputs
5907 `(("texlive-latex-pgf-generic"
5908 ,(origin
5909 (method svn-fetch)
5910 (uri (svn-reference
5911 (url (string-append "svn://www.tug.org/texlive/tags/"
5912 %texlive-tag "/Master/texmf-dist/"
5913 "/tex/generic/pgf"))
5914 (revision %texlive-revision)))
5915 (file-name (string-append "texlive-latex-pgf-generic" version "-checkout"))
5916 (sha256
5917 (base32
5918 "0xkxw26sjzr5npjpzpr28yygwdbhzpdd0hsk80gjpidhcxmz393i"))))))
5919 (propagated-inputs
5920 `(("texlive-latex-xcolor" ,texlive-latex-xcolor)))
5921 (arguments
5922 `(#:modules ((guix build utils))
5923 #:builder
5924 (begin
5925 (use-modules (guix build utils))
5926 (let ((target-generic (string-append (assoc-ref %outputs "out")
5927 "/share/texmf-dist/tex/generic/pgf"))
5928 (target-latex (string-append (assoc-ref %outputs "out")
5929 "/share/texmf-dist/tex/latex/pgf")))
5930 (mkdir-p target-generic)
5931 (mkdir-p target-latex)
5932 (copy-recursively (assoc-ref %build-inputs "texlive-latex-pgf-generic") target-generic)
5933 (copy-recursively (assoc-ref %build-inputs "source") target-latex)
5934 #t))))
5935 (home-page "https://www.ctan.org/pkg/tikz")
5936 (synopsis "Create PostScript and PDF graphics in TeX")
5937 (description
5938 "PGF is a macro package for creating graphics. It is platform- and
5939 format-independent and works together with the most important TeX backend
5940 drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer
5941 called TikZ.
5942
5943 Its usage is similar to pstricks and the standard picture environment. PGF
5944 works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can
5945 produce either PostScript or PDF output.")
5946 (license license:lppl1.3c+)))
5947
5948 (define-public texlive-latex-koma-script
5949 (package
5950 (name "texlive-latex-koma-script")
5951 (version (number->string %texlive-revision))
5952 (source (origin
5953 (method svn-fetch)
5954 (uri (svn-reference
5955 (url (string-append "svn://www.tug.org/texlive/tags/"
5956 %texlive-tag "/Master/texmf-dist/"
5957 "/tex/latex/koma-script"))
5958 (revision %texlive-revision)))
5959 (file-name (string-append name "-" version "-checkout"))
5960 (sha256
5961 (base32
5962 "0nqwf0sr4mf3v9gqa6apv6ml2xhcdwax0vgyf12a672g7rpdyvgm"))))
5963 (build-system trivial-build-system)
5964 (arguments
5965 `(#:modules ((guix build utils)
5966 (ice-9 match))
5967 #:builder
5968 (begin
5969 (use-modules (guix build utils)
5970 (ice-9 match))
5971 (let ((root (string-append (assoc-ref %outputs "out")
5972 "/share/texmf-dist/"))
5973 (pkgs '(("source" . "tex/latex/koma-script"))))
5974 (for-each (match-lambda
5975 ((pkg . dir)
5976 (let ((target (string-append root dir)))
5977 (mkdir-p target)
5978 (copy-recursively (assoc-ref %build-inputs pkg)
5979 target))))
5980 pkgs)
5981 #t))))
5982 (home-page "https://www.ctan.org/pkg/koma-script")
5983 (synopsis "Bundle of versatile classes and packages")
5984 (description
5985 "The KOMA-Script bundle provides replacements for the article, report, and
5986 book classes with emphasis on typography and versatility. There is also a
5987 letter class.
5988
5989 The bundle also offers:
5990
5991 @itemize
5992 @item a package for calculating type areas in the way laid down by the
5993 typographer Jan Tschichold,
5994 @item packages for easily changing and defining page styles,
5995 @item a package scrdate for getting not only the current date but also the name
5996 of the day, and
5997 @item a package scrtime for getting the current time.
5998 @end itemize
5999
6000 All these packages may be used not only with KOMA-Script classes but also with
6001 the standard classes.
6002
6003 Since every package has its own version number, the version number quoted only
6004 refers to the version of scrbook, scrreprt, scrartcl, scrlttr2 and
6005 typearea (which are the main parts of the bundle).")
6006 (license license:lppl1.3+)))
6007
6008 (define-public texlive-generic-listofitems
6009 (package
6010 (name "texlive-generic-listofitems")
6011 (version (number->string %texlive-revision))
6012 (source (origin
6013 (method svn-fetch)
6014 (uri (svn-reference
6015 (url (string-append "svn://www.tug.org/texlive/tags/"
6016 %texlive-tag "/Master/texmf-dist/"
6017 "/tex/generic/listofitems"))
6018 (revision %texlive-revision)))
6019 (file-name (string-append name "-" version "-checkout"))
6020 (sha256
6021 (base32
6022 "0hs28fc0v2l92ad9las9b8xcckyrdrwmyhcx1yzmbr6s7s6nvsx8"))))
6023 (build-system trivial-build-system)
6024 (arguments
6025 `(#:modules ((guix build utils))
6026 #:builder
6027 (begin
6028 (use-modules (guix build utils))
6029 (let ((target (string-append (assoc-ref %outputs "out")
6030 "/share/texmf-dist/tex/generic/listofitems")))
6031 (mkdir-p target)
6032 (copy-recursively (assoc-ref %build-inputs "source") target)
6033 #t))))
6034 (home-page "https://www.ctan.org/pkg/listofitems")
6035 (synopsis "Grab items in lists using user-specified separation character")
6036 (description
6037 "This package allows one to capture all the items of a list, for which
6038 the parsing character has been selected by the user, and to access any of
6039 these items with a simple syntax.")
6040 (license license:lppl1.3c+)))
6041
6042 (define-public texlive-latex-readarray
6043 (package
6044 (name "texlive-latex-readarray")
6045 (version (number->string %texlive-revision))
6046 (source (origin
6047 (method svn-fetch)
6048 (uri (svn-reference
6049 (url (string-append "svn://www.tug.org/texlive/tags/"
6050 %texlive-tag "/Master/texmf-dist/"
6051 "/tex/latex/readarray"))
6052 (revision %texlive-revision)))
6053 (file-name (string-append name "-" version "-checkout"))
6054 (sha256
6055 (base32
6056 "0c53k180ivn1n7fz3ngvd2w1i5dw3kxml0n64vhki88xsylz7lxp"))))
6057 (build-system trivial-build-system)
6058 (arguments
6059 `(#:modules ((guix build utils))
6060 #:builder
6061 (begin
6062 (use-modules (guix build utils))
6063 (let ((target (string-append (assoc-ref %outputs "out")
6064 "/share/texmf-dist/tex/latex/readarray")))
6065 (mkdir-p target)
6066 (copy-recursively (assoc-ref %build-inputs "source") target)
6067 #t))))
6068 (propagated-inputs
6069 `(("texlive-generic-listofitems" ,texlive-generic-listofitems)))
6070 (home-page "https://www.ctan.org/pkg/readarray")
6071 (synopsis "Read, store and recall array-formatted data")
6072 (description
6073 "This package allows the user to input formatted data into elements of a
6074 2-D or 3-D array and to recall that data at will by individual cell number.
6075 The data can be but need not be numerical in nature. It can be, for example,
6076 formatted text.")
6077 (license license:lppl1.3)))
6078
6079 (define-public texlive-latex-verbatimbox
6080 (package
6081 (name "texlive-latex-verbatimbox")
6082 (version (number->string %texlive-revision))
6083 (source (origin
6084 (method svn-fetch)
6085 (uri (svn-reference
6086 (url (string-append "svn://www.tug.org/texlive/tags/"
6087 %texlive-tag "/Master/texmf-dist/"
6088 "/tex/latex/verbatimbox"))
6089 (revision %texlive-revision)))
6090 (file-name (string-append name "-" version "-checkout"))
6091 (sha256
6092 (base32
6093 "0qh1cgvfs463zsi2pjg490gj0mkjfdpfc381j10cbb5la304psna"))))
6094 (build-system trivial-build-system)
6095 (arguments
6096 `(#:modules ((guix build utils))
6097 #:builder
6098 (begin
6099 (use-modules (guix build utils))
6100 (let ((target (string-append (assoc-ref %outputs "out")
6101 "/share/texmf-dist/tex/latex/verbatimbox")))
6102 (mkdir-p target)
6103 (copy-recursively (assoc-ref %build-inputs "source") target)
6104 #t))))
6105 (propagated-inputs
6106 `(("texlive-latex-readarray" ,texlive-latex-readarray)))
6107 (home-page "https://www.ctan.org/pkg/verbatimbox")
6108 (synopsis "Deposit verbatim text in a box")
6109 (description
6110 "The package provides a @code{verbbox} environment to place its contents
6111 into a globally available box, or into a box specified by the user. The
6112 global box may then be used in a variety of situations (for example, providing
6113 a replica of the @code{boxedverbatim} environment itself). A valuable use is
6114 in places where the standard @code{verbatim} environment (which is based on a
6115 @code{trivlist}) may not appear.")
6116 (license license:lppl1.3+)))
6117
6118 (define-public texlive-latex-examplep
6119 (package
6120 (name "texlive-latex-examplep")
6121 (version (number->string %texlive-revision))
6122 (source (origin
6123 (method svn-fetch)
6124 (uri (svn-reference
6125 (url (string-append "svn://www.tug.org/texlive/tags/"
6126 %texlive-tag "/Master/texmf-dist/"
6127 "/tex/latex/examplep"))
6128 (revision %texlive-revision)))
6129 (file-name (string-append name "-" version "-checkout"))
6130 (sha256
6131 (base32
6132 "0fsvvmz68ij0zwfzrny6x13d92grxr4ap59lxgah4smbkccd6s27"))))
6133 (build-system trivial-build-system)
6134 (arguments
6135 `(#:modules ((guix build utils))
6136 #:builder
6137 (begin
6138 (use-modules (guix build utils))
6139 (let ((target (string-append (assoc-ref %outputs "out")
6140 "/share/texmf-dist/tex/latex/examplep")))
6141 (mkdir-p target)
6142 (copy-recursively (assoc-ref %build-inputs "source") target)
6143 #t))))
6144 (home-page "https://www.ctan.org/pkg/examplep")
6145 (synopsis "Verbatim phrases and listings in LaTeX")
6146 (description
6147 "Examplep provides sophisticated features for typesetting verbatim source
6148 code listings, including the display of the source code and its compiled LaTeX
6149 or METAPOST output side-by-side, with automatic width detection and enabled
6150 page breaks (in the source), without the need for specifying the source twice.
6151 Special care is taken that section, page and footnote numbers do not interfere
6152 with the main document. For typesetting short verbatim phrases, a replacement
6153 for the @code{\\verb} command is also provided in the package, which can be
6154 used inside tables and moving arguments such as footnotes and section
6155 titles.")
6156 ;; No version of the GPL is specified.
6157 (license license:gpl3+)))
6158
6159 (define-public texlive-generic-xypic
6160 (package
6161 (name "texlive-generic-xypic")
6162 (version (number->string %texlive-revision))
6163 (source
6164 (origin
6165 (method svn-fetch)
6166 (uri (svn-reference
6167 (url (string-append "svn://www.tug.org/texlive/tags/"
6168 %texlive-tag "/Master/texmf-dist/"
6169 "/tex/generic/xypic"))
6170 (revision %texlive-revision)))
6171 (file-name (string-append name "-" version "-checkout"))
6172 (sha256
6173 (base32
6174 "1g5cyxwdfznq4lk9zl6fkjkapmhmwd2cm4m5aibxj20qgwnaggfz"))))
6175 (build-system trivial-build-system)
6176 (arguments
6177 `(#:modules ((guix build utils))
6178 #:builder
6179 (begin
6180 (use-modules (guix build utils))
6181 (let ((target (string-append (assoc-ref %outputs "out")
6182 "/share/texmf-dist/tex/generic/xypic")))
6183 (mkdir-p target)
6184 (copy-recursively (assoc-ref %build-inputs "source") target)
6185 #t))))
6186 (home-page "https://www.ctan.org/pkg/xypic")
6187 (synopsis "Flexible diagramming macros for TeX")
6188 (description
6189 "A package for typesetting a variety of graphs and diagrams with TeX.
6190 Xy-pic works with most formats (including LaTeX, AMS-LaTeX, AMS-TeX, and plain
6191 TeX).")
6192 (license license:gpl3+)))
6193
6194 (define-public texlive-fonts-xypic
6195 (package
6196 (name "texlive-fonts-xypic")
6197 (version (number->string %texlive-revision))
6198 (source (origin
6199 (method svn-fetch)
6200 (uri (svn-reference
6201 (url (string-append "svn://www.tug.org/texlive/tags/"
6202 %texlive-tag "/Master/texmf-dist/"
6203 "/fonts/source/public/xypic"))
6204 (revision %texlive-revision)))
6205 (file-name (string-append name "-" version "-checkout"))
6206 (sha256
6207 (base32
6208 "0p20v1257kwsqnrk98cdhhiz2viv8l3ly4xay4by0an3j37m9xs3"))))
6209 (build-system trivial-build-system)
6210 (arguments
6211 `(#:modules ((guix build utils)
6212 (ice-9 match))
6213 #:builder
6214 (begin
6215 (use-modules (guix build utils)
6216 (ice-9 match))
6217 (let ((root (string-append (assoc-ref %outputs "out")
6218 "/share/texmf-dist/"))
6219 (pkgs '(("source" . "fonts/source/public/xypic")
6220 ("xypic-afm" . "fonts/afm/public/xypic")
6221 ("xypic-type1" . "fonts/type1/public/xypic")
6222 ("xypic-enc" . "fonts/enc/dvips/xypic"))))
6223 (for-each (match-lambda
6224 ((pkg . dir)
6225 (let ((target (string-append root dir)))
6226 (mkdir-p target)
6227 (copy-recursively (assoc-ref %build-inputs pkg)
6228 target))))
6229 pkgs)
6230 #t))))
6231 (native-inputs
6232 `(("xypic-afm"
6233 ,(origin
6234 (method svn-fetch)
6235 (uri (svn-reference
6236 (url (string-append "svn://www.tug.org/texlive/tags/"
6237 %texlive-tag "/Master/texmf-dist/"
6238 "/fonts/afm/public/xypic"))
6239 (revision %texlive-revision)))
6240 (file-name (string-append name "-afm-" version "-checkout"))
6241 (sha256
6242 (base32
6243 "149xdijxp8lw3s0qv2aqxxxyyn748z57dpr596rjvkqdffpnsddh"))))
6244 ("xypic-type1"
6245 ,(origin
6246 (method svn-fetch)
6247 (uri (svn-reference
6248 (url (string-append "svn://www.tug.org/texlive/tags/"
6249 %texlive-tag "/Master/texmf-dist/"
6250 "/fonts/type1/public/xypic"))
6251 (revision %texlive-revision)))
6252 (file-name (string-append name "-type1-" version "-checkout"))
6253 (sha256
6254 (base32
6255 "1bln89wib7g3hcv2jny3qi6jb73k9d2vbgx3wnnjwp3ryg0846if"))))
6256 ("xypic-enc"
6257 ,(origin
6258 (method svn-fetch)
6259 (uri (svn-reference
6260 (url (string-append "svn://www.tug.org/texlive/tags/"
6261 %texlive-tag "/Master/texmf-dist/"
6262 "/fonts/enc/dvips/xypic"))
6263 (revision %texlive-revision)))
6264 (file-name (string-append name "-enc-" version "-checkout"))
6265 (sha256
6266 (base32
6267 "0yi8vms3203l3p5slnhrrlzzp0f0jw77fkcvcaicrz2vmw9z99x7"))))))
6268 (home-page "https://www.ctan.org/pkg/xypic")
6269 (synopsis "Fonts for XY-pic")
6270 (description "This package provides the XY-pic fonts.")
6271 (license license:gpl3+)))
6272
6273 (define-public texlive-bibtex
6274 (package
6275 (name "texlive-bibtex")
6276 (version (number->string %texlive-revision))
6277 (source
6278 (origin
6279 (method svn-fetch)
6280 (uri (svn-reference
6281 (url (string-append "svn://www.tug.org/texlive/tags/"
6282 %texlive-tag "/Master/texmf-dist/"
6283 "/bibtex"))
6284 (revision %texlive-revision)))
6285 (file-name (string-append name "-" version "-checkout"))
6286 (sha256
6287 (base32
6288 "0hnbs0s1znbn32hfcsyijl39z81sdb00jf092a4blqz421qs2mbv"))))
6289 (build-system trivial-build-system)
6290 (arguments
6291 `(#:modules ((guix build utils))
6292 #:builder
6293 (begin
6294 (use-modules (guix build utils))
6295 (let ((target (string-append (assoc-ref %outputs "out")
6296 "/share/texmf-dist/bibtex")))
6297 (mkdir-p target)
6298 (copy-recursively (assoc-ref %build-inputs "source") target)
6299 #t))))
6300 (home-page "https://www.ctan.org/pkg/bibtex")
6301 (synopsis "Process bibliographies for LaTeX")
6302 (description
6303 "BibTeX allows the user to store his citation data in generic form, while
6304 printing citations in a document in the form specified by a BibTeX style, to
6305 be specified in the document itself (one often needs a LaTeX citation-style
6306 package, such as @command{natbib} as well).")
6307 (license license:knuth)))
6308
6309 (define-public texlive-fonts-charter
6310 (package
6311 (name "texlive-fonts-charter")
6312 (version (number->string %texlive-revision))
6313 (source (origin
6314 (method svn-fetch)
6315 (uri (svn-reference
6316 (url (string-append "svn://www.tug.org/texlive/tags/"
6317 %texlive-tag "/Master/texmf-dist/"
6318 "/fonts/type1/bitstrea/charter"))
6319 (revision %texlive-revision)))
6320 (file-name (string-append name "-" version "-checkout"))
6321 (sha256
6322 (base32
6323 "0yvib45xxff3jm5270zij4q888pivbc18cqs7lz4pqfhn1am4wnv"))))
6324 (build-system trivial-build-system)
6325 (arguments
6326 `(#:modules ((guix build utils)
6327 (ice-9 match))
6328 #:builder
6329 (begin
6330 (use-modules (guix build utils)
6331 (ice-9 match))
6332 (let ((root (string-append (assoc-ref %outputs "out")
6333 "/share/texmf-dist/"))
6334 (pkgs '(("source" . "fonts/type1/bitstrea/charter")
6335 ("charter-afm" . "fonts/afm/bitstrea/charter")
6336 ("charter-tfm" . "fonts/tfm/bitstrea/charter"))))
6337 (for-each (match-lambda
6338 ((pkg . dir)
6339 (let ((target (string-append root dir)))
6340 (mkdir-p target)
6341 (copy-recursively (assoc-ref %build-inputs pkg)
6342 target))))
6343 pkgs)
6344 #t))))
6345 (native-inputs
6346 `(("charter-afm"
6347 ,(origin
6348 (method svn-fetch)
6349 (uri (svn-reference
6350 (url (string-append "svn://www.tug.org/texlive/tags/"
6351 %texlive-tag "/Master/texmf-dist/"
6352 "/fonts/afm/bitstrea/charter"))
6353 (revision %texlive-revision)))
6354 (file-name (string-append name "-afm-" version "-checkout"))
6355 (sha256
6356 (base32
6357 "02nbkqrlr3vypnzslmr7dxg1353mmc0rl4ynx0s6qbvf313fq76a"))))
6358 ("charter-tfm"
6359 ,(origin
6360 (method svn-fetch)
6361 (uri (svn-reference
6362 (url (string-append "svn://www.tug.org/texlive/tags/"
6363 %texlive-tag "/Master/texmf-dist/"
6364 "/fonts/tfm/bitstrea/charter"))
6365 (revision %texlive-revision)))
6366 (file-name (string-append name "-tfm-" version "-checkout"))
6367 (sha256
6368 (base32
6369 "0j7ci9vprivbhac70aq0z7m23hqcpx1g0i3wp1k0h8ilhimj80xk"))))))
6370 (home-page "https://www.ctan.org/pkg/charter")
6371 (synopsis "Charter fonts for TeX")
6372 (description "A commercial text font donated for the common good. Support
6373 for use with LaTeX is available in @code{freenfss}, part of
6374 @command{psnfss}. ")
6375 (license (license:non-copyleft (string-append "http://mirrors.ctan.org/"
6376 "fonts/charter/readme.charter")))))
6377
6378 (define-public texlive-context-base
6379 (package
6380 (name "texlive-context-base")
6381 (version (number->string %texlive-revision))
6382 (source (origin
6383 (method svn-fetch)
6384 (uri (svn-reference
6385 (url (string-append "svn://www.tug.org/texlive/tags/"
6386 %texlive-tag "/Master/texmf-dist/"
6387 "/tex/context/base"))
6388 (revision %texlive-revision)))
6389 (file-name (string-append name "-" version "-checkout"))
6390 (sha256
6391 (base32
6392 "0rlx4qqijms1n64gjx475kvip8l322fh7v17zkmwp1l1g0w3vlyz"))))
6393 (build-system trivial-build-system)
6394 (arguments
6395 `(#:modules ((guix build utils))
6396 #:builder
6397 (begin
6398 (use-modules (guix build utils))
6399 (let ((target (string-append (assoc-ref %outputs "out")
6400 "/share/texmf-dist/tex/context/case")))
6401 (mkdir-p target)
6402 (copy-recursively (assoc-ref %build-inputs "source") target)
6403 #t))))
6404 (home-page "https://www.ctan.org/pkg/context")
6405 (synopsis "Full featured, parameter driven macro package for TeX")
6406 (description "A full featured, parameter driven macro package, which fully
6407 supports advanced interactive documents. See the ConTeXt garden for a wealth
6408 of support information.")
6409 (license license:gpl2+)))
6410
6411 (define-public texlive-latex-beamer
6412 (package
6413 (name "texlive-latex-beamer")
6414 (version (number->string %texlive-revision))
6415 (source (origin
6416 (method svn-fetch)
6417 (uri (svn-reference
6418 (url (string-append "svn://www.tug.org/texlive/tags/"
6419 %texlive-tag "/Master/texmf-dist/"
6420 "/tex/latex/beamer"))
6421 (revision %texlive-revision)))
6422 (file-name (string-append name "-" version "-checkout"))
6423 (sha256
6424 (base32
6425 "09y3qwbj0nckshvg9afgwcv9v3zdif1d7bnpzrggsa1fbr80mgk2"))))
6426 (build-system trivial-build-system)
6427 (outputs '("out" "doc"))
6428 (arguments
6429 `(#:modules ((guix build utils))
6430 #:builder
6431 (begin
6432 (use-modules (guix build utils))
6433 (let ((target (string-append (assoc-ref %outputs "out")
6434 "/share/texmf-dist/tex/latex/beamer"))
6435 (docs (string-append (assoc-ref %outputs "doc")
6436 "/share/texmf-dist/doc/latex/beamer/")))
6437 (mkdir-p target)
6438 (copy-recursively (assoc-ref %build-inputs "source") target)
6439
6440 (mkdir-p docs)
6441 (copy-recursively (assoc-ref %build-inputs "docs") docs)
6442 #t))))
6443 (propagated-inputs
6444 `(("texlive-latex-hyperref" ,texlive-latex-hyperref)
6445 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
6446 ("texlive-latex-etoolbox" ,texlive-latex-etoolbox)
6447 ("texlive-latex-pgf" ,texlive-latex-pgf)))
6448 (native-inputs
6449 `(("docs"
6450 ,(origin
6451 (method svn-fetch)
6452 (uri (svn-reference
6453 (url (string-append "svn://www.tug.org/texlive/tags/"
6454 %texlive-tag "/Master/texmf-dist/"
6455 "/doc/latex/beamer"))
6456 (revision %texlive-revision)))
6457 (file-name (string-append name "-" version "-checkout"))
6458 (sha256
6459 (base32
6460 "102b18b9nw9dicqqgjwx0srh1mav8vh9wdvwayn741niza9hac23"))))))
6461 (home-page "https://www.ctan.org/pkg/beamer")
6462 (synopsis "LaTeX class for producing presentations and slides")
6463 (description "The beamer LaTeX class can be used for producing slides.
6464 The class works in both PostScript and direct PDF output modes, using the
6465 @code{pgf} graphics system for visual effects. Content is created in the
6466 @code{frame} environment, and each frame can be made up of a number of slides
6467 using a simple notation for specifying material to appear on each slide within
6468 a frame. Short versions of title, authors, institute can also be specified as
6469 optional parameters. Whole frame graphics are supported by plain frames. The
6470 class supports @code{figure} and @code{table} environments, transparency
6471 effects, varying slide transitions and animations.")
6472 ;; Code is dual licensed under GPLv2+ or LPPL1.3c+; documentation is
6473 ;; dual-licensed under either FDLv1.3+ or LPPL1.3c+.
6474 (license (list license:lppl1.3c+ license:gpl2+ license:fdl1.3+))))
6475
6476 (define-public texlive-latex-xmpincl
6477 (package
6478 (name "texlive-latex-xmpincl")
6479 (version (number->string %texlive-revision))
6480 (source
6481 (origin
6482 (method svn-fetch)
6483 (uri (texlive-ref "latex" "xmpincl"))
6484 (sha256
6485 (base32
6486 "0lq3dfb4fsw955gjwllnk7cg00ciq5mva64mlpbva6g2jz117734"))))
6487 (build-system texlive-build-system)
6488 (arguments '(#:tex-directory "latex/xmpincl"))
6489 (home-page "http://www.ctan.org/pkg/xmpincl")
6490 (synopsis "Include eXtensible Metadata Platform data in pdfLaTeX")
6491 (description
6492 "The XMP (eXtensible Metadata platform) is a framework to add metadata to
6493 digital material to enhance the workflow in publication. The essence is that
6494 the metadata is stored in an XML file, and this XML stream is then embedded in
6495 the file to which it applies.")
6496 (license license:gpl3+)))
6497
6498 (define-public texlive-latex-pdfx
6499 (package
6500 (name "texlive-latex-pdfx")
6501 (version (number->string %texlive-revision))
6502 (source
6503 (origin
6504 (method svn-fetch)
6505 (uri (texlive-ref "latex" "pdfx"))
6506 (sha256
6507 (base32
6508 "0ikxg8yzq78hy5b9x13d4nah46d0yvmwlqmdri06pygbx116dcac"))))
6509 (build-system texlive-build-system)
6510 (arguments
6511 '(#:tex-directory "latex/pdfx"
6512 #:phases
6513 (modify-phases %standard-phases
6514 (add-after 'unpack 'fix-encoding
6515 (lambda _
6516 (substitute* "pdfx.dtx"
6517 ((" .+umaczy") "umaczy"))
6518 #t))
6519 (add-before 'install 'install-tex-files
6520 (lambda* (#:key inputs outputs #:allow-other-keys)
6521 (let ((target (string-append (assoc-ref outputs "out")
6522 "/share/texmf-dist/tex/latex/pdfx")))
6523 (mkdir-p target)
6524 (copy-recursively (assoc-ref inputs "texlive-tex-pdfx") target)
6525 ;; Install the generated version in the "install" phase.
6526 (delete-file (string-append target "/pdfx.sty"))
6527 #t))))))
6528 (propagated-inputs
6529 `(("texlive-generic-pdftex" ,texlive-generic-pdftex)))
6530 (native-inputs
6531 `(("texlive-tex-pdfx"
6532 ,(origin
6533 (method svn-fetch)
6534 (uri (svn-reference
6535 (url (string-append "svn://www.tug.org/texlive/tags/"
6536 %texlive-tag "/Master/texmf-dist/"
6537 "/tex/latex/pdfx"))
6538 (revision %texlive-revision)))
6539 (file-name (string-append "texlive-tex-latex-pdfx-" version "-checkout"))
6540 (sha256
6541 (base32
6542 "14j1zsvqc59ims3sk34v6km8db6cimks28y5fcxcr5mi2ykvj4vf"))))))
6543 (home-page "https://www.ctan.org/pkg/pdfx")
6544 (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX")
6545 (description
6546 "This package helps LaTeX users to create PDF/X, PFD/A and other
6547 standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX.")
6548 (license license:lppl1.2+)))