gnu: texlive-fonts-ec: Remove vestigial error code plumbing.
[jackhill/guix/guix.git] / gnu / packages / tex.scm
CommitLineData
eb0119ef 1;;; GNU Guix --- Functional package management for GNU
4a6635f3 2;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
42e1394b 3;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
d2e84281 4;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
4791876c 5;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
b8d8806b 6;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
2d634d9b 7;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
bd917486 8;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
9d913b25 9;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
149f6688 10;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
594156ec 11;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
a2460e0f 12;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
eb0119ef
AE
13;;;
14;;; This file is part of GNU Guix.
15;;;
16;;; GNU Guix is free software; you can redistribute it and/or modify it
17;;; under the terms of the GNU General Public License as published by
18;;; the Free Software Foundation; either version 3 of the License, or (at
19;;; your option) any later version.
20;;;
21;;; GNU Guix is distributed in the hope that it will be useful, but
22;;; WITHOUT ANY WARRANTY; without even the implied warranty of
23;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24;;; GNU General Public License for more details.
25;;;
26;;; You should have received a copy of the GNU General Public License
27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28
8f9ac901 29(define-module (gnu packages tex)
b5b73a82 30 #:use-module ((guix licenses) #:prefix license:)
eb0119ef
AE
31 #:use-module (guix packages)
32 #:use-module (guix download)
33 #:use-module (guix build-system gnu)
ebcf74da 34 #:use-module (guix build-system perl)
0aa34e82 35 #:use-module (guix build-system trivial)
205794c8 36 #:use-module (guix build-system texlive)
6b5eb840 37 #:use-module (guix utils)
83457fe0 38 #:use-module (guix git-download)
9d913b25 39 #:use-module (guix svn-download)
eb0119ef 40 #:use-module (gnu packages)
83457fe0 41 #:use-module (gnu packages autotools)
0aa34e82 42 #:use-module (gnu packages bash)
eb0119ef 43 #:use-module (gnu packages compression)
a86177d6 44 #:use-module (gnu packages fontutils)
fd89b36b 45 #:use-module (gnu packages gd)
eb0119ef 46 #:use-module (gnu packages ghostscript)
fd89b36b 47 #:use-module (gnu packages gtk)
eb0119ef 48 #:use-module (gnu packages icu4c)
e55354b8 49 #:use-module (gnu packages image)
0aa34e82 50 #:use-module (gnu packages lua)
0256c746 51 #:use-module (gnu packages multiprecision)
eb0119ef
AE
52 #:use-module (gnu packages pdf)
53 #:use-module (gnu packages perl)
5ccde207 54 #:use-module (gnu packages perl-check)
eb0119ef
AE
55 #:use-module (gnu packages pkg-config)
56 #:use-module (gnu packages python)
4791876c 57 #:use-module (gnu packages qt)
b32c8549 58 #:use-module (gnu packages ruby)
b7194849 59 #:use-module (gnu packages shells)
ce0614dd 60 #:use-module (gnu packages base)
d4000680
RW
61 #:use-module (gnu packages web)
62 #:use-module (gnu packages xml)
c0589f75 63 #:use-module (gnu packages xorg)
ece9b417 64 #:use-module (gnu packages xdisorg)
6b5eb840
AE
65 #:autoload (gnu packages texinfo) (texinfo)
66 #:use-module (ice-9 ftw)
cb7bc20a 67 #:use-module (ice-9 match)
e93f472d 68 #:use-module ((srfi srfi-1) #:hide (zip)))
eb0119ef
AE
69
70(define texlive-extra-src
71 (origin
72 (method url-fetch)
149f6688 73 (uri "ftp://tug.org/historic/systems/texlive/2017/texlive-20170524-extra.tar.xz")
eb0119ef 74 (sha256 (base32
149f6688 75 "0zvd2zskk78ig114mfj24g15qys41hzqv59fmqpirdbgq9c9gr5g"))))
eb0119ef
AE
76
77(define texlive-texmf-src
78 (origin
79 (method url-fetch)
149f6688 80 (uri "ftp://tug.org/historic/systems/texlive/2017/texlive-20170524-texmf.tar.xz")
eb0119ef 81 (sha256 (base32
149f6688 82 "1v69y3kgkbk24f7s4dfkknwd317mqmck5jgpyb35wqgqfy5p0qrz"))))
eb0119ef 83
3abe72bd 84(define-public texlive-bin
eb0119ef 85 (package
0aa34e82 86 (name "texlive-bin")
149f6688 87 (version "20170524")
0aa34e82
AE
88 (source
89 (origin
90 (method url-fetch)
149f6688
LF
91 (uri (string-append "ftp://tug.org/historic/systems/texlive/2017/"
92 "texlive-" version "-source.tar.xz"))
594156ec
MB
93 (patches
94 (list
95 ;; This is required for compatibility with Poppler >= 0.58.
96 ;; See <http://tutex.tug.org/pipermail/tex-k/2017-September/002809.html>
97 ;; and <https://bugs.archlinux.org/task/55720> for some discussion.
98 (origin
99 (method url-fetch)
100 (uri (string-append "https://git.archlinux.org/svntogit/packages.git/plain"
101 "/trunk/texlive-poppler-0.59.patch?h=packages/texlive-bin"
102 "&id=ba2de374e2b21ecc4b85cc9777f2f15c4d356c61"))
103 (file-name "texlive-poppler-compat.patch")
104 (sha256
105 (base32
106 "1c4ikq4kxw48bi3i33bzpabrjvbk01fwjr2lz20gkc9kv8l0bg3n")))))
0aa34e82 107 (sha256 (base32
149f6688 108 "1amjrxyasplv4alfwcxwnw4nrx7dz2ydmddkq16k6hg90i9njq81"))))
eb0119ef 109 (build-system gnu-build-system)
0aa34e82
AE
110 (inputs
111 `(("texlive-extra-src" ,texlive-extra-src)
112 ("cairo" ,cairo)
113 ("fontconfig" ,fontconfig)
114 ("fontforge" ,fontforge)
115 ("freetype" ,freetype)
116 ("gd" ,gd)
0256c746 117 ("gmp" ,gmp)
0aa34e82
AE
118 ("ghostscript" ,ghostscript)
119 ("graphite2" ,graphite2)
120 ("harfbuzz" ,harfbuzz)
121 ("icu4c" ,icu4c)
122 ("libpaper" ,libpaper)
123 ("libpng" ,libpng)
124 ("libxaw" ,libxaw)
125 ("libxt" ,libxt)
0256c746 126 ("mpfr" ,mpfr)
0aa34e82
AE
127 ("perl" ,perl)
128 ("pixman" ,pixman)
129 ("poppler" ,poppler)
130 ("potrace" ,potrace)
131 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
132 ("ruby" ,ruby)
133 ("tcsh" ,tcsh)
134 ("teckit" ,teckit)
135 ("zlib" ,zlib)
136 ("zziplib" ,zziplib)))
c4c4cc05 137 (native-inputs
e9a6d225 138 `(("pkg-config" ,pkg-config)))
eb0119ef
AE
139 (arguments
140 `(#:out-of-source? #t
141 #:configure-flags
142 `("--disable-native-texlive-build"
594156ec
MB
143 ;; XXX: This is needed because recent Poppler requires C++11 or later.
144 ;; Remove after switch to GCC >= 6.
145 "CXXFLAGS=-std=gnu++11"
fd89b36b 146 "--with-system-cairo"
eb0119ef 147 "--with-system-freetype2"
fd89b36b 148 "--with-system-gd"
0256c746 149 "--with-system-gmp"
be2c88ca 150 "--with-system-graphite2"
c70cf7eb 151 "--with-system-harfbuzz"
eb0119ef
AE
152 "--with-system-icu"
153 "--with-system-libgs"
609578a7 154 "--with-system-libpaper"
eb0119ef 155 "--with-system-libpng"
0256c746 156 "--with-system-mpfr"
fd89b36b 157 "--with-system-pixman"
eb0119ef 158 "--with-system-poppler"
75916982 159 "--with-system-potrace"
eb0119ef
AE
160 "--with-system-teckit"
161 "--with-system-xpdf"
162 "--with-system-zlib"
163 "--with-system-zziplib")
2f4640e3 164
7683bf11
EB
165 ;; Disable tests on mips64/aarch64 to cope with a failure of luajiterr.test.
166 ;; XXX FIXME fix luajit properly on mips64 and aarch64.
167 #:tests? ,(let ((s (or (%current-target-system)
168 (%current-system))))
169 (not (or (string-prefix? "aarch64" s)
170 (string-prefix? "mips64" s))))
eb0119ef 171 #:phases
4a6635f3
AE
172 (modify-phases %standard-phases
173 (add-after 'install 'postint
174 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
175 (let* ((out (assoc-ref outputs "out"))
176 (share (string-append out "/share"))
177 (texlive-extra (assoc-ref inputs "texlive-extra-src"))
178 (unpack (assoc-ref %standard-phases 'unpack))
179 (patch-source-shebangs
180 (assoc-ref %standard-phases 'patch-source-shebangs)))
181 ;; Create symbolic links for the latex variants and their
182 ;; man pages.
183 (with-directory-excursion (string-append out "/bin/")
184 (for-each symlink
185 '("pdftex" "pdftex" "xetex" "luatex")
186 '("latex" "pdflatex" "xelatex" "lualatex")))
187 (with-directory-excursion (string-append share "/man/man1/")
188 (symlink "luatex.1" "lualatex.1"))
189 ;; Unpack texlive-extra and install tlpkg.
190 (mkdir "texlive-extra")
191 (with-directory-excursion "texlive-extra"
192 (apply unpack (list #:source texlive-extra))
193 (apply patch-source-shebangs (list #:source texlive-extra))
24fe4b59 194 (invoke "mv" "tlpkg" share))))))))
0aa34e82
AE
195 (synopsis "TeX Live, a package of the TeX typesetting system")
196 (description
197 "TeX Live provides a comprehensive TeX document production system.
198It includes all the major TeX-related programs, macro packages, and fonts
199that are free software, including support for many languages around the
200world.
201
202This package contains the binaries.")
132e14b4
EF
203 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
204 (home-page "https://www.tug.org/texlive/")))
0aa34e82 205
9d913b25
RW
206(define-public texlive-dvips
207 (package
208 (name "texlive-dvips")
209 (version (number->string %texlive-revision))
210 (source (origin
211 (method svn-fetch)
212 (uri (svn-reference
213 (url (string-append "svn://www.tug.org/texlive/tags/"
214 %texlive-tag "/Master/texmf-dist/"
215 "/dvips"))
216 (revision %texlive-revision)))
2cdd9729 217 (file-name (string-append name "-" version "-checkout"))
9d913b25
RW
218 (sha256
219 (base32
15dc52e5 220 "0fcy2hpapbj01ncpjj3v39yhr0jjxb6rm13qaxjjw66s3vydxls1"))))
9d913b25
RW
221 (build-system trivial-build-system)
222 (arguments
223 `(#:modules ((guix build utils))
224 #:builder
225 (begin
226 (use-modules (guix build utils))
47019467
RW
227 (let* ((root (string-append (assoc-ref %outputs "out")
228 "/share/texmf-dist"))
229 (dvips (string-append root "/dvips"))
230 (maps (string-append root "/fonts/map/dvips/tetex"))
231 (encs (string-append root "/fonts/enc/dvips/base")))
232 (mkdir-p dvips)
233 (copy-recursively (assoc-ref %build-inputs "source") dvips)
234 (mkdir-p maps)
235 (copy-recursively (assoc-ref %build-inputs "dvips-font-maps") maps)
236 (mkdir-p encs)
237 (copy-recursively (assoc-ref %build-inputs "dvips-base-enc") encs)
9d913b25 238 #t))))
47019467
RW
239 (native-inputs
240 `(("dvips-font-maps"
241 ,(origin
242 (method svn-fetch)
243 (uri (svn-reference
244 (url (string-append "svn://www.tug.org/texlive/tags/"
245 %texlive-tag "/Master/texmf-dist/"
246 "/fonts/map/dvips/tetex"))
247 (revision %texlive-revision)))
2cdd9729 248 (file-name (string-append "dvips-font-maps-" version "-checkout"))
47019467
RW
249 (sha256
250 (base32
251 "100208pg7q6lj7swiq9p9287nn6b64bl62bnlaxpjni9y2kdrqy5"))))
252 ("dvips-base-enc"
253 ,(origin
254 (method svn-fetch)
255 (uri (svn-reference
256 (url (string-append "svn://www.tug.org/texlive/tags/"
257 %texlive-tag "/Master/texmf-dist/"
258 "/fonts/enc/dvips/base"))
259 (revision %texlive-revision)))
2cdd9729 260 (file-name (string-append "dvips-base-enc-" version "-checkout"))
47019467
RW
261 (sha256
262 (base32
263 "1xnf6ms0h87r55kxik4vicwr1907scj789lhqflqns8svvsli5iy"))))))
b8d8806b 264 (home-page "https://www.ctan.org/pkg/dvips")
9d913b25
RW
265 (synopsis "DVI to PostScript drivers")
266 (description "This package provides files needed for converting DVI files
267to PostScript.")
268 ;; Various free software licenses apply to individual files.
269 (license (list license:lppl1.3c+
270 license:expat
271 license:lgpl3+))))
272
99952c53
RW
273(define-public texlive-generic-unicode-data
274 (package
275 (name "texlive-generic-unicode-data")
276 (version (number->string %texlive-revision))
277 (source (origin
278 (method svn-fetch)
279 (uri (svn-reference
280 (url (string-append "svn://www.tug.org/texlive/tags/"
281 %texlive-tag "/Master/texmf-dist/"
282 "/tex/generic/unicode-data"))
283 (revision %texlive-revision)))
f569e917 284 (file-name (string-append name "-" version "-checkout"))
99952c53
RW
285 (sha256
286 (base32
287 "0ivrhp6jz31pl4z841g4ws41lmvdiwz4sslmhf02inlib79gz6r2"))))
288 (build-system trivial-build-system)
289 (arguments
290 `(#:modules ((guix build utils))
291 #:builder
292 (begin
293 (use-modules (guix build utils))
294 (let ((target (string-append (assoc-ref %outputs "out")
295 "/share/texmf-dist/tex/generic/unicode-data")))
296 (mkdir-p target)
297 (copy-recursively (assoc-ref %build-inputs "source") target)
298 #t))))
b8d8806b 299 (home-page "https://www.ctan.org/pkg/unicode-data")
99952c53
RW
300 (synopsis "Unicode data and loaders for TeX")
301 (description "This bundle provides generic access to Unicode Consortium
302data for TeX use. It contains a set of text files provided by the Unicode
303Consortium which are currently all from Unicode 8.0.0, with the exception of
304@code{MathClass.txt} which is not currently part of the Unicode Character
305Database. Accompanying these source data are generic TeX loader files
306allowing this data to be used as part of TeX runs, in particular in building
307format files. Currently there are two loader files: one for general character
308set up and one for initializing XeTeX character classes as has been carried
309out to date by @code{unicode-letters.tex}. ")
310 (license license:lppl1.3c+)))
311
9e99b1b4
RW
312(define-public texlive-generic-dehyph-exptl
313 (package
314 (name "texlive-generic-dehyph-exptl")
315 (version (number->string %texlive-revision))
316 (source (origin
317 (method svn-fetch)
318 (uri (svn-reference
319 (url (string-append "svn://www.tug.org/texlive/tags/"
320 %texlive-tag "/Master/texmf-dist/"
321 "/tex/generic/dehyph-exptl"))
322 (revision %texlive-revision)))
ddc0bbc8 323 (file-name (string-append name "-" version "-checkout"))
9e99b1b4
RW
324 (sha256
325 (base32
326 "1l9wgv99qq0ysvlxqpj4g8bl0dywbzra4g8m2kmpg2fb0i0hczap"))))
327 (build-system trivial-build-system)
328 (arguments
329 `(#:modules ((guix build utils))
330 #:builder
331 (begin
332 (use-modules (guix build utils))
333 (let ((target (string-append (assoc-ref %outputs "out")
334 "/share/texmf-dist/tex/generic/dehyph-exptl")))
335 (mkdir-p target)
336 (copy-recursively (assoc-ref %build-inputs "source") target)
337 #t))))
338 (home-page "http://projekte.dante.de/Trennmuster/WebHome")
339 (synopsis "Hyphenation patterns for German")
340 (description "The package provides experimental hyphenation patterns for
341the German language, covering both traditional and reformed orthography. The
342patterns can be used with packages Babel and hyphsubst from the Oberdiek
343bundle.")
344 ;; Hyphenation patterns are under the Expat license; documentation is
345 ;; under LPPL.
346 (license (list license:expat license:lppl))))
347
453aae66
RW
348(define-public texlive-generic-tex-ini-files
349 (package
350 (name "texlive-generic-tex-ini-files")
351 (version (number->string %texlive-revision))
352 (source (origin
353 (method svn-fetch)
354 (uri (svn-reference
355 (url (string-append "svn://www.tug.org/texlive/tags/"
356 %texlive-tag "/Master/texmf-dist/"
357 "/tex/generic/tex-ini-files"))
358 (revision %texlive-revision)))
ac0529dd 359 (file-name (string-append name "-" version "-checkout"))
453aae66
RW
360 (sha256
361 (base32
362 "1wh42n1lmzcvi3g6mm31nm3yd5ha5bl260xqc444jg1m9fdp3wz5"))))
363 (build-system trivial-build-system)
364 (arguments
365 `(#:modules ((guix build utils))
366 #:builder
367 (begin
368 (use-modules (guix build utils))
369 (let ((target (string-append (assoc-ref %outputs "out")
370 "/share/texmf-dist/tex/generic/tex-ini-files")))
371 (mkdir-p target)
372 (copy-recursively (assoc-ref %build-inputs "source") target)
373 #t))))
b8d8806b 374 (home-page "https://www.ctan.org/pkg/tex-ini-files")
453aae66
RW
375 (synopsis "Files for creating TeX formats")
376 (description "This bundle provides a collection of model \".ini\" files
377for creating TeX formats. These files are commonly used to introduced
378distribution-dependent variations in formats. They are also used to
379allow existing format source files to be used with newer engines, for example
380to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.")
381 (license license:public-domain)))
382
9b134da8
RW
383(define-public texlive-generic-hyph-utf8
384 (package
385 (name "texlive-generic-hyph-utf8")
386 (version (number->string %texlive-revision))
387 (source (origin
388 (method svn-fetch)
389 (uri (svn-reference
390 (url (string-append "svn://www.tug.org/texlive/tags/"
391 %texlive-tag "/Master/texmf-dist/"
392 "/tex/generic/hyph-utf8"))
393 (revision %texlive-revision)))
a6acd611 394 (file-name (string-append name "-" version "-checkout"))
9b134da8
RW
395 (sha256
396 (base32
397 "0ghizcz7ps16dzfqf66wwg5i181assc6qsm0g7g5dbmp909931vi"))))
398 (build-system trivial-build-system)
399 (arguments
400 `(#:modules ((guix build utils))
401 #:builder
402 (begin
403 (use-modules (guix build utils))
404 (let ((target (string-append (assoc-ref %outputs "out")
405 "/share/texmf-dist/tex/generic/hyph-utf8")))
406 (mkdir-p target)
407 (copy-recursively (assoc-ref %build-inputs "source") target)
408 #t))))
b8d8806b 409 (home-page "https://ctan.org/pkg/hyph-utf8")
9b134da8
RW
410 (synopsis "Hyphenation patterns expressed in UTF-8")
411 (description "Modern native UTF-8 engines such as XeTeX and LuaTeX need
412hyphenation patterns in UTF-8 format, whereas older systems require
413hyphenation patterns in the 8-bit encoding of the font in use (such encodings
414are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1,
415etc). The present package offers a collection of conversions of existing
416patterns to UTF-8 format, together with converters for use with 8-bit fonts in
417older systems. Since hyphenation patterns for Knuthian-style TeX systems are
418only read at iniTeX time, it is hoped that the UTF-8 patterns, with their
419converters, will completely supplant the older patterns.")
420 ;; Individual files each have their own license. Most of these files are
421 ;; independent hyphenation patterns.
422 (license (list license:lppl1.0+
423 license:lppl1.2+
424 license:lppl1.3
425 license:lppl1.3+
426 license:lppl1.3a+
427 license:lgpl2.1
428 license:lgpl2.1+
429 license:lgpl3+
430 license:gpl2+
431 license:gpl3+
432 license:mpl1.1
433 license:asl2.0
434 license:expat
435 license:bsd-3
436 license:cc0
437 license:public-domain
438 license:wtfpl2))))
439
8ada0f0b
RW
440(define-public texlive-metafont-base
441 (package
442 (name "texlive-metafont-base")
443 (version (number->string %texlive-revision))
444 (source (origin
445 (method svn-fetch)
446 (uri (svn-reference
447 (url (string-append "svn://www.tug.org/texlive/tags/"
448 %texlive-tag "/Master/texmf-dist/"
449 "/metafont"))
450 (revision %texlive-revision)))
1dec413a 451 (file-name (string-append name "-" version "-checkout"))
8ada0f0b
RW
452 (sha256
453 (base32
454 "1yl4n8cn5xqk2nc22zgzq6ymd7bhm6xx1mz3azip7i3ki4bhb5q5"))))
455 (build-system gnu-build-system)
456 (arguments
457 `(#:tests? #f ; no test target
458 #:phases
459 (modify-phases %standard-phases
460 (delete 'configure)
461 (replace 'build
462 (lambda* (#:key inputs #:allow-other-keys)
463 (let ((cwd (getcwd)))
464 (setenv "MFINPUTS"
465 (string-append cwd "/base:"
466 cwd "/misc:"
467 cwd "/roex:"
468 cwd "/feynmf:"
469 cwd "/mfpic:"
470 cwd "/config")))
471 (mkdir "build")
472 (with-directory-excursion "build"
473 (zero? (system* "inimf" "mf.mf")))))
474 (replace 'install
475 (lambda* (#:key outputs #:allow-other-keys)
476 (let* ((out (assoc-ref outputs "out"))
477 (base (string-append out "/share/texmf-dist/web2c"))
478 (mf (string-append out "/share/texmf-dist/metafont/base")))
479 (mkdir-p base)
480 (mkdir-p mf)
481 (install-file "build/mf.base" base)
482 (copy-recursively "base" mf)
483 #t))))))
484 (native-inputs
485 `(("texlive-bin" ,texlive-bin)))
b8d8806b 486 (home-page "https://www.ctan.org/pkg/metafont")
8ada0f0b
RW
487 (synopsis "Metafont base files")
488 (description "This package provides the Metafont base files needed to
489build fonts using the Metafont system.")
490 (license license:knuth)))
491
dea67d8a
RW
492(define-public texlive-fontname
493 (package
494 (name "texlive-fontname")
495 (version (number->string %texlive-revision))
496 (source (origin
497 (method svn-fetch)
498 (uri (svn-reference
499 (url (string-append "svn://www.tug.org/texlive/tags/"
500 %texlive-tag "/Master/texmf-dist/"
501 "/fonts/map/fontname"))
502 (revision %texlive-revision)))
b8e213cb 503 (file-name (string-append name "-" version "-checkout"))
dea67d8a
RW
504 (sha256
505 (base32
506 "0cssbzcx15221dynp5sii72qh4l18mwkr14n8w1xb19j8pbaqasz"))))
507 (build-system trivial-build-system)
508 (arguments
509 `(#:modules ((guix build utils))
510 #:builder
511 (begin
512 (use-modules (guix build utils))
513 (let ((target (string-append (assoc-ref %outputs "out")
514 "/share/texmf-dist/fonts/map/fontname")))
515 (mkdir-p target)
516 (copy-recursively (assoc-ref %build-inputs "source") target)
517 #t))))
518 (home-page "https://www.ctan.org/pkg/fontname")
519 (synopsis "Scheme for naming fonts in TeX")
520 (description "This is Fontname, a naming scheme for (the base part of)
521external TeX font filenames. This makes at most eight-character names
522from (almost) arbitrarily complex font names, thus helping portability of TeX
523documents.")
524 (license license:public-domain)))
525
3c4f1ec7
RW
526(define-public texlive-fonts-cm
527 (package
528 (name "texlive-fonts-cm")
529 (version (number->string %texlive-revision))
530 (source (origin
531 (method svn-fetch)
532 (uri (svn-reference
533 (url (string-append "svn://www.tug.org/texlive/tags/"
534 %texlive-tag "/Master/texmf-dist/"
535 "/fonts/source/public/cm"))
536 (revision %texlive-revision)))
a4015c20 537 (file-name (string-append name "-" version "-checkout"))
3c4f1ec7
RW
538 (sha256
539 (base32
540 "045k5b9rdmbxpy1a3006l1x96z1rd18vg3cwrvnld9bqybw5qz44"))))
541 (build-system gnu-build-system)
542 (arguments
543 `(#:modules ((guix build gnu-build-system)
544 (guix build utils)
545 (srfi srfi-1)
546 (srfi srfi-26))
547 #:tests? #f ; no tests
548 #:phases
549 (modify-phases %standard-phases
550 (delete 'configure)
551 (replace 'build
552 (lambda* (#:key inputs #:allow-other-keys)
553 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
554 ;; Tell mf where to find mf.base
555 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
556 ;; Tell mf where to look for source files
557 (setenv "MFINPUTS"
558 (string-append (getcwd) ":"
559 mf "/share/texmf-dist/metafont/base")))
560 (mkdir "build")
ff440d62
MW
561 (for-each (lambda (font)
562 (format #t "building font ~a\n" font)
563 (invoke "mf" "-progname=mf"
564 "-output-directory=build"
565 (string-append "\\"
566 "mode:=ljfour; "
567 "mag:=1; "
568 "batchmode; "
569 "input "
570 (basename font ".mf"))))
571 (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$"))
572 #t))
3c4f1ec7
RW
573 (replace 'install
574 (lambda* (#:key outputs #:allow-other-keys)
575 (let* ((out (assoc-ref outputs "out"))
576 (tfm (string-append
577 out "/share/texmf-dist/fonts/tfm/public/cm"))
578 (mf (string-append
579 out "/share/texmf-dist/fonts/source/public/cm")))
580 (for-each (cut install-file <> tfm)
581 (find-files "build" "\\.*"))
582 (for-each (cut install-file <> mf)
583 (find-files "." "\\.mf"))
584 #t))))))
585 (native-inputs
586 `(("texlive-bin" ,texlive-bin)
587 ("texlive-metafont-base" ,texlive-metafont-base)))
b8d8806b 588 (home-page "https://www.ctan.org/pkg/cm")
3c4f1ec7
RW
589 (synopsis "Computer Modern fonts for TeX")
590 (description "This package provides the Computer Modern fonts by Donald
591Knuth. The Computer Modern font family is a large collection of text,
592display, and mathematical fonts in a range of styles, based on Monotype Modern
5938A.")
594 (license license:knuth)))
595
5ebba61a
RW
596(define-public texlive-fonts-knuth-lib
597 (package
598 (name "texlive-fonts-knuth-lib")
599 (version (number->string %texlive-revision))
600 (source (origin
601 (method svn-fetch)
602 (uri (svn-reference
603 (url (string-append "svn://www.tug.org/texlive/tags/"
604 %texlive-tag "/Master/texmf-dist/"
605 "/fonts/source/public/knuth-lib"))
606 (revision %texlive-revision)))
6b286e42 607 (file-name (string-append name "-" version "-checkout"))
5ebba61a
RW
608 (sha256
609 (base32
610 "0in9aqyi8jkyf9d16z0li50z5fpwj1iwgwm83gmvwqcf7chfs04y"))))
611 (build-system gnu-build-system)
612 (arguments
613 `(#:modules ((guix build gnu-build-system)
614 (guix build utils)
615 (srfi srfi-26))
616 #:tests? #f ; no tests
617 #:phases
618 (modify-phases %standard-phases
619 (delete 'configure)
620 (replace 'build
621 (lambda* (#:key inputs #:allow-other-keys)
622 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
623 ;; Tell mf where to find mf.base
624 (setenv "MFBASES"
625 (string-append mf "/share/texmf-dist/web2c"))
626 ;; Tell mf where to look for source files
627 (setenv "MFINPUTS"
628 (string-append (getcwd) ":"
629 mf "/share/texmf-dist/metafont/base")))
630 (mkdir "build")
631 (zero? (system* "mf" "-progname=mf"
632 "-output-directory=build"
633 (string-append "\\"
634 "mode:=ljfour; "
635 "mag:=1; "
636 "batchmode; "
637 "input manfnt")))))
638 (replace 'install
639 (lambda* (#:key outputs #:allow-other-keys)
640 (let* ((out (assoc-ref outputs "out"))
641 (tfm (string-append
642 out "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
643 (mf (string-append
644 out "/share/texmf-dist/fonts/source/public/knuth-lib")))
645 (for-each (cut install-file <> tfm)
646 (find-files "build" "\\.*"))
647 (for-each (cut install-file <> mf)
648 (find-files "." "\\.mf"))
649 #t))))))
650 (native-inputs
651 `(("texlive-bin" ,texlive-bin)
652 ("texlive-metafont-base" ,texlive-metafont-base)))
653 (home-page "https://www.ctan.org/pkg/knuth-lib")
654 (synopsis "Small library of METAFONT sources")
655 (description "This is a collection of core TeX and METAFONT macro files
656from Donald Knuth, including the plain format, plain base, and the MF logo
657fonts.")
658 (license license:knuth)))
659
a00d5933
RW
660(define-public texlive-fonts-latex
661 (package
662 (name "texlive-fonts-latex")
663 (version (number->string %texlive-revision))
664 (source (origin
665 (method svn-fetch)
666 (uri (svn-reference
667 (url (string-append "svn://www.tug.org/texlive/tags/"
668 %texlive-tag "/Master/texmf-dist/"
669 "/fonts/source/public/latex-fonts"))
670 (revision %texlive-revision)))
a4550e7d 671 (file-name (string-append name "-" version "-checkout"))
a00d5933
RW
672 (sha256
673 (base32
674 "0ypsm4xv9cw0jckk2qc7gi9hcmhf31mrg56pz3llyx3yd9vq2lps"))))
675 (build-system gnu-build-system)
676 (arguments
677 `(#:modules ((guix build gnu-build-system)
678 (guix build utils)
679 (srfi srfi-1)
680 (srfi srfi-26))
681 #:tests? #f ; no tests
682 #:phases
683 (modify-phases %standard-phases
684 (delete 'configure)
685 (replace 'build
686 (lambda* (#:key inputs #:allow-other-keys)
687 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
688 ;; Tell mf where to find mf.base
689 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
690 ;; Tell mf where to look for source files
691 (setenv "MFINPUTS"
692 (string-append (getcwd) ":"
693 mf "/share/texmf-dist/metafont/base:"
694 (assoc-ref inputs "texlive-fonts-cm")
695 "/share/texmf-dist/fonts/source/public/cm")))
696 (mkdir "build")
697 (every (lambda (font)
698 (format #t "building font ~a\n" font)
699 (zero? (system* "mf" "-progname=mf"
700 "-output-directory=build"
701 (string-append "\\"
702 "mode:=ljfour; "
703 "mag:=1; "
704 "batchmode; "
705 "input " font))))
706 '("icmcsc10" "icmex10" "icmmi8" "icmsy8" "icmtt8"
707 "ilasy8" "ilcmss8" "ilcmssb8" "ilcmssi8"
708 "lasy5" "lasy6" "lasy7" "lasy8" "lasy9" "lasy10" "lasyb10"
709 "lcircle10" "lcirclew10" "lcmss8" "lcmssb8" "lcmssi8"
710 "line10" "linew10"))))
711 (replace 'install
712 (lambda* (#:key outputs #:allow-other-keys)
713 (let* ((out (assoc-ref outputs "out"))
714 (tfm (string-append
715 out "/share/texmf-dist/fonts/tfm/public/latex-fonts"))
716 (mf (string-append
717 out "/share/texmf-dist/fonts/source/public/latex-fonts")))
718 (for-each (cut install-file <> tfm)
719 (find-files "build" "\\.*"))
720 (for-each (cut install-file <> mf)
721 (find-files "." "\\.mf"))
722 #t))))))
723 (native-inputs
724 `(("texlive-bin" ,texlive-bin)
725 ("texlive-metafont-base" ,texlive-metafont-base)
726 ("texlive-fonts-cm" ,texlive-fonts-cm)))
b8d8806b 727 (home-page "https://www.ctan.org/pkg/latex-fonts")
a00d5933
RW
728 (synopsis "Collection of fonts used in LaTeX distributions")
729 (description "This is a collection of fonts for use with standard LaTeX
730packages and classes. It includes invisible fonts (for use with the slides
731class), line and circle fonts (for use in the picture environment) and LaTeX
732symbol fonts.")
733 (license license:lppl1.2+)))
734
98b4aca1
RW
735(define-public texlive-fonts-amsfonts
736 (package
737 (name "texlive-fonts-amsfonts")
738 (version (number->string %texlive-revision))
739 (source (origin
740 (method svn-fetch)
741 (uri (svn-reference
742 (url (string-append "svn://www.tug.org/texlive/tags/"
743 %texlive-tag "/Master/texmf-dist/"
744 "/fonts/source/public/amsfonts"))
745 (revision %texlive-revision)))
5fe9233e 746 (file-name (string-append name "-" version "-checkout"))
98b4aca1
RW
747 (sha256
748 (base32
749 "07h20rvpbdb4k72hzmjkyb29426zr9wxsfp6yd4ajbbpd3vx8grb"))))
750 (build-system gnu-build-system)
751 (arguments
752 `(#:modules ((guix build gnu-build-system)
753 (guix build utils)
754 (srfi srfi-1)
755 (srfi srfi-26))
756 #:tests? #f ; no tests
757 #:phases
758 (modify-phases %standard-phases
759 (delete 'configure)
760 (replace 'build
761 (lambda* (#:key inputs #:allow-other-keys)
762 (let ((mf (assoc-ref inputs "texlive-metafont-base"))
763 (cwd (getcwd)))
764 ;; Tell mf where to find mf.base
765 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
766 ;; Tell mf where to look for source files
767 (setenv "MFINPUTS"
768 (string-append cwd ":"
769 cwd "/cmextra:"
770 cwd "/cyrillic:"
771 cwd "/dummy:"
772 cwd "/symbols:"
773 mf "/share/texmf-dist/metafont/base:"
774 (assoc-ref inputs "texlive-fonts-cm")
775 "/share/texmf-dist/fonts/source/public/cm")))
776 (mkdir "build")
2762023a
MW
777 (for-each (lambda (font)
778 (format #t "building font ~a\n" (basename font ".mf"))
779 (with-directory-excursion (dirname font)
780 (invoke "mf" "-progname=mf"
781 "-output-directory=../build"
782 (string-append "\\"
783 "mode:=ljfour; "
784 "mag:=1; "
785 "nonstopmode; "
786 "input "
787 (getcwd) "/"
788 (basename font ".mf")))))
789 (find-files "." "[0-9]+\\.mf$"))
790 #t))
98b4aca1
RW
791 (replace 'install
792 (lambda* (#:key outputs #:allow-other-keys)
793 (let* ((out (assoc-ref outputs "out"))
794 (tfm (string-append
795 out "/share/texmf-dist/fonts/tfm/public/amsfonts"))
796 (mf (string-append
797 out "/share/texmf-dist/fonts/source/public/amsfonts")))
798 (for-each (cut install-file <> tfm)
799 (find-files "build" "\\.*"))
800 (for-each (cut install-file <> mf)
801 (find-files "." "\\.mf"))
802 #t))))))
803 (native-inputs
804 `(("texlive-fonts-cm" ,texlive-fonts-cm)
805 ("texlive-metafont-base" ,texlive-metafont-base)
806 ("texlive-bin" ,texlive-bin)))
b8d8806b 807 (home-page "https://www.ctan.org/pkg/amsfonts")
98b4aca1
RW
808 (synopsis "TeX fonts from the American Mathematical Society")
809 (description
810 "This package provides an extended set of fonts for use in mathematics,
811including: extra mathematical symbols; blackboard bold letters (uppercase
812only); fraktur letters; subscript sizes of bold math italic and bold Greek
813letters; subscript sizes of large symbols such as sum and product; added sizes
814of the Computer Modern small caps font; cyrillic fonts (from the University of
815Washington); Euler mathematical fonts. All fonts are provided as Adobe Type 1
816files, and all except the Euler fonts are provided as Metafont source. The
817distribution also includes the canonical Type 1 versions of the Computer
818Modern family of fonts. The Euler fonts are supported by separate packages;
819details can be found in the documentation.")
820 (license license:silofl1.1)))
821
137f9cbc
RW
822(define-public texlive-latex-amsfonts
823 (package
824 (name "texlive-latex-amsfonts")
825 (version (number->string %texlive-revision))
826 (source (origin
827 (method svn-fetch)
828 (uri (texlive-ref "latex" "amsfonts"))
9700a0d0 829 (file-name (string-append name "-" version "-checkout"))
137f9cbc
RW
830 (sha256
831 (base32
832 "0slzfv5h2m03b2xvm2sasznz4azh6rgi069z161dja3l8rln79hm"))))
833 (build-system texlive-build-system)
834 (arguments '(#:tex-directory "latex/amsfonts"))
835 (native-inputs
836 `(("texlive-fonts-cm" ,texlive-fonts-cm)
837 ("texlive-metafont-base" ,texlive-metafont-base)))
b8d8806b 838 (home-page "https://www.ctan.org/pkg/amsfonts")
137f9cbc
RW
839 (synopsis "TeX fonts from the American Mathematical Society")
840 (description
841 "This package provides basic LaTeX support for the symbol fonts provides
842by the amsfonts package. It provides @code{amsfonts.sty}, with names of
843individual symbols defined in @code{amssymb.sty}.")
844 (license license:silofl1.1)))
845
566e95f7
RW
846;; This provides etex.src which is needed to build various formats, including
847;; luatex.fmt and pdflatex.fmt
848(define-public texlive-tex-plain
849 (package
850 (name "texlive-tex-plain")
851 (version (number->string %texlive-revision))
852 (source (origin
853 (method svn-fetch)
854 (uri (svn-reference
855 (url (string-append "svn://www.tug.org/texlive/tags/"
856 %texlive-tag "/Master/texmf-dist/"
857 "/tex/plain"))
858 (revision %texlive-revision)))
b63aefe5 859 (file-name (string-append name "-" version "-checkout"))
566e95f7
RW
860 (sha256
861 (base32
96c336be 862 "0mjgl3gscn3ps29yjambz1j9fg81ynnncb96vpprwx4xsijhsns0"))))
566e95f7
RW
863 (build-system trivial-build-system)
864 (arguments
865 `(#:modules ((guix build utils))
866 #:builder
867 (begin
868 (use-modules (guix build utils))
869 (let ((target (string-append (assoc-ref %outputs "out")
870 "/share/texmf-dist/tex/plain")))
871 (mkdir-p target)
872 (copy-recursively (assoc-ref %build-inputs "source") target)
873 #t))))
874 (home-page "https://www.ctan.org/pkg/plain")
875 (synopsis "Plain TeX format and supporting files")
876 (description
877 "Contains files used to build the Plain TeX format, as described in the
878TeXbook, together with various supporting files (some also discussed in the
879book).")
880 (license license:knuth)))
881
010f476f
RW
882(define-public texlive-latex-base
883 (let ((texlive-dir
884 (lambda (dir hash)
885 (origin
886 (method svn-fetch)
887 (uri (svn-reference
888 (url (string-append "svn://www.tug.org/texlive/tags/"
889 %texlive-tag "/Master/texmf-dist/"
890 dir))
891 (revision %texlive-revision)))
8d514ae7
EF
892 (file-name (string-append "texlive-generic-"
893 (last (string-split
894 (string-drop-right dir 1) #\/))
895 "-" (number->string %texlive-revision)
896 "-checkout"))
010f476f
RW
897 (sha256 (base32 hash))))))
898 (package
899 (name "texlive-latex-base")
900 (version (number->string %texlive-revision))
901 (source (origin
902 (method svn-fetch)
903 (uri (texlive-ref "latex" "base"))
8d514ae7 904 (file-name (string-append name "-" version "-checkout"))
010f476f
RW
905 (sha256
906 (base32
907 "1h9pir2hz6i9avc4lrl733p3zf4rpkg8537x1zdbhs91hvhikw9k"))))
908 (build-system gnu-build-system)
909 (arguments
910 `(#:modules ((guix build gnu-build-system)
911 (guix build utils)
912 (ice-9 match)
913 (srfi srfi-1)
914 (srfi srfi-26))
915 #:tests? #f ; no tests
916 #:phases
917 (modify-phases %standard-phases
918 (delete 'configure)
919 (replace 'build
920 (lambda* (#:key inputs #:allow-other-keys)
921 ;; Find required fonts
922 (setenv "TFMFONTS"
923 (string-append (assoc-ref inputs "texlive-fonts-cm")
924 "/share/texmf-dist/fonts/tfm/public/cm:"
925 (assoc-ref inputs "texlive-fonts-latex")
926 "/share/texmf-dist/fonts/tfm/public/latex-fonts:"
927 (assoc-ref inputs "texlive-fonts-knuth-lib")
928 "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
929 (setenv "TEXINPUTS"
930 (string-append
931 (getcwd) ":"
932 (getcwd) "/build:"
933 (string-join
934 (append-map (match-lambda
935 ((_ . dir)
936 (find-files dir
937 (lambda (_ stat)
938 (eq? 'directory (stat:type stat)))
939 #:directories? #t
940 #:stat stat)))
941 inputs)
942 ":")))
943
944 ;; Create an empty texsys.cfg, because latex.ltx wants to include
945 ;; it. This file must exist and it's fine if it's empty.
946 (with-output-to-file "texsys.cfg"
947 (lambda _ (format #t "%")))
948
949 (mkdir "build")
950 (mkdir "web2c")
8d32139d
EF
951 (and (invoke "luatex" "-ini" "-interaction=batchmode"
952 "-output-directory=build" "unpack.ins")
953 (invoke "tex" "-ini" "-interaction=batchmode"
954 "-output-directory=web2c" "tex.ini")
bd6e2385
RW
955 ;; LaTeX, pdfetex/pdftex, and XeTeX require e-TeX, which
956 ;; is enabled only in extended mode (activated with a
957 ;; leading asterisk). We should not use luatex here,
958 ;; because that would make the generated format files
959 ;; incompatible with any other TeX engine.
010f476f
RW
960 (every
961 (lambda (format)
8d32139d
EF
962 (invoke "latex" "-ini" "-interaction=batchmode"
963 "-output-directory=web2c"
964 "-translate-file=cp227.tcx"
965 (string-append "*" format ".ini")))
702f23b3 966 '("latex"
bd6e2385
RW
967 "pdflatex"
968 "pdfetex"))
702f23b3
RW
969 (every
970 (lambda (format)
8d32139d
EF
971 (invoke format "-ini" "-interaction=batchmode"
972 "-output-directory=web2c"
973 (string-append "*" format ".ini")))
702f23b3
RW
974 '("xetex"
975 "xelatex"))
010f476f
RW
976 (every
977 (lambda (format)
8d32139d
EF
978 (invoke "luatex" "-ini" "-interaction=batchmode"
979 "-output-directory=web2c"
980 (string-append format ".ini")))
702f23b3 981 '("dviluatex" "dvilualatex" "luatex" "lualatex")))))
010f476f
RW
982 (replace 'install
983 (lambda* (#:key outputs #:allow-other-keys)
984 (let* ((out (assoc-ref outputs "out"))
985 (target (string-append
986 out "/share/texmf-dist/tex/latex/base"))
987 (web2c (string-append
988 out "/share/texmf-dist/web2c")))
989 (mkdir-p target)
990 (mkdir-p web2c)
991 (for-each delete-file (find-files "." "\\.(log|aux)$"))
992 (for-each (cut install-file <> target)
993 (find-files "build" ".*"))
994 (for-each (cut install-file <> web2c)
995 (find-files "web2c" ".*"))
bd6e2385
RW
996 ;; pdftex is really just the same as pdfetex, but since it
997 ;; doesn't have its own format file, we need to copy it.
998 (copy-file "web2c/pdfetex.fmt"
999 (string-append web2c "/pdftex.fmt"))
010f476f
RW
1000 #t))))))
1001 (native-inputs
1002 `(("texlive-bin" ,texlive-bin)
1003 ("texlive-generic-unicode-data" ,texlive-generic-unicode-data)
1004 ("texlive-generic-dehyph-exptl" ,texlive-generic-dehyph-exptl)
1005 ("texlive-generic-tex-ini-files" ,texlive-generic-tex-ini-files)
1006 ("texlive-latex-latexconfig"
1007 ,(texlive-dir "tex/latex/latexconfig/"
1008 "1zb3j49cj8p75yph6c8iysjp7qbdvghwf0mn9j0l7qq3qkbz2xaf"))
1009 ("texlive-generic-hyph-utf8" ,texlive-generic-hyph-utf8)
1010 ("texlive-generic-hyphen"
1011 ,(texlive-dir "tex/generic/hyphen/"
1012 "0xim36wybw2625yd0zwlp9m2c2xrcybw58gl4rih9nkph0wqwwhd"))
1013 ("texlive-generic-ruhyphen"
1014 ,(texlive-dir "tex/generic/ruhyphen/"
1015 "14rjkpl4zkjqs13rcf9kcd24mn2kx7i1jbdwxq8ds94bi66ylzsd"))
1016 ("texlive-generic-ukrhyph"
1017 ,(texlive-dir "tex/generic/ukrhyph/"
1018 "1cfwdg2rhbayl3w0x1xqd36d45zbc96f029myp13s7cb6kbmbppv"))
1019 ("texlive-generic-config"
1020 ,(texlive-dir "tex/generic/config/"
1021 "19vj088p4kkp6xll0141m4kl6ssgdzhs3g10i232khb07aqiag8s"))
1022 ("texlive-tex-plain" ,texlive-tex-plain)
1023 ("texlive-fonts-cm" ,texlive-fonts-cm)
1024 ("texlive-fonts-latex" ,texlive-fonts-latex)
1025 ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)))
b8d8806b 1026 (home-page "https://www.ctan.org/pkg/latex-base")
010f476f
RW
1027 (synopsis "Base sources of LaTeX")
1028 (description
1029 "This bundle comprises the source of LaTeX itself, together with several
1030packages which are considered \"part of the kernel\". This bundle, together
1031with the required packages, constitutes what every LaTeX distribution should
1032contain.")
1033 (license license:lppl1.3c+))))
1034
3e485ed2
RW
1035(define-public texlive-latex-filecontents
1036 (package
1037 (name "texlive-latex-filecontents")
1038 (version (number->string %texlive-revision))
1039 (source (origin
1040 (method svn-fetch)
1041 (uri (texlive-ref "latex" "filecontents"))
7e353a77 1042 (file-name (string-append name "-" version "-checkout"))
3e485ed2
RW
1043 (sha256
1044 (base32
1045 "0swkbxv8vg0yizadfnvrwjb4cj0pn34v9wm6v7wqq903fdav7k7q"))))
1046 (build-system texlive-build-system)
1047 (arguments '(#:tex-directory "latex/filecontents"))
b8d8806b 1048 (home-page "https://www.ctan.org/pkg/filecontents")
3e485ed2
RW
1049 (synopsis "Extended filecontents and filecontents* environments")
1050 (description
1051 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments
1052enable a LaTeX source file to generate external files as it runs through
1053LaTeX. However, there are two limitations of these environments: they refuse
1054to overwrite existing files, and they can only be used in the preamble of a
1055document. The filecontents package removes these limitations, letting you
1056overwrite existing files and letting you use @code{filecontents} /
1057@code{filecontents*} anywhere.")
1058 (license license:lppl1.3c+)))
1059
1193aa89
RW
1060(define-public texlive-generic-ifxetex
1061 (package
1062 (name "texlive-generic-ifxetex")
fea8eef3 1063 (version (number->string %texlive-revision))
1193aa89
RW
1064 (source (origin
1065 (method svn-fetch)
1066 (uri (texlive-ref "generic" "ifxetex"))
24dbc602 1067 (file-name (string-append name "-" version "-checkout"))
1193aa89
RW
1068 (sha256
1069 (base32
1070 "0w2xj7n0szavj329kds09q626szkc378p3w0sk022q0ln4ksz86d"))))
1071 (build-system texlive-build-system)
1072 (arguments
1073 '(#:tex-directory "generic/ifxetex"
1074 #:tex-format "xelatex"))
1075 (inputs
1076 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
b8d8806b 1077 (home-page "https://www.ctan.org/pkg/ifxetex")
1193aa89
RW
1078 (synopsis "Am I running under XeTeX?")
1079 (description
1080 "This is a simple package which provides an @code{\\ifxetex} conditional,
1081so that other code can determine that it is running under XeTeX. The package
beb476ed 1082requires the e-TeX extensions to the TeX primitive set.")
1193aa89
RW
1083 (license license:lppl1.3c+)))
1084
9186c156
RW
1085(define-public texlive-generic-epsf
1086 (package
1087 (name "texlive-generic-epsf")
1088 (version (number->string %texlive-revision))
1089 (source (origin
1090 (method svn-fetch)
1091 (uri (svn-reference
1092 (url (string-append "svn://www.tug.org/texlive/tags/"
1093 %texlive-tag "/Master/texmf-dist/"
1094 "/tex/generic/epsf"))
1095 (revision %texlive-revision)))
ca61c6b3 1096 (file-name (string-append name "-" version "-checkout"))
9186c156
RW
1097 (sha256
1098 (base32
1099 "14w3j81ympyvg8hkk9i1xgr8a0gfnfsb2ki8qqsk5pa051za1xcy"))))
1100 (build-system trivial-build-system)
1101 (arguments
1102 `(#:modules ((guix build utils))
1103 #:builder
1104 (begin
1105 (use-modules (guix build utils))
1106 (let ((target (string-append (assoc-ref %outputs "out")
1107 "/share/texmf-dist/tex/generic/epfs")))
1108 (mkdir-p target)
1109 (copy-recursively (assoc-ref %build-inputs "source") target)
1110 #t))))
b8d8806b 1111 (home-page "https://www.ctan.org/pkg/epsf")
9186c156
RW
1112 (synopsis "Simple macros for EPS inclusion")
1113 (description
1114 "This package provides the original (and now obsolescent) graphics
1115inclusion macros for use with dvips, still widely used by Plain TeX users (in
1116particular). For LaTeX users, the package is nowadays (rather strongly)
1117deprecated in favour of the more sophisticated standard LaTeX latex-graphics
1118bundle of packages. (The latex-graphics bundle is also available to Plain TeX
1119users, via its Plain TeX version.)")
1120 (license license:public-domain)))
1121
437822a1
RW
1122(define-public texlive-latex-fancyvrb
1123 (package
1124 (name "texlive-latex-fancyvrb")
1125 (version (number->string %texlive-revision))
1126 (source (origin
1127 (method svn-fetch)
1128 (uri (texlive-ref "latex" "fancyvrb"))
88e11022 1129 (file-name (string-append name "-" version "-checkout"))
437822a1
RW
1130 (sha256
1131 (base32
1132 "03l7140y031rr14h02i4z9zqsfvrbn7wzwxbjsrjcgrk6sdr71wv"))))
1133 (build-system texlive-build-system)
1134 (arguments
1135 '(#:tex-directory "latex/fancyvrb"
1136 ;; We exclude "fvrb-ex" to avoid a dependency on texlive-luaotfload and
1137 ;; thus texlive-luatex-lualibs.
1138 #:build-targets '("fancyvrb.ins")))
b8d8806b 1139 (home-page "https://www.ctan.org/pkg/fancyvrb")
437822a1
RW
1140 (synopsis "Sophisticated verbatim text")
1141 (description
1142 "This package provides tools for the flexible handling of verbatim text
1143including: verbatim commands in footnotes; a variety of verbatim environments
1144with many parameters; ability to define new customized verbatim environments;
1145save and restore verbatim text and environments; write and read files in
1146verbatim mode; build \"example\" environments (showing both result and
1147verbatim source).")
1148 (license license:lppl1.0+)))
1149
4eebd2cd
RW
1150(define-public texlive-latex-graphics
1151 (package
1152 (name "texlive-latex-graphics")
1153 (version (number->string %texlive-revision))
1154 (source (origin
1155 (method svn-fetch)
1156 (uri (texlive-ref "latex" "graphics"))
f7302073 1157 (file-name (string-append name "-" version "-checkout"))
4eebd2cd
RW
1158 (sha256
1159 (base32
e3c970fc 1160 "07azyn0b1s49vbdlr6dmygrminxp72ndl24j1091hiiccvrjq3xc"))))
4eebd2cd
RW
1161 (build-system texlive-build-system)
1162 (arguments
1163 '(#:tex-directory "latex/graphics"
1164 #:phases
1165 (modify-phases %standard-phases
1166 (add-after 'install 'install-config
1167 (lambda* (#:key inputs outputs #:allow-other-keys)
1168 (let ((cfg (assoc-ref inputs "graphics-cfg"))
1169 (target (string-append (assoc-ref outputs "out")
1170 "/share/texmf-dist/tex/latex/graphics-cfg")))
1171 (mkdir-p target)
1172 (install-file (string-append cfg "/graphics.cfg") target)
1173 (install-file (string-append cfg "/color.cfg") target)
1174 #t)))
1175 (add-after 'install 'install-defs
1176 (lambda* (#:key inputs outputs #:allow-other-keys)
1177 (let ((def (assoc-ref inputs "graphics-def"))
1178 (target (string-append (assoc-ref outputs "out")
1179 "/share/texmf-dist/tex/latex/graphics-def")))
1180 (mkdir-p target)
1181 (copy-recursively def target)
1182 #t))))))
1183 (native-inputs
1184 `(("graphics-cfg"
1185 ,(origin
1186 (method git-fetch)
1187 (uri (git-reference
1188 (url "https://github.com/latex3/graphics-cfg.git")
1189 (commit "19d1238af17df376cd46333b229579b0f7f3a41f")))
f7302073
EF
1190 (file-name (string-append "graphics-cfg-"
1191 (number->string %texlive-revision)
1192 "-checkout"))
4eebd2cd
RW
1193 (sha256
1194 (base32
1195 "12kbgbm52gmmgn8zajb74s8n5rvnxcfdvs3iyj8vcw5vrsw5i6mh"))))
1196 ("graphics-def"
1197 ,(origin
1198 (method svn-fetch)
1199 (uri (svn-reference
1200 (url (string-append "svn://www.tug.org/texlive/tags/"
1201 %texlive-tag "/Master/texmf-dist/"
1202 "/tex/latex/graphics-def"))
1203 (revision %texlive-revision)))
f7302073
EF
1204 (file-name (string-append "graphics-def-"
1205 (number->string %texlive-revision)
1206 "-checkout"))
4eebd2cd
RW
1207 (sha256
1208 (base32
51c15375 1209 "0gi4qv6378nl84s8n1yx3hjqvv7r4lza7hpbymbl5rzwgw8qrnyb"))))))
b8d8806b 1210 (home-page "https://www.ctan.org/pkg/latex-graphics")
4eebd2cd
RW
1211 (synopsis "LaTeX standard graphics bundle")
1212 (description
1213 "This is a collection of LaTeX packages for producing color, including
1214graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX
1215documents. It comprises the packages color, graphics, graphicx, trig, epsfig,
1216keyval, and lscape.")
1217 ;; The configuration files are released under CC0.
1218 (license (list license:lppl1.3c+
1219 license:cc0))))
1220
f5a6af42
RW
1221(define-public texlive-latex-xcolor
1222 (package
1223 (name "texlive-latex-xcolor")
1224 (version (number->string %texlive-revision))
1225 (source (origin
1226 (method svn-fetch)
1227 (uri (texlive-ref "latex" "xcolor"))
19389bcd 1228 (file-name (string-append name "-" version "-checkout"))
f5a6af42
RW
1229 (sha256
1230 (base32
1231 "01n613s7bcrd2n4jfawm0k4nn2ny3aaifp2jjfif3lz4sbv31494"))))
1232 (build-system texlive-build-system)
1233 (arguments '(#:tex-directory "latex/xcolor"))
b8d8806b 1234 (home-page "https://www.ctan.org/pkg/xcolor")
f5a6af42
RW
1235 (synopsis "Driver-independent color extensions for LaTeX and pdfLaTeX")
1236 (description
1237 "The package starts from the basic facilities of the colorcolor package,
1238and provides easy driver-independent access to several kinds of color tints,
1239shades, tones, and mixes of arbitrary colors. It allows a user to select a
1240document-wide target color model and offers complete tools for conversion
1241between eight color models. Additionally, there is a command for alternating
1242row colors plus repeated non-aligned material (like horizontal lines) in
1243tables.")
1244 (license license:lppl1.2+)))
1245
4d660fdf
RW
1246(define-public texlive-latex-hyperref
1247 (package
1248 (name "texlive-latex-hyperref")
1249 (version "6.84a2")
1250 ;; The sources in the TeX Live SVN repository do not contain hluatex.dtx,
1251 ;; so we fetch the release from GitHub.
1252 (source (origin
1253 (method url-fetch)
1254 (uri (string-append "https://github.com/ho-tex/hyperref/"
1255 "archive/release-" version ".tar.gz"))
1256 (file-name (string-append name "-" version ".tar.gz"))
1257 (sha256
1258 (base32
1259 "1d3rmjgzh0025a1dza55zb6nzzlgd1y9snwx45wq1c1vf42m79h2"))))
1260 (build-system texlive-build-system)
1261 (arguments '(#:tex-directory "latex/hyperref"))
b8d8806b 1262 (home-page "https://www.ctan.org/pkg/hyperref")
4d660fdf
RW
1263 (synopsis "Extensive support for hypertext in LaTeX")
1264 (description
c5a8ecb6
RW
1265 "The @code{hyperref} package is used to handle cross-referencing commands
1266in LaTeX to produce hypertext links in the document. The package provides
1267backends for the @code{\\special} set defined for HyperTeX DVI processors; for
1268embedded @code{pdfmark} commands for processing by Acrobat
1269Distiller (@code{dvips} and Y&Y's @code{dvipsone}); for Y&Y's @code{dviwindo};
1270for PDF control within pdfTeX and @code{dvipdfm}; for TeX4ht; and for VTeX's
1271pdf and HTML backends. The package is distributed with the @code{backref} and
1272@code{nameref} packages, which make use of the facilities of @code{hyperref}.")
4d660fdf
RW
1273 (license license:lppl1.3+)))
1274
c3455b7d
RW
1275(define-public texlive-latex-oberdiek
1276 (package
1277 (name "texlive-latex-oberdiek")
1278 (version (number->string %texlive-revision))
1279 (source (origin
1280 (method svn-fetch)
1281 (uri (texlive-ref "latex" "oberdiek"))
7dea3119 1282 (file-name (string-append name "-" version "-checkout"))
c3455b7d
RW
1283 (sha256
1284 (base32
1285 "0aswvsxgsn709xmvpcg50d2xl7vcy1ckdxb9c1cligqqfjjvviqf"))))
1286 (build-system texlive-build-system)
1287 (arguments
1288 '(#:tex-directory "latex/oberdiek"
05d28068 1289 #:build-targets '("oberdiek.ins")
c3455b7d
RW
1290 #:phases
1291 (modify-phases %standard-phases
05d28068 1292 ;; "ifpdf.ins" is not generated, so we need to process the dtx file.
c3455b7d
RW
1293 (add-after 'unpack 'do-not-process-ifpdf.ins
1294 (lambda _
1295 (substitute* "oberdiek.ins"
05d28068 1296 (("ifpdf.ins") "ifpdf.dtx"))
c3455b7d 1297 #t)))))
b8d8806b 1298 (home-page "https://www.ctan.org/pkg/oberdiek")
c3455b7d
RW
1299 (synopsis "Bundle of packages submitted by Heiko Oberdiek")
1300 (description
1301 "The bundle comprises various LaTeX packages, providing among others:
1302better accessibility support for PDF files; extensible chemists reaction
1303arrows; record information about document class(es) used; and many more.")
1304 (license license:lppl1.3+)))
1305
f2536af2
RW
1306(define-public texlive-latex-tools
1307 (package
1308 (name "texlive-latex-tools")
1309 (version (number->string %texlive-revision))
1310 (source (origin
1311 (method svn-fetch)
1312 (uri (texlive-ref "latex" "tools"))
f8340ab1 1313 (file-name (string-append name "-" version "-checkout"))
f2536af2
RW
1314 (sha256
1315 (base32
1316 "052a0pch2k5zls5jlay9xxcf93rw3i60a2x28y3ip3rhbsv3xgiz"))))
1317 (build-system texlive-build-system)
1318 (arguments
1319 '(#:tex-directory "latex/tools"
1320 #:build-targets '("tools.ins")))
b8d8806b 1321 (home-page "https://www.ctan.org/pkg/latex-tools")
f2536af2
RW
1322 (synopsis "LaTeX standard tools bundle")
1323 (description
1324 "This package is a collection of (variously) simple tools provided as
1325part of the LaTeX required tools distribution, comprising the following
1326packages: afterpage, array, bm, calc, dcolumn, delarray, enumerate, fileerr,
1327fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol,
1328rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim,
1329xr, and xspace.")
1330 (license license:lppl1.3+)))
1331
35adcc3a
RW
1332(define-public texlive-latex-url
1333 (package
1334 (name "texlive-latex-url")
1335 (version (number->string %texlive-revision))
1336 (source (origin
1337 (method svn-fetch)
1338 (uri (svn-reference
1339 (url (string-append "svn://www.tug.org/texlive/tags/"
1340 %texlive-tag "/Master/texmf-dist/"
1341 "/tex/latex/url"))
1342 (revision %texlive-revision)))
a26207f8 1343 (file-name (string-append name "-" version "-checkout"))
35adcc3a
RW
1344 (sha256
1345 (base32
1346 "184s2543cwia5l7iibhlkl1ffbncfhjpv5p56zq0c15by5sghlac"))))
1347 (build-system trivial-build-system)
1348 (arguments
1349 `(#:modules ((guix build utils))
1350 #:builder
1351 (begin
1352 (use-modules (guix build utils))
1353 (let ((target (string-append (assoc-ref %outputs "out")
1354 "/share/texmf-dist/tex/latex/url")))
1355 (mkdir-p target)
1356 (copy-recursively (assoc-ref %build-inputs "source") target)
1357 #t))))
1358 (home-page "https://www.ctan.org/pkg/url")
1359 (synopsis "Verbatim with URL-sensitive line breaks")
1360 (description "The command @code{\\url} is a form of verbatim command that
1361allows linebreaks at certain characters or combinations of characters, accepts
1362reconfiguration, and can usually be used in the argument to another command.
1363The command is intended for email addresses, hypertext links,
1364directories/paths, etc., which normally have no spaces, so by default the
1365package ignores spaces in its argument. However, a package option allows
1366spaces, which is useful for operating systems where spaces are a common part
1367of file names.")
1368 ;; The license header states that it is under LPPL version 2 or later, but
1369 ;; the latest version is 1.3c.
1370 (license license:lppl1.3c+)))
1371
a5b1ef84
RW
1372(define-public texlive-latex-l3kernel
1373 (package
1374 (name "texlive-latex-l3kernel")
1375 (version (number->string %texlive-revision))
1376 (source (origin
1377 (method svn-fetch)
1378 (uri (texlive-ref "latex" "l3kernel"))
f4a39a5b 1379 (file-name (string-append name "-" version "-checkout"))
a5b1ef84
RW
1380 (sha256
1381 (base32
1f7d1010 1382 "0r0wfk594j8wkdqhh21haimwsfq8x5jch4ldm21hkzk5dnmvpbg6"))))
a5b1ef84
RW
1383 (build-system texlive-build-system)
1384 (arguments
1385 '(#:tex-directory "latex/l3kernel"))
b8d8806b 1386 (home-page "https://www.ctan.org/pkg/l3kernel")
a5b1ef84
RW
1387 (synopsis "LaTeX3 programmers’ interface")
1388 (description
1389 "The l3kernel bundle provides an implementation of the LaTeX3
1390programmers’ interface, as a set of packages that run under LaTeX 2e. The
1391interface provides the foundation on which the LaTeX3 kernel and other future
1392code are built: it is an API for TeX programmers. The packages are set up so
1393that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
1394 (license license:lppl1.3c+)))
1395
cc09d48b
RW
1396(define-public texlive-latex-l3packages
1397 (package
1398 (name "texlive-latex-l3packages")
1399 (version (number->string %texlive-revision))
1400 (source (origin
1401 (method svn-fetch)
1402 (uri (texlive-ref "latex" "l3packages"))
b749aa98 1403 (file-name (string-append name "-" version "-checkout"))
cc09d48b
RW
1404 (sha256
1405 (base32
83474718 1406 "16jplkvzdysfssijq9l051nsks65c2nrarsl17k8gjhc28yznj8y"))))
cc09d48b
RW
1407 (build-system texlive-build-system)
1408 (arguments
1409 '(#:tex-directory "latex/l3packages"
1410 #:phases
1411 (modify-phases %standard-phases
1412 ;; All package sources are in sub-directories, so we need to add them
1413 ;; to TEXINPUTS.
1414 (add-after 'unpack 'set-TEXINPUTS
1415 (lambda _
1416 (let ((cwd (getcwd)))
1417 (setenv "TEXINPUTS"
1418 (string-append cwd "/l3keys2e:"
1419 cwd "/xparse:"
1420 cwd "/xfrac:"
1421 cwd "/xfp:"
1422 cwd "/xtemplate")))
1423 #t)))))
1424 (inputs
1425 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
b8d8806b 1426 (home-page "https://www.ctan.org/pkg/l3packages")
cc09d48b
RW
1427 (synopsis "High-level LaTeX3 concepts")
1428 (description
1429 "This bundle holds prototype implementations of concepts for a LaTeX
1430designer interface, to be used with the experimental LaTeX kernel as
1431programming tools and kernel sup­port. Packages provided in this release are:
1432
1433@enumerate
1434@item l3keys2e, which makes the facilities of the kernel module l3keys
1435 available for use by LaTeX 2e packages;
1436@item xfrac, which provides flexible splitlevel fractions;
1437@item xparse, which provides a high-level interface for declaring document
1438 commands; and
1439@item xtemplate, which provides a means of defining generic functions using a
1440 key-value syntax.
1441@end enumerate\n")
1442 (license license:lppl1.3c+)))
1443
58308491
RW
1444(define-public texlive-latex-fontspec
1445 (package
1446 (name "texlive-latex-fontspec")
1447 (version (number->string %texlive-revision))
1448 (source (origin
1449 (method svn-fetch)
1450 (uri (texlive-ref "latex" "fontspec"))
634a4a7f 1451 (file-name (string-append name "-" version "-checkout"))
58308491
RW
1452 (sha256
1453 (base32
1454 "1rx43y5xmjqvc27pjdnmqwp4pcw3czcfd6nfpmzc1gnqfl1hlc0q"))))
1455 (build-system texlive-build-system)
1456 (arguments
1457 '(#:tex-directory "latex/fontspec"
1458 #:build-targets '("fontspec.dtx")))
1459 (inputs
1460 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
b8d8806b 1461 (home-page "https://www.ctan.org/pkg/fontspec")
58308491
RW
1462 (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX")
1463 (description
1464 "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an
1465automatic and unified interface to feature-rich AAT and OpenType fonts through
1466the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires
1467the l3kernel and xparse bundles from the LaTeX 3 development team.")
1468 (license license:lppl1.3+)))
1469
e93f472d
RW
1470;; The SVN directory contains little more than a dtx file that generates three
1471;; of the many lua files that should be installed as part of this package.
1472;; This is why we take the release from GitHub instead.
1473(define-public texlive-luatex-lualibs
1474 (package
1475 (name "texlive-luatex-lualibs")
1476 (version "2.5")
1477 (source (origin
1478 (method url-fetch)
1479 (uri (string-append "https://github.com/lualatex/lualibs/"
1480 "releases/download/v"
1481 version "/lualibs.zip"))
01d79c30 1482 (file-name (string-append name "-" version ".zip"))
e93f472d
RW
1483 (sha256
1484 (base32
1485 "1xx9blvrmx9hyhrl345lpai9m6xxnw997261a1ahn1bm5r2j5fqy"))))
1486 (build-system gnu-build-system)
1487 (arguments
1488 `(#:make-flags
1489 (list (string-append "DESTDIR="
1490 (assoc-ref %outputs "out")
1491 "/share/texmf-dist"))
1492 #:phases
1493 (modify-phases %standard-phases
1494 (delete 'configure))))
1495 (native-inputs
1496 `(("texlive-bin" ,texlive-bin)
1497 ("unzip" ,unzip)
1498 ("zip" ,zip)))
1499 (home-page "https://github.com/lualatex/lualibs")
1500 (synopsis "Lua modules for general programming (in the (La)TeX world)")
1501 (description
1502 "Lualibs is a collection of Lua modules useful for general programming.
1503The bundle is based on Lua modules shipped with ConTeXt, and made available in
1504this bundle for use independent of ConTeXt.")
1505 ;; GPL version 2 only
1506 (license license:gpl2)))
1507
2573163a
RW
1508(define-public texlive-latex-amsmath
1509 (package
1510 (name "texlive-latex-amsmath")
1511 (version (number->string %texlive-revision))
1512 (source (origin
1513 (method svn-fetch)
1514 (uri (texlive-ref "latex" "amsmath"))
320c771a 1515 (file-name (string-append name "-" version "-checkout"))
2573163a
RW
1516 (sha256
1517 (base32
1518 "178ywjpdlv78qmfzqdyn6gy14620zjsn2q9wap76fbr9s4hw6dba"))))
1519 (build-system texlive-build-system)
1520 (arguments '(#:tex-directory "latex/amsmath"))
b8d8806b 1521 (home-page "https://www.ctan.org/pkg/amsmath")
2573163a
RW
1522 (synopsis "AMS mathematical facilities for LaTeX")
1523 (description
1524 "This is the principal package in the AMS-LaTeX distribution. It adapts
1525for use in LaTeX most of the mathematical features found in AMS-TeX; it is
1526highly recommended as an adjunct to serious mathematical typesetting in LaTeX.
1527When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold
1528symbols), @code{amsopnamsopn} (for operator names) and
1529@code{amstextamstext} (for text embedded in mathematics) are also loaded.
1530This package is part of the LaTeX required distribution; however, several
1531contributed packages add still further to its appeal; examples are
1532@code{empheqempheq}, which provides functions for decorating and highlighting
1533mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
1534definitions.")
1535 (license license:lppl1.3c+)))
1536
18e366e8
RW
1537(define-public texlive-latex-amscls
1538 (package
1539 (name "texlive-latex-amscls")
1540 (version (number->string %texlive-revision))
1541 (source (origin
1542 (method svn-fetch)
1543 (uri (texlive-ref "latex" "amscls"))
43059ed0 1544 (file-name (string-append name "-" version "-checkout"))
18e366e8
RW
1545 (sha256
1546 (base32
1547 "0jmcr37mcdi7drczppvr6lmz5d5yd9m67ii79gp2nglg1xpw934j"))))
1548 (build-system texlive-build-system)
1549 (arguments
1550 `(#:tex-directory "latex/amscls"))
b8d8806b 1551 (home-page "https://www.ctan.org/pkg/amscls")
18e366e8
RW
1552 (synopsis "AMS document classes for LaTeX")
1553 (description
1554 "This bundle contains three AMS classes: @code{amsartamsart} (for writing
1555articles for the AMS), @code{amsbookamsbook} (for books) and
1556@code{amsprocamsproc} (for proceedings), together with some supporting
1557material. The material is made available as part of the AMS-LaTeX
1558distribution.")
1559 (license license:lppl1.3c+)))
1560
f84d5a09
RW
1561(define-public texlive-latex-babel
1562 (package
1563 (name "texlive-latex-babel")
1564 (version (number->string %texlive-revision))
1565 (source (origin
1566 (method svn-fetch)
1567 (uri (texlive-ref "latex" "babel"))
8732493e 1568 (file-name (string-append name "-" version "-checkout"))
f84d5a09
RW
1569 (sha256
1570 (base32
1571 "1n3i5adsyy7jw0imnzrm2i8wkf73i3mjk9h3ic8cb9cd19i4r9r3"))))
1572 (build-system texlive-build-system)
1573 (arguments
dcc8af4a 1574 '(#:tex-directory "generic/babel"
f84d5a09
RW
1575 #:phases
1576 (modify-phases %standard-phases
1577 ;; This package tries to produce babel.aux twice but refuses to
1578 ;; overwrite the first one.
1579 (add-before 'build 'fix-ins
1580 (lambda _
1581 (substitute* "babel.ins"
1582 (("askonceonly") "askforoverwritefalse"))
1583 #t)))))
b8d8806b 1584 (home-page "https://www.ctan.org/pkg/babel")
f84d5a09
RW
1585 (synopsis "Multilingual support for Plain TeX or LaTeX")
1586 (description
1587 "The package manages culturally-determined typographical (and other)
1588rules, and hyphenation patterns for a wide range of languages. A document may
1589select a single language to be supported, or it may select several, in which
1590case the document may switch from one language to another in a variety of
1591ways. Babel uses contributed configuration files that provide the detail of
1592what has to be done for each language. Users of XeTeX are advised to use the
1593polyglossia package rather than Babel.")
1594 (license license:lppl1.3+)))
1595
876a1980
RW
1596(define-public texlive-generic-babel-english
1597 (package
1598 (name "texlive-generic-babel-english")
1599 (version (number->string %texlive-revision))
1600 (source (origin
1601 (method svn-fetch)
1602 (uri (texlive-ref "generic" "babel-english"))
1603 (file-name (string-append name "-" version "-checkout"))
1604 (sha256
1605 (base32
1606 "1s404wbx91z5w65hm024kyl4h56zsa096irx18vsx8jvlmwsr5wc"))))
1607 (build-system texlive-build-system)
1608 (arguments '(#:tex-directory "generic/babel-english"))
b8d8806b 1609 (home-page "https://www.ctan.org/pkg/babel-english")
876a1980
RW
1610 (synopsis "Babel support for English")
1611 (description
1612 "This package provides the language definition file for support of
1613English in @code{babel}. Care is taken to select British hyphenation patterns
1614for British English and Australian text, and default (\"american\") patterns
1615for Canadian and USA text.")
1616 (license license:lppl1.3+)))
1617
93286d38
RW
1618(define-public texlive-latex-cyrillic
1619 (package
1620 (name "texlive-latex-cyrillic")
1621 (version (number->string %texlive-revision))
1622 (source (origin
1623 (method svn-fetch)
1624 (uri (texlive-ref "latex" "cyrillic"))
51bffe79 1625 (file-name (string-append name "-" version "-checkout"))
93286d38
RW
1626 (sha256
1627 (base32
1628 "1mdhl35hwas68ki56qqngzar37dwv4mm64l2canihr255bz34lbv"))))
1629 (build-system texlive-build-system)
1630 (arguments
1631 '(#:tex-directory "latex/cyrillic"))
b8d8806b 1632 (home-page "https://www.ctan.org/pkg/latex-cyrillic")
93286d38
RW
1633 (synopsis "Support for Cyrillic fonts in LaTeX")
1634 (description
1635 "This bundle of macros files provides macro support (including font
1636encoding macros) for the use of Cyrillic characters in fonts encoded under the
1637T2* and X2 encodings. These encodings cover (between them) pretty much every
1638language that is written in a Cyrillic alphabet.")
1639 (license license:lppl1.3c+)))
1640
83fe6231
RW
1641(define-public texlive-latex-psnfss
1642 (package
1643 (name "texlive-latex-psnfss")
1644 (version (number->string %texlive-revision))
1645 (source (origin
1646 (method svn-fetch)
1647 (uri (texlive-ref "latex" "psnfss"))
b5b10f3b 1648 (file-name (string-append name "-" version "-checkout"))
83fe6231
RW
1649 (sha256
1650 (base32
1651 "1920dcq8613yzprasbg80fh4fcjcidvvl54wkx438nimyxcri7qz"))))
1652 (build-system texlive-build-system)
1653 (arguments '(#:tex-directory "latex/psnfss"))
b8d8806b 1654 (home-page "https://www.ctan.org/pkg/psnfss")
83fe6231
RW
1655 (synopsis "Font support for common PostScript fonts")
1656 (description
1657 "The PSNFSS collection includes a set of files that provide a complete
1658working setup of the LaTeX font selection scheme (NFSS2) for use with common
1659PostScript fonts. It covers the so-called \"Base\" fonts (which are built
1660into any Level 2 PostScript printing device and the Ghostscript interpreter)
1661and a number of free fonts. It provides font definition files, macros and
1662font metrics. The bundle as a whole is part of the LaTeX required set of
1663packages.")
1664 (license license:lppl1.2+)))
1665
cb7bc20a
RW
1666(define-public texlive-union
1667 (lambda* (#:optional (packages '()))
1668 "Return 'texlive-union' package which is a union of PACKAGES and the
1669standard LaTeX packages."
1670 (let ((default-packages
1671 (list texlive-bin
1672 texlive-dvips
263d0c82 1673 texlive-fontname
cb7bc20a
RW
1674 texlive-fonts-cm
1675 texlive-fonts-latex
1676 texlive-metafont-base
1677 texlive-latex-base
1678 ;; LaTeX packages from the "required" set.
1679 texlive-latex-amsmath
1680 texlive-latex-amscls
1681 texlive-latex-babel
d9d44e84 1682 texlive-generic-babel-english
cb7bc20a
RW
1683 texlive-latex-cyrillic
1684 texlive-latex-graphics
1685 texlive-latex-psnfss
1686 texlive-latex-tools)))
1687 (package
1688 (name "texlive-union")
1689 (version (number->string %texlive-revision))
1690 (source #f)
1691 (build-system trivial-build-system)
1692 (arguments
1693 '(#:modules ((guix build union)
1694 (guix build utils)
1695 (guix build texlive-build-system)
1696 (guix build gnu-build-system)
1697 (guix build gremlin)
1698 (guix elf))
1699 #:builder
1700 (begin
1701 (use-modules (ice-9 match)
1702 (srfi srfi-26)
1703 (guix build union)
1704 (guix build utils)
1705 (guix build texlive-build-system))
1706 (let* ((out (assoc-ref %outputs "out"))
1707 (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf")))
1708 ;; Build a modifiable union of all inputs (but exclude bash)
1709 (match (filter (match-lambda
1710 ((name . _)
1711 (not (string=? "bash" name))))
1712 %build-inputs)
1713 (((names . directories) ...)
1714 (union-build (assoc-ref %outputs "out")
1715 directories
c58d1b5f
RW
1716 #:create-all-directories? #t
1717 #:log-port (%make-void-port "w"))))
cb7bc20a
RW
1718
1719 ;; The configuration file "texmf.cnf" is provided by the
1720 ;; "texlive-bin" package. We take it and override only the
1721 ;; setting for TEXMFROOT and TEXMF. This file won't be consulted
1722 ;; by default, though, so we still need to set TEXMFCNF.
1723 (substitute* texmf.cnf
1724 (("^TEXMFROOT = .*")
1725 (string-append "TEXMFROOT = " out "/share\n"))
1726 (("^TEXMF = .*")
1727 "TEXMF = $TEXMFROOT/share/texmf-dist\n"))
1728 (setenv "PATH" (string-append (assoc-ref %build-inputs "bash")
1729 "/bin"))
1730 (for-each
1731 (cut wrap-program <>
1732 `("TEXMFCNF" ":" = (,(dirname texmf.cnf)))
1733 `("TEXMF" ":" = (,(string-append out "/share/texmf-dist"))))
1734 (find-files (string-append out "/bin") ".*"))
1735 #t))))
1736 (inputs
1737 `(("bash" ,bash)
1738 ,@(map (lambda (package)
1739 (list (package-name package) package))
1740 (append default-packages packages))))
1741 (home-page (package-home-page texlive-bin))
1742 (synopsis "Union of TeX Live packages")
1743 (description "This package provides a subset of the TeX Live
1744distribution.")
1745 (license (fold (lambda (package result)
1746 (match (package-license package)
1747 ((lst ...)
1748 (append lst result))
1749 ((? license:license? license)
1750 (cons license result))))
1751 '()
1752 (append default-packages packages)))))))
1753
9d4f8dc2
RW
1754(define-public texlive-tiny
1755 (package
1756 (inherit (texlive-union))
1757 (name "texlive-tiny")
1758 (description "This is a very limited subset of the TeX Live distribution.
1759It includes little more than the required set of LaTeX packages.")))
1760
60b5e228
RW
1761(define-public texlive-latex-amsrefs
1762 (package
1763 (name "texlive-latex-amsrefs")
1764 (version (number->string %texlive-revision))
1765 (source (origin
1766 (method svn-fetch)
1767 (uri (texlive-ref "latex" "amsrefs"))
1768 (file-name (string-append name "-" version "-checkout"))
1769 (sha256
1770 (base32
1771 "15i4k479dwrpr0kspmm70g1yn4p3dkh0whyzmr93hph9bggnh1i1"))))
1772 (build-system texlive-build-system)
1773 (arguments '(#:tex-directory "latex/amsrefs"))
b8d8806b 1774 (home-page "https://www.ctan.org/pkg/amsrefs")
60b5e228
RW
1775 (synopsis "LaTeX-based replacement for BibTeX")
1776 (description
1777 "Amsrefs is a LaTeX package for bibliographies that provides an archival
1778data format similar to the format of BibTeX database files, but adapted to
1779make direct processing by LaTeX easier. The package can be used either in
1780conjunction with BibTeX or as a replacement for BibTeX.")
1781 (license license:lppl1.3+)))
1782
3236599f
RW
1783(define-public texlive-latex-bigfoot
1784 (package
1785 (name "texlive-latex-bigfoot")
1786 (version (number->string %texlive-revision))
1787 (source (origin
1788 (method svn-fetch)
1789 (uri (texlive-ref "latex" "bigfoot"))
1790 (file-name (string-append name "-" version "-checkout"))
1791 (sha256
1792 (base32
1793 "092g8alnsdwlgl1isdnqrr32l161994295kadr1n05d81xgj5wnv"))))
1794 (build-system texlive-build-system)
1795 (arguments
1796 '(#:tex-directory "latex/bigfoot"
1797 #:phases
1798 (modify-phases %standard-phases
1799 (add-after 'unpack 'remove-generated-file
1800 (lambda _
1801 (for-each delete-file (find-files "." "\\.drv$"))
1802 #t)))))
b8d8806b 1803 (home-page "https://www.ctan.org/pkg/bigfoot")
3236599f
RW
1804 (synopsis "Footnotes for critical editions")
1805 (description
1806 "This package aims to provide a one-stop solution to requirements for
1807footnotes. It offers: Multiple footnote apparatus superior to that of
1808@code{manyfoot}. Footnotes can be formatted in separate paragraphs, or be run
1809into a single paragraph (this choice may be selected per footnote series);
1810Things you might have expected (such as @code{\\verb}-like material in
1811footnotes, and color selections over page breaks) now work. Note that the
1812majority of the bigfoot package's interface is identical to that of
1813@code{manyfoot}; users should seek information from that package's
1814documentation. The bigfoot bundle also provides the @code{perpage} and
1815@code{suffix} packages.")
1816 (license license:gpl2+)))
1817
8e732b49
RW
1818(define-public texlive-latex-blindtext
1819 (package
1820 (name "texlive-latex-blindtext")
1821 (version (number->string %texlive-revision))
1822 (source (origin
1823 (method svn-fetch)
1824 (uri (texlive-ref "latex" "blindtext"))
1825 (file-name (string-append name "-" version "-checkout"))
1826 (sha256
1827 (base32
1828 "1jrja9b1pzdh9zgv1jh807w4xijqja58n2mqny6dkwicv8qfgbfg"))))
1829 (build-system texlive-build-system)
1830 (arguments '(#:tex-directory "latex/blindtext"))
b8d8806b 1831 (home-page "https://www.ctan.org/pkg/blindtext")
8e732b49
RW
1832 (synopsis "Producing 'blind' text for testing")
1833 (description
1834 "The package provides the commands @code{\\blindtext} and
1835@code{\\Blindtext} for creating \"blind\" text useful in testing new classes
1836and packages, and @code{\\blinddocument}, @code{\\Blinddocument} for creating
1837an entire random document with sections, lists, mathematics, etc. The package
1838supports three languages, @code{english}, @code{(n)german} and @code{latin};
1839the @code{latin} option provides a short \"lorem ipsum\" (for a fuller \"lorem
1840ipsum\" text, see the @code{lipsum} package).")
1841 (license license:lppl)))
1842
7cda03bd
RW
1843(define-public texlive-latex-dinbrief
1844 (package
1845 (name "texlive-latex-dinbrief")
1846 (version (number->string %texlive-revision))
1847 (source (origin
1848 (method svn-fetch)
1849 (uri (texlive-ref "latex" "dinbrief"))
1850 (file-name (string-append name "-" version "-checkout"))
1851 (sha256
1852 (base32
1853 "0lb0kiy8fxzl6cnhcw1sggy6jrjvcd6kj1kkw3k9lkimm388yjz6"))))
1854 (build-system texlive-build-system)
1855 (arguments
1856 '(#:tex-directory "latex/dinbrief"
1857 #:phases
1858 (modify-phases %standard-phases
1859 (add-after 'unpack 'remove-generated-file
1860 (lambda _
1861 (delete-file "dinbrief.drv")
1862 #t)))))
b8d8806b 1863 (home-page "https://www.ctan.org/pkg/dinbrief")
7cda03bd
RW
1864 (synopsis "German letter DIN style")
1865 (description
1866 "This package implements a document layout for writing letters according
1867to the rules of DIN (Deutsches Institut für Normung, German standardisation
1868institute). A style file for LaTeX 2.09 (with limited support of the
1869features) is part of the package. Since the letter layout is based on a
1870German standard, the user guide is written in German, but most macros have
1871English names from which the user can recognize what they are used for. In
1872addition there are example files showing how letters may be created with the
1873package.")
1874 (license license:lppl)))
1875
de224adb
RW
1876(define-public texlive-latex-draftwatermark
1877 (package
1878 (name "texlive-latex-draftwatermark")
1879 (version (number->string %texlive-revision))
1880 (source (origin
1881 (method svn-fetch)
1882 (uri (texlive-ref "latex" "draftwatermark"))
1883 (file-name (string-append name "-" version "-checkout"))
1884 (sha256
1885 (base32
1886 "1zyl2pcz2x529gzj5m93a1s4ipymdabf7qdjl3l1673pizd4hfyv"))))
1887 (build-system texlive-build-system)
1888 (arguments '(#:tex-directory "latex/draftwatermark"))
b8d8806b 1889 (home-page "https://www.ctan.org/pkg/draftwatermark")
de224adb
RW
1890 (synopsis "Put a grey textual watermark on document pages")
1891 (description
1892 "This package provides a means to add a textual, light grey watermark on
1893every page or on the first page of a document. Typical usage may consist in
1894writing words such as DRAFT or CONFIDENTIAL across document pages. The
1895package performs a similar function to that of @code{draftcopy}, but its
1896implementation is output device independent, and made very simple by relying
1897on everypage.")
1898 (license license:lppl1.3+)))
1899
74e9c9a4
RW
1900(define-public texlive-latex-environ
1901 (package
1902 (name "texlive-latex-environ")
1903 (version (number->string %texlive-revision))
1904 (source (origin
1905 (method svn-fetch)
1906 (uri (texlive-ref "latex" "environ"))
1907 (file-name (string-append name "-" version "-checkout"))
1908 (sha256
1909 (base32
1910 "06h28b26dyjkj9shksphgqfv4130jfkwhbw737hxn7d3yvdfffyd"))))
1911 (build-system texlive-build-system)
1912 (arguments '(#:tex-directory "latex/environ"))
b8d8806b 1913 (home-page "https://www.ctan.org/pkg/environ")
74e9c9a4
RW
1914 (synopsis "New interface for environments in LaTeX")
1915 (description
09acbb02
RW
1916 "This package provides the @code{\\collect@@body} command (as in
1917@code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},
1918for collecting the body text of an environment. These commands are used to
1919define a new author interface to creating new environments.")
74e9c9a4
RW
1920 (license license:lppl)))
1921
adfa7a2a
RW
1922(define-public texlive-latex-eqparbox
1923 (package
1924 (name "texlive-latex-eqparbox")
1925 (version (number->string %texlive-revision))
1926 (source (origin
1927 (method svn-fetch)
1928 (uri (texlive-ref "latex" "eqparbox"))
1929 (file-name (string-append name "-" version "-checkout"))
1930 (sha256
1931 (base32
1932 "0pvmhsd4xmpil0m3c7qcgwilbk266mlkzv03g0jr8r3zd8jxlyzq"))))
1933 (build-system texlive-build-system)
1934 (arguments '(#:tex-directory "latex/eqparbox"))
b8d8806b 1935 (home-page "https://www.ctan.org/pkg/eqparbox")
adfa7a2a
RW
1936 (synopsis "Create equal-widthed parboxes")
1937 (description
1938 "LaTeX users sometimes need to ensure that two or more blocks of text
1939occupy the same amount of horizontal space on the page. To that end, the
1940@code{eqparbox} package defines a new command, @code{\\eqparbox}, which works
1941just like @code{\\parbox}, except that instead of specifying a width, one
1942specifies a tag. All @code{eqparbox}es with the same tag---regardless of
1943where they are in the document---will stretch to fit the widest
1944@code{eqparbox} with that tag. This simple, equal-width mechanism can be used
1945for a variety of alignment purposes, as is evidenced by the examples in
1946@code{eqparbox}'s documentation. Various derivatives of @code{\\eqparbox} are
1947also provided.")
1948 (license license:lppl1.3+)))
1949
32e623d0
RW
1950(define-public texlive-latex-expdlist
1951 (package
1952 (name "texlive-latex-expdlist")
1953 (version (number->string %texlive-revision))
1954 (source (origin
1955 (method svn-fetch)
1956 (uri (texlive-ref "latex" "expdlist"))
1957 (file-name (string-append name "-" version "-checkout"))
1958 (sha256
1959 (base32
1960 "1x7byk6x10njir3y9rm56glhdzrxwqag7gsnw2sqn1czlq525w7r"))))
1961 (build-system texlive-build-system)
1962 (arguments
1963 '(#:tex-directory "latex/expdlist"
1964 #:phases
1965 (modify-phases %standard-phases
1966 (add-after 'unpack 'remove-generated-file
1967 (lambda _
1968 (for-each delete-file
1969 (find-files "." "\\.drv$"))
1970 #t)))))
b8d8806b 1971 (home-page "https://www.ctan.org/pkg/expdlist")
32e623d0
RW
1972 (synopsis "Expanded description environments")
1973 (description
1974 "The package provides additional features for the LaTeX
1975@code{description} environment, including adjustable left margin. The package
1976also allows the user to \"break\" a list (for example, to interpose a comment)
1977without affecting the structure of the list (this works for @code{itemize} and
1978@code{enumerate} lists, and numbered lists remain in sequence).")
1979 (license license:lppl)))
1980
893e3fc1
RW
1981(define-public texlive-latex-filemod
1982 (package
1983 (name "texlive-latex-filemod")
1984 (version (number->string %texlive-revision))
1985 (source (origin
1986 (method svn-fetch)
1987 (uri (svn-reference
1988 (url (string-append "svn://www.tug.org/texlive/tags/"
1989 %texlive-tag "/Master/texmf-dist/"
1990 "/tex/latex/filemod"))
1991 (revision %texlive-revision)))
681b579d 1992 (file-name (string-append name "-" version "-checkout"))
893e3fc1
RW
1993 (sha256
1994 (base32
1995 "0vpxilfw69xv78f03g0j0zw0bw4qcn36whqp8phcq48qk1ax2kr2"))))
1996 (build-system trivial-build-system)
1997 (arguments
1998 `(#:modules ((guix build utils))
1999 #:builder
2000 (begin
2001 (use-modules (guix build utils))
2002 (let ((target (string-append (assoc-ref %outputs "out")
2003 "/share/texmf-dist/tex/latex/filemod")))
2004 (mkdir-p target)
2005 (copy-recursively (assoc-ref %build-inputs "source") target)
2006 #t))))
b8d8806b 2007 (home-page "https://www.ctan.org/pkg/filemod")
893e3fc1
RW
2008 (synopsis "Provide file modification times, and compare them")
2009 (description
2010 "This package provides macros to read and compare the modification dates
2011of files. The files may be @code{.tex} files, images or other files (as long
2012as they can be found by LaTeX). It uses the @code{\\pdffilemoddate} primitive
2013of pdfLaTeX to find the file modification date as PDF date string, parses the
2014string and returns the value to the user. The package will also work for DVI
2015output with recent versions of the LaTeX compiler which uses pdfLaTeX in DVI
2016mode. The functionality is provided by purely expandable macros or by faster
2017but non-expandable ones.")
2018 (license license:lppl1.3+)))
2019
8c23f238
RW
2020(define-public texlive-latex-ifplatform
2021 (package
2022 (name "texlive-latex-ifplatform")
2023 (version (number->string %texlive-revision))
2024 (source (origin
2025 (method svn-fetch)
2026 (uri (texlive-ref "latex" "ifplatform"))
2027 (file-name (string-append name "-" version "-checkout"))
2028 (sha256
2029 (base32
2030 "11gvvjvmdfs9b7mm19yf80zwkx49jqcbq6g8qb9y5ns1r1qvnixp"))))
2031 (build-system texlive-build-system)
2032 (arguments '(#:tex-directory "latex/ifplatform"))
b8d8806b 2033 (home-page "https://www.ctan.org/pkg/ifplatform")
8c23f238
RW
2034 (synopsis "Conditionals to test which platform is being used")
2035 (description
2036 "This package uses the (La)TeX extension @code{-shell-escape} to
2037establish whether the document is being processed on a Windows or on a
2038Unix-like system, or on Cygwin (Unix environment over a Windows system).
2039Booleans provided are: @code{\\ifwindows}, @code{\\iflinux}, @code{\\ifmacosx}
2040and @code{\\ifcygwin}. The package also preserves the output of @code{uname}
2041on a Unix-like system, which may be used to distinguish between various
2042classes of systems.")
2043 (license license:lppl)))
2044
9b416042
RW
2045(define-public texlive-latex-natbib
2046 (package
2047 (name "texlive-latex-natbib")
2048 (version (number->string %texlive-revision))
2049 (source (origin
2050 (method svn-fetch)
2051 (uri (texlive-ref "latex" "natbib"))
23ae6e65 2052 (file-name (string-append name "-" version "-checkout"))
9b416042
RW
2053 (sha256
2054 (base32
2055 "0aqliq0nwblxyrzhwhv77pnmk7qh2y3prgq7z7qhwcbgz5kisld7"))))
2056 (build-system texlive-build-system)
2057 (arguments '(#:tex-directory "latex/natbib"))
b8d8806b 2058 (home-page "https://www.ctan.org/pkg/natbib")
9b416042
RW
2059 (synopsis "Flexible bibliography support")
2060 (description
2061 "This bundle provides a package that implements both author-year and
2062numbered references, as well as much detailed of support for other
2063bibliography use. Also provided are versions of the standard BibTeX styles
2064that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat},
2065@code{abbrnat}. The bibliography styles produced by @code{custom-bib} are
2066designed from the start to be compatible with @code{natbib}.")
2067 (license license:lppl)))
2068
d770d07f
RW
2069(define-public texlive-latex-psfrag
2070 (package
2071 (name "texlive-latex-psfrag")
2072 (version (number->string %texlive-revision))
2073 (source (origin
2074 (method svn-fetch)
2075 (uri (texlive-ref "latex" "psfrag"))
2076 (file-name (string-append name "-" version "-checkout"))
2077 (sha256
2078 (base32
2079 "1dxbl5il7wbbsp0v45vk884xi1192wxw03849pb1g5q4x808n352"))))
2080 (build-system texlive-build-system)
2081 (arguments '(#:tex-directory "latex/psfrag"))
b8d8806b 2082 (home-page "https://www.ctan.org/pkg/psfrag")
d770d07f
RW
2083 (synopsis "Replace strings in encapsulated PostScript figures")
2084 (description
2085 "This package allows LaTeX constructions (equations, picture
2086environments, etc.) to be precisely superimposed over Encapsulated PostScript
2087figures, using your own favorite drawing tool to create an EPS figure and
2088placing simple text \"tags\" where each replacement is to be placed, with
2089PSfrag automatically removing these tags from the figure and replacing them
2090with a user specified LaTeX construction, properly aligned, scaled, and/or
2091rotated.")
2092 (license (license:fsf-free "file://psfrag.dtx"))))
2093
5a1ee7d8
RW
2094(define-public texlive-latex-pstool
2095 (package
2096 (name "texlive-latex-pstool")
2097 (version (number->string %texlive-revision))
2098 (source (origin
2099 (method svn-fetch)
2100 (uri (texlive-ref "latex" "pstool"))
2101 (file-name (string-append name "-" version "-checkout"))
2102 (sha256
2103 (base32
2104 "1kwlk1x67lad4xb7gpkxqgdlxwpi6nvq1r9wika7m92abmyf18h3"))))
2105 (build-system texlive-build-system)
2106 (arguments
2107 '(#:tex-directory "latex/pstool"
2108 #:tex-format "latex"))
2109 (inputs
2110 `(("texlive-fonts-cm" ,texlive-fonts-cm)
2111 ("texlive-latex-filecontents" ,texlive-latex-filecontents)))
2112 (propagated-inputs
2113 `(("texlive-latex-bigfoot" ,texlive-latex-bigfoot)
2114 ("texlive-latex-filemod" ,texlive-latex-filemod)
2115 ("texlive-latex-graphics" ,texlive-latex-graphics)
2116 ("texlive-latex-ifplatform" ,texlive-latex-ifplatform)
2117 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
2118 ("texlive-latex-psfrag" ,texlive-latex-psfrag)
2119 ("texlive-latex-trimspaces" ,texlive-latex-trimspaces)))
b8d8806b 2120 (home-page "https://www.ctan.org/pkg/pstool")
5a1ee7d8
RW
2121 (synopsis "Process PostScript graphisc within pdfLaTeX documents")
2122 (description
2123 "This is a package for processing PostScript graphics with @code{psfrag}
2124labels within pdfLaTeX documents. Every graphic is compiled individually,
2125drastically speeding up compilation time when only a single figure needs
2126re-processing.")
2127 (license license:lppl)))
2128
171160d5
RW
2129(define-public texlive-latex-seminar
2130 (package
2131 (name "texlive-latex-seminar")
2132 (version (number->string %texlive-revision))
2133 (source (origin
2134 (method svn-fetch)
2135 (uri (svn-reference
2136 (url (string-append "svn://www.tug.org/texlive/tags/"
2137 %texlive-tag "/Master/texmf-dist/"
2138 "/tex/latex/seminar"))
2139 (revision %texlive-revision)))
a74ac06b 2140 (file-name (string-append name "-" version "-checkout"))
171160d5
RW
2141 (sha256
2142 (base32
2143 "0y4i651b75y6006n03x8n86bsqvjsailvvz9bhzy51dzsznqidq0"))))
2144 (build-system texlive-build-system)
2145 (arguments '(#:tex-directory "latex/seminar"))
b8d8806b 2146 (home-page "https://www.ctan.org/pkg/seminar")
171160d5
RW
2147 (synopsis "Make overhead slides")
2148 ;; TODO: This package may need fancybox and xcomment at runtime.
2149 (description
2150 "This package provides a class that produces overhead
2151slides (transparencies), with many facilities. Seminar is not nowadays
2152reckoned a good basis for a presentation — users are advised to use more
2153recent classes such as powerdot or beamer, both of which are tuned to
215421st-century presentation styles.")
2155 (license license:lppl1.2+)))
2156
f3540dbd
RW
2157(define-public texlive-latex-trimspaces
2158 (package
2159 (name "texlive-latex-trimspaces")
2160 (version (number->string %texlive-revision))
2161 (source (origin
2162 (method svn-fetch)
2163 (uri (texlive-ref "latex" "trimspaces"))
70a71d19 2164 (file-name (string-append name "-" version "-checkout"))
f3540dbd
RW
2165 (sha256
2166 (base32
2167 "0da00lb32am4g63mn96625wg48p3pj3spx79lajrk17d549apwqa"))))
2168 (build-system texlive-build-system)
2169 (arguments
2170 '(#:tex-directory "latex/trimspaces"
2171 #:tex-format "latex"
2172 #:phases
2173 (modify-phases %standard-phases
2174 (add-after 'unpack 'fix-bug
2175 (lambda _
2176 ;; The "ins" file refers to the wrong source file.
2177 (substitute* "trimspaces.ins"
2178 (("pstool.tex") "trimspaces.tex"))
2179 #t)))))
2180 (inputs
2181 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
b8d8806b 2182 (home-page "https://www.ctan.org/pkg/trimspaces")
f3540dbd
RW
2183 (synopsis "Trim spaces around an argument or within a macro")
2184 (description
2185 "This very short package allows you to expandably remove spaces around a
2186token list (commands are provided to remove spaces before, spaces after, or
2187both); or to remove surrounding spaces within a macro definition, or to define
2188space-stripped macros.")
2189 (license license:lppl)))
2190
7709d4d8
RW
2191(define-public texlive-latex-capt-of
2192 (package
2193 (name "texlive-latex-capt-of")
2194 (version (number->string %texlive-revision))
2195 (source (origin
2196 (method svn-fetch)
2197 (uri (svn-reference
2198 (url (string-append "svn://www.tug.org/texlive/tags/"
2199 %texlive-tag "/Master/texmf-dist/"
2200 "/tex/latex/capt-of"))
2201 (revision %texlive-revision)))
2202 (file-name (string-append name "-" version "-checkout"))
2203 (sha256
2204 (base32
2205 "1y2s50f6lz0jx2748lj3iy56hrpcczgnbzmvphxv7aqndyyamd4x"))))
2206 (build-system trivial-build-system)
2207 (arguments
2208 `(#:modules ((guix build utils))
2209 #:builder
2210 (begin
2211 (use-modules (guix build utils))
2212 (let ((target (string-append (assoc-ref %outputs "out")
2213 "/share/texmf-dist/tex/latex/capt-of")))
2214 (mkdir-p target)
2215 (copy-recursively (assoc-ref %build-inputs "source") target)
2216 #t))))
b8d8806b 2217 (home-page "https://www.ctan.org/pkg/capt-of")
7709d4d8
RW
2218 (synopsis "Captions on more than floats")
2219 (description
2220 "This package defines a command @code{\\captionof} for putting a caption
2221to something that's not a float.")
2222 (license license:lppl)))
2223
a8ac7c0b
RW
2224(define-public texlive-latex-etoolbox
2225 (package
2226 (name "texlive-latex-etoolbox")
2227 (version (number->string %texlive-revision))
2228 (source (origin
2229 (method svn-fetch)
2230 (uri (svn-reference
2231 (url (string-append "svn://www.tug.org/texlive/tags/"
2232 %texlive-tag "/Master/texmf-dist/"
2233 "/tex/latex/etoolbox"))
2234 (revision %texlive-revision)))
2235 (file-name (string-append name "-" version "-checkout"))
2236 (sha256
2237 (base32
2238 "0016bscnpima9krrg2569mva78xzwnygzlvg87dznsm6gf8g589v"))))
2239 (build-system trivial-build-system)
2240 (arguments
2241 `(#:modules ((guix build utils))
2242 #:builder
2243 (begin
2244 (use-modules (guix build utils))
2245 (let ((target (string-append (assoc-ref %outputs "out")
2246 "/share/texmf-dist/tex/latex/etoolbox")))
2247 (mkdir-p target)
2248 (copy-recursively (assoc-ref %build-inputs "source") target)
2249 #t))))
b8d8806b 2250 (home-page "https://www.ctan.org/pkg/etoolbox")
a8ac7c0b
RW
2251 (synopsis "e-TeX tools for LaTeX")
2252 (description
2253 "This package is a toolbox of programming facilities geared primarily
2254towards LaTeX class and package authors. It provides LaTeX frontends to some
2255of the new primitives provided by e-TeX as well as some generic tools which
2256are not strictly related to e-TeX but match the profile of this package. The
2257package provides functions that seem to offer alternative ways of implementing
2258some LaTeX kernel commands; nevertheless, the package will not modify any part
2259of the LaTeX kernel.")
2260 (license license:lppl1.3+)))
2261
17dce7e5
RW
2262(define-public texlive-latex-fncychap
2263 (package
2264 (name "texlive-latex-fncychap")
2265 (version (number->string %texlive-revision))
2266 (source (origin
2267 (method svn-fetch)
2268 (uri (svn-reference
2269 (url (string-append "svn://www.tug.org/texlive/tags/"
2270 %texlive-tag "/Master/texmf-dist/"
2271 "/tex/latex/fncychap"))
2272 (revision %texlive-revision)))
2273 (file-name (string-append name "-" version "-checkout"))
2274 (sha256
2275 (base32
2276 "0fdk84dbicfjfprkz6vk15x36mvlhaw9isjmgkc56jp2khwjswwq"))))
2277 (build-system trivial-build-system)
2278 (arguments
2279 `(#:modules ((guix build utils))
2280 #:builder
2281 (begin
2282 (use-modules (guix build utils))
2283 (let ((target (string-append (assoc-ref %outputs "out")
2284 "/share/texmf-dist/tex/latex/fncychap")))
2285 (mkdir-p target)
2286 (copy-recursively (assoc-ref %build-inputs "source") target)
2287 #t))))
b8d8806b 2288 (home-page "https://www.ctan.org/pkg/fncychap")
17dce7e5
RW
2289 (synopsis "Seven predefined chapter heading styles")
2290 (description
2291 "This package provides seven predefined chapter heading styles. Each
2292style can be modified using a set of simple commands. Optionally one can
2293modify the formatting routines in order to create additional chapter
2294headings.")
2295 (license license:lppl1.3+)))
2296
ef1e2ef0
RW
2297(define-public texlive-latex-framed
2298 (package
2299 (name "texlive-latex-framed")
2300 (version (number->string %texlive-revision))
2301 (source (origin
2302 (method svn-fetch)
2303 (uri (svn-reference
2304 (url (string-append "svn://www.tug.org/texlive/tags/"
2305 %texlive-tag "/Master/texmf-dist/"
2306 "/tex/latex/framed"))
2307 (revision %texlive-revision)))
2308 (file-name (string-append name "-" version "-checkout"))
2309 (sha256
2310 (base32
2311 "14a4ydqsvp3vcfavl21jrv0ybiqypaaqzg2q2cs3rzkandg7w98x"))))
2312 (build-system trivial-build-system)
2313 (arguments
2314 `(#:modules ((guix build utils))
2315 #:builder
2316 (begin
2317 (use-modules (guix build utils))
2318 (let ((target (string-append (assoc-ref %outputs "out")
2319 "/share/texmf-dist/tex/latex/framed")))
2320 (mkdir-p target)
2321 (copy-recursively (assoc-ref %build-inputs "source") target)
2322 #t))))
b8d8806b 2323 (home-page "https://www.ctan.org/pkg/framed")
ef1e2ef0
RW
2324 (synopsis "Framed or shaded regions that can break across pages")
2325 (description
2326 "The package creates three environments: @code{framed}, which puts an
2327ordinary frame box around the region, @code{shaded}, which shades the region,
2328and @code{leftbar}, which places a line at the left side. The environments
2329allow a break at their start (the @code{\\FrameCommand} enables creation of a
2330title that is “attached” to the environment); breaks are also allowed in the
2331course of the framed/shaded matter. There is also a command
2332@code{\\MakeFramed} to make your own framed-style environments.")
2333 ;; The header states: "These macros may be freely transmitted, reproduced,
2334 ;; or modified for any purpose provided that this notice is left intact."
2335 (license (license:fsf-free "file://framed.sty"))))
2336
588b5e96
RW
2337(define-public texlive-latex-g-brief
2338 (package
2339 (name "texlive-latex-g-brief")
2340 (version (number->string %texlive-revision))
2341 (source (origin
2342 (method svn-fetch)
2343 (uri (texlive-ref "latex" "g-brief"))
2344 (file-name (string-append name "-" version "-checkout"))
2345 (sha256
2346 (base32
2347 "0sikazkg0dpkcpzlbqw8qzxr81paf2f443vsrh14jnw7s4gswvc5"))))
2348 (build-system texlive-build-system)
2349 (arguments
2350 '(#:tex-directory "latex/g-brief"
2351 #:phases
2352 (modify-phases %standard-phases
2353 (add-after 'unpack 'remove-generated-file
2354 (lambda _
2355 (delete-file "g-brief.drv")
2356 #t)))))
b8d8806b 2357 (home-page "https://www.ctan.org/pkg/g-brief")
588b5e96
RW
2358 (synopsis "Letter document class")
2359 (description
2360 "This package is designed for formatting formless letters in German; it
2361can also be used for English (by those who can read the documentation). There
2362are LaTeX 2.09 @code{documentstyle} and LaTeX 2e class files for both an
2363\"old\" and a \"new\" version of g-brief.")
2364 (license license:lppl)))
2365
9b4d5c09
RW
2366(define-public texlive-latex-galois
2367 (package
2368 (name "texlive-latex-galois")
2369 (version (number->string %texlive-revision))
2370 (source (origin
2371 (method svn-fetch)
2372 (uri (texlive-ref "latex" "galois"))
2373 (file-name (string-append name "-" version "-checkout"))
2374 (sha256
2375 (base32
2376 "0d4l0msk8j5pi95xnmm9wygv1vbpkwkv5amx9l0km86cs79jpp1h"))))
2377 (build-system texlive-build-system)
2378 (arguments '(#:tex-directory "latex/galois"))
b8d8806b 2379 (home-page "https://www.ctan.org/pkg/galois")
9b4d5c09
RW
2380 (synopsis "Typeset Galois connections")
2381 (description
2382 "The package deals with connections in two-dimensional style, optionally
2383in colour.")
2384 (license license:lppl)))
2385
5f691e2e
RW
2386(define-public texlive-latex-gcite
2387 (package
2388 (name "texlive-latex-gcite")
2389 (version (number->string %texlive-revision))
2390 (source (origin
2391 (method svn-fetch)
2392 (uri (texlive-ref "latex" "gcite"))
2393 (file-name (string-append name "-" version "-checkout"))
2394 (sha256
2395 (base32
2396 "03g9by54yrypn599y98r1xh7qw0bbbmpzq0bfwpj6j5q5rkl1mfa"))))
2397 (build-system texlive-build-system)
2398 (arguments '(#:tex-directory "latex/gcite"))
b8d8806b 2399 (home-page "https://www.ctan.org/pkg/gcite")
5f691e2e
RW
2400 (synopsis "Citations in a reader-friendly style")
2401 (description
2402 "The package allows citations in the German style, which is considered by
2403many to be particularly reader-friendly. The citation provides a small amount
2404of bibliographic information in a footnote on the page where each citation is
2405made. It combines a desire to eliminate unnecessary page-turning with the
2406look-up efficiency afforded by numeric citations. The package makes use of
2407BibLaTeX, and is considered experimental.")
2408 (license license:lppl1.3+)))
2409
f47d1a52
RW
2410(define-public texlive-latex-geometry
2411 (package
2412 (name "texlive-latex-geometry")
2413 (version (number->string %texlive-revision))
2414 (source (origin
2415 (method svn-fetch)
2416 (uri (texlive-ref "latex" "geometry"))
2417 (file-name (string-append name "-" version "-checkout"))
2418 (sha256
2419 (base32
2420 "1r2kfcwclg33yk5z8mvlagwxj7nr1mc3w4bdpmhrwv6dn8mrbvw8"))))
2421 (build-system texlive-build-system)
2422 (arguments '(#:tex-directory "latex/geometry"))
b8d8806b 2423 (home-page "https://www.ctan.org/pkg/geometry")
f47d1a52
RW
2424 (synopsis "Flexible and complete interface to document dimensions")
2425 (description
2426 "This package provides an easy and flexible user interface to customize
2427page layout, implementing auto-centering and auto-balancing mechanisms so that
2428the users have only to give the least description for the page layout. The
2429package knows about all the standard paper sizes, so that the user need not
2430know what the nominal \"real\" dimensions of the paper are, just its standard
2431name (such as a4, letter, etc.). An important feature is the package's
2432ability to communicate the paper size it's set up to the output.")
2433 (license license:lppl)))
2434
d48091be
RW
2435(define-public texlive-latex-mdwtools
2436 (package
2437 (name "texlive-latex-mdwtools")
2438 (version (number->string %texlive-revision))
2439 (source (origin
2440 (method svn-fetch)
2441 (uri (texlive-ref "latex" "mdwtools"))
2442 (file-name (string-append name "-" version "-checkout"))
2443 (sha256
2444 (base32
2445 "0caxs74hla28hc67csf5i5ahadx97w8vxh3mdmsprxbpd1mr7ssg"))))
2446 (build-system texlive-build-system)
2447 (arguments '(#:tex-directory "latex/mdwtools"))
b8d8806b 2448 (home-page "https://www.ctan.org/pkg/mdwtools")
d48091be
RW
2449 (synopsis "Miscellaneous tools by Mark Wooding")
2450 (description
2451 "This collection of tools includes: @code{atsupport} for short commands
fb5dfa86
RW
2452starting with @code{@@}, macros to sanitize the OT1 encoding of the
2453@code{cmtt} fonts; a @code{doafter} command; improved @code{footnote} support;
d48091be
RW
2454@code{mathenv} for various alignment in maths; list handling; @code{mdwmath}
2455which adds some minor changes to LaTeX maths; a rewrite of LaTeX's tabular and
2456array environments; verbatim handling; and syntax diagrams.")
2457 (license license:gpl3+)))
2458
80bf1f21
RW
2459(define-public texlive-latex-polyglossia
2460 (package
2461 (name "texlive-latex-polyglossia")
2462 (version (number->string %texlive-revision))
2463 (source (origin
2464 (method svn-fetch)
2465 (uri (texlive-ref "latex" "polyglossia"))
2466 (file-name (string-append name "-" version "-checkout"))
2467 (sha256
2468 (base32
2469 "09mvszd5qgqg4cfglpj5qxyzjz190ppb9p8gnsnjydwp1akvhayf"))))
2470 (build-system texlive-build-system)
2471 (arguments '(#:tex-directory "latex/polyglossia"))
b8d8806b 2472 (home-page "https://www.ctan.org/pkg/polyglossia")
80bf1f21
RW
2473 (synopsis "Alternative to babel for XeLaTeX and LuaLaTeX")
2474 (description
2475 "This package provides a complete Babel replacement for users of LuaLaTeX
2476and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least.")
2477 (license license:lppl1.3+)))
2478
84f8035a
RW
2479(define-public texlive-latex-supertabular
2480 (package
2481 (name "texlive-latex-supertabular")
2482 (version (number->string %texlive-revision))
2483 (source (origin
2484 (method svn-fetch)
2485 (uri (texlive-ref "latex" "supertabular"))
2486 (file-name (string-append name "-" version "-checkout"))
2487 (sha256
2488 (base32
2489 "14b2bc7cqz4ckxxycim9sw6jkrr1pahivm1rdbpz5k6hl967w1s3"))))
2490 (build-system texlive-build-system)
2491 (arguments '(#:tex-directory "latex/supertabular"))
b8d8806b 2492 (home-page "https://www.ctan.org/pkg/supertabular")
84f8035a
RW
2493 (synopsis "Multi-page tables package")
2494 (description
2495 "This package was a predecessor of @code{longtable}; the newer
2496package (designed on quite different principles) is easier to use and more
2497flexible, in many cases, but supertabular retains its usefulness in a few
2498situations where longtable has problems.")
2499 (license license:lppl1.3+)))
2500
a0aa6b59
RW
2501(define-public texlive-tex-texinfo
2502 (package
2503 (name "texlive-tex-texinfo")
2504 (version (number->string %texlive-revision))
2505 (source (origin
2506 (method svn-fetch)
2507 (uri (svn-reference
2508 (url (string-append "svn://www.tug.org/texlive/tags/"
2509 %texlive-tag "/Master/texmf-dist/"
2510 "/tex/texinfo"))
2511 (revision %texlive-revision)))
88ae1921 2512 (file-name (string-append name "-" version "-checkout"))
a0aa6b59
RW
2513 (sha256
2514 (base32
2515 "09zj2w3lx0y6i2syfjjgizahf86z301dw8p37ln6syfhqhzqdz46"))))
2516 (build-system trivial-build-system)
2517 (arguments
2518 `(#:modules ((guix build utils))
2519 #:builder
2520 (begin
2521 (use-modules (guix build utils))
2522 (let ((target (string-append (assoc-ref %outputs "out")
2523 "/share/texmf-dist/tex/texinfo")))
2524 (mkdir-p target)
2525 (copy-recursively (assoc-ref %build-inputs "source") target)
2526 #t))))
b8d8806b 2527 (home-page "https://www.ctan.org/pkg/texinfo")
a0aa6b59
RW
2528 (synopsis "TeX macros to handle Texinfo files")
2529 (description
2530 "Texinfo is the preferred format for documentation in the GNU project;
2531the format may be used to produce online or printed output from a single
2532source. The Texinfo macros may be used to produce printable output using TeX;
2533other programs in the distribution offer online interactive use (with
2534hypertext linkages in some cases).")
2535 (license license:gpl3+)))
2536
0de81b09
RW
2537(define-public texlive-latex-upquote
2538 (package
2539 (name "texlive-latex-upquote")
2540 (version (number->string %texlive-revision))
2541 (source (origin
2542 (method svn-fetch)
2543 (uri (texlive-ref "latex" "upquote"))
2544 (file-name (string-append name "-" version "-checkout"))
2545 (sha256
2546 (base32
2547 "0d1050i973wnxigy0xpky5l7vn4ff7ldhkjpdqsw5s653gagwixp"))))
2548 (build-system texlive-build-system)
2549 (arguments '(#:tex-directory "latex/upquote"))
b8d8806b 2550 (home-page "https://www.ctan.org/pkg/upquote")
0de81b09
RW
2551 (synopsis "Show \"realistic\" quotes in verbatim")
2552 (description
2553 "Typewriter-style fonts are best for program listings, but Computer
2554Modern Typewriter prints @code{`} and @code{'} as bent opening and closing
2555single quotes. Other fonts, and most programming languages, print @code{`} as
2556a grave accent and @code{'} upright; @code{'} is used both to open and to
2557close quoted strings. The package switches the typewriter font to Computer
2558Modern Typewriter in OT1 encoding, and modifies the behaviour of
2559@code{verbatim}, @code{verbatim*}, @code{\\verb}, and @code{\\verb*} to print
2560in the expected way. It does this regardless of other fonts or encodings in
2561use, so long as the package is loaded after the other fonts were. The package
2562does not affect @code{\\tt}, @code{\\texttt}, etc.")
2563 (license license:lppl1.2+)))
2564
bda61541
RW
2565(define-public texlive-latex-anysize
2566 (package
2567 (name "texlive-latex-anysize")
2568 (version (number->string %texlive-revision))
2569 (source (origin
2570 (method svn-fetch)
2571 (uri (svn-reference
2572 (url (string-append "svn://www.tug.org/texlive/tags/"
2573 %texlive-tag "/Master/texmf-dist/"
2574 "/tex/latex/anysize"))
2575 (revision %texlive-revision)))
de4eb4d1 2576 (file-name (string-append name "-" version "-checkout"))
bda61541
RW
2577 (sha256
2578 (base32
2579 "19khwqjlvznc955sijhww3c4zbb0053rvzwv9nz738qknq7y18vb"))))
2580 (build-system trivial-build-system)
2581 (arguments
2582 `(#:modules ((guix build utils))
2583 #:builder
2584 (begin
2585 (use-modules (guix build utils))
2586 (let ((target (string-append (assoc-ref %outputs "out")
2587 "/share/texmf-dist/tex/latex/anysize")))
2588 (mkdir-p target)
2589 (copy-recursively (assoc-ref %build-inputs "source") target)
2590 #t))))
b8d8806b 2591 (home-page "https://www.ctan.org/pkg/anysize")
bda61541
RW
2592 (synopsis "Simple package to set up document margins")
2593 (description
2594 "This is a simple package to set up document margins. This package is
2595considered obsolete; alternatives are the @code{typearea} package from the
2596@code{koma-script} bundle, or the @code{geometry} package.")
2597 (license license:public-domain)))
2598
1d3be84e
RW
2599(define-public texlive-latex-appendix
2600 (package
2601 (name "texlive-latex-appendix")
2602 (version (number->string %texlive-revision))
2603 (source (origin
2604 (method svn-fetch)
2605 (uri (texlive-ref "latex" "appendix"))
72d5adf4 2606 (file-name (string-append name "-" version "-checkout"))
1d3be84e
RW
2607 (sha256
2608 (base32
2609 "0rxfpr8vq3brwx5rc7qn91ixlp9zva4zrms8a579fqa1g5yva7vg"))))
2610 (build-system texlive-build-system)
2611 (arguments '(#:tex-directory "latex/appendix"))
b8d8806b 2612 (home-page "https://www.ctan.org/pkg/appendix")
1d3be84e
RW
2613 (synopsis "Extra control of appendices")
2614 (description
2615 "The appendix package provides various ways of formatting the titles of
2616appendices. Also (sub)appendices environments are provided that can be used,
2617for example, for per chapter/section appendices. An @code{appendices}
2618environment is provided which can be used instead of the @code{\\appendix}
2619command.")
2620 (license license:lppl)))
2621
b92ac281
RW
2622(define-public texlive-latex-changebar
2623 (package
2624 (name "texlive-latex-changebar")
2625 (version (number->string %texlive-revision))
2626 (source (origin
2627 (method svn-fetch)
2628 (uri (texlive-ref "latex" "changebar"))
af8aa105 2629 (file-name (string-append name "-" version "-checkout"))
b92ac281
RW
2630 (sha256
2631 (base32
2632 "1ik4m8pzfsn1grlda6fniqqfwmgj7rfxwg63jdw0p0qv002vc7ik"))))
2633 (build-system texlive-build-system)
2634 (arguments '(#:tex-directory "latex/changebar"))
b8d8806b 2635 (home-page "https://www.ctan.org/pkg/changebar")
b92ac281
RW
2636 (synopsis "Generate changebars in LaTeX documents")
2637 (description
2638 "Identify areas of text to be marked with changebars with the
2639@code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured. The
2640package uses 'drivers' to place the bars; the available drivers can work with
2641@code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI
2642drivers, and VTeX and pdfTeX.")
2643 (license license:lppl)))
2644
fedd77c1
RW
2645(define-public texlive-latex-cmap
2646 (package
2647 (name "texlive-latex-cmap")
2648 (version (number->string %texlive-revision))
2649 (source (origin
2650 (method svn-fetch)
2651 (uri (svn-reference
2652 (url (string-append "svn://www.tug.org/texlive/tags/"
2653 %texlive-tag "/Master/texmf-dist/"
2654 "/tex/latex/cmap"))
2655 (revision %texlive-revision)))
2656 (file-name (string-append name "-" version "-checkout"))
2657 (sha256
2658 (base32
2659 "1s1rv6zgw105w2j6ffhnk914qrix87y1ndzri1q72g2kbr91zlbg"))))
2660 (build-system trivial-build-system)
2661 (arguments
2662 `(#:modules ((guix build utils))
2663 #:builder
2664 (begin
2665 (use-modules (guix build utils))
2666 (let ((target (string-append (assoc-ref %outputs "out")
2667 "/share/texmf-dist/tex/latex/cmap")))
2668 (mkdir-p target)
2669 (copy-recursively (assoc-ref %build-inputs "source") target)
2670 #t))))
2671 (home-page "https://www.tug.org/svn/texlive/tags/texlive-2017.1/\
2672Master/texmf-dist/tex/latex/cmap/")
2673 (synopsis "CMap support for PDF files")
2674 (description
2675 "This package embeds CMap tables into PDF files to make search and
2676copy-and-paste functions work properly.")
2677 (license license:lppl)))
2678
e003a5f0
RW
2679(define-public texlive-latex-colortbl
2680 (package
2681 (name "texlive-latex-colortbl")
2682 (version (number->string %texlive-revision))
2683 (source (origin
2684 (method svn-fetch)
2685 (uri (texlive-ref "latex" "colortbl"))
4439c1de 2686 (file-name (string-append name "-" version "-checkout"))
e003a5f0
RW
2687 (sha256
2688 (base32
2689 "190pmq8la2rq07xry8bn8z8yywzxv6fqyqaj7yjfj5rgw6x0mas8"))))
2690 (build-system texlive-build-system)
2691 (arguments '(#:tex-directory "latex/colortbl"))
b8d8806b 2692 (home-page "https://www.ctan.org/pkg/colortbl")
e003a5f0
RW
2693 (synopsis "Add colour to LaTeX tables")
2694 (description
2695 "This package allows rows, columns, and even individual cells in LaTeX
2696tables to be coloured.")
2697 (license license:lppl)))
2698
36ce05ff
RW
2699(define-public texlive-latex-fancybox
2700 (package
2701 (name "texlive-latex-fancybox")
2702 (version (number->string %texlive-revision))
2703 (source (origin
2704 (method svn-fetch)
2705 (uri (svn-reference
2706 (url (string-append "svn://www.tug.org/texlive/tags/"
2707 %texlive-tag "/Master/texmf-dist/"
2708 "/tex/latex/fancybox"))
2709 (revision %texlive-revision)))
62ee46b9 2710 (file-name (string-append name "-" version "-checkout"))
36ce05ff
RW
2711 (sha256
2712 (base32
2713 "0smmnaad2q8qwicay1frri990lv65l0k8cwzsvdsyp3jk8kp042w"))))
2714 (build-system trivial-build-system)
2715 (arguments
2716 `(#:modules ((guix build utils))
2717 #:builder
2718 (begin
2719 (use-modules (guix build utils))
2720 (let ((target (string-append (assoc-ref %outputs "out")
2721 "/share/texmf-dist/tex/latex/fancybox")))
2722 (mkdir-p target)
2723 (copy-recursively (assoc-ref %build-inputs "source") target)
2724 #t))))
b8d8806b 2725 (home-page "https://www.ctan.org/pkg/fancybox")
36ce05ff
RW
2726 (synopsis "Variants of \\fbox and other games with boxes")
2727 (description
2728 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},
2729@code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for
2730using box macros and flexible verbatim macros. You can box mathematics,
2731floats, center, flushleft, and flushright, lists, and pages.")
2732 (license license:lppl1.2+)))
2733
20282111
RW
2734(define-public texlive-latex-fancyhdr
2735 (package
2736 (name "texlive-latex-fancyhdr")
2737 (version (number->string %texlive-revision))
2738 (source (origin
2739 (method svn-fetch)
2740 (uri (svn-reference
2741 (url (string-append "svn://www.tug.org/texlive/tags/"
2742 %texlive-tag "/Master/texmf-dist/"
2743 "/tex/latex/fancyhdr"))
2744 (revision %texlive-revision)))
e89d5cf4 2745 (file-name (string-append name "-" version "-checkout"))
20282111
RW
2746 (sha256
2747 (base32
2748 "04h430agf8aj7ziwyb46xpk95c605rjk1wzhr63m6ylipihidlgw"))))
2749 (build-system trivial-build-system)
2750 (arguments
2751 `(#:modules ((guix build utils))
2752 #:builder
2753 (begin
2754 (use-modules (guix build utils))
2755 (let ((target (string-append (assoc-ref %outputs "out")
2756 "/share/texmf-dist/tex/latex/fancyhdr")))
2757 (mkdir-p target)
2758 (copy-recursively (assoc-ref %build-inputs "source") target)
2759 #t))))
b8d8806b 2760 (home-page "https://www.ctan.org/pkg/fancyhdr")
20282111
RW
2761 (synopsis "Extensive control of page headers and footers in LaTeX2e")
2762 (description
2763 "The package provides extensive facilities, both for constructing headers
2764and footers, and for controlling their use (for example, at times when LaTeX
2765would automatically change the heading style in use).")
2766 (license license:lppl)))
2767
df2b9bb4
RW
2768(define-public texlive-latex-float
2769 (package
2770 (name "texlive-latex-float")
2771 (version (number->string %texlive-revision))
2772 (source (origin
2773 (method svn-fetch)
2774 (uri (texlive-ref "latex" "float"))
4fd0a591 2775 (file-name (string-append name "-" version "-checkout"))
df2b9bb4
RW
2776 (sha256
2777 (base32
2778 "0nbl7wylkv22fcdv4p8byhhj575fli6jnqjpkhrkbv8dzwah84nq"))))
2779 (build-system texlive-build-system)
2780 (arguments '(#:tex-directory "latex/float"))
b8d8806b 2781 (home-page "https://www.ctan.org/pkg/float")
df2b9bb4
RW
2782 (synopsis "Improved interface for floating objects")
2783 (description
2784 "This package improves the interface for defining floating objects such
2785as figures and tables. It introduces the boxed float, the ruled float and the
2786plaintop float. You can define your own floats and improve the behaviour of
2787the old ones. The package also provides the @code{H} float modifier option of
2788the obsolete @code{here} package. You can select this as automatic default
2789with @code{\\floatplacement{figure}{H}}.")
2790 (license license:lppl)))
2791
3921bc7c
RW
2792(define-public texlive-latex-footmisc
2793 (package
2794 (name "texlive-latex-footmisc")
2795 (version (number->string %texlive-revision))
2796 (source (origin
2797 (method svn-fetch)
2798 (uri (texlive-ref "latex" "footmisc"))
dae1d9e4 2799 (file-name (string-append name "-" version "-checkout"))
3921bc7c
RW
2800 (sha256
2801 (base32
2802 "03x61wwql8nh6zrqiiiq3rb0x7m3pn48c606zapy19y21fybwdxs"))))
2803 (build-system texlive-build-system)
2804 (arguments '(#:tex-directory "latex/footmisc"))
b8d8806b 2805 (home-page "https://www.ctan.org/pkg/footmisc")
3921bc7c
RW
2806 (synopsis "Range of footnote options")
2807 (description
2808 "This is a collection of ways to change the typesetting of footnotes.
2809The package provides means of changing the layout of the footnotes themselves,
2810a way to number footnotes per page, to make footnotes disappear in a
2811\"moving\" argument, and to deal with multiple references to footnotes from
2812the same place. The package also has a range of techniques for labelling
2813footnotes with symbols rather than numbers.")
2814 (license license:lppl1.3+)))
2815
b2bc1daf
RW
2816(define-public texlive-latex-listings
2817 (package
2818 (name "texlive-latex-listings")
2819 (version (number->string %texlive-revision))
2820 (source (origin
2821 (method svn-fetch)
2822 (uri (texlive-ref "latex" "listings"))
aeb135e3 2823 (file-name (string-append name "-" version "-checkout"))
b2bc1daf
RW
2824 (sha256
2825 (base32
2826 "1nsn9wp3wl12b36c0sqrim33lf33cr5wky0h4ncnw8lvqgm7h8wf"))))
2827 (build-system texlive-build-system)
2828 (arguments
2829 '(#:tex-directory "latex/listings"
2830 #:build-targets '("listings.ins")))
b8d8806b 2831 (home-page "https://www.ctan.org/pkg/listings")
b2bc1daf
RW
2832 (synopsis "Typeset source code listings using LaTeX")
2833 (description
2834 "The package enables the user to typeset programs (programming code)
2835within LaTeX; the source code is read directly by TeX---no front-end processor
2836is needed. Keywords, comments and strings can be typeset using different
2837styles. Support for @code{hyperref} is provided.")
2838 (license license:lppl1.3+)))
2839
02fd07b3
RW
2840(define-public texlive-latex-jknapltx
2841 (package
2842 (name "texlive-latex-jknapltx")
2843 (version (number->string %texlive-revision))
2844 (source (origin
2845 (method svn-fetch)
2846 (uri (svn-reference
2847 (url (string-append "svn://www.tug.org/texlive/tags/"
2848 %texlive-tag "/Master/texmf-dist/"
2849 "/tex/latex/jknapltx"))
2850 (revision %texlive-revision)))
aa499191 2851 (file-name (string-append name "-" version "-checkout"))
02fd07b3
RW
2852 (sha256
2853 (base32
2854 "0m034x72f2g07icr50gacyxfb9g1lz2rmqh4kqr1qjb421x2kds9"))))
2855 (build-system trivial-build-system)
2856 (arguments
2857 `(#:modules ((guix build utils))
2858 #:builder
2859 (begin
2860 (use-modules (guix build utils))
2861 (let ((target (string-append (assoc-ref %outputs "out")
2862 "/share/texmf-dist/tex/latex/jknapltx")))
2863 (mkdir-p target)
2864 (copy-recursively (assoc-ref %build-inputs "source") target)
2865 #t))))
b8d8806b 2866 (home-page "https://www.ctan.org/pkg/jknappen")
02fd07b3
RW
2867 (synopsis "Miscellaneous packages by Joerg Knappen")
2868 (description
2869 "This package provides miscellaneous macros by Joerg Knappen, including:
2870represent counters in greek; Maxwell's non-commutative division;
2871@code{latin1jk}, @code{latin2jk} and @code{latin3jk}, which are
2872@code{inputenc} definition files that allow verbatim input in the respective
2873ISO Latin codes; blackboard bold fonts in maths; use of RSFS fonts in maths;
2874extra alignments for @code{\\parboxes}; swap Roman and Sans fonts;
2875transliterate semitic languages; patches to make (La)TeX formulae embeddable
2876in SGML; use maths minus in text as appropriate; simple Young tableaux.")
2877 (license license:gpl2)))
2878
83c830d1
RW
2879(define-public texlive-fonts-ec
2880 (package
2881 (name "texlive-fonts-ec")
2882 (version (number->string %texlive-revision))
2883 (source (origin
2884 (method svn-fetch)
2885 (uri (svn-reference
2886 (url (string-append "svn://www.tug.org/texlive/tags/"
2887 %texlive-tag "/Master/texmf-dist/"
2888 "/fonts/source/jknappen/ec/"))
2889 (revision %texlive-revision)))
ca816eb3 2890 (file-name (string-append name "-" version "-checkout"))
83c830d1
RW
2891 (sha256
2892 (base32
2893 "12av65fbz9xiashm09c9m1fj1mijxls5xspd7652ry1n5s0nixy4"))))
2894 (build-system gnu-build-system)
2895 (arguments
2896 `(#:modules ((guix build gnu-build-system)
2897 (guix build utils)
2898 (srfi srfi-1)
2899 (srfi srfi-26))
2900 #:tests? #f ; no tests
2901 #:phases
2902 (modify-phases %standard-phases
2903 (delete 'configure)
2904 (replace 'build
2905 (lambda* (#:key inputs #:allow-other-keys)
2906 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
2907 ;; Tell mf where to find mf.base
2908 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
2909 ;; Tell mf where to look for source files
2910 (setenv "MFINPUTS"
2911 (string-append (getcwd) ":"
2912 mf "/share/texmf-dist/metafont/base:"
2913 (assoc-ref inputs "texlive-fonts-cm")
2914 "/share/texmf-dist/fonts/source/public/cm")))
2915 (mkdir "build")
c4fc86e4
MW
2916 (for-each (lambda (font)
2917 (format #t "building font ~a\n" font)
2918 (invoke "mf" "-progname=mf"
2919 "-output-directory=build"
2920 (string-append "\\"
2921 "mode:=ljfour; "
2922 "mag:=1; "
2923 "batchmode; "
2924 "input " (basename font ".mf"))))
2925 (find-files "." "[0-9]+\\.mf$"))
2926 #t))
83c830d1
RW
2927 (replace 'install
2928 (lambda* (#:key outputs #:allow-other-keys)
2929 (let* ((out (assoc-ref outputs "out"))
2930 (tfm (string-append
2931 out "/share/texmf-dist/fonts/tfm/jknappen/ec"))
2932 (mf (string-append
2933 out "/share/texmf-dist/fonts/source/jknappen/ec")))
2934 (for-each (cut install-file <> tfm)
2935 (find-files "build" "\\.*"))
2936 (for-each (cut install-file <> mf)
2937 (find-files "." "\\.mf"))
2938 #t))))))
2939 (native-inputs
2940 `(("texlive-bin" ,texlive-bin)
2941 ("texlive-metafont-base" ,texlive-metafont-base)
2942 ("texlive-fonts-cm" ,texlive-fonts-cm)))
b8d8806b 2943 (home-page "https://www.ctan.org/pkg/ec")
83c830d1
RW
2944 (synopsis "Computer modern fonts in T1 and TS1 encodings")
2945 (description
2946 "The EC fonts are European Computer Modern Fonts, supporting the complete
2947LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.
2948These fonts are intended to be stable with no changes being made to the tfm
2949files. The set also contains a Text Companion Symbol font, called @code{tc},
2950featuring many useful characters needed in text typesetting, for example
2951oldstyle digits, currency symbols (including the newly created Euro symbol),
2952the permille sign, copyright, trade mark and servicemark as well as a copyleft
2953sign, and many others. Recent releases of LaTeX2e support the EC fonts. The
2954EC fonts supersede the preliminary version released as the DC fonts. The
2955fonts are available in (traced) Adobe Type 1 format, as part of the
2956@code{cm-super} bundle. The other Computer Modern-style T1-encoded Type 1
2957set, Latin Modern, is not actually a direct development of the EC set, and
2958differs from the EC in a number of particulars.")
2959 (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\
2960texlive-2017.1/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
2961
f45a5520
RW
2962(define-public texlive-fonts-rsfs
2963 (package
2964 (name "texlive-fonts-rsfs")
2965 (version (number->string %texlive-revision))
2966 (source (origin
2967 (method svn-fetch)
2968 (uri (svn-reference
2969 (url (string-append "svn://www.tug.org/texlive/tags/"
2970 %texlive-tag "/Master/texmf-dist/"
2971 "/fonts/source/public/rsfs/"))
2972 (revision %texlive-revision)))
e26de9c9 2973 (file-name (string-append name "-" version "-checkout"))
f45a5520
RW
2974 (sha256
2975 (base32
2976 "0r12pn02r4a955prcvq0048nifh86ihlcgvw3pppqqvfngv34l5h"))))
2977 (build-system gnu-build-system)
2978 (arguments
2979 `(#:modules ((guix build gnu-build-system)
2980 (guix build utils)
2981 (srfi srfi-1)
2982 (srfi srfi-26))
2983 #:tests? #f ; no tests
2984 #:phases
2985 (modify-phases %standard-phases
2986 (delete 'configure)
2987 (replace 'build
2988 (lambda* (#:key inputs #:allow-other-keys)
2989 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
2990 ;; Tell mf where to find mf.base
2991 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
2992 ;; Tell mf where to look for source files
2993 (setenv "MFINPUTS"
2994 (string-append (getcwd) ":"
2995 mf "/share/texmf-dist/metafont/base:"
2996 (assoc-ref inputs "texlive-fonts-cm")
2997 "/share/texmf-dist/fonts/source/public/cm")))
2998 (mkdir "build")
2999 (every (lambda (font)
3000 (format #t "building font ~a\n" font)
d5fb4a3a
EF
3001 (invoke "mf" "-progname=mf"
3002 "-output-directory=build"
3003 (string-append "\\"
3004 "mode:=ljfour; "
3005 "mag:=1; "
3006 "batchmode; "
3007 "input " (basename font ".mf"))))
f45a5520
RW
3008 (find-files "." "[0-9]+\\.mf$"))))
3009 (replace 'install
3010 (lambda* (#:key outputs #:allow-other-keys)
3011 (let* ((out (assoc-ref outputs "out"))
3012 (tfm (string-append
3013 out "/share/texmf-dist/fonts/tfm/public/rsfs"))
3014 (mf (string-append
3015 out "/share/texmf-dist/fonts/source/public/rsfs")))
3016 (for-each (cut install-file <> tfm)
3017 (find-files "build" "\\.*"))
3018 (for-each (cut install-file <> mf)
3019 (find-files "." "\\.mf"))
3020 #t))))))
3021 (native-inputs
3022 `(("texlive-bin" ,texlive-bin)
3023 ("texlive-metafont-base" ,texlive-metafont-base)
3024 ("texlive-fonts-cm" ,texlive-fonts-cm)))
b8d8806b 3025 (home-page "https://www.ctan.org/pkg/rsfs")
f45a5520
RW
3026 (synopsis "Ralph Smith's Formal Script font")
3027 (description
3028 "The fonts provide uppercase formal script letters for use as symbols in
3029scientific and mathematical typesetting (in contrast to the informal script
3030fonts such as that used for the calligraphic symbols in the TeX maths symbol
3031font). The fonts are provided as Metafont source, and as derived Adobe Type 1
3032format. LaTeX support, for using these fonts in mathematics, is available via
3033one of the packages @code{calrsfs} and @code{mathrsfs}.")
3034 (license (license:fsf-free "http://mirrors.ctan.org/fonts/rsfs/README"))))
3035
1562763c
RW
3036(define-public texlive-latex-eso-pic
3037 (package
3038 (name "texlive-latex-eso-pic")
3039 (version (number->string %texlive-revision))
3040 (source (origin
3041 (method svn-fetch)
3042 (uri (texlive-ref "latex" "eso-pic"))
2678a63b 3043 (file-name (string-append name "-" version "-checkout"))
1562763c
RW
3044 (sha256
3045 (base32
3046 "1xvmms28mvvfpks9x7lfya2xhh5k8jy3qnlih1mzcnf156xnb89z"))))
3047 (build-system texlive-build-system)
3048 (arguments '(#:tex-directory "latex/eso-pic"))
b8d8806b 3049 (home-page "https://www.ctan.org/pkg/eso-pic")
1562763c
RW
3050 (synopsis "Add picture commands (or backgrounds) to every page")
3051 (description
3052 "The package adds one or more user commands to LaTeX's @code{shipout}
3053routine, which may be used to place the output at fixed positions. The
3054@code{grid} option may be used to find the correct places.")
3055 (license license:lppl1.3+)))
3056
ae3779d5
RW
3057(define-public texlive-latex-eepic
3058 (package
3059 (name "texlive-latex-eepic")
3060 (version (number->string %texlive-revision))
3061 (source (origin
3062 (method svn-fetch)
3063 (uri (svn-reference
3064 (url (string-append "svn://www.tug.org/texlive/tags/"
3065 %texlive-tag "/Master/texmf-dist/"
3066 "/tex/latex/eepic"))
3067 (revision %texlive-revision)))
84d63643 3068 (file-name (string-append name "-" version "-checkout"))
ae3779d5
RW
3069 (sha256
3070 (base32
3071 "1c68gvh021pvybg07apsd2xhq2ljbg80kq94wh71drdga3c2zqjw"))))
3072 (build-system trivial-build-system)
3073 (arguments
3074 `(#:modules ((guix build utils))
3075 #:builder
3076 (begin
3077 (use-modules (guix build utils))
3078 (let ((target (string-append (assoc-ref %outputs "out")
3079 "/share/texmf-dist/tex/latex/eepic")))
3080 (mkdir-p target)
3081 (copy-recursively (assoc-ref %build-inputs "source") target)
3082 #t))))
b8d8806b 3083 (home-page "https://www.ctan.org/pkg/eepic")
ae3779d5
RW
3084 (synopsis "Extensions to epic and the LaTeX drawing tools")
3085 (description
3086 "Extensions to @code{epic} and the LaTeX picture drawing environment,
3087include the drawing of lines at any slope, the drawing of circles in any
3088radii, and the drawing of dotted and dashed lines much faster with much less
3089TeX memory, and providing several new commands for drawing ellipses, arcs,
3090splines, and filled circles and ellipses. The package uses @code{tpic}
3091@code{\\special} commands.")
3092 (license license:public-domain)))
3093
245f1f31
RW
3094(define-public texlive-latex-enumitem
3095 (package
3096 (name "texlive-latex-enumitem")
3097 (version (number->string %texlive-revision))
3098 (source (origin
3099 (method svn-fetch)
3100 (uri (svn-reference
3101 (url (string-append "svn://www.tug.org/texlive/tags/"
3102 %texlive-tag "/Master/texmf-dist/"
3103 "/tex/latex/enumitem"))
3104 (revision %texlive-revision)))
3105 (file-name (string-append name "-" version "-checkout"))
3106 (sha256
3107 (base32
3108 "0q24b1bkdi9l6bw787bpggww83jh2vj8955aw2m5yccqbx4vgr5r"))))
3109 (build-system trivial-build-system)
3110 (arguments
3111 `(#:modules ((guix build utils))
3112 #:builder
3113 (begin
3114 (use-modules (guix build utils))
3115 (let ((target (string-append (assoc-ref %outputs "out")
3116 "/share/texmf-dist/tex/latex/enumitem")))
3117 (mkdir-p target)
3118 (copy-recursively (assoc-ref %build-inputs "source") target)
3119 #t))))
b8d8806b 3120 (home-page "https://www.ctan.org/pkg/enumitem")
245f1f31
RW
3121 (synopsis "Customize basic list environments")
3122 (description
3123 "This package is intended to ease customizing the three basic list
3124environments: @code{enumerate}, @code{itemize} and @code{description}. It
3125extends their syntax to allow an optional argument where a set of parameters
3126in the form @code{key=value} are available, for example:
3127@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}.")
3128 (license license:lppl1.3+)))
3129
ecffeeb5
RW
3130(define-public texlive-latex-multirow
3131 (package
3132 (name "texlive-latex-multirow")
3133 (version (number->string %texlive-revision))
3134 (source (origin
3135 (method svn-fetch)
3136 (uri (texlive-ref "latex" "multirow"))
6a919804 3137 (file-name (string-append name "-" version "-checkout"))
ecffeeb5
RW
3138 (sha256
3139 (base32
3140 "0qlxy47f1f8plgch3jqfsnrdgpyz20sz46yp33i2jwvf9hvfczf0"))))
3141 (build-system texlive-build-system)
3142 (arguments '(#:tex-directory "latex/multirow"))
b8d8806b 3143 (home-page "https://www.ctan.org/pkg/multirow")
ecffeeb5
RW
3144 (synopsis "Create tabular cells spanning multiple rows")
3145 (description
3146 "The package provides tools for creating tabular cells spanning multiple
3147rows. It has a lot of flexibility, including an option for specifying an
3148entry at the \"natural\" width of its text.")
3149 (license license:lppl1.3+)))
3150
da38b235
RW
3151(define-public texlive-latex-overpic
3152 (package
3153 (name "texlive-latex-overpic")
3154 (version (number->string %texlive-revision))
3155 (source (origin
3156 (method svn-fetch)
3157 (uri (svn-reference
3158 (url (string-append "svn://www.tug.org/texlive/tags/"
3159 %texlive-tag "/Master/texmf-dist/"
3160 "/tex/latex/overpic"))
3161 (revision %texlive-revision)))
b2aef721 3162 (file-name (string-append name "-" version "-checkout"))
da38b235
RW
3163 (sha256
3164 (base32
3165 "0m29q9qdb00558b7g2i7iw6w62n5s46yx81j8m99qkv77magk4fm"))))
3166 (build-system trivial-build-system)
3167 (arguments
3168 `(#:modules ((guix build utils))
3169 #:builder
3170 (begin
3171 (use-modules (guix build utils))
3172 (let ((target (string-append (assoc-ref %outputs "out")
3173 "/share/texmf-dist/tex/latex/overpic")))
3174 (mkdir-p target)
3175 (copy-recursively (assoc-ref %build-inputs "source") target)
3176 #t))))
b8d8806b 3177 (home-page "https://www.ctan.org/pkg/overpic")
da38b235
RW
3178 (synopsis "Combine LaTeX commands over included graphics")
3179 (description
3180 "The @code{overpic} environment is a cross between the LaTeX
3181@code{picture} environment and the @code{\\includegraphics} command of
3182@code{graphicx}. The resulting picture environment has the same dimensions as
3183the included graphic. LaTeX commands can be placed on the graphic at defined
3184positions; a grid for orientation is available.")
3185 (license license:lppl1.0+)))
3186
e0d307d1
RW
3187(define-public texlive-latex-parskip
3188 (package
3189 (name "texlive-latex-parskip")
3190 (version (number->string %texlive-revision))
3191 (source (origin
3192 (method svn-fetch)
3193 (uri (svn-reference
3194 (url (string-append "svn://www.tug.org/texlive/tags/"
3195 %texlive-tag "/Master/texmf-dist/"
3196 "/tex/latex/parskip"))
3197 (revision %texlive-revision)))
3198 (file-name (string-append name "-" version "-checkout"))
3199 (sha256
3200 (base32
3201 "14r6h9hqb0qgccxj5l1208694fx8sb8avmgzps36lsbbpszl7i7m"))))
3202 (build-system trivial-build-system)
3203 (arguments
3204 `(#:modules ((guix build utils))
3205 #:builder
3206 (begin
3207 (use-modules (guix build utils))
3208 (let ((target (string-append (assoc-ref %outputs "out")
3209 "/share/texmf-dist/tex/latex/parskip")))
3210 (mkdir-p target)
3211 (copy-recursively (assoc-ref %build-inputs "source") target)
3212 #t))))
b8d8806b 3213 (home-page "https://www.ctan.org/pkg/parskip")
e0d307d1
RW
3214 (synopsis "Layout with zero \\parindent, non-zero \\parskip")
3215 (description
3216 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout
3217that is untidy; this package (though it is no substitute for a properly
3218designed class) helps alleviate this untidiness.")
3219 (license license:lppl)))
3220
adc02c70
RW
3221(define-public texlive-latex-pdfpages
3222 (package
3223 (name "texlive-latex-pdfpages")
3224 (version (number->string %texlive-revision))
3225 (source (origin
3226 (method svn-fetch)
3227 (uri (texlive-ref "latex" "pdfpages"))
7372ce18 3228 (file-name (string-append name "-" version "-checkout"))
adc02c70
RW
3229 (sha256
3230 (base32
3231 "06p5smfq66559ppdnmkl3hp8534x84ywbscimsiir4gllpya3i9h"))))
3232 (build-system texlive-build-system)
3233 (arguments '(#:tex-directory "latex/pdfpages"))
b8d8806b 3234 (home-page "https://www.ctan.org/pkg/pdfpages")
adc02c70
RW
3235 (synopsis "Include PDF documents in LaTeX")
3236 (description
3237 "This package simplifies the inclusion of external multi-page PDF
3238documents in LaTeX documents. Pages may be freely selected and it is possible
3239to put several logical pages onto each sheet of paper. Furthermore a lot of
3240hypertext features like hyperlinks and article threads are provided. The
3241package supports pdfTeX (pdfLaTeX) and VTeX. With VTeX it is even possible to
3242use this package to insert PostScript files, in addition to PDF files.")
3243 (license license:lppl1.3+)))
3244
d8fef6ea
RW
3245(define-public texlive-fonts-stmaryrd
3246 (package
3247 (name "texlive-fonts-stmaryrd")
3248 (version (number->string %texlive-revision))
3249 (source (origin
3250 (method svn-fetch)
3251 (uri (texlive-ref "fonts" "stmaryrd"))
19835372 3252 (file-name (string-append name "-" version "-checkout"))
d8fef6ea
RW
3253 (sha256
3254 (base32
3255 "08pn4ca3vl6qm9l3wm5h5iyjsrg411kkm1yana329xwg2j14s9n6"))))
3256 (build-system texlive-build-system)
3257 (arguments
3258 '(#:tex-directory "latex/stmaryrd"
3259 #:phases
3260 (modify-phases %standard-phases
3261 (add-after 'configure 'patch-ins
3262 (lambda _
3263 (substitute* "stmaryrd.ins"
3264 (("^%% LaTeX2e.*") "\\input docstrip\n")
3265 (("fontdef\\}\\}" line)
3266 (string-append line "\n\\endbatchfile")))
3267 #t)))))
b8d8806b 3268 (home-page "https://www.ctan.org/pkg/stmaryrd")
d8fef6ea
RW
3269 (synopsis "St Mary Road symbols for theoretical computer science")
3270 (description
3271 "The fonts were originally distributed as Metafont sources only, but
3272Adobe Type 1 versions are also now available. Macro support is provided for
3273use under LaTeX; the package supports the @code{only} option (provided by the
3274@code{somedefs} package) to restrict what is loaded, for those who don't need
3275the whole font.")
3276 (license license:lppl)))
3277
2db3a034
RW
3278(define-public texlive-latex-subfigure
3279 (package
3280 (name "texlive-latex-subfigure")
3281 (version (number->string %texlive-revision))
3282 (source (origin
3283 (method svn-fetch)
3284 (uri (texlive-ref "latex" "subfigure"))
e1834df6 3285 (file-name (string-append name "-" version "-checkout"))
2db3a034
RW
3286 (sha256
3287 (base32
3288 "15spcl5wb7w269qd6y596vp4yi8sa5ppcx8w4z2i9kyp02r3a0yb"))))
3289 (build-system texlive-build-system)
3290 (arguments '(#:tex-directory "latex/subfigure"))
b8d8806b 3291 (home-page "https://www.ctan.org/pkg/subfigure")
2db3a034
RW
3292 (synopsis "Figures divided into subfigures")
3293 (description
3294 "This (deprecated) package provides support for the manipulation and
3295reference of small or \"sub\" figures and tables within a single figure or
3296table environment. It is convenient to use this package when your subfigures
3297are to be separately captioned, referenced, or are to be included in the
3298List-of-Figures. A new @code{\\subfigure} command is introduced which can be
3299used inside a figure environment for each subfigure. An optional first
3300argument is used as the caption for that subfigure. The package is now
3301considered obsolete: it was superseded by @code{subfig}, but users may find
3302the more recent @code{subcaption} package more satisfactory.")
3303 (license license:lppl)))
3304
c73d0e9d
RW
3305(define-public texlive-latex-tabulary
3306 (package
3307 (name "texlive-latex-tabulary")
3308 (version (number->string %texlive-revision))
3309 (source (origin
3310 (method svn-fetch)
3311 (uri (texlive-ref "latex" "tabulary"))
3312 (file-name (string-append name "-" version "-checkout"))
3313 (sha256
3314 (base32
3315 "1adkdx2zkk42g82nqf57lv1nc1z7kwl13jmy8vpcsizsa0xdnx9n"))))
3316 (build-system texlive-build-system)
3317 (arguments '(#:tex-directory "latex/tabulary"))
b8d8806b 3318 (home-page "https://www.ctan.org/pkg/tabulary")
c73d0e9d
RW
3319 (synopsis "Tabular with variable width columns balanced")
3320 (description
3321 "The package defines a @code{tabular*}-like environment, @code{tabulary},
3322taking a \"total width\" argument as well as the column specifications. The
3323environment uses column types @code{L}, @code{C}, @code{R} and @code{J} for
3324variable width columns (@code{\\raggedright}, @code{\\centering},
3325@code{\\raggedleft}, and normally justified). In contrast to
3326@code{tabularx}'s @code{X} columns, the width of each column is weighted
3327according to the natural width of the widest cell in the column.")
3328 (license license:lppl)))
3329
e3088297
RW
3330(define-public texlive-latex-threeparttable
3331 (package
3332 (name "texlive-latex-threeparttable")
3333 (version (number->string %texlive-revision))
3334 (source (origin
3335 (method svn-fetch)
3336 (uri (svn-reference
3337 (url (string-append "svn://www.tug.org/texlive/tags/"
3338 %texlive-tag "/Master/texmf-dist/"
3339 "/tex/latex/threeparttable"))
3340 (revision %texlive-revision)))
d57e5d41 3341 (file-name (string-append name "-" version "-checkout"))
e3088297
RW
3342 (sha256
3343 (base32
3344 "10vy9k150w2lviw8h22s2mcykff38xci653m5823s2vv44pwbmzq"))))
3345 (build-system trivial-build-system)
3346 (arguments
3347 `(#:modules ((guix build utils))
3348 #:builder
3349 (begin
3350 (use-modules (guix build utils))
3351 (let ((target (string-append (assoc-ref %outputs "out")
3352 "/share/texmf-dist/tex/latex/threeparttable")))
3353 (mkdir-p target)
3354 (copy-recursively (assoc-ref %build-inputs "source") target)
3355 #t))))
b8d8806b 3356 (home-page "https://www.ctan.org/pkg/threeparttable")
e3088297
RW
3357 (synopsis "Tables with captions and notes all the same width")
3358 (description
3359 "This package facilitates tables with titles (captions) and notes. The
3360title and notes are given a width equal to the body of the table (a
3361@code{tabular} environment). By itself, a @code{threeparttable} does not
3362float, but you can put it in a @code{table} or a @code{table*} or some other
3363environment.")
3364 (license (license:fsf-free "file://threeparttable.sty"))))
3365
1b10d494
RW
3366(define-public texlive-fonts-txfonts
3367 (package
3368 (name "texlive-fonts-txfonts")
3369 (version (number->string %texlive-revision))
3370 (source (origin
3371 (method svn-fetch)
3372 (uri (svn-reference
3373 (url (string-append "svn://www.tug.org/texlive/tags/"
3374 %texlive-tag "/Master/texmf-dist/"
3375 "/tex/latex/txfonts"))
3376 (revision %texlive-revision)))
3377 (file-name (string-append name "-" version "-checkout"))
3378 (sha256
3379 (base32
3380 "0jl921qdphg8i7bkfprackn3xd4gmvxckc526nmzqsmahqkavgg2"))))
3381 (build-system trivial-build-system)
3382 (arguments
3383 `(#:modules ((guix build utils)
3384 (ice-9 match))
3385 #:builder
3386 (begin
3387 (use-modules (guix build utils)
3388 (ice-9 match))
3389 (let ((root (string-append (assoc-ref %outputs "out")
3390 "/share/texmf-dist/"))
3391 (pkgs '(("source" . "tex/latex/txfonts")
3392 ("txfonts-vf" . "fonts/tfm/public/txfonts")
3393 ("txfonts-afm" . "fonts/afm/public/txfonts")
3394 ("txfonts-tfm" . "fonts/tfm/public/txfonts")
3395 ("txfonts-type1" . "fonts/type1/public/txfonts")
3396 ("txfonts-enc" . "fonts/enc/dvips/txfonts")
3397 ("txfonts-map" . "fonts/map/dvips/txfonts"))))
3398 (for-each (match-lambda
3399 ((pkg . dir)
3400 (let ((target (string-append root dir)))
3401 (mkdir-p target)
3402 (copy-recursively (assoc-ref %build-inputs pkg)
3403 target))))
3404 pkgs)
3405 #t))))
3406 (native-inputs
3407 `(("txfonts-tfm"
3408 ,(origin
3409 (method svn-fetch)
3410 (uri (svn-reference
3411 (url (string-append "svn://www.tug.org/texlive/tags/"
3412 %texlive-tag "/Master/texmf-dist/"
3413 "/fonts/tfm/public/txfonts"))
3414 (revision %texlive-revision)))
3415 (file-name (string-append name "-tfm-" version "-checkout"))
3416 (sha256
3417 (base32
3418 "12ffmbrp48ap35qa3b4mi6ckif9q2vf7972jxh5dc1yzykhla2xv"))))
3419 ("txfonts-vf"
3420 ,(origin
3421 (method svn-fetch)
3422 (uri (svn-reference
3423 (url (string-append "svn://www.tug.org/texlive/tags/"
3424 %texlive-tag "/Master/texmf-dist/"
3425 "/fonts/vf/public/txfonts"))
3426 (revision %texlive-revision)))
3427 (file-name (string-append name "-vf-" version "-checkout"))
3428 (sha256
3429 (base32
3430 "04acyfdwvxpfx4l2xh2bpzdmpvwdf2pzbs7a236b0xckz2jvc1ci"))))
3431 ("txfonts-afm"
3432 ,(origin
3433 (method svn-fetch)
3434 (uri (svn-reference
3435 (url (string-append "svn://www.tug.org/texlive/tags/"
3436 %texlive-tag "/Master/texmf-dist/"
3437 "/fonts/afm/public/txfonts"))
3438 (revision %texlive-revision)))
3439 (file-name (string-append name "-afm-" version "-checkout"))
3440 (sha256
3441 (base32
3442 "1705klz51pnqzcs89s3521b84b6c89wlczflsh0vci66nl155yis"))))
3443 ("txfonts-type1"
3444 ,(origin
3445 (method svn-fetch)
3446 (uri (svn-reference
3447 (url (string-append "svn://www.tug.org/texlive/tags/"
3448 %texlive-tag "/Master/texmf-dist/"
3449 "/fonts/type1/public/txfonts"))
3450 (revision %texlive-revision)))
3451 (file-name (string-append name "-type1-" version "-checkout"))
3452 (sha256
3453 (base32
3454 "0ajwr7zb6ch3gxd0g8p2i4llhy2wr9a9saz6jq6hm6fxf4pgl5h3"))))
3455 ("txfonts-map"
3456 ,(origin
3457 (method svn-fetch)
3458 (uri (svn-reference
3459 (url (string-append "svn://www.tug.org/texlive/tags/"
3460 %texlive-tag "/Master/texmf-dist/"
3461 "/fonts/map/dvips/txfonts"))
3462 (revision %texlive-revision)))
3463 (file-name (string-append name "-map-" version "-checkout"))
3464 (sha256
3465 (base32
3466 "0kamr8a9x24jakas3v09dgv7kkpybj3i7qv4vz1iyypqr6kk1raj"))))
3467 ("txfonts-enc"
3468 ,(origin
3469 (method svn-fetch)
3470 (uri (svn-reference
3471 (url (string-append "svn://www.tug.org/texlive/tags/"
3472 %texlive-tag "/Master/texmf-dist/"
3473 "/fonts/enc/dvips/txfonts"))
3474 (revision %texlive-revision)))
3475 (file-name (string-append name "-enc-" version "-checkout"))
3476 (sha256
3477 (base32
3478 "1bal5fhw0xlhl37ayv8vlnqnsn1y82kadzfjhbgr223blspp4zsj"))))))
b8d8806b 3479 (home-page "https://www.ctan.org/pkg/threeparttable")
1b10d494
RW
3480 (synopsis "Times-like fonts in support of mathematics")
3481 (description
3482 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW
3483NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,
3484and TS1 encodings; maths alphabets using Times/URW Nimbus; maths fonts
3485providing all the symbols of the Computer Modern and AMS fonts, including all
3486the Greek capital letters from CMR; and additional maths fonts of various
3487other symbols.
3488
3489The set is complemented by a sans-serif set of text fonts, based on
3490Helvetica/NimbusSanL, and a monospace set.
3491
3492All the fonts are in Type 1 format (AFM and PFB files), and are supported by
3493TeX metrics (VF and TFM files) and macros for use with LaTeX.")
3494 ;; Any version of the GPL with font exception.
3495 (license license:gpl3+)))
3496
f9e0fcb2
RW
3497(define-public texlive-fonts-iwona
3498 (package
3499 (name "texlive-fonts-iwona")
3500 (version "0.995b")
3501 (source (origin
3502 (method url-fetch)
3503 (uri (string-append "http://jmn.pl/pliki/Iwona-tex-"
3504 (string-map (lambda (c)
3505 (if (char=? c #\.)
3506 #\_ c))
3507 version)
3508 ".zip"))
3509 (sha256
3510 (base32
3511 "13684iqx5granpc5rfvqnmyvdpgpbr1x9y7i7y7bcaq0qxv7ph1x"))))
3512 (build-system trivial-build-system)
3513 (arguments
3514 `(#:modules ((guix build utils))
3515 #:builder
3516 (begin
3517 (use-modules (guix build utils))
3518 (let ((target (string-append (assoc-ref %outputs "out")
3519 "/share/texmf-dist/"))
3520 (unzip (string-append (assoc-ref %build-inputs "unzip")
3521 "/bin/unzip")))
3522 (system* unzip (assoc-ref %build-inputs "source"))
3523 (mkdir-p target)
3524 (copy-recursively "iwona" target)))))
3525 (native-inputs
3526 `(("unzip" ,unzip)))
3527 (home-page "http://jmn.pl/en/kurier-i-iwona/")
3528 (synopsis "Sans-serif typeface for TeX")
3529 (description "Iwona is a two-element sans-serif typeface. It was created
3530as an alternative version of the Kurier typeface, which was designed in 1975
3531for a diploma in typeface design at the Warsaw Academy of Fine Arts under the
3532supervision of Roman Tomaszewski. Kurier was designed for linotype
3533typesetting of newspapers and similar periodicals. The Iwona fonts are an
3534alternative version of the Kurier fonts. The difference lies in the absence
3535of ink traps which typify the Kurier font.")
3536 (license license:gfl1.0)))
3537
acc620d6
RW
3538(define-public texlive-latex-titlesec
3539 (package
3540 (name "texlive-latex-titlesec")
3541 (version (number->string %texlive-revision))
3542 (source (origin
3543 (method svn-fetch)
3544 (uri (svn-reference
3545 (url (string-append "svn://www.tug.org/texlive/tags/"
3546 %texlive-tag "/Master/texmf-dist/"
3547 "/tex/latex/titlesec"))
3548 (revision %texlive-revision)))
0475e35c 3549 (file-name (string-append name "-" version "-checkout"))
acc620d6
RW
3550 (sha256
3551 (base32
3552 "04nmkhqx6jxcxx9a30zbcd5smxi5fd0cbp132bki7fnvhspnhg21"))))
3553 (build-system trivial-build-system)
3554 (arguments
3555 `(#:modules ((guix build utils))
3556 #:builder
3557 (begin
3558 (use-modules (guix build utils))
3559 (let ((target (string-append (assoc-ref %outputs "out")
3560 "/share/texmf-dist/tex/latex/titlesec")))
3561 (mkdir-p target)
3562 (copy-recursively (assoc-ref %build-inputs "source") target)
3563 #t))))
b8d8806b 3564 (home-page "https://www.ctan.org/pkg/titlesec")
acc620d6
RW
3565 (synopsis "Select alternative section titles")
3566 (description
3567 "This package provides an interface to sectioning commands for selection
3568from various title styles, e.g. for marginal titles and to change the font of
3569all headings with a single command, also providing simple one-step page
3570styles. It also includes a package to change the page styles when there are
3571floats in a page. You may assign headers/footers to individual floats, too.")
3572 (license license:lppl)))
3573
274e3d4f
RW
3574(define-public texlive-latex-type1cm
3575 (package
3576 (name "texlive-latex-type1cm")
3577 (version (number->string %texlive-revision))
3578 (source (origin
3579 (method svn-fetch)
3580 (uri (texlive-ref "latex" "type1cm"))
3581 (file-name (string-append name "-" version "-checkout"))
3582 (sha256
3583 (base32
3584 "1lvxrqfwcwa4p31zyfm80gr05v8c28xybv5ri79zi2ngz6834z12"))))
3585 (build-system texlive-build-system)
3586 (arguments '(#:tex-directory "latex/type1cm"))
b8d8806b 3587 (home-page "https://www.ctan.org/pkg/type1cm")
274e3d4f
RW
3588 (synopsis "Arbitrary size font selection in LaTeX")
3589 (description
3590 "LaTeX, by default, restricts the sizes at which you can use its default
3591computer modern fonts, to a fixed set of discrete sizes (effectively, a set
3592specified by Knuth). The @code{type1cm} package removes this restriction;
3593this is particularly useful when using scalable versions of the CM
3594fonts (Bakoma, or the versions from BSR/Y&Y, or True Type versions from Kinch,
3595PCTeX, etc.). In fact, since modern distributions will automatically generate
3596any bitmap font you might need, @code{type1cm} has wider application than just
36a17f05 3597those using scalable versions of the fonts. Note that the LaTeX distribution
274e3d4f
RW
3598now contains a package @code{fix-cm},f which performs the task of
3599@code{type1cm}, as well as doing the same job for T1- and TS1-encoded
3600@code{ec} fonts.")
3601 (license license:lppl)))
3602
406af0d6
RW
3603(define-public texlive-latex-lh
3604 (package
3605 (name "texlive-latex-lh")
3606 (version (number->string %texlive-revision))
3607 (source (origin
3608 (method svn-fetch)
3609 (uri (texlive-ref "latex" "lh"))
de20fd6a 3610 (file-name (string-append name "-" version "-checkout"))
406af0d6
RW
3611 (sha256
3612 (base32
3613 "00gdiwh3sfhh1iimjhpja7lm7k4vzqzql2irgwnpz94qvh25zwi5"))))
3614 (build-system texlive-build-system)
3615 (arguments '(#:tex-directory "latex/lh"))
b8d8806b 3616 (home-page "https://www.ctan.org/pkg/lh")
406af0d6
RW
3617 (synopsis "Cyrillic fonts that support LaTeX standard encodings")
3618 (description
3619 "The LH fonts address the problem of the wide variety of alphabets that
3620are written with Cyrillic-style characters. The fonts are the original basis
3621of the set of T2* and X2 encodings that are now used when LaTeX users need to
3622write in Cyrillic languages. Macro support in standard LaTeX encodings is
3623offered through the latex-cyrillic and t2 bundles, and the package itself
3624offers support for other (more traditional) encodings. The fonts, in the
3625standard T2* and X2 encodings are available in Adobe Type 1 format, in the
3626CM-Super family of fonts. The package also offers its own LaTeX support for
3627OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
3628 (license license:lppl)))
3629
44436def
RW
3630(define-public texlive-metapost
3631 (package
3632 (name "texlive-metapost")
3633 (version (number->string %texlive-revision))
3634 (source (origin
3635 (method svn-fetch)
3636 (uri (svn-reference
3637 (url (string-append "svn://www.tug.org/texlive/tags/"
3638 %texlive-tag "/Master/texmf-dist/"
3639 "/metapost"))
3640 (revision %texlive-revision)))
b4bb2750 3641 (file-name (string-append name "-" version "-checkout"))
44436def
RW
3642 (sha256
3643 (base32
3644 "03nvjddffiz796wll6axzmgfvynyciy2mqamv20qx252w71vwkwd"))))
3645 (build-system trivial-build-system)
3646 (arguments
3647 `(#:modules ((guix build utils))
3648 #:builder
3649 (begin
3650 (use-modules (guix build utils))
3651 (let ((target (string-append (assoc-ref %outputs "out")
3652 "/share/texmf-dist/metapost")))
3653 (mkdir-p target)
3654 (copy-recursively (assoc-ref %build-inputs "source") target)
3655 #t))))
b8d8806b 3656 (home-page "https://www.ctan.org/pkg/metapost")
44436def
RW
3657 (synopsis "Create scalable illustrations")
3658 (description
3659 "MetaPost uses a language based on that of Metafont to produce precise
3660technical illustrations. Its output is scalable PostScript or SVG, rather
3661than the bitmaps Metafont creates.")
3662 (license license:lppl)))
3663
9ff7161a
LC
3664(define-public texlive-latex-acmart
3665 (package
3666 (name "texlive-latex-acmart")
3667 (version "1.45")
3668 (source (origin
3669 (method svn-fetch)
3670 (uri (texlive-ref "latex" "acmart"))
3671 (sha256
3672 (base32
3673 "10zs8ga88ksypv1v4p6mynmfa7749q2hgxlr4shnwfjd9wrb421q"))
3674 (file-name (string-append name "-" version "-checkout"))))
3675 (build-system texlive-build-system)
3676 (arguments '(#:tex-directory "latex/acmart"))
b8d8806b 3677 (home-page "https://www.ctan.org/pkg/acmart")
9ff7161a
LC
3678 (synopsis "Class for typesetting publications of ACM")
3679 (description
3680 "This package provides a class for typesetting publications of the
3681Association for Computing Machinery (ACM).")
3682 (license license:lppl1.3+)))
3683
3966ebbb
RW
3684(define-public texlive-latex-varwidth
3685 (package
3686 (name "texlive-latex-varwidth")
3687 (version (number->string %texlive-revision))
3688 (source (origin
3689 (method svn-fetch)
3690 (uri (svn-reference
3691 (url (string-append "svn://www.tug.org/texlive/tags/"
3692 %texlive-tag "/Master/texmf-dist/"
3693 "/tex/latex/varwidth"))
3694 (revision %texlive-revision)))
3695 (file-name (string-append name "-" version "-checkout"))
3696 (sha256
3697 (base32
3698 "1bmz9ap0ffyg7qry2xi7lki06qx4809w028xvk88cl66h7p46g52"))))
3699 (build-system trivial-build-system)
3700 (arguments
3701 `(#:modules ((guix build utils))
3702 #:builder
3703 (begin
3704 (use-modules (guix build utils))
3705 (let ((target (string-append (assoc-ref %outputs "out")
3706 "/share/texmf-dist/tex/latex/varwidth")))
3707 (mkdir-p target)
3708 (copy-recursively (assoc-ref %build-inputs "source") target)
3709 #t))))
b8d8806b 3710 (home-page "https://www.ctan.org/pkg/varwidth")
3966ebbb
RW
3711 (synopsis "Variable-width minipage")
3712 (description
3713 "The @code{varwidth} environment is superficially similar to
3714@code{minipage}, but the specified width is just a maximum value — the box may
3715get a narrower “natural” width.")
3716 (license license:lppl)))
3717
cd2c77f4
RW
3718(define-public texlive-latex-wasysym
3719 (package
3720 (name "texlive-latex-wasysym")
3721 (version (number->string %texlive-revision))
3722 (source (origin
3723 (method svn-fetch)
3724 (uri (texlive-ref "latex" "wasysym"))
2cc9c011 3725 (file-name (string-append name "-" version "-checkout"))
cd2c77f4
RW
3726 (sha256
3727 (base32
3728 "1sgwbfwjjf70g54hh93gsd9jp9nm67w6n74x9d72a56n07jbk5hv"))))
3729 (build-system texlive-build-system)
3730 (arguments '(#:tex-directory "latex/wasysym"))
b8d8806b 3731 (home-page "https://www.ctan.org/pkg/wasysym")
cd2c77f4
RW
3732 (synopsis "LaTeX support file to use the WASY2 fonts")
3733 (description
3734 "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs
3735like male and female symbols and astronomical symbols, as well as the complete
3736lasy font set and other odds and ends. The wasysym package implements an easy
3737to use interface for these symbols.")
3738 (license license:lppl)))
3739
63ed869b
RW
3740(define-public texlive-latex-wrapfig
3741 (package
3742 (name "texlive-latex-wrapfig")
3743 (version (number->string %texlive-revision))
3744 (source (origin
3745 (method svn-fetch)
3746 (uri (svn-reference
3747 (url (string-append "svn://www.tug.org/texlive/tags/"
3748 %texlive-tag "/Master/texmf-dist/"
3749 "/tex/latex/wrapfig"))
3750 (revision %texlive-revision)))
3751 (file-name (string-append name "-" version "-checkout"))
3752 (sha256
3753 (base32
3754 "16xpyl0csmmwndz1xhzqfg9l0zcsnqxslsixsqkwd4zsvfj30sv4"))))
3755 (build-system trivial-build-system)
3756 (arguments
3757 `(#:modules ((guix build utils))
3758 #:builder
3759 (begin
3760 (use-modules (guix build utils))
3761 (let ((target (string-append (assoc-ref %outputs "out")
3762 "/share/texmf-dist/tex/latex/wrapfig")))
3763 (mkdir-p target)
3764 (copy-recursively (assoc-ref %build-inputs "source") target)
3765 #t))))
b8d8806b 3766 (home-page "https://www.ctan.org/pkg/wrapfig")
63ed869b
RW
3767 (synopsis "Produces figures which text can flow around")
3768 (description
3769 "This package allows figures or tables to have text wrapped around them.
3770It does not work in combination with list environments, but can be used in a
3771@code{parbox} or @code{minipage}, and in two-column format.")
3772 (license license:lppl)))
3773
c178ffca
RW
3774(define-public texlive-latex-ucs
3775 (package
3776 (name "texlive-latex-ucs")
3777 (version (number->string %texlive-revision))
3778 (source (origin
3779 (method svn-fetch)
3780 (uri (svn-reference
3781 (url (string-append "svn://www.tug.org/texlive/tags/"
3782 %texlive-tag "/Master/texmf-dist/"
3783 "/tex/latex/ucs"))
3784 (revision %texlive-revision)))
3785 (file-name (string-append name "-" version "-checkout"))
3786 (sha256
3787 (base32
3788 "0rrxwi60wmz5dfjifl4fwk66plf7wix85qnhfv4ylvmj6qi6hw37"))))
3789 (build-system trivial-build-system)
3790 (arguments
3791 `(#:modules ((guix build utils))
3792 #:builder
3793 (begin
3794 (use-modules (guix build utils))
3795 (let ((target (string-append (assoc-ref %outputs "out")
3796 "/share/texmf-dist/tex/latex/ucs")))
3797 (mkdir-p target)
3798 (copy-recursively (assoc-ref %build-inputs "source") target)
3799 #t))))
b8d8806b 3800 (home-page "https://www.ctan.org/pkg/ucs")
c178ffca
RW
3801 (synopsis "Extended UTF-8 input encoding support for LaTeX")
3802 (description
3803 "The bundle provides the @code{ucs} package, and @code{utf8x.def},
3804together with a large number of support files. The @code{utf8x.def}
3805definition file for use with @code{inputenc} covers a wider range of Unicode
3806characters than does @code{utf8.def} in the LaTeX distribution. The package
3807provides facilities for efficient use of its large sets of Unicode characters.
3808Glyph production may be controlled by various options, which permits use of
3809non-ASCII characters when coding mathematical formulae. Note that the bundle
3810previously had an alias “unicode”; that alias has now been withdrawn, and no
3811package of that name now exists.")
3812 (license license:lppl1.3+)))
3813
86af0f2a
RW
3814(define-public texlive-latex-preview
3815 (package
3816 (name "texlive-latex-preview")
3817 (version (number->string %texlive-revision))
3818 (source (origin
3819 (method svn-fetch)
3820 (uri (texlive-ref "latex" "preview"))
3821 (file-name (string-append name "-" version "-checkout"))
3822 (sha256
3823 (base32
3824 "0j6fff6q0ca96nwfdgay2jm55792z4q9aa0rczmiw2qccyg5n2dv"))))
3825 (build-system texlive-build-system)
3826 (arguments
3827 '(#:tex-directory "latex/preview"
3828 #:phases
3829 (modify-phases %standard-phases
3830 (add-after 'unpack 'remove-generated-file
3831 (lambda _
3832 (delete-file "preview.drv")
3833 #t)))))
b8d8806b 3834 (home-page "https://www.ctan.org/pkg/preview")
86af0f2a
RW
3835 (synopsis "Extract bits of a LaTeX source for output")
3836 (description
3837 "The main purpose of the preview package is the extraction of selected
3838elements from a LaTeX source, like formulas or graphics, into separate
3839pages of a DVI file. A flexible and convenient interface allows it to
3840specify what commands and constructs should be extracted. This works
3841with DVI files postprocessed by either Dvips and Ghostscript or
3842dvipng, but it also works when you are using PDFTeX for generating PDF
3843files.")
3844 (license license:gpl3+)))
3845
87b4360e
RW
3846(define-public texlive-latex-acronym
3847 (package
3848 (name "texlive-latex-acronym")
3849 (version (number->string %texlive-revision))
3850 (source (origin
3851 (method svn-fetch)
3852 (uri (texlive-ref "latex" "acronym"))
3853 (file-name (string-append name "-" version "-checkout"))
3854 (sha256
3855 (base32
3856 "0jmasg40bk53zdd2jc8nc18jvdai3p2wmamy7hwli8gls4nf25qp"))))
3857 (build-system texlive-build-system)
3858 (arguments '(#:tex-directory "latex/acronym"))
b8d8806b 3859 (home-page "https://www.ctan.org/pkg/acronym")
87b4360e
RW
3860 (synopsis "Expand acronyms at least once")
3861 (description
3862 "This package ensures that all acronyms used in the text are spelled out
3863in full at least once. It also provides an environment to build a list of
3864acronyms used. The package is compatible with PDF bookmarks. The package
3865requires the suffix package, which in turn requires that it runs under
3866e-TeX.")
3867 (license license:lppl1.3+)))
3868
fedb80ee
RW
3869(define-public texlive-generic-pdftex
3870 (package
3871 (name "texlive-generic-pdftex")
3872 (version (number->string %texlive-revision))
3873 (source (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/generic/pdftex"))
3879 (revision %texlive-revision)))
66e765a0 3880 (file-name (string-append name "-" version "-checkout"))
fedb80ee
RW
3881 (sha256
3882 (base32
3883 "0k68zmqzs4qvrqxdwsrawbjb14hxqjfamq649azvai0jjxdpkljd"))))
3884 (build-system trivial-build-system)
3885 (arguments
3886 `(#:modules ((guix build utils))
3887 #:builder
3888 (begin
3889 (use-modules (guix build utils))
3890 (let ((target (string-append (assoc-ref %outputs "out")
3891 "/share/texmf-dist/tex/generic/pdftex")))
3892 (mkdir-p target)
3893 (copy-recursively (assoc-ref %build-inputs "source") target)
3894 #t))))
b8d8806b 3895 (home-page "https://www.ctan.org/pkg/pdftex")
fedb80ee
RW
3896 (synopsis "TeX extension for direct creation of PDF")
3897 (description
3898 "This package provides an extension of TeX which can be configured to
3899directly generate PDF documents instead of DVI.")
3900 (license license:gpl2+)))
3901
8bcdc23f 3902(define texlive-texmf
0aa34e82
AE
3903 (package
3904 (name "texlive-texmf")
149f6688 3905 (version "2017")
0aa34e82
AE
3906 (source texlive-texmf-src)
3907 (build-system gnu-build-system)
3908 (inputs
3909 `(("texlive-bin" ,texlive-bin)
3910 ("lua" ,lua)
3911 ("perl" ,perl)
3912 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
3913 ("ruby" ,ruby)
3914 ("tcsh" ,tcsh)))
3915 (arguments
3916 `(#:modules ((guix build gnu-build-system)
3917 (guix build utils)
3918 (srfi srfi-26))
a348af40
LC
3919
3920 ;; This package takes 4 GiB, which we can't afford to distribute from
3921 ;; our servers.
3922 #:substitutable? #f
3923
0aa34e82 3924 #:phases
4a6635f3
AE
3925 (modify-phases (map (cut assq <> %standard-phases)
3926 '(set-paths unpack patch-source-shebangs))
3927 (add-after 'patch-source-shebangs 'install
3928 (lambda* (#:key outputs #:allow-other-keys)
3929 (let ((share (string-append (assoc-ref outputs "out") "/share")))
3930 (mkdir-p share)
3931 (system* "mv" "texmf-dist" share))))
3932 (add-after 'install 'texmf-config
3933 (lambda* (#:key inputs outputs #:allow-other-keys)
3934 (let* ((out (assoc-ref outputs "out"))
3935 (share (string-append out "/share"))
3936 (texmfroot (string-append share "/texmf-dist/web2c"))
3937 (texmfcnf (string-append texmfroot "/texmf.cnf"))
3938 (texlive-bin (assoc-ref inputs "texlive-bin"))
3939 (texbin (string-append texlive-bin "/bin"))
3940 (tlpkg (string-append texlive-bin "/share/tlpkg")))
3941 ;; Register SHARE as TEXMFROOT in texmf.cnf.
3942 (substitute* texmfcnf
3943 (("TEXMFROOT = \\$SELFAUTOPARENT")
2d634d9b
FB
3944 (string-append "TEXMFROOT = " share))
3945 (("TEXMFLOCAL = \\$SELFAUTOGRANDPARENT/texmf-local")
3946 "TEXMFLOCAL = $SELFAUTODIR/share/texmf-local")
3947 (("!!\\$TEXMFLOCAL") "$TEXMFLOCAL"))
4a6635f3
AE
3948 ;; Register paths in texmfcnf.lua, needed for context.
3949 (substitute* (string-append texmfroot "/texmfcnf.lua")
3950 (("selfautodir:") out)
3951 (("selfautoparent:") (string-append share "/")))
3952 ;; Set path to TeXLive Perl modules
3953 (setenv "PERL5LIB"
3954 (string-append (getenv "PERL5LIB") ":" tlpkg))
3955 ;; Configure the texmf-dist tree; inspired from
3956 ;; http://slackbuilds.org/repository/13.37/office/texlive/
3957 (setenv "PATH" (string-append (getenv "PATH") ":" texbin))
3958 (setenv "TEXMFCNF" texmfroot)
3959 (system* "updmap-sys" "--nohash" "--syncwithtrees")
3960 (system* "mktexlsr")
3961 (system* "fmtutil-sys" "--all")))))))
7a15a68f 3962 (properties `((max-silent-time . 9600))) ; don't time out while grafting
0aa34e82 3963 (synopsis "TeX Live, a package of the TeX typesetting system")
eb0119ef
AE
3964 (description
3965 "TeX Live provides a comprehensive TeX document production system.
3966It includes all the major TeX-related programs, macro packages, and fonts
3967that are free software, including support for many languages around the
0aa34e82
AE
3968world.
3969
3970This package contains the complete tree of texmf-dist data.")
132e14b4
EF
3971 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
3972 (home-page "https://www.tug.org/texlive/")))
0aa34e82
AE
3973
3974(define-public texlive
3975 (package
3976 (name "texlive")
149f6688 3977 (version "2017")
0aa34e82
AE
3978 (source #f)
3979 (build-system trivial-build-system)
3980 (inputs `(("bash" ,bash) ; for wrap-program
3981 ("texlive-bin" ,texlive-bin)
3982 ("texlive-texmf" ,texlive-texmf)))
2d634d9b
FB
3983 (native-search-paths
3984 (list (search-path-specification
3985 (variable "TEXMFLOCAL")
3986 (files '("share/texmf-local")))))
0aa34e82
AE
3987 (arguments
3988 `(#:modules ((guix build utils))
3989 #:builder
3990 ;; Build the union of texlive-bin and texlive-texmf, but take the
3991 ;; conflicting subdirectory share/texmf-dist from texlive-texmf.
3992 (begin
3993 (use-modules (guix build utils))
3994 (let ((out (assoc-ref %outputs "out"))
3995 (bin (assoc-ref %build-inputs "texlive-bin"))
3996 (texmf (assoc-ref %build-inputs "texlive-texmf"))
3997 (bash (assoc-ref %build-inputs "bash")))
3998 (mkdir out)
3999 (with-directory-excursion out
4000 (for-each
4001 (lambda (name)
4002 (symlink (string-append bin "/" name) name))
4003 '("include" "lib"))
4004 (mkdir "bin")
4005 (with-directory-excursion "bin"
4006 (setenv "PATH" (string-append bash "/bin"))
4007 (for-each
4008 (lambda (name)
4009 (symlink name (basename name))
4010 (wrap-program
4011 (basename name)
4012 `("TEXMFCNF" =
4013 (,(string-append texmf "/share/texmf-dist/web2c")))))
4014 (find-files (string-append bin "/bin/") "")))
4015 (mkdir "share")
4016 (with-directory-excursion "share"
4017 (for-each
4018 (lambda (name)
4019 (symlink (string-append bin "/share/" name) name))
4020 '("info" "man" "tlpkg"))
4021 (for-each
4022 (lambda (name)
4023 (symlink (string-append texmf "/share/" name) name))
4024 '("texmf-dist" "texmf-var"))))))))
4025 (synopsis "TeX Live, a package of the TeX typesetting system")
4026 (description
4027 "TeX Live provides a comprehensive TeX document production system.
4028It includes all the major TeX-related programs, macro packages, and fonts
4029that are free software, including support for many languages around the
4030world.
4031
4032This package contains the complete TeX Live distribution.")
132e14b4
EF
4033 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
4034 (home-page "https://www.tug.org/texlive/")))
231eae53 4035
ebcf74da
RW
4036(define-public perl-text-bibtex
4037 (package
4038 (name "perl-text-bibtex")
a2460e0f 4039 (version "0.85")
ebcf74da
RW
4040 (source
4041 (origin
4042 (method url-fetch)
4043 (uri (string-append "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-"
4044 version ".tar.gz"))
4045 (sha256
4046 (base32
a2460e0f 4047 "036kxgbn1jf70pfm2lmjlzjwnhbkd888fp5lyvmkjpdd15gla18h"))))
ebcf74da
RW
4048 (build-system perl-build-system)
4049 (arguments
4050 `(#:phases
4051 (modify-phases %standard-phases
4052 (add-after 'unpack 'add-output-directory-to-rpath
4053 (lambda* (#:key outputs #:allow-other-keys)
4054 (substitute* "inc/MyBuilder.pm"
4055 (("-Lbtparse" line)
4056 (string-append "-Wl,-rpath="
4057 (assoc-ref outputs "out") "/lib " line)))
4058 #t))
4059 (add-after 'unpack 'install-libraries-to-/lib
4060 (lambda* (#:key outputs #:allow-other-keys)
4061 (substitute* "Build.PL"
4062 (("lib64") "lib"))
4063 #t)))))
4064 (native-inputs
4065 `(("perl-capture-tiny" ,perl-capture-tiny)
4066 ("perl-config-autoconf" ,perl-config-autoconf)
4067 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
4068 ("perl-module-build" ,perl-module-build)))
4069 (home-page "http://search.cpan.org/dist/Text-BibTeX")
4070 (synopsis "Interface to read and parse BibTeX files")
4071 (description "@code{Text::BibTeX} is a Perl library for reading, parsing,
4072and processing BibTeX files. @code{Text::BibTeX} gives you access to the data
4073at many different levels: you may work with BibTeX entries as simple field to
4074string mappings, or get at the original form of the data as a list of simple
4075values (strings, macros, or numbers) pasted together.")
2f3108ad 4076 (license license:perl-license)))
ebcf74da 4077
d4000680
RW
4078(define-public biber
4079 (package
1335167a 4080 (name "biber")
6484e82d 4081 (version "2.7")
d4000680
RW
4082 (source (origin
4083 (method url-fetch)
4084 (uri (string-append "https://github.com/plk/biber/archive/v"
4085 version ".tar.gz"))
4086 (file-name (string-append name "-" version ".tar.gz"))
4087 (sha256
4088 (base32
6484e82d 4089 "17wd80jg98qyddhvz4cin8779ycvppaf2va77r1lyvymjz6w9bx0"))))
d4000680
RW
4090 (build-system perl-build-system)
4091 (arguments
4092 `(#:phases
4093 (modify-phases %standard-phases
4094 (add-after 'install 'wrap-programs
4095 (lambda* (#:key outputs #:allow-other-keys)
4096 (let* ((out (assoc-ref outputs "out"))
4097 (perl5lib (getenv "PERL5LIB")))
4098 (wrap-program (string-append out "/bin/biber")
4099 `("PERL5LIB" ":" prefix
4100 (,(string-append perl5lib ":" out
4101 "/lib/perl5/site_perl")))))
4102 #t)))))
4103 (inputs
4104 `(("perl-autovivification" ,perl-autovivification)
4105 ("perl-class-accessor" ,perl-class-accessor)
4106 ("perl-data-dump" ,perl-data-dump)
4107 ("perl-data-compare" ,perl-data-compare)
4108 ("perl-data-uniqid" ,perl-data-uniqid)
4109 ("perl-datetime-format-builder" ,perl-datetime-format-builder)
4110 ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
4111 ("perl-file-slurp" ,perl-file-slurp)
4112 ("perl-ipc-cmd" ,perl-ipc-cmd)
4113 ("perl-ipc-run3" ,perl-ipc-run3)
4114 ("perl-list-allutils" ,perl-list-allutils)
4115 ("perl-list-moreutils" ,perl-list-moreutils)
4116 ("perl-mozilla-ca" ,perl-mozilla-ca)
4117 ("perl-regexp-common" ,perl-regexp-common)
4118 ("perl-log-log4perl" ,perl-log-log4perl)
4119 ;; We cannot use perl-unicode-collate here, because otherwise the
4120 ;; hardcoded hashes in the tests would differ. See
4121 ;; https://mail-archive.com/debian-bugs-dist@lists.debian.org/msg1469249.html
4122 ;;("perl-unicode-collate" ,perl-unicode-collate)
4123 ("perl-unicode-normalize" ,perl-unicode-normalize)
4124 ("perl-unicode-linebreak" ,perl-unicode-linebreak)
4125 ("perl-encode-eucjpascii" ,perl-encode-eucjpascii)
4126 ("perl-encode-jis2k" ,perl-encode-jis2k)
4127 ("perl-encode-hanextra" ,perl-encode-hanextra)
4128 ("perl-xml-libxml" ,perl-xml-libxml)
4129 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)
4130 ("perl-xml-libxslt" ,perl-xml-libxslt)
4131 ("perl-xml-writer" ,perl-xml-writer)
4132 ("perl-sort-key" ,perl-sort-key)
4133 ("perl-text-csv" ,perl-text-csv)
4134 ("perl-text-csv-xs" ,perl-text-csv-xs)
4135 ("perl-text-roman" ,perl-text-roman)
4136 ("perl-uri" ,perl-uri)
4137 ("perl-text-bibtex" ,perl-text-bibtex)
4138 ("perl-libwww" ,perl-libwww)
4139 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
4140 ("perl-business-isbn" ,perl-business-isbn)
4141 ("perl-business-issn" ,perl-business-issn)
4142 ("perl-business-ismn" ,perl-business-ismn)
4143 ("perl-lingua-translit" ,perl-lingua-translit)))
4144 (native-inputs
4145 `(("perl-config-autoconf" ,perl-config-autoconf)
4146 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
4147 ("perl-module-build" ,perl-module-build)
4148 ;; for tests
4149 ("perl-file-which" ,perl-file-which)
4150 ("perl-test-more" ,perl-test-most) ; FIXME: "more" would be sufficient
4151 ("perl-test-differences" ,perl-test-differences)))
4152 (home-page "http://biblatex-biber.sourceforge.net/")
4153 (synopsis "Backend for the BibLaTeX citation management tool")
4154 (description "Biber is a BibTeX replacement for users of biblatex. Among
4155other things it comes with full Unicode support.")
4156 (license license:artistic2.0)))
4157
231eae53
LC
4158(define-public rubber
4159 (package
4160 (name "rubber")
4161 (version "1.1")
4162 (source (origin
4163 (method url-fetch)
4164 (uri (list (string-append "https://launchpad.net/rubber/trunk/"
4165 version "/+download/rubber-"
4166 version ".tar.gz")
4167 (string-append "http://ebeffara.free.fr/pub/rubber-"
4168 version ".tar.gz")))
4169 (sha256
4170 (base32
4171 "1xbkv8ll889933gyi2a5hj7hhh216k04gn8fwz5lfv5iz8s34gbq"))))
4172 (build-system gnu-build-system)
4173 (arguments '(#:tests? #f)) ; no `check' target
4174 (inputs `(("texinfo" ,texinfo)
9bee5d6c 4175 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
231eae53
LC
4176 ("which" ,which)))
4177 (home-page "https://launchpad.net/rubber")
35b9e423 4178 (synopsis "Wrapper for LaTeX and friends")
231eae53
LC
4179 (description
4180 "Rubber is a program whose purpose is to handle all tasks related to the
4181compilation of LaTeX documents. This includes compiling the document itself,
4182of course, enough times so that all references are defined, and running BibTeX
4183to manage bibliographic references. Automatic execution of dvips to produce
4184PostScript documents is also included, as well as usage of pdfLaTeX to produce
4185PDF documents.")
4186 (license license:gpl2+)))
4791876c
RJ
4187
4188(define-public texmaker
4189 (package
4190 (name "texmaker")
4191 (version "4.5")
4192 (source (origin
4193 (method url-fetch)
4194 (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
4195 version ".tar.bz2"))
4196 (sha256
4197 (base32
4198 "056njk6j8wma23mlp7xa3rgfaxx0q8ynwx8wkmj7iy0b85p9ds9c"))))
4199 (build-system gnu-build-system)
4200 (arguments
4201 `(#:phases
4202 (modify-phases %standard-phases
4203 ;; Qt has its own configuration utility.
4204 (replace 'configure
4205 (lambda* (#:key outputs #:allow-other-keys)
4206 (let ((out (assoc-ref outputs "out")))
4207 (zero? (system* "qmake"
4208 (string-append "PREFIX=" out)
4209 (string-append "DESKTOPDIR=" out
4210 "/share/applications")
4211 (string-append "ICONDIR=" out "/share/pixmaps")
4212 "texmaker.pro"))))))))
4213 (inputs
4214 `(("poppler-qt5" ,poppler-qt5)
bd917486
TD
4215 ("qtbase" ,qtbase)
4216 ("qtscript" ,qtscript)
4217 ("qtwebkit" ,qtwebkit)
4791876c
RJ
4218 ("zlib" ,zlib)))
4219 (native-inputs
4220 `(("pkg-config" ,pkg-config)))
4221 (home-page "http://www.xm1math.net/texmaker/")
4222 (synopsis "LaTeX editor")
4223 (description "Texmaker is a program that integrates many tools needed to
4224develop documents with LaTeX, in a single application.")
4225 (license license:gpl2+)))
83457fe0
JD
4226
4227
4228(define-public teximpatient
4229 (package
4230 (name "teximpatient")
4231 (version "2.4")
4232 (source (origin
4233 (method url-fetch)
4234 (uri (string-append "mirror://gnu/" name "/" name "-"
4235 version ".tar.gz"))
4236 (sha256
4237 (base32
4238 "0h56w22d99dh4fgld4ssik8ggnmhmrrbnrn1lnxi1zr0miphn1sd"))))
4239 (build-system gnu-build-system)
4240 (arguments
4241 `(#:phases
4242 (modify-phases %standard-phases
4243 (delete 'check)
4244 ;; Unfortunately some mistakes have been made in packaging.
4245 ;; Work around them here ...
4246 (replace 'unpack
4247 (lambda* (#:key inputs outputs #:allow-other-keys)
4248 (let ((srcdir "teximpatient-2.4"))
4249 (system* "tar" "-xzf" (assoc-ref inputs "source")
4250 (string-append "--one-top-level=" srcdir))
4251 (delete-file (string-append srcdir "/book.pdf"))
4252 (install-file (car
4253 (find-files
4254 (assoc-ref inputs "automake")
4255 "^install-sh$"))
4256 srcdir)
4257 (chdir srcdir)))))))
4258 (native-inputs
4259 `(("texlive" ,texlive)
4260 ("automake" ,automake)))
6fd52309 4261 (home-page "https://www.gnu.org/software/teximpatient/")
83457fe0
JD
4262 (synopsis "Book on TeX, plain TeX and Eplain")
4263 (description "@i{TeX for the Impatient} is a ~350 page book on TeX,
4264plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,
4265and Karl Berry.")
4266 (license license:fdl1.3+)))