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