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