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