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