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