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