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