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 trivial-build-system)
2774 (arguments
2775 `(#:modules ((guix build utils))
2776 #:builder
2777 (begin
2778 (use-modules (guix build utils))
2779 (let ((target (string-append (assoc-ref %outputs "out")
2780 "/share/texmf-dist/tex/latex/seminar")))
2781 (mkdir-p target)
2782 (copy-recursively (assoc-ref %build-inputs "source") target)
2783 #t))))
2784 (home-page "https://www.ctan.org/pkg/seminar")
2785 (synopsis "Make overhead slides")
2786 ;; TODO: This package may need fancybox and xcomment at runtime.
2787 (description
2788 "This package provides a class that produces overhead
2789 slides (transparencies), with many facilities. Seminar is not nowadays
2790 reckoned a good basis for a presentation — users are advised to use more
2791 recent classes such as powerdot or beamer, both of which are tuned to
2792 21st-century presentation styles.")
2793 (license license:lppl1.2+)))
2794
2795 (define-public texlive-latex-trimspaces
2796 (package
2797 (name "texlive-latex-trimspaces")
2798 (version (number->string %texlive-revision))
2799 (source (origin
2800 (method svn-fetch)
2801 (uri (texlive-ref "latex" "trimspaces"))
2802 (file-name (string-append name "-" version "-checkout"))
2803 (sha256
2804 (base32
2805 "0da00lb32am4g63mn96625wg48p3pj3spx79lajrk17d549apwqa"))))
2806 (build-system texlive-build-system)
2807 (arguments
2808 '(#:tex-directory "latex/trimspaces"
2809 #:tex-format "latex"
2810 #:phases
2811 (modify-phases %standard-phases
2812 (add-after 'unpack 'fix-bug
2813 (lambda _
2814 ;; The "ins" file refers to the wrong source file.
2815 (substitute* "trimspaces.ins"
2816 (("pstool.tex") "trimspaces.tex"))
2817 #t)))))
2818 (inputs
2819 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
2820 (home-page "https://www.ctan.org/pkg/trimspaces")
2821 (synopsis "Trim spaces around an argument or within a macro")
2822 (description
2823 "This very short package allows you to expandably remove spaces around a
2824 token list (commands are provided to remove spaces before, spaces after, or
2825 both); or to remove surrounding spaces within a macro definition, or to define
2826 space-stripped macros.")
2827 (license license:lppl)))
2828
2829 (define-public texlive-latex-capt-of
2830 (package
2831 (name "texlive-latex-capt-of")
2832 (version (number->string %texlive-revision))
2833 (source (origin
2834 (method svn-fetch)
2835 (uri (svn-reference
2836 (url (string-append "svn://www.tug.org/texlive/tags/"
2837 %texlive-tag "/Master/texmf-dist/"
2838 "/tex/latex/capt-of"))
2839 (revision %texlive-revision)))
2840 (file-name (string-append name "-" version "-checkout"))
2841 (sha256
2842 (base32
2843 "1y2s50f6lz0jx2748lj3iy56hrpcczgnbzmvphxv7aqndyyamd4x"))))
2844 (build-system trivial-build-system)
2845 (arguments
2846 `(#:modules ((guix build utils))
2847 #:builder
2848 (begin
2849 (use-modules (guix build utils))
2850 (let ((target (string-append (assoc-ref %outputs "out")
2851 "/share/texmf-dist/tex/latex/capt-of")))
2852 (mkdir-p target)
2853 (copy-recursively (assoc-ref %build-inputs "source") target)
2854 #t))))
2855 (home-page "https://www.ctan.org/pkg/capt-of")
2856 (synopsis "Captions on more than floats")
2857 (description
2858 "This package defines a command @code{\\captionof} for putting a caption
2859 to something that's not a float.")
2860 (license license:lppl)))
2861
2862 (define-public texlive-latex-doi
2863 (package
2864 (name "texlive-latex-doi")
2865 (version (number->string %texlive-revision))
2866 (source (origin
2867 (method svn-fetch)
2868 (uri (svn-reference
2869 (url (string-append "svn://www.tug.org/texlive/tags/"
2870 %texlive-tag "/Master/texmf-dist/"
2871 "/tex/latex/doi"))
2872 (revision %texlive-revision)))
2873 (file-name (string-append name "-" version "-checkout"))
2874 (sha256
2875 (base32
2876 "0378rdmrgr2lzbfi4qqy4dfpj5im20diyd8z8b9m4mlg05r7wgnb"))))
2877 (build-system trivial-build-system)
2878 (arguments
2879 `(#:modules ((guix build utils))
2880 #:builder
2881 (begin
2882 (use-modules (guix build utils))
2883 (let ((target (string-append (assoc-ref %outputs "out")
2884 "/share/texmf-dist/tex/latex/doi")))
2885 (mkdir-p target)
2886 (copy-recursively (assoc-ref %build-inputs "source") target)
2887 #t))))
2888 (home-page "https://www.ctan.org/pkg/doi")
2889 (synopsis "Create correct hyperlinks for DOI numbers")
2890 (description
2891 "You can hyperlink DOI numbers to doi.org. However, some publishers have
2892 elected to use nasty characters in their DOI numbering scheme (@code{<},
2893 @code{>}, @code{_} and @code{;} have all been spotted). This will either
2894 upset LaTeX, or your PDF reader. This package contains a single user-level
2895 command @code{\\doi{}}, which takes a DOI number, and creates a correct
2896 hyperlink to the target of the DOI.")
2897 ;; Any version of the LPPL.
2898 (license license:lppl1.3+)))
2899
2900 (define-public texlive-latex-etoolbox
2901 (package
2902 (name "texlive-latex-etoolbox")
2903 (version (number->string %texlive-revision))
2904 (source (origin
2905 (method svn-fetch)
2906 (uri (svn-reference
2907 (url (string-append "svn://www.tug.org/texlive/tags/"
2908 %texlive-tag "/Master/texmf-dist/"
2909 "/tex/latex/etoolbox"))
2910 (revision %texlive-revision)))
2911 (file-name (string-append name "-" version "-checkout"))
2912 (sha256
2913 (base32
2914 "1agmq6bf8wzcd77n20ng8bl4kh69cg5f6sjniii7bcw4llhd3nc8"))))
2915 (build-system trivial-build-system)
2916 (arguments
2917 `(#:modules ((guix build utils))
2918 #:builder
2919 (begin
2920 (use-modules (guix build utils))
2921 (let ((target (string-append (assoc-ref %outputs "out")
2922 "/share/texmf-dist/tex/latex/etoolbox")))
2923 (mkdir-p target)
2924 (copy-recursively (assoc-ref %build-inputs "source") target)
2925 #t))))
2926 (home-page "https://www.ctan.org/pkg/etoolbox")
2927 (synopsis "e-TeX tools for LaTeX")
2928 (description
2929 "This package is a toolbox of programming facilities geared primarily
2930 towards LaTeX class and package authors. It provides LaTeX frontends to some
2931 of the new primitives provided by e-TeX as well as some generic tools which
2932 are not strictly related to e-TeX but match the profile of this package. The
2933 package provides functions that seem to offer alternative ways of implementing
2934 some LaTeX kernel commands; nevertheless, the package will not modify any part
2935 of the LaTeX kernel.")
2936 (license license:lppl1.3+)))
2937
2938 (define-public texlive-latex-fncychap
2939 (package
2940 (name "texlive-latex-fncychap")
2941 (version (number->string %texlive-revision))
2942 (source (origin
2943 (method svn-fetch)
2944 (uri (svn-reference
2945 (url (string-append "svn://www.tug.org/texlive/tags/"
2946 %texlive-tag "/Master/texmf-dist/"
2947 "/tex/latex/fncychap"))
2948 (revision %texlive-revision)))
2949 (file-name (string-append name "-" version "-checkout"))
2950 (sha256
2951 (base32
2952 "0fdk84dbicfjfprkz6vk15x36mvlhaw9isjmgkc56jp2khwjswwq"))))
2953 (build-system trivial-build-system)
2954 (arguments
2955 `(#:modules ((guix build utils))
2956 #:builder
2957 (begin
2958 (use-modules (guix build utils))
2959 (let ((target (string-append (assoc-ref %outputs "out")
2960 "/share/texmf-dist/tex/latex/fncychap")))
2961 (mkdir-p target)
2962 (copy-recursively (assoc-ref %build-inputs "source") target)
2963 #t))))
2964 (home-page "https://www.ctan.org/pkg/fncychap")
2965 (synopsis "Seven predefined chapter heading styles")
2966 (description
2967 "This package provides seven predefined chapter heading styles. Each
2968 style can be modified using a set of simple commands. Optionally one can
2969 modify the formatting routines in order to create additional chapter
2970 headings.")
2971 (license license:lppl1.3+)))
2972
2973 (define-public texlive-latex-framed
2974 (package
2975 (name "texlive-latex-framed")
2976 (version (number->string %texlive-revision))
2977 (source (origin
2978 (method svn-fetch)
2979 (uri (svn-reference
2980 (url (string-append "svn://www.tug.org/texlive/tags/"
2981 %texlive-tag "/Master/texmf-dist/"
2982 "/tex/latex/framed"))
2983 (revision %texlive-revision)))
2984 (file-name (string-append name "-" version "-checkout"))
2985 (sha256
2986 (base32
2987 "14a4ydqsvp3vcfavl21jrv0ybiqypaaqzg2q2cs3rzkandg7w98x"))))
2988 (build-system trivial-build-system)
2989 (arguments
2990 `(#:modules ((guix build utils))
2991 #:builder
2992 (begin
2993 (use-modules (guix build utils))
2994 (let ((target (string-append (assoc-ref %outputs "out")
2995 "/share/texmf-dist/tex/latex/framed")))
2996 (mkdir-p target)
2997 (copy-recursively (assoc-ref %build-inputs "source") target)
2998 #t))))
2999 (home-page "https://www.ctan.org/pkg/framed")
3000 (synopsis "Framed or shaded regions that can break across pages")
3001 (description
3002 "The package creates three environments: @code{framed}, which puts an
3003 ordinary frame box around the region, @code{shaded}, which shades the region,
3004 and @code{leftbar}, which places a line at the left side. The environments
3005 allow a break at their start (the @code{\\FrameCommand} enables creation of a
3006 title that is “attached” to the environment); breaks are also allowed in the
3007 course of the framed/shaded matter. There is also a command
3008 @code{\\MakeFramed} to make your own framed-style environments.")
3009 ;; The header states: "These macros may be freely transmitted, reproduced,
3010 ;; or modified for any purpose provided that this notice is left intact."
3011 (license (license:fsf-free "file://framed.sty"))))
3012
3013 (define-public texlive-latex-g-brief
3014 (package
3015 (name "texlive-latex-g-brief")
3016 (version (number->string %texlive-revision))
3017 (source (origin
3018 (method svn-fetch)
3019 (uri (texlive-ref "latex" "g-brief"))
3020 (file-name (string-append name "-" version "-checkout"))
3021 (sha256
3022 (base32
3023 "0sikazkg0dpkcpzlbqw8qzxr81paf2f443vsrh14jnw7s4gswvc5"))))
3024 (build-system texlive-build-system)
3025 (arguments
3026 '(#:tex-directory "latex/g-brief"
3027 #:phases
3028 (modify-phases %standard-phases
3029 (add-after 'unpack 'remove-generated-file
3030 (lambda _
3031 (delete-file "g-brief.drv")
3032 #t)))))
3033 (home-page "https://www.ctan.org/pkg/g-brief")
3034 (synopsis "Letter document class")
3035 (description
3036 "This package is designed for formatting formless letters in German; it
3037 can also be used for English (by those who can read the documentation). There
3038 are LaTeX 2.09 @code{documentstyle} and LaTeX 2e class files for both an
3039 \"old\" and a \"new\" version of g-brief.")
3040 (license license:lppl)))
3041
3042 (define-public texlive-latex-galois
3043 (package
3044 (name "texlive-latex-galois")
3045 (version (number->string %texlive-revision))
3046 (source (origin
3047 (method svn-fetch)
3048 (uri (texlive-ref "latex" "galois"))
3049 (file-name (string-append name "-" version "-checkout"))
3050 (sha256
3051 (base32
3052 "0d4l0msk8j5pi95xnmm9wygv1vbpkwkv5amx9l0km86cs79jpp1h"))))
3053 (build-system texlive-build-system)
3054 (arguments '(#:tex-directory "latex/galois"))
3055 (home-page "https://www.ctan.org/pkg/galois")
3056 (synopsis "Typeset Galois connections")
3057 (description
3058 "The package deals with connections in two-dimensional style, optionally
3059 in colour.")
3060 (license license:lppl)))
3061
3062 (define-public texlive-latex-gcite
3063 (package
3064 (name "texlive-latex-gcite")
3065 (version (number->string %texlive-revision))
3066 (source (origin
3067 (method svn-fetch)
3068 (uri (texlive-ref "latex" "gcite"))
3069 (file-name (string-append name "-" version "-checkout"))
3070 (sha256
3071 (base32
3072 "03g9by54yrypn599y98r1xh7qw0bbbmpzq0bfwpj6j5q5rkl1mfa"))))
3073 (build-system texlive-build-system)
3074 (arguments '(#:tex-directory "latex/gcite"))
3075 (home-page "https://www.ctan.org/pkg/gcite")
3076 (synopsis "Citations in a reader-friendly style")
3077 (description
3078 "The package allows citations in the German style, which is considered by
3079 many to be particularly reader-friendly. The citation provides a small amount
3080 of bibliographic information in a footnote on the page where each citation is
3081 made. It combines a desire to eliminate unnecessary page-turning with the
3082 look-up efficiency afforded by numeric citations. The package makes use of
3083 BibLaTeX, and is considered experimental.")
3084 (license license:lppl1.3+)))
3085
3086 (define-public texlive-latex-geometry
3087 (package
3088 (name "texlive-latex-geometry")
3089 (version (number->string %texlive-revision))
3090 (source (origin
3091 (method svn-fetch)
3092 (uri (texlive-ref "latex" "geometry"))
3093 (file-name (string-append name "-" version "-checkout"))
3094 (sha256
3095 (base32
3096 "0yw6bjfgsli3s1dldsgb7mkr7lnk329cgdjbgs8z2xn59pmmdsn4"))))
3097 (build-system texlive-build-system)
3098 (arguments '(#:tex-directory "latex/geometry"))
3099 (home-page "https://www.ctan.org/pkg/geometry")
3100 (synopsis "Flexible and complete interface to document dimensions")
3101 (description
3102 "This package provides an easy and flexible user interface to customize
3103 page layout, implementing auto-centering and auto-balancing mechanisms so that
3104 the users have only to give the least description for the page layout. The
3105 package knows about all the standard paper sizes, so that the user need not
3106 know what the nominal \"real\" dimensions of the paper are, just its standard
3107 name (such as a4, letter, etc.). An important feature is the package's
3108 ability to communicate the paper size it's set up to the output.")
3109 (license license:lppl)))
3110
3111 (define-public texlive-latex-mdwtools
3112 (package
3113 (name "texlive-latex-mdwtools")
3114 (version (number->string %texlive-revision))
3115 (source (origin
3116 (method svn-fetch)
3117 (uri (texlive-ref "latex" "mdwtools"))
3118 (file-name (string-append name "-" version "-checkout"))
3119 (sha256
3120 (base32
3121 "0caxs74hla28hc67csf5i5ahadx97w8vxh3mdmsprxbpd1mr7ssg"))))
3122 (build-system texlive-build-system)
3123 (arguments '(#:tex-directory "latex/mdwtools"))
3124 (home-page "https://www.ctan.org/pkg/mdwtools")
3125 (synopsis "Miscellaneous tools by Mark Wooding")
3126 (description
3127 "This collection of tools includes: @code{atsupport} for short commands
3128 starting with @code{@@}, macros to sanitize the OT1 encoding of the
3129 @code{cmtt} fonts; a @code{doafter} command; improved @code{footnote} support;
3130 @code{mathenv} for various alignment in maths; list handling; @code{mdwmath}
3131 which adds some minor changes to LaTeX maths; a rewrite of LaTeX's tabular and
3132 array environments; verbatim handling; and syntax diagrams.")
3133 (license license:gpl3+)))
3134
3135 (define-public texlive-latex-polyglossia
3136 (package
3137 (name "texlive-latex-polyglossia")
3138 (version (number->string %texlive-revision))
3139 (source (origin
3140 (method svn-fetch)
3141 (uri (texlive-ref "latex" "polyglossia"))
3142 (file-name (string-append name "-" version "-checkout"))
3143 (sha256
3144 (base32
3145 "03ma58z3ypsbp7zgkzb1ylpn2ygr27cxzkf042ns0rif4g8s491f"))))
3146 (build-system texlive-build-system)
3147 (arguments '(#:tex-directory "latex/polyglossia"))
3148 (home-page "https://www.ctan.org/pkg/polyglossia")
3149 (synopsis "Alternative to babel for XeLaTeX and LuaLaTeX")
3150 (description
3151 "This package provides a complete Babel replacement for users of LuaLaTeX
3152 and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least.")
3153 (license license:lppl1.3+)))
3154
3155 (define-public texlive-latex-supertabular
3156 (package
3157 (name "texlive-latex-supertabular")
3158 (version (number->string %texlive-revision))
3159 (source (origin
3160 (method svn-fetch)
3161 (uri (texlive-ref "latex" "supertabular"))
3162 (file-name (string-append name "-" version "-checkout"))
3163 (sha256
3164 (base32
3165 "14b2bc7cqz4ckxxycim9sw6jkrr1pahivm1rdbpz5k6hl967w1s3"))))
3166 (build-system texlive-build-system)
3167 (arguments '(#:tex-directory "latex/supertabular"))
3168 (home-page "https://www.ctan.org/pkg/supertabular")
3169 (synopsis "Multi-page tables package")
3170 (description
3171 "This package was a predecessor of @code{longtable}; the newer
3172 package (designed on quite different principles) is easier to use and more
3173 flexible, in many cases, but supertabular retains its usefulness in a few
3174 situations where longtable has problems.")
3175 (license license:lppl1.3+)))
3176
3177 (define-public texlive-tex-texinfo
3178 (package
3179 (name "texlive-tex-texinfo")
3180 (version (number->string %texlive-revision))
3181 (source (origin
3182 (method svn-fetch)
3183 (uri (svn-reference
3184 (url (string-append "svn://www.tug.org/texlive/tags/"
3185 %texlive-tag "/Master/texmf-dist/"
3186 "/tex/texinfo"))
3187 (revision %texlive-revision)))
3188 (file-name (string-append name "-" version "-checkout"))
3189 (sha256
3190 (base32
3191 "06cf821y1j7jdg93pb41ayigrfwgn0y49d7w1025zlijjxi6bvjp"))))
3192 (build-system trivial-build-system)
3193 (arguments
3194 `(#:modules ((guix build utils))
3195 #:builder
3196 (begin
3197 (use-modules (guix build utils))
3198 (let ((target (string-append (assoc-ref %outputs "out")
3199 "/share/texmf-dist/tex/texinfo")))
3200 (mkdir-p target)
3201 (copy-recursively (assoc-ref %build-inputs "source") target)
3202 #t))))
3203 (home-page "https://www.ctan.org/pkg/texinfo")
3204 (synopsis "TeX macros to handle Texinfo files")
3205 (description
3206 "Texinfo is the preferred format for documentation in the GNU project;
3207 the format may be used to produce online or printed output from a single
3208 source. The Texinfo macros may be used to produce printable output using TeX;
3209 other programs in the distribution offer online interactive use (with
3210 hypertext linkages in some cases).")
3211 (license license:gpl3+)))
3212
3213 (define-public texlive-latex-upquote
3214 (package
3215 (name "texlive-latex-upquote")
3216 (version (number->string %texlive-revision))
3217 (source (origin
3218 (method svn-fetch)
3219 (uri (texlive-ref "latex" "upquote"))
3220 (file-name (string-append name "-" version "-checkout"))
3221 (sha256
3222 (base32
3223 "0d1050i973wnxigy0xpky5l7vn4ff7ldhkjpdqsw5s653gagwixp"))))
3224 (build-system texlive-build-system)
3225 (arguments '(#:tex-directory "latex/upquote"))
3226 (home-page "https://www.ctan.org/pkg/upquote")
3227 (synopsis "Show \"realistic\" quotes in verbatim")
3228 (description
3229 "Typewriter-style fonts are best for program listings, but Computer
3230 Modern Typewriter prints @code{`} and @code{'} as bent opening and closing
3231 single quotes. Other fonts, and most programming languages, print @code{`} as
3232 a grave accent and @code{'} upright; @code{'} is used both to open and to
3233 close quoted strings. The package switches the typewriter font to Computer
3234 Modern Typewriter in OT1 encoding, and modifies the behaviour of
3235 @code{verbatim}, @code{verbatim*}, @code{\\verb}, and @code{\\verb*} to print
3236 in the expected way. It does this regardless of other fonts or encodings in
3237 use, so long as the package is loaded after the other fonts were. The package
3238 does not affect @code{\\tt}, @code{\\texttt}, etc.")
3239 (license license:lppl1.2+)))
3240
3241 (define-public texlive-latex-anysize
3242 (package
3243 (name "texlive-latex-anysize")
3244 (version (number->string %texlive-revision))
3245 (source (origin
3246 (method svn-fetch)
3247 (uri (svn-reference
3248 (url (string-append "svn://www.tug.org/texlive/tags/"
3249 %texlive-tag "/Master/texmf-dist/"
3250 "/tex/latex/anysize"))
3251 (revision %texlive-revision)))
3252 (file-name (string-append name "-" version "-checkout"))
3253 (sha256
3254 (base32
3255 "19khwqjlvznc955sijhww3c4zbb0053rvzwv9nz738qknq7y18vb"))))
3256 (build-system trivial-build-system)
3257 (arguments
3258 `(#:modules ((guix build utils))
3259 #:builder
3260 (begin
3261 (use-modules (guix build utils))
3262 (let ((target (string-append (assoc-ref %outputs "out")
3263 "/share/texmf-dist/tex/latex/anysize")))
3264 (mkdir-p target)
3265 (copy-recursively (assoc-ref %build-inputs "source") target)
3266 #t))))
3267 (home-page "https://www.ctan.org/pkg/anysize")
3268 (synopsis "Simple package to set up document margins")
3269 (description
3270 "This is a simple package to set up document margins. This package is
3271 considered obsolete; alternatives are the @code{typearea} package from the
3272 @code{koma-script} bundle, or the @code{geometry} package.")
3273 (license license:public-domain)))
3274
3275 (define-public texlive-latex-appendix
3276 (package
3277 (name "texlive-latex-appendix")
3278 (version (number->string %texlive-revision))
3279 (source (origin
3280 (method svn-fetch)
3281 (uri (texlive-ref "latex" "appendix"))
3282 (file-name (string-append name "-" version "-checkout"))
3283 (sha256
3284 (base32
3285 "0rxfpr8vq3brwx5rc7qn91ixlp9zva4zrms8a579fqa1g5yva7vg"))))
3286 (build-system texlive-build-system)
3287 (arguments '(#:tex-directory "latex/appendix"))
3288 (home-page "https://www.ctan.org/pkg/appendix")
3289 (synopsis "Extra control of appendices")
3290 (description
3291 "The appendix package provides various ways of formatting the titles of
3292 appendices. Also (sub)appendices environments are provided that can be used,
3293 for example, for per chapter/section appendices. An @code{appendices}
3294 environment is provided which can be used instead of the @code{\\appendix}
3295 command.")
3296 (license license:lppl)))
3297
3298 (define-public texlive-latex-changebar
3299 (package
3300 (name "texlive-latex-changebar")
3301 (version (number->string %texlive-revision))
3302 (source (origin
3303 (method svn-fetch)
3304 (uri (texlive-ref "latex" "changebar"))
3305 (file-name (string-append name "-" version "-checkout"))
3306 (sha256
3307 (base32
3308 "05x15ilynqrl448h8l6qiraygamdldlngz89a2bw7kg74fym14ch"))))
3309 (build-system texlive-build-system)
3310 (arguments '(#:tex-directory "latex/changebar"))
3311 (home-page "https://www.ctan.org/pkg/changebar")
3312 (synopsis "Generate changebars in LaTeX documents")
3313 (description
3314 "Identify areas of text to be marked with changebars with the
3315 @code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured. The
3316 package uses 'drivers' to place the bars; the available drivers can work with
3317 @code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI
3318 drivers, and VTeX and pdfTeX.")
3319 (license license:lppl)))
3320
3321 (define-public texlive-latex-cmap
3322 (package
3323 (name "texlive-latex-cmap")
3324 (version (number->string %texlive-revision))
3325 (source (origin
3326 (method svn-fetch)
3327 (uri (svn-reference
3328 (url (string-append "svn://www.tug.org/texlive/tags/"
3329 %texlive-tag "/Master/texmf-dist/"
3330 "/tex/latex/cmap"))
3331 (revision %texlive-revision)))
3332 (file-name (string-append name "-" version "-checkout"))
3333 (sha256
3334 (base32
3335 "1s1rv6zgw105w2j6ffhnk914qrix87y1ndzri1q72g2kbr91zlbg"))))
3336 (build-system trivial-build-system)
3337 (arguments
3338 `(#:modules ((guix build utils))
3339 #:builder
3340 (begin
3341 (use-modules (guix build utils))
3342 (let ((target (string-append (assoc-ref %outputs "out")
3343 "/share/texmf-dist/tex/latex/cmap")))
3344 (mkdir-p target)
3345 (copy-recursively (assoc-ref %build-inputs "source") target)
3346 #t))))
3347 (home-page "https://www.tug.org/svn/texlive/tags/texlive-2017.1/\
3348 Master/texmf-dist/tex/latex/cmap/")
3349 (synopsis "CMap support for PDF files")
3350 (description
3351 "This package embeds CMap tables into PDF files to make search and
3352 copy-and-paste functions work properly.")
3353 (license license:lppl)))
3354
3355 (define-public texlive-latex-colortbl
3356 (package
3357 (name "texlive-latex-colortbl")
3358 (version (number->string %texlive-revision))
3359 (source (origin
3360 (method svn-fetch)
3361 (uri (texlive-ref "latex" "colortbl"))
3362 (file-name (string-append name "-" version "-checkout"))
3363 (sha256
3364 (base32
3365 "190pmq8la2rq07xry8bn8z8yywzxv6fqyqaj7yjfj5rgw6x0mas8"))))
3366 (build-system texlive-build-system)
3367 (arguments '(#:tex-directory "latex/colortbl"))
3368 (home-page "https://www.ctan.org/pkg/colortbl")
3369 (synopsis "Add colour to LaTeX tables")
3370 (description
3371 "This package allows rows, columns, and even individual cells in LaTeX
3372 tables to be coloured.")
3373 (license license:lppl)))
3374
3375 (define-public texlive-latex-fancybox
3376 (package
3377 (name "texlive-latex-fancybox")
3378 (version (number->string %texlive-revision))
3379 (source (origin
3380 (method svn-fetch)
3381 (uri (svn-reference
3382 (url (string-append "svn://www.tug.org/texlive/tags/"
3383 %texlive-tag "/Master/texmf-dist/"
3384 "/tex/latex/fancybox"))
3385 (revision %texlive-revision)))
3386 (file-name (string-append name "-" version "-checkout"))
3387 (sha256
3388 (base32
3389 "0smmnaad2q8qwicay1frri990lv65l0k8cwzsvdsyp3jk8kp042w"))))
3390 (build-system trivial-build-system)
3391 (arguments
3392 `(#:modules ((guix build utils))
3393 #:builder
3394 (begin
3395 (use-modules (guix build utils))
3396 (let ((target (string-append (assoc-ref %outputs "out")
3397 "/share/texmf-dist/tex/latex/fancybox")))
3398 (mkdir-p target)
3399 (copy-recursively (assoc-ref %build-inputs "source") target)
3400 #t))))
3401 (home-page "https://www.ctan.org/pkg/fancybox")
3402 (synopsis "Variants of \\fbox and other games with boxes")
3403 (description
3404 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},
3405 @code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for
3406 using box macros and flexible verbatim macros. You can box mathematics,
3407 floats, center, flushleft, and flushright, lists, and pages.")
3408 (license license:lppl1.2+)))
3409
3410 (define-public texlive-latex-fancyhdr
3411 (package
3412 (name "texlive-latex-fancyhdr")
3413 (version (number->string %texlive-revision))
3414 (source (origin
3415 (method svn-fetch)
3416 (uri (svn-reference
3417 (url (string-append "svn://www.tug.org/texlive/tags/"
3418 %texlive-tag "/Master/texmf-dist/"
3419 "/tex/latex/fancyhdr"))
3420 (revision %texlive-revision)))
3421 (file-name (string-append name "-" version "-checkout"))
3422 (sha256
3423 (base32
3424 "1xsnzx7vgdfh9zh2m7bjz6bgdpxsgb1kyc19p50vhs34x5nbgsnr"))))
3425 (build-system trivial-build-system)
3426 (arguments
3427 `(#:modules ((guix build utils))
3428 #:builder
3429 (begin
3430 (use-modules (guix build utils))
3431 (let ((target (string-append (assoc-ref %outputs "out")
3432 "/share/texmf-dist/tex/latex/fancyhdr")))
3433 (mkdir-p target)
3434 (copy-recursively (assoc-ref %build-inputs "source") target)
3435 #t))))
3436 (home-page "https://www.ctan.org/pkg/fancyhdr")
3437 (synopsis "Extensive control of page headers and footers in LaTeX2e")
3438 (description
3439 "The package provides extensive facilities, both for constructing headers
3440 and footers, and for controlling their use (for example, at times when LaTeX
3441 would automatically change the heading style in use).")
3442 (license license:lppl)))
3443
3444 (define-public texlive-latex-float
3445 (package
3446 (name "texlive-latex-float")
3447 (version (number->string %texlive-revision))
3448 (source (origin
3449 (method svn-fetch)
3450 (uri (texlive-ref "latex" "float"))
3451 (file-name (string-append name "-" version "-checkout"))
3452 (sha256
3453 (base32
3454 "0nbl7wylkv22fcdv4p8byhhj575fli6jnqjpkhrkbv8dzwah84nq"))))
3455 (build-system texlive-build-system)
3456 (arguments '(#:tex-directory "latex/float"))
3457 (home-page "https://www.ctan.org/pkg/float")
3458 (synopsis "Improved interface for floating objects")
3459 (description
3460 "This package improves the interface for defining floating objects such
3461 as figures and tables. It introduces the boxed float, the ruled float and the
3462 plaintop float. You can define your own floats and improve the behaviour of
3463 the old ones. The package also provides the @code{H} float modifier option of
3464 the obsolete @code{here} package. You can select this as automatic default
3465 with @code{\\floatplacement{figure}{H}}.")
3466 (license license:lppl)))
3467
3468 (define-public texlive-latex-footmisc
3469 (package
3470 (name "texlive-latex-footmisc")
3471 (version (number->string %texlive-revision))
3472 (source (origin
3473 (method svn-fetch)
3474 (uri (texlive-ref "latex" "footmisc"))
3475 (file-name (string-append name "-" version "-checkout"))
3476 (sha256
3477 (base32
3478 "03x61wwql8nh6zrqiiiq3rb0x7m3pn48c606zapy19y21fybwdxs"))))
3479 (build-system texlive-build-system)
3480 (arguments '(#:tex-directory "latex/footmisc"))
3481 (home-page "https://www.ctan.org/pkg/footmisc")
3482 (synopsis "Range of footnote options")
3483 (description
3484 "This is a collection of ways to change the typesetting of footnotes.
3485 The package provides means of changing the layout of the footnotes themselves,
3486 a way to number footnotes per page, to make footnotes disappear in a
3487 \"moving\" argument, and to deal with multiple references to footnotes from
3488 the same place. The package also has a range of techniques for labelling
3489 footnotes with symbols rather than numbers.")
3490 (license license:lppl1.3+)))
3491
3492 (define-public texlive-latex-listings
3493 (package
3494 (name "texlive-latex-listings")
3495 (version (number->string %texlive-revision))
3496 (source (origin
3497 (method svn-fetch)
3498 (uri (texlive-ref "latex" "listings"))
3499 (file-name (string-append name "-" version "-checkout"))
3500 (sha256
3501 (base32
3502 "1nsn9wp3wl12b36c0sqrim33lf33cr5wky0h4ncnw8lvqgm7h8wf"))))
3503 (build-system texlive-build-system)
3504 (arguments
3505 '(#:tex-directory "latex/listings"
3506 #:build-targets '("listings.ins")))
3507 (home-page "https://www.ctan.org/pkg/listings")
3508 (synopsis "Typeset source code listings using LaTeX")
3509 (description
3510 "The package enables the user to typeset programs (programming code)
3511 within LaTeX; the source code is read directly by TeX---no front-end processor
3512 is needed. Keywords, comments and strings can be typeset using different
3513 styles. Support for @code{hyperref} is provided.")
3514 (license license:lppl1.3+)))
3515
3516 (define-public texlive-latex-jknapltx
3517 (package
3518 (name "texlive-latex-jknapltx")
3519 (version (number->string %texlive-revision))
3520 (source (origin
3521 (method svn-fetch)
3522 (uri (svn-reference
3523 (url (string-append "svn://www.tug.org/texlive/tags/"
3524 %texlive-tag "/Master/texmf-dist/"
3525 "/tex/latex/jknapltx"))
3526 (revision %texlive-revision)))
3527 (file-name (string-append name "-" version "-checkout"))
3528 (sha256
3529 (base32
3530 "0m034x72f2g07icr50gacyxfb9g1lz2rmqh4kqr1qjb421x2kds9"))))
3531 (build-system trivial-build-system)
3532 (arguments
3533 `(#:modules ((guix build utils))
3534 #:builder
3535 (begin
3536 (use-modules (guix build utils))
3537 (let ((target (string-append (assoc-ref %outputs "out")
3538 "/share/texmf-dist/tex/latex/jknapltx")))
3539 (mkdir-p target)
3540 (copy-recursively (assoc-ref %build-inputs "source") target)
3541 #t))))
3542 (home-page "https://www.ctan.org/pkg/jknappen")
3543 (synopsis "Miscellaneous packages by Joerg Knappen")
3544 (description
3545 "This package provides miscellaneous macros by Joerg Knappen, including:
3546 represent counters in greek; Maxwell's non-commutative division;
3547 @code{latin1jk}, @code{latin2jk} and @code{latin3jk}, which are
3548 @code{inputenc} definition files that allow verbatim input in the respective
3549 ISO Latin codes; blackboard bold fonts in maths; use of RSFS fonts in maths;
3550 extra alignments for @code{\\parboxes}; swap Roman and Sans fonts;
3551 transliterate semitic languages; patches to make (La)TeX formulae embeddable
3552 in SGML; use maths minus in text as appropriate; simple Young tableaux.")
3553 (license license:gpl2)))
3554
3555 (define-public texlive-fonts-ec
3556 (package
3557 (name "texlive-fonts-ec")
3558 (version (number->string %texlive-revision))
3559 (source (origin
3560 (method svn-fetch)
3561 (uri (svn-reference
3562 (url (string-append "svn://www.tug.org/texlive/tags/"
3563 %texlive-tag "/Master/texmf-dist/"
3564 "/fonts/source/jknappen/ec/"))
3565 (revision %texlive-revision)))
3566 (file-name (string-append name "-" version "-checkout"))
3567 (sha256
3568 (base32
3569 "12av65fbz9xiashm09c9m1fj1mijxls5xspd7652ry1n5s0nixy4"))))
3570 (build-system gnu-build-system)
3571 (arguments
3572 `(#:modules ((guix build gnu-build-system)
3573 (guix build utils)
3574 (srfi srfi-1)
3575 (srfi srfi-26))
3576 #:tests? #f ; no tests
3577 #:phases
3578 (modify-phases %standard-phases
3579 (delete 'configure)
3580 (replace 'build
3581 (lambda* (#:key inputs #:allow-other-keys)
3582 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
3583 ;; Tell mf where to find mf.base
3584 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
3585 ;; Tell mf where to look for source files
3586 (setenv "MFINPUTS"
3587 (string-append (getcwd) ":"
3588 mf "/share/texmf-dist/metafont/base:"
3589 (assoc-ref inputs "texlive-fonts-cm")
3590 "/share/texmf-dist/fonts/source/public/cm")))
3591 (mkdir "build")
3592 (for-each (lambda (font)
3593 (format #t "building font ~a\n" font)
3594 (invoke "mf" "-progname=mf"
3595 "-output-directory=build"
3596 (string-append "\\"
3597 "mode:=ljfour; "
3598 "mag:=1; "
3599 "batchmode; "
3600 "input " (basename font ".mf"))))
3601 (find-files "." "[0-9]+\\.mf$"))
3602 #t))
3603 (replace 'install
3604 (lambda* (#:key outputs #:allow-other-keys)
3605 (let* ((out (assoc-ref outputs "out"))
3606 (tfm (string-append
3607 out "/share/texmf-dist/fonts/tfm/jknappen/ec"))
3608 (mf (string-append
3609 out "/share/texmf-dist/fonts/source/jknappen/ec")))
3610 (for-each (cut install-file <> tfm)
3611 (find-files "build" "\\.*"))
3612 (for-each (cut install-file <> mf)
3613 (find-files "." "\\.mf"))
3614 #t))))))
3615 (native-inputs
3616 `(("texlive-bin" ,texlive-bin)
3617 ("texlive-metafont-base" ,texlive-metafont-base)
3618 ("texlive-fonts-cm" ,texlive-fonts-cm)))
3619 (home-page "https://www.ctan.org/pkg/ec")
3620 (synopsis "Computer modern fonts in T1 and TS1 encodings")
3621 (description
3622 "The EC fonts are European Computer Modern Fonts, supporting the complete
3623 LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.
3624 These fonts are intended to be stable with no changes being made to the tfm
3625 files. The set also contains a Text Companion Symbol font, called @code{tc},
3626 featuring many useful characters needed in text typesetting, for example
3627 oldstyle digits, currency symbols (including the newly created Euro symbol),
3628 the permille sign, copyright, trade mark and servicemark as well as a copyleft
3629 sign, and many others. Recent releases of LaTeX2e support the EC fonts. The
3630 EC fonts supersede the preliminary version released as the DC fonts. The
3631 fonts are available in (traced) Adobe Type 1 format, as part of the
3632 @code{cm-super} bundle. The other Computer Modern-style T1-encoded Type 1
3633 set, Latin Modern, is not actually a direct development of the EC set, and
3634 differs from the EC in a number of particulars.")
3635 (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\
3636 texlive-2017.1/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
3637
3638 (define-public texlive-fonts-rsfs
3639 (package
3640 (name "texlive-fonts-rsfs")
3641 (version (number->string %texlive-revision))
3642 (source (origin
3643 (method svn-fetch)
3644 (uri (svn-reference
3645 (url (string-append "svn://www.tug.org/texlive/tags/"
3646 %texlive-tag "/Master/texmf-dist/"
3647 "/fonts/source/public/rsfs/"))
3648 (revision %texlive-revision)))
3649 (file-name (string-append name "-" version "-checkout"))
3650 (sha256
3651 (base32
3652 "0r12pn02r4a955prcvq0048nifh86ihlcgvw3pppqqvfngv34l5h"))))
3653 (build-system gnu-build-system)
3654 (arguments
3655 `(#:modules ((guix build gnu-build-system)
3656 (guix build utils)
3657 (srfi srfi-1)
3658 (srfi srfi-26))
3659 #:tests? #f ; no tests
3660 #:phases
3661 (modify-phases %standard-phases
3662 (delete 'configure)
3663 (replace 'build
3664 (lambda* (#:key inputs #:allow-other-keys)
3665 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
3666 ;; Tell mf where to find mf.base
3667 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
3668 ;; Tell mf where to look for source files
3669 (setenv "MFINPUTS"
3670 (string-append (getcwd) ":"
3671 mf "/share/texmf-dist/metafont/base:"
3672 (assoc-ref inputs "texlive-fonts-cm")
3673 "/share/texmf-dist/fonts/source/public/cm")))
3674 (mkdir "build")
3675 (for-each (lambda (font)
3676 (format #t "building font ~a\n" font)
3677 (invoke "mf" "-progname=mf"
3678 "-output-directory=build"
3679 (string-append "\\"
3680 "mode:=ljfour; "
3681 "mag:=1; "
3682 "batchmode; "
3683 "input " (basename font ".mf"))))
3684 (find-files "." "[0-9]+\\.mf$"))
3685 #t))
3686 (replace 'install
3687 (lambda* (#:key outputs #:allow-other-keys)
3688 (let* ((out (assoc-ref outputs "out"))
3689 (tfm (string-append
3690 out "/share/texmf-dist/fonts/tfm/public/rsfs"))
3691 (mf (string-append
3692 out "/share/texmf-dist/fonts/source/public/rsfs")))
3693 (for-each (cut install-file <> tfm)
3694 (find-files "build" "\\.*"))
3695 (for-each (cut install-file <> mf)
3696 (find-files "." "\\.mf"))
3697 #t))))))
3698 (native-inputs
3699 `(("texlive-bin" ,texlive-bin)
3700 ("texlive-metafont-base" ,texlive-metafont-base)
3701 ("texlive-fonts-cm" ,texlive-fonts-cm)))
3702 (home-page "https://www.ctan.org/pkg/rsfs")
3703 (synopsis "Ralph Smith's Formal Script font")
3704 (description
3705 "The fonts provide uppercase formal script letters for use as symbols in
3706 scientific and mathematical typesetting (in contrast to the informal script
3707 fonts such as that used for the calligraphic symbols in the TeX maths symbol
3708 font). The fonts are provided as Metafont source, and as derived Adobe Type 1
3709 format. LaTeX support, for using these fonts in mathematics, is available via
3710 one of the packages @code{calrsfs} and @code{mathrsfs}.")
3711 (license (license:fsf-free "http://mirrors.ctan.org/fonts/rsfs/README"))))
3712
3713 (define-public texlive-latex-eso-pic
3714 (package
3715 (name "texlive-latex-eso-pic")
3716 (version (number->string %texlive-revision))
3717 (source (origin
3718 (method svn-fetch)
3719 (uri (texlive-ref "latex" "eso-pic"))
3720 (file-name (string-append name "-" version "-checkout"))
3721 (sha256
3722 (base32
3723 "1xvmms28mvvfpks9x7lfya2xhh5k8jy3qnlih1mzcnf156xnb89z"))))
3724 (build-system texlive-build-system)
3725 (arguments '(#:tex-directory "latex/eso-pic"))
3726 (home-page "https://www.ctan.org/pkg/eso-pic")
3727 (synopsis "Add picture commands (or backgrounds) to every page")
3728 (description
3729 "The package adds one or more user commands to LaTeX's @code{shipout}
3730 routine, which may be used to place the output at fixed positions. The
3731 @code{grid} option may be used to find the correct places.")
3732 (license license:lppl1.3+)))
3733
3734 (define-public texlive-latex-eepic
3735 (package
3736 (name "texlive-latex-eepic")
3737 (version (number->string %texlive-revision))
3738 (source (origin
3739 (method svn-fetch)
3740 (uri (svn-reference
3741 (url (string-append "svn://www.tug.org/texlive/tags/"
3742 %texlive-tag "/Master/texmf-dist/"
3743 "/tex/latex/eepic"))
3744 (revision %texlive-revision)))
3745 (file-name (string-append name "-" version "-checkout"))
3746 (sha256
3747 (base32
3748 "1c68gvh021pvybg07apsd2xhq2ljbg80kq94wh71drdga3c2zqjw"))))
3749 (build-system trivial-build-system)
3750 (arguments
3751 `(#:modules ((guix build utils))
3752 #:builder
3753 (begin
3754 (use-modules (guix build utils))
3755 (let ((target (string-append (assoc-ref %outputs "out")
3756 "/share/texmf-dist/tex/latex/eepic")))
3757 (mkdir-p target)
3758 (copy-recursively (assoc-ref %build-inputs "source") target)
3759 #t))))
3760 (home-page "https://www.ctan.org/pkg/eepic")
3761 (synopsis "Extensions to epic and the LaTeX drawing tools")
3762 (description
3763 "Extensions to @code{epic} and the LaTeX picture drawing environment,
3764 include the drawing of lines at any slope, the drawing of circles in any
3765 radii, and the drawing of dotted and dashed lines much faster with much less
3766 TeX memory, and providing several new commands for drawing ellipses, arcs,
3767 splines, and filled circles and ellipses. The package uses @code{tpic}
3768 @code{\\special} commands.")
3769 (license license:public-domain)))
3770
3771 (define-public texlive-latex-enumitem
3772 (package
3773 (name "texlive-latex-enumitem")
3774 (version (number->string %texlive-revision))
3775 (source (origin
3776 (method svn-fetch)
3777 (uri (svn-reference
3778 (url (string-append "svn://www.tug.org/texlive/tags/"
3779 %texlive-tag "/Master/texmf-dist/"
3780 "/tex/latex/enumitem"))
3781 (revision %texlive-revision)))
3782 (file-name (string-append name "-" version "-checkout"))
3783 (sha256
3784 (base32
3785 "0q24b1bkdi9l6bw787bpggww83jh2vj8955aw2m5yccqbx4vgr5r"))))
3786 (build-system trivial-build-system)
3787 (arguments
3788 `(#:modules ((guix build utils))
3789 #:builder
3790 (begin
3791 (use-modules (guix build utils))
3792 (let ((target (string-append (assoc-ref %outputs "out")
3793 "/share/texmf-dist/tex/latex/enumitem")))
3794 (mkdir-p target)
3795 (copy-recursively (assoc-ref %build-inputs "source") target)
3796 #t))))
3797 (home-page "https://www.ctan.org/pkg/enumitem")
3798 (synopsis "Customize basic list environments")
3799 (description
3800 "This package is intended to ease customizing the three basic list
3801 environments: @code{enumerate}, @code{itemize} and @code{description}. It
3802 extends their syntax to allow an optional argument where a set of parameters
3803 in the form @code{key=value} are available, for example:
3804 @code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}.")
3805 (license license:lppl1.3+)))
3806
3807 (define-public texlive-latex-multirow
3808 (package
3809 (name "texlive-latex-multirow")
3810 (version (number->string %texlive-revision))
3811 (source (origin
3812 (method svn-fetch)
3813 (uri (texlive-ref "latex" "multirow"))
3814 (file-name (string-append name "-" version "-checkout"))
3815 (sha256
3816 (base32
3817 "0qlxy47f1f8plgch3jqfsnrdgpyz20sz46yp33i2jwvf9hvfczf0"))))
3818 (build-system texlive-build-system)
3819 (arguments '(#:tex-directory "latex/multirow"))
3820 (home-page "https://www.ctan.org/pkg/multirow")
3821 (synopsis "Create tabular cells spanning multiple rows")
3822 (description
3823 "The package provides tools for creating tabular cells spanning multiple
3824 rows. It has a lot of flexibility, including an option for specifying an
3825 entry at the \"natural\" width of its text.")
3826 (license license:lppl1.3+)))
3827
3828 (define-public texlive-latex-overpic
3829 (package
3830 (name "texlive-latex-overpic")
3831 (version (number->string %texlive-revision))
3832 (source (origin
3833 (method svn-fetch)
3834 (uri (svn-reference
3835 (url (string-append "svn://www.tug.org/texlive/tags/"
3836 %texlive-tag "/Master/texmf-dist/"
3837 "/tex/latex/overpic"))
3838 (revision %texlive-revision)))
3839 (file-name (string-append name "-" version "-checkout"))
3840 (sha256
3841 (base32
3842 "1rpx4ibjncj5416rg19v0xjbj3z9avhfdfn2gzp8r8sz9vz25c6g"))))
3843 (build-system trivial-build-system)
3844 (arguments
3845 `(#:modules ((guix build utils))
3846 #:builder
3847 (begin
3848 (use-modules (guix build utils))
3849 (let ((target (string-append (assoc-ref %outputs "out")
3850 "/share/texmf-dist/tex/latex/overpic")))
3851 (mkdir-p target)
3852 (copy-recursively (assoc-ref %build-inputs "source") target)
3853 #t))))
3854 (home-page "https://www.ctan.org/pkg/overpic")
3855 (synopsis "Combine LaTeX commands over included graphics")
3856 (description
3857 "The @code{overpic} environment is a cross between the LaTeX
3858 @code{picture} environment and the @code{\\includegraphics} command of
3859 @code{graphicx}. The resulting picture environment has the same dimensions as
3860 the included graphic. LaTeX commands can be placed on the graphic at defined
3861 positions; a grid for orientation is available.")
3862 (license license:lppl1.0+)))
3863
3864 (define-public texlive-latex-parskip
3865 (package
3866 (name "texlive-latex-parskip")
3867 (version (number->string %texlive-revision))
3868 (source (origin
3869 (method svn-fetch)
3870 (uri (svn-reference
3871 (url (string-append "svn://www.tug.org/texlive/tags/"
3872 %texlive-tag "/Master/texmf-dist/"
3873 "/tex/latex/parskip"))
3874 (revision %texlive-revision)))
3875 (file-name (string-append name "-" version "-checkout"))
3876 (sha256
3877 (base32
3878 "14r6h9hqb0qgccxj5l1208694fx8sb8avmgzps36lsbbpszl7i7m"))))
3879 (build-system trivial-build-system)
3880 (arguments
3881 `(#:modules ((guix build utils))
3882 #:builder
3883 (begin
3884 (use-modules (guix build utils))
3885 (let ((target (string-append (assoc-ref %outputs "out")
3886 "/share/texmf-dist/tex/latex/parskip")))
3887 (mkdir-p target)
3888 (copy-recursively (assoc-ref %build-inputs "source") target)
3889 #t))))
3890 (home-page "https://www.ctan.org/pkg/parskip")
3891 (synopsis "Layout with zero \\parindent, non-zero \\parskip")
3892 (description
3893 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout
3894 that is untidy; this package (though it is no substitute for a properly
3895 designed class) helps alleviate this untidiness.")
3896 (license license:lppl)))
3897
3898 (define-public texlive-latex-pdfpages
3899 (package
3900 (name "texlive-latex-pdfpages")
3901 (version (number->string %texlive-revision))
3902 (source (origin
3903 (method svn-fetch)
3904 (uri (texlive-ref "latex" "pdfpages"))
3905 (file-name (string-append name "-" version "-checkout"))
3906 (sha256
3907 (base32
3908 "0s4izcah7im67889qz4d26pcfpasmm35sj1rw4ragkkdk3rlbbbd"))))
3909 (build-system texlive-build-system)
3910 (arguments '(#:tex-directory "latex/pdfpages"))
3911 (home-page "https://www.ctan.org/pkg/pdfpages")
3912 (synopsis "Include PDF documents in LaTeX")
3913 (description
3914 "This package simplifies the inclusion of external multi-page PDF
3915 documents in LaTeX documents. Pages may be freely selected and it is possible
3916 to put several logical pages onto each sheet of paper. Furthermore a lot of
3917 hypertext features like hyperlinks and article threads are provided. The
3918 package supports pdfTeX (pdfLaTeX) and VTeX. With VTeX it is even possible to
3919 use this package to insert PostScript files, in addition to PDF files.")
3920 (license license:lppl1.3+)))
3921
3922 (define-public texlive-fonts-stmaryrd
3923 (package
3924 (name "texlive-fonts-stmaryrd")
3925 (version (number->string %texlive-revision))
3926 (source (origin
3927 (method svn-fetch)
3928 (uri (texlive-ref "fonts" "stmaryrd"))
3929 (file-name (string-append name "-" version "-checkout"))
3930 (sha256
3931 (base32
3932 "08pn4ca3vl6qm9l3wm5h5iyjsrg411kkm1yana329xwg2j14s9n6"))))
3933 (build-system texlive-build-system)
3934 (arguments
3935 '(#:tex-directory "latex/stmaryrd"
3936 #:phases
3937 (modify-phases %standard-phases
3938 (add-after 'configure 'patch-ins
3939 (lambda _
3940 (substitute* "stmaryrd.ins"
3941 (("^%% LaTeX2e.*") "\\input docstrip\n")
3942 (("fontdef\\}\\}" line)
3943 (string-append line "\n\\endbatchfile")))
3944 #t)))))
3945 (home-page "https://www.ctan.org/pkg/stmaryrd")
3946 (synopsis "St Mary Road symbols for theoretical computer science")
3947 (description
3948 "The fonts were originally distributed as Metafont sources only, but
3949 Adobe Type 1 versions are also now available. Macro support is provided for
3950 use under LaTeX; the package supports the @code{only} option (provided by the
3951 @code{somedefs} package) to restrict what is loaded, for those who don't need
3952 the whole font.")
3953 (license license:lppl)))
3954
3955 (define-public texlive-latex-subfigure
3956 (package
3957 (name "texlive-latex-subfigure")
3958 (version (number->string %texlive-revision))
3959 (source (origin
3960 (method svn-fetch)
3961 (uri (texlive-ref "latex" "subfigure"))
3962 (file-name (string-append name "-" version "-checkout"))
3963 (sha256
3964 (base32
3965 "15spcl5wb7w269qd6y596vp4yi8sa5ppcx8w4z2i9kyp02r3a0yb"))))
3966 (build-system texlive-build-system)
3967 (arguments '(#:tex-directory "latex/subfigure"))
3968 (home-page "https://www.ctan.org/pkg/subfigure")
3969 (synopsis "Figures divided into subfigures")
3970 (description
3971 "This (deprecated) package provides support for the manipulation and
3972 reference of small or \"sub\" figures and tables within a single figure or
3973 table environment. It is convenient to use this package when your subfigures
3974 are to be separately captioned, referenced, or are to be included in the
3975 List-of-Figures. A new @code{\\subfigure} command is introduced which can be
3976 used inside a figure environment for each subfigure. An optional first
3977 argument is used as the caption for that subfigure. The package is now
3978 considered obsolete: it was superseded by @code{subfig}, but users may find
3979 the more recent @code{subcaption} package more satisfactory.")
3980 (license license:lppl)))
3981
3982 (define-public texlive-latex-tabulary
3983 (package
3984 (name "texlive-latex-tabulary")
3985 (version (number->string %texlive-revision))
3986 (source (origin
3987 (method svn-fetch)
3988 (uri (texlive-ref "latex" "tabulary"))
3989 (file-name (string-append name "-" version "-checkout"))
3990 (sha256
3991 (base32
3992 "1adkdx2zkk42g82nqf57lv1nc1z7kwl13jmy8vpcsizsa0xdnx9n"))))
3993 (build-system texlive-build-system)
3994 (arguments '(#:tex-directory "latex/tabulary"))
3995 (home-page "https://www.ctan.org/pkg/tabulary")
3996 (synopsis "Tabular with variable width columns balanced")
3997 (description
3998 "The package defines a @code{tabular*}-like environment, @code{tabulary},
3999 taking a \"total width\" argument as well as the column specifications. The
4000 environment uses column types @code{L}, @code{C}, @code{R} and @code{J} for
4001 variable width columns (@code{\\raggedright}, @code{\\centering},
4002 @code{\\raggedleft}, and normally justified). In contrast to
4003 @code{tabularx}'s @code{X} columns, the width of each column is weighted
4004 according to the natural width of the widest cell in the column.")
4005 (license license:lppl)))
4006
4007 (define-public texlive-latex-threeparttable
4008 (package
4009 (name "texlive-latex-threeparttable")
4010 (version (number->string %texlive-revision))
4011 (source (origin
4012 (method svn-fetch)
4013 (uri (svn-reference
4014 (url (string-append "svn://www.tug.org/texlive/tags/"
4015 %texlive-tag "/Master/texmf-dist/"
4016 "/tex/latex/threeparttable"))
4017 (revision %texlive-revision)))
4018 (file-name (string-append name "-" version "-checkout"))
4019 (sha256
4020 (base32
4021 "10vy9k150w2lviw8h22s2mcykff38xci653m5823s2vv44pwbmzq"))))
4022 (build-system trivial-build-system)
4023 (arguments
4024 `(#:modules ((guix build utils))
4025 #:builder
4026 (begin
4027 (use-modules (guix build utils))
4028 (let ((target (string-append (assoc-ref %outputs "out")
4029 "/share/texmf-dist/tex/latex/threeparttable")))
4030 (mkdir-p target)
4031 (copy-recursively (assoc-ref %build-inputs "source") target)
4032 #t))))
4033 (home-page "https://www.ctan.org/pkg/threeparttable")
4034 (synopsis "Tables with captions and notes all the same width")
4035 (description
4036 "This package facilitates tables with titles (captions) and notes. The
4037 title and notes are given a width equal to the body of the table (a
4038 @code{tabular} environment). By itself, a @code{threeparttable} does not
4039 float, but you can put it in a @code{table} or a @code{table*} or some other
4040 environment.")
4041 (license (license:fsf-free "file://threeparttable.sty"))))
4042
4043 (define-public texlive-fonts-txfonts
4044 (package
4045 (name "texlive-fonts-txfonts")
4046 (version (number->string %texlive-revision))
4047 (source (origin
4048 (method svn-fetch)
4049 (uri (svn-reference
4050 (url (string-append "svn://www.tug.org/texlive/tags/"
4051 %texlive-tag "/Master/texmf-dist/"
4052 "/tex/latex/txfonts"))
4053 (revision %texlive-revision)))
4054 (file-name (string-append name "-" version "-checkout"))
4055 (sha256
4056 (base32
4057 "0jl921qdphg8i7bkfprackn3xd4gmvxckc526nmzqsmahqkavgg2"))))
4058 (build-system trivial-build-system)
4059 (arguments
4060 `(#:modules ((guix build utils)
4061 (ice-9 match))
4062 #:builder
4063 (begin
4064 (use-modules (guix build utils)
4065 (ice-9 match))
4066 (let ((root (string-append (assoc-ref %outputs "out")
4067 "/share/texmf-dist/"))
4068 (pkgs '(("source" . "tex/latex/txfonts")
4069 ("txfonts-vf" . "fonts/tfm/public/txfonts")
4070 ("txfonts-afm" . "fonts/afm/public/txfonts")
4071 ("txfonts-tfm" . "fonts/tfm/public/txfonts")
4072 ("txfonts-type1" . "fonts/type1/public/txfonts")
4073 ("txfonts-enc" . "fonts/enc/dvips/txfonts")
4074 ("txfonts-map" . "fonts/map/dvips/txfonts"))))
4075 (for-each (match-lambda
4076 ((pkg . dir)
4077 (let ((target (string-append root dir)))
4078 (mkdir-p target)
4079 (copy-recursively (assoc-ref %build-inputs pkg)
4080 target))))
4081 pkgs)
4082 #t))))
4083 (native-inputs
4084 `(("txfonts-tfm"
4085 ,(origin
4086 (method svn-fetch)
4087 (uri (svn-reference
4088 (url (string-append "svn://www.tug.org/texlive/tags/"
4089 %texlive-tag "/Master/texmf-dist/"
4090 "/fonts/tfm/public/txfonts"))
4091 (revision %texlive-revision)))
4092 (file-name (string-append name "-tfm-" version "-checkout"))
4093 (sha256
4094 (base32
4095 "12ffmbrp48ap35qa3b4mi6ckif9q2vf7972jxh5dc1yzykhla2xv"))))
4096 ("txfonts-vf"
4097 ,(origin
4098 (method svn-fetch)
4099 (uri (svn-reference
4100 (url (string-append "svn://www.tug.org/texlive/tags/"
4101 %texlive-tag "/Master/texmf-dist/"
4102 "/fonts/vf/public/txfonts"))
4103 (revision %texlive-revision)))
4104 (file-name (string-append name "-vf-" version "-checkout"))
4105 (sha256
4106 (base32
4107 "04acyfdwvxpfx4l2xh2bpzdmpvwdf2pzbs7a236b0xckz2jvc1ci"))))
4108 ("txfonts-afm"
4109 ,(origin
4110 (method svn-fetch)
4111 (uri (svn-reference
4112 (url (string-append "svn://www.tug.org/texlive/tags/"
4113 %texlive-tag "/Master/texmf-dist/"
4114 "/fonts/afm/public/txfonts"))
4115 (revision %texlive-revision)))
4116 (file-name (string-append name "-afm-" version "-checkout"))
4117 (sha256
4118 (base32
4119 "1705klz51pnqzcs89s3521b84b6c89wlczflsh0vci66nl155yis"))))
4120 ("txfonts-type1"
4121 ,(origin
4122 (method svn-fetch)
4123 (uri (svn-reference
4124 (url (string-append "svn://www.tug.org/texlive/tags/"
4125 %texlive-tag "/Master/texmf-dist/"
4126 "/fonts/type1/public/txfonts"))
4127 (revision %texlive-revision)))
4128 (file-name (string-append name "-type1-" version "-checkout"))
4129 (sha256
4130 (base32
4131 "0ajwr7zb6ch3gxd0g8p2i4llhy2wr9a9saz6jq6hm6fxf4pgl5h3"))))
4132 ("txfonts-map"
4133 ,(origin
4134 (method svn-fetch)
4135 (uri (svn-reference
4136 (url (string-append "svn://www.tug.org/texlive/tags/"
4137 %texlive-tag "/Master/texmf-dist/"
4138 "/fonts/map/dvips/txfonts"))
4139 (revision %texlive-revision)))
4140 (file-name (string-append name "-map-" version "-checkout"))
4141 (sha256
4142 (base32
4143 "0kamr8a9x24jakas3v09dgv7kkpybj3i7qv4vz1iyypqr6kk1raj"))))
4144 ("txfonts-enc"
4145 ,(origin
4146 (method svn-fetch)
4147 (uri (svn-reference
4148 (url (string-append "svn://www.tug.org/texlive/tags/"
4149 %texlive-tag "/Master/texmf-dist/"
4150 "/fonts/enc/dvips/txfonts"))
4151 (revision %texlive-revision)))
4152 (file-name (string-append name "-enc-" version "-checkout"))
4153 (sha256
4154 (base32
4155 "1bal5fhw0xlhl37ayv8vlnqnsn1y82kadzfjhbgr223blspp4zsj"))))))
4156 (home-page "https://www.ctan.org/pkg/threeparttable")
4157 (synopsis "Times-like fonts in support of mathematics")
4158 (description
4159 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW
4160 NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,
4161 and TS1 encodings; maths alphabets using Times/URW Nimbus; maths fonts
4162 providing all the symbols of the Computer Modern and AMS fonts, including all
4163 the Greek capital letters from CMR; and additional maths fonts of various
4164 other symbols.
4165
4166 The set is complemented by a sans-serif set of text fonts, based on
4167 Helvetica/NimbusSanL, and a monospace set.
4168
4169 All the fonts are in Type 1 format (AFM and PFB files), and are supported by
4170 TeX metrics (VF and TFM files) and macros for use with LaTeX.")
4171 ;; Any version of the GPL with font exception.
4172 (license license:gpl3+)))
4173
4174 (define-public texlive-fonts-iwona
4175 (package
4176 (name "texlive-fonts-iwona")
4177 (version "0.995b")
4178 (source (origin
4179 (method url-fetch)
4180 (uri (string-append "http://jmn.pl/pliki/Iwona-tex-"
4181 (string-map (lambda (c)
4182 (if (char=? c #\.)
4183 #\_ c))
4184 version)
4185 ".zip"))
4186 (sha256
4187 (base32
4188 "13684iqx5granpc5rfvqnmyvdpgpbr1x9y7i7y7bcaq0qxv7ph1x"))))
4189 (build-system trivial-build-system)
4190 (arguments
4191 `(#:modules ((guix build utils))
4192 #:builder
4193 (begin
4194 (use-modules (guix build utils))
4195 (let ((target (string-append (assoc-ref %outputs "out")
4196 "/share/texmf-dist/"))
4197 (unzip (string-append (assoc-ref %build-inputs "unzip")
4198 "/bin/unzip")))
4199 (invoke unzip (assoc-ref %build-inputs "source"))
4200 (mkdir-p target)
4201 (copy-recursively "iwona" target)
4202 #t))))
4203 (native-inputs
4204 `(("unzip" ,unzip)))
4205 (home-page "http://jmn.pl/en/kurier-i-iwona/")
4206 (synopsis "Sans-serif typeface for TeX")
4207 (description "Iwona is a two-element sans-serif typeface. It was created
4208 as an alternative version of the Kurier typeface, which was designed in 1975
4209 for a diploma in typeface design at the Warsaw Academy of Fine Arts under the
4210 supervision of Roman Tomaszewski. Kurier was designed for linotype
4211 typesetting of newspapers and similar periodicals. The Iwona fonts are an
4212 alternative version of the Kurier fonts. The difference lies in the absence
4213 of ink traps which typify the Kurier font.")
4214 (license license:gfl1.0)))
4215
4216 (define-public texlive-latex-titlesec
4217 (package
4218 (name "texlive-latex-titlesec")
4219 (version (number->string %texlive-revision))
4220 (source (origin
4221 (method svn-fetch)
4222 (uri (svn-reference
4223 (url (string-append "svn://www.tug.org/texlive/tags/"
4224 %texlive-tag "/Master/texmf-dist/"
4225 "/tex/latex/titlesec"))
4226 (revision %texlive-revision)))
4227 (file-name (string-append name "-" version "-checkout"))
4228 (sha256
4229 (base32
4230 "04nmkhqx6jxcxx9a30zbcd5smxi5fd0cbp132bki7fnvhspnhg21"))))
4231 (build-system trivial-build-system)
4232 (arguments
4233 `(#:modules ((guix build utils))
4234 #:builder
4235 (begin
4236 (use-modules (guix build utils))
4237 (let ((target (string-append (assoc-ref %outputs "out")
4238 "/share/texmf-dist/tex/latex/titlesec")))
4239 (mkdir-p target)
4240 (copy-recursively (assoc-ref %build-inputs "source") target)
4241 #t))))
4242 (home-page "https://www.ctan.org/pkg/titlesec")
4243 (synopsis "Select alternative section titles")
4244 (description
4245 "This package provides an interface to sectioning commands for selection
4246 from various title styles, e.g. for marginal titles and to change the font of
4247 all headings with a single command, also providing simple one-step page
4248 styles. It also includes a package to change the page styles when there are
4249 floats in a page. You may assign headers/footers to individual floats, too.")
4250 (license license:lppl)))
4251
4252 (define-public texlive-latex-type1cm
4253 (package
4254 (name "texlive-latex-type1cm")
4255 (version (number->string %texlive-revision))
4256 (source (origin
4257 (method svn-fetch)
4258 (uri (texlive-ref "latex" "type1cm"))
4259 (file-name (string-append name "-" version "-checkout"))
4260 (sha256
4261 (base32
4262 "1lvxrqfwcwa4p31zyfm80gr05v8c28xybv5ri79zi2ngz6834z12"))))
4263 (build-system texlive-build-system)
4264 (arguments '(#:tex-directory "latex/type1cm"))
4265 (home-page "https://www.ctan.org/pkg/type1cm")
4266 (synopsis "Arbitrary size font selection in LaTeX")
4267 (description
4268 "LaTeX, by default, restricts the sizes at which you can use its default
4269 computer modern fonts, to a fixed set of discrete sizes (effectively, a set
4270 specified by Knuth). The @code{type1cm} package removes this restriction;
4271 this is particularly useful when using scalable versions of the CM
4272 fonts (Bakoma, or the versions from BSR/Y&Y, or True Type versions from Kinch,
4273 PCTeX, etc.). In fact, since modern distributions will automatically generate
4274 any bitmap font you might need, @code{type1cm} has wider application than just
4275 those using scalable versions of the fonts. Note that the LaTeX distribution
4276 now contains a package @code{fix-cm},f which performs the task of
4277 @code{type1cm}, as well as doing the same job for T1- and TS1-encoded
4278 @code{ec} fonts.")
4279 (license license:lppl)))
4280
4281 (define-public texlive-latex-lh
4282 (package
4283 (name "texlive-latex-lh")
4284 (version (number->string %texlive-revision))
4285 (source (origin
4286 (method svn-fetch)
4287 (uri (texlive-ref "latex" "lh"))
4288 (file-name (string-append name "-" version "-checkout"))
4289 (sha256
4290 (base32
4291 "00gdiwh3sfhh1iimjhpja7lm7k4vzqzql2irgwnpz94qvh25zwi5"))))
4292 (build-system texlive-build-system)
4293 (arguments '(#:tex-directory "latex/lh"))
4294 (home-page "https://www.ctan.org/pkg/lh")
4295 (synopsis "Cyrillic fonts that support LaTeX standard encodings")
4296 (description
4297 "The LH fonts address the problem of the wide variety of alphabets that
4298 are written with Cyrillic-style characters. The fonts are the original basis
4299 of the set of T2* and X2 encodings that are now used when LaTeX users need to
4300 write in Cyrillic languages. Macro support in standard LaTeX encodings is
4301 offered through the latex-cyrillic and t2 bundles, and the package itself
4302 offers support for other (more traditional) encodings. The fonts, in the
4303 standard T2* and X2 encodings are available in Adobe Type 1 format, in the
4304 CM-Super family of fonts. The package also offers its own LaTeX support for
4305 OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
4306 (license license:lppl)))
4307
4308 (define-public texlive-metapost
4309 (package
4310 (name "texlive-metapost")
4311 (version (number->string %texlive-revision))
4312 (source (origin
4313 (method svn-fetch)
4314 (uri (svn-reference
4315 (url (string-append "svn://www.tug.org/texlive/tags/"
4316 %texlive-tag "/Master/texmf-dist/"
4317 "/metapost"))
4318 (revision %texlive-revision)))
4319 (file-name (string-append name "-" version "-checkout"))
4320 (sha256
4321 (base32
4322 "0sf18pc6chgy26p9bxxn44xcqhzjrfb53jxjr2y7l3jb6xllhblq"))))
4323 (build-system trivial-build-system)
4324 (arguments
4325 `(#:modules ((guix build utils))
4326 #:builder
4327 (begin
4328 (use-modules (guix build utils))
4329 (let ((target (string-append (assoc-ref %outputs "out")
4330 "/share/texmf-dist/metapost")))
4331 (mkdir-p target)
4332 (copy-recursively (assoc-ref %build-inputs "source") target)
4333 #t))))
4334 (home-page "https://www.ctan.org/pkg/metapost")
4335 (synopsis "Create scalable illustrations")
4336 (description
4337 "MetaPost uses a language based on that of Metafont to produce precise
4338 technical illustrations. Its output is scalable PostScript or SVG, rather
4339 than the bitmaps Metafont creates.")
4340 (license license:lppl)))
4341
4342 (define-public texlive-latex-acmart
4343 (package
4344 (name "texlive-latex-acmart")
4345 (version "1.45")
4346 (source (origin
4347 (method svn-fetch)
4348 (uri (texlive-ref "latex" "acmart"))
4349 (sha256
4350 (base32
4351 "10zs8ga88ksypv1v4p6mynmfa7749q2hgxlr4shnwfjd9wrb421q"))
4352 (file-name (string-append name "-" version "-checkout"))))
4353 (build-system texlive-build-system)
4354 (arguments '(#:tex-directory "latex/acmart"))
4355 (home-page "https://www.ctan.org/pkg/acmart")
4356 (synopsis "Class for typesetting publications of ACM")
4357 (description
4358 "This package provides a class for typesetting publications of the
4359 Association for Computing Machinery (ACM).")
4360 (license license:lppl1.3+)))
4361
4362 (define-public texlive-latex-varwidth
4363 (package
4364 (name "texlive-latex-varwidth")
4365 (version (number->string %texlive-revision))
4366 (source (origin
4367 (method svn-fetch)
4368 (uri (svn-reference
4369 (url (string-append "svn://www.tug.org/texlive/tags/"
4370 %texlive-tag "/Master/texmf-dist/"
4371 "/tex/latex/varwidth"))
4372 (revision %texlive-revision)))
4373 (file-name (string-append name "-" version "-checkout"))
4374 (sha256
4375 (base32
4376 "1bmz9ap0ffyg7qry2xi7lki06qx4809w028xvk88cl66h7p46g52"))))
4377 (build-system trivial-build-system)
4378 (arguments
4379 `(#:modules ((guix build utils))
4380 #:builder
4381 (begin
4382 (use-modules (guix build utils))
4383 (let ((target (string-append (assoc-ref %outputs "out")
4384 "/share/texmf-dist/tex/latex/varwidth")))
4385 (mkdir-p target)
4386 (copy-recursively (assoc-ref %build-inputs "source") target)
4387 #t))))
4388 (home-page "https://www.ctan.org/pkg/varwidth")
4389 (synopsis "Variable-width minipage")
4390 (description
4391 "The @code{varwidth} environment is superficially similar to
4392 @code{minipage}, but the specified width is just a maximum value — the box may
4393 get a narrower “natural” width.")
4394 (license license:lppl)))
4395
4396 (define-public texlive-latex-wasysym
4397 (package
4398 (name "texlive-latex-wasysym")
4399 (version (number->string %texlive-revision))
4400 (source (origin
4401 (method svn-fetch)
4402 (uri (texlive-ref "latex" "wasysym"))
4403 (file-name (string-append name "-" version "-checkout"))
4404 (sha256
4405 (base32
4406 "1sgwbfwjjf70g54hh93gsd9jp9nm67w6n74x9d72a56n07jbk5hv"))))
4407 (build-system texlive-build-system)
4408 (arguments '(#:tex-directory "latex/wasysym"))
4409 (home-page "https://www.ctan.org/pkg/wasysym")
4410 (synopsis "LaTeX support file to use the WASY2 fonts")
4411 (description
4412 "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs
4413 like male and female symbols and astronomical symbols, as well as the complete
4414 lasy font set and other odds and ends. The wasysym package implements an easy
4415 to use interface for these symbols.")
4416 (license license:lppl)))
4417
4418 (define-public texlive-latex-wrapfig
4419 (package
4420 (name "texlive-latex-wrapfig")
4421 (version (number->string %texlive-revision))
4422 (source (origin
4423 (method svn-fetch)
4424 (uri (svn-reference
4425 (url (string-append "svn://www.tug.org/texlive/tags/"
4426 %texlive-tag "/Master/texmf-dist/"
4427 "/tex/latex/wrapfig"))
4428 (revision %texlive-revision)))
4429 (file-name (string-append name "-" version "-checkout"))
4430 (sha256
4431 (base32
4432 "16xpyl0csmmwndz1xhzqfg9l0zcsnqxslsixsqkwd4zsvfj30sv4"))))
4433 (build-system trivial-build-system)
4434 (arguments
4435 `(#:modules ((guix build utils))
4436 #:builder
4437 (begin
4438 (use-modules (guix build utils))
4439 (let ((target (string-append (assoc-ref %outputs "out")
4440 "/share/texmf-dist/tex/latex/wrapfig")))
4441 (mkdir-p target)
4442 (copy-recursively (assoc-ref %build-inputs "source") target)
4443 #t))))
4444 (home-page "https://www.ctan.org/pkg/wrapfig")
4445 (synopsis "Produces figures which text can flow around")
4446 (description
4447 "This package allows figures or tables to have text wrapped around them.
4448 It does not work in combination with list environments, but can be used in a
4449 @code{parbox} or @code{minipage}, and in two-column format.")
4450 (license license:lppl)))
4451
4452 (define-public texlive-latex-ucs
4453 (package
4454 (name "texlive-latex-ucs")
4455 (version (number->string %texlive-revision))
4456 (source (origin
4457 (method svn-fetch)
4458 (uri (svn-reference
4459 (url (string-append "svn://www.tug.org/texlive/tags/"
4460 %texlive-tag "/Master/texmf-dist/"
4461 "/tex/latex/ucs"))
4462 (revision %texlive-revision)))
4463 (file-name (string-append name "-" version "-checkout"))
4464 (sha256
4465 (base32
4466 "0rrxwi60wmz5dfjifl4fwk66plf7wix85qnhfv4ylvmj6qi6hw37"))))
4467 (build-system trivial-build-system)
4468 (arguments
4469 `(#:modules ((guix build utils))
4470 #:builder
4471 (begin
4472 (use-modules (guix build utils))
4473 (let ((target (string-append (assoc-ref %outputs "out")
4474 "/share/texmf-dist/tex/latex/ucs")))
4475 (mkdir-p target)
4476 (copy-recursively (assoc-ref %build-inputs "source") target)
4477 #t))))
4478 (home-page "https://www.ctan.org/pkg/ucs")
4479 (synopsis "Extended UTF-8 input encoding support for LaTeX")
4480 (description
4481 "The bundle provides the @code{ucs} package, and @code{utf8x.def},
4482 together with a large number of support files. The @code{utf8x.def}
4483 definition file for use with @code{inputenc} covers a wider range of Unicode
4484 characters than does @code{utf8.def} in the LaTeX distribution. The package
4485 provides facilities for efficient use of its large sets of Unicode characters.
4486 Glyph production may be controlled by various options, which permits use of
4487 non-ASCII characters when coding mathematical formulae. Note that the bundle
4488 previously had an alias “unicode”; that alias has now been withdrawn, and no
4489 package of that name now exists.")
4490 (license license:lppl1.3+)))
4491
4492 (define-public texlive-latex-preview
4493 (package
4494 (name "texlive-latex-preview")
4495 (version (number->string %texlive-revision))
4496 (source (origin
4497 (method svn-fetch)
4498 (uri (texlive-ref "latex" "preview"))
4499 (file-name (string-append name "-" version "-checkout"))
4500 (sha256
4501 (base32
4502 "1hpsk4yp08qvbl43kqiv0hhwxv3gcqqxcpahyv6ch2b38pbj4bh6"))))
4503 (build-system texlive-build-system)
4504 (arguments
4505 '(#:tex-directory "latex/preview"
4506 #:phases
4507 (modify-phases %standard-phases
4508 (add-after 'unpack 'remove-generated-file
4509 (lambda _
4510 (delete-file "preview.drv")
4511 #t)))))
4512 (home-page "https://www.ctan.org/pkg/preview")
4513 (synopsis "Extract bits of a LaTeX source for output")
4514 (description
4515 "The main purpose of the preview package is the extraction of selected
4516 elements from a LaTeX source, like formulas or graphics, into separate
4517 pages of a DVI file. A flexible and convenient interface allows it to
4518 specify what commands and constructs should be extracted. This works
4519 with DVI files postprocessed by either Dvips and Ghostscript or
4520 dvipng, but it also works when you are using PDFTeX for generating PDF
4521 files.")
4522 (license license:gpl3+)))
4523
4524 (define-public texlive-latex-acronym
4525 (package
4526 (name "texlive-latex-acronym")
4527 (version (number->string %texlive-revision))
4528 (source (origin
4529 (method svn-fetch)
4530 (uri (texlive-ref "latex" "acronym"))
4531 (file-name (string-append name "-" version "-checkout"))
4532 (sha256
4533 (base32
4534 "0jmasg40bk53zdd2jc8nc18jvdai3p2wmamy7hwli8gls4nf25qp"))))
4535 (build-system texlive-build-system)
4536 (arguments '(#:tex-directory "latex/acronym"))
4537 (home-page "https://www.ctan.org/pkg/acronym")
4538 (synopsis "Expand acronyms at least once")
4539 (description
4540 "This package ensures that all acronyms used in the text are spelled out
4541 in full at least once. It also provides an environment to build a list of
4542 acronyms used. The package is compatible with PDF bookmarks. The package
4543 requires the suffix package, which in turn requires that it runs under
4544 e-TeX.")
4545 (license license:lppl1.3+)))
4546
4547 (define-public texlive-generic-pdftex
4548 (package
4549 (name "texlive-generic-pdftex")
4550 (version (number->string %texlive-revision))
4551 (source (origin
4552 (method svn-fetch)
4553 (uri (svn-reference
4554 (url (string-append "svn://www.tug.org/texlive/tags/"
4555 %texlive-tag "/Master/texmf-dist/"
4556 "/tex/generic/pdftex"))
4557 (revision %texlive-revision)))
4558 (file-name (string-append name "-" version "-checkout"))
4559 (sha256
4560 (base32
4561 "0k68zmqzs4qvrqxdwsrawbjb14hxqjfamq649azvai0jjxdpkljd"))))
4562 (build-system trivial-build-system)
4563 (arguments
4564 `(#:modules ((guix build utils))
4565 #:builder
4566 (begin
4567 (use-modules (guix build utils))
4568 (let ((target (string-append (assoc-ref %outputs "out")
4569 "/share/texmf-dist/tex/generic/pdftex"))
4570 (target-map (string-append (assoc-ref %outputs "out")
4571 "/share/texmf-dist/fonts/map/pdftex")))
4572 (mkdir-p target)
4573 (copy-recursively (assoc-ref %build-inputs "source") target)
4574 (mkdir-p target-map)
4575 (copy-recursively (assoc-ref %build-inputs "pdftex-map") target-map)
4576 #t))))
4577 (native-inputs
4578 `(("pdftex-map"
4579 ,(origin
4580 (method svn-fetch)
4581 (uri (svn-reference
4582 (url (string-append "svn://www.tug.org/texlive/tags/"
4583 %texlive-tag "/Master/texmf-dist/"
4584 "/fonts/map/pdftex"))
4585 (revision %texlive-revision)))
4586 (file-name (string-append name "-map-" version "-checkout"))
4587 (sha256
4588 (base32
4589 "18jvcm0vwpg6wwzijvnb92xx78la45kkh71k6l44425krp2vnwm0"))))))
4590 (home-page "https://www.ctan.org/pkg/pdftex")
4591 (synopsis "TeX extension for direct creation of PDF")
4592 (description
4593 "This package provides an extension of TeX which can be configured to
4594 directly generate PDF documents instead of DVI.")
4595 (license license:gpl2+)))
4596
4597 (define texlive-texmf
4598 (package
4599 (name "texlive-texmf")
4600 (version "20180414")
4601 (source texlive-texmf-src)
4602 (build-system gnu-build-system)
4603 (inputs
4604 `(("texlive-bin" ,texlive-bin)
4605 ("lua" ,lua)
4606 ("perl" ,perl)
4607 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
4608 ("ruby" ,ruby)
4609 ("tcsh" ,tcsh)))
4610 (arguments
4611 `(#:modules ((guix build gnu-build-system)
4612 (guix build utils)
4613 (srfi srfi-26))
4614
4615 ;; This package takes 4 GiB, which we can't afford to distribute from
4616 ;; our servers.
4617 #:substitutable? #f
4618
4619 #:phases
4620 (modify-phases (map (cut assq <> %standard-phases)
4621 '(set-paths unpack patch-source-shebangs))
4622 (add-after 'unpack 'unset-environment-variables
4623 (lambda _
4624 (unsetenv "TEXMF")
4625 (unsetenv "TEXMFCNF")
4626 #t))
4627 (add-after 'patch-source-shebangs 'install
4628 (lambda* (#:key outputs #:allow-other-keys)
4629 (let ((share (string-append (assoc-ref outputs "out") "/share")))
4630 (mkdir-p share)
4631 (invoke "mv" "texmf-dist" share))))
4632 (add-after 'install 'texmf-config
4633 (lambda* (#:key inputs outputs #:allow-other-keys)
4634 (let* ((out (assoc-ref outputs "out"))
4635 (share (string-append out "/share"))
4636 (texmfroot (string-append share "/texmf-dist/web2c"))
4637 (texmfcnf (string-append texmfroot "/texmf.cnf"))
4638 (texlive-bin (assoc-ref inputs "texlive-bin"))
4639 (texbin (string-append texlive-bin "/bin"))
4640 (tlpkg (string-append texlive-bin "/share/tlpkg")))
4641 ;; Register SHARE as TEXMFROOT in texmf.cnf.
4642 (substitute* texmfcnf
4643 (("TEXMFROOT = \\$SELFAUTOPARENT")
4644 (string-append "TEXMFROOT = " share))
4645 (("TEXMFLOCAL = \\$SELFAUTOGRANDPARENT/texmf-local")
4646 "TEXMFLOCAL = $SELFAUTODIR/share/texmf-local")
4647 (("!!\\$TEXMFLOCAL") "$TEXMFLOCAL"))
4648 ;; Register paths in texmfcnf.lua, needed for context.
4649 (substitute* (string-append texmfroot "/texmfcnf.lua")
4650 (("selfautodir:") out)
4651 (("selfautoparent:") (string-append share "/")))
4652 ;; Set path to TeXLive Perl modules
4653 (setenv "PERL5LIB"
4654 (string-append (getenv "PERL5LIB") ":" tlpkg))
4655 ;; Configure the texmf-dist tree; inspired from
4656 ;; http://slackbuilds.org/repository/13.37/office/texlive/
4657 (setenv "PATH" (string-append (getenv "PATH") ":" texbin))
4658 (setenv "TEXMFCNF" texmfroot)
4659 (invoke "updmap-sys" "--nohash" "--syncwithtrees")
4660 (invoke "mktexlsr")
4661 (invoke "fmtutil-sys" "--all")))))))
4662 (properties `((max-silent-time . 9600))) ; don't time out while grafting
4663 (synopsis "TeX Live, a package of the TeX typesetting system")
4664 (description
4665 "TeX Live provides a comprehensive TeX document production system.
4666 It includes all the major TeX-related programs, macro packages, and fonts
4667 that are free software, including support for many languages around the
4668 world.
4669
4670 This package contains the complete tree of texmf-dist data.")
4671 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
4672 (home-page "https://www.tug.org/texlive/")))
4673
4674 (define-public texlive
4675 (package
4676 (name "texlive")
4677 (version "20180414")
4678 (source #f)
4679 (build-system trivial-build-system)
4680 (inputs `(("bash" ,bash) ; for wrap-program
4681 ("texlive-bin" ,texlive-bin)
4682 ("texlive-texmf" ,texlive-texmf)))
4683 (native-search-paths
4684 (list (search-path-specification
4685 (variable "TEXMFLOCAL")
4686 (files '("share/texmf-local")))))
4687 (arguments
4688 `(#:modules ((guix build utils))
4689 #:builder
4690 ;; Build the union of texlive-bin and texlive-texmf, but take the
4691 ;; conflicting subdirectory share/texmf-dist from texlive-texmf.
4692 (begin
4693 (use-modules (guix build utils))
4694 (let ((out (assoc-ref %outputs "out"))
4695 (bin (assoc-ref %build-inputs "texlive-bin"))
4696 (texmf (assoc-ref %build-inputs "texlive-texmf"))
4697 (bash (assoc-ref %build-inputs "bash")))
4698 (mkdir out)
4699 (with-directory-excursion out
4700 (for-each
4701 (lambda (name)
4702 (symlink (string-append bin "/" name) name))
4703 '("include" "lib"))
4704 (mkdir "bin")
4705 (with-directory-excursion "bin"
4706 (setenv "PATH" (string-append bash "/bin"))
4707 (for-each
4708 (lambda (name)
4709 (symlink name (basename name))
4710 (wrap-program
4711 (basename name)
4712 `("TEXMFCNF" =
4713 (,(string-append texmf "/share/texmf-dist/web2c")))))
4714 (find-files (string-append bin "/bin/") "")))
4715 (mkdir "share")
4716 (with-directory-excursion "share"
4717 (for-each
4718 (lambda (name)
4719 (symlink (string-append bin "/share/" name) name))
4720 '("info" "man" "tlpkg"))
4721 (for-each
4722 (lambda (name)
4723 (symlink (string-append texmf "/share/" name) name))
4724 '("texmf-dist" "texmf-var"))))
4725 #t))))
4726 (synopsis "TeX Live, a package of the TeX typesetting system")
4727 (description
4728 "TeX Live provides a comprehensive TeX document production system.
4729 It includes all the major TeX-related programs, macro packages, and fonts
4730 that are free software, including support for many languages around the
4731 world.
4732
4733 This package contains the complete TeX Live distribution.")
4734 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
4735 (home-page "https://www.tug.org/texlive/")))
4736
4737 (define-public perl-text-bibtex
4738 (package
4739 (name "perl-text-bibtex")
4740 (version "0.85")
4741 (source
4742 (origin
4743 (method url-fetch)
4744 (uri (string-append "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-"
4745 version ".tar.gz"))
4746 (sha256
4747 (base32
4748 "036kxgbn1jf70pfm2lmjlzjwnhbkd888fp5lyvmkjpdd15gla18h"))))
4749 (build-system perl-build-system)
4750 (arguments
4751 `(#:phases
4752 (modify-phases %standard-phases
4753 (add-after 'unpack 'add-output-directory-to-rpath
4754 (lambda* (#:key outputs #:allow-other-keys)
4755 (substitute* "inc/MyBuilder.pm"
4756 (("-Lbtparse" line)
4757 (string-append "-Wl,-rpath="
4758 (assoc-ref outputs "out") "/lib " line)))
4759 #t))
4760 (add-after 'unpack 'install-libraries-to-/lib
4761 (lambda* (#:key outputs #:allow-other-keys)
4762 (substitute* "Build.PL"
4763 (("lib64") "lib"))
4764 #t)))))
4765 (native-inputs
4766 `(("perl-capture-tiny" ,perl-capture-tiny)
4767 ("perl-config-autoconf" ,perl-config-autoconf)
4768 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
4769 ("perl-module-build" ,perl-module-build)))
4770 (home-page "https://metacpan.org/release/Text-BibTeX")
4771 (synopsis "Interface to read and parse BibTeX files")
4772 (description "@code{Text::BibTeX} is a Perl library for reading, parsing,
4773 and processing BibTeX files. @code{Text::BibTeX} gives you access to the data
4774 at many different levels: you may work with BibTeX entries as simple field to
4775 string mappings, or get at the original form of the data as a list of simple
4776 values (strings, macros, or numbers) pasted together.")
4777 (license license:perl-license)))
4778
4779 (define-public biber
4780 (package
4781 (name "biber")
4782 (version "2.12")
4783 (source (origin
4784 (method git-fetch)
4785 (uri (git-reference
4786 (url "https://github.com/plk/biber/")
4787 (commit (string-append "v" version))))
4788 (file-name (git-file-name name version))
4789 ;; TODO: Patch awaiting inclusion upstream (see:
4790 ;; https://github.com/plk/biber/issues/239).
4791 (patches (search-patches "biber-fix-encoding-write.patch"))
4792 (sha256
4793 (base32
4794 "1g1hi6zvf2hmrjly1sidjaxy5440gfqm4p7p3n7kayshnjsmlskx"))))
4795 (build-system perl-build-system)
4796 (arguments
4797 `(#:phases
4798 (modify-phases %standard-phases
4799 (add-after 'install 'wrap-programs
4800 (lambda* (#:key outputs #:allow-other-keys)
4801 (let* ((out (assoc-ref outputs "out"))
4802 (perl5lib (getenv "PERL5LIB")))
4803 (wrap-program (string-append out "/bin/biber")
4804 `("PERL5LIB" ":" prefix
4805 (,(string-append perl5lib ":" out
4806 "/lib/perl5/site_perl")))))
4807 #t)))))
4808 (inputs
4809 `(("perl-autovivification" ,perl-autovivification)
4810 ("perl-class-accessor" ,perl-class-accessor)
4811 ("perl-data-dump" ,perl-data-dump)
4812 ("perl-data-compare" ,perl-data-compare)
4813 ("perl-data-uniqid" ,perl-data-uniqid)
4814 ("perl-datetime-format-builder" ,perl-datetime-format-builder)
4815 ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
4816 ("perl-file-slurper" ,perl-file-slurper)
4817 ("perl-ipc-cmd" ,perl-ipc-cmd)
4818 ("perl-ipc-run3" ,perl-ipc-run3)
4819 ("perl-list-allutils" ,perl-list-allutils)
4820 ("perl-list-moreutils" ,perl-list-moreutils)
4821 ("perl-mozilla-ca" ,perl-mozilla-ca)
4822 ("perl-regexp-common" ,perl-regexp-common)
4823 ("perl-log-log4perl" ,perl-log-log4perl)
4824 ;; We cannot use perl-unicode-collate here, because otherwise the
4825 ;; hardcoded hashes in the tests would differ. See
4826 ;; https://mail-archive.com/debian-bugs-dist@lists.debian.org/msg1469249.html
4827 ;;("perl-unicode-collate" ,perl-unicode-collate)
4828 ("perl-unicode-normalize" ,perl-unicode-normalize)
4829 ("perl-unicode-linebreak" ,perl-unicode-linebreak)
4830 ("perl-encode-eucjpascii" ,perl-encode-eucjpascii)
4831 ("perl-encode-jis2k" ,perl-encode-jis2k)
4832 ("perl-encode-hanextra" ,perl-encode-hanextra)
4833 ("perl-xml-libxml" ,perl-xml-libxml)
4834 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)
4835 ("perl-xml-libxslt" ,perl-xml-libxslt)
4836 ("perl-xml-writer" ,perl-xml-writer)
4837 ("perl-sort-key" ,perl-sort-key)
4838 ("perl-text-csv" ,perl-text-csv)
4839 ("perl-text-csv-xs" ,perl-text-csv-xs)
4840 ("perl-text-roman" ,perl-text-roman)
4841 ("perl-uri" ,perl-uri)
4842 ("perl-text-bibtex" ,perl-text-bibtex)
4843 ("perl-libwww" ,perl-libwww)
4844 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
4845 ("perl-business-isbn" ,perl-business-isbn)
4846 ("perl-business-issn" ,perl-business-issn)
4847 ("perl-business-ismn" ,perl-business-ismn)
4848 ("perl-lingua-translit" ,perl-lingua-translit)))
4849 (native-inputs
4850 `(("perl-config-autoconf" ,perl-config-autoconf)
4851 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
4852 ("perl-module-build" ,perl-module-build)
4853 ;; for tests
4854 ("perl-file-which" ,perl-file-which)
4855 ("perl-test-more" ,perl-test-most) ; FIXME: "more" would be sufficient
4856 ("perl-test-differences" ,perl-test-differences)))
4857 (home-page "http://biblatex-biber.sourceforge.net/")
4858 (synopsis "Backend for the BibLaTeX citation management tool")
4859 (description "Biber is a BibTeX replacement for users of biblatex. Among
4860 other things it comes with full Unicode support.")
4861 (license license:artistic2.0)))
4862
4863 (define-public rubber
4864 (package
4865 (name "rubber")
4866 (version "1.1")
4867 (source (origin
4868 (method url-fetch)
4869 (uri (list (string-append "https://launchpad.net/rubber/trunk/"
4870 version "/+download/rubber-"
4871 version ".tar.gz")
4872 (string-append "http://ebeffara.free.fr/pub/rubber-"
4873 version ".tar.gz")))
4874 (sha256
4875 (base32
4876 "1xbkv8ll889933gyi2a5hj7hhh216k04gn8fwz5lfv5iz8s34gbq"))))
4877 (build-system gnu-build-system)
4878 (arguments '(#:tests? #f)) ; no `check' target
4879 (inputs `(("texinfo" ,texinfo)
4880 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
4881 ("which" ,which)))
4882 (home-page "https://launchpad.net/rubber")
4883 (synopsis "Wrapper for LaTeX and friends")
4884 (description
4885 "Rubber is a program whose purpose is to handle all tasks related to the
4886 compilation of LaTeX documents. This includes compiling the document itself,
4887 of course, enough times so that all references are defined, and running BibTeX
4888 to manage bibliographic references. Automatic execution of dvips to produce
4889 PostScript documents is also included, as well as usage of pdfLaTeX to produce
4890 PDF documents.")
4891 (license license:gpl2+)))
4892
4893 (define-public texmaker
4894 (package
4895 (name "texmaker")
4896 (version "5.0.2")
4897 (source (origin
4898 (method url-fetch)
4899 (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
4900 version ".tar.bz2"))
4901 (sha256
4902 (base32
4903 "0y81mjm89b99pr9svcwpaf4iz2q9pc9hjas5kiwd1pbgl5vqskm9"))))
4904 (build-system gnu-build-system)
4905 (arguments
4906 `(#:phases
4907 (modify-phases %standard-phases
4908 ;; Qt has its own configuration utility.
4909 (replace 'configure
4910 (lambda* (#:key outputs #:allow-other-keys)
4911 (let ((out (assoc-ref outputs "out")))
4912 (invoke "qmake"
4913 (string-append "PREFIX=" out)
4914 (string-append "DESKTOPDIR=" out "/share/applications")
4915 (string-append "ICONDIR=" out "/share/pixmaps")
4916 (string-append "METAINFODIR=" out "/share/metainfo")
4917 "texmaker.pro")))))))
4918 (inputs
4919 `(("poppler-qt5" ,poppler-qt5)
4920 ("qtbase" ,qtbase)
4921 ("qtscript" ,qtscript)
4922 ("qtwebkit" ,qtwebkit)
4923 ("zlib" ,zlib)))
4924 (native-inputs
4925 `(("pkg-config" ,pkg-config)))
4926 (home-page "http://www.xm1math.net/texmaker/")
4927 (synopsis "LaTeX editor")
4928 (description "Texmaker is a program that integrates many tools needed to
4929 develop documents with LaTeX, in a single application.")
4930 (license license:gpl2+)))
4931
4932
4933 (define-public teximpatient
4934 (package
4935 (name "teximpatient")
4936 (version "2.4")
4937 (source (origin
4938 (method url-fetch)
4939 (uri (string-append "mirror://gnu/" name "/" name "-"
4940 version ".tar.gz"))
4941 (sha256
4942 (base32
4943 "0h56w22d99dh4fgld4ssik8ggnmhmrrbnrn1lnxi1zr0miphn1sd"))))
4944 (build-system gnu-build-system)
4945 (arguments
4946 `(#:phases
4947 (modify-phases %standard-phases
4948 (delete 'check)
4949 ;; Unfortunately some mistakes have been made in packaging.
4950 ;; Work around them here ...
4951 (replace 'unpack
4952 (lambda* (#:key inputs outputs #:allow-other-keys)
4953 (let ((srcdir "teximpatient-2.4"))
4954 (system* "tar" "-xzf" (assoc-ref inputs "source")
4955 (string-append "--one-top-level=" srcdir))
4956 (delete-file (string-append srcdir "/book.pdf"))
4957 (install-file (car
4958 (find-files
4959 (assoc-ref inputs "automake")
4960 "^install-sh$"))
4961 srcdir)
4962 (chdir srcdir)))))))
4963 (native-inputs
4964 `(("texlive" ,texlive)
4965 ("automake" ,automake)))
4966 (home-page "https://www.gnu.org/software/teximpatient/")
4967 (synopsis "Book on TeX, plain TeX and Eplain")
4968 (description "@i{TeX for the Impatient} is a ~350 page book on TeX,
4969 plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,
4970 and Karl Berry.")
4971 (license license:fdl1.3+)))
4972
4973 (define-public lyx
4974 (package
4975 (name "lyx")
4976 (version "2.2.3")
4977 (source (origin
4978 (method url-fetch)
4979 (uri (string-append "http://ftp.lyx.org/pub/lyx/stable/2.2.x/"
4980 name "-" version ".tar.gz"))
4981 (sha256
4982 (base32
4983 "0xvaz0i371nn2ndinc0d3ywj76ivb62649a4sdgwbivisiahd2fj"))
4984 (patches (search-patches "lyx-2.2.3-fix-test.patch"))
4985 (modules '((guix build utils)))
4986 (snippet
4987 '(begin
4988 (delete-file-recursively "3rdparty")
4989 #t))))
4990 (build-system cmake-build-system)
4991 (arguments
4992 `(#:configure-flags `("-DLYX_USE_QT=QT5"
4993 "-DLYX_EXTERNAL_BOOST=1"
4994 "-DLYX_INSTALL=1"
4995 "-DLYX_RELEASE=1"
4996 ,(string-append "-DLYX_INSTALL_PREFIX="
4997 (assoc-ref %outputs "out")
4998 ;; Exact name and level is necessary.
4999 "/lyx2.2"))
5000 #:phases
5001 (modify-phases %standard-phases
5002 (add-after 'unpack 'patch-python
5003 (lambda* (#:key inputs #:allow-other-keys)
5004 (substitute* '("src/support/os.cpp")
5005 (("\"python ")
5006 (string-append "\""
5007 (assoc-ref inputs "python-2")
5008 "/bin/python ")))
5009 #t))
5010 (add-after 'patch-python 'patch-installer
5011 (lambda* (#:key outputs #:allow-other-keys)
5012 (substitute* "CMakeLists.txt"
5013 (("/usr/local/man/man1")
5014 (string-append (assoc-ref outputs "out")
5015 "/share/man/man1")))
5016 #t))
5017 (add-after 'patch-python 'patch-desktop-file
5018 (lambda* (#:key outputs #:allow-other-keys)
5019 (substitute* "lib/lyx.desktop.in"
5020 (("Exec=")
5021 (string-append "Exec="
5022 (assoc-ref outputs "out")
5023 "/")))
5024 #t))
5025 (add-before 'check 'setenv-check
5026 (lambda _
5027 (setenv "LYX_DIR_22x" (string-append (getcwd) "/../lyx-"
5028 ,version "/lib"))
5029 #t))
5030 (add-after 'install 'install-symlinks
5031 (lambda* (#:key outputs #:allow-other-keys)
5032 (let ((out (assoc-ref outputs "out")))
5033 (mkdir-p (string-append out "/bin"))
5034 (symlink "../lyx2.2/bin/lyx2.2"
5035 (string-append out "/bin/lyx2.2"))
5036 #t))))))
5037 (inputs
5038 `(("boost" ,boost)
5039 ("hunspell" ,hunspell) ; Note: Could also use aspell instead.
5040 ("libx11" ,libx11)
5041 ("python-2" ,python-2)
5042 ("qtbase" ,qtbase)
5043 ("qtsvg" ,qtsvg)
5044 ("zlib" ,zlib)))
5045 (propagated-inputs
5046 `(("texlive" ,texlive))) ; article.cls is in texmf-dist.
5047 (native-inputs
5048 `(("python-2" ,python-2)
5049 ("pkg-config" ,pkg-config)
5050 ("bc" ,bc)))
5051 (home-page "https://www.lyx.org/")
5052 (synopsis "Document preparation system with GUI")
5053 (description "LyX is a document preparation system. It excels at letting
5054 you create complex technical and scientific articles with mathematics,
5055 cross-references, bibliographies, indexes, etc. It is very good for working
5056 with documents of any length in which the usual processing abilities are
5057 required: automatic sectioning and pagination, spell checking and so forth.")
5058 (license license:gpl2+)))
5059
5060 (define-public texlive-latex-media9
5061 (package
5062 (name "texlive-latex-media9")
5063 (version (number->string %texlive-revision))
5064 (source (origin
5065 (method svn-fetch)
5066 (uri (svn-reference
5067 (url (string-append "svn://www.tug.org/texlive/tags/"
5068 %texlive-tag "/Master/texmf-dist/"
5069 "/tex/latex/media9"))
5070 (revision %texlive-revision)))
5071 (file-name (string-append name "-" version "-checkout"))
5072 (sha256
5073 (base32
5074 "0lhb2h5hxjq9alpk4r3gvg21pwyifs4ah6hqzp92k55mkp1xv73j"))))
5075 (build-system trivial-build-system)
5076 (arguments
5077 `(#:modules ((guix build utils))
5078 #:builder
5079 (begin
5080 (use-modules (guix build utils))
5081 (let ((target (string-append (assoc-ref %outputs "out")
5082 "/share/texmf-dist/tex/latex/media9")))
5083 (mkdir-p target)
5084 (copy-recursively (assoc-ref %build-inputs "source") target)
5085 #t))))
5086 (home-page "https://www.ctan.org/pkg/media9")
5087 (synopsis "Multimedia inclusion package with Adobe Reader-9/X compatibility")
5088 (description
5089 "The package provides an interface to embed interactive Flash (SWF) and 3D
5090 objects (Adobe U3D & PRC), as well as video and sound files or streams in the
5091 popular MP4, FLV and MP3 formats into PDF documents with Acrobat-9/X
5092 compatibility. Playback of multimedia files uses the built-in Flash Player of
5093 Adobe Reader and does, therefore, not depend on external plug-ins. Flash Player
5094 supports the efficient H.264 codec for video compression.
5095
5096 The package is based on the RichMedia Annotation, an Adobe addition to the PDF
5097 specification. It replaces the now obsolete @code{movie15} package.")
5098 (license license:lppl)))
5099
5100 (define-public texlive-latex-ocgx2
5101 (package
5102 (name "texlive-latex-ocgx2")
5103 (version (number->string %texlive-revision))
5104 (source (origin
5105 (method svn-fetch)
5106 (uri (svn-reference
5107 (url (string-append "svn://www.tug.org/texlive/tags/"
5108 %texlive-tag "/Master/texmf-dist/"
5109 "/tex/latex/ocgx2"))
5110 (revision %texlive-revision)))
5111 (file-name (string-append name "-" version "-checkout"))
5112 (sha256
5113 (base32
5114 "0zp00jg058djx8xp0xqwas92y3j97clkyd8z6pqr890yqy06myqb"))))
5115 (build-system trivial-build-system)
5116 (arguments
5117 `(#:modules ((guix build utils))
5118 #:builder
5119 (begin
5120 (use-modules (guix build utils))
5121 (let ((target (string-append (assoc-ref %outputs "out")
5122 "/share/texmf-dist/tex/latex/ogcx2")))
5123 (mkdir-p target)
5124 (copy-recursively (assoc-ref %build-inputs "source") target)
5125 #t))))
5126 (home-page "https://www.ctan.org/pkg/ocgx2")
5127 (synopsis "Provide OCG (Optional Content Groups) support within a PDF document")
5128 (description
5129 "This package provides OCG (Optional Content Groups) support within a PDF
5130 document.
5131
5132 It re-implements the functionality of the @code{ocg}, @code{ocgx}, and
5133 @code{ocg-p} packages and adds support for all known engines and back-ends
5134 including:
5135
5136 @itemize
5137 @item LaTeX → dvips → @code{ps2pdf}/Distiller
5138 @item (Xe)LaTeX(x) → @code{dvipdfmx}
5139 @item pdfLaTeX and LuaLaTeX .
5140 @end itemize
5141
5142 It also ensures compatibility with the @code{media9} and @code{animate} packages.")
5143 (license license:lppl)))
5144
5145 (define-public texlive-latex-ms
5146 (package
5147 (name "texlive-latex-ms")
5148 (version (number->string %texlive-revision))
5149 (source (origin
5150 (method svn-fetch)
5151 (uri (texlive-ref "latex" "ms"))
5152 (file-name (string-append name "-" version "-checkout"))
5153 (sha256
5154 (base32
5155 "0m4wx3yjb5al1qsv995z8fii8xxy96mcfihbnlx43lpgayiwz35s"))))
5156 (build-system texlive-build-system)
5157 (arguments
5158 '(#:tex-directory "latex/ms"
5159 #:tex-format "latex"))
5160 (home-page "https://ctan.org/pkg/ms")
5161 (synopsis "Various LATEX packages by Martin Schröder")
5162 (description
5163 "A bundle of LATEX packages by Martin Schröder; the collection comprises:
5164
5165 @itemize
5166 @item @command{count1to}, make use of fixed TEX counters;
5167 @item @command{everysel}, set commands to execute every time a font is selected;
5168 @item @command{everyshi}, set commands to execute whenever a page is shipped out;
5169 @item @command{multitoc}, typeset the table of contents in multiple columns;
5170 @item @command{prelim2e}, mark typeset pages as preliminary; and
5171 @item @command{ragged2e}, typeset ragged text and allow hyphenation.
5172 @end itemize\n")
5173 (license license:lppl1.3c+)))
5174
5175 (define-public texlive-latex-needspace
5176 (package
5177 (name "texlive-latex-needspace")
5178 (version (number->string %texlive-revision))
5179 (source (origin
5180 (method svn-fetch)
5181 (uri (texlive-ref "latex" "needspace"))
5182 (file-name (string-append name "-" version "-checkout"))
5183 (sha256
5184 (base32
5185 "0kw80f5jh4gdpa2ka815abza3gr5z8b929w0745vrlc59pl0017y"))))
5186 (build-system texlive-build-system)
5187 (arguments
5188 '(#:tex-directory "latex/needspace"
5189 #:tex-format "latex"))
5190 (inputs
5191 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
5192 (home-page "https://www.ctan.org/pkg/needspace")
5193 (synopsis "Insert pagebreak if not enough space")
5194 (description
5195 "Provides commands to disable pagebreaking within a given vertical
5196 space. If there is not enough space between the command and the bottom of the
5197 page, a new page will be started.")
5198 (license license:lppl)))
5199
5200 (define-public texlive-latex-changepage
5201 (package
5202 (name "texlive-latex-changepage")
5203 (version (number->string %texlive-revision))
5204 (source
5205 (origin
5206 (method svn-fetch)
5207 (uri (texlive-ref "latex" "changepage"))
5208 (sha256
5209 (base32
5210 "1rpw8xg5p4jsyh236jma9dz3l29wjx4062f154b3wak5yjcxyxyb"))))
5211 (build-system texlive-build-system)
5212 (arguments
5213 '(#:tex-directory "latex/changepage"
5214 #:tex-format "latex"))
5215 (inputs
5216 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
5217 (home-page "https://www.ctan.org/pkg/changepage")
5218 (synopsis "Margin adjustment and detection of odd/even pages")
5219 (description
5220 "The package provides commands to change the page layout in the middle of
5221 a document, and to robustly check for typesetting on odd or even pages.
5222 Instructions for use are at the end of the file. The package is an extraction
5223 of code from the @code{memoir} class, whose user interface it shares.")
5224 (license license:lppl1.3+)))
5225
5226 (define-public texlive-latex-eukdate
5227 (package
5228 (name "texlive-latex-eukdate")
5229 (version (number->string %texlive-revision))
5230 (source
5231 (origin
5232 (method svn-fetch)
5233 (uri (svn-reference
5234 (url (string-append "svn://www.tug.org/texlive/tags/"
5235 %texlive-tag "/Master/texmf-dist/"
5236 "/tex/latex/eukdate"))
5237 (revision %texlive-revision)))
5238 (file-name (string-append name "-" version "-checkout"))
5239 (sha256
5240 (base32
5241 "18xan116l8w47v560bkw6nbhkrml7g04xrlzk3jrpc7qsyf3n5fz"))))
5242 (build-system trivial-build-system)
5243 (arguments
5244 `(#:modules ((guix build utils))
5245 #:builder
5246 (begin
5247 (use-modules (guix build utils))
5248 (let ((target (string-append (assoc-ref %outputs "out")
5249 "/share/texmf-dist/tex/latex/eukdate")))
5250 (mkdir-p target)
5251 (copy-recursively (assoc-ref %build-inputs "source") target)
5252 #t))))
5253 (home-page "https://www.ctan.org/pkg/eukdate")
5254 (synopsis "UK format dates, with weekday")
5255 (description
5256 "The package is used to change the format of @code{\\today}’s date,
5257 including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which
5258 is preferred in many parts of the world, as distinct from that which is used in
5259 @code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'.")
5260 (license license:lppl)))
5261
5262 (define-public texlive-generic-ulem
5263 (package
5264 (name "texlive-generic-ulem")
5265 (version (number->string %texlive-revision))
5266 (source
5267 (origin
5268 (method svn-fetch)
5269 (uri (svn-reference
5270 (url (string-append "svn://www.tug.org/texlive/tags/"
5271 %texlive-tag "/Master/texmf-dist/"
5272 "/tex/generic/ulem"))
5273 (revision %texlive-revision)))
5274 (file-name (string-append name "-" version "-checkout"))
5275 (sha256
5276 (base32
5277 "1rzdniqq9zk39w8ch8ylx3ywh2mj87s4ivchrsk2b8nx06jyn797"))))
5278 (build-system trivial-build-system)
5279 (arguments
5280 `(#:modules ((guix build utils))
5281 #:builder
5282 (begin
5283 (use-modules (guix build utils))
5284 (let ((target (string-append (assoc-ref %outputs "out")
5285 "/share/texmf-dist/tex/generic/ulem")))
5286 (mkdir-p target)
5287 (copy-recursively (assoc-ref %build-inputs "source") target)
5288 #t))))
5289 (home-page "https://www.ctan.org/pkg/ulem")
5290 (synopsis "Underline text in TeX")
5291 (description
5292 "The package provides an @code{\\ul} (underline) command which will break
5293 over line ends; this technique may be used to replace @code{\\em} (both in that
5294 form and as the @code{\\emph} command), so as to make output look as if it comes
5295 from a typewriter. The package also offers double and wavy underlining, and
5296 striking out (line through words) and crossing out (/// over words).")
5297 (license license:lppl1.3c+)))
5298
5299 (define-public texlive-latex-pgf
5300 (package
5301 (name "texlive-latex-pgf")
5302 (version (number->string %texlive-revision))
5303 (source
5304 (origin
5305 (method svn-fetch)
5306 (uri (svn-reference
5307 (url (string-append "svn://www.tug.org/texlive/tags/"
5308 %texlive-tag "/Master/texmf-dist/"
5309 "/tex/latex/pgf"))
5310 (revision %texlive-revision)))
5311 (file-name (string-append name "-" version "-checkout"))
5312 (sha256
5313 (base32
5314 "1dq8p10pz8wn0vx412m7d7d5gj1syxly3yqdqvf7lv2xl8zndn5h"))))
5315 (build-system trivial-build-system)
5316 (native-inputs
5317 `(("texlive-latex-pgf-generic"
5318 ,(origin
5319 (method svn-fetch)
5320 (uri (svn-reference
5321 (url (string-append "svn://www.tug.org/texlive/tags/"
5322 %texlive-tag "/Master/texmf-dist/"
5323 "/tex/generic/pgf"))
5324 (revision %texlive-revision)))
5325 (file-name (string-append "texlive-latex-pgf-generic" version "-checkout"))
5326 (sha256
5327 (base32
5328 "0xkxw26sjzr5npjpzpr28yygwdbhzpdd0hsk80gjpidhcxmz393i"))))))
5329 (arguments
5330 `(#:modules ((guix build utils))
5331 #:builder
5332 (begin
5333 (use-modules (guix build utils))
5334 (let ((target-generic (string-append (assoc-ref %outputs "out")
5335 "/share/texmf-dist/tex/generic/pgf"))
5336 (target-latex (string-append (assoc-ref %outputs "out")
5337 "/share/texmf-dist/tex/latex/pgf")))
5338 (mkdir-p target-generic)
5339 (mkdir-p target-latex)
5340 (copy-recursively (assoc-ref %build-inputs "texlive-latex-pgf-generic") target-generic)
5341 (copy-recursively (assoc-ref %build-inputs "source") target-latex)
5342 #t))))
5343 (home-page "https://www.ctan.org/pkg/tikz")
5344 (synopsis "Create PostScript and PDF graphics in TeX")
5345 (description
5346 "PGF is a macro package for creating graphics. It is platform- and
5347 format-independent and works together with the most important TeX backend
5348 drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer
5349 called TikZ.
5350
5351 Its usage is similar to pstricks and the standard picture environment. PGF
5352 works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can
5353 produce either PostScript or PDF output.")
5354 (license license:lppl1.3c+)))
5355
5356 (define-public texlive-latex-koma-script
5357 (package
5358 (name "texlive-latex-koma-script")
5359 (version (number->string %texlive-revision))
5360 (source (origin
5361 (method svn-fetch)
5362 (uri (svn-reference
5363 (url (string-append "svn://www.tug.org/texlive/tags/"
5364 %texlive-tag "/Master/texmf-dist/"
5365 "/tex/latex/koma-script"))
5366 (revision %texlive-revision)))
5367 (file-name (string-append name "-" version "-checkout"))
5368 (sha256
5369 (base32
5370 "0nqwf0sr4mf3v9gqa6apv6ml2xhcdwax0vgyf12a672g7rpdyvgm"))))
5371 (build-system trivial-build-system)
5372 (arguments
5373 `(#:modules ((guix build utils)
5374 (ice-9 match))
5375 #:builder
5376 (begin
5377 (use-modules (guix build utils)
5378 (ice-9 match))
5379 (let ((root (string-append (assoc-ref %outputs "out")
5380 "/share/texmf-dist/"))
5381 (pkgs '(("source" . "tex/latex/koma-script"))))
5382 (for-each (match-lambda
5383 ((pkg . dir)
5384 (let ((target (string-append root dir)))
5385 (mkdir-p target)
5386 (copy-recursively (assoc-ref %build-inputs pkg)
5387 target))))
5388 pkgs)
5389 #t))))
5390 (home-page "https://www.ctan.org/pkg/koma-script")
5391 (synopsis "Bundle of versatile classes and packages")
5392 (description
5393 "The KOMA-Script bundle provides replacements for the article, report, and
5394 book classes with emphasis on typography and versatility. There is also a
5395 letter class.
5396
5397 The bundle also offers:
5398
5399 @itemize
5400 @item a package for calculating type areas in the way laid down by the
5401 typographer Jan Tschichold,
5402 @item packages for easily changing and defining page styles,
5403 @item a package scrdate for getting not only the current date but also the name
5404 of the day, and
5405 @item a package scrtime for getting the current time.
5406 @end itemize
5407
5408 All these packages may be used not only with KOMA-Script classes but also with
5409 the standard classes.
5410
5411 Since every package has its own version number, the version number quoted only
5412 refers to the version of scrbook, scrreprt, scrartcl, scrlttr2 and
5413 typearea (which are the main parts of the bundle).")
5414 (license license:lppl1.3+)))
5415
5416 (define-public texlive-generic-listofitems
5417 (package
5418 (name "texlive-generic-listofitems")
5419 (version (number->string %texlive-revision))
5420 (source (origin
5421 (method svn-fetch)
5422 (uri (svn-reference
5423 (url (string-append "svn://www.tug.org/texlive/tags/"
5424 %texlive-tag "/Master/texmf-dist/"
5425 "/tex/generic/listofitems"))
5426 (revision %texlive-revision)))
5427 (file-name (string-append name "-" version "-checkout"))
5428 (sha256
5429 (base32
5430 "0hs28fc0v2l92ad9las9b8xcckyrdrwmyhcx1yzmbr6s7s6nvsx8"))))
5431 (build-system trivial-build-system)
5432 (arguments
5433 `(#:modules ((guix build utils))
5434 #:builder
5435 (begin
5436 (use-modules (guix build utils))
5437 (let ((target (string-append (assoc-ref %outputs "out")
5438 "/share/texmf-dist/tex/generic/listofitems")))
5439 (mkdir-p target)
5440 (copy-recursively (assoc-ref %build-inputs "source") target)
5441 #t))))
5442 (home-page "https://www.ctan.org/pkg/listofitems")
5443 (synopsis "Grab items in lists using user-specified seperation character")
5444 (description
5445 "This package allows one to capture all the items of a list, for which
5446 the parsing character has been selected by the user, and to access any of
5447 these items with a simple syntax.")
5448 (license license:lppl1.3c+)))
5449
5450 (define-public texlive-latex-readarray
5451 (package
5452 (name "texlive-latex-readarray")
5453 (version (number->string %texlive-revision))
5454 (source (origin
5455 (method svn-fetch)
5456 (uri (svn-reference
5457 (url (string-append "svn://www.tug.org/texlive/tags/"
5458 %texlive-tag "/Master/texmf-dist/"
5459 "/tex/latex/readarray"))
5460 (revision %texlive-revision)))
5461 (file-name (string-append name "-" version "-checkout"))
5462 (sha256
5463 (base32
5464 "0c53k180ivn1n7fz3ngvd2w1i5dw3kxml0n64vhki88xsylz7lxp"))))
5465 (build-system trivial-build-system)
5466 (arguments
5467 `(#:modules ((guix build utils))
5468 #:builder
5469 (begin
5470 (use-modules (guix build utils))
5471 (let ((target (string-append (assoc-ref %outputs "out")
5472 "/share/texmf-dist/tex/latex/readarray")))
5473 (mkdir-p target)
5474 (copy-recursively (assoc-ref %build-inputs "source") target)
5475 #t))))
5476 (propagated-inputs
5477 `(("texlive-generic-listofitems" ,texlive-generic-listofitems)))
5478 (home-page "https://www.ctan.org/pkg/readarray")
5479 (synopsis "Read, store and recall array-formatted data")
5480 (description
5481 "This package allows the user to input formatted data into elements of a
5482 2-D or 3-D array and to recall that data at will by individual cell number.
5483 The data can be but need not be numerical in nature. It can be, for example,
5484 formatted text.")
5485 (license license:lppl1.3)))
5486
5487 (define-public texlive-latex-verbatimbox
5488 (package
5489 (name "texlive-latex-verbatimbox")
5490 (version (number->string %texlive-revision))
5491 (source (origin
5492 (method svn-fetch)
5493 (uri (svn-reference
5494 (url (string-append "svn://www.tug.org/texlive/tags/"
5495 %texlive-tag "/Master/texmf-dist/"
5496 "/tex/latex/verbatimbox"))
5497 (revision %texlive-revision)))
5498 (file-name (string-append name "-" version "-checkout"))
5499 (sha256
5500 (base32
5501 "0qh1cgvfs463zsi2pjg490gj0mkjfdpfc381j10cbb5la304psna"))))
5502 (build-system trivial-build-system)
5503 (arguments
5504 `(#:modules ((guix build utils))
5505 #:builder
5506 (begin
5507 (use-modules (guix build utils))
5508 (let ((target (string-append (assoc-ref %outputs "out")
5509 "/share/texmf-dist/tex/latex/verbatimbox")))
5510 (mkdir-p target)
5511 (copy-recursively (assoc-ref %build-inputs "source") target)
5512 #t))))
5513 (propagated-inputs
5514 `(("texlive-latex-readarray" ,texlive-latex-readarray)))
5515 (home-page "https://www.ctan.org/pkg/verbatimbox")
5516 (synopsis "Deposit verbatim text in a box")
5517 (description
5518 "The package provides a @code{verbbox} environment to place its contents
5519 into a globally available box, or into a box specified by the user. The
5520 global box may then be used in a variety of situations (for example, providing
5521 a replica of the @code{boxedverbatim} environment itself). A valuable use is
5522 in places where the standard @code{verbatim} environment (which is based on a
5523 @code{trivlist}) may not appear.")
5524 (license license:lppl1.3+)))
5525
5526 (define-public texlive-latex-examplep
5527 (package
5528 (name "texlive-latex-examplep")
5529 (version (number->string %texlive-revision))
5530 (source (origin
5531 (method svn-fetch)
5532 (uri (svn-reference
5533 (url (string-append "svn://www.tug.org/texlive/tags/"
5534 %texlive-tag "/Master/texmf-dist/"
5535 "/tex/latex/examplep"))
5536 (revision %texlive-revision)))
5537 (file-name (string-append name "-" version "-checkout"))
5538 (sha256
5539 (base32
5540 "0fsvvmz68ij0zwfzrny6x13d92grxr4ap59lxgah4smbkccd6s27"))))
5541 (build-system trivial-build-system)
5542 (arguments
5543 `(#:modules ((guix build utils))
5544 #:builder
5545 (begin
5546 (use-modules (guix build utils))
5547 (let ((target (string-append (assoc-ref %outputs "out")
5548 "/share/texmf-dist/tex/latex/examplep")))
5549 (mkdir-p target)
5550 (copy-recursively (assoc-ref %build-inputs "source") target)
5551 #t))))
5552 (home-page "https://www.ctan.org/pkg/examplep")
5553 (synopsis "Verbatim phrases and listings in LaTeX")
5554 (description
5555 "Examplep provides sophisticated features for typesetting verbatim source
5556 code listings, including the display of the source code and its compiled LaTeX
5557 or METAPOST output side-by-side, with automatic width detection and enabled
5558 page breaks (in the source), without the need for specifying the source twice.
5559 Special care is taken that section, page and footnote numbers do not interfere
5560 with the main document. For typesetting short verbatim phrases, a replacement
5561 for the @code{\\verb} command is also provided in the package, which can be
5562 used inside tables and moving arguments such as footnotes and section
5563 titles.")
5564 ;; No version of the GPL is specified.
5565 (license license:gpl3+)))
5566
5567 (define-public texlive-generic-xypic
5568 (package
5569 (name "texlive-generic-xypic")
5570 (version (number->string %texlive-revision))
5571 (source
5572 (origin
5573 (method svn-fetch)
5574 (uri (svn-reference
5575 (url (string-append "svn://www.tug.org/texlive/tags/"
5576 %texlive-tag "/Master/texmf-dist/"
5577 "/tex/generic/xypic"))
5578 (revision %texlive-revision)))
5579 (file-name (string-append name "-" version "-checkout"))
5580 (sha256
5581 (base32
5582 "1g5cyxwdfznq4lk9zl6fkjkapmhmwd2cm4m5aibxj20qgwnaggfz"))))
5583 (build-system trivial-build-system)
5584 (arguments
5585 `(#:modules ((guix build utils))
5586 #:builder
5587 (begin
5588 (use-modules (guix build utils))
5589 (let ((target (string-append (assoc-ref %outputs "out")
5590 "/share/texmf-dist/tex/generic/xypic")))
5591 (mkdir-p target)
5592 (copy-recursively (assoc-ref %build-inputs "source") target)
5593 #t))))
5594 (home-page "https://www.ctan.org/pkg/xypic")
5595 (synopsis "Flexible diagramming macros for TeX")
5596 (description
5597 "A package for typesetting a variety of graphs and diagrams with TeX.
5598 Xy-pic works with most formats (including LaTeX, AMS-LaTeX, AMS-TeX, and plain
5599 TeX).")
5600 (license license:gpl3+)))
5601
5602 (define-public texlive-fonts-xypic
5603 (package
5604 (name "texlive-fonts-xypic")
5605 (version (number->string %texlive-revision))
5606 (source (origin
5607 (method svn-fetch)
5608 (uri (svn-reference
5609 (url (string-append "svn://www.tug.org/texlive/tags/"
5610 %texlive-tag "/Master/texmf-dist/"
5611 "/fonts/source/public/xypic"))
5612 (revision %texlive-revision)))
5613 (file-name (string-append name "-" version "-checkout"))
5614 (sha256
5615 (base32
5616 "0p20v1257kwsqnrk98cdhhiz2viv8l3ly4xay4by0an3j37m9xs3"))))
5617 (build-system trivial-build-system)
5618 (arguments
5619 `(#:modules ((guix build utils)
5620 (ice-9 match))
5621 #:builder
5622 (begin
5623 (use-modules (guix build utils)
5624 (ice-9 match))
5625 (let ((root (string-append (assoc-ref %outputs "out")
5626 "/share/texmf-dist/"))
5627 (pkgs '(("source" . "fonts/source/public/xypic")
5628 ("xypic-afm" . "fonts/afm/public/xypic")
5629 ("xypic-type1" . "fonts/type1/public/xypic")
5630 ("xypic-enc" . "fonts/enc/dvips/xypic"))))
5631 (for-each (match-lambda
5632 ((pkg . dir)
5633 (let ((target (string-append root dir)))
5634 (mkdir-p target)
5635 (copy-recursively (assoc-ref %build-inputs pkg)
5636 target))))
5637 pkgs)
5638 #t))))
5639 (native-inputs
5640 `(("xypic-afm"
5641 ,(origin
5642 (method svn-fetch)
5643 (uri (svn-reference
5644 (url (string-append "svn://www.tug.org/texlive/tags/"
5645 %texlive-tag "/Master/texmf-dist/"
5646 "/fonts/afm/public/xypic"))
5647 (revision %texlive-revision)))
5648 (file-name (string-append name "-afm-" version "-checkout"))
5649 (sha256
5650 (base32
5651 "149xdijxp8lw3s0qv2aqxxxyyn748z57dpr596rjvkqdffpnsddh"))))
5652 ("xypic-type1"
5653 ,(origin
5654 (method svn-fetch)
5655 (uri (svn-reference
5656 (url (string-append "svn://www.tug.org/texlive/tags/"
5657 %texlive-tag "/Master/texmf-dist/"
5658 "/fonts/type1/public/xypic"))
5659 (revision %texlive-revision)))
5660 (file-name (string-append name "-type1-" version "-checkout"))
5661 (sha256
5662 (base32
5663 "1bln89wib7g3hcv2jny3qi6jb73k9d2vbgx3wnnjwp3ryg0846if"))))
5664 ("xypic-enc"
5665 ,(origin
5666 (method svn-fetch)
5667 (uri (svn-reference
5668 (url (string-append "svn://www.tug.org/texlive/tags/"
5669 %texlive-tag "/Master/texmf-dist/"
5670 "/fonts/enc/dvips/xypic"))
5671 (revision %texlive-revision)))
5672 (file-name (string-append name "-enc-" version "-checkout"))
5673 (sha256
5674 (base32
5675 "0yi8vms3203l3p5slnhrrlzzp0f0jw77fkcvcaicrz2vmw9z99x7"))))))
5676 (home-page "https://www.ctan.org/pkg/xypic")
5677 (synopsis "Fonts for XY-pic")
5678 (description "This package provides the XY-pic fonts.")
5679 (license license:gpl3+)))
5680
5681 (define-public texlive-bibtex
5682 (package
5683 (name "texlive-bibtex")
5684 (version (number->string %texlive-revision))
5685 (source
5686 (origin
5687 (method svn-fetch)
5688 (uri (svn-reference
5689 (url (string-append "svn://www.tug.org/texlive/tags/"
5690 %texlive-tag "/Master/texmf-dist/"
5691 "/bibtex"))
5692 (revision %texlive-revision)))
5693 (file-name (string-append name "-" version "-checkout"))
5694 (sha256
5695 (base32
5696 "0hnbs0s1znbn32hfcsyijl39z81sdb00jf092a4blqz421qs2mbv"))))
5697 (build-system trivial-build-system)
5698 (arguments
5699 `(#:modules ((guix build utils))
5700 #:builder
5701 (begin
5702 (use-modules (guix build utils))
5703 (let ((target (string-append (assoc-ref %outputs "out")
5704 "/share/texmf-dist/bibtex")))
5705 (mkdir-p target)
5706 (copy-recursively (assoc-ref %build-inputs "source") target)
5707 #t))))
5708 (home-page "https://www.ctan.org/pkg/bibtex")
5709 (synopsis "Process bibliographies for LaTeX")
5710 (description
5711 "BibTeX allows the user to store his citation data in generic form, while
5712 printing citations in a document in the form specified by a BibTeX style, to
5713 be specified in the document itself (one often needs a LaTeX citation-style
5714 package, such as @command{natbib} as well).")
5715 (license license:knuth)))
5716
5717 (define-public texlive-fonts-charter
5718 (package
5719 (name "texlive-fonts-charter")
5720 (version (number->string %texlive-revision))
5721 (source (origin
5722 (method svn-fetch)
5723 (uri (svn-reference
5724 (url (string-append "svn://www.tug.org/texlive/tags/"
5725 %texlive-tag "/Master/texmf-dist/"
5726 "/fonts/type1/bitstrea/charter"))
5727 (revision %texlive-revision)))
5728 (file-name (string-append name "-" version "-checkout"))
5729 (sha256
5730 (base32
5731 "0yvib45xxff3jm5270zij4q888pivbc18cqs7lz4pqfhn1am4wnv"))))
5732 (build-system trivial-build-system)
5733 (arguments
5734 `(#:modules ((guix build utils)
5735 (ice-9 match))
5736 #:builder
5737 (begin
5738 (use-modules (guix build utils)
5739 (ice-9 match))
5740 (let ((root (string-append (assoc-ref %outputs "out")
5741 "/share/texmf-dist/"))
5742 (pkgs '(("source" . "fonts/type1/bitstrea/charter")
5743 ("charter-afm" . "fonts/afm/bitstrea/charter")
5744 ("charter-tfm" . "fonts/tfm/bitstrea/charter"))))
5745 (for-each (match-lambda
5746 ((pkg . dir)
5747 (let ((target (string-append root dir)))
5748 (mkdir-p target)
5749 (copy-recursively (assoc-ref %build-inputs pkg)
5750 target))))
5751 pkgs)
5752 #t))))
5753 (native-inputs
5754 `(("charter-afm"
5755 ,(origin
5756 (method svn-fetch)
5757 (uri (svn-reference
5758 (url (string-append "svn://www.tug.org/texlive/tags/"
5759 %texlive-tag "/Master/texmf-dist/"
5760 "/fonts/afm/bitstrea/charter"))
5761 (revision %texlive-revision)))
5762 (file-name (string-append name "-afm-" version "-checkout"))
5763 (sha256
5764 (base32
5765 "02nbkqrlr3vypnzslmr7dxg1353mmc0rl4ynx0s6qbvf313fq76a"))))
5766 ("charter-tfm"
5767 ,(origin
5768 (method svn-fetch)
5769 (uri (svn-reference
5770 (url (string-append "svn://www.tug.org/texlive/tags/"
5771 %texlive-tag "/Master/texmf-dist/"
5772 "/fonts/tfm/bitstrea/charter"))
5773 (revision %texlive-revision)))
5774 (file-name (string-append name "-tfm-" version "-checkout"))
5775 (sha256
5776 (base32
5777 "0j7ci9vprivbhac70aq0z7m23hqcpx1g0i3wp1k0h8ilhimj80xk"))))))
5778 (home-page "https://www.ctan.org/pkg/charter")
5779 (synopsis "Charter fonts for TeX")
5780 (description "A commercial text font donated for the common good. Support
5781 for use with LaTeX is available in @code{freenfss}, part of
5782 @command{psnfss}. ")
5783 (license (license:non-copyleft (string-append "http://mirrors.ctan.org/"
5784 "fonts/charter/readme.charter")))))
5785
5786 (define-public texlive-context-base
5787 (package
5788 (name "texlive-context-base")
5789 (version (number->string %texlive-revision))
5790 (source (origin
5791 (method svn-fetch)
5792 (uri (svn-reference
5793 (url (string-append "svn://www.tug.org/texlive/tags/"
5794 %texlive-tag "/Master/texmf-dist/"
5795 "/tex/context/base"))
5796 (revision %texlive-revision)))
5797 (file-name (string-append name "-" version "-checkout"))
5798 (sha256
5799 (base32
5800 "0rlx4qqijms1n64gjx475kvip8l322fh7v17zkmwp1l1g0w3vlyz"))))
5801 (build-system trivial-build-system)
5802 (arguments
5803 `(#:modules ((guix build utils))
5804 #:builder
5805 (begin
5806 (use-modules (guix build utils))
5807 (let ((target (string-append (assoc-ref %outputs "out")
5808 "/share/texmf-dist/tex/context/case")))
5809 (mkdir-p target)
5810 (copy-recursively (assoc-ref %build-inputs "source") target)
5811 #t))))
5812 (home-page "https://www.ctan.org/pkg/context")
5813 (synopsis "Full featured, parameter driven macro package for TeX")
5814 (description "A full featured, parameter driven macro package, which fully
5815 supports advanced interactive documents. See the ConTeXt garden for a wealth
5816 of support information.")
5817 (license license:gpl2+)))
5818
5819 (define-public texlive-latex-beamer
5820 (package
5821 (name "texlive-latex-beamer")
5822 (version (number->string %texlive-revision))
5823 (source (origin
5824 (method svn-fetch)
5825 (uri (svn-reference
5826 (url (string-append "svn://www.tug.org/texlive/tags/"
5827 %texlive-tag "/Master/texmf-dist/"
5828 "/tex/latex/beamer"))
5829 (revision %texlive-revision)))
5830 (file-name (string-append name "-" version "-checkout"))
5831 (sha256
5832 (base32
5833 "09y3qwbj0nckshvg9afgwcv9v3zdif1d7bnpzrggsa1fbr80mgk2"))))
5834 (build-system trivial-build-system)
5835 (outputs '("out" "doc"))
5836 (arguments
5837 `(#:modules ((guix build utils))
5838 #:builder
5839 (begin
5840 (use-modules (guix build utils))
5841 (let ((target (string-append (assoc-ref %outputs "out")
5842 "/share/texmf-dist/tex/latex/beamer"))
5843 (docs (string-append (assoc-ref %outputs "doc")
5844 "/share/texmf-dist/doc/latex/beamer/")))
5845 (mkdir-p target)
5846 (copy-recursively (assoc-ref %build-inputs "source") target)
5847
5848 (mkdir-p docs)
5849 (copy-recursively (assoc-ref %build-inputs "docs") docs)
5850 #t))))
5851 (propagated-inputs
5852 `(("texlive-latex-hyperref" ,texlive-latex-hyperref)
5853 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
5854 ("texlive-latex-etoolbox" ,texlive-latex-etoolbox)
5855 ("texlive-latex-pgf" ,texlive-latex-pgf)))
5856 (native-inputs
5857 `(("docs"
5858 ,(origin
5859 (method svn-fetch)
5860 (uri (svn-reference
5861 (url (string-append "svn://www.tug.org/texlive/tags/"
5862 %texlive-tag "/Master/texmf-dist/"
5863 "/doc/latex/beamer"))
5864 (revision %texlive-revision)))
5865 (file-name (string-append name "-" version "-checkout"))
5866 (sha256
5867 (base32
5868 "102b18b9nw9dicqqgjwx0srh1mav8vh9wdvwayn741niza9hac23"))))))
5869 (home-page "https://www.ctan.org/pkg/beamer")
5870 (synopsis "LaTeX class for producing presentations and slides")
5871 (description "The beamer LaTeX class can be used for producing slides.
5872 The class works in both PostScript and direct PDF output modes, using the
5873 @code{pgf} graphics system for visual effects. Content is created in the
5874 @code{frame} environment, and each frame can be made up of a number of slides
5875 using a simple notation for specifying material to appear on each slide within
5876 a frame. Short versions of title, authors, institute can also be specified as
5877 optional parameters. Whole frame graphics are supported by plain frames. The
5878 class supports @code{figure} and @code{table} environments, transparency
5879 effects, varying slide transitions and animations.")
5880 ;; Code is dual licensed under GPLv2+ or LPPL1.3c+; documentation is
5881 ;; dual-licensed under either FDLv1.3+ or LPPL1.3c+.
5882 (license (list license:lppl1.3c+ license:gpl2+ license:fdl1.3+))))