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