Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / tex.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
4 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
6 ;;; Copyright © 2016, 2018 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 Ricardo Wurmus <rekado@elephly.net>
10 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
11 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
12 ;;; Copyright © 2017 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 gtk)
53 #:use-module (gnu packages icu4c)
54 #:use-module (gnu packages image)
55 #:use-module (gnu packages libreoffice)
56 #:use-module (gnu packages lua)
57 #:use-module (gnu packages multiprecision)
58 #:use-module (gnu packages pdf)
59 #:use-module (gnu packages perl)
60 #:use-module (gnu packages perl-check)
61 #:use-module (gnu packages pkg-config)
62 #:use-module (gnu packages python)
63 #:use-module (gnu packages qt)
64 #:use-module (gnu packages ruby)
65 #:use-module (gnu packages shells)
66 #:use-module (gnu packages base)
67 #:use-module (gnu packages web)
68 #:use-module (gnu packages xml)
69 #:use-module (gnu packages xorg)
70 #:use-module (gnu packages xdisorg)
71 #:autoload (gnu packages texinfo) (texinfo)
72 #:use-module (ice-9 ftw)
73 #:use-module (ice-9 match)
74 #:use-module ((srfi srfi-1) #:hide (zip)))
75
76 (define texlive-extra-src
77 (origin
78 (method url-fetch)
79 (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-extra.tar.xz")
80 (sha256 (base32
81 "0a83kymxc8zmlxjb0y1gf6mx7qnf0hxffwkivwh5yh138y2rfhsv"))))
82
83 (define texlive-texmf-src
84 (origin
85 (method url-fetch)
86 (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-texmf.tar.xz")
87 (sha256 (base32
88 "1b8zigzg8raxkhhzphcmynf84rbdbj2ym2qkz24v8n0qx82zmqms"))))
89
90 (define-public texlive-bin
91 (package
92 (name "texlive-bin")
93 (version "20180414")
94 (source
95 (origin
96 (method url-fetch)
97 (uri (string-append "ftp://tug.org/historic/systems/texlive/2018/"
98 "texlive-" version "-source.tar.xz"))
99 (sha256
100 (base32
101 "0khyi6h015r2zfqgg0a44a2j7vmr1cy42knw7jbss237yvakc07y"))
102 (patches
103 (list
104 ;; This is required for compatibility with Poppler 0.64.0 and to fix a
105 ;; segmentation fault in dvipdfm-x from XeTeX.
106 (origin
107 (method url-fetch)
108 (uri (string-append "http://www.linuxfromscratch.org/patches/blfs/"
109 "svn/texlive-" version "-source-upstream_fixes-1.patch"))
110 (file-name "texlive-poppler-compat.patch")
111 (sha256
112 (base32
113 "0f8vhyj167y4xj0jx47vkybrcacfpxw0wdn1b777yq3xmhlahhlg")))))))
114 (build-system gnu-build-system)
115 (inputs
116 `(("texlive-extra-src" ,texlive-extra-src)
117 ("cairo" ,cairo)
118 ("fontconfig" ,fontconfig)
119 ("fontforge" ,fontforge)
120 ("freetype" ,freetype)
121 ("gd" ,gd)
122 ("gmp" ,gmp)
123 ("ghostscript" ,ghostscript)
124 ("graphite2" ,graphite2)
125 ("harfbuzz" ,harfbuzz)
126 ("icu4c" ,icu4c)
127 ("libpaper" ,libpaper)
128 ("libpng" ,libpng)
129 ("libxaw" ,libxaw)
130 ("libxt" ,libxt)
131 ("mpfr" ,mpfr)
132 ("perl" ,perl)
133 ("pixman" ,pixman)
134 ("poppler" ,poppler)
135 ("potrace" ,potrace)
136 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
137 ("ruby" ,ruby)
138 ("tcsh" ,tcsh)
139 ("teckit" ,teckit)
140 ("zlib" ,zlib)
141 ("zziplib" ,zziplib)))
142 (native-inputs
143 `(("pkg-config" ,pkg-config)))
144 (arguments
145 `(#:out-of-source? #t
146 #:configure-flags
147 `("--disable-native-texlive-build"
148 ;; XXX: This is needed because recent Poppler requires C++11 or later.
149 ;; Remove after switch to GCC >= 6.
150 "CXXFLAGS=-std=gnu++11"
151 "--with-system-cairo"
152 "--with-system-freetype2"
153 "--with-system-gd"
154 "--with-system-gmp"
155 "--with-system-graphite2"
156 "--with-system-harfbuzz"
157 "--with-system-icu"
158 "--with-system-libgs"
159 "--with-system-libpaper"
160 "--with-system-libpng"
161 "--with-system-mpfr"
162 "--with-system-pixman"
163 "--with-system-poppler"
164 "--with-system-potrace"
165 "--with-system-teckit"
166 "--with-system-xpdf"
167 "--with-system-zlib"
168 "--with-system-zziplib")
169
170 ;; Disable tests on mips64/aarch64 to cope with a failure of luajiterr.test.
171 ;; XXX FIXME fix luajit properly on mips64 and aarch64.
172 #:tests? ,(let ((s (or (%current-target-system)
173 (%current-system))))
174 (not (or (string-prefix? "aarch64" s)
175 (string-prefix? "mips64" s))))
176 #:phases
177 (modify-phases %standard-phases
178 (add-after 'unpack 'configure-ghostscript-executable
179 ;; ps2eps.pl uses the "gswin32c" ghostscript executable on Windows,
180 ;; and the "gs" ghostscript executable on Unix. It detects Unix by
181 ;; checking for the existence of the /usr/bin directory. Since
182 ;; GuixSD does not have /usr/bin, it is also detected as Windows.
183 (lambda* (#:key inputs #:allow-other-keys)
184 (substitute* "utils/ps2eps/ps2eps-src/bin/ps2eps.pl"
185 (("gswin32c") "gs"))
186 (substitute* "texk/texlive/linked_scripts/epstopdf/epstopdf.pl"
187 (("\"gs\"")
188 (string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\"")))
189 #t))
190 (add-after 'unpack 'use-code-for-new-poppler
191 (lambda _
192 (copy-file "texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc"
193 "texk/web2c/pdftexdir/pdftoepdf.cc")
194 (copy-file "texk/web2c/pdftexdir/pdftosrc-newpoppler.cc"
195 "texk/web2c/pdftexdir/pdftosrc.cc")
196 #t))
197 (add-after 'install 'postint
198 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
199 (let* ((out (assoc-ref outputs "out"))
200 (share (string-append out "/share"))
201 (texlive-extra (assoc-ref inputs "texlive-extra-src"))
202 (unpack (assoc-ref %standard-phases 'unpack))
203 (patch-source-shebangs
204 (assoc-ref %standard-phases 'patch-source-shebangs)))
205 ;; Create symbolic links for the latex variants and their
206 ;; man pages.
207 (with-directory-excursion (string-append out "/bin/")
208 (for-each symlink
209 '("pdftex" "pdftex" "xetex" "luatex")
210 '("latex" "pdflatex" "xelatex" "lualatex")))
211 (with-directory-excursion (string-append share "/man/man1/")
212 (symlink "luatex.1" "lualatex.1"))
213 ;; Unpack texlive-extra and install tlpkg.
214 (mkdir "texlive-extra")
215 (with-directory-excursion "texlive-extra"
216 (apply unpack (list #:source texlive-extra))
217 (apply patch-source-shebangs (list #:source texlive-extra))
218 (invoke "mv" "tlpkg" share))
219 ;; texlua shebangs are not patched by the patch-source-shebangs
220 ;; phase because the texlua executable does not exist at that
221 ;; time.
222 (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))
223 (with-directory-excursion out
224 (patch-source-shebangs))))))))
225 (synopsis "TeX Live, a package of the TeX typesetting system")
226 (description
227 "TeX Live provides a comprehensive TeX document production system.
228 It includes all the major TeX-related programs, macro packages, and fonts
229 that are free software, including support for many languages around the
230 world.
231
232 This package contains the binaries.")
233 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
234 (home-page "https://www.tug.org/texlive/")))
235
236 (define-public texlive-dvips
237 (package
238 (name "texlive-dvips")
239 (version (number->string %texlive-revision))
240 (source (origin
241 (method svn-fetch)
242 (uri (svn-reference
243 (url (string-append "svn://www.tug.org/texlive/tags/"
244 %texlive-tag "/Master/texmf-dist/"
245 "/dvips"))
246 (revision %texlive-revision)))
247 (file-name (string-append name "-" version "-checkout"))
248 (sha256
249 (base32
250 "0fcy2hpapbj01ncpjj3v39yhr0jjxb6rm13qaxjjw66s3vydxls1"))))
251 (build-system trivial-build-system)
252 (arguments
253 `(#:modules ((guix build utils))
254 #:builder
255 (begin
256 (use-modules (guix build utils))
257 (let* ((root (string-append (assoc-ref %outputs "out")
258 "/share/texmf-dist"))
259 (dvips (string-append root "/dvips"))
260 (maps (string-append root "/fonts/map/dvips/tetex"))
261 (encs (string-append root "/fonts/enc/dvips/base")))
262 (mkdir-p dvips)
263 (copy-recursively (assoc-ref %build-inputs "source") dvips)
264 (mkdir-p maps)
265 (copy-recursively (assoc-ref %build-inputs "dvips-font-maps") maps)
266 (mkdir-p encs)
267 (copy-recursively (assoc-ref %build-inputs "dvips-base-enc") encs)
268 #t))))
269 (native-inputs
270 `(("dvips-font-maps"
271 ,(origin
272 (method svn-fetch)
273 (uri (svn-reference
274 (url (string-append "svn://www.tug.org/texlive/tags/"
275 %texlive-tag "/Master/texmf-dist/"
276 "/fonts/map/dvips/tetex"))
277 (revision %texlive-revision)))
278 (file-name (string-append "dvips-font-maps-" version "-checkout"))
279 (sha256
280 (base32
281 "100208pg7q6lj7swiq9p9287nn6b64bl62bnlaxpjni9y2kdrqy5"))))
282 ("dvips-base-enc"
283 ,(origin
284 (method svn-fetch)
285 (uri (svn-reference
286 (url (string-append "svn://www.tug.org/texlive/tags/"
287 %texlive-tag "/Master/texmf-dist/"
288 "/fonts/enc/dvips/base"))
289 (revision %texlive-revision)))
290 (file-name (string-append "dvips-base-enc-" version "-checkout"))
291 (sha256
292 (base32
293 "1xnf6ms0h87r55kxik4vicwr1907scj789lhqflqns8svvsli5iy"))))))
294 (home-page "https://www.ctan.org/pkg/dvips")
295 (synopsis "DVI to PostScript drivers")
296 (description "This package provides files needed for converting DVI files
297 to PostScript.")
298 ;; Various free software licenses apply to individual files.
299 (license (list license:lppl1.3c+
300 license:expat
301 license:lgpl3+))))
302
303 (define-public texlive-generic-unicode-data
304 (package
305 (name "texlive-generic-unicode-data")
306 (version (number->string %texlive-revision))
307 (source (origin
308 (method svn-fetch)
309 (uri (svn-reference
310 (url (string-append "svn://www.tug.org/texlive/tags/"
311 %texlive-tag "/Master/texmf-dist/"
312 "/tex/generic/unicode-data"))
313 (revision %texlive-revision)))
314 (file-name (string-append name "-" version "-checkout"))
315 (sha256
316 (base32
317 "0ivrhp6jz31pl4z841g4ws41lmvdiwz4sslmhf02inlib79gz6r2"))))
318 (build-system trivial-build-system)
319 (arguments
320 `(#:modules ((guix build utils))
321 #:builder
322 (begin
323 (use-modules (guix build utils))
324 (let ((target (string-append (assoc-ref %outputs "out")
325 "/share/texmf-dist/tex/generic/unicode-data")))
326 (mkdir-p target)
327 (copy-recursively (assoc-ref %build-inputs "source") target)
328 #t))))
329 (home-page "https://www.ctan.org/pkg/unicode-data")
330 (synopsis "Unicode data and loaders for TeX")
331 (description "This bundle provides generic access to Unicode Consortium
332 data for TeX use. It contains a set of text files provided by the Unicode
333 Consortium which are currently all from Unicode 8.0.0, with the exception of
334 @code{MathClass.txt} which is not currently part of the Unicode Character
335 Database. Accompanying these source data are generic TeX loader files
336 allowing this data to be used as part of TeX runs, in particular in building
337 format files. Currently there are two loader files: one for general character
338 set up and one for initializing XeTeX character classes as has been carried
339 out to date by @code{unicode-letters.tex}. ")
340 (license license:lppl1.3c+)))
341
342 (define-public texlive-generic-dehyph-exptl
343 (package
344 (name "texlive-generic-dehyph-exptl")
345 (version (number->string %texlive-revision))
346 (source (origin
347 (method svn-fetch)
348 (uri (svn-reference
349 (url (string-append "svn://www.tug.org/texlive/tags/"
350 %texlive-tag "/Master/texmf-dist/"
351 "/tex/generic/dehyph-exptl"))
352 (revision %texlive-revision)))
353 (file-name (string-append name "-" version "-checkout"))
354 (sha256
355 (base32
356 "1l9wgv99qq0ysvlxqpj4g8bl0dywbzra4g8m2kmpg2fb0i0hczap"))))
357 (build-system trivial-build-system)
358 (arguments
359 `(#:modules ((guix build utils))
360 #:builder
361 (begin
362 (use-modules (guix build utils))
363 (let ((target (string-append (assoc-ref %outputs "out")
364 "/share/texmf-dist/tex/generic/dehyph-exptl")))
365 (mkdir-p target)
366 (copy-recursively (assoc-ref %build-inputs "source") target)
367 #t))))
368 (home-page "http://projekte.dante.de/Trennmuster/WebHome")
369 (synopsis "Hyphenation patterns for German")
370 (description "The package provides experimental hyphenation patterns for
371 the German language, covering both traditional and reformed orthography. The
372 patterns can be used with packages Babel and hyphsubst from the Oberdiek
373 bundle.")
374 ;; Hyphenation patterns are under the Expat license; documentation is
375 ;; under LPPL.
376 (license (list license:expat license:lppl))))
377
378 (define-public texlive-generic-tex-ini-files
379 (package
380 (name "texlive-generic-tex-ini-files")
381 (version (number->string %texlive-revision))
382 (source (origin
383 (method svn-fetch)
384 (uri (svn-reference
385 (url (string-append "svn://www.tug.org/texlive/tags/"
386 %texlive-tag "/Master/texmf-dist/"
387 "/tex/generic/tex-ini-files"))
388 (revision %texlive-revision)))
389 (file-name (string-append name "-" version "-checkout"))
390 (sha256
391 (base32
392 "1wh42n1lmzcvi3g6mm31nm3yd5ha5bl260xqc444jg1m9fdp3wz5"))))
393 (build-system trivial-build-system)
394 (arguments
395 `(#:modules ((guix build utils))
396 #:builder
397 (begin
398 (use-modules (guix build utils))
399 (let ((target (string-append (assoc-ref %outputs "out")
400 "/share/texmf-dist/tex/generic/tex-ini-files")))
401 (mkdir-p target)
402 (copy-recursively (assoc-ref %build-inputs "source") target)
403 #t))))
404 (home-page "https://www.ctan.org/pkg/tex-ini-files")
405 (synopsis "Files for creating TeX formats")
406 (description "This bundle provides a collection of model \".ini\" files
407 for creating TeX formats. These files are commonly used to introduced
408 distribution-dependent variations in formats. They are also used to
409 allow existing format source files to be used with newer engines, for example
410 to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.")
411 (license license:public-domain)))
412
413 (define-public texlive-generic-hyph-utf8
414 (package
415 (name "texlive-generic-hyph-utf8")
416 (version (number->string %texlive-revision))
417 (source (origin
418 (method svn-fetch)
419 (uri (svn-reference
420 (url (string-append "svn://www.tug.org/texlive/tags/"
421 %texlive-tag "/Master/texmf-dist/"
422 "/tex/generic/hyph-utf8"))
423 (revision %texlive-revision)))
424 (file-name (string-append name "-" version "-checkout"))
425 (sha256
426 (base32
427 "0ghizcz7ps16dzfqf66wwg5i181assc6qsm0g7g5dbmp909931vi"))))
428 (build-system trivial-build-system)
429 (arguments
430 `(#:modules ((guix build utils))
431 #:builder
432 (begin
433 (use-modules (guix build utils))
434 (let ((target (string-append (assoc-ref %outputs "out")
435 "/share/texmf-dist/tex/generic/hyph-utf8")))
436 (mkdir-p target)
437 (copy-recursively (assoc-ref %build-inputs "source") target)
438 #t))))
439 (home-page "https://ctan.org/pkg/hyph-utf8")
440 (synopsis "Hyphenation patterns expressed in UTF-8")
441 (description "Modern native UTF-8 engines such as XeTeX and LuaTeX need
442 hyphenation patterns in UTF-8 format, whereas older systems require
443 hyphenation patterns in the 8-bit encoding of the font in use (such encodings
444 are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1,
445 etc). The present package offers a collection of conversions of existing
446 patterns to UTF-8 format, together with converters for use with 8-bit fonts in
447 older systems. Since hyphenation patterns for Knuthian-style TeX systems are
448 only read at iniTeX time, it is hoped that the UTF-8 patterns, with their
449 converters, will completely supplant the older patterns.")
450 ;; Individual files each have their own license. Most of these files are
451 ;; independent hyphenation patterns.
452 (license (list license:lppl1.0+
453 license:lppl1.2+
454 license:lppl1.3
455 license:lppl1.3+
456 license:lppl1.3a+
457 license:lgpl2.1
458 license:lgpl2.1+
459 license:lgpl3+
460 license:gpl2+
461 license:gpl3+
462 license:mpl1.1
463 license:asl2.0
464 license:expat
465 license:bsd-3
466 license:cc0
467 license:public-domain
468 license:wtfpl2))))
469
470 (define-public texlive-metafont-base
471 (package
472 (name "texlive-metafont-base")
473 (version (number->string %texlive-revision))
474 (source (origin
475 (method svn-fetch)
476 (uri (svn-reference
477 (url (string-append "svn://www.tug.org/texlive/tags/"
478 %texlive-tag "/Master/texmf-dist/"
479 "/metafont"))
480 (revision %texlive-revision)))
481 (file-name (string-append name "-" version "-checkout"))
482 (sha256
483 (base32
484 "1yl4n8cn5xqk2nc22zgzq6ymd7bhm6xx1mz3azip7i3ki4bhb5q5"))))
485 (build-system gnu-build-system)
486 (arguments
487 `(#:tests? #f ; no test target
488 #:phases
489 (modify-phases %standard-phases
490 (delete 'configure)
491 (replace 'build
492 (lambda* (#:key inputs #:allow-other-keys)
493 (let ((cwd (getcwd)))
494 (setenv "MFINPUTS"
495 (string-append cwd "/base:"
496 cwd "/misc:"
497 cwd "/roex:"
498 cwd "/feynmf:"
499 cwd "/mfpic:"
500 cwd "/config")))
501 (mkdir "build")
502 (with-directory-excursion "build"
503 (invoke "inimf" "mf.mf"))))
504 (replace 'install
505 (lambda* (#:key outputs #:allow-other-keys)
506 (let* ((out (assoc-ref outputs "out"))
507 (base (string-append out "/share/texmf-dist/web2c"))
508 (mf (string-append out "/share/texmf-dist/metafont/base")))
509 (mkdir-p base)
510 (mkdir-p mf)
511 (install-file "build/mf.base" base)
512 (copy-recursively "base" mf)
513 #t))))))
514 (native-inputs
515 `(("texlive-bin" ,texlive-bin)))
516 (home-page "https://www.ctan.org/pkg/metafont")
517 (synopsis "Metafont base files")
518 (description "This package provides the Metafont base files needed to
519 build fonts using the Metafont system.")
520 (license license:knuth)))
521
522 (define-public texlive-fontname
523 (package
524 (name "texlive-fontname")
525 (version (number->string %texlive-revision))
526 (source (origin
527 (method svn-fetch)
528 (uri (svn-reference
529 (url (string-append "svn://www.tug.org/texlive/tags/"
530 %texlive-tag "/Master/texmf-dist/"
531 "/fonts/map/fontname"))
532 (revision %texlive-revision)))
533 (file-name (string-append name "-" version "-checkout"))
534 (sha256
535 (base32
536 "0cssbzcx15221dynp5sii72qh4l18mwkr14n8w1xb19j8pbaqasz"))))
537 (build-system trivial-build-system)
538 (arguments
539 `(#:modules ((guix build utils))
540 #:builder
541 (begin
542 (use-modules (guix build utils))
543 (let ((target (string-append (assoc-ref %outputs "out")
544 "/share/texmf-dist/fonts/map/fontname")))
545 (mkdir-p target)
546 (copy-recursively (assoc-ref %build-inputs "source") target)
547 #t))))
548 (home-page "https://www.ctan.org/pkg/fontname")
549 (synopsis "Scheme for naming fonts in TeX")
550 (description "This is Fontname, a naming scheme for (the base part of)
551 external TeX font filenames. This makes at most eight-character names
552 from (almost) arbitrarily complex font names, thus helping portability of TeX
553 documents.")
554 (license license:public-domain)))
555
556 (define-public texlive-fonts-cm
557 (package
558 (name "texlive-fonts-cm")
559 (version (number->string %texlive-revision))
560 (source (origin
561 (method svn-fetch)
562 (uri (svn-reference
563 (url (string-append "svn://www.tug.org/texlive/tags/"
564 %texlive-tag "/Master/texmf-dist/"
565 "/fonts/source/public/cm"))
566 (revision %texlive-revision)))
567 (file-name (string-append name "-" version "-checkout"))
568 (sha256
569 (base32
570 "045k5b9rdmbxpy1a3006l1x96z1rd18vg3cwrvnld9bqybw5qz44"))))
571 (build-system gnu-build-system)
572 (arguments
573 `(#:modules ((guix build gnu-build-system)
574 (guix build utils)
575 (srfi srfi-1)
576 (srfi srfi-26))
577 #:tests? #f ; no tests
578 #:phases
579 (modify-phases %standard-phases
580 (delete 'configure)
581 (replace 'build
582 (lambda* (#:key inputs #:allow-other-keys)
583 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
584 ;; Tell mf where to find mf.base
585 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
586 ;; Tell mf where to look for source files
587 (setenv "MFINPUTS"
588 (string-append (getcwd) ":"
589 mf "/share/texmf-dist/metafont/base")))
590 (mkdir "build")
591 (for-each (lambda (font)
592 (format #t "building font ~a\n" font)
593 (invoke "mf" "-progname=mf"
594 "-output-directory=build"
595 (string-append "\\"
596 "mode:=ljfour; "
597 "mag:=1; "
598 "batchmode; "
599 "input "
600 (basename font ".mf"))))
601 (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$"))
602 #t))
603 (replace 'install
604 (lambda* (#:key outputs #:allow-other-keys)
605 (let* ((out (assoc-ref outputs "out"))
606 (tfm (string-append
607 out "/share/texmf-dist/fonts/tfm/public/cm"))
608 (mf (string-append
609 out "/share/texmf-dist/fonts/source/public/cm")))
610 (for-each (cut install-file <> tfm)
611 (find-files "build" "\\.*"))
612 (for-each (cut install-file <> mf)
613 (find-files "." "\\.mf"))
614 #t))))))
615 (native-inputs
616 `(("texlive-bin" ,texlive-bin)
617 ("texlive-metafont-base" ,texlive-metafont-base)))
618 (home-page "https://www.ctan.org/pkg/cm")
619 (synopsis "Computer Modern fonts for TeX")
620 (description "This package provides the Computer Modern fonts by Donald
621 Knuth. The Computer Modern font family is a large collection of text,
622 display, and mathematical fonts in a range of styles, based on Monotype Modern
623 8A.")
624 (license license:knuth)))
625
626 (define-public texlive-fonts-knuth-lib
627 (package
628 (name "texlive-fonts-knuth-lib")
629 (version (number->string %texlive-revision))
630 (source (origin
631 (method svn-fetch)
632 (uri (svn-reference
633 (url (string-append "svn://www.tug.org/texlive/tags/"
634 %texlive-tag "/Master/texmf-dist/"
635 "/fonts/source/public/knuth-lib"))
636 (revision %texlive-revision)))
637 (file-name (string-append name "-" version "-checkout"))
638 (sha256
639 (base32
640 "0in9aqyi8jkyf9d16z0li50z5fpwj1iwgwm83gmvwqcf7chfs04y"))))
641 (build-system gnu-build-system)
642 (arguments
643 `(#:modules ((guix build gnu-build-system)
644 (guix build utils)
645 (srfi srfi-26))
646 #:tests? #f ; no tests
647 #:phases
648 (modify-phases %standard-phases
649 (delete 'configure)
650 (replace 'build
651 (lambda* (#:key inputs #:allow-other-keys)
652 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
653 ;; Tell mf where to find mf.base
654 (setenv "MFBASES"
655 (string-append mf "/share/texmf-dist/web2c"))
656 ;; Tell mf where to look for source files
657 (setenv "MFINPUTS"
658 (string-append (getcwd) ":"
659 mf "/share/texmf-dist/metafont/base")))
660 (mkdir "build")
661 (invoke "mf" "-progname=mf"
662 "-output-directory=build"
663 (string-append "\\"
664 "mode:=ljfour; "
665 "mag:=1; "
666 "batchmode; "
667 "input manfnt"))))
668 (replace 'install
669 (lambda* (#:key outputs #:allow-other-keys)
670 (let* ((out (assoc-ref outputs "out"))
671 (tfm (string-append
672 out "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
673 (mf (string-append
674 out "/share/texmf-dist/fonts/source/public/knuth-lib")))
675 (for-each (cut install-file <> tfm)
676 (find-files "build" "\\.*"))
677 (for-each (cut install-file <> mf)
678 (find-files "." "\\.mf"))
679 #t))))))
680 (native-inputs
681 `(("texlive-bin" ,texlive-bin)
682 ("texlive-metafont-base" ,texlive-metafont-base)))
683 (home-page "https://www.ctan.org/pkg/knuth-lib")
684 (synopsis "Small library of METAFONT sources")
685 (description "This is a collection of core TeX and METAFONT macro files
686 from Donald Knuth, including the plain format, plain base, and the MF logo
687 fonts.")
688 (license license:knuth)))
689
690 (define-public texlive-fonts-latex
691 (package
692 (name "texlive-fonts-latex")
693 (version (number->string %texlive-revision))
694 (source (origin
695 (method svn-fetch)
696 (uri (svn-reference
697 (url (string-append "svn://www.tug.org/texlive/tags/"
698 %texlive-tag "/Master/texmf-dist/"
699 "/fonts/source/public/latex-fonts"))
700 (revision %texlive-revision)))
701 (file-name (string-append name "-" version "-checkout"))
702 (sha256
703 (base32
704 "0ypsm4xv9cw0jckk2qc7gi9hcmhf31mrg56pz3llyx3yd9vq2lps"))))
705 (build-system gnu-build-system)
706 (arguments
707 `(#:modules ((guix build gnu-build-system)
708 (guix build utils)
709 (srfi srfi-1)
710 (srfi srfi-26))
711 #:tests? #f ; no tests
712 #:phases
713 (modify-phases %standard-phases
714 (delete 'configure)
715 (replace 'build
716 (lambda* (#:key inputs #:allow-other-keys)
717 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
718 ;; Tell mf where to find mf.base
719 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
720 ;; Tell mf where to look for source files
721 (setenv "MFINPUTS"
722 (string-append (getcwd) ":"
723 mf "/share/texmf-dist/metafont/base:"
724 (assoc-ref inputs "texlive-fonts-cm")
725 "/share/texmf-dist/fonts/source/public/cm")))
726 (mkdir "build")
727 (for-each (lambda (font)
728 (format #t "building font ~a\n" font)
729 (invoke "mf" "-progname=mf"
730 "-output-directory=build"
731 (string-append "\\"
732 "mode:=ljfour; "
733 "mag:=1; "
734 "batchmode; "
735 "input " font)))
736 '("icmcsc10" "icmex10" "icmmi8" "icmsy8" "icmtt8"
737 "ilasy8" "ilcmss8" "ilcmssb8" "ilcmssi8"
738 "lasy5" "lasy6" "lasy7" "lasy8" "lasy9" "lasy10" "lasyb10"
739 "lcircle10" "lcirclew10" "lcmss8" "lcmssb8" "lcmssi8"
740 "line10" "linew10"))
741 #t))
742 (replace 'install
743 (lambda* (#:key outputs #:allow-other-keys)
744 (let* ((out (assoc-ref outputs "out"))
745 (tfm (string-append
746 out "/share/texmf-dist/fonts/tfm/public/latex-fonts"))
747 (mf (string-append
748 out "/share/texmf-dist/fonts/source/public/latex-fonts")))
749 (for-each (cut install-file <> tfm)
750 (find-files "build" "\\.*"))
751 (for-each (cut install-file <> mf)
752 (find-files "." "\\.mf"))
753 #t))))))
754 (native-inputs
755 `(("texlive-bin" ,texlive-bin)
756 ("texlive-metafont-base" ,texlive-metafont-base)
757 ("texlive-fonts-cm" ,texlive-fonts-cm)))
758 (home-page "https://www.ctan.org/pkg/latex-fonts")
759 (synopsis "Collection of fonts used in LaTeX distributions")
760 (description "This is a collection of fonts for use with standard LaTeX
761 packages and classes. It includes invisible fonts (for use with the slides
762 class), line and circle fonts (for use in the picture environment) and LaTeX
763 symbol fonts.")
764 (license license:lppl1.2+)))
765
766 (define-public texlive-fonts-amsfonts
767 (package
768 (name "texlive-fonts-amsfonts")
769 (version (number->string %texlive-revision))
770 (source (origin
771 (method svn-fetch)
772 (uri (svn-reference
773 (url (string-append "svn://www.tug.org/texlive/tags/"
774 %texlive-tag "/Master/texmf-dist/"
775 "/fonts/source/public/amsfonts"))
776 (revision %texlive-revision)))
777 (file-name (string-append name "-" version "-checkout"))
778 (sha256
779 (base32
780 "07h20rvpbdb4k72hzmjkyb29426zr9wxsfp6yd4ajbbpd3vx8grb"))))
781 (build-system gnu-build-system)
782 (arguments
783 `(#:modules ((guix build gnu-build-system)
784 (guix build utils)
785 (srfi srfi-1)
786 (srfi srfi-26))
787 #:tests? #f ; no tests
788 #:phases
789 (modify-phases %standard-phases
790 (delete 'configure)
791 (replace 'build
792 (lambda* (#:key inputs #:allow-other-keys)
793 (let ((mf (assoc-ref inputs "texlive-metafont-base"))
794 (cwd (getcwd)))
795 ;; Make METAFONT reproducible
796 (setenv "SOURCE_DATE_EPOCH" "1")
797 ;; Tell mf where to find mf.base
798 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
799 ;; Tell mf where to look for source files
800 (setenv "MFINPUTS"
801 (string-append cwd ":"
802 cwd "/cmextra:"
803 cwd "/cyrillic:"
804 cwd "/dummy:"
805 cwd "/symbols:"
806 mf "/share/texmf-dist/metafont/base:"
807 (assoc-ref inputs "texlive-fonts-cm")
808 "/share/texmf-dist/fonts/source/public/cm")))
809 (mkdir "build")
810 (for-each (lambda (font)
811 (format #t "building font ~a\n" (basename font ".mf"))
812 (with-directory-excursion (dirname font)
813 (invoke "mf" "-progname=mf"
814 "-output-directory=../build"
815 (string-append "\\"
816 "mode:=ljfour; "
817 "mag:=1; "
818 "nonstopmode; "
819 "input "
820 (getcwd) "/"
821 (basename font ".mf")))))
822 (find-files "." "[0-9]+\\.mf$"))
823 #t))
824 (replace 'install
825 (lambda* (#:key outputs #:allow-other-keys)
826 (let* ((out (assoc-ref outputs "out"))
827 (tfm (string-append
828 out "/share/texmf-dist/fonts/tfm/public/amsfonts"))
829 (mf (string-append
830 out "/share/texmf-dist/fonts/source/public/amsfonts")))
831 (for-each (cut install-file <> tfm)
832 (find-files "build" "\\.*"))
833 (for-each (cut install-file <> mf)
834 (find-files "." "\\.mf"))
835 #t))))))
836 (native-inputs
837 `(("texlive-fonts-cm" ,texlive-fonts-cm)
838 ("texlive-metafont-base" ,texlive-metafont-base)
839 ("texlive-bin" ,texlive-bin)))
840 (home-page "https://www.ctan.org/pkg/amsfonts")
841 (synopsis "TeX fonts from the American Mathematical Society")
842 (description
843 "This package provides an extended set of fonts for use in mathematics,
844 including: extra mathematical symbols; blackboard bold letters (uppercase
845 only); fraktur letters; subscript sizes of bold math italic and bold Greek
846 letters; subscript sizes of large symbols such as sum and product; added sizes
847 of the Computer Modern small caps font; cyrillic fonts (from the University of
848 Washington); Euler mathematical fonts. All fonts are provided as Adobe Type 1
849 files, and all except the Euler fonts are provided as Metafont source. The
850 distribution also includes the canonical Type 1 versions of the Computer
851 Modern family of fonts. The Euler fonts are supported by separate packages;
852 details can be found in the documentation.")
853 (license license:silofl1.1)))
854
855 (define-public texlive-latex-amsfonts
856 (package
857 (name "texlive-latex-amsfonts")
858 (version (number->string %texlive-revision))
859 (source (origin
860 (method svn-fetch)
861 (uri (texlive-ref "latex" "amsfonts"))
862 (file-name (string-append name "-" version "-checkout"))
863 (sha256
864 (base32
865 "0slzfv5h2m03b2xvm2sasznz4azh6rgi069z161dja3l8rln79hm"))))
866 (build-system texlive-build-system)
867 (arguments '(#:tex-directory "latex/amsfonts"))
868 (native-inputs
869 `(("texlive-fonts-cm" ,texlive-fonts-cm)
870 ("texlive-metafont-base" ,texlive-metafont-base)))
871 (home-page "https://www.ctan.org/pkg/amsfonts")
872 (synopsis "TeX fonts from the American Mathematical Society")
873 (description
874 "This package provides basic LaTeX support for the symbol fonts provides
875 by the amsfonts package. It provides @code{amsfonts.sty}, with names of
876 individual symbols defined in @code{amssymb.sty}.")
877 (license license:silofl1.1)))
878
879 ;; This provides etex.src which is needed to build various formats, including
880 ;; luatex.fmt and pdflatex.fmt
881 (define-public texlive-tex-plain
882 (package
883 (name "texlive-tex-plain")
884 (version (number->string %texlive-revision))
885 (source (origin
886 (method svn-fetch)
887 (uri (svn-reference
888 (url (string-append "svn://www.tug.org/texlive/tags/"
889 %texlive-tag "/Master/texmf-dist/"
890 "/tex/plain"))
891 (revision %texlive-revision)))
892 (file-name (string-append name "-" version "-checkout"))
893 (sha256
894 (base32
895 "0mjgl3gscn3ps29yjambz1j9fg81ynnncb96vpprwx4xsijhsns0"))))
896 (build-system trivial-build-system)
897 (arguments
898 `(#:modules ((guix build utils))
899 #:builder
900 (begin
901 (use-modules (guix build utils))
902 (let ((target (string-append (assoc-ref %outputs "out")
903 "/share/texmf-dist/tex/plain")))
904 (mkdir-p target)
905 (copy-recursively (assoc-ref %build-inputs "source") target)
906 #t))))
907 (home-page "https://www.ctan.org/pkg/plain")
908 (synopsis "Plain TeX format and supporting files")
909 (description
910 "Contains files used to build the Plain TeX format, as described in the
911 TeXbook, together with various supporting files (some also discussed in the
912 book).")
913 (license license:knuth)))
914
915 (define-public texlive-latex-base
916 (let ((texlive-dir
917 (lambda (dir hash)
918 (origin
919 (method svn-fetch)
920 (uri (svn-reference
921 (url (string-append "svn://www.tug.org/texlive/tags/"
922 %texlive-tag "/Master/texmf-dist/"
923 dir))
924 (revision %texlive-revision)))
925 (file-name (string-append "texlive-generic-"
926 (last (string-split
927 (string-drop-right dir 1) #\/))
928 "-" (number->string %texlive-revision)
929 "-checkout"))
930 (sha256 (base32 hash))))))
931 (package
932 (name "texlive-latex-base")
933 (version (number->string %texlive-revision))
934 (source (origin
935 (method svn-fetch)
936 (uri (texlive-ref "latex" "base"))
937 (file-name (string-append name "-" version "-checkout"))
938 (sha256
939 (base32
940 "1h9pir2hz6i9avc4lrl733p3zf4rpkg8537x1zdbhs91hvhikw9k"))))
941 (build-system gnu-build-system)
942 (arguments
943 `(#:modules ((guix build gnu-build-system)
944 (guix build utils)
945 (ice-9 match)
946 (srfi srfi-1)
947 (srfi srfi-26))
948 #:tests? #f ; no tests
949 #:phases
950 (modify-phases %standard-phases
951 (delete 'configure)
952 (replace 'build
953 (lambda* (#:key inputs #:allow-other-keys)
954 ;; Find required fonts
955 (setenv "TFMFONTS"
956 (string-append (assoc-ref inputs "texlive-fonts-cm")
957 "/share/texmf-dist/fonts/tfm/public/cm:"
958 (assoc-ref inputs "texlive-fonts-latex")
959 "/share/texmf-dist/fonts/tfm/public/latex-fonts:"
960 (assoc-ref inputs "texlive-fonts-knuth-lib")
961 "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
962 (setenv "TEXINPUTS"
963 (string-append
964 (getcwd) ":"
965 (getcwd) "/build:"
966 (string-join
967 (append-map (match-lambda
968 ((_ . dir)
969 (find-files dir
970 (lambda (_ stat)
971 (eq? 'directory (stat:type stat)))
972 #:directories? #t
973 #:stat stat)))
974 inputs)
975 ":")))
976
977 ;; Create an empty texsys.cfg, because latex.ltx wants to include
978 ;; it. This file must exist and it's fine if it's empty.
979 (with-output-to-file "texsys.cfg"
980 (lambda _ (format #t "%")))
981
982 (mkdir "build")
983 (mkdir "web2c")
984 (invoke "luatex" "-ini" "-interaction=batchmode"
985 "-output-directory=build" "unpack.ins")
986 (invoke "tex" "-ini" "-interaction=batchmode"
987 "-output-directory=web2c" "tex.ini")
988 ;; LaTeX, pdfetex/pdftex, and XeTeX require e-TeX, which
989 ;; is enabled only in extended mode (activated with a
990 ;; leading asterisk). We should not use luatex here,
991 ;; because that would make the generated format files
992 ;; incompatible with any other TeX engine.
993 (for-each (lambda (format)
994 (invoke "latex" "-ini" "-interaction=batchmode"
995 "-output-directory=web2c"
996 "-translate-file=cp227.tcx"
997 (string-append "*" format ".ini")))
998 '("latex"
999 "pdflatex"
1000 "pdfetex"))
1001 (for-each (lambda (format)
1002 (invoke format "-ini" "-interaction=batchmode"
1003 "-output-directory=web2c"
1004 (string-append "*" format ".ini")))
1005 '("xetex"
1006 "xelatex"))
1007 (for-each (lambda (format)
1008 (invoke "luatex" "-ini" "-interaction=batchmode"
1009 "-output-directory=web2c"
1010 (string-append format ".ini")))
1011 '("dviluatex" "dvilualatex" "luatex" "lualatex"))
1012 #t))
1013 (replace 'install
1014 (lambda* (#:key outputs #:allow-other-keys)
1015 (let* ((out (assoc-ref outputs "out"))
1016 (target (string-append
1017 out "/share/texmf-dist/tex/latex/base"))
1018 (web2c (string-append
1019 out "/share/texmf-dist/web2c")))
1020 (mkdir-p target)
1021 (mkdir-p web2c)
1022 (for-each delete-file (find-files "." "\\.(log|aux)$"))
1023 (for-each (cut install-file <> target)
1024 (find-files "build" ".*"))
1025 (for-each (cut install-file <> web2c)
1026 (find-files "web2c" ".*"))
1027 ;; pdftex is really just the same as pdfetex, but since it
1028 ;; doesn't have its own format file, we need to copy it.
1029 (copy-file "web2c/pdfetex.fmt"
1030 (string-append web2c "/pdftex.fmt"))
1031 #t))))))
1032 (native-inputs
1033 `(("texlive-bin" ,texlive-bin)
1034 ("texlive-generic-unicode-data" ,texlive-generic-unicode-data)
1035 ("texlive-generic-dehyph-exptl" ,texlive-generic-dehyph-exptl)
1036 ("texlive-generic-tex-ini-files" ,texlive-generic-tex-ini-files)
1037 ("texlive-latex-latexconfig"
1038 ,(texlive-dir "tex/latex/latexconfig/"
1039 "1zb3j49cj8p75yph6c8iysjp7qbdvghwf0mn9j0l7qq3qkbz2xaf"))
1040 ("texlive-generic-hyph-utf8" ,texlive-generic-hyph-utf8)
1041 ("texlive-generic-hyphen"
1042 ,(texlive-dir "tex/generic/hyphen/"
1043 "0xim36wybw2625yd0zwlp9m2c2xrcybw58gl4rih9nkph0wqwwhd"))
1044 ("texlive-generic-ruhyphen"
1045 ,(texlive-dir "tex/generic/ruhyphen/"
1046 "14rjkpl4zkjqs13rcf9kcd24mn2kx7i1jbdwxq8ds94bi66ylzsd"))
1047 ("texlive-generic-ukrhyph"
1048 ,(texlive-dir "tex/generic/ukrhyph/"
1049 "1cfwdg2rhbayl3w0x1xqd36d45zbc96f029myp13s7cb6kbmbppv"))
1050 ("texlive-generic-config"
1051 ,(texlive-dir "tex/generic/config/"
1052 "19vj088p4kkp6xll0141m4kl6ssgdzhs3g10i232khb07aqiag8s"))
1053 ("texlive-tex-plain" ,texlive-tex-plain)
1054 ("texlive-fonts-cm" ,texlive-fonts-cm)
1055 ("texlive-fonts-latex" ,texlive-fonts-latex)
1056 ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)))
1057 (home-page "https://www.ctan.org/pkg/latex-base")
1058 (synopsis "Base sources of LaTeX")
1059 (description
1060 "This bundle comprises the source of LaTeX itself, together with several
1061 packages which are considered \"part of the kernel\". This bundle, together
1062 with the required packages, constitutes what every LaTeX distribution should
1063 contain.")
1064 (license license:lppl1.3c+))))
1065
1066 (define-public texlive-latex-filecontents
1067 (package
1068 (name "texlive-latex-filecontents")
1069 (version (number->string %texlive-revision))
1070 (source (origin
1071 (method svn-fetch)
1072 (uri (texlive-ref "latex" "filecontents"))
1073 (file-name (string-append name "-" version "-checkout"))
1074 (sha256
1075 (base32
1076 "0swkbxv8vg0yizadfnvrwjb4cj0pn34v9wm6v7wqq903fdav7k7q"))))
1077 (build-system texlive-build-system)
1078 (arguments '(#:tex-directory "latex/filecontents"))
1079 (home-page "https://www.ctan.org/pkg/filecontents")
1080 (synopsis "Extended filecontents and filecontents* environments")
1081 (description
1082 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments
1083 enable a LaTeX source file to generate external files as it runs through
1084 LaTeX. However, there are two limitations of these environments: they refuse
1085 to overwrite existing files, and they can only be used in the preamble of a
1086 document. The filecontents package removes these limitations, letting you
1087 overwrite existing files and letting you use @code{filecontents} /
1088 @code{filecontents*} anywhere.")
1089 (license license:lppl1.3c+)))
1090
1091 (define-public texlive-generic-ifxetex
1092 (package
1093 (name "texlive-generic-ifxetex")
1094 (version (number->string %texlive-revision))
1095 (source (origin
1096 (method svn-fetch)
1097 (uri (texlive-ref "generic" "ifxetex"))
1098 (file-name (string-append name "-" version "-checkout"))
1099 (sha256
1100 (base32
1101 "0w2xj7n0szavj329kds09q626szkc378p3w0sk022q0ln4ksz86d"))))
1102 (build-system texlive-build-system)
1103 (arguments
1104 '(#:tex-directory "generic/ifxetex"
1105 #:tex-format "xelatex"))
1106 (inputs
1107 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
1108 (home-page "https://www.ctan.org/pkg/ifxetex")
1109 (synopsis "Am I running under XeTeX?")
1110 (description
1111 "This is a simple package which provides an @code{\\ifxetex} conditional,
1112 so that other code can determine that it is running under XeTeX. The package
1113 requires the e-TeX extensions to the TeX primitive set.")
1114 (license license:lppl1.3c+)))
1115
1116 (define-public texlive-generic-epsf
1117 (package
1118 (name "texlive-generic-epsf")
1119 (version (number->string %texlive-revision))
1120 (source (origin
1121 (method svn-fetch)
1122 (uri (svn-reference
1123 (url (string-append "svn://www.tug.org/texlive/tags/"
1124 %texlive-tag "/Master/texmf-dist/"
1125 "/tex/generic/epsf"))
1126 (revision %texlive-revision)))
1127 (file-name (string-append name "-" version "-checkout"))
1128 (sha256
1129 (base32
1130 "14w3j81ympyvg8hkk9i1xgr8a0gfnfsb2ki8qqsk5pa051za1xcy"))))
1131 (build-system trivial-build-system)
1132 (arguments
1133 `(#:modules ((guix build utils))
1134 #:builder
1135 (begin
1136 (use-modules (guix build utils))
1137 (let ((target (string-append (assoc-ref %outputs "out")
1138 "/share/texmf-dist/tex/generic/epfs")))
1139 (mkdir-p target)
1140 (copy-recursively (assoc-ref %build-inputs "source") target)
1141 #t))))
1142 (home-page "https://www.ctan.org/pkg/epsf")
1143 (synopsis "Simple macros for EPS inclusion")
1144 (description
1145 "This package provides the original (and now obsolescent) graphics
1146 inclusion macros for use with dvips, still widely used by Plain TeX users (in
1147 particular). For LaTeX users, the package is nowadays (rather strongly)
1148 deprecated in favour of the more sophisticated standard LaTeX latex-graphics
1149 bundle of packages. (The latex-graphics bundle is also available to Plain TeX
1150 users, via its Plain TeX version.)")
1151 (license license:public-domain)))
1152
1153 (define-public texlive-latex-fancyvrb
1154 (package
1155 (name "texlive-latex-fancyvrb")
1156 (version (number->string %texlive-revision))
1157 (source (origin
1158 (method svn-fetch)
1159 (uri (texlive-ref "latex" "fancyvrb"))
1160 (file-name (string-append name "-" version "-checkout"))
1161 (sha256
1162 (base32
1163 "03l7140y031rr14h02i4z9zqsfvrbn7wzwxbjsrjcgrk6sdr71wv"))))
1164 (build-system texlive-build-system)
1165 (arguments
1166 '(#:tex-directory "latex/fancyvrb"
1167 ;; We exclude "fvrb-ex" to avoid a dependency on texlive-luaotfload and
1168 ;; thus texlive-luatex-lualibs.
1169 #:build-targets '("fancyvrb.ins")))
1170 (home-page "https://www.ctan.org/pkg/fancyvrb")
1171 (synopsis "Sophisticated verbatim text")
1172 (description
1173 "This package provides tools for the flexible handling of verbatim text
1174 including: verbatim commands in footnotes; a variety of verbatim environments
1175 with many parameters; ability to define new customized verbatim environments;
1176 save and restore verbatim text and environments; write and read files in
1177 verbatim mode; build \"example\" environments (showing both result and
1178 verbatim source).")
1179 (license license:lppl1.0+)))
1180
1181 (define-public texlive-latex-graphics
1182 (package
1183 (name "texlive-latex-graphics")
1184 (version (number->string %texlive-revision))
1185 (source (origin
1186 (method svn-fetch)
1187 (uri (texlive-ref "latex" "graphics"))
1188 (file-name (string-append name "-" version "-checkout"))
1189 (sha256
1190 (base32
1191 "07azyn0b1s49vbdlr6dmygrminxp72ndl24j1091hiiccvrjq3xc"))))
1192 (build-system texlive-build-system)
1193 (arguments
1194 '(#:tex-directory "latex/graphics"
1195 #:phases
1196 (modify-phases %standard-phases
1197 (add-after 'install 'install-config
1198 (lambda* (#:key inputs outputs #:allow-other-keys)
1199 (let ((cfg (assoc-ref inputs "graphics-cfg"))
1200 (target (string-append (assoc-ref outputs "out")
1201 "/share/texmf-dist/tex/latex/graphics-cfg")))
1202 (mkdir-p target)
1203 (install-file (string-append cfg "/graphics.cfg") target)
1204 (install-file (string-append cfg "/color.cfg") target)
1205 #t)))
1206 (add-after 'install 'install-defs
1207 (lambda* (#:key inputs outputs #:allow-other-keys)
1208 (let ((def (assoc-ref inputs "graphics-def"))
1209 (target (string-append (assoc-ref outputs "out")
1210 "/share/texmf-dist/tex/latex/graphics-def")))
1211 (mkdir-p target)
1212 (copy-recursively def target)
1213 #t))))))
1214 (native-inputs
1215 `(("graphics-cfg"
1216 ,(origin
1217 (method git-fetch)
1218 (uri (git-reference
1219 (url "https://github.com/latex3/graphics-cfg.git")
1220 (commit "19d1238af17df376cd46333b229579b0f7f3a41f")))
1221 (file-name (string-append "graphics-cfg-"
1222 (number->string %texlive-revision)
1223 "-checkout"))
1224 (sha256
1225 (base32
1226 "12kbgbm52gmmgn8zajb74s8n5rvnxcfdvs3iyj8vcw5vrsw5i6mh"))))
1227 ("graphics-def"
1228 ,(origin
1229 (method svn-fetch)
1230 (uri (svn-reference
1231 (url (string-append "svn://www.tug.org/texlive/tags/"
1232 %texlive-tag "/Master/texmf-dist/"
1233 "/tex/latex/graphics-def"))
1234 (revision %texlive-revision)))
1235 (file-name (string-append "graphics-def-"
1236 (number->string %texlive-revision)
1237 "-checkout"))
1238 (sha256
1239 (base32
1240 "0gi4qv6378nl84s8n1yx3hjqvv7r4lza7hpbymbl5rzwgw8qrnyb"))))))
1241 (home-page "https://www.ctan.org/pkg/latex-graphics")
1242 (synopsis "LaTeX standard graphics bundle")
1243 (description
1244 "This is a collection of LaTeX packages for producing color, including
1245 graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX
1246 documents. It comprises the packages color, graphics, graphicx, trig, epsfig,
1247 keyval, and lscape.")
1248 ;; The configuration files are released under CC0.
1249 (license (list license:lppl1.3c+
1250 license:cc0))))
1251
1252 (define-public texlive-latex-xcolor
1253 (package
1254 (name "texlive-latex-xcolor")
1255 (version (number->string %texlive-revision))
1256 (source (origin
1257 (method svn-fetch)
1258 (uri (texlive-ref "latex" "xcolor"))
1259 (file-name (string-append name "-" version "-checkout"))
1260 (sha256
1261 (base32
1262 "01n613s7bcrd2n4jfawm0k4nn2ny3aaifp2jjfif3lz4sbv31494"))))
1263 (build-system texlive-build-system)
1264 (arguments '(#:tex-directory "latex/xcolor"))
1265 (home-page "https://www.ctan.org/pkg/xcolor")
1266 (synopsis "Driver-independent color extensions for LaTeX and pdfLaTeX")
1267 (description
1268 "The package starts from the basic facilities of the colorcolor package,
1269 and provides easy driver-independent access to several kinds of color tints,
1270 shades, tones, and mixes of arbitrary colors. It allows a user to select a
1271 document-wide target color model and offers complete tools for conversion
1272 between eight color models. Additionally, there is a command for alternating
1273 row colors plus repeated non-aligned material (like horizontal lines) in
1274 tables.")
1275 (license license:lppl1.2+)))
1276
1277 (define-public texlive-latex-hyperref
1278 (package
1279 (name "texlive-latex-hyperref")
1280 (version "6.84a2")
1281 ;; The sources in the TeX Live SVN repository do not contain hluatex.dtx,
1282 ;; so we fetch the release from GitHub.
1283 (source (origin
1284 (method url-fetch)
1285 (uri (string-append "https://github.com/ho-tex/hyperref/"
1286 "archive/release-" version ".tar.gz"))
1287 (file-name (string-append name "-" version ".tar.gz"))
1288 (sha256
1289 (base32
1290 "1d3rmjgzh0025a1dza55zb6nzzlgd1y9snwx45wq1c1vf42m79h2"))))
1291 (build-system texlive-build-system)
1292 (arguments '(#:tex-directory "latex/hyperref"))
1293 (home-page "https://www.ctan.org/pkg/hyperref")
1294 (synopsis "Extensive support for hypertext in LaTeX")
1295 (description
1296 "The @code{hyperref} package is used to handle cross-referencing commands
1297 in LaTeX to produce hypertext links in the document. The package provides
1298 backends for the @code{\\special} set defined for HyperTeX DVI processors; for
1299 embedded @code{pdfmark} commands for processing by Acrobat
1300 Distiller (@code{dvips} and Y&Y's @code{dvipsone}); for Y&Y's @code{dviwindo};
1301 for PDF control within pdfTeX and @code{dvipdfm}; for TeX4ht; and for VTeX's
1302 pdf and HTML backends. The package is distributed with the @code{backref} and
1303 @code{nameref} packages, which make use of the facilities of @code{hyperref}.")
1304 (license license:lppl1.3+)))
1305
1306 (define-public texlive-latex-oberdiek
1307 (package
1308 (name "texlive-latex-oberdiek")
1309 (version (number->string %texlive-revision))
1310 (source (origin
1311 (method svn-fetch)
1312 (uri (texlive-ref "latex" "oberdiek"))
1313 (file-name (string-append name "-" version "-checkout"))
1314 (sha256
1315 (base32
1316 "0aswvsxgsn709xmvpcg50d2xl7vcy1ckdxb9c1cligqqfjjvviqf"))))
1317 (build-system texlive-build-system)
1318 (arguments
1319 '(#:tex-directory "latex/oberdiek"
1320 #:build-targets '("oberdiek.ins")
1321 #:phases
1322 (modify-phases %standard-phases
1323 ;; "ifpdf.ins" is not generated, so we need to process the dtx file.
1324 (add-after 'unpack 'do-not-process-ifpdf.ins
1325 (lambda _
1326 (substitute* "oberdiek.ins"
1327 (("ifpdf.ins") "ifpdf.dtx"))
1328 #t)))))
1329 (home-page "https://www.ctan.org/pkg/oberdiek")
1330 (synopsis "Bundle of packages submitted by Heiko Oberdiek")
1331 (description
1332 "The bundle comprises various LaTeX packages, providing among others:
1333 better accessibility support for PDF files; extensible chemists reaction
1334 arrows; record information about document class(es) used; and many more.")
1335 (license license:lppl1.3+)))
1336
1337 (define-public texlive-latex-tools
1338 (package
1339 (name "texlive-latex-tools")
1340 (version (number->string %texlive-revision))
1341 (source (origin
1342 (method svn-fetch)
1343 (uri (texlive-ref "latex" "tools"))
1344 (file-name (string-append name "-" version "-checkout"))
1345 (sha256
1346 (base32
1347 "052a0pch2k5zls5jlay9xxcf93rw3i60a2x28y3ip3rhbsv3xgiz"))))
1348 (build-system texlive-build-system)
1349 (arguments
1350 '(#:tex-directory "latex/tools"
1351 #:build-targets '("tools.ins")))
1352 (home-page "https://www.ctan.org/pkg/latex-tools")
1353 (synopsis "LaTeX standard tools bundle")
1354 (description
1355 "This package is a collection of (variously) simple tools provided as
1356 part of the LaTeX required tools distribution, comprising the following
1357 packages: afterpage, array, bm, calc, dcolumn, delarray, enumerate, fileerr,
1358 fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol,
1359 rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim,
1360 xr, and xspace.")
1361 (license license:lppl1.3+)))
1362
1363 (define-public texlive-latex-url
1364 (package
1365 (name "texlive-latex-url")
1366 (version (number->string %texlive-revision))
1367 (source (origin
1368 (method svn-fetch)
1369 (uri (svn-reference
1370 (url (string-append "svn://www.tug.org/texlive/tags/"
1371 %texlive-tag "/Master/texmf-dist/"
1372 "/tex/latex/url"))
1373 (revision %texlive-revision)))
1374 (file-name (string-append name "-" version "-checkout"))
1375 (sha256
1376 (base32
1377 "184s2543cwia5l7iibhlkl1ffbncfhjpv5p56zq0c15by5sghlac"))))
1378 (build-system trivial-build-system)
1379 (arguments
1380 `(#:modules ((guix build utils))
1381 #:builder
1382 (begin
1383 (use-modules (guix build utils))
1384 (let ((target (string-append (assoc-ref %outputs "out")
1385 "/share/texmf-dist/tex/latex/url")))
1386 (mkdir-p target)
1387 (copy-recursively (assoc-ref %build-inputs "source") target)
1388 #t))))
1389 (home-page "https://www.ctan.org/pkg/url")
1390 (synopsis "Verbatim with URL-sensitive line breaks")
1391 (description "The command @code{\\url} is a form of verbatim command that
1392 allows linebreaks at certain characters or combinations of characters, accepts
1393 reconfiguration, and can usually be used in the argument to another command.
1394 The command is intended for email addresses, hypertext links,
1395 directories/paths, etc., which normally have no spaces, so by default the
1396 package ignores spaces in its argument. However, a package option allows
1397 spaces, which is useful for operating systems where spaces are a common part
1398 of file names.")
1399 ;; The license header states that it is under LPPL version 2 or later, but
1400 ;; the latest version is 1.3c.
1401 (license license:lppl1.3c+)))
1402
1403 (define-public texlive-latex-l3kernel
1404 (package
1405 (name "texlive-latex-l3kernel")
1406 (version (number->string %texlive-revision))
1407 (source (origin
1408 (method svn-fetch)
1409 (uri (texlive-ref "latex" "l3kernel"))
1410 (file-name (string-append name "-" version "-checkout"))
1411 (sha256
1412 (base32
1413 "0r0wfk594j8wkdqhh21haimwsfq8x5jch4ldm21hkzk5dnmvpbg6"))))
1414 (build-system texlive-build-system)
1415 (arguments
1416 '(#:tex-directory "latex/l3kernel"))
1417 (home-page "https://www.ctan.org/pkg/l3kernel")
1418 (synopsis "LaTeX3 programmers’ interface")
1419 (description
1420 "The l3kernel bundle provides an implementation of the LaTeX3
1421 programmers’ interface, as a set of packages that run under LaTeX 2e. The
1422 interface provides the foundation on which the LaTeX3 kernel and other future
1423 code are built: it is an API for TeX programmers. The packages are set up so
1424 that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
1425 (license license:lppl1.3c+)))
1426
1427 (define-public texlive-latex-l3packages
1428 (package
1429 (name "texlive-latex-l3packages")
1430 (version (number->string %texlive-revision))
1431 (source (origin
1432 (method svn-fetch)
1433 (uri (texlive-ref "latex" "l3packages"))
1434 (file-name (string-append name "-" version "-checkout"))
1435 (sha256
1436 (base32
1437 "16jplkvzdysfssijq9l051nsks65c2nrarsl17k8gjhc28yznj8y"))))
1438 (build-system texlive-build-system)
1439 (arguments
1440 '(#:tex-directory "latex/l3packages"
1441 #:phases
1442 (modify-phases %standard-phases
1443 ;; All package sources are in sub-directories, so we need to add them
1444 ;; to TEXINPUTS.
1445 (add-after 'unpack 'set-TEXINPUTS
1446 (lambda _
1447 (let ((cwd (getcwd)))
1448 (setenv "TEXINPUTS"
1449 (string-append cwd "/l3keys2e:"
1450 cwd "/xparse:"
1451 cwd "/xfrac:"
1452 cwd "/xfp:"
1453 cwd "/xtemplate")))
1454 #t)))))
1455 (inputs
1456 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
1457 (home-page "https://www.ctan.org/pkg/l3packages")
1458 (synopsis "High-level LaTeX3 concepts")
1459 (description
1460 "This bundle holds prototype implementations of concepts for a LaTeX
1461 designer interface, to be used with the experimental LaTeX kernel as
1462 programming tools and kernel sup­port. Packages provided in this release are:
1463
1464 @enumerate
1465 @item l3keys2e, which makes the facilities of the kernel module l3keys
1466 available for use by LaTeX 2e packages;
1467 @item xfrac, which provides flexible splitlevel fractions;
1468 @item xparse, which provides a high-level interface for declaring document
1469 commands; and
1470 @item xtemplate, which provides a means of defining generic functions using a
1471 key-value syntax.
1472 @end enumerate\n")
1473 (license license:lppl1.3c+)))
1474
1475 (define-public texlive-latex-fontspec
1476 (package
1477 (name "texlive-latex-fontspec")
1478 (version (number->string %texlive-revision))
1479 (source (origin
1480 (method svn-fetch)
1481 (uri (texlive-ref "latex" "fontspec"))
1482 (file-name (string-append name "-" version "-checkout"))
1483 (sha256
1484 (base32
1485 "1rx43y5xmjqvc27pjdnmqwp4pcw3czcfd6nfpmzc1gnqfl1hlc0q"))))
1486 (build-system texlive-build-system)
1487 (arguments
1488 '(#:tex-directory "latex/fontspec"
1489 #:build-targets '("fontspec.dtx")))
1490 (inputs
1491 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
1492 (home-page "https://www.ctan.org/pkg/fontspec")
1493 (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX")
1494 (description
1495 "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an
1496 automatic and unified interface to feature-rich AAT and OpenType fonts through
1497 the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires
1498 the l3kernel and xparse bundles from the LaTeX 3 development team.")
1499 (license license:lppl1.3+)))
1500
1501 ;; The SVN directory contains little more than a dtx file that generates three
1502 ;; of the many lua files that should be installed as part of this package.
1503 ;; This is why we take the release from GitHub instead.
1504 (define-public texlive-luatex-lualibs
1505 (package
1506 (name "texlive-luatex-lualibs")
1507 (version "2.5")
1508 (source (origin
1509 (method url-fetch)
1510 (uri (string-append "https://github.com/lualatex/lualibs/"
1511 "releases/download/v"
1512 version "/lualibs.zip"))
1513 (file-name (string-append name "-" version ".zip"))
1514 (sha256
1515 (base32
1516 "1xx9blvrmx9hyhrl345lpai9m6xxnw997261a1ahn1bm5r2j5fqy"))))
1517 (build-system gnu-build-system)
1518 (arguments
1519 `(#:make-flags
1520 (list (string-append "DESTDIR="
1521 (assoc-ref %outputs "out")
1522 "/share/texmf-dist"))
1523 #:phases
1524 (modify-phases %standard-phases
1525 (delete 'configure))))
1526 (native-inputs
1527 `(("texlive-bin" ,texlive-bin)
1528 ("unzip" ,unzip)
1529 ("zip" ,zip)))
1530 (home-page "https://github.com/lualatex/lualibs")
1531 (synopsis "Lua modules for general programming (in the (La)TeX world)")
1532 (description
1533 "Lualibs is a collection of Lua modules useful for general programming.
1534 The bundle is based on Lua modules shipped with ConTeXt, and made available in
1535 this bundle for use independent of ConTeXt.")
1536 ;; GPL version 2 only
1537 (license license:gpl2)))
1538
1539 (define-public texlive-latex-amsmath
1540 (package
1541 (name "texlive-latex-amsmath")
1542 (version (number->string %texlive-revision))
1543 (source (origin
1544 (method svn-fetch)
1545 (uri (texlive-ref "latex" "amsmath"))
1546 (file-name (string-append name "-" version "-checkout"))
1547 (sha256
1548 (base32
1549 "178ywjpdlv78qmfzqdyn6gy14620zjsn2q9wap76fbr9s4hw6dba"))))
1550 (build-system texlive-build-system)
1551 (arguments '(#:tex-directory "latex/amsmath"))
1552 (home-page "https://www.ctan.org/pkg/amsmath")
1553 (synopsis "AMS mathematical facilities for LaTeX")
1554 (description
1555 "This is the principal package in the AMS-LaTeX distribution. It adapts
1556 for use in LaTeX most of the mathematical features found in AMS-TeX; it is
1557 highly recommended as an adjunct to serious mathematical typesetting in LaTeX.
1558 When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold
1559 symbols), @code{amsopnamsopn} (for operator names) and
1560 @code{amstextamstext} (for text embedded in mathematics) are also loaded.
1561 This package is part of the LaTeX required distribution; however, several
1562 contributed packages add still further to its appeal; examples are
1563 @code{empheqempheq}, which provides functions for decorating and highlighting
1564 mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
1565 definitions.")
1566 (license license:lppl1.3c+)))
1567
1568 (define-public texlive-latex-amscls
1569 (package
1570 (name "texlive-latex-amscls")
1571 (version (number->string %texlive-revision))
1572 (source (origin
1573 (method svn-fetch)
1574 (uri (texlive-ref "latex" "amscls"))
1575 (file-name (string-append name "-" version "-checkout"))
1576 (sha256
1577 (base32
1578 "0jmcr37mcdi7drczppvr6lmz5d5yd9m67ii79gp2nglg1xpw934j"))))
1579 (build-system texlive-build-system)
1580 (arguments
1581 `(#:tex-directory "latex/amscls"))
1582 (home-page "https://www.ctan.org/pkg/amscls")
1583 (synopsis "AMS document classes for LaTeX")
1584 (description
1585 "This bundle contains three AMS classes: @code{amsartamsart} (for writing
1586 articles for the AMS), @code{amsbookamsbook} (for books) and
1587 @code{amsprocamsproc} (for proceedings), together with some supporting
1588 material. The material is made available as part of the AMS-LaTeX
1589 distribution.")
1590 (license license:lppl1.3c+)))
1591
1592 (define-public texlive-latex-babel
1593 (package
1594 (name "texlive-latex-babel")
1595 (version (number->string %texlive-revision))
1596 (source (origin
1597 (method svn-fetch)
1598 (uri (texlive-ref "latex" "babel"))
1599 (file-name (string-append name "-" version "-checkout"))
1600 (sha256
1601 (base32
1602 "1n3i5adsyy7jw0imnzrm2i8wkf73i3mjk9h3ic8cb9cd19i4r9r3"))))
1603 (build-system texlive-build-system)
1604 (arguments
1605 '(#:tex-directory "generic/babel"
1606 #:phases
1607 (modify-phases %standard-phases
1608 ;; This package tries to produce babel.aux twice but refuses to
1609 ;; overwrite the first one.
1610 (add-before 'build 'fix-ins
1611 (lambda _
1612 (substitute* "babel.ins"
1613 (("askonceonly") "askforoverwritefalse"))
1614 #t)))))
1615 (home-page "https://www.ctan.org/pkg/babel")
1616 (synopsis "Multilingual support for Plain TeX or LaTeX")
1617 (description
1618 "The package manages culturally-determined typographical (and other)
1619 rules, and hyphenation patterns for a wide range of languages. A document may
1620 select a single language to be supported, or it may select several, in which
1621 case the document may switch from one language to another in a variety of
1622 ways. Babel uses contributed configuration files that provide the detail of
1623 what has to be done for each language. Users of XeTeX are advised to use the
1624 polyglossia package rather than Babel.")
1625 (license license:lppl1.3+)))
1626
1627 (define-public texlive-generic-babel-english
1628 (package
1629 (name "texlive-generic-babel-english")
1630 (version (number->string %texlive-revision))
1631 (source (origin
1632 (method svn-fetch)
1633 (uri (texlive-ref "generic" "babel-english"))
1634 (file-name (string-append name "-" version "-checkout"))
1635 (sha256
1636 (base32
1637 "1s404wbx91z5w65hm024kyl4h56zsa096irx18vsx8jvlmwsr5wc"))))
1638 (build-system texlive-build-system)
1639 (arguments '(#:tex-directory "generic/babel-english"))
1640 (home-page "https://www.ctan.org/pkg/babel-english")
1641 (synopsis "Babel support for English")
1642 (description
1643 "This package provides the language definition file for support of
1644 English in @code{babel}. Care is taken to select British hyphenation patterns
1645 for British English and Australian text, and default (\"american\") patterns
1646 for Canadian and USA text.")
1647 (license license:lppl1.3+)))
1648
1649 (define-public texlive-latex-cyrillic
1650 (package
1651 (name "texlive-latex-cyrillic")
1652 (version (number->string %texlive-revision))
1653 (source (origin
1654 (method svn-fetch)
1655 (uri (texlive-ref "latex" "cyrillic"))
1656 (file-name (string-append name "-" version "-checkout"))
1657 (sha256
1658 (base32
1659 "1mdhl35hwas68ki56qqngzar37dwv4mm64l2canihr255bz34lbv"))))
1660 (build-system texlive-build-system)
1661 (arguments
1662 '(#:tex-directory "latex/cyrillic"))
1663 (home-page "https://www.ctan.org/pkg/latex-cyrillic")
1664 (synopsis "Support for Cyrillic fonts in LaTeX")
1665 (description
1666 "This bundle of macros files provides macro support (including font
1667 encoding macros) for the use of Cyrillic characters in fonts encoded under the
1668 T2* and X2 encodings. These encodings cover (between them) pretty much every
1669 language that is written in a Cyrillic alphabet.")
1670 (license license:lppl1.3c+)))
1671
1672 (define-public texlive-latex-psnfss
1673 (package
1674 (name "texlive-latex-psnfss")
1675 (version (number->string %texlive-revision))
1676 (source (origin
1677 (method svn-fetch)
1678 (uri (texlive-ref "latex" "psnfss"))
1679 (file-name (string-append name "-" version "-checkout"))
1680 (sha256
1681 (base32
1682 "1920dcq8613yzprasbg80fh4fcjcidvvl54wkx438nimyxcri7qz"))))
1683 (build-system texlive-build-system)
1684 (arguments '(#:tex-directory "latex/psnfss"))
1685 (home-page "https://www.ctan.org/pkg/psnfss")
1686 (synopsis "Font support for common PostScript fonts")
1687 (description
1688 "The PSNFSS collection includes a set of files that provide a complete
1689 working setup of the LaTeX font selection scheme (NFSS2) for use with common
1690 PostScript fonts. It covers the so-called \"Base\" fonts (which are built
1691 into any Level 2 PostScript printing device and the Ghostscript interpreter)
1692 and a number of free fonts. It provides font definition files, macros and
1693 font metrics. The bundle as a whole is part of the LaTeX required set of
1694 packages.")
1695 (license license:lppl1.2+)))
1696
1697 (define-public texlive-union
1698 (lambda* (#:optional (packages '()))
1699 "Return 'texlive-union' package which is a union of PACKAGES and the
1700 standard LaTeX packages."
1701 (let ((default-packages
1702 (list texlive-bin
1703 texlive-dvips
1704 texlive-fontname
1705 texlive-fonts-cm
1706 texlive-fonts-latex
1707 texlive-metafont-base
1708 texlive-latex-base
1709 ;; LaTeX packages from the "required" set.
1710 texlive-latex-amsmath
1711 texlive-latex-amscls
1712 texlive-latex-babel
1713 texlive-generic-babel-english
1714 texlive-latex-cyrillic
1715 texlive-latex-graphics
1716 texlive-latex-psnfss
1717 texlive-latex-tools)))
1718 (package
1719 (name "texlive-union")
1720 (version (number->string %texlive-revision))
1721 (source #f)
1722 (build-system trivial-build-system)
1723 (arguments
1724 '(#:modules ((guix build union)
1725 (guix build utils)
1726 (guix build texlive-build-system)
1727 (guix build gnu-build-system)
1728 (guix build gremlin)
1729 (guix elf))
1730 #:builder
1731 (begin
1732 (use-modules (ice-9 match)
1733 (srfi srfi-26)
1734 (guix build union)
1735 (guix build utils)
1736 (guix build texlive-build-system))
1737 (let* ((out (assoc-ref %outputs "out"))
1738 (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf")))
1739 ;; Build a modifiable union of all inputs (but exclude bash)
1740 (match (filter (match-lambda
1741 ((name . _)
1742 (not (string=? "bash" name))))
1743 %build-inputs)
1744 (((names . directories) ...)
1745 (union-build (assoc-ref %outputs "out")
1746 directories
1747 #:create-all-directories? #t
1748 #:log-port (%make-void-port "w"))))
1749
1750 ;; The configuration file "texmf.cnf" is provided by the
1751 ;; "texlive-bin" package. We take it and override only the
1752 ;; setting for TEXMFROOT and TEXMF. This file won't be consulted
1753 ;; by default, though, so we still need to set TEXMFCNF.
1754 (substitute* texmf.cnf
1755 (("^TEXMFROOT = .*")
1756 (string-append "TEXMFROOT = " out "/share\n"))
1757 (("^TEXMF = .*")
1758 "TEXMF = $TEXMFROOT/share/texmf-dist\n"))
1759 (setenv "PATH" (string-append (assoc-ref %build-inputs "bash")
1760 "/bin"))
1761 (for-each
1762 (cut wrap-program <>
1763 `("TEXMFCNF" ":" = (,(dirname texmf.cnf)))
1764 `("TEXMF" ":" = (,(string-append out "/share/texmf-dist"))))
1765 (find-files (string-append out "/bin") ".*"))
1766 #t))))
1767 (inputs
1768 `(("bash" ,bash)
1769 ,@(map (lambda (package)
1770 (list (package-name package) package))
1771 (append default-packages packages))))
1772 (home-page (package-home-page texlive-bin))
1773 (synopsis "Union of TeX Live packages")
1774 (description "This package provides a subset of the TeX Live
1775 distribution.")
1776 (license (fold (lambda (package result)
1777 (match (package-license package)
1778 ((lst ...)
1779 (append lst result))
1780 ((? license:license? license)
1781 (cons license result))))
1782 '()
1783 (append default-packages packages)))))))
1784
1785 (define-public texlive-tiny
1786 (package
1787 (inherit (texlive-union))
1788 (name "texlive-tiny")
1789 (description "This is a very limited subset of the TeX Live distribution.
1790 It includes little more than the required set of LaTeX packages.")))
1791
1792 (define-public texlive-latex-amsrefs
1793 (package
1794 (name "texlive-latex-amsrefs")
1795 (version (number->string %texlive-revision))
1796 (source (origin
1797 (method svn-fetch)
1798 (uri (texlive-ref "latex" "amsrefs"))
1799 (file-name (string-append name "-" version "-checkout"))
1800 (sha256
1801 (base32
1802 "15i4k479dwrpr0kspmm70g1yn4p3dkh0whyzmr93hph9bggnh1i1"))))
1803 (build-system texlive-build-system)
1804 (arguments '(#:tex-directory "latex/amsrefs"))
1805 (home-page "https://www.ctan.org/pkg/amsrefs")
1806 (synopsis "LaTeX-based replacement for BibTeX")
1807 (description
1808 "Amsrefs is a LaTeX package for bibliographies that provides an archival
1809 data format similar to the format of BibTeX database files, but adapted to
1810 make direct processing by LaTeX easier. The package can be used either in
1811 conjunction with BibTeX or as a replacement for BibTeX.")
1812 (license license:lppl1.3+)))
1813
1814 (define-public texlive-latex-bigfoot
1815 (package
1816 (name "texlive-latex-bigfoot")
1817 (version (number->string %texlive-revision))
1818 (source (origin
1819 (method svn-fetch)
1820 (uri (texlive-ref "latex" "bigfoot"))
1821 (file-name (string-append name "-" version "-checkout"))
1822 (sha256
1823 (base32
1824 "092g8alnsdwlgl1isdnqrr32l161994295kadr1n05d81xgj5wnv"))))
1825 (build-system texlive-build-system)
1826 (arguments
1827 '(#:tex-directory "latex/bigfoot"
1828 #:phases
1829 (modify-phases %standard-phases
1830 (add-after 'unpack 'remove-generated-file
1831 (lambda _
1832 (for-each delete-file (find-files "." "\\.drv$"))
1833 #t)))))
1834 (home-page "https://www.ctan.org/pkg/bigfoot")
1835 (synopsis "Footnotes for critical editions")
1836 (description
1837 "This package aims to provide a one-stop solution to requirements for
1838 footnotes. It offers: Multiple footnote apparatus superior to that of
1839 @code{manyfoot}. Footnotes can be formatted in separate paragraphs, or be run
1840 into a single paragraph (this choice may be selected per footnote series);
1841 Things you might have expected (such as @code{\\verb}-like material in
1842 footnotes, and color selections over page breaks) now work. Note that the
1843 majority of the bigfoot package's interface is identical to that of
1844 @code{manyfoot}; users should seek information from that package's
1845 documentation. The bigfoot bundle also provides the @code{perpage} and
1846 @code{suffix} packages.")
1847 (license license:gpl2+)))
1848
1849 (define-public texlive-latex-blindtext
1850 (package
1851 (name "texlive-latex-blindtext")
1852 (version (number->string %texlive-revision))
1853 (source (origin
1854 (method svn-fetch)
1855 (uri (texlive-ref "latex" "blindtext"))
1856 (file-name (string-append name "-" version "-checkout"))
1857 (sha256
1858 (base32
1859 "1jrja9b1pzdh9zgv1jh807w4xijqja58n2mqny6dkwicv8qfgbfg"))))
1860 (build-system texlive-build-system)
1861 (arguments '(#:tex-directory "latex/blindtext"))
1862 (home-page "https://www.ctan.org/pkg/blindtext")
1863 (synopsis "Producing 'blind' text for testing")
1864 (description
1865 "The package provides the commands @code{\\blindtext} and
1866 @code{\\Blindtext} for creating \"blind\" text useful in testing new classes
1867 and packages, and @code{\\blinddocument}, @code{\\Blinddocument} for creating
1868 an entire random document with sections, lists, mathematics, etc. The package
1869 supports three languages, @code{english}, @code{(n)german} and @code{latin};
1870 the @code{latin} option provides a short \"lorem ipsum\" (for a fuller \"lorem
1871 ipsum\" text, see the @code{lipsum} package).")
1872 (license license:lppl)))
1873
1874 (define-public texlive-latex-dinbrief
1875 (package
1876 (name "texlive-latex-dinbrief")
1877 (version (number->string %texlive-revision))
1878 (source (origin
1879 (method svn-fetch)
1880 (uri (texlive-ref "latex" "dinbrief"))
1881 (file-name (string-append name "-" version "-checkout"))
1882 (sha256
1883 (base32
1884 "0lb0kiy8fxzl6cnhcw1sggy6jrjvcd6kj1kkw3k9lkimm388yjz6"))))
1885 (build-system texlive-build-system)
1886 (arguments
1887 '(#:tex-directory "latex/dinbrief"
1888 #:phases
1889 (modify-phases %standard-phases
1890 (add-after 'unpack 'remove-generated-file
1891 (lambda _
1892 (delete-file "dinbrief.drv")
1893 #t)))))
1894 (home-page "https://www.ctan.org/pkg/dinbrief")
1895 (synopsis "German letter DIN style")
1896 (description
1897 "This package implements a document layout for writing letters according
1898 to the rules of DIN (Deutsches Institut für Normung, German standardisation
1899 institute). A style file for LaTeX 2.09 (with limited support of the
1900 features) is part of the package. Since the letter layout is based on a
1901 German standard, the user guide is written in German, but most macros have
1902 English names from which the user can recognize what they are used for. In
1903 addition there are example files showing how letters may be created with the
1904 package.")
1905 (license license:lppl)))
1906
1907 (define-public texlive-latex-draftwatermark
1908 (package
1909 (name "texlive-latex-draftwatermark")
1910 (version (number->string %texlive-revision))
1911 (source (origin
1912 (method svn-fetch)
1913 (uri (texlive-ref "latex" "draftwatermark"))
1914 (file-name (string-append name "-" version "-checkout"))
1915 (sha256
1916 (base32
1917 "1zyl2pcz2x529gzj5m93a1s4ipymdabf7qdjl3l1673pizd4hfyv"))))
1918 (build-system texlive-build-system)
1919 (arguments '(#:tex-directory "latex/draftwatermark"))
1920 (home-page "https://www.ctan.org/pkg/draftwatermark")
1921 (synopsis "Put a grey textual watermark on document pages")
1922 (description
1923 "This package provides a means to add a textual, light grey watermark on
1924 every page or on the first page of a document. Typical usage may consist in
1925 writing words such as DRAFT or CONFIDENTIAL across document pages. The
1926 package performs a similar function to that of @code{draftcopy}, but its
1927 implementation is output device independent, and made very simple by relying
1928 on everypage.")
1929 (license license:lppl1.3+)))
1930
1931 (define-public texlive-latex-environ
1932 (package
1933 (name "texlive-latex-environ")
1934 (version (number->string %texlive-revision))
1935 (source (origin
1936 (method svn-fetch)
1937 (uri (texlive-ref "latex" "environ"))
1938 (file-name (string-append name "-" version "-checkout"))
1939 (sha256
1940 (base32
1941 "06h28b26dyjkj9shksphgqfv4130jfkwhbw737hxn7d3yvdfffyd"))))
1942 (build-system texlive-build-system)
1943 (arguments '(#:tex-directory "latex/environ"))
1944 (home-page "https://www.ctan.org/pkg/environ")
1945 (synopsis "New interface for environments in LaTeX")
1946 (description
1947 "This package provides the @code{\\collect@@body} command (as in
1948 @code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},
1949 for collecting the body text of an environment. These commands are used to
1950 define a new author interface to creating new environments.")
1951 (license license:lppl)))
1952
1953 (define-public texlive-latex-eqparbox
1954 (package
1955 (name "texlive-latex-eqparbox")
1956 (version (number->string %texlive-revision))
1957 (source (origin
1958 (method svn-fetch)
1959 (uri (texlive-ref "latex" "eqparbox"))
1960 (file-name (string-append name "-" version "-checkout"))
1961 (sha256
1962 (base32
1963 "0pvmhsd4xmpil0m3c7qcgwilbk266mlkzv03g0jr8r3zd8jxlyzq"))))
1964 (build-system texlive-build-system)
1965 (arguments '(#:tex-directory "latex/eqparbox"))
1966 (home-page "https://www.ctan.org/pkg/eqparbox")
1967 (synopsis "Create equal-widthed parboxes")
1968 (description
1969 "LaTeX users sometimes need to ensure that two or more blocks of text
1970 occupy the same amount of horizontal space on the page. To that end, the
1971 @code{eqparbox} package defines a new command, @code{\\eqparbox}, which works
1972 just like @code{\\parbox}, except that instead of specifying a width, one
1973 specifies a tag. All @code{eqparbox}es with the same tag---regardless of
1974 where they are in the document---will stretch to fit the widest
1975 @code{eqparbox} with that tag. This simple, equal-width mechanism can be used
1976 for a variety of alignment purposes, as is evidenced by the examples in
1977 @code{eqparbox}'s documentation. Various derivatives of @code{\\eqparbox} are
1978 also provided.")
1979 (license license:lppl1.3+)))
1980
1981 (define-public texlive-latex-expdlist
1982 (package
1983 (name "texlive-latex-expdlist")
1984 (version (number->string %texlive-revision))
1985 (source (origin
1986 (method svn-fetch)
1987 (uri (texlive-ref "latex" "expdlist"))
1988 (file-name (string-append name "-" version "-checkout"))
1989 (sha256
1990 (base32
1991 "1x7byk6x10njir3y9rm56glhdzrxwqag7gsnw2sqn1czlq525w7r"))))
1992 (build-system texlive-build-system)
1993 (arguments
1994 '(#:tex-directory "latex/expdlist"
1995 #:phases
1996 (modify-phases %standard-phases
1997 (add-after 'unpack 'remove-generated-file
1998 (lambda _
1999 (for-each delete-file
2000 (find-files "." "\\.drv$"))
2001 #t)))))
2002 (home-page "https://www.ctan.org/pkg/expdlist")
2003 (synopsis "Expanded description environments")
2004 (description
2005 "The package provides additional features for the LaTeX
2006 @code{description} environment, including adjustable left margin. The package
2007 also allows the user to \"break\" a list (for example, to interpose a comment)
2008 without affecting the structure of the list (this works for @code{itemize} and
2009 @code{enumerate} lists, and numbered lists remain in sequence).")
2010 (license license:lppl)))
2011
2012 (define-public texlive-latex-filemod
2013 (package
2014 (name "texlive-latex-filemod")
2015 (version (number->string %texlive-revision))
2016 (source (origin
2017 (method svn-fetch)
2018 (uri (svn-reference
2019 (url (string-append "svn://www.tug.org/texlive/tags/"
2020 %texlive-tag "/Master/texmf-dist/"
2021 "/tex/latex/filemod"))
2022 (revision %texlive-revision)))
2023 (file-name (string-append name "-" version "-checkout"))
2024 (sha256
2025 (base32
2026 "0vpxilfw69xv78f03g0j0zw0bw4qcn36whqp8phcq48qk1ax2kr2"))))
2027 (build-system trivial-build-system)
2028 (arguments
2029 `(#:modules ((guix build utils))
2030 #:builder
2031 (begin
2032 (use-modules (guix build utils))
2033 (let ((target (string-append (assoc-ref %outputs "out")
2034 "/share/texmf-dist/tex/latex/filemod")))
2035 (mkdir-p target)
2036 (copy-recursively (assoc-ref %build-inputs "source") target)
2037 #t))))
2038 (home-page "https://www.ctan.org/pkg/filemod")
2039 (synopsis "Provide file modification times, and compare them")
2040 (description
2041 "This package provides macros to read and compare the modification dates
2042 of files. The files may be @code{.tex} files, images or other files (as long
2043 as they can be found by LaTeX). It uses the @code{\\pdffilemoddate} primitive
2044 of pdfLaTeX to find the file modification date as PDF date string, parses the
2045 string and returns the value to the user. The package will also work for DVI
2046 output with recent versions of the LaTeX compiler which uses pdfLaTeX in DVI
2047 mode. The functionality is provided by purely expandable macros or by faster
2048 but non-expandable ones.")
2049 (license license:lppl1.3+)))
2050
2051 (define-public texlive-latex-ifplatform
2052 (package
2053 (name "texlive-latex-ifplatform")
2054 (version (number->string %texlive-revision))
2055 (source (origin
2056 (method svn-fetch)
2057 (uri (texlive-ref "latex" "ifplatform"))
2058 (file-name (string-append name "-" version "-checkout"))
2059 (sha256
2060 (base32
2061 "11gvvjvmdfs9b7mm19yf80zwkx49jqcbq6g8qb9y5ns1r1qvnixp"))))
2062 (build-system texlive-build-system)
2063 (arguments '(#:tex-directory "latex/ifplatform"))
2064 (home-page "https://www.ctan.org/pkg/ifplatform")
2065 (synopsis "Conditionals to test which platform is being used")
2066 (description
2067 "This package uses the (La)TeX extension @code{-shell-escape} to
2068 establish whether the document is being processed on a Windows or on a
2069 Unix-like system, or on Cygwin (Unix environment over a Windows system).
2070 Booleans provided are: @code{\\ifwindows}, @code{\\iflinux}, @code{\\ifmacosx}
2071 and @code{\\ifcygwin}. The package also preserves the output of @code{uname}
2072 on a Unix-like system, which may be used to distinguish between various
2073 classes of systems.")
2074 (license license:lppl)))
2075
2076 (define-public texlive-latex-natbib
2077 (package
2078 (name "texlive-latex-natbib")
2079 (version (number->string %texlive-revision))
2080 (source (origin
2081 (method svn-fetch)
2082 (uri (texlive-ref "latex" "natbib"))
2083 (file-name (string-append name "-" version "-checkout"))
2084 (sha256
2085 (base32
2086 "0aqliq0nwblxyrzhwhv77pnmk7qh2y3prgq7z7qhwcbgz5kisld7"))))
2087 (build-system texlive-build-system)
2088 (arguments '(#:tex-directory "latex/natbib"))
2089 (home-page "https://www.ctan.org/pkg/natbib")
2090 (synopsis "Flexible bibliography support")
2091 (description
2092 "This bundle provides a package that implements both author-year and
2093 numbered references, as well as much detailed of support for other
2094 bibliography use. Also provided are versions of the standard BibTeX styles
2095 that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat},
2096 @code{abbrnat}. The bibliography styles produced by @code{custom-bib} are
2097 designed from the start to be compatible with @code{natbib}.")
2098 (license license:lppl)))
2099
2100 (define-public texlive-latex-psfrag
2101 (package
2102 (name "texlive-latex-psfrag")
2103 (version (number->string %texlive-revision))
2104 (source (origin
2105 (method svn-fetch)
2106 (uri (texlive-ref "latex" "psfrag"))
2107 (file-name (string-append name "-" version "-checkout"))
2108 (sha256
2109 (base32
2110 "1dxbl5il7wbbsp0v45vk884xi1192wxw03849pb1g5q4x808n352"))))
2111 (build-system texlive-build-system)
2112 (arguments '(#:tex-directory "latex/psfrag"))
2113 (home-page "https://www.ctan.org/pkg/psfrag")
2114 (synopsis "Replace strings in encapsulated PostScript figures")
2115 (description
2116 "This package allows LaTeX constructions (equations, picture
2117 environments, etc.) to be precisely superimposed over Encapsulated PostScript
2118 figures, using your own favorite drawing tool to create an EPS figure and
2119 placing simple text \"tags\" where each replacement is to be placed, with
2120 PSfrag automatically removing these tags from the figure and replacing them
2121 with a user specified LaTeX construction, properly aligned, scaled, and/or
2122 rotated.")
2123 (license (license:fsf-free "file://psfrag.dtx"))))
2124
2125 (define-public texlive-latex-pstool
2126 (package
2127 (name "texlive-latex-pstool")
2128 (version (number->string %texlive-revision))
2129 (source (origin
2130 (method svn-fetch)
2131 (uri (texlive-ref "latex" "pstool"))
2132 (file-name (string-append name "-" version "-checkout"))
2133 (sha256
2134 (base32
2135 "1kwlk1x67lad4xb7gpkxqgdlxwpi6nvq1r9wika7m92abmyf18h3"))))
2136 (build-system texlive-build-system)
2137 (arguments
2138 '(#:tex-directory "latex/pstool"
2139 #:tex-format "latex"))
2140 (inputs
2141 `(("texlive-fonts-cm" ,texlive-fonts-cm)
2142 ("texlive-latex-filecontents" ,texlive-latex-filecontents)))
2143 (propagated-inputs
2144 `(("texlive-latex-bigfoot" ,texlive-latex-bigfoot)
2145 ("texlive-latex-filemod" ,texlive-latex-filemod)
2146 ("texlive-latex-graphics" ,texlive-latex-graphics)
2147 ("texlive-latex-ifplatform" ,texlive-latex-ifplatform)
2148 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
2149 ("texlive-latex-psfrag" ,texlive-latex-psfrag)
2150 ("texlive-latex-trimspaces" ,texlive-latex-trimspaces)))
2151 (home-page "https://www.ctan.org/pkg/pstool")
2152 (synopsis "Process PostScript graphisc within pdfLaTeX documents")
2153 (description
2154 "This is a package for processing PostScript graphics with @code{psfrag}
2155 labels within pdfLaTeX documents. Every graphic is compiled individually,
2156 drastically speeding up compilation time when only a single figure needs
2157 re-processing.")
2158 (license license:lppl)))
2159
2160 (define-public texlive-latex-seminar
2161 (package
2162 (name "texlive-latex-seminar")
2163 (version (number->string %texlive-revision))
2164 (source (origin
2165 (method svn-fetch)
2166 (uri (svn-reference
2167 (url (string-append "svn://www.tug.org/texlive/tags/"
2168 %texlive-tag "/Master/texmf-dist/"
2169 "/tex/latex/seminar"))
2170 (revision %texlive-revision)))
2171 (file-name (string-append name "-" version "-checkout"))
2172 (sha256
2173 (base32
2174 "0y4i651b75y6006n03x8n86bsqvjsailvvz9bhzy51dzsznqidq0"))))
2175 (build-system texlive-build-system)
2176 (arguments '(#:tex-directory "latex/seminar"))
2177 (home-page "https://www.ctan.org/pkg/seminar")
2178 (synopsis "Make overhead slides")
2179 ;; TODO: This package may need fancybox and xcomment at runtime.
2180 (description
2181 "This package provides a class that produces overhead
2182 slides (transparencies), with many facilities. Seminar is not nowadays
2183 reckoned a good basis for a presentation — users are advised to use more
2184 recent classes such as powerdot or beamer, both of which are tuned to
2185 21st-century presentation styles.")
2186 (license license:lppl1.2+)))
2187
2188 (define-public texlive-latex-trimspaces
2189 (package
2190 (name "texlive-latex-trimspaces")
2191 (version (number->string %texlive-revision))
2192 (source (origin
2193 (method svn-fetch)
2194 (uri (texlive-ref "latex" "trimspaces"))
2195 (file-name (string-append name "-" version "-checkout"))
2196 (sha256
2197 (base32
2198 "0da00lb32am4g63mn96625wg48p3pj3spx79lajrk17d549apwqa"))))
2199 (build-system texlive-build-system)
2200 (arguments
2201 '(#:tex-directory "latex/trimspaces"
2202 #:tex-format "latex"
2203 #:phases
2204 (modify-phases %standard-phases
2205 (add-after 'unpack 'fix-bug
2206 (lambda _
2207 ;; The "ins" file refers to the wrong source file.
2208 (substitute* "trimspaces.ins"
2209 (("pstool.tex") "trimspaces.tex"))
2210 #t)))))
2211 (inputs
2212 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
2213 (home-page "https://www.ctan.org/pkg/trimspaces")
2214 (synopsis "Trim spaces around an argument or within a macro")
2215 (description
2216 "This very short package allows you to expandably remove spaces around a
2217 token list (commands are provided to remove spaces before, spaces after, or
2218 both); or to remove surrounding spaces within a macro definition, or to define
2219 space-stripped macros.")
2220 (license license:lppl)))
2221
2222 (define-public texlive-latex-capt-of
2223 (package
2224 (name "texlive-latex-capt-of")
2225 (version (number->string %texlive-revision))
2226 (source (origin
2227 (method svn-fetch)
2228 (uri (svn-reference
2229 (url (string-append "svn://www.tug.org/texlive/tags/"
2230 %texlive-tag "/Master/texmf-dist/"
2231 "/tex/latex/capt-of"))
2232 (revision %texlive-revision)))
2233 (file-name (string-append name "-" version "-checkout"))
2234 (sha256
2235 (base32
2236 "1y2s50f6lz0jx2748lj3iy56hrpcczgnbzmvphxv7aqndyyamd4x"))))
2237 (build-system trivial-build-system)
2238 (arguments
2239 `(#:modules ((guix build utils))
2240 #:builder
2241 (begin
2242 (use-modules (guix build utils))
2243 (let ((target (string-append (assoc-ref %outputs "out")
2244 "/share/texmf-dist/tex/latex/capt-of")))
2245 (mkdir-p target)
2246 (copy-recursively (assoc-ref %build-inputs "source") target)
2247 #t))))
2248 (home-page "https://www.ctan.org/pkg/capt-of")
2249 (synopsis "Captions on more than floats")
2250 (description
2251 "This package defines a command @code{\\captionof} for putting a caption
2252 to something that's not a float.")
2253 (license license:lppl)))
2254
2255 (define-public texlive-latex-etoolbox
2256 (package
2257 (name "texlive-latex-etoolbox")
2258 (version (number->string %texlive-revision))
2259 (source (origin
2260 (method svn-fetch)
2261 (uri (svn-reference
2262 (url (string-append "svn://www.tug.org/texlive/tags/"
2263 %texlive-tag "/Master/texmf-dist/"
2264 "/tex/latex/etoolbox"))
2265 (revision %texlive-revision)))
2266 (file-name (string-append name "-" version "-checkout"))
2267 (sha256
2268 (base32
2269 "0016bscnpima9krrg2569mva78xzwnygzlvg87dznsm6gf8g589v"))))
2270 (build-system trivial-build-system)
2271 (arguments
2272 `(#:modules ((guix build utils))
2273 #:builder
2274 (begin
2275 (use-modules (guix build utils))
2276 (let ((target (string-append (assoc-ref %outputs "out")
2277 "/share/texmf-dist/tex/latex/etoolbox")))
2278 (mkdir-p target)
2279 (copy-recursively (assoc-ref %build-inputs "source") target)
2280 #t))))
2281 (home-page "https://www.ctan.org/pkg/etoolbox")
2282 (synopsis "e-TeX tools for LaTeX")
2283 (description
2284 "This package is a toolbox of programming facilities geared primarily
2285 towards LaTeX class and package authors. It provides LaTeX frontends to some
2286 of the new primitives provided by e-TeX as well as some generic tools which
2287 are not strictly related to e-TeX but match the profile of this package. The
2288 package provides functions that seem to offer alternative ways of implementing
2289 some LaTeX kernel commands; nevertheless, the package will not modify any part
2290 of the LaTeX kernel.")
2291 (license license:lppl1.3+)))
2292
2293 (define-public texlive-latex-fncychap
2294 (package
2295 (name "texlive-latex-fncychap")
2296 (version (number->string %texlive-revision))
2297 (source (origin
2298 (method svn-fetch)
2299 (uri (svn-reference
2300 (url (string-append "svn://www.tug.org/texlive/tags/"
2301 %texlive-tag "/Master/texmf-dist/"
2302 "/tex/latex/fncychap"))
2303 (revision %texlive-revision)))
2304 (file-name (string-append name "-" version "-checkout"))
2305 (sha256
2306 (base32
2307 "0fdk84dbicfjfprkz6vk15x36mvlhaw9isjmgkc56jp2khwjswwq"))))
2308 (build-system trivial-build-system)
2309 (arguments
2310 `(#:modules ((guix build utils))
2311 #:builder
2312 (begin
2313 (use-modules (guix build utils))
2314 (let ((target (string-append (assoc-ref %outputs "out")
2315 "/share/texmf-dist/tex/latex/fncychap")))
2316 (mkdir-p target)
2317 (copy-recursively (assoc-ref %build-inputs "source") target)
2318 #t))))
2319 (home-page "https://www.ctan.org/pkg/fncychap")
2320 (synopsis "Seven predefined chapter heading styles")
2321 (description
2322 "This package provides seven predefined chapter heading styles. Each
2323 style can be modified using a set of simple commands. Optionally one can
2324 modify the formatting routines in order to create additional chapter
2325 headings.")
2326 (license license:lppl1.3+)))
2327
2328 (define-public texlive-latex-framed
2329 (package
2330 (name "texlive-latex-framed")
2331 (version (number->string %texlive-revision))
2332 (source (origin
2333 (method svn-fetch)
2334 (uri (svn-reference
2335 (url (string-append "svn://www.tug.org/texlive/tags/"
2336 %texlive-tag "/Master/texmf-dist/"
2337 "/tex/latex/framed"))
2338 (revision %texlive-revision)))
2339 (file-name (string-append name "-" version "-checkout"))
2340 (sha256
2341 (base32
2342 "14a4ydqsvp3vcfavl21jrv0ybiqypaaqzg2q2cs3rzkandg7w98x"))))
2343 (build-system trivial-build-system)
2344 (arguments
2345 `(#:modules ((guix build utils))
2346 #:builder
2347 (begin
2348 (use-modules (guix build utils))
2349 (let ((target (string-append (assoc-ref %outputs "out")
2350 "/share/texmf-dist/tex/latex/framed")))
2351 (mkdir-p target)
2352 (copy-recursively (assoc-ref %build-inputs "source") target)
2353 #t))))
2354 (home-page "https://www.ctan.org/pkg/framed")
2355 (synopsis "Framed or shaded regions that can break across pages")
2356 (description
2357 "The package creates three environments: @code{framed}, which puts an
2358 ordinary frame box around the region, @code{shaded}, which shades the region,
2359 and @code{leftbar}, which places a line at the left side. The environments
2360 allow a break at their start (the @code{\\FrameCommand} enables creation of a
2361 title that is “attached” to the environment); breaks are also allowed in the
2362 course of the framed/shaded matter. There is also a command
2363 @code{\\MakeFramed} to make your own framed-style environments.")
2364 ;; The header states: "These macros may be freely transmitted, reproduced,
2365 ;; or modified for any purpose provided that this notice is left intact."
2366 (license (license:fsf-free "file://framed.sty"))))
2367
2368 (define-public texlive-latex-g-brief
2369 (package
2370 (name "texlive-latex-g-brief")
2371 (version (number->string %texlive-revision))
2372 (source (origin
2373 (method svn-fetch)
2374 (uri (texlive-ref "latex" "g-brief"))
2375 (file-name (string-append name "-" version "-checkout"))
2376 (sha256
2377 (base32
2378 "0sikazkg0dpkcpzlbqw8qzxr81paf2f443vsrh14jnw7s4gswvc5"))))
2379 (build-system texlive-build-system)
2380 (arguments
2381 '(#:tex-directory "latex/g-brief"
2382 #:phases
2383 (modify-phases %standard-phases
2384 (add-after 'unpack 'remove-generated-file
2385 (lambda _
2386 (delete-file "g-brief.drv")
2387 #t)))))
2388 (home-page "https://www.ctan.org/pkg/g-brief")
2389 (synopsis "Letter document class")
2390 (description
2391 "This package is designed for formatting formless letters in German; it
2392 can also be used for English (by those who can read the documentation). There
2393 are LaTeX 2.09 @code{documentstyle} and LaTeX 2e class files for both an
2394 \"old\" and a \"new\" version of g-brief.")
2395 (license license:lppl)))
2396
2397 (define-public texlive-latex-galois
2398 (package
2399 (name "texlive-latex-galois")
2400 (version (number->string %texlive-revision))
2401 (source (origin
2402 (method svn-fetch)
2403 (uri (texlive-ref "latex" "galois"))
2404 (file-name (string-append name "-" version "-checkout"))
2405 (sha256
2406 (base32
2407 "0d4l0msk8j5pi95xnmm9wygv1vbpkwkv5amx9l0km86cs79jpp1h"))))
2408 (build-system texlive-build-system)
2409 (arguments '(#:tex-directory "latex/galois"))
2410 (home-page "https://www.ctan.org/pkg/galois")
2411 (synopsis "Typeset Galois connections")
2412 (description
2413 "The package deals with connections in two-dimensional style, optionally
2414 in colour.")
2415 (license license:lppl)))
2416
2417 (define-public texlive-latex-gcite
2418 (package
2419 (name "texlive-latex-gcite")
2420 (version (number->string %texlive-revision))
2421 (source (origin
2422 (method svn-fetch)
2423 (uri (texlive-ref "latex" "gcite"))
2424 (file-name (string-append name "-" version "-checkout"))
2425 (sha256
2426 (base32
2427 "03g9by54yrypn599y98r1xh7qw0bbbmpzq0bfwpj6j5q5rkl1mfa"))))
2428 (build-system texlive-build-system)
2429 (arguments '(#:tex-directory "latex/gcite"))
2430 (home-page "https://www.ctan.org/pkg/gcite")
2431 (synopsis "Citations in a reader-friendly style")
2432 (description
2433 "The package allows citations in the German style, which is considered by
2434 many to be particularly reader-friendly. The citation provides a small amount
2435 of bibliographic information in a footnote on the page where each citation is
2436 made. It combines a desire to eliminate unnecessary page-turning with the
2437 look-up efficiency afforded by numeric citations. The package makes use of
2438 BibLaTeX, and is considered experimental.")
2439 (license license:lppl1.3+)))
2440
2441 (define-public texlive-latex-geometry
2442 (package
2443 (name "texlive-latex-geometry")
2444 (version (number->string %texlive-revision))
2445 (source (origin
2446 (method svn-fetch)
2447 (uri (texlive-ref "latex" "geometry"))
2448 (file-name (string-append name "-" version "-checkout"))
2449 (sha256
2450 (base32
2451 "1r2kfcwclg33yk5z8mvlagwxj7nr1mc3w4bdpmhrwv6dn8mrbvw8"))))
2452 (build-system texlive-build-system)
2453 (arguments '(#:tex-directory "latex/geometry"))
2454 (home-page "https://www.ctan.org/pkg/geometry")
2455 (synopsis "Flexible and complete interface to document dimensions")
2456 (description
2457 "This package provides an easy and flexible user interface to customize
2458 page layout, implementing auto-centering and auto-balancing mechanisms so that
2459 the users have only to give the least description for the page layout. The
2460 package knows about all the standard paper sizes, so that the user need not
2461 know what the nominal \"real\" dimensions of the paper are, just its standard
2462 name (such as a4, letter, etc.). An important feature is the package's
2463 ability to communicate the paper size it's set up to the output.")
2464 (license license:lppl)))
2465
2466 (define-public texlive-latex-mdwtools
2467 (package
2468 (name "texlive-latex-mdwtools")
2469 (version (number->string %texlive-revision))
2470 (source (origin
2471 (method svn-fetch)
2472 (uri (texlive-ref "latex" "mdwtools"))
2473 (file-name (string-append name "-" version "-checkout"))
2474 (sha256
2475 (base32
2476 "0caxs74hla28hc67csf5i5ahadx97w8vxh3mdmsprxbpd1mr7ssg"))))
2477 (build-system texlive-build-system)
2478 (arguments '(#:tex-directory "latex/mdwtools"))
2479 (home-page "https://www.ctan.org/pkg/mdwtools")
2480 (synopsis "Miscellaneous tools by Mark Wooding")
2481 (description
2482 "This collection of tools includes: @code{atsupport} for short commands
2483 starting with @code{@@}, macros to sanitize the OT1 encoding of the
2484 @code{cmtt} fonts; a @code{doafter} command; improved @code{footnote} support;
2485 @code{mathenv} for various alignment in maths; list handling; @code{mdwmath}
2486 which adds some minor changes to LaTeX maths; a rewrite of LaTeX's tabular and
2487 array environments; verbatim handling; and syntax diagrams.")
2488 (license license:gpl3+)))
2489
2490 (define-public texlive-latex-polyglossia
2491 (package
2492 (name "texlive-latex-polyglossia")
2493 (version (number->string %texlive-revision))
2494 (source (origin
2495 (method svn-fetch)
2496 (uri (texlive-ref "latex" "polyglossia"))
2497 (file-name (string-append name "-" version "-checkout"))
2498 (sha256
2499 (base32
2500 "09mvszd5qgqg4cfglpj5qxyzjz190ppb9p8gnsnjydwp1akvhayf"))))
2501 (build-system texlive-build-system)
2502 (arguments '(#:tex-directory "latex/polyglossia"))
2503 (home-page "https://www.ctan.org/pkg/polyglossia")
2504 (synopsis "Alternative to babel for XeLaTeX and LuaLaTeX")
2505 (description
2506 "This package provides a complete Babel replacement for users of LuaLaTeX
2507 and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least.")
2508 (license license:lppl1.3+)))
2509
2510 (define-public texlive-latex-supertabular
2511 (package
2512 (name "texlive-latex-supertabular")
2513 (version (number->string %texlive-revision))
2514 (source (origin
2515 (method svn-fetch)
2516 (uri (texlive-ref "latex" "supertabular"))
2517 (file-name (string-append name "-" version "-checkout"))
2518 (sha256
2519 (base32
2520 "14b2bc7cqz4ckxxycim9sw6jkrr1pahivm1rdbpz5k6hl967w1s3"))))
2521 (build-system texlive-build-system)
2522 (arguments '(#:tex-directory "latex/supertabular"))
2523 (home-page "https://www.ctan.org/pkg/supertabular")
2524 (synopsis "Multi-page tables package")
2525 (description
2526 "This package was a predecessor of @code{longtable}; the newer
2527 package (designed on quite different principles) is easier to use and more
2528 flexible, in many cases, but supertabular retains its usefulness in a few
2529 situations where longtable has problems.")
2530 (license license:lppl1.3+)))
2531
2532 (define-public texlive-tex-texinfo
2533 (package
2534 (name "texlive-tex-texinfo")
2535 (version (number->string %texlive-revision))
2536 (source (origin
2537 (method svn-fetch)
2538 (uri (svn-reference
2539 (url (string-append "svn://www.tug.org/texlive/tags/"
2540 %texlive-tag "/Master/texmf-dist/"
2541 "/tex/texinfo"))
2542 (revision %texlive-revision)))
2543 (file-name (string-append name "-" version "-checkout"))
2544 (sha256
2545 (base32
2546 "09zj2w3lx0y6i2syfjjgizahf86z301dw8p37ln6syfhqhzqdz46"))))
2547 (build-system trivial-build-system)
2548 (arguments
2549 `(#:modules ((guix build utils))
2550 #:builder
2551 (begin
2552 (use-modules (guix build utils))
2553 (let ((target (string-append (assoc-ref %outputs "out")
2554 "/share/texmf-dist/tex/texinfo")))
2555 (mkdir-p target)
2556 (copy-recursively (assoc-ref %build-inputs "source") target)
2557 #t))))
2558 (home-page "https://www.ctan.org/pkg/texinfo")
2559 (synopsis "TeX macros to handle Texinfo files")
2560 (description
2561 "Texinfo is the preferred format for documentation in the GNU project;
2562 the format may be used to produce online or printed output from a single
2563 source. The Texinfo macros may be used to produce printable output using TeX;
2564 other programs in the distribution offer online interactive use (with
2565 hypertext linkages in some cases).")
2566 (license license:gpl3+)))
2567
2568 (define-public texlive-latex-upquote
2569 (package
2570 (name "texlive-latex-upquote")
2571 (version (number->string %texlive-revision))
2572 (source (origin
2573 (method svn-fetch)
2574 (uri (texlive-ref "latex" "upquote"))
2575 (file-name (string-append name "-" version "-checkout"))
2576 (sha256
2577 (base32
2578 "0d1050i973wnxigy0xpky5l7vn4ff7ldhkjpdqsw5s653gagwixp"))))
2579 (build-system texlive-build-system)
2580 (arguments '(#:tex-directory "latex/upquote"))
2581 (home-page "https://www.ctan.org/pkg/upquote")
2582 (synopsis "Show \"realistic\" quotes in verbatim")
2583 (description
2584 "Typewriter-style fonts are best for program listings, but Computer
2585 Modern Typewriter prints @code{`} and @code{'} as bent opening and closing
2586 single quotes. Other fonts, and most programming languages, print @code{`} as
2587 a grave accent and @code{'} upright; @code{'} is used both to open and to
2588 close quoted strings. The package switches the typewriter font to Computer
2589 Modern Typewriter in OT1 encoding, and modifies the behaviour of
2590 @code{verbatim}, @code{verbatim*}, @code{\\verb}, and @code{\\verb*} to print
2591 in the expected way. It does this regardless of other fonts or encodings in
2592 use, so long as the package is loaded after the other fonts were. The package
2593 does not affect @code{\\tt}, @code{\\texttt}, etc.")
2594 (license license:lppl1.2+)))
2595
2596 (define-public texlive-latex-anysize
2597 (package
2598 (name "texlive-latex-anysize")
2599 (version (number->string %texlive-revision))
2600 (source (origin
2601 (method svn-fetch)
2602 (uri (svn-reference
2603 (url (string-append "svn://www.tug.org/texlive/tags/"
2604 %texlive-tag "/Master/texmf-dist/"
2605 "/tex/latex/anysize"))
2606 (revision %texlive-revision)))
2607 (file-name (string-append name "-" version "-checkout"))
2608 (sha256
2609 (base32
2610 "19khwqjlvznc955sijhww3c4zbb0053rvzwv9nz738qknq7y18vb"))))
2611 (build-system trivial-build-system)
2612 (arguments
2613 `(#:modules ((guix build utils))
2614 #:builder
2615 (begin
2616 (use-modules (guix build utils))
2617 (let ((target (string-append (assoc-ref %outputs "out")
2618 "/share/texmf-dist/tex/latex/anysize")))
2619 (mkdir-p target)
2620 (copy-recursively (assoc-ref %build-inputs "source") target)
2621 #t))))
2622 (home-page "https://www.ctan.org/pkg/anysize")
2623 (synopsis "Simple package to set up document margins")
2624 (description
2625 "This is a simple package to set up document margins. This package is
2626 considered obsolete; alternatives are the @code{typearea} package from the
2627 @code{koma-script} bundle, or the @code{geometry} package.")
2628 (license license:public-domain)))
2629
2630 (define-public texlive-latex-appendix
2631 (package
2632 (name "texlive-latex-appendix")
2633 (version (number->string %texlive-revision))
2634 (source (origin
2635 (method svn-fetch)
2636 (uri (texlive-ref "latex" "appendix"))
2637 (file-name (string-append name "-" version "-checkout"))
2638 (sha256
2639 (base32
2640 "0rxfpr8vq3brwx5rc7qn91ixlp9zva4zrms8a579fqa1g5yva7vg"))))
2641 (build-system texlive-build-system)
2642 (arguments '(#:tex-directory "latex/appendix"))
2643 (home-page "https://www.ctan.org/pkg/appendix")
2644 (synopsis "Extra control of appendices")
2645 (description
2646 "The appendix package provides various ways of formatting the titles of
2647 appendices. Also (sub)appendices environments are provided that can be used,
2648 for example, for per chapter/section appendices. An @code{appendices}
2649 environment is provided which can be used instead of the @code{\\appendix}
2650 command.")
2651 (license license:lppl)))
2652
2653 (define-public texlive-latex-changebar
2654 (package
2655 (name "texlive-latex-changebar")
2656 (version (number->string %texlive-revision))
2657 (source (origin
2658 (method svn-fetch)
2659 (uri (texlive-ref "latex" "changebar"))
2660 (file-name (string-append name "-" version "-checkout"))
2661 (sha256
2662 (base32
2663 "1ik4m8pzfsn1grlda6fniqqfwmgj7rfxwg63jdw0p0qv002vc7ik"))))
2664 (build-system texlive-build-system)
2665 (arguments '(#:tex-directory "latex/changebar"))
2666 (home-page "https://www.ctan.org/pkg/changebar")
2667 (synopsis "Generate changebars in LaTeX documents")
2668 (description
2669 "Identify areas of text to be marked with changebars with the
2670 @code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured. The
2671 package uses 'drivers' to place the bars; the available drivers can work with
2672 @code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI
2673 drivers, and VTeX and pdfTeX.")
2674 (license license:lppl)))
2675
2676 (define-public texlive-latex-cmap
2677 (package
2678 (name "texlive-latex-cmap")
2679 (version (number->string %texlive-revision))
2680 (source (origin
2681 (method svn-fetch)
2682 (uri (svn-reference
2683 (url (string-append "svn://www.tug.org/texlive/tags/"
2684 %texlive-tag "/Master/texmf-dist/"
2685 "/tex/latex/cmap"))
2686 (revision %texlive-revision)))
2687 (file-name (string-append name "-" version "-checkout"))
2688 (sha256
2689 (base32
2690 "1s1rv6zgw105w2j6ffhnk914qrix87y1ndzri1q72g2kbr91zlbg"))))
2691 (build-system trivial-build-system)
2692 (arguments
2693 `(#:modules ((guix build utils))
2694 #:builder
2695 (begin
2696 (use-modules (guix build utils))
2697 (let ((target (string-append (assoc-ref %outputs "out")
2698 "/share/texmf-dist/tex/latex/cmap")))
2699 (mkdir-p target)
2700 (copy-recursively (assoc-ref %build-inputs "source") target)
2701 #t))))
2702 (home-page "https://www.tug.org/svn/texlive/tags/texlive-2017.1/\
2703 Master/texmf-dist/tex/latex/cmap/")
2704 (synopsis "CMap support for PDF files")
2705 (description
2706 "This package embeds CMap tables into PDF files to make search and
2707 copy-and-paste functions work properly.")
2708 (license license:lppl)))
2709
2710 (define-public texlive-latex-colortbl
2711 (package
2712 (name "texlive-latex-colortbl")
2713 (version (number->string %texlive-revision))
2714 (source (origin
2715 (method svn-fetch)
2716 (uri (texlive-ref "latex" "colortbl"))
2717 (file-name (string-append name "-" version "-checkout"))
2718 (sha256
2719 (base32
2720 "190pmq8la2rq07xry8bn8z8yywzxv6fqyqaj7yjfj5rgw6x0mas8"))))
2721 (build-system texlive-build-system)
2722 (arguments '(#:tex-directory "latex/colortbl"))
2723 (home-page "https://www.ctan.org/pkg/colortbl")
2724 (synopsis "Add colour to LaTeX tables")
2725 (description
2726 "This package allows rows, columns, and even individual cells in LaTeX
2727 tables to be coloured.")
2728 (license license:lppl)))
2729
2730 (define-public texlive-latex-fancybox
2731 (package
2732 (name "texlive-latex-fancybox")
2733 (version (number->string %texlive-revision))
2734 (source (origin
2735 (method svn-fetch)
2736 (uri (svn-reference
2737 (url (string-append "svn://www.tug.org/texlive/tags/"
2738 %texlive-tag "/Master/texmf-dist/"
2739 "/tex/latex/fancybox"))
2740 (revision %texlive-revision)))
2741 (file-name (string-append name "-" version "-checkout"))
2742 (sha256
2743 (base32
2744 "0smmnaad2q8qwicay1frri990lv65l0k8cwzsvdsyp3jk8kp042w"))))
2745 (build-system trivial-build-system)
2746 (arguments
2747 `(#:modules ((guix build utils))
2748 #:builder
2749 (begin
2750 (use-modules (guix build utils))
2751 (let ((target (string-append (assoc-ref %outputs "out")
2752 "/share/texmf-dist/tex/latex/fancybox")))
2753 (mkdir-p target)
2754 (copy-recursively (assoc-ref %build-inputs "source") target)
2755 #t))))
2756 (home-page "https://www.ctan.org/pkg/fancybox")
2757 (synopsis "Variants of \\fbox and other games with boxes")
2758 (description
2759 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},
2760 @code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for
2761 using box macros and flexible verbatim macros. You can box mathematics,
2762 floats, center, flushleft, and flushright, lists, and pages.")
2763 (license license:lppl1.2+)))
2764
2765 (define-public texlive-latex-fancyhdr
2766 (package
2767 (name "texlive-latex-fancyhdr")
2768 (version (number->string %texlive-revision))
2769 (source (origin
2770 (method svn-fetch)
2771 (uri (svn-reference
2772 (url (string-append "svn://www.tug.org/texlive/tags/"
2773 %texlive-tag "/Master/texmf-dist/"
2774 "/tex/latex/fancyhdr"))
2775 (revision %texlive-revision)))
2776 (file-name (string-append name "-" version "-checkout"))
2777 (sha256
2778 (base32
2779 "04h430agf8aj7ziwyb46xpk95c605rjk1wzhr63m6ylipihidlgw"))))
2780 (build-system trivial-build-system)
2781 (arguments
2782 `(#:modules ((guix build utils))
2783 #:builder
2784 (begin
2785 (use-modules (guix build utils))
2786 (let ((target (string-append (assoc-ref %outputs "out")
2787 "/share/texmf-dist/tex/latex/fancyhdr")))
2788 (mkdir-p target)
2789 (copy-recursively (assoc-ref %build-inputs "source") target)
2790 #t))))
2791 (home-page "https://www.ctan.org/pkg/fancyhdr")
2792 (synopsis "Extensive control of page headers and footers in LaTeX2e")
2793 (description
2794 "The package provides extensive facilities, both for constructing headers
2795 and footers, and for controlling their use (for example, at times when LaTeX
2796 would automatically change the heading style in use).")
2797 (license license:lppl)))
2798
2799 (define-public texlive-latex-float
2800 (package
2801 (name "texlive-latex-float")
2802 (version (number->string %texlive-revision))
2803 (source (origin
2804 (method svn-fetch)
2805 (uri (texlive-ref "latex" "float"))
2806 (file-name (string-append name "-" version "-checkout"))
2807 (sha256
2808 (base32
2809 "0nbl7wylkv22fcdv4p8byhhj575fli6jnqjpkhrkbv8dzwah84nq"))))
2810 (build-system texlive-build-system)
2811 (arguments '(#:tex-directory "latex/float"))
2812 (home-page "https://www.ctan.org/pkg/float")
2813 (synopsis "Improved interface for floating objects")
2814 (description
2815 "This package improves the interface for defining floating objects such
2816 as figures and tables. It introduces the boxed float, the ruled float and the
2817 plaintop float. You can define your own floats and improve the behaviour of
2818 the old ones. The package also provides the @code{H} float modifier option of
2819 the obsolete @code{here} package. You can select this as automatic default
2820 with @code{\\floatplacement{figure}{H}}.")
2821 (license license:lppl)))
2822
2823 (define-public texlive-latex-footmisc
2824 (package
2825 (name "texlive-latex-footmisc")
2826 (version (number->string %texlive-revision))
2827 (source (origin
2828 (method svn-fetch)
2829 (uri (texlive-ref "latex" "footmisc"))
2830 (file-name (string-append name "-" version "-checkout"))
2831 (sha256
2832 (base32
2833 "03x61wwql8nh6zrqiiiq3rb0x7m3pn48c606zapy19y21fybwdxs"))))
2834 (build-system texlive-build-system)
2835 (arguments '(#:tex-directory "latex/footmisc"))
2836 (home-page "https://www.ctan.org/pkg/footmisc")
2837 (synopsis "Range of footnote options")
2838 (description
2839 "This is a collection of ways to change the typesetting of footnotes.
2840 The package provides means of changing the layout of the footnotes themselves,
2841 a way to number footnotes per page, to make footnotes disappear in a
2842 \"moving\" argument, and to deal with multiple references to footnotes from
2843 the same place. The package also has a range of techniques for labelling
2844 footnotes with symbols rather than numbers.")
2845 (license license:lppl1.3+)))
2846
2847 (define-public texlive-latex-listings
2848 (package
2849 (name "texlive-latex-listings")
2850 (version (number->string %texlive-revision))
2851 (source (origin
2852 (method svn-fetch)
2853 (uri (texlive-ref "latex" "listings"))
2854 (file-name (string-append name "-" version "-checkout"))
2855 (sha256
2856 (base32
2857 "1nsn9wp3wl12b36c0sqrim33lf33cr5wky0h4ncnw8lvqgm7h8wf"))))
2858 (build-system texlive-build-system)
2859 (arguments
2860 '(#:tex-directory "latex/listings"
2861 #:build-targets '("listings.ins")))
2862 (home-page "https://www.ctan.org/pkg/listings")
2863 (synopsis "Typeset source code listings using LaTeX")
2864 (description
2865 "The package enables the user to typeset programs (programming code)
2866 within LaTeX; the source code is read directly by TeX---no front-end processor
2867 is needed. Keywords, comments and strings can be typeset using different
2868 styles. Support for @code{hyperref} is provided.")
2869 (license license:lppl1.3+)))
2870
2871 (define-public texlive-latex-jknapltx
2872 (package
2873 (name "texlive-latex-jknapltx")
2874 (version (number->string %texlive-revision))
2875 (source (origin
2876 (method svn-fetch)
2877 (uri (svn-reference
2878 (url (string-append "svn://www.tug.org/texlive/tags/"
2879 %texlive-tag "/Master/texmf-dist/"
2880 "/tex/latex/jknapltx"))
2881 (revision %texlive-revision)))
2882 (file-name (string-append name "-" version "-checkout"))
2883 (sha256
2884 (base32
2885 "0m034x72f2g07icr50gacyxfb9g1lz2rmqh4kqr1qjb421x2kds9"))))
2886 (build-system trivial-build-system)
2887 (arguments
2888 `(#:modules ((guix build utils))
2889 #:builder
2890 (begin
2891 (use-modules (guix build utils))
2892 (let ((target (string-append (assoc-ref %outputs "out")
2893 "/share/texmf-dist/tex/latex/jknapltx")))
2894 (mkdir-p target)
2895 (copy-recursively (assoc-ref %build-inputs "source") target)
2896 #t))))
2897 (home-page "https://www.ctan.org/pkg/jknappen")
2898 (synopsis "Miscellaneous packages by Joerg Knappen")
2899 (description
2900 "This package provides miscellaneous macros by Joerg Knappen, including:
2901 represent counters in greek; Maxwell's non-commutative division;
2902 @code{latin1jk}, @code{latin2jk} and @code{latin3jk}, which are
2903 @code{inputenc} definition files that allow verbatim input in the respective
2904 ISO Latin codes; blackboard bold fonts in maths; use of RSFS fonts in maths;
2905 extra alignments for @code{\\parboxes}; swap Roman and Sans fonts;
2906 transliterate semitic languages; patches to make (La)TeX formulae embeddable
2907 in SGML; use maths minus in text as appropriate; simple Young tableaux.")
2908 (license license:gpl2)))
2909
2910 (define-public texlive-fonts-ec
2911 (package
2912 (name "texlive-fonts-ec")
2913 (version (number->string %texlive-revision))
2914 (source (origin
2915 (method svn-fetch)
2916 (uri (svn-reference
2917 (url (string-append "svn://www.tug.org/texlive/tags/"
2918 %texlive-tag "/Master/texmf-dist/"
2919 "/fonts/source/jknappen/ec/"))
2920 (revision %texlive-revision)))
2921 (file-name (string-append name "-" version "-checkout"))
2922 (sha256
2923 (base32
2924 "12av65fbz9xiashm09c9m1fj1mijxls5xspd7652ry1n5s0nixy4"))))
2925 (build-system gnu-build-system)
2926 (arguments
2927 `(#:modules ((guix build gnu-build-system)
2928 (guix build utils)
2929 (srfi srfi-1)
2930 (srfi srfi-26))
2931 #:tests? #f ; no tests
2932 #:phases
2933 (modify-phases %standard-phases
2934 (delete 'configure)
2935 (replace 'build
2936 (lambda* (#:key inputs #:allow-other-keys)
2937 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
2938 ;; Tell mf where to find mf.base
2939 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
2940 ;; Tell mf where to look for source files
2941 (setenv "MFINPUTS"
2942 (string-append (getcwd) ":"
2943 mf "/share/texmf-dist/metafont/base:"
2944 (assoc-ref inputs "texlive-fonts-cm")
2945 "/share/texmf-dist/fonts/source/public/cm")))
2946 (mkdir "build")
2947 (for-each (lambda (font)
2948 (format #t "building font ~a\n" font)
2949 (invoke "mf" "-progname=mf"
2950 "-output-directory=build"
2951 (string-append "\\"
2952 "mode:=ljfour; "
2953 "mag:=1; "
2954 "batchmode; "
2955 "input " (basename font ".mf"))))
2956 (find-files "." "[0-9]+\\.mf$"))
2957 #t))
2958 (replace 'install
2959 (lambda* (#:key outputs #:allow-other-keys)
2960 (let* ((out (assoc-ref outputs "out"))
2961 (tfm (string-append
2962 out "/share/texmf-dist/fonts/tfm/jknappen/ec"))
2963 (mf (string-append
2964 out "/share/texmf-dist/fonts/source/jknappen/ec")))
2965 (for-each (cut install-file <> tfm)
2966 (find-files "build" "\\.*"))
2967 (for-each (cut install-file <> mf)
2968 (find-files "." "\\.mf"))
2969 #t))))))
2970 (native-inputs
2971 `(("texlive-bin" ,texlive-bin)
2972 ("texlive-metafont-base" ,texlive-metafont-base)
2973 ("texlive-fonts-cm" ,texlive-fonts-cm)))
2974 (home-page "https://www.ctan.org/pkg/ec")
2975 (synopsis "Computer modern fonts in T1 and TS1 encodings")
2976 (description
2977 "The EC fonts are European Computer Modern Fonts, supporting the complete
2978 LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.
2979 These fonts are intended to be stable with no changes being made to the tfm
2980 files. The set also contains a Text Companion Symbol font, called @code{tc},
2981 featuring many useful characters needed in text typesetting, for example
2982 oldstyle digits, currency symbols (including the newly created Euro symbol),
2983 the permille sign, copyright, trade mark and servicemark as well as a copyleft
2984 sign, and many others. Recent releases of LaTeX2e support the EC fonts. The
2985 EC fonts supersede the preliminary version released as the DC fonts. The
2986 fonts are available in (traced) Adobe Type 1 format, as part of the
2987 @code{cm-super} bundle. The other Computer Modern-style T1-encoded Type 1
2988 set, Latin Modern, is not actually a direct development of the EC set, and
2989 differs from the EC in a number of particulars.")
2990 (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\
2991 texlive-2017.1/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
2992
2993 (define-public texlive-fonts-rsfs
2994 (package
2995 (name "texlive-fonts-rsfs")
2996 (version (number->string %texlive-revision))
2997 (source (origin
2998 (method svn-fetch)
2999 (uri (svn-reference
3000 (url (string-append "svn://www.tug.org/texlive/tags/"
3001 %texlive-tag "/Master/texmf-dist/"
3002 "/fonts/source/public/rsfs/"))
3003 (revision %texlive-revision)))
3004 (file-name (string-append name "-" version "-checkout"))
3005 (sha256
3006 (base32
3007 "0r12pn02r4a955prcvq0048nifh86ihlcgvw3pppqqvfngv34l5h"))))
3008 (build-system gnu-build-system)
3009 (arguments
3010 `(#:modules ((guix build gnu-build-system)
3011 (guix build utils)
3012 (srfi srfi-1)
3013 (srfi srfi-26))
3014 #:tests? #f ; no tests
3015 #:phases
3016 (modify-phases %standard-phases
3017 (delete 'configure)
3018 (replace 'build
3019 (lambda* (#:key inputs #:allow-other-keys)
3020 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
3021 ;; Tell mf where to find mf.base
3022 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
3023 ;; Tell mf where to look for source files
3024 (setenv "MFINPUTS"
3025 (string-append (getcwd) ":"
3026 mf "/share/texmf-dist/metafont/base:"
3027 (assoc-ref inputs "texlive-fonts-cm")
3028 "/share/texmf-dist/fonts/source/public/cm")))
3029 (mkdir "build")
3030 (for-each (lambda (font)
3031 (format #t "building font ~a\n" font)
3032 (invoke "mf" "-progname=mf"
3033 "-output-directory=build"
3034 (string-append "\\"
3035 "mode:=ljfour; "
3036 "mag:=1; "
3037 "batchmode; "
3038 "input " (basename font ".mf"))))
3039 (find-files "." "[0-9]+\\.mf$"))
3040 #t))
3041 (replace 'install
3042 (lambda* (#:key outputs #:allow-other-keys)
3043 (let* ((out (assoc-ref outputs "out"))
3044 (tfm (string-append
3045 out "/share/texmf-dist/fonts/tfm/public/rsfs"))
3046 (mf (string-append
3047 out "/share/texmf-dist/fonts/source/public/rsfs")))
3048 (for-each (cut install-file <> tfm)
3049 (find-files "build" "\\.*"))
3050 (for-each (cut install-file <> mf)
3051 (find-files "." "\\.mf"))
3052 #t))))))
3053 (native-inputs
3054 `(("texlive-bin" ,texlive-bin)
3055 ("texlive-metafont-base" ,texlive-metafont-base)
3056 ("texlive-fonts-cm" ,texlive-fonts-cm)))
3057 (home-page "https://www.ctan.org/pkg/rsfs")
3058 (synopsis "Ralph Smith's Formal Script font")
3059 (description
3060 "The fonts provide uppercase formal script letters for use as symbols in
3061 scientific and mathematical typesetting (in contrast to the informal script
3062 fonts such as that used for the calligraphic symbols in the TeX maths symbol
3063 font). The fonts are provided as Metafont source, and as derived Adobe Type 1
3064 format. LaTeX support, for using these fonts in mathematics, is available via
3065 one of the packages @code{calrsfs} and @code{mathrsfs}.")
3066 (license (license:fsf-free "http://mirrors.ctan.org/fonts/rsfs/README"))))
3067
3068 (define-public texlive-latex-eso-pic
3069 (package
3070 (name "texlive-latex-eso-pic")
3071 (version (number->string %texlive-revision))
3072 (source (origin
3073 (method svn-fetch)
3074 (uri (texlive-ref "latex" "eso-pic"))
3075 (file-name (string-append name "-" version "-checkout"))
3076 (sha256
3077 (base32
3078 "1xvmms28mvvfpks9x7lfya2xhh5k8jy3qnlih1mzcnf156xnb89z"))))
3079 (build-system texlive-build-system)
3080 (arguments '(#:tex-directory "latex/eso-pic"))
3081 (home-page "https://www.ctan.org/pkg/eso-pic")
3082 (synopsis "Add picture commands (or backgrounds) to every page")
3083 (description
3084 "The package adds one or more user commands to LaTeX's @code{shipout}
3085 routine, which may be used to place the output at fixed positions. The
3086 @code{grid} option may be used to find the correct places.")
3087 (license license:lppl1.3+)))
3088
3089 (define-public texlive-latex-eepic
3090 (package
3091 (name "texlive-latex-eepic")
3092 (version (number->string %texlive-revision))
3093 (source (origin
3094 (method svn-fetch)
3095 (uri (svn-reference
3096 (url (string-append "svn://www.tug.org/texlive/tags/"
3097 %texlive-tag "/Master/texmf-dist/"
3098 "/tex/latex/eepic"))
3099 (revision %texlive-revision)))
3100 (file-name (string-append name "-" version "-checkout"))
3101 (sha256
3102 (base32
3103 "1c68gvh021pvybg07apsd2xhq2ljbg80kq94wh71drdga3c2zqjw"))))
3104 (build-system trivial-build-system)
3105 (arguments
3106 `(#:modules ((guix build utils))
3107 #:builder
3108 (begin
3109 (use-modules (guix build utils))
3110 (let ((target (string-append (assoc-ref %outputs "out")
3111 "/share/texmf-dist/tex/latex/eepic")))
3112 (mkdir-p target)
3113 (copy-recursively (assoc-ref %build-inputs "source") target)
3114 #t))))
3115 (home-page "https://www.ctan.org/pkg/eepic")
3116 (synopsis "Extensions to epic and the LaTeX drawing tools")
3117 (description
3118 "Extensions to @code{epic} and the LaTeX picture drawing environment,
3119 include the drawing of lines at any slope, the drawing of circles in any
3120 radii, and the drawing of dotted and dashed lines much faster with much less
3121 TeX memory, and providing several new commands for drawing ellipses, arcs,
3122 splines, and filled circles and ellipses. The package uses @code{tpic}
3123 @code{\\special} commands.")
3124 (license license:public-domain)))
3125
3126 (define-public texlive-latex-enumitem
3127 (package
3128 (name "texlive-latex-enumitem")
3129 (version (number->string %texlive-revision))
3130 (source (origin
3131 (method svn-fetch)
3132 (uri (svn-reference
3133 (url (string-append "svn://www.tug.org/texlive/tags/"
3134 %texlive-tag "/Master/texmf-dist/"
3135 "/tex/latex/enumitem"))
3136 (revision %texlive-revision)))
3137 (file-name (string-append name "-" version "-checkout"))
3138 (sha256
3139 (base32
3140 "0q24b1bkdi9l6bw787bpggww83jh2vj8955aw2m5yccqbx4vgr5r"))))
3141 (build-system trivial-build-system)
3142 (arguments
3143 `(#:modules ((guix build utils))
3144 #:builder
3145 (begin
3146 (use-modules (guix build utils))
3147 (let ((target (string-append (assoc-ref %outputs "out")
3148 "/share/texmf-dist/tex/latex/enumitem")))
3149 (mkdir-p target)
3150 (copy-recursively (assoc-ref %build-inputs "source") target)
3151 #t))))
3152 (home-page "https://www.ctan.org/pkg/enumitem")
3153 (synopsis "Customize basic list environments")
3154 (description
3155 "This package is intended to ease customizing the three basic list
3156 environments: @code{enumerate}, @code{itemize} and @code{description}. It
3157 extends their syntax to allow an optional argument where a set of parameters
3158 in the form @code{key=value} are available, for example:
3159 @code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}.")
3160 (license license:lppl1.3+)))
3161
3162 (define-public texlive-latex-multirow
3163 (package
3164 (name "texlive-latex-multirow")
3165 (version (number->string %texlive-revision))
3166 (source (origin
3167 (method svn-fetch)
3168 (uri (texlive-ref "latex" "multirow"))
3169 (file-name (string-append name "-" version "-checkout"))
3170 (sha256
3171 (base32
3172 "0qlxy47f1f8plgch3jqfsnrdgpyz20sz46yp33i2jwvf9hvfczf0"))))
3173 (build-system texlive-build-system)
3174 (arguments '(#:tex-directory "latex/multirow"))
3175 (home-page "https://www.ctan.org/pkg/multirow")
3176 (synopsis "Create tabular cells spanning multiple rows")
3177 (description
3178 "The package provides tools for creating tabular cells spanning multiple
3179 rows. It has a lot of flexibility, including an option for specifying an
3180 entry at the \"natural\" width of its text.")
3181 (license license:lppl1.3+)))
3182
3183 (define-public texlive-latex-overpic
3184 (package
3185 (name "texlive-latex-overpic")
3186 (version (number->string %texlive-revision))
3187 (source (origin
3188 (method svn-fetch)
3189 (uri (svn-reference
3190 (url (string-append "svn://www.tug.org/texlive/tags/"
3191 %texlive-tag "/Master/texmf-dist/"
3192 "/tex/latex/overpic"))
3193 (revision %texlive-revision)))
3194 (file-name (string-append name "-" version "-checkout"))
3195 (sha256
3196 (base32
3197 "0m29q9qdb00558b7g2i7iw6w62n5s46yx81j8m99qkv77magk4fm"))))
3198 (build-system trivial-build-system)
3199 (arguments
3200 `(#:modules ((guix build utils))
3201 #:builder
3202 (begin
3203 (use-modules (guix build utils))
3204 (let ((target (string-append (assoc-ref %outputs "out")
3205 "/share/texmf-dist/tex/latex/overpic")))
3206 (mkdir-p target)
3207 (copy-recursively (assoc-ref %build-inputs "source") target)
3208 #t))))
3209 (home-page "https://www.ctan.org/pkg/overpic")
3210 (synopsis "Combine LaTeX commands over included graphics")
3211 (description
3212 "The @code{overpic} environment is a cross between the LaTeX
3213 @code{picture} environment and the @code{\\includegraphics} command of
3214 @code{graphicx}. The resulting picture environment has the same dimensions as
3215 the included graphic. LaTeX commands can be placed on the graphic at defined
3216 positions; a grid for orientation is available.")
3217 (license license:lppl1.0+)))
3218
3219 (define-public texlive-latex-parskip
3220 (package
3221 (name "texlive-latex-parskip")
3222 (version (number->string %texlive-revision))
3223 (source (origin
3224 (method svn-fetch)
3225 (uri (svn-reference
3226 (url (string-append "svn://www.tug.org/texlive/tags/"
3227 %texlive-tag "/Master/texmf-dist/"
3228 "/tex/latex/parskip"))
3229 (revision %texlive-revision)))
3230 (file-name (string-append name "-" version "-checkout"))
3231 (sha256
3232 (base32
3233 "14r6h9hqb0qgccxj5l1208694fx8sb8avmgzps36lsbbpszl7i7m"))))
3234 (build-system trivial-build-system)
3235 (arguments
3236 `(#:modules ((guix build utils))
3237 #:builder
3238 (begin
3239 (use-modules (guix build utils))
3240 (let ((target (string-append (assoc-ref %outputs "out")
3241 "/share/texmf-dist/tex/latex/parskip")))
3242 (mkdir-p target)
3243 (copy-recursively (assoc-ref %build-inputs "source") target)
3244 #t))))
3245 (home-page "https://www.ctan.org/pkg/parskip")
3246 (synopsis "Layout with zero \\parindent, non-zero \\parskip")
3247 (description
3248 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout
3249 that is untidy; this package (though it is no substitute for a properly
3250 designed class) helps alleviate this untidiness.")
3251 (license license:lppl)))
3252
3253 (define-public texlive-latex-pdfpages
3254 (package
3255 (name "texlive-latex-pdfpages")
3256 (version (number->string %texlive-revision))
3257 (source (origin
3258 (method svn-fetch)
3259 (uri (texlive-ref "latex" "pdfpages"))
3260 (file-name (string-append name "-" version "-checkout"))
3261 (sha256
3262 (base32
3263 "06p5smfq66559ppdnmkl3hp8534x84ywbscimsiir4gllpya3i9h"))))
3264 (build-system texlive-build-system)
3265 (arguments '(#:tex-directory "latex/pdfpages"))
3266 (home-page "https://www.ctan.org/pkg/pdfpages")
3267 (synopsis "Include PDF documents in LaTeX")
3268 (description
3269 "This package simplifies the inclusion of external multi-page PDF
3270 documents in LaTeX documents. Pages may be freely selected and it is possible
3271 to put several logical pages onto each sheet of paper. Furthermore a lot of
3272 hypertext features like hyperlinks and article threads are provided. The
3273 package supports pdfTeX (pdfLaTeX) and VTeX. With VTeX it is even possible to
3274 use this package to insert PostScript files, in addition to PDF files.")
3275 (license license:lppl1.3+)))
3276
3277 (define-public texlive-fonts-stmaryrd
3278 (package
3279 (name "texlive-fonts-stmaryrd")
3280 (version (number->string %texlive-revision))
3281 (source (origin
3282 (method svn-fetch)
3283 (uri (texlive-ref "fonts" "stmaryrd"))
3284 (file-name (string-append name "-" version "-checkout"))
3285 (sha256
3286 (base32
3287 "08pn4ca3vl6qm9l3wm5h5iyjsrg411kkm1yana329xwg2j14s9n6"))))
3288 (build-system texlive-build-system)
3289 (arguments
3290 '(#:tex-directory "latex/stmaryrd"
3291 #:phases
3292 (modify-phases %standard-phases
3293 (add-after 'configure 'patch-ins
3294 (lambda _
3295 (substitute* "stmaryrd.ins"
3296 (("^%% LaTeX2e.*") "\\input docstrip\n")
3297 (("fontdef\\}\\}" line)
3298 (string-append line "\n\\endbatchfile")))
3299 #t)))))
3300 (home-page "https://www.ctan.org/pkg/stmaryrd")
3301 (synopsis "St Mary Road symbols for theoretical computer science")
3302 (description
3303 "The fonts were originally distributed as Metafont sources only, but
3304 Adobe Type 1 versions are also now available. Macro support is provided for
3305 use under LaTeX; the package supports the @code{only} option (provided by the
3306 @code{somedefs} package) to restrict what is loaded, for those who don't need
3307 the whole font.")
3308 (license license:lppl)))
3309
3310 (define-public texlive-latex-subfigure
3311 (package
3312 (name "texlive-latex-subfigure")
3313 (version (number->string %texlive-revision))
3314 (source (origin
3315 (method svn-fetch)
3316 (uri (texlive-ref "latex" "subfigure"))
3317 (file-name (string-append name "-" version "-checkout"))
3318 (sha256
3319 (base32
3320 "15spcl5wb7w269qd6y596vp4yi8sa5ppcx8w4z2i9kyp02r3a0yb"))))
3321 (build-system texlive-build-system)
3322 (arguments '(#:tex-directory "latex/subfigure"))
3323 (home-page "https://www.ctan.org/pkg/subfigure")
3324 (synopsis "Figures divided into subfigures")
3325 (description
3326 "This (deprecated) package provides support for the manipulation and
3327 reference of small or \"sub\" figures and tables within a single figure or
3328 table environment. It is convenient to use this package when your subfigures
3329 are to be separately captioned, referenced, or are to be included in the
3330 List-of-Figures. A new @code{\\subfigure} command is introduced which can be
3331 used inside a figure environment for each subfigure. An optional first
3332 argument is used as the caption for that subfigure. The package is now
3333 considered obsolete: it was superseded by @code{subfig}, but users may find
3334 the more recent @code{subcaption} package more satisfactory.")
3335 (license license:lppl)))
3336
3337 (define-public texlive-latex-tabulary
3338 (package
3339 (name "texlive-latex-tabulary")
3340 (version (number->string %texlive-revision))
3341 (source (origin
3342 (method svn-fetch)
3343 (uri (texlive-ref "latex" "tabulary"))
3344 (file-name (string-append name "-" version "-checkout"))
3345 (sha256
3346 (base32
3347 "1adkdx2zkk42g82nqf57lv1nc1z7kwl13jmy8vpcsizsa0xdnx9n"))))
3348 (build-system texlive-build-system)
3349 (arguments '(#:tex-directory "latex/tabulary"))
3350 (home-page "https://www.ctan.org/pkg/tabulary")
3351 (synopsis "Tabular with variable width columns balanced")
3352 (description
3353 "The package defines a @code{tabular*}-like environment, @code{tabulary},
3354 taking a \"total width\" argument as well as the column specifications. The
3355 environment uses column types @code{L}, @code{C}, @code{R} and @code{J} for
3356 variable width columns (@code{\\raggedright}, @code{\\centering},
3357 @code{\\raggedleft}, and normally justified). In contrast to
3358 @code{tabularx}'s @code{X} columns, the width of each column is weighted
3359 according to the natural width of the widest cell in the column.")
3360 (license license:lppl)))
3361
3362 (define-public texlive-latex-threeparttable
3363 (package
3364 (name "texlive-latex-threeparttable")
3365 (version (number->string %texlive-revision))
3366 (source (origin
3367 (method svn-fetch)
3368 (uri (svn-reference
3369 (url (string-append "svn://www.tug.org/texlive/tags/"
3370 %texlive-tag "/Master/texmf-dist/"
3371 "/tex/latex/threeparttable"))
3372 (revision %texlive-revision)))
3373 (file-name (string-append name "-" version "-checkout"))
3374 (sha256
3375 (base32
3376 "10vy9k150w2lviw8h22s2mcykff38xci653m5823s2vv44pwbmzq"))))
3377 (build-system trivial-build-system)
3378 (arguments
3379 `(#:modules ((guix build utils))
3380 #:builder
3381 (begin
3382 (use-modules (guix build utils))
3383 (let ((target (string-append (assoc-ref %outputs "out")
3384 "/share/texmf-dist/tex/latex/threeparttable")))
3385 (mkdir-p target)
3386 (copy-recursively (assoc-ref %build-inputs "source") target)
3387 #t))))
3388 (home-page "https://www.ctan.org/pkg/threeparttable")
3389 (synopsis "Tables with captions and notes all the same width")
3390 (description
3391 "This package facilitates tables with titles (captions) and notes. The
3392 title and notes are given a width equal to the body of the table (a
3393 @code{tabular} environment). By itself, a @code{threeparttable} does not
3394 float, but you can put it in a @code{table} or a @code{table*} or some other
3395 environment.")
3396 (license (license:fsf-free "file://threeparttable.sty"))))
3397
3398 (define-public texlive-fonts-txfonts
3399 (package
3400 (name "texlive-fonts-txfonts")
3401 (version (number->string %texlive-revision))
3402 (source (origin
3403 (method svn-fetch)
3404 (uri (svn-reference
3405 (url (string-append "svn://www.tug.org/texlive/tags/"
3406 %texlive-tag "/Master/texmf-dist/"
3407 "/tex/latex/txfonts"))
3408 (revision %texlive-revision)))
3409 (file-name (string-append name "-" version "-checkout"))
3410 (sha256
3411 (base32
3412 "0jl921qdphg8i7bkfprackn3xd4gmvxckc526nmzqsmahqkavgg2"))))
3413 (build-system trivial-build-system)
3414 (arguments
3415 `(#:modules ((guix build utils)
3416 (ice-9 match))
3417 #:builder
3418 (begin
3419 (use-modules (guix build utils)
3420 (ice-9 match))
3421 (let ((root (string-append (assoc-ref %outputs "out")
3422 "/share/texmf-dist/"))
3423 (pkgs '(("source" . "tex/latex/txfonts")
3424 ("txfonts-vf" . "fonts/tfm/public/txfonts")
3425 ("txfonts-afm" . "fonts/afm/public/txfonts")
3426 ("txfonts-tfm" . "fonts/tfm/public/txfonts")
3427 ("txfonts-type1" . "fonts/type1/public/txfonts")
3428 ("txfonts-enc" . "fonts/enc/dvips/txfonts")
3429 ("txfonts-map" . "fonts/map/dvips/txfonts"))))
3430 (for-each (match-lambda
3431 ((pkg . dir)
3432 (let ((target (string-append root dir)))
3433 (mkdir-p target)
3434 (copy-recursively (assoc-ref %build-inputs pkg)
3435 target))))
3436 pkgs)
3437 #t))))
3438 (native-inputs
3439 `(("txfonts-tfm"
3440 ,(origin
3441 (method svn-fetch)
3442 (uri (svn-reference
3443 (url (string-append "svn://www.tug.org/texlive/tags/"
3444 %texlive-tag "/Master/texmf-dist/"
3445 "/fonts/tfm/public/txfonts"))
3446 (revision %texlive-revision)))
3447 (file-name (string-append name "-tfm-" version "-checkout"))
3448 (sha256
3449 (base32
3450 "12ffmbrp48ap35qa3b4mi6ckif9q2vf7972jxh5dc1yzykhla2xv"))))
3451 ("txfonts-vf"
3452 ,(origin
3453 (method svn-fetch)
3454 (uri (svn-reference
3455 (url (string-append "svn://www.tug.org/texlive/tags/"
3456 %texlive-tag "/Master/texmf-dist/"
3457 "/fonts/vf/public/txfonts"))
3458 (revision %texlive-revision)))
3459 (file-name (string-append name "-vf-" version "-checkout"))
3460 (sha256
3461 (base32
3462 "04acyfdwvxpfx4l2xh2bpzdmpvwdf2pzbs7a236b0xckz2jvc1ci"))))
3463 ("txfonts-afm"
3464 ,(origin
3465 (method svn-fetch)
3466 (uri (svn-reference
3467 (url (string-append "svn://www.tug.org/texlive/tags/"
3468 %texlive-tag "/Master/texmf-dist/"
3469 "/fonts/afm/public/txfonts"))
3470 (revision %texlive-revision)))
3471 (file-name (string-append name "-afm-" version "-checkout"))
3472 (sha256
3473 (base32
3474 "1705klz51pnqzcs89s3521b84b6c89wlczflsh0vci66nl155yis"))))
3475 ("txfonts-type1"
3476 ,(origin
3477 (method svn-fetch)
3478 (uri (svn-reference
3479 (url (string-append "svn://www.tug.org/texlive/tags/"
3480 %texlive-tag "/Master/texmf-dist/"
3481 "/fonts/type1/public/txfonts"))
3482 (revision %texlive-revision)))
3483 (file-name (string-append name "-type1-" version "-checkout"))
3484 (sha256
3485 (base32
3486 "0ajwr7zb6ch3gxd0g8p2i4llhy2wr9a9saz6jq6hm6fxf4pgl5h3"))))
3487 ("txfonts-map"
3488 ,(origin
3489 (method svn-fetch)
3490 (uri (svn-reference
3491 (url (string-append "svn://www.tug.org/texlive/tags/"
3492 %texlive-tag "/Master/texmf-dist/"
3493 "/fonts/map/dvips/txfonts"))
3494 (revision %texlive-revision)))
3495 (file-name (string-append name "-map-" version "-checkout"))
3496 (sha256
3497 (base32
3498 "0kamr8a9x24jakas3v09dgv7kkpybj3i7qv4vz1iyypqr6kk1raj"))))
3499 ("txfonts-enc"
3500 ,(origin
3501 (method svn-fetch)
3502 (uri (svn-reference
3503 (url (string-append "svn://www.tug.org/texlive/tags/"
3504 %texlive-tag "/Master/texmf-dist/"
3505 "/fonts/enc/dvips/txfonts"))
3506 (revision %texlive-revision)))
3507 (file-name (string-append name "-enc-" version "-checkout"))
3508 (sha256
3509 (base32
3510 "1bal5fhw0xlhl37ayv8vlnqnsn1y82kadzfjhbgr223blspp4zsj"))))))
3511 (home-page "https://www.ctan.org/pkg/threeparttable")
3512 (synopsis "Times-like fonts in support of mathematics")
3513 (description
3514 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW
3515 NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,
3516 and TS1 encodings; maths alphabets using Times/URW Nimbus; maths fonts
3517 providing all the symbols of the Computer Modern and AMS fonts, including all
3518 the Greek capital letters from CMR; and additional maths fonts of various
3519 other symbols.
3520
3521 The set is complemented by a sans-serif set of text fonts, based on
3522 Helvetica/NimbusSanL, and a monospace set.
3523
3524 All the fonts are in Type 1 format (AFM and PFB files), and are supported by
3525 TeX metrics (VF and TFM files) and macros for use with LaTeX.")
3526 ;; Any version of the GPL with font exception.
3527 (license license:gpl3+)))
3528
3529 (define-public texlive-fonts-iwona
3530 (package
3531 (name "texlive-fonts-iwona")
3532 (version "0.995b")
3533 (source (origin
3534 (method url-fetch)
3535 (uri (string-append "http://jmn.pl/pliki/Iwona-tex-"
3536 (string-map (lambda (c)
3537 (if (char=? c #\.)
3538 #\_ c))
3539 version)
3540 ".zip"))
3541 (sha256
3542 (base32
3543 "13684iqx5granpc5rfvqnmyvdpgpbr1x9y7i7y7bcaq0qxv7ph1x"))))
3544 (build-system trivial-build-system)
3545 (arguments
3546 `(#:modules ((guix build utils))
3547 #:builder
3548 (begin
3549 (use-modules (guix build utils))
3550 (let ((target (string-append (assoc-ref %outputs "out")
3551 "/share/texmf-dist/"))
3552 (unzip (string-append (assoc-ref %build-inputs "unzip")
3553 "/bin/unzip")))
3554 (invoke unzip (assoc-ref %build-inputs "source"))
3555 (mkdir-p target)
3556 (copy-recursively "iwona" target)
3557 #t))))
3558 (native-inputs
3559 `(("unzip" ,unzip)))
3560 (home-page "http://jmn.pl/en/kurier-i-iwona/")
3561 (synopsis "Sans-serif typeface for TeX")
3562 (description "Iwona is a two-element sans-serif typeface. It was created
3563 as an alternative version of the Kurier typeface, which was designed in 1975
3564 for a diploma in typeface design at the Warsaw Academy of Fine Arts under the
3565 supervision of Roman Tomaszewski. Kurier was designed for linotype
3566 typesetting of newspapers and similar periodicals. The Iwona fonts are an
3567 alternative version of the Kurier fonts. The difference lies in the absence
3568 of ink traps which typify the Kurier font.")
3569 (license license:gfl1.0)))
3570
3571 (define-public texlive-latex-titlesec
3572 (package
3573 (name "texlive-latex-titlesec")
3574 (version (number->string %texlive-revision))
3575 (source (origin
3576 (method svn-fetch)
3577 (uri (svn-reference
3578 (url (string-append "svn://www.tug.org/texlive/tags/"
3579 %texlive-tag "/Master/texmf-dist/"
3580 "/tex/latex/titlesec"))
3581 (revision %texlive-revision)))
3582 (file-name (string-append name "-" version "-checkout"))
3583 (sha256
3584 (base32
3585 "04nmkhqx6jxcxx9a30zbcd5smxi5fd0cbp132bki7fnvhspnhg21"))))
3586 (build-system trivial-build-system)
3587 (arguments
3588 `(#:modules ((guix build utils))
3589 #:builder
3590 (begin
3591 (use-modules (guix build utils))
3592 (let ((target (string-append (assoc-ref %outputs "out")
3593 "/share/texmf-dist/tex/latex/titlesec")))
3594 (mkdir-p target)
3595 (copy-recursively (assoc-ref %build-inputs "source") target)
3596 #t))))
3597 (home-page "https://www.ctan.org/pkg/titlesec")
3598 (synopsis "Select alternative section titles")
3599 (description
3600 "This package provides an interface to sectioning commands for selection
3601 from various title styles, e.g. for marginal titles and to change the font of
3602 all headings with a single command, also providing simple one-step page
3603 styles. It also includes a package to change the page styles when there are
3604 floats in a page. You may assign headers/footers to individual floats, too.")
3605 (license license:lppl)))
3606
3607 (define-public texlive-latex-type1cm
3608 (package
3609 (name "texlive-latex-type1cm")
3610 (version (number->string %texlive-revision))
3611 (source (origin
3612 (method svn-fetch)
3613 (uri (texlive-ref "latex" "type1cm"))
3614 (file-name (string-append name "-" version "-checkout"))
3615 (sha256
3616 (base32
3617 "1lvxrqfwcwa4p31zyfm80gr05v8c28xybv5ri79zi2ngz6834z12"))))
3618 (build-system texlive-build-system)
3619 (arguments '(#:tex-directory "latex/type1cm"))
3620 (home-page "https://www.ctan.org/pkg/type1cm")
3621 (synopsis "Arbitrary size font selection in LaTeX")
3622 (description
3623 "LaTeX, by default, restricts the sizes at which you can use its default
3624 computer modern fonts, to a fixed set of discrete sizes (effectively, a set
3625 specified by Knuth). The @code{type1cm} package removes this restriction;
3626 this is particularly useful when using scalable versions of the CM
3627 fonts (Bakoma, or the versions from BSR/Y&Y, or True Type versions from Kinch,
3628 PCTeX, etc.). In fact, since modern distributions will automatically generate
3629 any bitmap font you might need, @code{type1cm} has wider application than just
3630 those using scalable versions of the fonts. Note that the LaTeX distribution
3631 now contains a package @code{fix-cm},f which performs the task of
3632 @code{type1cm}, as well as doing the same job for T1- and TS1-encoded
3633 @code{ec} fonts.")
3634 (license license:lppl)))
3635
3636 (define-public texlive-latex-lh
3637 (package
3638 (name "texlive-latex-lh")
3639 (version (number->string %texlive-revision))
3640 (source (origin
3641 (method svn-fetch)
3642 (uri (texlive-ref "latex" "lh"))
3643 (file-name (string-append name "-" version "-checkout"))
3644 (sha256
3645 (base32
3646 "00gdiwh3sfhh1iimjhpja7lm7k4vzqzql2irgwnpz94qvh25zwi5"))))
3647 (build-system texlive-build-system)
3648 (arguments '(#:tex-directory "latex/lh"))
3649 (home-page "https://www.ctan.org/pkg/lh")
3650 (synopsis "Cyrillic fonts that support LaTeX standard encodings")
3651 (description
3652 "The LH fonts address the problem of the wide variety of alphabets that
3653 are written with Cyrillic-style characters. The fonts are the original basis
3654 of the set of T2* and X2 encodings that are now used when LaTeX users need to
3655 write in Cyrillic languages. Macro support in standard LaTeX encodings is
3656 offered through the latex-cyrillic and t2 bundles, and the package itself
3657 offers support for other (more traditional) encodings. The fonts, in the
3658 standard T2* and X2 encodings are available in Adobe Type 1 format, in the
3659 CM-Super family of fonts. The package also offers its own LaTeX support for
3660 OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
3661 (license license:lppl)))
3662
3663 (define-public texlive-metapost
3664 (package
3665 (name "texlive-metapost")
3666 (version (number->string %texlive-revision))
3667 (source (origin
3668 (method svn-fetch)
3669 (uri (svn-reference
3670 (url (string-append "svn://www.tug.org/texlive/tags/"
3671 %texlive-tag "/Master/texmf-dist/"
3672 "/metapost"))
3673 (revision %texlive-revision)))
3674 (file-name (string-append name "-" version "-checkout"))
3675 (sha256
3676 (base32
3677 "03nvjddffiz796wll6axzmgfvynyciy2mqamv20qx252w71vwkwd"))))
3678 (build-system trivial-build-system)
3679 (arguments
3680 `(#:modules ((guix build utils))
3681 #:builder
3682 (begin
3683 (use-modules (guix build utils))
3684 (let ((target (string-append (assoc-ref %outputs "out")
3685 "/share/texmf-dist/metapost")))
3686 (mkdir-p target)
3687 (copy-recursively (assoc-ref %build-inputs "source") target)
3688 #t))))
3689 (home-page "https://www.ctan.org/pkg/metapost")
3690 (synopsis "Create scalable illustrations")
3691 (description
3692 "MetaPost uses a language based on that of Metafont to produce precise
3693 technical illustrations. Its output is scalable PostScript or SVG, rather
3694 than the bitmaps Metafont creates.")
3695 (license license:lppl)))
3696
3697 (define-public texlive-latex-acmart
3698 (package
3699 (name "texlive-latex-acmart")
3700 (version "1.45")
3701 (source (origin
3702 (method svn-fetch)
3703 (uri (texlive-ref "latex" "acmart"))
3704 (sha256
3705 (base32
3706 "10zs8ga88ksypv1v4p6mynmfa7749q2hgxlr4shnwfjd9wrb421q"))
3707 (file-name (string-append name "-" version "-checkout"))))
3708 (build-system texlive-build-system)
3709 (arguments '(#:tex-directory "latex/acmart"))
3710 (home-page "https://www.ctan.org/pkg/acmart")
3711 (synopsis "Class for typesetting publications of ACM")
3712 (description
3713 "This package provides a class for typesetting publications of the
3714 Association for Computing Machinery (ACM).")
3715 (license license:lppl1.3+)))
3716
3717 (define-public texlive-latex-varwidth
3718 (package
3719 (name "texlive-latex-varwidth")
3720 (version (number->string %texlive-revision))
3721 (source (origin
3722 (method svn-fetch)
3723 (uri (svn-reference
3724 (url (string-append "svn://www.tug.org/texlive/tags/"
3725 %texlive-tag "/Master/texmf-dist/"
3726 "/tex/latex/varwidth"))
3727 (revision %texlive-revision)))
3728 (file-name (string-append name "-" version "-checkout"))
3729 (sha256
3730 (base32
3731 "1bmz9ap0ffyg7qry2xi7lki06qx4809w028xvk88cl66h7p46g52"))))
3732 (build-system trivial-build-system)
3733 (arguments
3734 `(#:modules ((guix build utils))
3735 #:builder
3736 (begin
3737 (use-modules (guix build utils))
3738 (let ((target (string-append (assoc-ref %outputs "out")
3739 "/share/texmf-dist/tex/latex/varwidth")))
3740 (mkdir-p target)
3741 (copy-recursively (assoc-ref %build-inputs "source") target)
3742 #t))))
3743 (home-page "https://www.ctan.org/pkg/varwidth")
3744 (synopsis "Variable-width minipage")
3745 (description
3746 "The @code{varwidth} environment is superficially similar to
3747 @code{minipage}, but the specified width is just a maximum value — the box may
3748 get a narrower “natural” width.")
3749 (license license:lppl)))
3750
3751 (define-public texlive-latex-wasysym
3752 (package
3753 (name "texlive-latex-wasysym")
3754 (version (number->string %texlive-revision))
3755 (source (origin
3756 (method svn-fetch)
3757 (uri (texlive-ref "latex" "wasysym"))
3758 (file-name (string-append name "-" version "-checkout"))
3759 (sha256
3760 (base32
3761 "1sgwbfwjjf70g54hh93gsd9jp9nm67w6n74x9d72a56n07jbk5hv"))))
3762 (build-system texlive-build-system)
3763 (arguments '(#:tex-directory "latex/wasysym"))
3764 (home-page "https://www.ctan.org/pkg/wasysym")
3765 (synopsis "LaTeX support file to use the WASY2 fonts")
3766 (description
3767 "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs
3768 like male and female symbols and astronomical symbols, as well as the complete
3769 lasy font set and other odds and ends. The wasysym package implements an easy
3770 to use interface for these symbols.")
3771 (license license:lppl)))
3772
3773 (define-public texlive-latex-wrapfig
3774 (package
3775 (name "texlive-latex-wrapfig")
3776 (version (number->string %texlive-revision))
3777 (source (origin
3778 (method svn-fetch)
3779 (uri (svn-reference
3780 (url (string-append "svn://www.tug.org/texlive/tags/"
3781 %texlive-tag "/Master/texmf-dist/"
3782 "/tex/latex/wrapfig"))
3783 (revision %texlive-revision)))
3784 (file-name (string-append name "-" version "-checkout"))
3785 (sha256
3786 (base32
3787 "16xpyl0csmmwndz1xhzqfg9l0zcsnqxslsixsqkwd4zsvfj30sv4"))))
3788 (build-system trivial-build-system)
3789 (arguments
3790 `(#:modules ((guix build utils))
3791 #:builder
3792 (begin
3793 (use-modules (guix build utils))
3794 (let ((target (string-append (assoc-ref %outputs "out")
3795 "/share/texmf-dist/tex/latex/wrapfig")))
3796 (mkdir-p target)
3797 (copy-recursively (assoc-ref %build-inputs "source") target)
3798 #t))))
3799 (home-page "https://www.ctan.org/pkg/wrapfig")
3800 (synopsis "Produces figures which text can flow around")
3801 (description
3802 "This package allows figures or tables to have text wrapped around them.
3803 It does not work in combination with list environments, but can be used in a
3804 @code{parbox} or @code{minipage}, and in two-column format.")
3805 (license license:lppl)))
3806
3807 (define-public texlive-latex-ucs
3808 (package
3809 (name "texlive-latex-ucs")
3810 (version (number->string %texlive-revision))
3811 (source (origin
3812 (method svn-fetch)
3813 (uri (svn-reference
3814 (url (string-append "svn://www.tug.org/texlive/tags/"
3815 %texlive-tag "/Master/texmf-dist/"
3816 "/tex/latex/ucs"))
3817 (revision %texlive-revision)))
3818 (file-name (string-append name "-" version "-checkout"))
3819 (sha256
3820 (base32
3821 "0rrxwi60wmz5dfjifl4fwk66plf7wix85qnhfv4ylvmj6qi6hw37"))))
3822 (build-system trivial-build-system)
3823 (arguments
3824 `(#:modules ((guix build utils))
3825 #:builder
3826 (begin
3827 (use-modules (guix build utils))
3828 (let ((target (string-append (assoc-ref %outputs "out")
3829 "/share/texmf-dist/tex/latex/ucs")))
3830 (mkdir-p target)
3831 (copy-recursively (assoc-ref %build-inputs "source") target)
3832 #t))))
3833 (home-page "https://www.ctan.org/pkg/ucs")
3834 (synopsis "Extended UTF-8 input encoding support for LaTeX")
3835 (description
3836 "The bundle provides the @code{ucs} package, and @code{utf8x.def},
3837 together with a large number of support files. The @code{utf8x.def}
3838 definition file for use with @code{inputenc} covers a wider range of Unicode
3839 characters than does @code{utf8.def} in the LaTeX distribution. The package
3840 provides facilities for efficient use of its large sets of Unicode characters.
3841 Glyph production may be controlled by various options, which permits use of
3842 non-ASCII characters when coding mathematical formulae. Note that the bundle
3843 previously had an alias “unicode”; that alias has now been withdrawn, and no
3844 package of that name now exists.")
3845 (license license:lppl1.3+)))
3846
3847 (define-public texlive-latex-preview
3848 (package
3849 (name "texlive-latex-preview")
3850 (version (number->string %texlive-revision))
3851 (source (origin
3852 (method svn-fetch)
3853 (uri (texlive-ref "latex" "preview"))
3854 (file-name (string-append name "-" version "-checkout"))
3855 (sha256
3856 (base32
3857 "0j6fff6q0ca96nwfdgay2jm55792z4q9aa0rczmiw2qccyg5n2dv"))))
3858 (build-system texlive-build-system)
3859 (arguments
3860 '(#:tex-directory "latex/preview"
3861 #:phases
3862 (modify-phases %standard-phases
3863 (add-after 'unpack 'remove-generated-file
3864 (lambda _
3865 (delete-file "preview.drv")
3866 #t)))))
3867 (home-page "https://www.ctan.org/pkg/preview")
3868 (synopsis "Extract bits of a LaTeX source for output")
3869 (description
3870 "The main purpose of the preview package is the extraction of selected
3871 elements from a LaTeX source, like formulas or graphics, into separate
3872 pages of a DVI file. A flexible and convenient interface allows it to
3873 specify what commands and constructs should be extracted. This works
3874 with DVI files postprocessed by either Dvips and Ghostscript or
3875 dvipng, but it also works when you are using PDFTeX for generating PDF
3876 files.")
3877 (license license:gpl3+)))
3878
3879 (define-public texlive-latex-acronym
3880 (package
3881 (name "texlive-latex-acronym")
3882 (version (number->string %texlive-revision))
3883 (source (origin
3884 (method svn-fetch)
3885 (uri (texlive-ref "latex" "acronym"))
3886 (file-name (string-append name "-" version "-checkout"))
3887 (sha256
3888 (base32
3889 "0jmasg40bk53zdd2jc8nc18jvdai3p2wmamy7hwli8gls4nf25qp"))))
3890 (build-system texlive-build-system)
3891 (arguments '(#:tex-directory "latex/acronym"))
3892 (home-page "https://www.ctan.org/pkg/acronym")
3893 (synopsis "Expand acronyms at least once")
3894 (description
3895 "This package ensures that all acronyms used in the text are spelled out
3896 in full at least once. It also provides an environment to build a list of
3897 acronyms used. The package is compatible with PDF bookmarks. The package
3898 requires the suffix package, which in turn requires that it runs under
3899 e-TeX.")
3900 (license license:lppl1.3+)))
3901
3902 (define-public texlive-generic-pdftex
3903 (package
3904 (name "texlive-generic-pdftex")
3905 (version (number->string %texlive-revision))
3906 (source (origin
3907 (method svn-fetch)
3908 (uri (svn-reference
3909 (url (string-append "svn://www.tug.org/texlive/tags/"
3910 %texlive-tag "/Master/texmf-dist/"
3911 "/tex/generic/pdftex"))
3912 (revision %texlive-revision)))
3913 (file-name (string-append name "-" version "-checkout"))
3914 (sha256
3915 (base32
3916 "0k68zmqzs4qvrqxdwsrawbjb14hxqjfamq649azvai0jjxdpkljd"))))
3917 (build-system trivial-build-system)
3918 (arguments
3919 `(#:modules ((guix build utils))
3920 #:builder
3921 (begin
3922 (use-modules (guix build utils))
3923 (let ((target (string-append (assoc-ref %outputs "out")
3924 "/share/texmf-dist/tex/generic/pdftex")))
3925 (mkdir-p target)
3926 (copy-recursively (assoc-ref %build-inputs "source") target)
3927 #t))))
3928 (home-page "https://www.ctan.org/pkg/pdftex")
3929 (synopsis "TeX extension for direct creation of PDF")
3930 (description
3931 "This package provides an extension of TeX which can be configured to
3932 directly generate PDF documents instead of DVI.")
3933 (license license:gpl2+)))
3934
3935 (define texlive-texmf
3936 (package
3937 (name "texlive-texmf")
3938 (version "20180414")
3939 (source texlive-texmf-src)
3940 (build-system gnu-build-system)
3941 (inputs
3942 `(("texlive-bin" ,texlive-bin)
3943 ("lua" ,lua)
3944 ("perl" ,perl)
3945 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
3946 ("ruby" ,ruby)
3947 ("tcsh" ,tcsh)))
3948 (arguments
3949 `(#:modules ((guix build gnu-build-system)
3950 (guix build utils)
3951 (srfi srfi-26))
3952
3953 ;; This package takes 4 GiB, which we can't afford to distribute from
3954 ;; our servers.
3955 #:substitutable? #f
3956
3957 #:phases
3958 (modify-phases (map (cut assq <> %standard-phases)
3959 '(set-paths unpack patch-source-shebangs))
3960 (add-after 'patch-source-shebangs 'install
3961 (lambda* (#:key outputs #:allow-other-keys)
3962 (let ((share (string-append (assoc-ref outputs "out") "/share")))
3963 (mkdir-p share)
3964 (invoke "mv" "texmf-dist" share))))
3965 (add-after 'install 'texmf-config
3966 (lambda* (#:key inputs outputs #:allow-other-keys)
3967 (let* ((out (assoc-ref outputs "out"))
3968 (share (string-append out "/share"))
3969 (texmfroot (string-append share "/texmf-dist/web2c"))
3970 (texmfcnf (string-append texmfroot "/texmf.cnf"))
3971 (texlive-bin (assoc-ref inputs "texlive-bin"))
3972 (texbin (string-append texlive-bin "/bin"))
3973 (tlpkg (string-append texlive-bin "/share/tlpkg")))
3974 ;; Register SHARE as TEXMFROOT in texmf.cnf.
3975 (substitute* texmfcnf
3976 (("TEXMFROOT = \\$SELFAUTOPARENT")
3977 (string-append "TEXMFROOT = " share))
3978 (("TEXMFLOCAL = \\$SELFAUTOGRANDPARENT/texmf-local")
3979 "TEXMFLOCAL = $SELFAUTODIR/share/texmf-local")
3980 (("!!\\$TEXMFLOCAL") "$TEXMFLOCAL"))
3981 ;; Register paths in texmfcnf.lua, needed for context.
3982 (substitute* (string-append texmfroot "/texmfcnf.lua")
3983 (("selfautodir:") out)
3984 (("selfautoparent:") (string-append share "/")))
3985 ;; Set path to TeXLive Perl modules
3986 (setenv "PERL5LIB"
3987 (string-append (getenv "PERL5LIB") ":" tlpkg))
3988 ;; Configure the texmf-dist tree; inspired from
3989 ;; http://slackbuilds.org/repository/13.37/office/texlive/
3990 (setenv "PATH" (string-append (getenv "PATH") ":" texbin))
3991 (setenv "TEXMFCNF" texmfroot)
3992 (invoke "updmap-sys" "--nohash" "--syncwithtrees")
3993 (invoke "mktexlsr")
3994 (invoke "fmtutil-sys" "--all")))))))
3995 (properties `((max-silent-time . 9600))) ; don't time out while grafting
3996 (synopsis "TeX Live, a package of the TeX typesetting system")
3997 (description
3998 "TeX Live provides a comprehensive TeX document production system.
3999 It includes all the major TeX-related programs, macro packages, and fonts
4000 that are free software, including support for many languages around the
4001 world.
4002
4003 This package contains the complete tree of texmf-dist data.")
4004 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
4005 (home-page "https://www.tug.org/texlive/")))
4006
4007 (define-public texlive
4008 (package
4009 (name "texlive")
4010 (version "20180414")
4011 (source #f)
4012 (build-system trivial-build-system)
4013 (inputs `(("bash" ,bash) ; for wrap-program
4014 ("texlive-bin" ,texlive-bin)
4015 ("texlive-texmf" ,texlive-texmf)))
4016 (native-search-paths
4017 (list (search-path-specification
4018 (variable "TEXMFLOCAL")
4019 (files '("share/texmf-local")))))
4020 (arguments
4021 `(#:modules ((guix build utils))
4022 #:builder
4023 ;; Build the union of texlive-bin and texlive-texmf, but take the
4024 ;; conflicting subdirectory share/texmf-dist from texlive-texmf.
4025 (begin
4026 (use-modules (guix build utils))
4027 (let ((out (assoc-ref %outputs "out"))
4028 (bin (assoc-ref %build-inputs "texlive-bin"))
4029 (texmf (assoc-ref %build-inputs "texlive-texmf"))
4030 (bash (assoc-ref %build-inputs "bash")))
4031 (mkdir out)
4032 (with-directory-excursion out
4033 (for-each
4034 (lambda (name)
4035 (symlink (string-append bin "/" name) name))
4036 '("include" "lib"))
4037 (mkdir "bin")
4038 (with-directory-excursion "bin"
4039 (setenv "PATH" (string-append bash "/bin"))
4040 (for-each
4041 (lambda (name)
4042 (symlink name (basename name))
4043 (wrap-program
4044 (basename name)
4045 `("TEXMFCNF" =
4046 (,(string-append texmf "/share/texmf-dist/web2c")))))
4047 (find-files (string-append bin "/bin/") "")))
4048 (mkdir "share")
4049 (with-directory-excursion "share"
4050 (for-each
4051 (lambda (name)
4052 (symlink (string-append bin "/share/" name) name))
4053 '("info" "man" "tlpkg"))
4054 (for-each
4055 (lambda (name)
4056 (symlink (string-append texmf "/share/" name) name))
4057 '("texmf-dist" "texmf-var"))))
4058 #t))))
4059 (synopsis "TeX Live, a package of the TeX typesetting system")
4060 (description
4061 "TeX Live provides a comprehensive TeX document production system.
4062 It includes all the major TeX-related programs, macro packages, and fonts
4063 that are free software, including support for many languages around the
4064 world.
4065
4066 This package contains the complete TeX Live distribution.")
4067 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
4068 (home-page "https://www.tug.org/texlive/")))
4069
4070 (define-public perl-text-bibtex
4071 (package
4072 (name "perl-text-bibtex")
4073 (version "0.85")
4074 (source
4075 (origin
4076 (method url-fetch)
4077 (uri (string-append "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-"
4078 version ".tar.gz"))
4079 (sha256
4080 (base32
4081 "036kxgbn1jf70pfm2lmjlzjwnhbkd888fp5lyvmkjpdd15gla18h"))))
4082 (build-system perl-build-system)
4083 (arguments
4084 `(#:phases
4085 (modify-phases %standard-phases
4086 (add-after 'unpack 'add-output-directory-to-rpath
4087 (lambda* (#:key outputs #:allow-other-keys)
4088 (substitute* "inc/MyBuilder.pm"
4089 (("-Lbtparse" line)
4090 (string-append "-Wl,-rpath="
4091 (assoc-ref outputs "out") "/lib " line)))
4092 #t))
4093 (add-after 'unpack 'install-libraries-to-/lib
4094 (lambda* (#:key outputs #:allow-other-keys)
4095 (substitute* "Build.PL"
4096 (("lib64") "lib"))
4097 #t)))))
4098 (native-inputs
4099 `(("perl-capture-tiny" ,perl-capture-tiny)
4100 ("perl-config-autoconf" ,perl-config-autoconf)
4101 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
4102 ("perl-module-build" ,perl-module-build)))
4103 (home-page "http://search.cpan.org/dist/Text-BibTeX")
4104 (synopsis "Interface to read and parse BibTeX files")
4105 (description "@code{Text::BibTeX} is a Perl library for reading, parsing,
4106 and processing BibTeX files. @code{Text::BibTeX} gives you access to the data
4107 at many different levels: you may work with BibTeX entries as simple field to
4108 string mappings, or get at the original form of the data as a list of simple
4109 values (strings, macros, or numbers) pasted together.")
4110 (license license:perl-license)))
4111
4112 (define-public biber
4113 (package
4114 (name "biber")
4115 (version "2.7")
4116 (source (origin
4117 (method url-fetch)
4118 (uri (string-append "https://github.com/plk/biber/archive/v"
4119 version ".tar.gz"))
4120 (file-name (string-append name "-" version ".tar.gz"))
4121 (sha256
4122 (base32
4123 "17wd80jg98qyddhvz4cin8779ycvppaf2va77r1lyvymjz6w9bx0"))))
4124 (build-system perl-build-system)
4125 (arguments
4126 `(#:phases
4127 (modify-phases %standard-phases
4128 (add-after 'install 'wrap-programs
4129 (lambda* (#:key outputs #:allow-other-keys)
4130 (let* ((out (assoc-ref outputs "out"))
4131 (perl5lib (getenv "PERL5LIB")))
4132 (wrap-program (string-append out "/bin/biber")
4133 `("PERL5LIB" ":" prefix
4134 (,(string-append perl5lib ":" out
4135 "/lib/perl5/site_perl")))))
4136 #t)))))
4137 (inputs
4138 `(("perl-autovivification" ,perl-autovivification)
4139 ("perl-class-accessor" ,perl-class-accessor)
4140 ("perl-data-dump" ,perl-data-dump)
4141 ("perl-data-compare" ,perl-data-compare)
4142 ("perl-data-uniqid" ,perl-data-uniqid)
4143 ("perl-datetime-format-builder" ,perl-datetime-format-builder)
4144 ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
4145 ("perl-file-slurp" ,perl-file-slurp)
4146 ("perl-ipc-cmd" ,perl-ipc-cmd)
4147 ("perl-ipc-run3" ,perl-ipc-run3)
4148 ("perl-list-allutils" ,perl-list-allutils)
4149 ("perl-list-moreutils" ,perl-list-moreutils)
4150 ("perl-mozilla-ca" ,perl-mozilla-ca)
4151 ("perl-regexp-common" ,perl-regexp-common)
4152 ("perl-log-log4perl" ,perl-log-log4perl)
4153 ;; We cannot use perl-unicode-collate here, because otherwise the
4154 ;; hardcoded hashes in the tests would differ. See
4155 ;; https://mail-archive.com/debian-bugs-dist@lists.debian.org/msg1469249.html
4156 ;;("perl-unicode-collate" ,perl-unicode-collate)
4157 ("perl-unicode-normalize" ,perl-unicode-normalize)
4158 ("perl-unicode-linebreak" ,perl-unicode-linebreak)
4159 ("perl-encode-eucjpascii" ,perl-encode-eucjpascii)
4160 ("perl-encode-jis2k" ,perl-encode-jis2k)
4161 ("perl-encode-hanextra" ,perl-encode-hanextra)
4162 ("perl-xml-libxml" ,perl-xml-libxml)
4163 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)
4164 ("perl-xml-libxslt" ,perl-xml-libxslt)
4165 ("perl-xml-writer" ,perl-xml-writer)
4166 ("perl-sort-key" ,perl-sort-key)
4167 ("perl-text-csv" ,perl-text-csv)
4168 ("perl-text-csv-xs" ,perl-text-csv-xs)
4169 ("perl-text-roman" ,perl-text-roman)
4170 ("perl-uri" ,perl-uri)
4171 ("perl-text-bibtex" ,perl-text-bibtex)
4172 ("perl-libwww" ,perl-libwww)
4173 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
4174 ("perl-business-isbn" ,perl-business-isbn)
4175 ("perl-business-issn" ,perl-business-issn)
4176 ("perl-business-ismn" ,perl-business-ismn)
4177 ("perl-lingua-translit" ,perl-lingua-translit)))
4178 (native-inputs
4179 `(("perl-config-autoconf" ,perl-config-autoconf)
4180 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
4181 ("perl-module-build" ,perl-module-build)
4182 ;; for tests
4183 ("perl-file-which" ,perl-file-which)
4184 ("perl-test-more" ,perl-test-most) ; FIXME: "more" would be sufficient
4185 ("perl-test-differences" ,perl-test-differences)))
4186 (home-page "http://biblatex-biber.sourceforge.net/")
4187 (synopsis "Backend for the BibLaTeX citation management tool")
4188 (description "Biber is a BibTeX replacement for users of biblatex. Among
4189 other things it comes with full Unicode support.")
4190 (license license:artistic2.0)))
4191
4192 (define-public rubber
4193 (package
4194 (name "rubber")
4195 (version "1.1")
4196 (source (origin
4197 (method url-fetch)
4198 (uri (list (string-append "https://launchpad.net/rubber/trunk/"
4199 version "/+download/rubber-"
4200 version ".tar.gz")
4201 (string-append "http://ebeffara.free.fr/pub/rubber-"
4202 version ".tar.gz")))
4203 (sha256
4204 (base32
4205 "1xbkv8ll889933gyi2a5hj7hhh216k04gn8fwz5lfv5iz8s34gbq"))))
4206 (build-system gnu-build-system)
4207 (arguments '(#:tests? #f)) ; no `check' target
4208 (inputs `(("texinfo" ,texinfo)
4209 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
4210 ("which" ,which)))
4211 (home-page "https://launchpad.net/rubber")
4212 (synopsis "Wrapper for LaTeX and friends")
4213 (description
4214 "Rubber is a program whose purpose is to handle all tasks related to the
4215 compilation of LaTeX documents. This includes compiling the document itself,
4216 of course, enough times so that all references are defined, and running BibTeX
4217 to manage bibliographic references. Automatic execution of dvips to produce
4218 PostScript documents is also included, as well as usage of pdfLaTeX to produce
4219 PDF documents.")
4220 (license license:gpl2+)))
4221
4222 (define-public texmaker
4223 (package
4224 (name "texmaker")
4225 (version "4.5")
4226 (source (origin
4227 (method url-fetch)
4228 (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
4229 version ".tar.bz2"))
4230 (sha256
4231 (base32
4232 "056njk6j8wma23mlp7xa3rgfaxx0q8ynwx8wkmj7iy0b85p9ds9c"))))
4233 (build-system gnu-build-system)
4234 (arguments
4235 `(#:phases
4236 (modify-phases %standard-phases
4237 ;; Qt has its own configuration utility.
4238 (replace 'configure
4239 (lambda* (#:key outputs #:allow-other-keys)
4240 (let ((out (assoc-ref outputs "out")))
4241 (invoke "qmake"
4242 (string-append "PREFIX=" out)
4243 (string-append "DESKTOPDIR=" out
4244 "/share/applications")
4245 (string-append "ICONDIR=" out "/share/pixmaps")
4246 "texmaker.pro")))))))
4247 (inputs
4248 `(("poppler-qt5" ,poppler-qt5)
4249 ("qtbase" ,qtbase)
4250 ("qtscript" ,qtscript)
4251 ("qtwebkit" ,qtwebkit)
4252 ("zlib" ,zlib)))
4253 (native-inputs
4254 `(("pkg-config" ,pkg-config)))
4255 (home-page "http://www.xm1math.net/texmaker/")
4256 (synopsis "LaTeX editor")
4257 (description "Texmaker is a program that integrates many tools needed to
4258 develop documents with LaTeX, in a single application.")
4259 (license license:gpl2+)))
4260
4261
4262 (define-public teximpatient
4263 (package
4264 (name "teximpatient")
4265 (version "2.4")
4266 (source (origin
4267 (method url-fetch)
4268 (uri (string-append "mirror://gnu/" name "/" name "-"
4269 version ".tar.gz"))
4270 (sha256
4271 (base32
4272 "0h56w22d99dh4fgld4ssik8ggnmhmrrbnrn1lnxi1zr0miphn1sd"))))
4273 (build-system gnu-build-system)
4274 (arguments
4275 `(#:phases
4276 (modify-phases %standard-phases
4277 (delete 'check)
4278 ;; Unfortunately some mistakes have been made in packaging.
4279 ;; Work around them here ...
4280 (replace 'unpack
4281 (lambda* (#:key inputs outputs #:allow-other-keys)
4282 (let ((srcdir "teximpatient-2.4"))
4283 (system* "tar" "-xzf" (assoc-ref inputs "source")
4284 (string-append "--one-top-level=" srcdir))
4285 (delete-file (string-append srcdir "/book.pdf"))
4286 (install-file (car
4287 (find-files
4288 (assoc-ref inputs "automake")
4289 "^install-sh$"))
4290 srcdir)
4291 (chdir srcdir)))))))
4292 (native-inputs
4293 `(("texlive" ,texlive)
4294 ("automake" ,automake)))
4295 (home-page "https://www.gnu.org/software/teximpatient/")
4296 (synopsis "Book on TeX, plain TeX and Eplain")
4297 (description "@i{TeX for the Impatient} is a ~350 page book on TeX,
4298 plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,
4299 and Karl Berry.")
4300 (license license:fdl1.3+)))
4301
4302 (define-public lyx
4303 (package
4304 (name "lyx")
4305 (version "2.2.3")
4306 (source (origin
4307 (method url-fetch)
4308 (uri (string-append "http://ftp.lyx.org/pub/lyx/stable/2.2.x/"
4309 name "-" version ".tar.gz"))
4310 (sha256
4311 (base32
4312 "0xvaz0i371nn2ndinc0d3ywj76ivb62649a4sdgwbivisiahd2fj"))
4313 (patches (search-patches "lyx-2.2.3-fix-test.patch"))
4314 (modules '((guix build utils)))
4315 (snippet
4316 '(begin
4317 (delete-file-recursively "3rdparty")
4318 #t))))
4319 (build-system cmake-build-system)
4320 (arguments
4321 `(#:configure-flags `("-DLYX_USE_QT=QT5"
4322 "-DLYX_EXTERNAL_BOOST=1"
4323 "-DLYX_INSTALL=1"
4324 "-DLYX_RELEASE=1"
4325 ,(string-append "-DLYX_INSTALL_PREFIX="
4326 (assoc-ref %outputs "out")
4327 ;; Exact name and level is necessary.
4328 "/lyx2.2"))
4329 #:phases
4330 (modify-phases %standard-phases
4331 (add-after 'unpack 'patch-python
4332 (lambda* (#:key inputs #:allow-other-keys)
4333 (substitute* '("src/support/os.cpp")
4334 (("\"python ")
4335 (string-append "\""
4336 (assoc-ref inputs "python-2")
4337 "/bin/python ")))
4338 #t))
4339 (add-after 'patch-python 'patch-installer
4340 (lambda* (#:key outputs #:allow-other-keys)
4341 (substitute* "CMakeLists.txt"
4342 (("/usr/local/man/man1")
4343 (string-append (assoc-ref outputs "out")
4344 "/share/man/man1")))
4345 #t))
4346 (add-after 'patch-python 'patch-desktop-file
4347 (lambda* (#:key outputs #:allow-other-keys)
4348 (substitute* "lib/lyx.desktop.in"
4349 (("Exec=")
4350 (string-append "Exec="
4351 (assoc-ref outputs "out")
4352 "/")))
4353 #t))
4354 (add-before 'check 'setenv-check
4355 (lambda _
4356 (setenv "LYX_DIR_22x" (string-append (getcwd) "/../lyx-"
4357 ,version "/lib"))
4358 #t))
4359 (add-after 'install 'install-symlinks
4360 (lambda* (#:key outputs #:allow-other-keys)
4361 (let ((out (assoc-ref outputs "out")))
4362 (mkdir-p (string-append out "/bin"))
4363 (symlink "../lyx2.2/bin/lyx2.2"
4364 (string-append out "/bin/lyx2.2"))
4365 #t))))))
4366 (inputs
4367 `(("boost" ,boost)
4368 ("hunspell" ,hunspell) ; Note: Could also use aspell instead.
4369 ("libx11" ,libx11)
4370 ("python-2" ,python-2)
4371 ("qtbase" ,qtbase)
4372 ("qtsvg" ,qtsvg)
4373 ("zlib" ,zlib)))
4374 (propagated-inputs
4375 `(("texlive" ,texlive))) ; article.cls is in texmf-dist.
4376 (native-inputs
4377 `(("python-2" ,python-2)
4378 ("pkg-config" ,pkg-config)
4379 ("bc" ,bc)))
4380 (home-page "https://www.lyx.org/")
4381 (synopsis "Document preparation system with GUI")
4382 (description "LyX is a document preparation system. It excels at letting
4383 you create complex technical and scientific articles with mathematics,
4384 cross-references, bibliographies, indexes, etc. It is very good for working
4385 with documents of any length in which the usual processing abilities are
4386 required: automatic sectioning and pagination, spell checking and so forth.")
4387 (license license:gpl2+)))