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