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