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