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