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