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