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