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