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