WIP: bees service
[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>
1a0f4013 6;;; Copyright © 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
2d634d9b 7;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
bd917486 8;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
cf4a56d7 9;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
149f6688 10;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
85892948 11;;; Copyright © 2017, 2020 Marius Bakke <mbakke@fastmail.com>
dac14efe 12;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
ec40a050 13;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
3d067528 14;;; Copyright © 2018, 2020 Arun Isaac <arunisaac@systemreboot.net>
5a46779e 15;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
13354b3f 16;;; Copyright © 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
2c12d73a 17;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
e9938dc8 18;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
eb0119ef
AE
19;;;
20;;; This file is part of GNU Guix.
21;;;
22;;; GNU Guix is free software; you can redistribute it and/or modify it
23;;; under the terms of the GNU General Public License as published by
24;;; the Free Software Foundation; either version 3 of the License, or (at
25;;; your option) any later version.
26;;;
27;;; GNU Guix is distributed in the hope that it will be useful, but
28;;; WITHOUT ANY WARRANTY; without even the implied warranty of
29;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30;;; GNU General Public License for more details.
31;;;
32;;; You should have received a copy of the GNU General Public License
33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
34
8f9ac901 35(define-module (gnu packages tex)
b5b73a82 36 #:use-module ((guix licenses) #:prefix license:)
eb0119ef
AE
37 #:use-module (guix packages)
38 #:use-module (guix download)
39 #:use-module (guix build-system gnu)
ebcf74da 40 #:use-module (guix build-system perl)
3d067528 41 #:use-module (guix build-system python)
e192b9e0 42 #:use-module (guix build-system qt)
0aa34e82 43 #:use-module (guix build-system trivial)
205794c8 44 #:use-module (guix build-system texlive)
6b5eb840 45 #:use-module (guix utils)
83457fe0 46 #:use-module (guix git-download)
9d913b25 47 #:use-module (guix svn-download)
eb0119ef 48 #:use-module (gnu packages)
ec40a050 49 #:use-module (gnu packages algebra)
83457fe0 50 #:use-module (gnu packages autotools)
0aa34e82 51 #:use-module (gnu packages bash)
ec40a050 52 #:use-module (gnu packages boost)
eb0119ef 53 #:use-module (gnu packages compression)
a86177d6 54 #:use-module (gnu packages fontutils)
fd89b36b 55 #:use-module (gnu packages gd)
eb0119ef 56 #:use-module (gnu packages ghostscript)
769bb5e5 57 #:use-module (gnu packages graphviz)
fd89b36b 58 #:use-module (gnu packages gtk)
eb0119ef 59 #:use-module (gnu packages icu4c)
e55354b8 60 #:use-module (gnu packages image)
ec40a050 61 #:use-module (gnu packages libreoffice)
0aa34e82 62 #:use-module (gnu packages lua)
0256c746 63 #:use-module (gnu packages multiprecision)
eb0119ef
AE
64 #:use-module (gnu packages pdf)
65 #:use-module (gnu packages perl)
5ccde207 66 #:use-module (gnu packages perl-check)
eb0119ef
AE
67 #:use-module (gnu packages pkg-config)
68 #:use-module (gnu packages python)
5327e912 69 #:use-module (gnu packages python-xyz)
4791876c 70 #:use-module (gnu packages qt)
b32c8549 71 #:use-module (gnu packages ruby)
b7194849 72 #:use-module (gnu packages shells)
ce0614dd 73 #:use-module (gnu packages base)
c87d8a14 74 #:use-module (gnu packages gawk)
d4000680
RW
75 #:use-module (gnu packages web)
76 #:use-module (gnu packages xml)
c0589f75 77 #:use-module (gnu packages xorg)
ece9b417 78 #:use-module (gnu packages xdisorg)
6a7c4636 79 #:use-module (gnu packages texinfo)
6b5eb840 80 #:use-module (ice-9 ftw)
cb7bc20a 81 #:use-module (ice-9 match)
e93f472d 82 #:use-module ((srfi srfi-1) #:hide (zip)))
eb0119ef 83
8ab600f8
RW
84(define* (simple-texlive-package name locations hash
85 #:key trivial?)
86 "Return a template for a simple TeX Live package with the given NAME,
87downloading from a list of LOCATIONS in the TeX Live repository, and expecting
88the provided output HASH. If TRIVIAL? is provided, all files will simply be
89copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
90 (define with-documentation?
91 (and trivial?
92 (any (lambda (location)
93 (string-prefix? "/doc" location))
94 locations)))
95 (package
96 (name name)
97 (version (number->string %texlive-revision))
98 (source (texlive-origin name version
99 locations hash))
100 (outputs (if with-documentation?
101 '("out" "doc")
102 '("out")))
103 (build-system (if trivial?
104 gnu-build-system
105 texlive-build-system))
106 (arguments
107 (let ((copy-files
108 `(lambda* (#:key outputs inputs #:allow-other-keys)
109 (let (,@(if with-documentation?
110 `((doc (string-append (assoc-ref outputs "doc")
111 "/share/texmf-dist/")))
112 '())
113 (out (string-append (assoc-ref outputs "out")
114 "/share/texmf-dist/")))
115 ,@(if with-documentation?
116 '((mkdir-p doc)
117 (copy-recursively
118 (string-append (assoc-ref inputs "source") "/doc")
119 (string-append doc "/doc")))
120 '())
121 (mkdir-p out)
122 (copy-recursively (assoc-ref inputs "source") out)
123 ,@(if with-documentation?
124 '((delete-file-recursively (string-append out "/doc")))
125 '())
126 #t))))
127 (if trivial?
128 `(#:tests? #f
129 #:phases
130 (modify-phases %standard-phases
131 (delete 'configure)
132 (replace 'build (const #t))
133 (replace 'install ,copy-files)))
134 `(#:phases
135 (modify-phases %standard-phases
136 (add-after 'install 'copy-files ,copy-files))))))
137 (home-page #f)
138 (synopsis #f)
139 (description #f)
140 (license #f)))
141
28e521e9
RW
142(define hyph-utf8-scripts
143 (origin
144 (method svn-fetch)
145 (uri (texlive-ref "generic" "hyph-utf8"))
146 (file-name (string-append "hyph-utf8-scripts-"
147 (number->string %texlive-revision)
148 "-checkout"))
149 (sha256
150 (base32
85892948 151 "0lk7shx768sxvgr85y8bnmmnj8x4bbkgpxrz3z8jp8avi33prw83"))))
28e521e9 152
cf4c07b9 153(define (texlive-hyphen-package name code locations hash)
85892948
MB
154 "Return a TeX Live hyphenation package with the given NAME, using source
155files from LOCATIONS with expected checksum HASH. CODE is not currently in use."
cf4c07b9
RW
156 (let ((parent (simple-texlive-package
157 name locations hash #:trivial? #t)))
158 (package
159 (inherit parent)
160 (arguments
161 (substitute-keyword-arguments (package-arguments parent)
cf4c07b9
RW
162 ((#:phases phases)
163 `(modify-phases ,phases
164 (replace 'build
165 (lambda* (#:key inputs outputs #:allow-other-keys)
166 (let* ((out (assoc-ref outputs "out"))
167 (root (string-append out "/share/texmf-dist"))
168 (patterns
169 (string-append root "/tex/generic/hyph-utf8/patterns/txt/"))
170 (loaders
171 (string-append root "/tex/generic/hyph-utf8/loadhyph"))
172 (ptex
173 (string-append root "/tex/generic/hyph-utf8/patterns/ptex"))
85892948
MB
174 (quote
175 (string-append root "/tex/generic/hyph-utf8/patterns/quote")))
cf4c07b9
RW
176 (mkdir "scripts")
177 (copy-recursively
178 (assoc-ref inputs "hyph-utf8-scripts") "scripts")
179
180 ;; Prepare target directories
181 (mkdir-p patterns)
182 (mkdir-p loaders)
183 (mkdir-p ptex)
85892948 184 (mkdir-p quote)
cf4c07b9
RW
185
186 ;; Generate plain patterns
187 (with-directory-excursion "scripts"
85892948
MB
188 (substitute* "lib/tex/hyphen/path.rb"
189 (("^([[:blank:]]+)TeXROOT = .*" _ indent)
190 (string-append indent "TeXROOT = \""
191 (getcwd) "/..\"\n")))
192
cf4c07b9
RW
193 (substitute* "generate-plain-patterns.rb"
194 ;; Ruby 2 does not need this.
195 (("require 'unicode'") "")
cf4c07b9 196 ;; Write directly to the output directory
85892948
MB
197 (("File\\.join\\(PATH::TXT")
198 (string-append "File.join(\"" patterns "\""))
199 (("File\\.join\\(PATH::QUOTE")
200 (string-append "File.join(\"" quote "\"")))
cf4c07b9
RW
201 (invoke "ruby" "generate-plain-patterns.rb")
202
203 ;; Build pattern loaders
204 (substitute* "generate-pattern-loaders.rb"
85892948
MB
205 (("File\\.join\\(PATH::LOADER")
206 (string-append "File.join(\"" loaders "\"")))
207
cf4c07b9
RW
208 (invoke "ruby" "generate-pattern-loaders.rb")
209
210 ;; Build ptex patterns
211 (substitute* "generate-ptex-patterns.rb"
85892948
MB
212 (("File\\.join\\(PATH::PTEX")
213 (string-append "File.join(\"" ptex "\"")))
cf4c07b9
RW
214 (invoke "ruby" "generate-ptex-patterns.rb")))))))))
215 (native-inputs
216 `(("ruby" ,ruby)
85892948 217 ("ruby-hydra" ,ruby-hydra)
cf4c07b9
RW
218 ("hyph-utf8-scripts" ,hyph-utf8-scripts)))
219 (home-page "https://ctan.org/pkg/hyph-utf8"))))
220
eb0119ef
AE
221(define texlive-extra-src
222 (origin
223 (method url-fetch)
1f2ef813 224 (uri "ftp://tug.org/historic/systems/texlive/2019/texlive-20190410-extra.tar.xz")
eb0119ef 225 (sha256 (base32
1f2ef813 226 "13ncf2an4nlqv18lki6y2p6pcsgs1i54zqkhfwprax5j53bk70j8"))))
eb0119ef
AE
227
228(define texlive-texmf-src
229 (origin
230 (method url-fetch)
85892948 231 (uri "ftp://tug.org/historic/systems/texlive/2019/texlive-20190410-texmf.tar.xz")
eb0119ef 232 (sha256 (base32
85892948 233 "00n4qh9fj8v9zzy3y488hpfq1g3dnnh72y4yjsaikfcqpi59gv62"))))
eb0119ef 234
3abe72bd 235(define-public texlive-bin
eb0119ef 236 (package
0aa34e82 237 (name "texlive-bin")
1f2ef813 238 (version "20190410")
0aa34e82
AE
239 (source
240 (origin
3e1ebaab 241 (method url-fetch)
1f2ef813 242 (uri (string-append "ftp://tug.org/historic/systems/texlive/2019/"
149f6688 243 "texlive-" version "-source.tar.xz"))
3e1ebaab
RW
244 (sha256
245 (base32
1f2ef813 246 "1dfps39q6bdr1zsbp9p74mvalmy3bycihv19sb9c6kg30kprz8nj"))
594156ec 247 (patches
0fa50555
MB
248 (let ((arch-patch
249 (lambda (name revision hash)
250 (origin
251 (method url-fetch)
252 (uri (string-append "https://git.archlinux.org/svntogit/packages.git"
253 "/plain/trunk/" name "?h=packages/texlive-bin"
254 "&id=" revision))
255 (file-name (string-append "texlive-bin-" name))
256 (sha256 (base32 hash)))))
1f2ef813
MB
257 (arch-revision "49d7fe25e5ea63f136ebc20270c1d8fc9b00041c"))
258 (list
259 (arch-patch "pdftex-poppler0.76.patch" arch-revision
260 "03vc88dz37mjjyaspzv0fik2fp5gp8qv82114869akd1dhszbaax")
261 (search-patch "texlive-bin-poppler-0.83.patch")
262 (arch-patch "texlive-poppler-0.84.patch" arch-revision
44a33ee9
MB
263 "1ia6cr99krk4ipx4hdi2qdb98bh2h26mckjlpxdzrjnfhlnghksa")
264 (search-patch "texlive-bin-poppler-0.86.patch"))))
928fc7c5
MB
265 (modules '((guix build utils)
266 (ice-9 ftw)))
267 (snippet
268 '(begin
269 (with-directory-excursion "libs"
270 (let ((preserved-directories '("." ".." "lua53" "luajit")))
271 ;; Delete bundled software, except Lua which cannot easily be
272 ;; used as an external dependency.
273 (for-each delete-file-recursively
274 (scandir "."
275 (lambda (file)
276 (and (not (member file preserved-directories))
277 (eq? 'directory (stat:type (stat file)))))))))
278 ;; TODO: Unbundle stuff in texk/dvisvgm/dvisvgm-src/libs too.
279 #t))))
eb0119ef 280 (build-system gnu-build-system)
0aa34e82
AE
281 (inputs
282 `(("texlive-extra-src" ,texlive-extra-src)
dfdc002c
RW
283 ("texlive-scripts"
284 ,(origin
285 (method svn-fetch)
286 (uri (svn-reference
287 (url (string-append "svn://www.tug.org/texlive/tags/"
288 %texlive-tag "/Master/texmf-dist/"
289 "/scripts/texlive"))
290 (revision %texlive-revision)))
291 (file-name (string-append "texlive-scripts-"
292 (number->string %texlive-revision)
293 "-checkout"))
294 (sha256
295 (base32
1f2ef813 296 "1cj04svl8bpfwjr4gqfcc04rmklz3aggrxvgj7q5bxrh7c7g18xh"))))
0aa34e82
AE
297 ("cairo" ,cairo)
298 ("fontconfig" ,fontconfig)
299 ("fontforge" ,fontforge)
300 ("freetype" ,freetype)
301 ("gd" ,gd)
0256c746 302 ("gmp" ,gmp)
0aa34e82
AE
303 ("ghostscript" ,ghostscript)
304 ("graphite2" ,graphite2)
305 ("harfbuzz" ,harfbuzz)
306 ("icu4c" ,icu4c)
307 ("libpaper" ,libpaper)
308 ("libpng" ,libpng)
309 ("libxaw" ,libxaw)
310 ("libxt" ,libxt)
0256c746 311 ("mpfr" ,mpfr)
0aa34e82
AE
312 ("perl" ,perl)
313 ("pixman" ,pixman)
314 ("poppler" ,poppler)
315 ("potrace" ,potrace)
316 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
317 ("ruby" ,ruby)
318 ("tcsh" ,tcsh)
319 ("teckit" ,teckit)
320 ("zlib" ,zlib)
321 ("zziplib" ,zziplib)))
c4c4cc05 322 (native-inputs
e9a6d225 323 `(("pkg-config" ,pkg-config)))
eb0119ef
AE
324 (arguments
325 `(#:out-of-source? #t
326 #:configure-flags
46fd8303
MB
327 '("--disable-static"
328 "--disable-native-texlive-build"
fd89b36b 329 "--with-system-cairo"
eb0119ef 330 "--with-system-freetype2"
fd89b36b 331 "--with-system-gd"
0256c746 332 "--with-system-gmp"
be2c88ca 333 "--with-system-graphite2"
c70cf7eb 334 "--with-system-harfbuzz"
eb0119ef
AE
335 "--with-system-icu"
336 "--with-system-libgs"
609578a7 337 "--with-system-libpaper"
eb0119ef 338 "--with-system-libpng"
0256c746 339 "--with-system-mpfr"
fd89b36b 340 "--with-system-pixman"
eb0119ef 341 "--with-system-poppler"
75916982 342 "--with-system-potrace"
eb0119ef
AE
343 "--with-system-teckit"
344 "--with-system-xpdf"
345 "--with-system-zlib"
e9938dc8
LLB
346 "--with-system-zziplib"
347 ;; LuaJIT is not ported to powerpc64le* yet.
348 ,@(if (string-prefix? "powerpc64le" (or (%current-target-system)
349 (%current-system)))
350 '("--disable-luajittex"
351 "--disable-mfluajit")
352 '()))
2f4640e3 353
e9938dc8
LLB
354 ;; Disable tests on some architectures to cope with a failure of
355 ;; luajiterr.test.
356 ;; XXX FIXME fix luajit properly on these architectures.
7683bf11
EB
357 #:tests? ,(let ((s (or (%current-target-system)
358 (%current-system))))
359 (not (or (string-prefix? "aarch64" s)
e9938dc8
LLB
360 (string-prefix? "mips64" s)
361 (string-prefix? "powerpc64le" s))))
362
eb0119ef 363 #:phases
3e1ebaab 364 (modify-phases %standard-phases
f1728d43 365 (add-after 'unpack 'configure-ghostscript-executable
3e1ebaab
RW
366 ;; ps2eps.pl uses the "gswin32c" ghostscript executable on Windows,
367 ;; and the "gs" ghostscript executable on Unix. It detects Unix by
368 ;; checking for the existence of the /usr/bin directory. Since
59e80445 369 ;; Guix System does not have /usr/bin, it is also detected as Windows.
f1728d43 370 (lambda* (#:key inputs #:allow-other-keys)
3e1ebaab
RW
371 (substitute* "utils/ps2eps/ps2eps-src/bin/ps2eps.pl"
372 (("gswin32c") "gs"))
f1728d43
RW
373 (substitute* "texk/texlive/linked_scripts/epstopdf/epstopdf.pl"
374 (("\"gs\"")
375 (string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\"")))
376 #t))
377 (add-after 'unpack 'use-code-for-new-poppler
378 (lambda _
1a753d56 379 (copy-file "texk/web2c/pdftexdir/pdftoepdf-poppler0.76.0.cc"
f1728d43 380 "texk/web2c/pdftexdir/pdftoepdf.cc")
1a753d56 381 (copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.76.0.cc"
f1728d43 382 "texk/web2c/pdftexdir/pdftosrc.cc")
3e1ebaab 383 #t))
1f2ef813 384 (add-after 'unpack 'patch-dvisvgm-build-files
9df39750 385 (lambda _
1f2ef813
MB
386 ;; XXX: Ghostscript is detected, but HAVE_LIBGS is never set, so
387 ;; the appropriate linker flags are not added.
388 (substitute* "texk/dvisvgm/configure"
389 (("^have_libgs=yes" all)
390 (string-append all "\nHAVE_LIBGS=1")))
9df39750 391 #t))
be200ef3
MB
392 (add-after 'unpack 'disable-failing-test
393 (lambda _
394 ;; FIXME: This test fails on 32-bit architectures since Glibc 2.28:
395 ;; <https://bugzilla.redhat.com/show_bug.cgi?id=1631847>.
396 (substitute* "texk/web2c/omegafonts/check.test"
21f7d88e 397 (("^\\./omfonts -ofm2opl \\$srcdir/tests/check tests/xcheck \\|\\| exit 1")
be200ef3
MB
398 "./omfonts -ofm2opl $srcdir/tests/check tests/xcheck || exit 77"))
399 #t))
3e1ebaab
RW
400 (add-after 'install 'postint
401 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
402 (let* ((out (assoc-ref outputs "out"))
403 (share (string-append out "/share"))
404 (texlive-extra (assoc-ref inputs "texlive-extra-src"))
405 (unpack (assoc-ref %standard-phases 'unpack))
406 (patch-source-shebangs
407 (assoc-ref %standard-phases 'patch-source-shebangs)))
1574932d
RW
408 (substitute* (string-append share "/texmf-dist/web2c/texmf.cnf")
409 ;; Don't truncate lines.
410 (("^error_line = .*$") "error_line = 254\n")
411 (("^half_error_line = .*$") "half_error_line = 238\n")
412 (("^max_print_line = .*$") "max_print_line = 1000\n"))
3e1ebaab
RW
413 ;; Create symbolic links for the latex variants and their
414 ;; man pages.
415 (with-directory-excursion (string-append out "/bin/")
416 (for-each symlink
417 '("pdftex" "pdftex" "xetex" "luatex")
418 '("latex" "pdflatex" "xelatex" "lualatex")))
419 (with-directory-excursion (string-append share "/man/man1/")
420 (symlink "luatex.1" "lualatex.1"))
421 ;; Unpack texlive-extra and install tlpkg.
422 (mkdir "texlive-extra")
423 (with-directory-excursion "texlive-extra"
424 (apply unpack (list #:source texlive-extra))
425 (apply patch-source-shebangs (list #:source texlive-extra))
426 (invoke "mv" "tlpkg" share))
dfdc002c
RW
427 (let ((scripts (string-append share "/texmf-dist/scripts/texlive/")))
428 (mkdir-p scripts)
429 (copy-recursively (assoc-ref inputs "texlive-scripts") scripts)
430 ;; Make sure that fmtutil can find its Perl modules.
431 (substitute* (string-append scripts "fmtutil.pl")
432 (("\\$TEXMFROOT/") (string-append share "/"))))
433
3e1ebaab
RW
434 ;; texlua shebangs are not patched by the patch-source-shebangs
435 ;; phase because the texlua executable does not exist at that
436 ;; time.
437 (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))
438 (with-directory-excursion out
439 (patch-source-shebangs))))))))
a1b4d62c
RW
440 (native-search-paths
441 (list (search-path-specification
442 (variable "TEXMF")
443 (files '("share/texmf-dist"))
444 (separator #f))
445 (search-path-specification
446 (variable "TEXMFCNF")
447 (files '("share/texmf-dist/web2c"))
448 (separator #f))))
0aa34e82
AE
449 (synopsis "TeX Live, a package of the TeX typesetting system")
450 (description
451 "TeX Live provides a comprehensive TeX document production system.
452It includes all the major TeX-related programs, macro packages, and fonts
453that are free software, including support for many languages around the
454world.
455
456This package contains the binaries.")
132e14b4
EF
457 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
458 (home-page "https://www.tug.org/texlive/")))
0aa34e82 459
2cece695 460\f
7a9b737a 461(define texlive-docstrip
9d913b25 462 (package
7a9b737a
RW
463 (inherit (simple-texlive-package
464 "texlive-docstrip"
465 (list "/tex/latex/base/docstrip.tex")
466 (base32
85892948 467 "1f9sx1lp7v34zwm186msf03q2h28rrg0lh65z59zc0cvqffs6dvb")
7a9b737a
RW
468 #:trivial? #t))
469 (home-page "https://www.ctan.org/texlive")
470 (synopsis "Utility to strip documentation from TeX files.")
471 (description "This package provides the docstrip utility to strip
472documentation from TeX files. It is part of the LaTeX base.")
473 (license license:lppl1.3+)))
9d913b25 474
2cece695 475(define-public texlive-unicode-data
99952c53 476 (package
2cece695
RW
477 (inherit (simple-texlive-package
478 "texlive-unicode-data"
479 (list "/tex/generic/unicode-data/"
480 "/doc/generic/unicode-data/")
481 (base32
85892948 482 "0zy4v9y667cka5fi4dnc6x500907812y7pcaf63s5qxi8l7khxxy")
2cece695 483 #:trivial? #t))
b8d8806b 484 (home-page "https://www.ctan.org/pkg/unicode-data")
99952c53
RW
485 (synopsis "Unicode data and loaders for TeX")
486 (description "This bundle provides generic access to Unicode Consortium
487data for TeX use. It contains a set of text files provided by the Unicode
488Consortium which are currently all from Unicode 8.0.0, with the exception of
489@code{MathClass.txt} which is not currently part of the Unicode Character
490Database. Accompanying these source data are generic TeX loader files
491allowing this data to be used as part of TeX runs, in particular in building
492format files. Currently there are two loader files: one for general character
493set up and one for initializing XeTeX character classes as has been carried
494out to date by @code{unicode-letters.tex}. ")
495 (license license:lppl1.3c+)))
496
2cece695
RW
497(define-public texlive-generic-unicode-data
498 (deprecated-package "texlive-generic-unicode-data" texlive-unicode-data))
499
92b4a48c
RW
500(define-public texlive-hyphen-base
501 (package
502 (inherit (simple-texlive-package
503 "texlive-hyphen-base"
504 (list "/tex/generic/config/language.dat"
505 "/tex/generic/config/language.dat.lua"
506 "/tex/generic/config/language.def"
507 "/tex/generic/config/language.us"
508 "/tex/generic/config/language.us.def"
509 "/tex/generic/config/language.us.lua"
510 "/tex/generic/hyphen/dumyhyph.tex"
511 "/tex/generic/hyphen/hyphen.tex"
512 "/tex/generic/hyphen/hypht1.tex"
513 "/tex/generic/hyphen/zerohyph.tex")
514 (base32
85892948 515 "0f19nml4hdx9lh7accqdk1b9ismwfm2523l5zsc4kb4arysgcakz")
92b4a48c
RW
516 #:trivial? #t))
517 (home-page "https://tug.org/texlive/")
518 (synopsis "Core hyphenation support files")
519 (description "This package includes Knuth's original @file{hyphen.tex},
520@file{zerohyph.tex} to disable hyphenation, @file{language.us} which starts
521the autogenerated files @file{language.dat} and @file{language.def} (and
522default versions of those), etc.")
523 (license license:knuth)))
524
9d913b25 525(define-public texlive-dvips
9e99b1b4 526 (package
659fda6c
RW
527 (inherit (simple-texlive-package
528 "texlive-dvips"
b93d9dac
RW
529 (list "/doc/man/man1/afm2tfm.1"
530 "/doc/man/man1/dvips.1"
531 "/dvips/base/"
532 "/dvips/config/"
659fda6c 533 "/fonts/enc/dvips/base/"
b93d9dac 534 "/tex/generic/dvips/")
659fda6c 535 (base32
b93d9dac 536 "1qr7h0ahycmz5wmpv54glfss9jqdmmyymj6kim626d1c8v9bmg86")
659fda6c 537 #:trivial? #t))
b8d8806b 538 (home-page "https://www.ctan.org/pkg/dvips")
9d913b25
RW
539 (synopsis "DVI to PostScript drivers")
540 (description "This package provides files needed for converting DVI files
541to PostScript.")
b93d9dac 542 (license license:lppl)))
9e99b1b4 543
b8df0d1b 544(define-public texlive-tex-ini-files
453aae66 545 (package
b8df0d1b
RW
546 (inherit (simple-texlive-package
547 "texlive-tex-ini-files"
548 (list "/tex/generic/tex-ini-files/")
549 (base32
550 "0q1g62jg0qiqslm93ycvm30bw8ydmssjdshzsnzl7n2vpd62qfi2")
551 #:trivial? #t))
b8d8806b 552 (home-page "https://www.ctan.org/pkg/tex-ini-files")
453aae66
RW
553 (synopsis "Files for creating TeX formats")
554 (description "This bundle provides a collection of model \".ini\" files
555for creating TeX formats. These files are commonly used to introduced
556distribution-dependent variations in formats. They are also used to
557allow existing format source files to be used with newer engines, for example
558to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.")
559 (license license:public-domain)))
560
b8df0d1b
RW
561(define-public texlive-generic-tex-ini-files
562 (deprecated-package "texlive-generic-tex-ini-files" texlive-tex-ini-files))
9b134da8 563
8ada0f0b
RW
564(define-public texlive-metafont-base
565 (package
566 (name "texlive-metafont-base")
567 (version (number->string %texlive-revision))
568 (source (origin
569 (method svn-fetch)
570 (uri (svn-reference
571 (url (string-append "svn://www.tug.org/texlive/tags/"
572 %texlive-tag "/Master/texmf-dist/"
573 "/metafont"))
574 (revision %texlive-revision)))
1dec413a 575 (file-name (string-append name "-" version "-checkout"))
8ada0f0b
RW
576 (sha256
577 (base32
578 "1yl4n8cn5xqk2nc22zgzq6ymd7bhm6xx1mz3azip7i3ki4bhb5q5"))))
579 (build-system gnu-build-system)
580 (arguments
581 `(#:tests? #f ; no test target
582 #:phases
583 (modify-phases %standard-phases
584 (delete 'configure)
585 (replace 'build
586 (lambda* (#:key inputs #:allow-other-keys)
587 (let ((cwd (getcwd)))
588 (setenv "MFINPUTS"
589 (string-append cwd "/base:"
590 cwd "/misc:"
591 cwd "/roex:"
592 cwd "/feynmf:"
593 cwd "/mfpic:"
594 cwd "/config")))
595 (mkdir "build")
596 (with-directory-excursion "build"
3730a107 597 (invoke "inimf" "mf.mf"))))
8ada0f0b
RW
598 (replace 'install
599 (lambda* (#:key outputs #:allow-other-keys)
600 (let* ((out (assoc-ref outputs "out"))
601 (base (string-append out "/share/texmf-dist/web2c"))
602 (mf (string-append out "/share/texmf-dist/metafont/base")))
603 (mkdir-p base)
604 (mkdir-p mf)
605 (install-file "build/mf.base" base)
606 (copy-recursively "base" mf)
607 #t))))))
608 (native-inputs
609 `(("texlive-bin" ,texlive-bin)))
b8d8806b 610 (home-page "https://www.ctan.org/pkg/metafont")
8ada0f0b
RW
611 (synopsis "Metafont base files")
612 (description "This package provides the Metafont base files needed to
613build fonts using the Metafont system.")
614 (license license:knuth)))
615
e9816fcb
RW
616(define-public texlive-fontinst
617 (let ((template (simple-texlive-package
618 "texlive-fontinst"
619 (list "/doc/fonts/fontinst/"
620 "/doc/man/man1/fontinst.1"
621 "/doc/man/man1/fontinst.man1.pdf"
622
623 ;; This is used to build parts of
624 ;; /tex/fontinst/{base,misc}/ and
625 ;; /tex/latex/fontinst/fontdoc.sty.
626 "/source/fontinst/base/"
627
628 ;; These are not generated.
629 "/tex/fontinst/base/bbox.sty"
630 "/tex/fontinst/base/multislot.sty"
631 "/tex/fontinst/misc/glyphbox.mtx"
632 "/tex/fontinst/misc/glyphoff.mtx"
633 "/tex/fontinst/misc/glyphon.mtx"
634 "/tex/fontinst/misc/kernoff.mtx"
635 "/tex/fontinst/misc/kernon.mtx"
636
637 "/tex/fontinst/latinetx/"
638 "/tex/fontinst/latinmtx/"
639 "/tex/fontinst/mathmtx/"
640 "/tex/fontinst/smblmtx/"
641
642 "/scripts/texlive/fontinst.sh")
643 (base32
85892948 644 "0lprwib7n2ygfxvrw675vhif7ghyip2x6k70kqs9syp8lqxiizf8")
e9816fcb
RW
645 #:trivial? #t)))
646 (package
647 (inherit template)
648 (arguments
649 (substitute-keyword-arguments (package-arguments template)
650 ((#:modules _ '())
651 '((guix build gnu-build-system)
652 (guix build utils)
653 (ice-9 match)))
654 ((#:phases phases)
655 `(modify-phases ,phases
656 (replace 'build
657 (lambda* (#:key inputs #:allow-other-keys)
658 (setenv "TEXINPUTS"
659 (string-append (getcwd) "//:"
660 (getcwd) "/source/fontinst/base//:"
661 (assoc-ref inputs "texlive-docstrip") "//"))
662 (mkdir "build")
663 (invoke "tex" "-ini" "-interaction=scrollmode"
664 "-output-directory=build"
665 "fontinst.ins")))
666 ;; Since we're using docstrip without LaTeX we can't set \UseTDS
667 ;; or \BaseDirectory, so the generated files are just dumped in
668 ;; the "build" directory.
669 (add-after 'install 'install-generated-files
670 (lambda* (#:key outputs #:allow-other-keys)
671 (let* ((out (assoc-ref outputs "out"))
672 (root (string-append out "/share/texmf-dist")))
673 (for-each (match-lambda
674 ((dir files ...)
675 (for-each (lambda (file)
676 (install-file
677 (string-append "build/" file)
678 (string-append root dir)))
679 files)))
680 '(("/tex/fontinst/base"
681 "fontinst.sty"
682 "cfntinst.sty"
683 "xfntinst.sty"
684 "finstmsc.sty"
685 "fontinst.ini")
686 ("/tex/fontinst/misc"
687 "csc2x.tex"
688 "csckrn2x.tex"
689 "osf2x.tex")
690 ("/tex/latex/fontinst"
691 "fontdoc.sty")))
692 #t)))))))
693 (native-inputs
694 `(("texlive-bin" ,texlive-bin)
695 ("texlive-docstrip" ,texlive-docstrip)))
696 (home-page "https://www.ctan.org/pkg/fontinst")
697 (synopsis "Tools for converting and installing fonts for TeX and LaTeX")
698 (description "This package provides TeX macros for converting Adobe Font
513fff4c
RW
699Metric files to TeX metric and virtual font format. Fontinst helps mainly
700with the number crunching and shovelling parts of font installation. This
701means in practice that it creates a number of files which give the TeX
702metrics (and related information) for a font family that TeX needs to do any
703typesetting in these fonts.")
e9816fcb
RW
704 (license license:lppl1.1+))))
705
706(define-public texlive-tex-fontinst-base
707 (deprecated-package "texlive-tex-fontinst-base" texlive-fontinst))
513fff4c 708
dea67d8a
RW
709(define-public texlive-fontname
710 (package
14a87760
RW
711 (inherit (simple-texlive-package
712 "texlive-fontname"
713 (list "/doc/fonts/fontname/fontname.texi"
714 "/fonts/map/fontname/")
715 (base32
716 "0h5im5rnhycrrkd6z10f17m2caa8lv594wf482b68qjmnxfrqnxj")
717 #:trivial? #t))
dea67d8a
RW
718 (home-page "https://www.ctan.org/pkg/fontname")
719 (synopsis "Scheme for naming fonts in TeX")
720 (description "This is Fontname, a naming scheme for (the base part of)
721external TeX font filenames. This makes at most eight-character names
722from (almost) arbitrarily complex font names, thus helping portability of TeX
723documents.")
724 (license license:public-domain)))
725
b7d779db
RW
726(define-public texlive-cm
727 (let ((template (simple-texlive-package
728 "texlive-cm"
729 (list "/fonts/source/public/cm/"
730 "/fonts/map/dvips/cm/cmtext-bsr-interpolated.map"
731 "/doc/fonts/cm/")
732 (base32
85892948 733 "09mvl94qrwlb9b4pkigi151l256v3djhwl4m5lgvk6yhn5y75zrp")
b7d779db
RW
734 #:trivial? #t)))
735 (package
736 (inherit template)
737 (arguments
738 (substitute-keyword-arguments (package-arguments template)
739 ((#:modules modules '())
740 '((guix build gnu-build-system)
741 (guix build utils)
742 (srfi srfi-26)))
743 ((#:phases phases)
744 `(modify-phases ,phases
745 (replace 'build
746 (lambda* (#:key inputs #:allow-other-keys)
747 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
748 ;; Tell mf where to find mf.base
749 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
750 ;; Tell mf where to look for source files
751 (setenv "MFINPUTS"
752 (string-append (getcwd) "/fonts/source/public/cm/:"
753 mf "/share/texmf-dist/metafont/base")))
754 (for-each make-file-writable
755 (cons "fonts/source/public/cm/"
756 (find-files "fonts/source/public/cm/" ".*")))
757 (let ((build (string-append (getcwd) "/build"))
758 (pkdir (string-append (getcwd) "/pk/ljfour/public/cm/dpi600")))
759 (mkdir-p pkdir)
760 (mkdir-p build)
761 (with-directory-excursion "fonts/source/public/cm/"
762 (for-each (lambda (font)
763 (format #t "building font ~a\n" font)
764 (invoke "mf" "-progname=mf"
765 (string-append "-output-directory=" build)
766 (string-append "\\"
767 "mode:=ljfour; "
768 "mag:=1+0/600; "
769 "scrollmode; "
770 "input "
771 (basename font ".mf")))
772 (invoke "gftopk"
773 (string-append build "/"
774 (basename font ".mf") ".600gf")
775 (string-append pkdir "/"
776 (basename font ".mf") ".pk")))
777 (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$"))))
778 #t))
779 (add-after 'install 'install-generated-fonts
780 (lambda* (#:key inputs outputs #:allow-other-keys)
781 (let* ((out (assoc-ref outputs "out"))
782 (fonts (string-append out "/share/texmf-dist/fonts/"))
783 (pk (string-append fonts "pk"))
784 (tfm (string-append fonts "tfm/public/cm")))
785 (for-each (cut install-file <> tfm)
786 (find-files "build" "\\.*"))
787 (copy-recursively "pk" pk)
788 #t)))))))
789 (native-inputs
790 `(("texlive-bin" ,texlive-bin)
791 ("texlive-metafont-base" ,texlive-metafont-base)))
792 (home-page "https://www.ctan.org/pkg/cm")
793 (synopsis "Computer Modern fonts for TeX")
794 (description "This package provides the Computer Modern fonts by Donald
3c4f1ec7
RW
795Knuth. The Computer Modern font family is a large collection of text,
796display, and mathematical fonts in a range of styles, based on Monotype Modern
7978A.")
b7d779db
RW
798 (license license:knuth))))
799
3c4f1ec7 800(define-public texlive-fonts-cm
b7d779db 801 (deprecated-package "texlive-fonts-cm" texlive-cm))
3c4f1ec7 802
cdc96092
RW
803(define-public texlive-cm-super
804 (let ((template (simple-texlive-package
805 "texlive-cm-super"
806 (list "/doc/fonts/cm-super/"
807 "/dvips/cm-super/"
808 "/fonts/afm/public/cm-super/"
809 "/fonts/enc/dvips/cm-super/"
810 "/fonts/map/dvips/cm-super/"
811 "/fonts/map/vtex/cm-super/"
812 "/fonts/type1/public/cm-super/"
813 "/tex/latex/cm-super/")
814 (base32
815 "1k3afl0x0bqbr5mnawbnp7rr2126dwn0vwnxzibm9ggvzqilnkm6")
816 #:trivial? #t)))
817 (package
818 (inherit template)
819 (arguments
820 (substitute-keyword-arguments (package-arguments template)
821 ((#:phases phases)
822 `(modify-phases ,phases
823 (delete 'reset-gzip-timestamps)))))
824 (home-page "https://www.ctan.org/pkg/cm-super")
825 (synopsis "Computer Modern Super family of fonts")
826 (description "The CM-Super family provides Adobe Type 1 fonts that replace
4e9242aa
RW
827the T1/TS1-encoded Computer Modern (EC/TC), T1/TS1-encoded Concrete,
828T1/TS1-encoded CM bright and LH Cyrillic fonts (thus supporting all European
829languages except Greek), and bringing many ameliorations in typesetting
830quality. The fonts exhibit the same metrics as the METAFONT-encoded
831originals.")
cdc96092
RW
832 ;; With font exception
833 (license license:gpl2+))))
4e9242aa 834
cdc96092
RW
835(define-public texlive-fonts-cm-super
836 (deprecated-package "texlive-fonts-cm-super" texlive-cm-super))
4e9242aa 837
0390d786
MC
838(define-public texlive-courier
839 (package
840 (inherit (simple-texlive-package
841 "texlive-courier"
842 (list "/dvips/courier/"
843 "/fonts/afm/adobe/courier/"
844 "/fonts/afm/urw/courier/"
845 "/fonts/map/dvips/courier/"
846 "/fonts/tfm/adobe/courier/"
847 "/fonts/tfm/urw35vf/courier/"
848 "/fonts/type1/adobe/courier/"
849 "/fonts/type1/urw/courier/"
850 "/fonts/vf/adobe/courier/"
851 "/fonts/vf/urw35vf/courier/"
852 "/tex/latex/courier/"
853 "/tex4ht/ht-fonts/alias/adobe/courier/"
854 "/tex4ht/ht-fonts/unicode/adobe/courier/")
855 (base32
856 "1hfgisdi7mjf5156ax6d6zsbiq42zkmp1x5lg17rgzf61k6d6z1y")
857 #:trivial? #t))
858 (home-page "https://ctan.org/pkg/urw-base35")
859 (synopsis "URW Base 35 font pack for LaTeX")
860 (description "This package provides a drop-in replacements for the Courier
861font from Adobe's basic set.")
862 ;; No license version specified.
863 (license license:gpl3+)))
864
114a5d85 865(define-public texlive-lm
c2a1fe4a 866 (package
114a5d85
RW
867 (inherit (simple-texlive-package
868 "texlive-lm"
869 (list "/doc/fonts/lm/"
870 "/fonts/afm/public/lm/"
871 "/fonts/enc/dvips/lm/"
872 "/fonts/map/dvipdfm/lm/"
873 "/fonts/map/dvips/lm/"
874 "/fonts/opentype/public/lm/"
875 "/fonts/tfm/public/lm/"
876 "/fonts/type1/public/lm/"
877 "/tex/latex/lm/")
878 (base32
879 "0i1hwr8rp0jqyvs4qyplrirscd4w7lsgwsncyv3yzy80bsa56jq5")
880 #:trivial? #t))
c2a1fe4a
RW
881 (home-page "http://www.gust.org.pl/projects/e-foundry/latin-modern/")
882 (synopsis "Latin Modern family of fonts")
883 (description "The Latin Modern fonts are derived from the famous Computer
884Modern fonts designed by Donald E. Knuth and described in Volume E of his
885Computers & Typesetting series.")
886 ;; The GUST font license (GFL) is legally identical to the LaTeX Project
887 ;; Public License (LPPL), version 1.3c or later, but comes with an
888 ;; additional but not legally binding clause.
889 (license license:lppl1.3c+)))
890
114a5d85
RW
891(define-public texlive-fonts-lm
892 (deprecated-package "texlive-fonts-lm" texlive-lm))
893
5ebba61a
RW
894(define-public texlive-fonts-knuth-lib
895 (package
896 (name "texlive-fonts-knuth-lib")
897 (version (number->string %texlive-revision))
898 (source (origin
899 (method svn-fetch)
900 (uri (svn-reference
901 (url (string-append "svn://www.tug.org/texlive/tags/"
902 %texlive-tag "/Master/texmf-dist/"
903 "/fonts/source/public/knuth-lib"))
904 (revision %texlive-revision)))
6b286e42 905 (file-name (string-append name "-" version "-checkout"))
5ebba61a
RW
906 (sha256
907 (base32
908 "0in9aqyi8jkyf9d16z0li50z5fpwj1iwgwm83gmvwqcf7chfs04y"))))
909 (build-system gnu-build-system)
910 (arguments
911 `(#:modules ((guix build gnu-build-system)
912 (guix build utils)
913 (srfi srfi-26))
914 #:tests? #f ; no tests
915 #:phases
916 (modify-phases %standard-phases
917 (delete 'configure)
918 (replace 'build
919 (lambda* (#:key inputs #:allow-other-keys)
920 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
921 ;; Tell mf where to find mf.base
922 (setenv "MFBASES"
923 (string-append mf "/share/texmf-dist/web2c"))
924 ;; Tell mf where to look for source files
925 (setenv "MFINPUTS"
926 (string-append (getcwd) ":"
927 mf "/share/texmf-dist/metafont/base")))
928 (mkdir "build")
96f5377d
RW
929 (for-each (lambda (font)
930 (format #t "building font ~a\n" font)
931 (invoke "mf" "-progname=mf"
932 "-output-directory=build"
933 (string-append "\\"
934 "mode:=ljfour; "
935 "mag:=1; "
936 "batchmode; "
937 "input " font)))
938 (find-files "." "(manfnt|logo.+)\\.mf$"))
939 #t))
5ebba61a
RW
940 (replace 'install
941 (lambda* (#:key outputs #:allow-other-keys)
942 (let* ((out (assoc-ref outputs "out"))
943 (tfm (string-append
944 out "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
945 (mf (string-append
946 out "/share/texmf-dist/fonts/source/public/knuth-lib")))
947 (for-each (cut install-file <> tfm)
948 (find-files "build" "\\.*"))
949 (for-each (cut install-file <> mf)
950 (find-files "." "\\.mf"))
951 #t))))))
952 (native-inputs
953 `(("texlive-bin" ,texlive-bin)
954 ("texlive-metafont-base" ,texlive-metafont-base)))
955 (home-page "https://www.ctan.org/pkg/knuth-lib")
956 (synopsis "Small library of METAFONT sources")
957 (description "This is a collection of core TeX and METAFONT macro files
958from Donald Knuth, including the plain format, plain base, and the MF logo
959fonts.")
960 (license license:knuth)))
961
a00d5933
RW
962(define-public texlive-fonts-latex
963 (package
964 (name "texlive-fonts-latex")
965 (version (number->string %texlive-revision))
966 (source (origin
967 (method svn-fetch)
968 (uri (svn-reference
969 (url (string-append "svn://www.tug.org/texlive/tags/"
970 %texlive-tag "/Master/texmf-dist/"
971 "/fonts/source/public/latex-fonts"))
972 (revision %texlive-revision)))
a4550e7d 973 (file-name (string-append name "-" version "-checkout"))
a00d5933
RW
974 (sha256
975 (base32
976 "0ypsm4xv9cw0jckk2qc7gi9hcmhf31mrg56pz3llyx3yd9vq2lps"))))
977 (build-system gnu-build-system)
978 (arguments
979 `(#:modules ((guix build gnu-build-system)
980 (guix build utils)
981 (srfi srfi-1)
982 (srfi srfi-26))
983 #:tests? #f ; no tests
984 #:phases
985 (modify-phases %standard-phases
986 (delete 'configure)
987 (replace 'build
988 (lambda* (#:key inputs #:allow-other-keys)
989 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
990 ;; Tell mf where to find mf.base
991 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
992 ;; Tell mf where to look for source files
993 (setenv "MFINPUTS"
994 (string-append (getcwd) ":"
995 mf "/share/texmf-dist/metafont/base:"
a6405e03 996 (assoc-ref inputs "texlive-cm")
a00d5933
RW
997 "/share/texmf-dist/fonts/source/public/cm")))
998 (mkdir "build")
806faaab
MW
999 (for-each (lambda (font)
1000 (format #t "building font ~a\n" font)
1001 (invoke "mf" "-progname=mf"
1002 "-output-directory=build"
1003 (string-append "\\"
1004 "mode:=ljfour; "
1005 "mag:=1; "
1006 "batchmode; "
1007 "input " font)))
1008 '("icmcsc10" "icmex10" "icmmi8" "icmsy8" "icmtt8"
1009 "ilasy8" "ilcmss8" "ilcmssb8" "ilcmssi8"
1010 "lasy5" "lasy6" "lasy7" "lasy8" "lasy9" "lasy10" "lasyb10"
1011 "lcircle10" "lcirclew10" "lcmss8" "lcmssb8" "lcmssi8"
1012 "line10" "linew10"))
1013 #t))
a00d5933
RW
1014 (replace 'install
1015 (lambda* (#:key outputs #:allow-other-keys)
1016 (let* ((out (assoc-ref outputs "out"))
1017 (tfm (string-append
1018 out "/share/texmf-dist/fonts/tfm/public/latex-fonts"))
1019 (mf (string-append
1020 out "/share/texmf-dist/fonts/source/public/latex-fonts")))
1021 (for-each (cut install-file <> tfm)
1022 (find-files "build" "\\.*"))
1023 (for-each (cut install-file <> mf)
1024 (find-files "." "\\.mf"))
1025 #t))))))
1026 (native-inputs
1027 `(("texlive-bin" ,texlive-bin)
1028 ("texlive-metafont-base" ,texlive-metafont-base)
a6405e03 1029 ("texlive-cm" ,texlive-cm)))
b8d8806b 1030 (home-page "https://www.ctan.org/pkg/latex-fonts")
a00d5933
RW
1031 (synopsis "Collection of fonts used in LaTeX distributions")
1032 (description "This is a collection of fonts for use with standard LaTeX
1033packages and classes. It includes invisible fonts (for use with the slides
1034class), line and circle fonts (for use in the picture environment) and LaTeX
1035symbol fonts.")
1036 (license license:lppl1.2+)))
1037
6072f82a
RW
1038(define-public texlive-latex-mflogo
1039 (package
1040 (name "texlive-latex-mflogo")
1041 (version (number->string %texlive-revision))
1042 (source
1043 (origin
1044 (method svn-fetch)
1045 (uri (texlive-ref "latex" "mflogo"))
44d0717c 1046 (file-name (string-append name "-" version "-checkout"))
6072f82a
RW
1047 (sha256
1048 (base32
1049 "15i2ib6nvhf31g1b92c6njf7n0g29znlq7hbfp9ii7qabhcwwvrj"))))
1050 (build-system texlive-build-system)
1051 (arguments '(#:tex-directory "latex/mflogo"))
1052 (home-page "http://www.ctan.org/pkg/mflogo")
1053 (synopsis "LaTeX support for Metafont logo fonts")
1054 (description
1055 "This package provides LaTeX and font definition files to access the
1056Knuthian mflogo fonts described in The Metafontbook and to typeset Metafont
1057logos in LaTeX documents.")
1058 (license license:lppl)))
1059
cd957f4f 1060(define-public texlive-mflogo-font
01cf8c89 1061 (package
cd957f4f
RW
1062 (inherit (simple-texlive-package
1063 "texlive-mflogo-font"
1064 (list "/doc/fonts/mflogo-font/README"
1065 "/fonts/afm/hoekwater/mflogo-font/"
1066 "/fonts/map/dvips/mflogo-font/"
1067 "/fonts/type1/hoekwater/mflogo-font/")
1068 (base32
1069 "094mknjv8ki2pvj1zin0f1z4f1w12g0cfqjiqcsawjsry4yfrmbg")
1070 #:trivial? #t))
01cf8c89
RW
1071 (home-page "https://www.ctan.org/pkg/mflogo-font")
1072 (synopsis "Metafont logo font")
1073 (description
1074 "These fonts were created in METAFONT by Knuth, for his own publications.
1075At some stage, the letters P and S were added, so that the METAPOST logo could
1076also be expressed. The fonts were originally issued (of course) as METAFONT
1077source; they have since been autotraced and reissued in Adobe Type 1 format by
1078Taco Hoekwater.")
1079 (license license:knuth)))
1080
cd957f4f
RW
1081(define-public texlive-fonts-mflogo-font
1082 (deprecated-package "texlive-fonts-mflogo-font" texlive-mflogo-font))
1083
82ff725d
RW
1084(define-public texlive-amsfonts
1085 (let ((template (simple-texlive-package
1086 "texlive-amsfonts"
1087 (list "/source/latex/amsfonts/"
1088 "/fonts/source/public/amsfonts/"
1089 "/fonts/type1/public/amsfonts/"
1090 "/fonts/afm/public/amsfonts/"
1091 "/fonts/map/dvips/amsfonts/"
1092 "/tex/plain/amsfonts/"
1093 "/doc/fonts/amsfonts/")
1094 (base32
1095 "15q70nkjf8wqzbd5ivcdx3i2sdgqxjb38q0qn9a2qw9i0qcnx6zw"))))
1096 (package
1097 (inherit template)
1098 (arguments
1099 (substitute-keyword-arguments (package-arguments template)
d350d5e7
RW
1100 ((#:build-targets _ #t)
1101 '(list "amsfonts.ins"))
82ff725d
RW
1102 ((#:tex-directory _ #t)
1103 "latex/amsfonts")
1104 ((#:modules modules '())
1105 `((guix build texlive-build-system)
1106 (guix build utils)
1107 (ice-9 match)
1108 (srfi srfi-1)
1109 (srfi srfi-26)))
1110 ((#:phases phases)
1111 `(modify-phases ,phases
1112 (add-before 'build 'build-fonts
1113 (lambda* (#:key inputs #:allow-other-keys)
1114 (let ((mf (assoc-ref inputs "texlive-union"))
1115 (src (string-append (getcwd) "/fonts/source/public/amsfonts/")))
1116 ;; Make METAFONT reproducible
1117 (setenv "SOURCE_DATE_EPOCH" "1")
1118 ;; Tell mf where to find mf.base
1119 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
1120 ;; Tell mf where to look for source files
1121 (setenv "MFINPUTS"
1122 (string-append src ":"
1123 src "/cmextra:"
1124 src "/cyrillic:"
1125 src "/dummy:"
1126 src "/symbols:"
1127 mf "/share/texmf-dist/metafont/base:"
a6405e03 1128 (assoc-ref inputs "texlive-cm")
82ff725d 1129 "/share/texmf-dist/fonts/source/public/cm")))
d350d5e7 1130 (let ((build (string-append (getcwd) "/build-fonts")))
82ff725d
RW
1131 (mkdir-p build)
1132 (with-directory-excursion "fonts/source/public/amsfonts"
1133 (for-each (lambda (font)
1134 (format #t "building font ~a\n" (basename font ".mf"))
1135 (with-directory-excursion (dirname font)
1136 (invoke "mf" "-progname=mf"
1137 (string-append "-output-directory=" build)
1138 (string-append "\\"
1139 "mode:=ljfour; "
1140 "mag:=1; "
1141 "nonstopmode; "
1142 "input "
1143 (getcwd) "/"
1144 (basename font ".mf")))))
1145 (find-files "." "[0-9]+\\.mf$"))))
fe2bfabe 1146
82ff725d
RW
1147 ;; There are no metafont sources for the Euler fonts, so we
1148 ;; convert the afm files instead.
d350d5e7 1149 (let ((build (string-append (getcwd) "/build-fonts/euler")))
82ff725d
RW
1150 (mkdir build)
1151 (with-directory-excursion "fonts/afm/public/amsfonts/"
1152 (for-each (lambda (font)
1153 (format #t "converting afm font ~a\n" (basename font ".afm"))
1154 (invoke "afm2tfm" font
1155 (string-append build "/"
1156 (basename font ".tfm"))))
1157 (find-files "." "\\.afm$")))
fe2bfabe 1158
82ff725d
RW
1159 ;; Frustratingly, not all fonts can be created this way. To
1160 ;; generate eufm8.tfm, for example, we first scale down
1161 ;; eufm10.afm to eufm8.pl, and then generate the tfm file from
1162 ;; the pl file.
1163 (setenv "TEXINPUTS"
d350d5e7
RW
1164 (string-append build "//:"
1165 (getcwd) "/fonts/afm/public/amsfonts//:"
1166 (getcwd) "/source/latex/amsfonts//:"
1167 (assoc-ref inputs "texlive-union") "//"))
82ff725d
RW
1168 (with-directory-excursion build
1169 (for-each (match-lambda
1170 (((target-base target-size)
1171 (source-base source-size))
1172 (let ((factor (number->string
1173 (truncate/ (* 1000 target-size)
1174 source-size))))
1175 (invoke "tex"
1176 "-interaction=scrollmode"
1177 (string-append "\\input fontinst.sty "
1178 "\\transformfont{" target-base "}"
1179 "{\\scalefont{" factor "}"
1180 "{\\fromafm{" source-base "}}} "
1181 "\\bye")))
1182 (invoke "pltotf"
1183 (string-append target-base ".pl")
1184 (string-append target-base ".tfm"))
1185 (delete-file (string-append target-base ".pl"))))
fe2bfabe 1186
82ff725d 1187 '((("eufm8" 8) ("eufm10" 10))
fe2bfabe 1188
82ff725d
RW
1189 (("eufb6" 6) ("eufb7" 7))
1190 (("eufb8" 8) ("eufb10" 10))
1191 (("eufb9" 9) ("eufb10" 10))
fe2bfabe 1192
82ff725d
RW
1193 (("eufm6" 6) ("eufb7" 7))
1194 (("eufm9" 9) ("eufb10" 10))
fe2bfabe 1195
82ff725d
RW
1196 (("eurb6" 6) ("eurb7" 7))
1197 (("eurb8" 8) ("eurb10" 10))
1198 (("eurb9" 9) ("eurb10" 10))
fe2bfabe 1199
82ff725d
RW
1200 (("eurm6" 6) ("eurm7" 7))
1201 (("eurm8" 8) ("eurm10" 10))
1202 (("eurm9" 9) ("eurm10" 10))))))
1203 #t))
1204 (add-after 'install 'install-generated-fonts
1205 (lambda* (#:key inputs outputs #:allow-other-keys)
d350d5e7 1206 (copy-recursively "build-fonts"
82ff725d
RW
1207 (string-append
1208 (assoc-ref outputs "out")
1209 "/share/texmf-dist/fonts/tfm/public/amsfonts"))
1210 #t))))))
1211 (native-inputs
1212 `(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base
a6405e03 1213 texlive-cm
82ff725d
RW
1214 texlive-metafont-base)))))
1215 (home-page "https://www.ctan.org/pkg/amsfonts")
1216 (synopsis "TeX fonts from the American Mathematical Society")
1217 (description
1218 "This package provides an extended set of fonts for use in mathematics,
98b4aca1
RW
1219including: extra mathematical symbols; blackboard bold letters (uppercase
1220only); fraktur letters; subscript sizes of bold math italic and bold Greek
1221letters; subscript sizes of large symbols such as sum and product; added sizes
1222of the Computer Modern small caps font; cyrillic fonts (from the University of
1223Washington); Euler mathematical fonts. All fonts are provided as Adobe Type 1
1224files, and all except the Euler fonts are provided as Metafont source. The
1225distribution also includes the canonical Type 1 versions of the Computer
1226Modern family of fonts. The Euler fonts are supported by separate packages;
1227details can be found in the documentation.")
82ff725d
RW
1228 (license license:silofl1.1))))
1229
98b4aca1 1230(define-public texlive-fonts-amsfonts
82ff725d 1231 (deprecated-package "texlive-fonts-amsfonts" texlive-amsfonts))
98b4aca1 1232
137f9cbc 1233(define-public texlive-latex-amsfonts
82ff725d 1234 (deprecated-package "texlive-latex-amsfonts" texlive-amsfonts))
137f9cbc 1235
e4c5481d 1236(define-public texlive-mkpattern
98b4aca1 1237 (package
e4c5481d
RW
1238 (inherit (simple-texlive-package
1239 "texlive-mkpattern"
1240 (list "/doc/plain/mkpattern/README"
1241 "/doc/plain/mkpattern/mkpatdoc.tex"
1242 "/doc/plain/mkpattern/mkpatter.pdf"
1243 "/doc/plain/mkpattern/mkpattern-exmpl.tex"
1244 "/tex/plain/mkpattern/mkpatter.tex")
1245 (base32
1246 "0sxnkbcc802jl3fj56x9hvg978bpv15lhrwj0aykb4syq29l47ga")
1247 #:trivial? #t))
1248 (home-page "https://ctan.org/pkg/mkpattern")
1249 (synopsis "Utility for making hyphenation patterns")
1250 (description "Mkpattern is a general purpose program for the generation of
1251hyphenation patterns, with definition of letter sets and template-like
1252constructions. It also provides an easy way to handle different input and
1253output encodings, and features generation of clean UTF-8 patterns.")
1254 (license license:lppl)))
137f9cbc 1255
566e95f7
RW
1256;; This provides etex.src which is needed to build various formats, including
1257;; luatex.fmt and pdflatex.fmt
1e39065d
RW
1258(define-public texlive-etex
1259 (let ((template (simple-texlive-package
1260 "texlive-etex"
1261 (list "/doc/etex/base/"
1262 "/doc/man/man1/etex.1"
1263 "/doc/man/man1/etex.man1.pdf"
1264 "/tex/plain/etex/"
1265 "/fonts/source/public/etex/")
1266 (base32
1267 "1qv6vxm5a8pw38gas3i69ivmsn79zj2yq5n5vdmh0rzic5hw2hmc")
1268 #:trivial? #t)))
1269 (package
1270 (inherit template)
1271 (arguments
1272 (substitute-keyword-arguments (package-arguments template)
1273 ((#:phases phases)
1274 `(modify-phases ,phases
1275 ;; Build tfm font.
1276 (replace 'build
1277 (lambda* (#:key inputs #:allow-other-keys)
1278 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
1279 ;; Tell mf where to find mf.base
1280 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
1281 ;; Tell mf where to look for source files
1282 (setenv "MFINPUTS"
1283 (string-append (getcwd)
1284 "/fonts/source/public/etex/:"
1285 mf "/share/texmf-dist/metafont/base:"
a6405e03 1286 (assoc-ref inputs "texlive-cm")
1e39065d
RW
1287 "/share/texmf-dist/fonts/source/public/cm")))
1288 (invoke "mf" "-progname=mf"
1289 (string-append "\\"
1290 "mode:=ljfour; "
1291 "mag:=1; "
1292 "scrollmode; "
1293 "input xbmc10"))
1294 #t))
1295 (add-after 'install 'install-font
1296 (lambda* (#:key outputs #:allow-other-keys)
1297 (install-file
1298 "xbmc10.tfm"
1299 (string-append (assoc-ref outputs "out")
1300 "/share/texmf-dist/fonts/tfm/public/etex/"))
1301 #t))))))
1302 (native-inputs
1303 `(("texlive-bin" ,texlive-bin)
1304 ("texlive-metafont-base" ,texlive-metafont-base)
a6405e03 1305 ("texlive-cm" ,texlive-cm)))
1e39065d
RW
1306 (home-page "https://www.ctan.org/pkg/etex")
1307 (synopsis "Extended version of TeX")
1308 (description
1309 "This package provides an extended version of TeX (which is capable of
1310running as if it were TeX unmodified). E-TeX has been specified by the LaTeX
1311team as the engine for the development of LaTeX2e; as a result, LaTeX
1312programmers may assume e-TeX functionality. The pdftex engine directly
1313incorporates the e-TeX extensions.")
1314 (license license:knuth))))
1315
566e95f7
RW
1316(define-public texlive-tex-plain
1317 (package
8fee5067
RW
1318 (inherit (simple-texlive-package
1319 "texlive-tex-plain"
1320 (list "/tex/plain/")
1321 (base32
85892948 1322 "1m4qpaszwfv7j8a85rlwl7rs4iv5nlj67c1vvn6ysly72h9gjydb")
8fee5067 1323 #:trivial? #t))
566e95f7
RW
1324 (home-page "https://www.ctan.org/pkg/plain")
1325 (synopsis "Plain TeX format and supporting files")
1326 (description
8fee5067
RW
1327 "This package contains files used to build the Plain TeX format, as
1328described in the TeXbook, together with various supporting files (some also
1329discussed in the book).")
566e95f7
RW
1330 (license license:knuth)))
1331
05b28261
MC
1332(define-public texlive-helvetic
1333 (package
1334 (inherit (simple-texlive-package
1335 "texlive-helvetic"
1336 (list "/dvips/helvetic/"
1337 "/fonts/afm/adobe/helvetic/"
1338 "/fonts/afm/urw/helvetic/"
1339 "/fonts/map/dvips/helvetic/"
1340 "/fonts/tfm/adobe/helvetic/"
1341 "/fonts/tfm/monotype/helvetic/"
1342 "/fonts/tfm/urw35vf/helvetic/"
1343 "/fonts/type1/urw/helvetic/"
1344 "/fonts/vf/adobe/helvetic/"
1345 "/fonts/vf/monotype/helvetic/"
1346 "/fonts/vf/urw35vf/helvetic/"
1347 "/tex/latex/helvetic/")
1348 (base32
1349 "0c3f1ly7y6404z0akbfbbfql13sz717v0n0g69qjpr69hi4n0nsl")
1350 #:trivial? #t))
1351 (home-page "https://ctan.org/pkg/urw-base35")
1352 (synopsis "URW Base 35 font pack for LaTeX")
1353 (description "This package provides a drop-in replacements for the Helvetica
1354font from Adobe's basic set.")
1355 ;; No license version specified.
1356 (license license:gpl3+)))
1357
df73a3d3
RW
1358(define-public texlive-hyphen-afrikaans
1359 (package
1360 (inherit (texlive-hyphen-package
1361 "texlive-hyphen-afrikaans" "af"
1362 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-af.tex")
1363 (base32
85892948 1364 "1k9k27a27bbrb0gz36191w32l2v6d3zbdh8zhrp4l3ild2pj3n4l")))
df73a3d3
RW
1365 (synopsis "Hyphenation patterns for Afrikaans")
1366 (description "The package provides hyphenation patterns for the Afrikaans
1367language.")
1368 (license license:lppl1.3+)))
1369
619ca023
RW
1370(define-public texlive-hyphen-ancientgreek
1371 (package
1372 (inherit (texlive-hyphen-package
1373 "texlive-hyphen-ancientgreek" "grc"
1374 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-grc.tex"
1375 "/tex/generic/hyphen/grahyph5.tex"
1376 "/tex/generic/hyphen/ibyhyph.tex")
1377 (base32
85892948 1378 "01326lb6z0s8krcfgs8i1pnjfrm4gr33rc53gy80f63qbv4ssxrw")))
619ca023
RW
1379 (synopsis "Hyphenation patterns for ancient Greek")
1380 (description "The package provides hyphenation patterns for ancient
1381Greek.")
1382 (license license:lppl1.3+)))
1383
a361f412
RW
1384(define-public texlive-hyphen-armenian
1385 (let ((template (texlive-hyphen-package
1386 "texlive-hyphen-armenian" "hy"
85892948 1387 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hy.tex")
a361f412 1388 (base32
85892948 1389 "0hzny0npynsb07syxrpbfa5pkpj8r0j51pj64yxyfl1c0bak1fwp"))))
010f476f 1390 (package
a361f412 1391 (inherit template)
a361f412
RW
1392 (synopsis "Hyphenation patterns for Armenian")
1393 (description "The package provides hyphenation patterns for the Armenian
1394language.")
1395 ;; Any version of the LGPL.
1396 (license license:lgpl3+))))
1397
0ddbc25c
RW
1398(define-public texlive-hyphen-basque
1399 (let ((template (texlive-hyphen-package
1400 "texlive-hyphen-basque" "eu"
85892948 1401 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-eu.tex")
0ddbc25c 1402 (base32
85892948 1403 "15w969g1jqzn68l2b2lzf7iv7g3kil02aba3if6cag3qcnq92ra9"))))
0ddbc25c
RW
1404 (package
1405 (inherit template)
0ddbc25c
RW
1406 (synopsis "Hyphenation patterns for Basque")
1407 (description "The package provides hyphenation patterns for the Basque
1408language.")
85892948 1409 ;; Similar to Unicode license.
0ddbc25c 1410 (license (license:fsf-free
85892948 1411 "/tex/generic/hyph-utf8/patterns/tex/hyph-eu.tex")))))
0ddbc25c 1412
92266796
RW
1413(define-public texlive-hyphen-belarusian
1414 (package
1415 (inherit (texlive-hyphen-package
1416 "texlive-hyphen-belarusian" "be"
1417 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-be.tex")
1418 (base32
85892948 1419 "0ppm12wndaxv9da62dwkbnk7w9nijikn6jkc97m76xis338g2h02")))
92266796
RW
1420 (synopsis "Hyphenation patterns for Belarusian")
1421 (description "The package provides hyphenation patterns for the Belarusian
1422language.")
1423 (license license:expat)))
1424
7ffc3105
RW
1425(define-public texlive-hyphen-bulgarian
1426 (package
1427 (inherit (texlive-hyphen-package
1428 "texlive-hyphen-bulgarian" "bg"
1429 (list "/doc/generic/hyph-utf8/bg/azbukaExtended.pdf"
1430 "/doc/generic/hyph-utf8/bg/azbukaExtended.tex"
1431 "/tex/generic/hyph-utf8/patterns/tex/hyph-bg.tex")
1432 (base32
85892948 1433 "0ngrgw2rmipxss76rgfk62x9nnsgwmaxxna2jqxxhybai3q39mx5")))
7ffc3105
RW
1434 (synopsis "Hyphenation patterns for Bulgarian")
1435 (description "The package provides hyphenation patterns for the Bulgarian
1436language in T2A and UTF-8 encodings.")
1437 (license (license:non-copyleft
1438 "file:///tex/generic/hyph-utf8/patterns/tex/hyph-bg.tex"
1439 "Ancestral BSD variant"))))
1440
cbc7e109
RW
1441(define-public texlive-hyphen-catalan
1442 (package
1443 (inherit (texlive-hyphen-package
1444 "texlive-hyphen-catalan" "ca"
1445 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ca.tex")
1446 (base32
85892948 1447 "10zzlfz5v8d9csg85ibpp2vfvmpqa56vbl85qy5gws099vygpayg")))
cbc7e109
RW
1448 (synopsis "Hyphenation patterns for Catalan")
1449 (description "The package provides hyphenation patterns for Catalan in
1450T1/EC and UTF-8 encodings.")
1451 (license license:lppl1.0+)))
010f476f 1452
9ebce8fc
RW
1453(define-public texlive-hyphen-chinese
1454 (package
1455 (inherit (texlive-hyphen-package
1456 "texlive-hyphen-chinese" "zh-latn-pinyin"
1457 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-zh-latn-pinyin.tex")
1458 (base32
85892948 1459 "1j68mry2zy91m1kbzwhin5q2jajf6xh48npdds8wvp1sqmzih2a3")))
9ebce8fc
RW
1460 (synopsis "Hyphenation patterns for unaccented Chinese pinyin")
1461 (description "The package provides hyphenation patterns for unaccented
1462Chinese pinyin T1/EC and UTF-8 encodings.")
1463 (license license:gpl2+)))
010f476f 1464
beed8377
RW
1465(define-public texlive-hyphen-churchslavonic
1466 (package
1467 (inherit (texlive-hyphen-package
1468 "texlive-hyphen-churchslavonic" "cu"
1469 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cu.tex")
756fc3e1 1470 (base32
85892948 1471 "0fhbwaapq2213msbhgr0d1lw06ihmrqirxj092mn73d8ynl13qlh")))
beed8377
RW
1472 (synopsis "Hyphenation patterns for Church Slavonic")
1473 (description "The package provides hyphenation patterns for Church
1474Slavonic in UTF-8 encoding.")
1475 (license license:expat)))
1476
1b1d8577
RW
1477(define-public texlive-hyphen-coptic
1478 (package
1479 (inherit (texlive-hyphen-package
1480 "texlive-hyphen-coptic" "cop"
1481 (list "/tex/generic/hyph-utf8/patterns/tex-8bit/copthyph.tex"
1482 "/tex/generic/hyph-utf8/patterns/tex/hyph-cop.tex")
1483 (base32
85892948 1484 "1jlxxvyfa2aljizaa3qlcxyhqsrb4dawv3q3fbyp2lxz6ag9fy6m")))
1b1d8577
RW
1485 (synopsis "Hyphenation patterns for Coptic")
1486 (description "The package provides hyphenation patterns for Coptic in
1487UTF-8 encoding as well as in ASCII-based encoding for 8-bit engines.")
1488 ;; No explicit license declaration, so we use the project license.
1489 (license license:lppl)))
010f476f 1490
9b65c611 1491(define-public texlive-hyphen-croatian
3e485ed2 1492 (package
9b65c611
RW
1493 (inherit (texlive-hyphen-package
1494 "texlive-hyphen-croatian" "hr"
1495 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hr.tex")
1496 (base32
85892948 1497 "12n9r2winai15jc622sqdwclgcs1s68r6vcf7ic8vvq0x9qhwc5v")))
9b65c611
RW
1498 (synopsis "Hyphenation patterns for Croatian")
1499 (description "The package provides hyphenation patterns for Croatian in
1500T1/EC and UTF-8 encodings.")
1501 (license license:lppl1.0+)))
3e485ed2 1502
b5b2ef6e 1503(define-public texlive-hyphen-czech
1193aa89 1504 (package
b5b2ef6e
RW
1505 (inherit (texlive-hyphen-package
1506 "texlive-hyphen-czech" "cs"
1507 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cs.tex")
1508 (base32
85892948 1509 "1q37s6p8yfyi3rp1azbz421lg4lr4aiki8m631i4x9rmps89m8iq")))
b5b2ef6e
RW
1510 (synopsis "Hyphenation patterns for Czech")
1511 (description "The package provides hyphenation patterns for Czech in T1/EC
1512and UTF-8 encodings.")
1513 (license license:gpl2+)))
1193aa89 1514
3889b022 1515(define-public texlive-hyphen-danish
9186c156 1516 (package
3889b022
RW
1517 (inherit (texlive-hyphen-package
1518 "texlive-hyphen-danish" "da"
1519 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-da.tex")
1520 (base32
85892948 1521 "1vj8nip64rzcrcg3skm4vqad1ggqwgan74znrdns610wjcm1z9qd")))
3889b022
RW
1522 (synopsis "Hyphenation patterns for Danish")
1523 (description "The package provides hyphenation patterns for Danish in
1524T1/EC and UTF-8 encodings.")
1525 ;; Either LPPL 1.3 or later, or Expat
1526 (license (list license:lppl1.3+ license:expat))))
1527
402b835f
RW
1528(define-public texlive-hyphen-dutch
1529 (package
1530 (inherit (texlive-hyphen-package
1531 "texlive-hyphen-dutch" "nl"
1532 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-nl.tex")
1533 (base32
85892948 1534 "1bg9g790ksq5cn8qihai6pacmkp9vpf35h4771z361nvwa40l8yk")))
402b835f
RW
1535 (synopsis "Hyphenation patterns for Dutch")
1536 (description "The package provides hyphenation patterns for Dutch in T1/EC
1537and UTF-8 encodings.")
1538 (license license:lppl1.0+)))
9186c156 1539
ab8f6de6 1540(define-public texlive-hyphen-english
437822a1 1541 (package
ab8f6de6
RW
1542 (inherit (texlive-hyphen-package
1543 "texlive-hyphen-english" '("en-gb" "en-us")
1544 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-en-gb.tex"
1545 "/tex/generic/hyph-utf8/patterns/tex/hyph-en-us.tex")
1546 (base32
85892948 1547 "08b3jihjaamcl1pvffi0s47nwavkm66l9mrrmby3l32dfpkprrc5")))
ab8f6de6
RW
1548 (synopsis "Hyphenation patterns for American and British English")
1549 (description "The package provides additional hyphenation patterns for
1550American and British English in ASCII encoding.")
1551 (license (license:non-copyleft
1552 "file:///tex/generic/hyph-utf8/patterns/tex/hyph-en-us.tex"
1553 "FSF all permissive license"))))
1554
d7c80395
RW
1555(define-public texlive-hyphen-esperanto
1556 (package
1557 (inherit (texlive-hyphen-package
1558 "texlive-hyphen-esperanto" "eo"
1559 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-eo.tex")
1560 (base32
85892948 1561 "1503kzn9bk4mm4ba35cka2hm8rz0v3j5l30v5rrsd4rqgpibcgic")))
d7c80395
RW
1562 (synopsis "Hyphenation patterns for Esperanto")
1563 (description "The package provides hyphenation patterns for Esperanto ISO
1564Latin 3 and UTF-8 encodings.")
437822a1
RW
1565 (license license:lppl1.0+)))
1566
5f229484 1567(define-public texlive-hyphen-estonian
4eebd2cd 1568 (package
5f229484
RW
1569 (inherit (texlive-hyphen-package
1570 "texlive-hyphen-estonian" "et"
1571 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-et.tex")
1572 (base32
85892948 1573 "1rdas2450ib02rwy65i69l86nyc9h15bl07xbbwhmhxfnj8zj4v8")))
5f229484
RW
1574 (synopsis "Hyphenation patterns for Estonian")
1575 (description "The package provides hyphenation patterns for Estonian in
1576T1/EC and UTF-8 encodings.")
1577 ;; Dual licensed under either license.
1578 (license (list license:lppl1.3+ license:expat))))
1579
54ef221c
RW
1580(define-public texlive-hyphen-ethiopic
1581 (let ((template (texlive-hyphen-package
1582 "texlive-hyphen-ethiopic" "mul-ethi"
85892948 1583 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-mul-ethi.tex")
54ef221c 1584 (base32
85892948 1585 "1b93fc6j4aybh0pgq23hsn1njm6asf7sfz803fbj3ai0whsxd10l"))))
54ef221c
RW
1586 (package
1587 (inherit template)
54ef221c
RW
1588 (synopsis "Hyphenation patterns for Ethiopic scripts")
1589 (description "The package provides hyphenation patterns for languages
1590written using the Ethiopic script for Unicode engines. They are not supposed
1591to be linguistically relevant in all cases and should, for proper typography,
1592be replaced by files tailored to individual languages.")
85892948 1593 (license license:expat))))
54ef221c 1594
bac10d82
RW
1595(define-public texlive-hyphen-finnish
1596 (package
1597 (inherit (texlive-hyphen-package
1598 "texlive-hyphen-finnish" "fi"
1599 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fi.tex")
1600 (base32
85892948 1601 "1f72b4ydb4zddvw2i004948khmwzigxkdkwfym5v1kkq0183sfpj")))
bac10d82
RW
1602 (synopsis "Hyphenation patterns for Finnish")
1603 (description "The package provides hyphenation patterns for Finnish in
1604T1/EC and UTF-8 encodings.")
1605 (license license:public-domain)))
1606
a14ffed2
RW
1607(define-public texlive-hyphen-french
1608 (package
1609 (inherit (texlive-hyphen-package
1610 "texlive-hyphen-french" "fr"
1611 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fr.tex")
1612 (base32
85892948 1613 "0jc3kqys6cxjw8x8pzjln7z78l8s7f5rlyrkv7dzr1kiwnwilk9d")))
a14ffed2
RW
1614 (synopsis "Hyphenation patterns for French")
1615 (description "The package provides hyphenation patterns for French in
1616T1/EC and UTF-8 encodings.")
1617 (license license:expat)))
1618
28fbf42a
RW
1619(define-public texlive-hyphen-friulan
1620 (package
1621 (inherit (texlive-hyphen-package
1622 "texlive-hyphen-friulan" "fur"
1623 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fur.tex")
1624 (base32
85892948 1625 "1dlnh8slpf50mryxv7zzbx08xp54zkdfs1j7y37ipwbrajvd740f")))
28fbf42a
RW
1626 (synopsis "Hyphenation patterns for Friulan")
1627 (description "The package provides hyphenation patterns for Friulan in
1628ASCII encodings.")
1629 (license license:lppl1.3+)))
1630
8d87184b
RW
1631(define-public texlive-hyphen-galician
1632 (let ((template (texlive-hyphen-package
1633 "texlive-hyphen-galician" "gl"
85892948 1634 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-gl.tex")
8d87184b 1635 (base32
85892948 1636 "13zx2r3nrxdr025g2lxrph0ga6wf7cs8dxixn4fhbl6xr1cx028g"))))
8d87184b
RW
1637 (package
1638 (inherit template)
8d87184b
RW
1639 (synopsis "Hyphenation patterns for Galician")
1640 (description "The package provides hyphenation patterns for Galician in
1641T1/EC and UTF-8 encodings.")
85892948 1642 (license license:lppl1.3))))
8d87184b 1643
b2334b6e
RW
1644(define-public texlive-hyphen-georgian
1645 (package
1646 (inherit (texlive-hyphen-package
1647 "texlive-hyphen-georgian" "ka"
1648 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ka.tex")
1649 (base32
85892948 1650 "0l0hk7ka04fr8x11nnw95x151cxyycy0fph772m3a3p8qk4x9wp7")))
b2334b6e
RW
1651 (synopsis "Hyphenation patterns for Georgian")
1652 (description "The package provides hyphenation patterns for Georgian in
1653T8M, T8K, and UTF-8 encodings.")
1654 (license license:lppl1.3+)))
1655
6028620d
RW
1656(define-public texlive-hyphen-german
1657 (package
1658 (inherit (texlive-hyphen-package
1659 "texlive-hyphen-german" '("de-1901" "de-1996" "de-ch-1901")
1660 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-de-1901.tex"
1661 "/tex/generic/hyph-utf8/patterns/tex/hyph-de-1996.tex"
1662 "/tex/generic/hyph-utf8/patterns/tex/hyph-de-ch-1901.tex"
85892948
MB
1663 "/tex/generic/dehyph/dehyphn.tex"
1664 "/tex/generic/dehyph/dehypht.tex"
1665 "/tex/generic/dehyph/dehyphtex.tex"
1666 "/tex/generic/dehyph/README")
6028620d 1667 (base32
85892948 1668 "0wp5by5kkf4ac6li5mbppqzw11500wa7f22p5vpz3m1kwd15zavw")))
6028620d
RW
1669 (synopsis "Hyphenation patterns for German")
1670 (description "This package provides hyphenation patterns for German in
1671T1/EC and UTF-8 encodings, for traditional and reformed spelling, including
1672Swiss German.")
1673 ;; The patterns are released under the Expat license; the dehyph* files
1674 ;; are released under the LPPL version 1 or later.
1675 (license (list license:expat license:lppl1.0+))))
1676
65e4cfd1
RW
1677(define-public texlive-hyphen-greek
1678 (package
1679 (inherit (texlive-hyphen-package
1680 "texlive-hyphen-greek" '("el-monoton" "el-polyton")
1681 (list "/doc/generic/elhyphen/"
1682 "/tex/generic/hyph-utf8/patterns/tex/hyph-el-monoton.tex"
1683 "/tex/generic/hyph-utf8/patterns/tex/hyph-el-polyton.tex"
1684 "/tex/generic/hyphen/grmhyph5.tex"
1685 "/tex/generic/hyphen/grphyph5.tex")
1686 (base32
85892948 1687 "1qyr6m1nh6d4wj68616cfxv4wjpiy1w2rlldxlx2ajzba381w3hf")))
65e4cfd1
RW
1688 (synopsis "Hyphenation patterns for Greek")
1689 (description "This package provides hyphenation patterns for Modern Greek
1690in monotonic and polytonic spelling in LGR and UTF-8 encodings.")
1691 (license license:lppl)))
1692
36f03c33
RW
1693(define-public texlive-hyphen-hungarian
1694 (package
1695 (inherit (texlive-hyphen-package
1696 "texlive-hyphen-hungarian" "hu"
1697 (list "/doc/generic/huhyphen/"
1698 "/doc/generic/hyph-utf8/hu/"
1699 "/tex/generic/hyph-utf8/patterns/tex/hyph-hu.tex")
1700 (base32
85892948 1701 "1j1b8kksg9r8nmjyjvvz8fr3hgcrjj6jlybf9p06nwrrwm2r8j8f")))
36f03c33
RW
1702 (synopsis "Hyphenation patterns for Hungarian")
1703 (description "This package provides hyphenation patterns for Hungarian in
1704T1/EC and UTF-8 encodings.")
1705 ;; Any of these licenses
1706 (license (list license:gpl2 license:lgpl2.1+ license:mpl1.1))))
1707
33a446e6
RW
1708(define-public texlive-hyphen-icelandic
1709 (package
1710 (inherit (texlive-hyphen-package
1711 "texlive-hyphen-icelandic" "is"
1712 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-is.tex")
1713 (base32
85892948 1714 "1m9xj41csj3ldym09d82zjbd3345sg2z10d8pxpvhgibf97mb66h")))
33a446e6
RW
1715 (synopsis "Hyphenation patterns for Icelandic")
1716 (description "This package provides hyphenation patterns for Icelandic in
1717T1/EC and UTF-8 encodings.")
1718 (license license:lppl1.2+)))
1719
825285d8
RW
1720(define-public texlive-hyphen-indic
1721 (package
1722 (inherit (texlive-hyphen-package
1723 "texlive-hyphen-indic"
1724 '("as" "bn" "gu" "hi" "kn" "ml" "mr" "or" "pa" "ta" "te")
1725 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-as.tex"
1726 "/tex/generic/hyph-utf8/patterns/tex/hyph-bn.tex"
1727 "/tex/generic/hyph-utf8/patterns/tex/hyph-gu.tex"
1728 "/tex/generic/hyph-utf8/patterns/tex/hyph-hi.tex"
1729 "/tex/generic/hyph-utf8/patterns/tex/hyph-kn.tex"
1730 "/tex/generic/hyph-utf8/patterns/tex/hyph-ml.tex"
1731 "/tex/generic/hyph-utf8/patterns/tex/hyph-mr.tex"
1732 "/tex/generic/hyph-utf8/patterns/tex/hyph-or.tex"
1733 "/tex/generic/hyph-utf8/patterns/tex/hyph-pa.tex"
1734 "/tex/generic/hyph-utf8/patterns/tex/hyph-ta.tex"
1735 "/tex/generic/hyph-utf8/patterns/tex/hyph-te.tex")
1736 (base32
85892948 1737 "02d2kcd3lpk95fykjwhzw9s2a1s2w1skz8h2mmszrz979d1xzhpm")))
825285d8
RW
1738 (synopsis "Indic hyphenation patterns")
1739 (description "This package provides hyphenation patterns for Assamese,
1740Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Panjabi, Tamil
1741and Telugu for Unicode engines.")
1742 (license license:expat)))
1743
b6832d79
RW
1744(define-public texlive-hyphen-indonesian
1745 (package
1746 (inherit (texlive-hyphen-package
1747 "texlive-hyphen-indonesian" "id"
1748 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-id.tex")
1749 (base32
85892948 1750 "1r62w02rf0i4z0jgij54d16qjbj0zyfwm9dwdkqka76jrivij83q")))
b6832d79
RW
1751 (synopsis "Indonesian hyphenation patterns")
1752 (description "This package provides hyphenation patterns for
1753Indonesian (Bahasa Indonesia) in ASCII encoding. They are probably also
1754usable for Malay (Bahasa Melayu).")
1755 (license license:gpl2)))
1756
9535f149
RW
1757(define-public texlive-hyphen-interlingua
1758 (package
1759 (inherit (texlive-hyphen-package
1760 "texlive-hyphen-interlingua" "ia"
1761 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ia.tex")
1762 (base32
85892948 1763 "0a9na20vjnzhgjbicaxay0jk4rm5zg1rjyiswr377mjhd9mx5cg3")))
9535f149
RW
1764 (synopsis "Interlingua hyphenation patterns")
1765 (description "This package provides hyphenation patterns for Interlingua
1766in ASCII encoding.")
1767 (license license:lppl1.3+)))
1768
88963a8e
RW
1769(define-public texlive-hyphen-irish
1770 (package
1771 (inherit (texlive-hyphen-package
1772 "texlive-hyphen-irish" "ga"
1773 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ga.tex")
1774 (base32
85892948 1775 "1h1l9jzkpsb91nyhz6s6c9jfrbz8jx5ip8vyq3dkz0rl6g960i6b")))
88963a8e
RW
1776 (synopsis "Irish hyphenation patterns")
1777 (description "This package provides hyphenation patterns for
1778Irish (Gaeilge) in T1/EC and UTF-8 encodings.")
1779 ;; Either of these licenses
1780 (license (list license:gpl2+ license:expat))))
1781
e33250e4
RW
1782(define-public texlive-hyphen-italian
1783 (package
1784 (inherit (texlive-hyphen-package
1785 "texlive-hyphen-italian" "it"
1786 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-it.tex")
1787 (base32
85892948 1788 "03c7jiqslfxvl3gbdx79hggbvrfi2l4z2bnwxc0na8f8lkp1m787")))
e33250e4
RW
1789 (synopsis "Italian hyphenation patterns")
1790 (description "This package provides hyphenation patterns for Italian in
1791ASCII encoding. Compliant with the Recommendation UNI 6461 on hyphenation
1792issued by the Italian Standards Institution (Ente Nazionale di Unificazione
1793UNI).")
1794 (license license:lppl1.3+)))
1795
0b344257
RW
1796(define-public texlive-hyphen-kurmanji
1797 (package
1798 (inherit (texlive-hyphen-package
1799 "texlive-hyphen-kurmanji" "kmr"
1800 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-kmr.tex")
1801 (base32
85892948 1802 "01ylbsi5wymrdrxr9b28nmjmcj72mdhqr657lwsb6m9aj33c9ql6")))
0b344257
RW
1803 (synopsis "Kurmanji hyphenation patterns")
1804 (description "This package provides hyphenation patterns for
1805Kurmanji (Northern Kurdish) as spoken in Turkey and by the Kurdish diaspora in
1806Europe, in T1/EC and UTF-8 encodings.")
1807 (license license:lppl1.3)))
1808
2f3a07c6
RW
1809(define-public texlive-hyphen-latin
1810 (package
1811 (inherit (texlive-hyphen-package
1812 "texlive-hyphen-latin" '("la-x-classic" "la-x-liturgic" "la")
1813 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-la-x-classic.tex"
1814 "/tex/generic/hyph-utf8/patterns/tex/hyph-la-x-liturgic.tex"
1815 "/tex/generic/hyph-utf8/patterns/tex/hyph-la.tex")
1816 (base32
85892948 1817 "0rxg8a4s5cpj8vlkz5a74a036axda5jqgvr3f9aj2cc2x9f2f3w9")))
2f3a07c6
RW
1818 (synopsis "Liturgical Latin hyphenation patterns")
1819 (description "This package provides hyphenation patterns for Latin in
1820T1/EC and UTF-8 encodings, mainly in modern spelling (u when u is needed and v
1821when v is needed), medieval spelling with the ligatures @code{\\ae} and
1822@code{\\oe} and the (uncial) lowercase 'v' written as a 'u' is also supported.
1823Apparently there is no conflict between the patterns of modern Latin and those
1824of medieval Latin. It also includes hyphenation patterns for the Classical
1825Latin in T1/EC and UTF-8 encodings. Classical Latin hyphenation patterns are
1826different from those of 'plain' Latin, the latter being more adapted to modern
1827Latin. It also provides hyphenation patterns for the Liturgical Latin in
1828T1/EC and UTF-8 encodings.")
1829 ;; Either of these licenses
1830 (license (list license:lppl1.0+ license:expat))))
1831
e8effd27
RW
1832(define-public texlive-hyphen-latvian
1833 (package
1834 (inherit (texlive-hyphen-package
1835 "texlive-hyphen-latvian" "lv"
1836 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-lv.tex")
1837 (base32
85892948 1838 "00jf8xma4ldz0zpqwma97k9q3j0mqx7qdj6b7baph3n5xgc24aaw")))
e8effd27
RW
1839 (synopsis "Latvian hyphenation patterns")
1840 (description "This package provides hyphenation patterns for Latvian in
1841L7X and UTF-8 encodings.")
1842 ;; Either of these licenses.
1843 (license (list license:gpl2 license:lgpl2.1))))
1844
af0e6cc8
RW
1845(define-public texlive-hyphen-lithuanian
1846 (package
1847 (inherit (texlive-hyphen-package
1848 "texlive-hyphen-lithuanian" "lt"
1849 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-lt.tex")
1850 (base32
85892948 1851 "1kfq7j2ajg6nj952s1ygd520sj9z9kl0bqvd291a36ni2b1frzgd")))
af0e6cc8
RW
1852 (synopsis "Lithuanian hyphenation patterns")
1853 (description "This package provides hyphenation patterns for Lithuanian in
1854L7X and UTF-8 encodings.")
1855 ;; "Do ... whatever ... as long as you respect the copyright"; as part of
1856 ;; the hyph-utf8 package we choose the LPPL license.
1857 (license license:lppl)))
1858
1890799b
RW
1859(define-public texlive-hyphen-mongolian
1860 (package
1861 (inherit (texlive-hyphen-package
1862 "texlive-hyphen-mongolian" '("mn-cyrl-x-lmc" "mn-cyrl")
1863 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-mn-cyrl-x-lmc.tex"
1864 "/tex/generic/hyph-utf8/patterns/tex/hyph-mn-cyrl.tex")
1865 (base32
85892948 1866 "1y1b91ihrdl9bad3rxlsfjpd9wmyd5zzgci3qv9w8qqk33jxhwya")))
1890799b
RW
1867 (synopsis "Mongolian hyphenation patterns in Cyrillic script")
1868 (description "This package provides hyphenation patterns for Mongolian in
1869T2A, LMC and UTF-8 encodings.")
1870 ;; Either of these licenses
1871 (license (list license:lppl1.3+ license:expat))))
1872
da2b2d49
RW
1873(define-public texlive-hyphen-norwegian
1874 (package
1875 (inherit (texlive-hyphen-package
1876 "texlive-hyphen-norwegian" '("nb" "nn" "no")
1877 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-nb.tex"
1878 "/tex/generic/hyph-utf8/patterns/tex/hyph-nn.tex"
1879 "/tex/generic/hyph-utf8/patterns/tex/hyph-no.tex")
1880 (base32
85892948 1881 "08gbwj64p4fckm199k52yp5lx65h9f4wwdkvl4pv4aa7k370jq9y")))
da2b2d49
RW
1882 (synopsis "Norwegian Bokmal and Nynorsk hyphenation patterns")
1883 (description "This package provides hyphenation patterns for Norwegian
1884Bokmal and Nynorsk in T1/EC and UTF-8 encodings.")
1885 (license (license:non-copyleft
1886 "/tex/generic/hyph-utf8/patterns/tex/hyph-no.tex"
1887 "FSF All permissive license"))))
1888
033406ad
RW
1889(define-public texlive-hyphen-occitan
1890 (package
1891 (inherit (texlive-hyphen-package
1892 "texlive-hyphen-occitan" "oc"
1893 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-oc.tex")
1894 (base32
85892948 1895 "0vhjbq2nr58vhqwwky3cwx4dqiwjmmfwp81rb65mfpf0m8yypdfg")))
033406ad
RW
1896 (synopsis "Occitan hyphenation patterns")
1897 (description "This package provides hyphenation patterns for Occitan in
1898T1/EC and UTF-8 encodings. They are supposed to be valid for all the Occitan
1899variants spoken and written in the wide area called 'Occitanie' by the French.
1900It ranges from the Val d'Aran within Catalunya, to the South Western Italian
1901Alps encompassing the southern half of the French pentagon.")
1902 (license license:lppl1.0+)))
1903
737ac0b7
MB
1904(define-public texlive-hyphen-pali
1905 (package
1906 (inherit (texlive-hyphen-package
1907 "texlive-hyphen-pali" "pi"
1908 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pi.tex")
1909 (base32
1910 "1fak853s4ijdqgrnhwymaq1lh8jab3qfyxapdmf6qpg6bqd20kxq")))
1911 (synopsis "Panjabi hyphenation patterns")
1912 (description "This package provides hyphenation patterns for Panjabi in
1913T1/EC encoding.")
1914 ;; Can be used with either license.
1915 (license (list license:expat license:lgpl3+ license:gpl3+))))
1916
db3f7fda
RW
1917(define-public texlive-hyphen-piedmontese
1918 (package
1919 (inherit (texlive-hyphen-package
1920 "texlive-hyphen-piedmontese" "pms"
1921 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pms.tex")
1922 (base32
85892948 1923 "0xva3l2gwzkqw1sz64k5g5iprhdyr27w1mv8rxp8x62i5y3aqr1k")))
db3f7fda
RW
1924 (synopsis "Piedmontese hyphenation patterns")
1925 (description "This package provides hyphenation patterns for Piedmontese
1926in ASCII encoding. Compliant with 'Gramatica dla lengua piemonteisa' by
1927Camillo Brero.")
1928 (license license:lppl1.3+)))
1929
9c451e77
RW
1930(define-public texlive-hyphen-polish
1931 (package
1932 (inherit (texlive-hyphen-package
1933 "texlive-hyphen-polish" "pl"
1934 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pl.tex")
1935 (base32
85892948 1936 "1c22g99isxapv4xjrmsw24hhp1xb83wbgcxyd8j24mxdnizywxzm")))
9c451e77
RW
1937 (synopsis "Polish hyphenation patterns")
1938 (description "This package provides hyphenation patterns for Polish in QX
1939and UTF-8 encodings.")
1940 ;; No differing license declared, so we choose the project license.
1941 (license license:lppl)))
1942
5fd12ffb
RW
1943(define-public texlive-hyphen-portuguese
1944 (package
1945 (inherit (texlive-hyphen-package
1946 "texlive-hyphen-portuguese" "pt"
1947 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pt.tex")
1948 (base32
85892948 1949 "00rkjy4p7893zs940bq3s4hp7al0skgxqggj5qfax0bx8karf30b")))
5fd12ffb
RW
1950 (synopsis "Portuguese hyphenation patterns")
1951 (description "This package provides hyphenation patterns for Portuguese in
1952T1/EC and UTF-8 encodings.")
1953 (license license:bsd-3)))
1954
6fa3b112
RW
1955(define-public texlive-hyphen-romanian
1956 (package
1957 (inherit (texlive-hyphen-package
1958 "texlive-hyphen-romanian" "ro"
1959 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ro.tex")
1960 (base32
85892948 1961 "1ykb5v7ip6p3n34wq8qypfyrap4gg946by5rsl6ab0k5gv6ypsbf")))
6fa3b112
RW
1962 (synopsis "Romanian hyphenation patterns")
1963 (description "This package provides hyphenation patterns for Romanian in
1964T1/EC and UTF-8 encodings.")
1965 ;; No differing license declared, so we choose the project license.
1966 (license license:lppl)))
1967
c4abd4a2
RW
1968(define-public texlive-hyphen-romansh
1969 (package
1970 (inherit (texlive-hyphen-package
1971 "texlive-hyphen-romansh" "rm"
1972 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-rm.tex")
1973 (base32
85892948 1974 "0a1q9p6sp5n6a9w6xhwk03vmkrrmnh2md7g1k4qhnf0dc4h7dy9r")))
c4abd4a2
RW
1975 (synopsis "Romansh hyphenation patterns")
1976 (description "This package provides hyphenation patterns for Romansh in
1977ASCII encodings. They are supposed to comply with the rules indicated by the
1978Lia Rumantscha (Romansh language society).")
1979 (license license:lppl1.3+)))
1980
483d8af6
RW
1981(define-public texlive-hyphen-russian
1982 (package
1983 (inherit (texlive-hyphen-package
1984 "texlive-hyphen-russian" "ru"
1985 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ru.tex")
1986 (base32
85892948 1987 "00sy7qh5f8ryxw36fwbyd1yi2hxhv7hmk99yp7dwh73n4mxv6lpl")))
483d8af6
RW
1988 (synopsis "Russian hyphenation patterns")
1989 (description "This package provides hyphenation patterns for Russian in
1990T2A and UTF-8 encodings.")
1991 (license license:lppl1.2+)))
1992
19e31f91
RW
1993(define-public texlive-hyphen-sanskrit
1994 (package
1995 (inherit (texlive-hyphen-package
1996 "texlive-hyphen-sanskrit" "sa"
1997 (list "/doc/generic/hyph-utf8/sa/hyphenmin.txt"
1998 "/tex/generic/hyph-utf8/patterns/tex/hyph-sa.tex")
1999 (base32
85892948 2000 "0gi2qk0wf388h9n25gzhv0cdz67ph83wal8h3iz2sqnpdjsw8kpc")))
19e31f91
RW
2001 (synopsis "Sanskrit hyphenation patterns")
2002 (description "This package provides hyphenation patterns for Sanskrit and
2003Prakrit in longdesc transliteration, and in Devanagari, Bengali, Kannada,
2004Malayalam longdesc and Telugu scripts for Unicode engines.")
2005 ;; "You may freely use, copy, modify and/or distribute this file."
2006 (license (license:non-copyleft
2007 "file:///tex/generic/hyph-utf8/patterns/tex/hyph-sa.tex"))))
2008
67c7900e
RW
2009(define-public texlive-hyphen-serbian
2010 (package
2011 (inherit (texlive-hyphen-package
2012 "texlive-hyphen-serbian" '("sh-cyrl" "sh-latn" "sr-cyrl")
2013 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sh-cyrl.tex"
2014 "/tex/generic/hyph-utf8/patterns/tex/hyph-sh-latn.tex"
2015 "/tex/generic/hyph-utf8/patterns/tex/hyph-sr-cyrl.tex")
2016 (base32
85892948 2017 "0pwc9z0m5y6acq1vqm0da9akg156jbhxzvsfp2f8bsz5b99y5z45")))
67c7900e
RW
2018 (synopsis "Serbian hyphenation patterns")
2019 (description "This package provides hyphenation patterns for Serbian in
2020T1/EC, T2A and UTF-8 encodings.")
2021 ;; Any version of the GPL.
2022 (license license:gpl3+)))
2023
af13345a
RW
2024(define-public texlive-hyphen-slovak
2025 (package
2026 (inherit (texlive-hyphen-package
2027 "texlive-hyphen-slovak" "sk"
2028 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sk.tex")
2029 (base32
85892948 2030 "0ppp53bbclp5c8wvx748krvrp5y5053khgkjnnv966a90fvp3vgd")))
af13345a
RW
2031 (synopsis "Slovak hyphenation patterns")
2032 (description "This package provides hyphenation patterns for Slovak in
2033T1/EC and UTF-8 encodings.")
2034 (license license:gpl2+)))
2035
3cd8868f
RW
2036(define-public texlive-hyphen-slovenian
2037 (package
2038 (inherit (texlive-hyphen-package
2039 "texlive-hyphen-slovenian" "sl"
2040 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sl.tex")
2041 (base32
85892948 2042 "02n8l9yf4hqyhbpsc1n6b2mggy09z6lq4dcb8ndiwawb6h0mp7s4")))
3cd8868f
RW
2043 (synopsis "Slovenian hyphenation patterns")
2044 (description "This package provides hyphenation patterns for Slovenian in
2045T1/EC and UTF-8 encodings.")
2046 ;; Either license
2047 (license (list license:lppl1.0+ license:expat))))
2048
40b009b8
RW
2049(define-public texlive-hyphen-spanish
2050 (package
2051 ;; The source files "eshyph-make.lua" and "eshyph.src" are provided to
2052 ;; generate obsolete hyphenation patterns, which aren't included in a
2053 ;; default TeX Live distribution, so we don't include them either.
2054 (inherit (texlive-hyphen-package
2055 "texlive-hyphen-spanish" "es"
2056 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-es.tex")
2057 (base32
85892948 2058 "1h3yg9vcq0lf7hxv0ahkqmyg269dxjs8m2mz8sgz5l1fxmvahvaj")))
40b009b8
RW
2059 (synopsis "Hyphenation patterns for Spanish")
2060 (description "The package provides hyphenation patterns for Spanish in
2061T1/EC and UTF-8 encodings.")
2062 (license license:expat)))
2063
1e7db181
RW
2064(define-public texlive-hyphen-swedish
2065 (package
2066 (inherit (texlive-hyphen-package
2067 "texlive-hyphen-swedish" "sv"
2068 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sv.tex")
2069 (base32
85892948 2070 "1n7incy7n24pix1q2i8c3h7i78zpql5ayhskavlmy6mhd7ayncaw")))
1e7db181
RW
2071 (synopsis "Swedish hyphenation patterns")
2072 (description "This package provides hyphenation patterns for Swedish in
2073T1/EC and UTF-8 encodings.")
2074 (license license:lppl1.2+)))
2075
3eaee8fb
RW
2076(define-public texlive-hyphen-thai
2077 (package
2078 (inherit (texlive-hyphen-package
2079 "texlive-hyphen-thai" "th"
2080 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-th.tex")
2081 (base32
85892948 2082 "00gxcs4jfqifd5cnrjipn77m73fmpw2qms4lp216jj3kz4a7h9kf")))
3eaee8fb
RW
2083 (synopsis "Thai hyphenation patterns")
2084 (description "This package provides hyphenation patterns for Thai in LTH
2085and UTF-8 encodings.")
2086 (license license:lppl1.3+)))
2087
e80ecb7b
RW
2088(define-public texlive-hyphen-turkish
2089 (let ((template (texlive-hyphen-package
2090 "texlive-hyphen-turkish" "tr"
85892948 2091 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-tr.tex")
e80ecb7b 2092 (base32
85892948 2093 "04sihjgpm31i5bi67rrfp15w3imn7hxwwk70v0vhx053ghxy72vh"))))
e80ecb7b
RW
2094 (package
2095 (inherit template)
e80ecb7b
RW
2096 (synopsis "Hyphenation patterns for Turkish")
2097 (description "The package provides hyphenation patterns for Turkish in
2098T1/EC and UTF-8 encodings. The patterns for Turkish were first produced for
2099the Ottoman Texts Project in 1987 and were suitable for both Modern Turkish
2100and Ottoman Turkish in Latin script, however the required character set didn't
2101fit into EC encoding, so support for Ottoman Turkish had to be dropped to keep
2102compatibility with 8-bit engines.")
2103 (license license:lppl1.0+))))
2104
5f50dd95
RW
2105(define-public texlive-hyphen-turkmen
2106 (let ((template (texlive-hyphen-package
2107 "texlive-hyphen-turkmen" "tk"
85892948 2108 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-tk.tex")
5f50dd95 2109 (base32
85892948 2110 "0g5ip2lw9g47s61mv3cypswc6qm7zy9c4iqq4h19ysvds81adzkr"))))
5f50dd95
RW
2111 (package
2112 (inherit template)
5f50dd95
RW
2113 (synopsis "Hyphenation patterns for Turkmen")
2114 (description "The package provides hyphenation patterns for Turkmen in
2115T1/EC and UTF-8 encodings.")
85892948 2116 (license license:expat))))
5f50dd95 2117
cf8f4e1b
RW
2118(define-public texlive-hyphen-ukrainian
2119 (package
2120 (inherit (texlive-hyphen-package
2121 "texlive-hyphen-ukrainian" "uk"
2122 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-uk.tex")
2123 (base32
85892948 2124 "0fbfhx1fmbshxr4ihsjaqgx251h69h7i288p8gh3w6ysgxr53p60")))
cf8f4e1b
RW
2125 (synopsis "Ukrainian hyphenation patterns")
2126 (description "This package provides hyphenation patterns for Ukrainian in
2127T2A and UTF-8 encodings.")
2128 ;; No version specified
2129 (license license:lppl)))
2130
71e58125
RW
2131(define-public texlive-hyphen-uppersorbian
2132 (package
2133 (inherit (texlive-hyphen-package
2134 "texlive-hyphen-uppersorbian" "hsb"
2135 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hsb.tex")
2136 (base32
85892948 2137 "0x0051wph3sqmzzw6prvjy6bp7gn02rbmys1bmbc210jk3pkylfj")))
71e58125
RW
2138 (synopsis "Upper Sorbian hyphenation patterns")
2139 (description "This package provides hyphenation patterns for Upper Sorbian
2140in T1/EC and UTF-8 encodings.")
2141 (license license:lppl1.3a+)))
2142
0d4088e4
RW
2143(define-public texlive-hyphen-welsh
2144 (package
2145 (inherit (texlive-hyphen-package
2146 "texlive-hyphen-welsh" "cy"
2147 (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cy.tex")
2148 (base32
85892948 2149 "1bpxp3jiifdw7waw2idz5j9xgi3526nkxm8mbmsspr4mlf2xyr76")))
0d4088e4
RW
2150 (synopsis "Welsh hyphenation patterns")
2151 (description "This package provides hyphenation patterns for Welsh in
2152T1/EC and UTF-8 encodings.")
2153 ;; Either license
2154 (license (list license:lppl1.0+ license:expat))))
2155
5153431c
RW
2156(define-public texlive-hyph-utf8
2157 (package
2158 (inherit (simple-texlive-package
2159 "texlive-hyph-utf8"
2160 (list "/source/generic/hyph-utf8/"
2161 "/source/luatex/hyph-utf8/"
2162 "/doc/luatex/hyph-utf8/"
2163 "/tex/luatex/hyph-utf8/etex.src"
2164 ;; Used to extract luatex-hyphen.lua
2165 "/tex/latex/base/docstrip.tex"
2166
2167 ;; Documentation; we can't use the whole directory because
2168 ;; it includes files from other packages.
2169 "/doc/generic/hyph-utf8/CHANGES"
2170 "/doc/generic/hyph-utf8/HISTORY"
2171 "/doc/generic/hyph-utf8/hyph-utf8.pdf"
2172 "/doc/generic/hyph-utf8/hyph-utf8.tex"
2173 "/doc/generic/hyph-utf8/hyphenation-distribution.pdf"
2174 "/doc/generic/hyph-utf8/hyphenation-distribution.tex"
2175 "/doc/generic/hyph-utf8/img/miktex-languages.png"
2176 "/doc/generic/hyph-utf8/img/texlive-collection.png")
2177 (base32
85892948 2178 "1bar5mc808ch20anhqrdxcwiych359qsvr7mggxpg2l2kq5xdyq0")))
5153431c
RW
2179 (outputs '("out" "doc"))
2180 (build-system gnu-build-system)
2181 (arguments
2182 `(#:tests? #f ; there are none
2183 #:modules ((guix build gnu-build-system)
2184 (guix build utils)
2185 (ice-9 match))
2186 #:make-flags
2187 (list "-C" "source/luatex/hyph-utf8/"
2188 (string-append "DO_TEX = tex --interaction=nonstopmode '&tex' $<")
2189 (string-append "RUNDIR =" (assoc-ref %outputs "out") "/share/texmf-dist/tex/luatex/hyph-utf8/")
2190 (string-append "DOCDIR =" (assoc-ref %outputs "doc") "/share/texmf-dist/doc/luatex/hyph-utf8/")
2191 ;; hyphen.cfg is neither included nor generated, so let's only build the lua file.
2192 (string-append "UNPACKED = $(NAME).lua"))
2193 #:phases
2194 (modify-phases %standard-phases
2195 ;; TeX isn't usable at this point, so we first need to generate the
2196 ;; tex.fmt.
2197 (replace 'configure
2198 (lambda* (#:key inputs outputs #:allow-other-keys)
2199 ;; Target directories must exist.
2200 (mkdir-p (string-append (assoc-ref %outputs "out")
2201 "/share/texmf-dist/tex/luatex/hyph-utf8/"))
2202 (mkdir-p (string-append (assoc-ref %outputs "doc")
2203 "/share/texmf-dist/doc/luatex/hyph-utf8/"))
2204
2205 ;; We cannot build the documentation because that requires a
2206 ;; fully functional pdflatex, which depends on this package.
2207 (substitute* "source/luatex/hyph-utf8/Makefile"
2208 (("all: .*") "all: $(RUNFILES)\n"))
2209
2210 ;; Find required fonts for building tex.fmt
2211 (setenv "TFMFONTS"
a6405e03 2212 (string-append (assoc-ref inputs "texlive-cm")
5153431c
RW
2213 "/share/texmf-dist/fonts/tfm/public/cm:"
2214 (assoc-ref inputs "texlive-fonts-knuth-lib")
2215 "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
2216 ;; ...and find all tex files in this environment.
2217 (setenv "TEXINPUTS"
2218 (string-append
2219 (getcwd) ":"
2220 (string-join
2221 (map (match-lambda ((_ . dir) dir)) inputs)
2222 "//:")))
2223
2224 ;; Generate tex.fmt.
2225 (let ((where "source/luatex/hyph-utf8"))
2226 (mkdir-p where)
2227 (with-directory-excursion where
2228 (invoke "tex" "-ini"
2229 (string-append (assoc-ref inputs "texlive-tex-plain")
2230 "/share/texmf-dist/tex/plain/config/tex.ini"))))))
2231 (add-before 'build 'build-loaders-and-converters
2232 (lambda* (#:key outputs #:allow-other-keys)
2233 (let* ((root (string-append (assoc-ref outputs "out")
2234 "/share/texmf-dist"))
2235 (conv
2236 (string-append root
2237 "/tex/generic/hyph-utf8/conversions")))
2238
2239 ;; Build converters
2240 (mkdir-p conv)
2241 (with-directory-excursion "source/generic/hyph-utf8"
2242 (substitute* "generate-converters.rb"
2243 (("\\$path_root=File.*")
2244 (string-append "$path_root=\"" root "\"\n"))
2245 ;; Avoid error with newer Ruby.
2246 (("#1\\{%") "#1{%%"))
2247 (invoke "ruby" "generate-converters.rb"))
2248 #t)))
2249 (replace 'install
2250 (lambda* (#:key source outputs #:allow-other-keys)
2251 (let ((doc (assoc-ref outputs "doc"))
2252 (out (assoc-ref outputs "out")))
2253 (mkdir-p doc)
2254 (copy-recursively
2255 (string-append source "/doc")
2256 (string-append doc "/doc"))
2257 (install-file
2258 (string-append source "/tex/luatex/hyph-utf8/etex.src")
2259 (string-append out "/share/texmf-dist/tex/luatex/hyph-utf8/")))
2260 #t)))))
2261 (native-inputs
2262 `(("ruby" ,ruby)
2263 ("texlive-bin" ,texlive-bin)
2264 ;; The following packages are needed for build "tex.fmt", which we need
2265 ;; for a working "tex".
2266 ("texlive-tex-plain" ,texlive-tex-plain)
a6405e03 2267 ("texlive-cm" ,texlive-cm)
5153431c
RW
2268 ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)
2269 ("texlive-hyphen-base" ,texlive-hyphen-base)))
2270 (home-page "https://ctan.org/pkg/hyph-utf8")
2271 (synopsis "Hyphenation patterns expressed in UTF-8")
2272 (description "Modern native UTF-8 engines such as XeTeX and LuaTeX need
2273hyphenation patterns in UTF-8 format, whereas older systems require
2274hyphenation patterns in the 8-bit encoding of the font in use (such encodings
2275are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1,
2276etc). The present package offers a collection of conversions of existing
2277patterns to UTF-8 format, together with converters for use with 8-bit fonts in
2278older systems. Since hyphenation patterns for Knuthian-style TeX systems are
2279only read at iniTeX time, it is hoped that the UTF-8 patterns, with their
2280converters, will completely supplant the older patterns.")
2281 ;; Individual files each have their own license. Most of these files are
2282 ;; independent hyphenation patterns.
2283 (license (list license:lppl1.0+
2284 license:lppl1.2+
2285 license:lppl1.3
2286 license:lppl1.3+
2287 license:lppl1.3a+
2288 license:lgpl2.1
2289 license:lgpl2.1+
2290 license:lgpl3+
2291 license:gpl2+
2292 license:gpl3+
2293 license:mpl1.1
2294 license:asl2.0
2295 license:expat
2296 license:bsd-3
2297 license:cc0
2298 license:public-domain
2299 license:wtfpl2))))
2300
2301(define-public texlive-generic-hyph-utf8
2302 (deprecated-package "texlive-generic-hyph-utf8" texlive-hyph-utf8))
2303
e68c7091
RW
2304(define-public texlive-dehyph-exptl
2305 (package
2306 (inherit (simple-texlive-package
2307 "texlive-dehyph-exptl"
2308 (list "/tex/generic/dehyph-exptl/"
2309 "/doc/generic/dehyph-exptl/")
2310 (base32
85892948 2311 "1fnqc63gz8gvdyfz45bx8dxn1r1rwrypahs3bqd2vlc8ff76xp86")
e68c7091
RW
2312 #:trivial? #t))
2313 (propagated-inputs
2314 `(("texlive-hyphen-base" ,texlive-hyphen-base)
2315 ("texlive-hyph-utf8" ,texlive-hyph-utf8)))
2316 (home-page "http://projekte.dante.de/Trennmuster/WebHome")
2317 (synopsis "Hyphenation patterns for German")
2318 (description "The package provides experimental hyphenation patterns for
2319the German language, covering both traditional and reformed orthography. The
2320patterns can be used with packages Babel and hyphsubst from the Oberdiek
2321bundle.")
2322 ;; Hyphenation patterns are under the Expat license; documentation is
2323 ;; under LPPL.
2324 (license (list license:expat license:lppl))))
2325
2326(define-public texlive-generic-dehyph-exptl
2327 (deprecated-package "texlive-generic-dehyph-exptl" texlive-dehyph-exptl))
2328
10e8b338
RW
2329(define-public texlive-ukrhyph
2330 (package
2331 (inherit (simple-texlive-package
2332 "texlive-ukrhyph"
2333 (list "/doc/generic/ukrhyph/"
2334 "/tex/generic/ukrhyph/")
2335 (base32
2336 "01ma274sixcrbpb7fpqkxwfvrnzfj2srv9b4a42rfnph1pdql74z")
2337 #:trivial? #t))
2338 (home-page "https://www.ctan.org/pkg/ukrhyph")
2339 (synopsis "Hyphenation patterns for Ukrainian")
2340 (description "The package provides a range of hyphenation patterns for
2341Ukrainian, depending on the encoding of the output font including the standard
2342T2A.")
2343 (license license:lppl)))
2344
c87d8a14
RW
2345(define-public texlive-ruhyphen
2346 (let ((template (simple-texlive-package
2347 "texlive-ruhyphen"
2348 (list "/source/generic/ruhyphen/"
2349 "/tex/generic/ruhyphen/")
2350 (base32
2351 "18n1bqhh8jv765vz3a3fjwffy7m71vhwx9yq8zl0p5j7p72q9qcn")
2352 #:trivial? #t)))
2353 (package
2354 (inherit template)
2355 (arguments
2356 (substitute-keyword-arguments (package-arguments template)
2357 ((#:phases phases)
2358 `(modify-phases ,phases
2359 (replace 'build
2360 (lambda _
2361 (let ((cwd (getcwd)))
2362 ;; Remove generated files.
2363 (for-each delete-file
2364 (find-files "tex/generic/ruhyphen/"
2365 "^cyry.*.tex$"))
2366 (substitute* "source/generic/ruhyphen/Makefile"
2367 (("./mkcyryo") (string-append cwd "/source/generic/ruhyphen/mkcyryo")))
2368 (with-directory-excursion "tex/generic/ruhyphen"
2369 (invoke "make" "-f"
2370 (string-append cwd "/source/generic/ruhyphen/Makefile"))))))))))
2371 (native-inputs
2372 `(("coreutils" ,coreutils)
2373 ("gawk" ,gawk)
2374 ("sed" ,sed)
2375 ("grep" ,grep)
2376 ("perl" ,perl)))
2377 (home-page "https://www.ctan.org/pkg/ruhyphen")
2378 (synopsis "Hyphenation patterns for Russian")
2379 (description "The package provides a collection of Russian hyphenation
2380patterns supporting a number of Cyrillic font encodings, including T2,
2381UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r.")
2382 (license license:lppl))))
2383
2b254694
RW
2384(define-public texlive-kpathsea
2385 (package
2386 (inherit (simple-texlive-package
2387 "texlive-kpathsea"
2388 (list "/web2c/amiga-pl.tcx"
2389 "/web2c/cp1250cs.tcx"
2390 "/web2c/cp1250pl.tcx"
2391 "/web2c/cp1250t1.tcx"
2392 "/web2c/cp227.tcx"
2393 "/web2c/cp852-cs.tcx"
2394 "/web2c/cp852-pl.tcx"
2395 "/web2c/cp8bit.tcx"
2396 "/web2c/empty.tcx"
2397 "/web2c/fmtutil.cnf"
2398 "/web2c/il1-t1.tcx"
2399 "/web2c/il2-cs.tcx"
2400 "/web2c/il2-pl.tcx"
2401 "/web2c/il2-t1.tcx"
2402 "/web2c/kam-cs.tcx"
2403 "/web2c/kam-t1.tcx"
2404 "/web2c/macce-pl.tcx"
2405 "/web2c/macce-t1.tcx"
2406 "/web2c/maz-pl.tcx"
2407 "/web2c/mktex.cnf"
2408 "/web2c/mktex.opt"
2409 "/web2c/mktexdir"
2410 "/web2c/mktexdir.opt"
2411 "/web2c/mktexnam"
2412 "/web2c/mktexnam.opt"
2413 "/web2c/mktexupd"
2414 "/web2c/natural.tcx"
2415 "/web2c/tcvn-t5.tcx"
2416 "/web2c/viscii-t5.tcx")
2417 (base32
85892948 2418 "191i8n3g46p53bb9dkx2ggwpzy7skgg0pbklsrpx8x4ayd86wcaf")
2b254694
RW
2419 #:trivial? #t))
2420 (home-page "https://www.tug.org/texlive/")
2421 (synopsis "Files related to the path searching library for TeX")
2422 (description "Kpathsea is a library and utility programs which provide
2423path searching facilities for TeX file types, including the self-locating
2424feature required for movable installations, layered on top of a general search
2425mechanism. This package provides supporting files.")
2426 (license license:lgpl3+)))
2427
57680dc2
RW
2428(define-public texlive-latexconfig
2429 (package
2430 (inherit (simple-texlive-package
2431 "texlive-latexconfig"
2432 (list "/tex/latex/latexconfig/")
2433 (base32
2434 "1wa7yhdpnz1nyidwgli68fyr33jn951bnniqrih5lj98k09rqc3h")
2435 #:trivial? #t))
2436 (home-page "https://www.tug.org/")
2437 (synopsis "Configuration files for LaTeX-related formats")
2438 (description "The package provides configuration files for LaTeX-related
2439formats.")
2440 (license license:lppl)))
2441
010f476f 2442(define-public texlive-latex-base
09e2f258
RW
2443 (let ((template (simple-texlive-package
2444 "texlive-latex-base"
2445 (list "/doc/latex/base/"
2446 "/source/latex/base/"
2447 ;; Almost all files in /tex/latex/base are generated, but
2448 ;; these are not:
2449 "/tex/latex/base/idx.tex"
2450 "/tex/latex/base/lablst.tex"
09e2f258
RW
2451 "/tex/latex/base/ltnews.cls"
2452 "/tex/latex/base/ltxcheck.tex"
2453 "/tex/latex/base/ltxguide.cls"
2454 "/tex/latex/base/minimal.cls"
2455 "/tex/latex/base/sample2e.tex"
2456 "/tex/latex/base/small2e.tex"
09e2f258
RW
2457 "/tex/latex/base/testpage.tex"
2458 "/tex/latex/base/texsys.cfg")
2459 (base32
85892948 2460 "0m0gjb4hbsf2iqkkx3px4f28r2scjvsjv4zb2whkbnb44apyw1f0")
09e2f258
RW
2461 #:trivial? #t)))
2462 (package
2463 (inherit template)
2464 (arguments
2465 (substitute-keyword-arguments (package-arguments template)
2466 ((#:modules modules '())
2467 '((guix build gnu-build-system)
2468 (guix build utils)
2469 (ice-9 match)
2470 (srfi srfi-26)))
2471 ((#:phases phases)
2472 `(modify-phases ,phases
201015b1
RW
2473 ;; The literal tab in the dtx file is translated to the string
2474 ;; "^^I" in the generated Lua file, which causes a syntax error.
2475 (add-after 'unpack 'fix-lua-sources
2476 (lambda _
2477 (substitute* "source/latex/base/ltluatex.dtx"
2478 ((" ") " "))
2479 #t))
09e2f258
RW
2480 (replace 'build
2481 (lambda* (#:key inputs #:allow-other-keys)
2482 ;; Find required fonts
2483 (setenv "TFMFONTS"
2484 (string-join
2485 (map (match-lambda
2486 ((pkg-name . dir)
2487 (string-append
2488 (assoc-ref inputs pkg-name)
2489 "/share/texmf-dist/fonts/tfm/public"
2490 dir)))
2491 '(("texlive-etex" . "/etex")
2492 ("texlive-cm" . "/cm")
2493 ("texlive-fonts-latex" . "/latex-fonts")
2494 ("texlive-fonts-knuth-lib" . "/knuth-lib")))
2495 ":"))
2496 (let ((cwd (getcwd)))
2497 (setenv "TEXINPUTS"
2498 (string-append
2499 cwd "//:"
2500 cwd "/source/latex/base//:"
2501 cwd "/build:"
2502 (string-join
2503 (map (match-lambda ((_ . dir) dir)) inputs)
2504 "//:"))))
2505
2506 ;; This is the actual build step.
2507 (mkdir "build")
2508 (invoke "tex" "-ini" "-interaction=scrollmode"
2509 "-output-directory=build" "unpack.ins")
2510
2511 ;; XXX: We can't build all formats at this point, nor are they
2512 ;; part of the LaTeX base, so we disable them. Actually, we
2513 ;; should be running this all in a profile hook, so that only
2514 ;; selected formats and hyphenation patterns are included, but it
2515 ;; takes long and TeX Live isn't designed to be modular like
2516 ;; that. Everything operates on a shared directory, which we
2517 ;; would only have at profile generation time.
2518 (let ((disabled-formats
2519 '("aleph aleph" "lamed aleph" "uptex uptex" "euptex euptex"
2520 "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex"
2521 "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex"
85892948 2522 "luacsplain luatex"
1a0f4013
LLB
2523 ,@(if (string-prefix? "powerpc64le"
2524 (or (%current-target-system)
2525 (%current-system)))
2526 '("luajittex") '())
09e2f258
RW
2527 "cont-en xetex" "cont-en pdftex" "pdfcsplain xetex"
2528 "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex"
2529 "mptopdf pdftex" "uplatex euptex" "jadetex pdftex"
2530 "amstex pdftex" "pdfcslatex pdftex" "lollipop tex"
2531 "xmltex pdftex" "pdfjadetex pdftex" "eplain pdftex"
2532 "texsis pdftex" "mltex pdftex" "utf8mex pdftex")))
2533 (mkdir "web2c")
2534 (install-file (string-append
2535 (assoc-ref inputs "texlive-kpathsea")
2536 "/share/texmf-dist/web2c/fmtutil.cnf")
2537 "web2c")
2538 (make-file-writable "web2c/fmtutil.cnf")
2539 (substitute* "web2c/fmtutil.cnf"
2540 (((string-append "^(" (string-join disabled-formats "|") ")") m)
2541 (string-append "#! " m))))
2542 (invoke "fmtutil-sys" "--all"
2543 "--fmtdir=web2c"
2544 (string-append "--cnffile=web2c/fmtutil.cnf"))
2545 ;; We don't actually want to install it.
2546 (delete-file "web2c/fmtutil.cnf")
2547 #t))
2548 (add-after 'install 'install-more
2549 (lambda* (#:key inputs outputs #:allow-other-keys)
2550 (let* ((out (assoc-ref outputs "out"))
2551 (root (string-append out "/share/texmf-dist"))
2552 (target (string-append root "/tex/latex/base"))
2553 (web2c (string-append root "/web2c"))
2554 (makeindex (string-append root "/makeindex/latex")))
2555 (for-each delete-file (find-files "." "\\.(log|aux)$"))
2556
2557 ;; The usedir directive in docstrip.ins is ignored, so these
2558 ;; two files end up in the wrong place. Move them.
2559 (mkdir-p makeindex)
2560 (for-each (lambda (file)
2561 (install-file file makeindex)
2562 (delete-file file))
2563 '("build/gglo.ist"
2564 "build/gind.ist"))
2565 (for-each (cut install-file <> target)
2566 (find-files "build" ".*"))
2567 (for-each (cut install-file <> web2c)
2568 (find-files "web2c" ".*"))
2569 #t)))))))
2570 (native-inputs
2571 `(("texlive-bin" ,texlive-bin)
2572 ("texlive-tex-ini-files" ,texlive-tex-ini-files)
2573 ("texlive-tex-plain" ,texlive-tex-plain)
2574 ("texlive-kpathsea" ,texlive-kpathsea)
2575 ("texlive-cm" ,texlive-cm)
2576 ("texlive-fonts-latex" ,texlive-fonts-latex)
2577 ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)
2578 ("texlive-luatexconfig"
2579 ,(texlive-origin
2580 "texlive-luatexconfig" (number->string %texlive-revision)
2581 (list "/tex/generic/config/luatex-unicode-letters.tex"
2582 "/tex/generic/config/luatexiniconfig.tex"
2583 "/web2c/texmfcnf.lua")
2584 (base32
85892948 2585 "1gi87wy12r8w8fhx9ajcid382dmqzf6b9070b5nndvbbjrvhwf23")))))
09e2f258
RW
2586 (propagated-inputs
2587 `(("texlive-dehyph-exptl" ,texlive-dehyph-exptl)
2588 ("texlive-etex" ,texlive-etex)
2589 ("texlive-hyph-utf8" ,texlive-hyph-utf8)
2590 ("texlive-hyphen-base" ,texlive-hyphen-base)
2591 ("texlive-hyphen-afrikaans" ,texlive-hyphen-afrikaans)
2592 ("texlive-hyphen-ancientgreek" ,texlive-hyphen-ancientgreek)
2593 ("texlive-hyphen-armenian" ,texlive-hyphen-armenian)
2594 ("texlive-hyphen-basque" ,texlive-hyphen-basque)
2595 ("texlive-hyphen-belarusian" ,texlive-hyphen-belarusian)
2596 ("texlive-hyphen-bulgarian" ,texlive-hyphen-bulgarian)
2597 ("texlive-hyphen-catalan" ,texlive-hyphen-catalan)
2598 ("texlive-hyphen-chinese" ,texlive-hyphen-chinese)
2599 ("texlive-hyphen-churchslavonic" ,texlive-hyphen-churchslavonic)
2600 ("texlive-hyphen-coptic" ,texlive-hyphen-coptic)
2601 ("texlive-hyphen-croatian" ,texlive-hyphen-croatian)
2602 ("texlive-hyphen-czech" ,texlive-hyphen-czech)
2603 ("texlive-hyphen-danish" ,texlive-hyphen-danish)
2604 ("texlive-hyphen-dutch" ,texlive-hyphen-dutch)
2605 ("texlive-hyphen-english" ,texlive-hyphen-english)
2606 ("texlive-hyphen-esperanto" ,texlive-hyphen-esperanto)
2607 ("texlive-hyphen-estonian" ,texlive-hyphen-estonian)
2608 ("texlive-hyphen-ethiopic" ,texlive-hyphen-ethiopic)
2609 ("texlive-hyphen-finnish" ,texlive-hyphen-finnish)
2610 ("texlive-hyphen-french" ,texlive-hyphen-french)
2611 ("texlive-hyphen-friulan" ,texlive-hyphen-friulan)
2612 ("texlive-hyphen-galician" ,texlive-hyphen-galician)
2613 ("texlive-hyphen-georgian" ,texlive-hyphen-georgian)
2614 ("texlive-hyphen-german" ,texlive-hyphen-german)
2615 ("texlive-hyphen-greek" ,texlive-hyphen-greek)
2616 ("texlive-hyphen-hungarian" ,texlive-hyphen-hungarian)
2617 ("texlive-hyphen-icelandic" ,texlive-hyphen-icelandic)
2618 ("texlive-hyphen-indic" ,texlive-hyphen-indic)
2619 ("texlive-hyphen-indonesian" ,texlive-hyphen-indonesian)
2620 ("texlive-hyphen-interlingua" ,texlive-hyphen-interlingua)
2621 ("texlive-hyphen-irish" ,texlive-hyphen-irish)
2622 ("texlive-hyphen-italian" ,texlive-hyphen-italian)
2623 ("texlive-hyphen-kurmanji" ,texlive-hyphen-kurmanji)
2624 ("texlive-hyphen-latin" ,texlive-hyphen-latin)
2625 ("texlive-hyphen-latvian" ,texlive-hyphen-latvian)
2626 ("texlive-hyphen-lithuanian" ,texlive-hyphen-lithuanian)
2627 ("texlive-hyphen-mongolian" ,texlive-hyphen-mongolian)
2628 ("texlive-hyphen-norwegian" ,texlive-hyphen-norwegian)
2629 ("texlive-hyphen-occitan" ,texlive-hyphen-occitan)
85892948 2630 ("texlive-hyphen-pali" ,texlive-hyphen-pali)
09e2f258
RW
2631 ("texlive-hyphen-piedmontese" ,texlive-hyphen-piedmontese)
2632 ("texlive-hyphen-polish" ,texlive-hyphen-polish)
2633 ("texlive-hyphen-portuguese" ,texlive-hyphen-portuguese)
2634 ("texlive-hyphen-romanian" ,texlive-hyphen-romanian)
2635 ("texlive-hyphen-romansh" ,texlive-hyphen-romansh)
2636 ("texlive-hyphen-russian" ,texlive-hyphen-russian)
2637 ("texlive-hyphen-sanskrit" ,texlive-hyphen-sanskrit)
2638 ("texlive-hyphen-serbian" ,texlive-hyphen-serbian)
2639 ("texlive-hyphen-slovak" ,texlive-hyphen-slovak)
2640 ("texlive-hyphen-slovenian" ,texlive-hyphen-slovenian)
2641 ("texlive-hyphen-spanish" ,texlive-hyphen-spanish)
2642 ("texlive-hyphen-swedish" ,texlive-hyphen-swedish)
2643 ("texlive-hyphen-thai" ,texlive-hyphen-thai)
2644 ("texlive-hyphen-turkish" ,texlive-hyphen-turkish)
2645 ("texlive-hyphen-turkmen" ,texlive-hyphen-turkmen)
2646 ("texlive-hyphen-ukrainian" ,texlive-hyphen-ukrainian)
2647 ("texlive-hyphen-uppersorbian" ,texlive-hyphen-uppersorbian)
2648 ("texlive-hyphen-welsh" ,texlive-hyphen-welsh)
2649 ("texlive-unicode-data" ,texlive-unicode-data)
2650 ("texlive-ukrhyph" ,texlive-ukrhyph)
2651 ("texlive-ruhyphen" ,texlive-ruhyphen)
2652 ("texlive-latexconfig" ,texlive-latexconfig)))
2653 (home-page "https://www.ctan.org/pkg/latex-base")
2654 (synopsis "Base sources of LaTeX")
2655 (description
2656 "This bundle comprises the source of LaTeX itself, together with several
010f476f
RW
2657packages which are considered \"part of the kernel\". This bundle, together
2658with the required packages, constitutes what every LaTeX distribution should
2659contain.")
09e2f258 2660 (license license:lppl1.3c+))))
010f476f 2661
3e485ed2
RW
2662(define-public texlive-latex-filecontents
2663 (package
2664 (name "texlive-latex-filecontents")
2665 (version (number->string %texlive-revision))
2666 (source (origin
2667 (method svn-fetch)
2668 (uri (texlive-ref "latex" "filecontents"))
7e353a77 2669 (file-name (string-append name "-" version "-checkout"))
3e485ed2
RW
2670 (sha256
2671 (base32
85892948 2672 "1h78zw0vhldx478zs4v86ajg7vpkysd1kg3npc480qqls3q6ba40"))))
3e485ed2
RW
2673 (build-system texlive-build-system)
2674 (arguments '(#:tex-directory "latex/filecontents"))
b8d8806b 2675 (home-page "https://www.ctan.org/pkg/filecontents")
3e485ed2
RW
2676 (synopsis "Extended filecontents and filecontents* environments")
2677 (description
2678 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments
2679enable a LaTeX source file to generate external files as it runs through
2680LaTeX. However, there are two limitations of these environments: they refuse
2681to overwrite existing files, and they can only be used in the preamble of a
2682document. The filecontents package removes these limitations, letting you
2683overwrite existing files and letting you use @code{filecontents} /
2684@code{filecontents*} anywhere.")
2685 (license license:lppl1.3c+)))
2686
1193aa89
RW
2687(define-public texlive-generic-ifxetex
2688 (package
2689 (name "texlive-generic-ifxetex")
fea8eef3 2690 (version (number->string %texlive-revision))
1193aa89
RW
2691 (source (origin
2692 (method svn-fetch)
2693 (uri (texlive-ref "generic" "ifxetex"))
24dbc602 2694 (file-name (string-append name "-" version "-checkout"))
1193aa89
RW
2695 (sha256
2696 (base32
2697 "0w2xj7n0szavj329kds09q626szkc378p3w0sk022q0ln4ksz86d"))))
2698 (build-system texlive-build-system)
2699 (arguments
2700 '(#:tex-directory "generic/ifxetex"
2701 #:tex-format "xelatex"))
2702 (inputs
2703 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
b8d8806b 2704 (home-page "https://www.ctan.org/pkg/ifxetex")
1193aa89
RW
2705 (synopsis "Am I running under XeTeX?")
2706 (description
2707 "This is a simple package which provides an @code{\\ifxetex} conditional,
2708so that other code can determine that it is running under XeTeX. The package
beb476ed 2709requires the e-TeX extensions to the TeX primitive set.")
1193aa89
RW
2710 (license license:lppl1.3c+)))
2711
f104ff61 2712(define-public texlive-epsf
9186c156 2713 (package
f104ff61
RW
2714 (inherit (simple-texlive-package
2715 "texlive-epsf"
2716 (list "/doc/generic/epsf/"
2717 "/tex/generic/epsf/")
2718 (base32
2719 "03jcf0kqh47is965d2590miwj7d5kif3c4mgsnvkyl664jzjkh92")
2720 #:trivial? #t))
b8d8806b 2721 (home-page "https://www.ctan.org/pkg/epsf")
9186c156
RW
2722 (synopsis "Simple macros for EPS inclusion")
2723 (description
2724 "This package provides the original (and now obsolescent) graphics
2725inclusion macros for use with dvips, still widely used by Plain TeX users (in
2726particular). For LaTeX users, the package is nowadays (rather strongly)
2727deprecated in favour of the more sophisticated standard LaTeX latex-graphics
2728bundle of packages. (The latex-graphics bundle is also available to Plain TeX
2729users, via its Plain TeX version.)")
2730 (license license:public-domain)))
2731
f104ff61
RW
2732(define-public texlive-generic-epsf
2733 (deprecated-package "texlive-generic-epsf" texlive-epsf))
2734
437822a1
RW
2735(define-public texlive-latex-fancyvrb
2736 (package
85892948
MB
2737 (inherit (simple-texlive-package
2738 "texlive-latex-fancyvrb"
2739 (list "/doc/latex/fancyvrb/README"
2740 "/tex/latex/fancyvrb/")
2741 (base32
2742 "1dwkcradz9nwpjwmv1sjzn77lvw25ypr0rrgmf1kd8pd2mw7dxcn")
2743 #:trivial? #t))
b8d8806b 2744 (home-page "https://www.ctan.org/pkg/fancyvrb")
437822a1
RW
2745 (synopsis "Sophisticated verbatim text")
2746 (description
2747 "This package provides tools for the flexible handling of verbatim text
2748including: verbatim commands in footnotes; a variety of verbatim environments
2749with many parameters; ability to define new customized verbatim environments;
2750save and restore verbatim text and environments; write and read files in
2751verbatim mode; build \"example\" environments (showing both result and
2752verbatim source).")
2753 (license license:lppl1.0+)))
2754
f1b0939d
RW
2755(define-public texlive-graphics-def
2756 (package
2757 (inherit (simple-texlive-package
2758 "texlive-graphics-def"
2759 (list "/doc/latex/graphics-def/README.md"
2760 "/tex/latex/graphics-def/")
2761 (base32
2762 "0zrbn9cwfnnrrl3b2zsd74ldksp9jwpvjh7z93ild1m75crpb39a")
2763 #:trivial? #t))
2764 (home-page "https://www.ctan.org/pkg/latex-graphics")
2765 (synopsis "Color and graphics option files")
2766 (description
2767 "This bundle is a combined distribution consisting of @file{dvips.def},
2768@file{pdftex.def}, @file{luatex.def}, @file{xetex.def}, @file{dvipdfmx.def},
2769and @file{dvisvgm.def} driver option files for the LaTeX graphics and color
2770packages.")
2771 (license license:lppl1.3c+)))
2772
83a5c617
RW
2773(define-public texlive-graphics-cfg
2774 (package
2775 (inherit (simple-texlive-package
2776 "texlive-graphics-cfg"
2777 (list "/doc/latex/graphics-cfg/README.md"
2778 "/tex/latex/graphics-cfg/")
2779 (base32
2780 "00n63adb2laf43lzix39xl68aq0k5k80mmrw602w99w5n7f96gsf")
2781 #:trivial? #t))
2782 (home-page "https://www.ctan.org/pkg/latex-graphics")
2783 (synopsis "Sample configuration files for LaTeX color and graphics")
2784 (description
2785 "This bundle includes @file{color.cfg} and @file{graphics.cfg} files that
2786set default \"driver\" options for the color and graphics packages.")
2787 (license license:public-domain)))
2788
4eebd2cd
RW
2789(define-public texlive-latex-graphics
2790 (package
2791 (name "texlive-latex-graphics")
2792 (version (number->string %texlive-revision))
2793 (source (origin
2794 (method svn-fetch)
2795 (uri (texlive-ref "latex" "graphics"))
f7302073 2796 (file-name (string-append name "-" version "-checkout"))
4eebd2cd
RW
2797 (sha256
2798 (base32
d4d9a1ec 2799 "0nlfhn55ax89rcvpkrl9570671b62kcr4c9l5ch3w5zw9vmi00dz"))))
4eebd2cd 2800 (build-system texlive-build-system)
152950d4
RW
2801 (arguments '(#:tex-directory "latex/graphics"))
2802 (propagated-inputs
2803 `(("texlive-graphics-cfg" ,texlive-graphics-cfg)
2804 ("texlive-graphics-def" ,texlive-graphics-def)))
b8d8806b 2805 (home-page "https://www.ctan.org/pkg/latex-graphics")
4eebd2cd
RW
2806 (synopsis "LaTeX standard graphics bundle")
2807 (description
2808 "This is a collection of LaTeX packages for producing color, including
2809graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX
2810documents. It comprises the packages color, graphics, graphicx, trig, epsfig,
2811keyval, and lscape.")
152950d4 2812 (license license:lppl1.3c+)))
4eebd2cd 2813
266e0742
RW
2814(define-public texlive-xcolor
2815 (let ((template (simple-texlive-package
2816 "texlive-xcolor"
2817 (list "/doc/latex/xcolor/"
2818 "/source/latex/xcolor/")
2819 (base32
2820 "12q6spmpxg30alhvarjmxzigmz7lazapbrb0mc4vhbn6n1sdz7pp"))))
2821 (package
2822 (inherit template)
2823 (arguments
2824 (substitute-keyword-arguments (package-arguments template)
2825 ((#:tex-directory _ #t)
2826 "latex/xcolor")
2827 ((#:phases phases)
2828 `(modify-phases ,phases
2829 (add-after 'unpack 'chdir
2830 (lambda _ (chdir "source/latex/xcolor") #t))
2831 (add-after 'install 'move-files
2832 (lambda* (#:key outputs #:allow-other-keys)
2833 (let ((share (string-append (assoc-ref outputs "out")
2834 "/share/texmf-dist")))
2835 (mkdir-p (string-append share "/dvips/xcolor"))
2836 (rename-file (string-append share "/tex/latex/xcolor/xcolor.pro")
2837 (string-append share "/dvips/xcolor/xcolor.pro"))
2838 #t)))))))
2839 (home-page "https://www.ctan.org/pkg/xcolor")
2840 (synopsis "Driver-independent color extensions for LaTeX and pdfLaTeX")
2841 (description
2842 "The package starts from the basic facilities of the colorcolor package,
f5a6af42
RW
2843and provides easy driver-independent access to several kinds of color tints,
2844shades, tones, and mixes of arbitrary colors. It allows a user to select a
2845document-wide target color model and offers complete tools for conversion
2846between eight color models. Additionally, there is a command for alternating
2847row colors plus repeated non-aligned material (like horizontal lines) in
2848tables.")
266e0742
RW
2849 (license license:lppl1.2+))))
2850
2851(define-public texlive-latex-xcolor
2852 (deprecated-package "texlive-latex-xcolor" texlive-xcolor))
f5a6af42 2853
4d660fdf
RW
2854(define-public texlive-latex-hyperref
2855 (package
2856 (name "texlive-latex-hyperref")
2857 (version "6.84a2")
2858 ;; The sources in the TeX Live SVN repository do not contain hluatex.dtx,
2859 ;; so we fetch the release from GitHub.
2860 (source (origin
2861 (method url-fetch)
2862 (uri (string-append "https://github.com/ho-tex/hyperref/"
2863 "archive/release-" version ".tar.gz"))
2864 (file-name (string-append name "-" version ".tar.gz"))
2865 (sha256
2866 (base32
2867 "1d3rmjgzh0025a1dza55zb6nzzlgd1y9snwx45wq1c1vf42m79h2"))))
2868 (build-system texlive-build-system)
2869 (arguments '(#:tex-directory "latex/hyperref"))
2a0bcbf4
RW
2870 (propagated-inputs
2871 `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek) ; for ltxcmds.sty
2872 ("texlive-latex-url" ,texlive-latex-url)))
b8d8806b 2873 (home-page "https://www.ctan.org/pkg/hyperref")
4d660fdf
RW
2874 (synopsis "Extensive support for hypertext in LaTeX")
2875 (description
c5a8ecb6
RW
2876 "The @code{hyperref} package is used to handle cross-referencing commands
2877in LaTeX to produce hypertext links in the document. The package provides
2878backends for the @code{\\special} set defined for HyperTeX DVI processors; for
2879embedded @code{pdfmark} commands for processing by Acrobat
2880Distiller (@code{dvips} and Y&Y's @code{dvipsone}); for Y&Y's @code{dviwindo};
2881for PDF control within pdfTeX and @code{dvipdfm}; for TeX4ht; and for VTeX's
2882pdf and HTML backends. The package is distributed with the @code{backref} and
2883@code{nameref} packages, which make use of the facilities of @code{hyperref}.")
4d660fdf
RW
2884 (license license:lppl1.3+)))
2885
c3455b7d
RW
2886(define-public texlive-latex-oberdiek
2887 (package
2888 (name "texlive-latex-oberdiek")
2889 (version (number->string %texlive-revision))
2890 (source (origin
2891 (method svn-fetch)
2892 (uri (texlive-ref "latex" "oberdiek"))
7dea3119 2893 (file-name (string-append name "-" version "-checkout"))
c3455b7d
RW
2894 (sha256
2895 (base32
85892948 2896 "0pi2d6gsddcs9wprdbar46s91kdc5fxl1m79g7xrbccsx8s9xbml"))))
c3455b7d
RW
2897 (build-system texlive-build-system)
2898 (arguments
2899 '(#:tex-directory "latex/oberdiek"
05d28068 2900 #:build-targets '("oberdiek.ins")
c3455b7d
RW
2901 #:phases
2902 (modify-phases %standard-phases
05d28068 2903 ;; "ifpdf.ins" is not generated, so we need to process the dtx file.
c3455b7d
RW
2904 (add-after 'unpack 'do-not-process-ifpdf.ins
2905 (lambda _
2906 (substitute* "oberdiek.ins"
05d28068 2907 (("ifpdf.ins") "ifpdf.dtx"))
c3455b7d 2908 #t)))))
a9cd7b03
RW
2909 (propagated-inputs
2910 `(("texlive-generic-ifxetex" ,texlive-generic-ifxetex)))
b8d8806b 2911 (home-page "https://www.ctan.org/pkg/oberdiek")
c3455b7d
RW
2912 (synopsis "Bundle of packages submitted by Heiko Oberdiek")
2913 (description
2914 "The bundle comprises various LaTeX packages, providing among others:
2915better accessibility support for PDF files; extensible chemists reaction
2916arrows; record information about document class(es) used; and many more.")
2917 (license license:lppl1.3+)))
2918
f2536af2
RW
2919(define-public texlive-latex-tools
2920 (package
2921 (name "texlive-latex-tools")
2922 (version (number->string %texlive-revision))
2923 (source (origin
2924 (method svn-fetch)
2925 (uri (texlive-ref "latex" "tools"))
f8340ab1 2926 (file-name (string-append name "-" version "-checkout"))
f2536af2
RW
2927 (sha256
2928 (base32
85892948 2929 "1wqvn4z0s92h5iqzrvxw7hinzp95avjk9v8lnqbqr4kz6nv4xb9l"))))
f2536af2
RW
2930 (build-system texlive-build-system)
2931 (arguments
2932 '(#:tex-directory "latex/tools"
2933 #:build-targets '("tools.ins")))
b8d8806b 2934 (home-page "https://www.ctan.org/pkg/latex-tools")
f2536af2
RW
2935 (synopsis "LaTeX standard tools bundle")
2936 (description
2937 "This package is a collection of (variously) simple tools provided as
2938part of the LaTeX required tools distribution, comprising the following
2939packages: afterpage, array, bm, calc, dcolumn, delarray, enumerate, fileerr,
2940fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol,
2941rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim,
2942xr, and xspace.")
2943 (license license:lppl1.3+)))
2944
c97d1a91 2945(define-public texlive-url
35adcc3a 2946 (package
c97d1a91
RW
2947 (inherit (simple-texlive-package
2948 "texlive-url"
2949 (list "/doc/latex/url/"
2950 "/tex/latex/url/")
2951 (base32
2952 "184m40wgnx939ky2hbxnj0v9aak023ldrhgffp0lgyk9wdqpxlqg")
2953 #:trivial? #t))
35adcc3a
RW
2954 (home-page "https://www.ctan.org/pkg/url")
2955 (synopsis "Verbatim with URL-sensitive line breaks")
2956 (description "The command @code{\\url} is a form of verbatim command that
2957allows linebreaks at certain characters or combinations of characters, accepts
2958reconfiguration, and can usually be used in the argument to another command.
2959The command is intended for email addresses, hypertext links,
2960directories/paths, etc., which normally have no spaces, so by default the
2961package ignores spaces in its argument. However, a package option allows
2962spaces, which is useful for operating systems where spaces are a common part
2963of file names.")
2964 ;; The license header states that it is under LPPL version 2 or later, but
2965 ;; the latest version is 1.3c.
2966 (license license:lppl1.3c+)))
2967
c97d1a91
RW
2968(define-public texlive-latex-url
2969 (deprecated-package "texlive-latex-url" texlive-url))
2970
192ad4d1
RW
2971(define-public texlive-tetex
2972 (package
2973 (inherit (simple-texlive-package
2974 "texlive-tetex"
2975 (list "/dvips/tetex/"
2976 "/fonts/enc/dvips/tetex/"
2977 "/fonts/map/dvips/tetex/")
2978 (base32
2979 "1si3as8mwi8837965djlw6jhwwzsp3r1hkflvdxv2avx9vb45hjb")
2980 #:trivial? #t))
2981 (home-page "https://www.ctan.org/pkg/tetex")
2982 (synopsis "Font maps originally from teTeX")
2983 (description "This package provides font maps that were originally part of
2984the now obsolete teTeX distributions but are still used at the core of the TeX
2985Live distribution.")
2986 (license license:public-domain)))
2987
a5b1ef84
RW
2988(define-public texlive-latex-l3kernel
2989 (package
2990 (name "texlive-latex-l3kernel")
2991 (version (number->string %texlive-revision))
2992 (source (origin
2993 (method svn-fetch)
2994 (uri (texlive-ref "latex" "l3kernel"))
f4a39a5b 2995 (file-name (string-append name "-" version "-checkout"))
a5b1ef84
RW
2996 (sha256
2997 (base32
85892948 2998 "0s77z2cbv841l45qrpf0s8qhzfa4wi689lg7zkw88qg18nzvy0ly"))))
a5b1ef84
RW
2999 (build-system texlive-build-system)
3000 (arguments
3001 '(#:tex-directory "latex/l3kernel"))
b8d8806b 3002 (home-page "https://www.ctan.org/pkg/l3kernel")
a5b1ef84
RW
3003 (synopsis "LaTeX3 programmers’ interface")
3004 (description
3005 "The l3kernel bundle provides an implementation of the LaTeX3
3006programmers’ interface, as a set of packages that run under LaTeX 2e. The
3007interface provides the foundation on which the LaTeX3 kernel and other future
3008code are built: it is an API for TeX programmers. The packages are set up so
3009that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
3010 (license license:lppl1.3c+)))
3011
cc09d48b
RW
3012(define-public texlive-latex-l3packages
3013 (package
3014 (name "texlive-latex-l3packages")
3015 (version (number->string %texlive-revision))
3016 (source (origin
3017 (method svn-fetch)
3018 (uri (texlive-ref "latex" "l3packages"))
b749aa98 3019 (file-name (string-append name "-" version "-checkout"))
cc09d48b
RW
3020 (sha256
3021 (base32
85892948 3022 "1cv4fk9pabh7mkxhfsdmh4k8xpmzg1psgcsvd11c869m7n3a629h"))))
cc09d48b
RW
3023 (build-system texlive-build-system)
3024 (arguments
3025 '(#:tex-directory "latex/l3packages"
3d4908a7
PN
3026 ;; build-targets must be specified manually since they are in
3027 ;; sub-directories.
3028 #:build-targets '("l3keys2e.ins" "xparse.ins" "xfrac.ins" "xfp.ins" "xtemplate.ins")
cc09d48b
RW
3029 #:phases
3030 (modify-phases %standard-phases
3031 ;; All package sources are in sub-directories, so we need to add them
3032 ;; to TEXINPUTS.
3033 (add-after 'unpack 'set-TEXINPUTS
3034 (lambda _
3035 (let ((cwd (getcwd)))
3036 (setenv "TEXINPUTS"
3037 (string-append cwd "/l3keys2e:"
3038 cwd "/xparse:"
3039 cwd "/xfrac:"
3040 cwd "/xfp:"
3d4908a7
PN
3041 cwd "/xtemplate"
3042 ;; The terminating ":" is required to include the
3043 ;; l3kernel input as well.
3044 ":")))
3045 #t)))
3046 ))
2fea7041 3047 (propagated-inputs
cc09d48b 3048 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
b8d8806b 3049 (home-page "https://www.ctan.org/pkg/l3packages")
cc09d48b
RW
3050 (synopsis "High-level LaTeX3 concepts")
3051 (description
3052 "This bundle holds prototype implementations of concepts for a LaTeX
3053designer interface, to be used with the experimental LaTeX kernel as
3054programming tools and kernel sup­port. Packages provided in this release are:
3055
3056@enumerate
3057@item l3keys2e, which makes the facilities of the kernel module l3keys
3058 available for use by LaTeX 2e packages;
3059@item xfrac, which provides flexible splitlevel fractions;
3060@item xparse, which provides a high-level interface for declaring document
3061 commands; and
3062@item xtemplate, which provides a means of defining generic functions using a
3063 key-value syntax.
3064@end enumerate\n")
3065 (license license:lppl1.3c+)))
3066
58308491
RW
3067(define-public texlive-latex-fontspec
3068 (package
3069 (name "texlive-latex-fontspec")
3070 (version (number->string %texlive-revision))
3071 (source (origin
3072 (method svn-fetch)
3073 (uri (texlive-ref "latex" "fontspec"))
634a4a7f 3074 (file-name (string-append name "-" version "-checkout"))
58308491
RW
3075 (sha256
3076 (base32
85892948 3077 "1223cw029n6zff7pqpwbsq1x8v3w63smczkmnybqxkw5h2za8gbz"))))
58308491
RW
3078 (build-system texlive-build-system)
3079 (arguments
9c45beb4
RW
3080 '(#:tex-directory "latex/fontspec"
3081 #:phases
3082 (modify-phases %standard-phases
3083 (add-after 'install 'install-default-fontspec.cfg
3084 (lambda* (#:key outputs #:allow-other-keys)
3085 (with-output-to-file
3086 (string-append (assoc-ref outputs "out")
3087 "/share/texmf-dist/tex/latex/fontspec/fontspec.cfg")
3088 (lambda _
3089 (display "\
3090%%% FONTSPEC.CFG %%%
3091%
3092% This configuration file sets up TeX Ligatures by default for all fonts loaded
3093% with `\\setmainfont` and `\\setsansfont`.
3094%
3095% In addition, `\\setmonofont` has default features to enforce \"monospace\"
3096% settings with regard to space stretchability and shrinkability.
3097
3098\\defaultfontfeatures
3099 [\\rmfamily,\\sffamily]
3100 {Ligatures=TeX}
3101
3102\\defaultfontfeatures
3103 [\\ttfamily]
3104 {WordSpace={1,0,0},
3105 HyphenChar=None,
3106 PunctuationSpace=WordSpace}
3107")))
3108 #t)))))
b80ecc5a
RW
3109 (propagated-inputs
3110 `(("texlive-latex-l3packages" ,texlive-latex-l3packages)))
b8d8806b 3111 (home-page "https://www.ctan.org/pkg/fontspec")
58308491
RW
3112 (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX")
3113 (description
3114 "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an
3115automatic and unified interface to feature-rich AAT and OpenType fonts through
3116the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires
3117the l3kernel and xparse bundles from the LaTeX 3 development team.")
3118 (license license:lppl1.3+)))
3119
e93f472d
RW
3120;; The SVN directory contains little more than a dtx file that generates three
3121;; of the many lua files that should be installed as part of this package.
3122;; This is why we take the release from GitHub instead.
3123(define-public texlive-luatex-lualibs
3124 (package
3125 (name "texlive-luatex-lualibs")
3126 (version "2.5")
3127 (source (origin
3128 (method url-fetch)
3129 (uri (string-append "https://github.com/lualatex/lualibs/"
3130 "releases/download/v"
3131 version "/lualibs.zip"))
01d79c30 3132 (file-name (string-append name "-" version ".zip"))
e93f472d
RW
3133 (sha256
3134 (base32
3135 "1xx9blvrmx9hyhrl345lpai9m6xxnw997261a1ahn1bm5r2j5fqy"))))
3136 (build-system gnu-build-system)
3137 (arguments
3138 `(#:make-flags
3139 (list (string-append "DESTDIR="
3140 (assoc-ref %outputs "out")
3141 "/share/texmf-dist"))
3142 #:phases
3143 (modify-phases %standard-phases
3144 (delete 'configure))))
3145 (native-inputs
3146 `(("texlive-bin" ,texlive-bin)
3147 ("unzip" ,unzip)
3148 ("zip" ,zip)))
3149 (home-page "https://github.com/lualatex/lualibs")
3150 (synopsis "Lua modules for general programming (in the (La)TeX world)")
3151 (description
3152 "Lualibs is a collection of Lua modules useful for general programming.
3153The bundle is based on Lua modules shipped with ConTeXt, and made available in
3154this bundle for use independent of ConTeXt.")
3155 ;; GPL version 2 only
3156 (license license:gpl2)))
3157
769bb5e5
RW
3158(define-public texlive-luatex-luaotfload
3159 (package
3160 (name "texlive-luatex-luaotfload")
3161 (version "2.8-fix-2")
3162 ;; The release tarball does not contain all source files.
3163 (source (origin
3164 (method git-fetch)
3165 (uri (git-reference
b0e7b699 3166 (url "https://github.com/lualatex/luaotfload")
769bb5e5
RW
3167 (commit (string-append "v" version))))
3168 (file-name (git-file-name name version))
3169 (sha256
3170 (base32
3171 "0l5l7iq3dxcxl65qaghcpjg27yd9iw1sxa8pnd7xlvlm09dhfdnf"))))
3172 (build-system gnu-build-system)
3173 (arguments
3174 `(#:make-flags
3175 (list (string-append "DESTDIR="
3176 (assoc-ref %outputs "out")
3177 "/share/texmf-dist")
3178 "all")
3179 #:parallel-build? #f ; not supported
3180 #:phases
3181 (modify-phases %standard-phases
3182 (replace 'configure
3183 (lambda* (#:key inputs #:allow-other-keys)
3184 (substitute* "doc/Makefile"
3185 (("rst2man") "rst2man.py")
3186 ;; Don't build the PDF. This requires more of LaTeX.
3187 (("\\$\\(DOCPDF\\)") ""))
3188
3189 (substitute* "Makefile"
3190 ;; We don't build the PDF, so don't attempt to install it.
3191 (("cp \\$\\(RESOURCES\\) \\$\\(DOCPDF\\)")
3192 "cp $(RESOURCES)")
3193 (("= \\$\\(DOCPDF\\)") "= ")
3194 ;; Fix name of fontloader file
3195 (("^LOADER.*= \\$\\(BUILDDIR\\)/fontloader-\\$\\(shell date \\+%F\\).lua")
3196 "LOADER = $(BUILDDIR)/fontloader.lua"))
3197
3198 (mkdir "build")
3199
3200 ;; Don't download this file.
3201 (copy-file (assoc-ref inputs "glyphlist")
3202 "build/glyphlist.txt")
3203
3204 ;; Don't use git
3205 (let ((notes
3206 `((committer . "Philipp Gesang <phg@phi-gamma.net>")
3207 (description . ,version)
3208 (loader . "fontloader.lua")
3209 (revision . "ad480924393fffa2896156e1a32c22f5c61120dd")
3210 (timestamp . "2019-01-01 00:00:00 +0000"))))
3211 (substitute* "scripts/mkstatus"
3212 (("local notes.*=.*")
3213 (string-append "local notes = {"
3214 (string-join
3215 (map (lambda (entry)
3216 (format "[\"~a\"]=\"~a\","
3217 (symbol->string (car entry))
3218 (cdr entry)))
3219 notes))
3220 "}"))))
3221 #t)))))
3222 (native-inputs
3223 `(("zip" ,zip)
3224 ("unzip" ,unzip)
3225 ("graphviz" ,graphviz)
3226 ("lualatex" ,(texlive-union (list texlive-luatex-lualibs
3227 texlive-context-base)))
3228 ("python-docutils" ,python-docutils)
3229 ("glyphlist"
3230 ,(origin
3231 (method url-fetch)
3232 (uri (string-append "https://raw.githubusercontent.com/adobe-type-tools/"
3233 "agl-aglfn/b2a04cb906f9257cc06a2fe0ad4b3d663bc02136/"
3234 "glyphlist.txt"))
3235 (sha256
3236 (base32 "1s6svfw23rqzdvflv8frgd4xrwvrmsj8szwzqgcd39dp9rpjafjp"))))))
3237 (propagated-inputs
3238 `(("texlive-luatex-lualibs" ,texlive-luatex-lualibs)))
3239 (home-page "https://github.com/lualatex/luaotfload")
3240 (synopsis "OpenType font loader for LuaTeX")
3241 (description
3242 "Luaotfload is an adaptation of the ConTeXt font loading system for the
3243Plain and LaTeX formats. It allows OpenType fonts to be loaded with font
3244features accessible using an extended font request syntax while providing
3245compatibilitywith XeTeX. By indexing metadata in a database it facilitates
3246loading fonts by their proper names instead of file names.")
3247 ;; GPL version 2 only
3248 (license license:gpl2)))
3249
2573163a
RW
3250(define-public texlive-latex-amsmath
3251 (package
3252 (name "texlive-latex-amsmath")
3253 (version (number->string %texlive-revision))
3254 (source (origin
3255 (method svn-fetch)
3256 (uri (texlive-ref "latex" "amsmath"))
320c771a 3257 (file-name (string-append name "-" version "-checkout"))
2573163a
RW
3258 (sha256
3259 (base32
85892948 3260 "0qgk2332dacsxn1z95qzp35gbs7wrzl1ipjdhnmk1r897msm4sf5"))))
2573163a
RW
3261 (build-system texlive-build-system)
3262 (arguments '(#:tex-directory "latex/amsmath"))
b8d8806b 3263 (home-page "https://www.ctan.org/pkg/amsmath")
2573163a
RW
3264 (synopsis "AMS mathematical facilities for LaTeX")
3265 (description
3266 "This is the principal package in the AMS-LaTeX distribution. It adapts
3267for use in LaTeX most of the mathematical features found in AMS-TeX; it is
3268highly recommended as an adjunct to serious mathematical typesetting in LaTeX.
3269When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold
3270symbols), @code{amsopnamsopn} (for operator names) and
3271@code{amstextamstext} (for text embedded in mathematics) are also loaded.
3272This package is part of the LaTeX required distribution; however, several
3273contributed packages add still further to its appeal; examples are
3274@code{empheqempheq}, which provides functions for decorating and highlighting
3275mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
3276definitions.")
3277 (license license:lppl1.3c+)))
3278
18e366e8
RW
3279(define-public texlive-latex-amscls
3280 (package
3281 (name "texlive-latex-amscls")
3282 (version (number->string %texlive-revision))
3283 (source (origin
3284 (method svn-fetch)
3285 (uri (texlive-ref "latex" "amscls"))
43059ed0 3286 (file-name (string-append name "-" version "-checkout"))
18e366e8
RW
3287 (sha256
3288 (base32
d4d9a1ec 3289 "0c2j9xh4qpi0x1vvcxdjxq6say0zhyr569fryi5cmhp8bclh4kca"))))
18e366e8
RW
3290 (build-system texlive-build-system)
3291 (arguments
3292 `(#:tex-directory "latex/amscls"))
b8d8806b 3293 (home-page "https://www.ctan.org/pkg/amscls")
18e366e8
RW
3294 (synopsis "AMS document classes for LaTeX")
3295 (description
3296 "This bundle contains three AMS classes: @code{amsartamsart} (for writing
3297articles for the AMS), @code{amsbookamsbook} (for books) and
3298@code{amsprocamsproc} (for proceedings), together with some supporting
3299material. The material is made available as part of the AMS-LaTeX
3300distribution.")
3301 (license license:lppl1.3c+)))
3302
f84d5a09
RW
3303(define-public texlive-latex-babel
3304 (package
3305 (name "texlive-latex-babel")
3306 (version (number->string %texlive-revision))
3307 (source (origin
3308 (method svn-fetch)
3309 (uri (texlive-ref "latex" "babel"))
8732493e 3310 (file-name (string-append name "-" version "-checkout"))
f84d5a09
RW
3311 (sha256
3312 (base32
85892948 3313 "1rwqq841i1rxywymzwkw0cw2yhgvxwjx5mgygfasvypwrwll6f6s"))))
f84d5a09
RW
3314 (build-system texlive-build-system)
3315 (arguments
dcc8af4a 3316 '(#:tex-directory "generic/babel"
f84d5a09
RW
3317 #:phases
3318 (modify-phases %standard-phases
3319 ;; This package tries to produce babel.aux twice but refuses to
3320 ;; overwrite the first one.
3321 (add-before 'build 'fix-ins
3322 (lambda _
3323 (substitute* "babel.ins"
3324 (("askonceonly") "askforoverwritefalse"))
3325 #t)))))
b8d8806b 3326 (home-page "https://www.ctan.org/pkg/babel")
f84d5a09
RW
3327 (synopsis "Multilingual support for Plain TeX or LaTeX")
3328 (description
3329 "The package manages culturally-determined typographical (and other)
3330rules, and hyphenation patterns for a wide range of languages. A document may
3331select a single language to be supported, or it may select several, in which
3332case the document may switch from one language to another in a variety of
3333ways. Babel uses contributed configuration files that provide the detail of
3334what has to be done for each language. Users of XeTeX are advised to use the
3335polyglossia package rather than Babel.")
3336 (license license:lppl1.3+)))
3337
876a1980
RW
3338(define-public texlive-generic-babel-english
3339 (package
3340 (name "texlive-generic-babel-english")
3341 (version (number->string %texlive-revision))
3342 (source (origin
3343 (method svn-fetch)
3344 (uri (texlive-ref "generic" "babel-english"))
3345 (file-name (string-append name "-" version "-checkout"))
3346 (sha256
3347 (base32
3348 "1s404wbx91z5w65hm024kyl4h56zsa096irx18vsx8jvlmwsr5wc"))))
3349 (build-system texlive-build-system)
3350 (arguments '(#:tex-directory "generic/babel-english"))
b8d8806b 3351 (home-page "https://www.ctan.org/pkg/babel-english")
876a1980
RW
3352 (synopsis "Babel support for English")
3353 (description
3354 "This package provides the language definition file for support of
3355English in @code{babel}. Care is taken to select British hyphenation patterns
3356for British English and Australian text, and default (\"american\") patterns
3357for Canadian and USA text.")
3358 (license license:lppl1.3+)))
3359
6309d215
RW
3360(define-public texlive-generic-babel-german
3361 (package
3362 (name "texlive-generic-babel-german")
3363 (version (number->string %texlive-revision))
3364 (source (origin
3365 (method svn-fetch)
3366 (uri (texlive-ref "generic" "babel-german"))
3367 (file-name (string-append name "-" version "-checkout"))
3368 (sha256
3369 (base32
85892948 3370 "129f9w41cb6yyrr6kpv3zz9ml6334hyq1wcz7j9jn47p0hlxqfk8"))))
6309d215
RW
3371 (build-system texlive-build-system)
3372 (arguments '(#:tex-directory "generic/babel-german"))
3373 (home-page "https://www.ctan.org/pkg/babel-german")
3374 (synopsis "Babel support for German")
3375 (description
3376 "This package provides the language definition file for support of German
3377in @code{babel}. It provides all the necessary macros, definitions and
3378settings to typeset German documents. The bundle includes support for the
3379traditional and reformed German orthography as well as for the Austrian and
3380Swiss varieties of German.")
3381 (license license:lppl1.3+)))
3382
93286d38
RW
3383(define-public texlive-latex-cyrillic
3384 (package
3385 (name "texlive-latex-cyrillic")
3386 (version (number->string %texlive-revision))
3387 (source (origin
3388 (method svn-fetch)
3389 (uri (texlive-ref "latex" "cyrillic"))
51bffe79 3390 (file-name (string-append name "-" version "-checkout"))
93286d38
RW
3391 (sha256
3392 (base32
d4d9a1ec 3393 "083xbwg7hrnlv47fkwvz8yjb830bhxx7y0mq7z7nz2f96y2ldr6b"))))
93286d38
RW
3394 (build-system texlive-build-system)
3395 (arguments
3396 '(#:tex-directory "latex/cyrillic"))
b8d8806b 3397 (home-page "https://www.ctan.org/pkg/latex-cyrillic")
93286d38
RW
3398 (synopsis "Support for Cyrillic fonts in LaTeX")
3399 (description
3400 "This bundle of macros files provides macro support (including font
3401encoding macros) for the use of Cyrillic characters in fonts encoded under the
3402T2* and X2 encodings. These encodings cover (between them) pretty much every
3403language that is written in a Cyrillic alphabet.")
3404 (license license:lppl1.3c+)))
3405
83fe6231 3406(define-public texlive-latex-psnfss
3fef44ed
EF
3407 (package
3408 (name "texlive-latex-psnfss")
3409 (version (number->string %texlive-revision))
3410 (source (origin
3411 (method svn-fetch)
3412 (uri (texlive-ref "latex" "psnfss"))
3413 (file-name (string-append name "-" version "-checkout"))
3414 (sha256
3415 (base32
3416 "1920dcq8613yzprasbg80fh4fcjcidvvl54wkx438nimyxcri7qz"))))
3417 (build-system texlive-build-system)
3418 (arguments '(#:tex-directory "latex/psnfss"))
3419 (home-page "https://www.ctan.org/pkg/psnfss")
3420 (synopsis "Font support for common PostScript fonts")
3421 (description
3422 "The PSNFSS collection includes a set of files that provide a complete
3423working setup of the LaTeX font selection scheme (NFSS2) for use with common
3424PostScript fonts. It covers the so-called \"Base\" fonts (which are built
3425into any Level 2 PostScript printing device and the Ghostscript interpreter)
3426and a number of free fonts. It provides font definition files, macros and
3427font metrics. The bundle as a whole is part of the LaTeX required set of
3428packages.")
3429 (license license:lppl1.2+)))
83fe6231 3430
bfcb9d4d
RW
3431;; For user profiles
3432(define-public texlive-base
3433 (let ((default-packages
3434 (list texlive-bin
3435 texlive-dvips
3436 texlive-fontname
a6405e03 3437 texlive-cm
bfcb9d4d
RW
3438 texlive-fonts-latex
3439 texlive-metafont-base
3440 texlive-latex-base
3441 ;; LaTeX packages from the "required" set.
3442 texlive-latex-amsmath
3443 texlive-latex-amscls
3444 texlive-latex-babel
3445 texlive-generic-babel-english
3446 texlive-latex-cyrillic
3447 texlive-latex-graphics
3448 texlive-latex-psnfss
fdb8841f
RW
3449 texlive-latex-tools
3450 texlive-tetex)))
bfcb9d4d
RW
3451 (package
3452 (name "texlive-base")
3453 (version (number->string %texlive-revision))
3454 (source #f)
3455 (build-system trivial-build-system)
3456 (arguments
3457 '(#:builder
3458 (begin (mkdir (assoc-ref %outputs "out")))))
3459 (propagated-inputs
3460 (map (lambda (package)
3461 (list (package-name package) package))
3462 default-packages))
3463 (home-page (package-home-page texlive-bin))
3464 (synopsis "TeX Live base packages")
3465 (description "This is a very limited subset of the TeX Live distribution.
3466It includes little more than the required set of LaTeX packages.")
3467 (license (fold (lambda (package result)
3468 (match (package-license package)
3469 ((lst ...)
3470 (append lst result))
3471 ((? license:license? license)
3472 (cons license result))))
3473 '()
3474 default-packages)))))
3475
d7da2372 3476;; For use in package definitions only
cb7bc20a
RW
3477(define-public texlive-union
3478 (lambda* (#:optional (packages '()))
3479 "Return 'texlive-union' package which is a union of PACKAGES and the
3480standard LaTeX packages."
d7da2372
RW
3481 (let ((default-packages (match (package-propagated-inputs texlive-base)
3482 (((labels packages) ...) packages))))
3483 (package (inherit texlive-base)
cb7bc20a 3484 (name "texlive-union")
cb7bc20a
RW
3485 (build-system trivial-build-system)
3486 (arguments
3487 '(#:modules ((guix build union)
3488 (guix build utils)
3489 (guix build texlive-build-system)
3490 (guix build gnu-build-system)
3491 (guix build gremlin)
3492 (guix elf))
3493 #:builder
3494 (begin
3495 (use-modules (ice-9 match)
1a64a7b3 3496 (ice-9 popen)
cb7bc20a
RW
3497 (srfi srfi-26)
3498 (guix build union)
3499 (guix build utils)
3500 (guix build texlive-build-system))
3501 (let* ((out (assoc-ref %outputs "out"))
3502 (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf")))
1a64a7b3
RW
3503 ;; Build a modifiable union of all inputs (but exclude bash and
3504 ;; the updmap.cfg file)
cb7bc20a
RW
3505 (match (filter (match-lambda
3506 ((name . _)
813ed0bd
RW
3507 (not (member name '("bash"
3508 "coreutils"
3509 "sed"
3510 "updmap.cfg")))))
cb7bc20a
RW
3511 %build-inputs)
3512 (((names . directories) ...)
3513 (union-build (assoc-ref %outputs "out")
3514 directories
c58d1b5f
RW
3515 #:create-all-directories? #t
3516 #:log-port (%make-void-port "w"))))
cb7bc20a
RW
3517
3518 ;; The configuration file "texmf.cnf" is provided by the
3519 ;; "texlive-bin" package. We take it and override only the
3520 ;; setting for TEXMFROOT and TEXMF. This file won't be consulted
3521 ;; by default, though, so we still need to set TEXMFCNF.
3522 (substitute* texmf.cnf
3523 (("^TEXMFROOT = .*")
3524 (string-append "TEXMFROOT = " out "/share\n"))
3525 (("^TEXMF = .*")
3526 "TEXMF = $TEXMFROOT/share/texmf-dist\n"))
1a64a7b3
RW
3527 (setenv "PATH" (string-append
3528 (assoc-ref %build-inputs "bash") "/bin:"
3529 (assoc-ref %build-inputs "coreutils") "/bin:"
813ed0bd 3530 (assoc-ref %build-inputs "sed") "/bin:"
1a64a7b3 3531 (string-append out "/bin")))
cb7bc20a
RW
3532 (for-each
3533 (cut wrap-program <>
476f7fce
RW
3534 `("TEXMFCNF" ":" suffix (,(dirname texmf.cnf)))
3535 `("TEXMF" ":" suffix (,(string-append out "/share/texmf-dist"))))
cb7bc20a 3536 (find-files (string-append out "/bin") ".*"))
1a64a7b3
RW
3537
3538 ;; Remove invalid maps from config file.
813ed0bd
RW
3539 (let ((web2c (string-append out "/share/texmf-config/web2c/"))
3540 (maproot (string-append out "/share/texmf-dist/fonts/map/")))
3541 (mkdir-p web2c)
3542 (copy-file
3543 (assoc-ref %build-inputs "updmap.cfg")
3544 (string-append web2c "updmap.cfg"))
3545 (make-file-writable (string-append web2c "updmap.cfg"))
3546
3547 (let* ((port (open-pipe* OPEN_WRITE "updmap-sys"
3548 "--syncwithtrees"
3549 "--nohash"
3550 (string-append "--cnffile=" web2c "updmap.cfg"))))
3551 (display "Y\n" port)
3552 (when (not (zero? (status:exit-val (close-pipe port))))
3553 (error "failed to filter updmap.cfg")))
3554 ;; Generate maps.
3555 (invoke "updmap-sys"
3556 (string-append "--cnffile=" web2c "updmap.cfg")
3557 (string-append "--dvipdfmxoutputdir="
3558 maproot "dvipdfmx/updmap/")
3559 (string-append "--dvipsoutputdir="
3560 maproot "dvips/updmap/")
3561 (string-append "--pdftexoutputdir="
3562 maproot "pdftex/updmap/"))
3563 ;; Having this file breaks all file lookups later.
3564 (delete-file (string-append out "/share/texmf-dist/ls-R")))
cb7bc20a
RW
3565 #t))))
3566 (inputs
3567 `(("bash" ,bash)
3568 ,@(map (lambda (package)
3569 (list (package-name package) package))
3570 (append default-packages packages))))
1a64a7b3
RW
3571 (native-inputs
3572 `(("coreutils" ,coreutils)
3573 ("sed" ,sed)
3574 ("updmap.cfg"
3575 ,(origin
3576 (method url-fetch)
3577 (uri (string-append "https://tug.org/svn/texlive/tags/"
3578 %texlive-tag "/Master/texmf-dist/web2c/updmap.cfg"
3579 "?revision=" (number->string %texlive-revision)))
3580 (file-name (string-append "updmap.cfg-"
3581 (number->string %texlive-revision)))
3582 (sha256
3583 (base32
85892948 3584 "0faqknqxs80qp9ywk0by5k85s0yalg97c4lja4q56lsyblrr4j7i"))))))
cb7bc20a
RW
3585 (home-page (package-home-page texlive-bin))
3586 (synopsis "Union of TeX Live packages")
3587 (description "This package provides a subset of the TeX Live
3588distribution.")
3589 (license (fold (lambda (package result)
3590 (match (package-license package)
3591 ((lst ...)
3592 (append lst result))
3593 ((? license:license? license)
3594 (cons license result))))
3595 '()
3596 (append default-packages packages)))))))
3597
d7da2372 3598;; For use in package definitions only
9d4f8dc2
RW
3599(define-public texlive-tiny
3600 (package
3601 (inherit (texlive-union))
3602 (name "texlive-tiny")
3603 (description "This is a very limited subset of the TeX Live distribution.
3604It includes little more than the required set of LaTeX packages.")))
3605
56edfeec
MC
3606(define-public texlive-tipa
3607 (package
3608 (inherit (simple-texlive-package
3609 "texlive-tipa"
3610 (list "/tex4ht/ht-fonts/alias/tipa/"
3611 "/doc/fonts/tipa/"
3612 "/fonts/map/dvips/tipa/"
3613 "/fonts/source/public/tipa/"
3614 "/fonts/tfm/public/tipa/"
3615 "/fonts/type1/public/tipa/"
3616 "/tex/latex/tipa/")
3617 (base32
3618 "1h53dscv8z6fsa0ax5dys3x11b2f1g60l22hpdf7c88cvdhcs8sn")
3619 #:trivial? #t))
3620 (home-page "https://www.ctan.org/pkg/tipa")
3621 (synopsis "Fonts and macros for IPA phonetics characters")
3622 (description "These fonts are considered the \"ultimate answer\" to IPA
3623typesetting. The encoding of these 8-bit fonts has been registered as LaTeX
3624standard encoding T3, and the set of addendum symbols as encoding
3625TS3. \"Times-like\" Adobe Type 1 versions are provided for both the T3 and the
3626TS3 fonts.")
3627 (license license:lppl)))
3628
60b5e228
RW
3629(define-public texlive-latex-amsrefs
3630 (package
3631 (name "texlive-latex-amsrefs")
3632 (version (number->string %texlive-revision))
3633 (source (origin
3634 (method svn-fetch)
3635 (uri (texlive-ref "latex" "amsrefs"))
3636 (file-name (string-append name "-" version "-checkout"))
3637 (sha256
3638 (base32
3639 "15i4k479dwrpr0kspmm70g1yn4p3dkh0whyzmr93hph9bggnh1i1"))))
3640 (build-system texlive-build-system)
3641 (arguments '(#:tex-directory "latex/amsrefs"))
b8d8806b 3642 (home-page "https://www.ctan.org/pkg/amsrefs")
60b5e228
RW
3643 (synopsis "LaTeX-based replacement for BibTeX")
3644 (description
3645 "Amsrefs is a LaTeX package for bibliographies that provides an archival
3646data format similar to the format of BibTeX database files, but adapted to
3647make direct processing by LaTeX easier. The package can be used either in
3648conjunction with BibTeX or as a replacement for BibTeX.")
3649 (license license:lppl1.3+)))
3650
3236599f
RW
3651(define-public texlive-latex-bigfoot
3652 (package
3653 (name "texlive-latex-bigfoot")
3654 (version (number->string %texlive-revision))
3655 (source (origin
3656 (method svn-fetch)
3657 (uri (texlive-ref "latex" "bigfoot"))
3658 (file-name (string-append name "-" version "-checkout"))
3659 (sha256
3660 (base32
3661 "092g8alnsdwlgl1isdnqrr32l161994295kadr1n05d81xgj5wnv"))))
3662 (build-system texlive-build-system)
3663 (arguments
3664 '(#:tex-directory "latex/bigfoot"
3665 #:phases
3666 (modify-phases %standard-phases
3667 (add-after 'unpack 'remove-generated-file
3668 (lambda _
3669 (for-each delete-file (find-files "." "\\.drv$"))
3670 #t)))))
b8d8806b 3671 (home-page "https://www.ctan.org/pkg/bigfoot")
3236599f
RW
3672 (synopsis "Footnotes for critical editions")
3673 (description
3674 "This package aims to provide a one-stop solution to requirements for
3675footnotes. It offers: Multiple footnote apparatus superior to that of
3676@code{manyfoot}. Footnotes can be formatted in separate paragraphs, or be run
3677into a single paragraph (this choice may be selected per footnote series);
3678Things you might have expected (such as @code{\\verb}-like material in
3679footnotes, and color selections over page breaks) now work. Note that the
3680majority of the bigfoot package's interface is identical to that of
3681@code{manyfoot}; users should seek information from that package's
3682documentation. The bigfoot bundle also provides the @code{perpage} and
3683@code{suffix} packages.")
3684 (license license:gpl2+)))
3685
8e732b49
RW
3686(define-public texlive-latex-blindtext
3687 (package
3688 (name "texlive-latex-blindtext")
3689 (version (number->string %texlive-revision))
3690 (source (origin
3691 (method svn-fetch)
3692 (uri (texlive-ref "latex" "blindtext"))
3693 (file-name (string-append name "-" version "-checkout"))
3694 (sha256
3695 (base32
3696 "1jrja9b1pzdh9zgv1jh807w4xijqja58n2mqny6dkwicv8qfgbfg"))))
3697 (build-system texlive-build-system)
3698 (arguments '(#:tex-directory "latex/blindtext"))
b8d8806b 3699 (home-page "https://www.ctan.org/pkg/blindtext")
8e732b49
RW
3700 (synopsis "Producing 'blind' text for testing")
3701 (description
3702 "The package provides the commands @code{\\blindtext} and
3703@code{\\Blindtext} for creating \"blind\" text useful in testing new classes
3704and packages, and @code{\\blinddocument}, @code{\\Blinddocument} for creating
3705an entire random document with sections, lists, mathematics, etc. The package
3706supports three languages, @code{english}, @code{(n)german} and @code{latin};
3707the @code{latin} option provides a short \"lorem ipsum\" (for a fuller \"lorem
3708ipsum\" text, see the @code{lipsum} package).")
3709 (license license:lppl)))
3710
7cda03bd
RW
3711(define-public texlive-latex-dinbrief
3712 (package
3713 (name "texlive-latex-dinbrief")
3714 (version (number->string %texlive-revision))
3715 (source (origin
3716 (method svn-fetch)
3717 (uri (texlive-ref "latex" "dinbrief"))
3718 (file-name (string-append name "-" version "-checkout"))
3719 (sha256
3720 (base32
3721 "0lb0kiy8fxzl6cnhcw1sggy6jrjvcd6kj1kkw3k9lkimm388yjz6"))))
3722 (build-system texlive-build-system)
3723 (arguments
3724 '(#:tex-directory "latex/dinbrief"
3725 #:phases
3726 (modify-phases %standard-phases
3727 (add-after 'unpack 'remove-generated-file
3728 (lambda _
3729 (delete-file "dinbrief.drv")
d4d9a1ec
RW
3730 #t))
3731 (add-after 'unpack 'fix-encoding-error
3732 (lambda _
3733 (with-fluids ((%default-port-encoding "ISO-8859-1"))
3734 (substitute* "dinbrief.dtx"
3735 (("zur Verf.+ung. In der Pr\"aambel")
3736 "zur Verf\"ung. In der Pr\"aambel")))
7cda03bd 3737 #t)))))
b8d8806b 3738 (home-page "https://www.ctan.org/pkg/dinbrief")
7cda03bd
RW
3739 (synopsis "German letter DIN style")
3740 (description
3741 "This package implements a document layout for writing letters according
3742to the rules of DIN (Deutsches Institut für Normung, German standardisation
3743institute). A style file for LaTeX 2.09 (with limited support of the
3744features) is part of the package. Since the letter layout is based on a
3745German standard, the user guide is written in German, but most macros have
3746English names from which the user can recognize what they are used for. In
3747addition there are example files showing how letters may be created with the
3748package.")
3749 (license license:lppl)))
3750
de224adb
RW
3751(define-public texlive-latex-draftwatermark
3752 (package
3753 (name "texlive-latex-draftwatermark")
3754 (version (number->string %texlive-revision))
3755 (source (origin
3756 (method svn-fetch)
3757 (uri (texlive-ref "latex" "draftwatermark"))
3758 (file-name (string-append name "-" version "-checkout"))
3759 (sha256
3760 (base32
3761 "1zyl2pcz2x529gzj5m93a1s4ipymdabf7qdjl3l1673pizd4hfyv"))))
3762 (build-system texlive-build-system)
3763 (arguments '(#:tex-directory "latex/draftwatermark"))
b8d8806b 3764 (home-page "https://www.ctan.org/pkg/draftwatermark")
de224adb
RW
3765 (synopsis "Put a grey textual watermark on document pages")
3766 (description
3767 "This package provides a means to add a textual, light grey watermark on
3768every page or on the first page of a document. Typical usage may consist in
3769writing words such as DRAFT or CONFIDENTIAL across document pages. The
3770package performs a similar function to that of @code{draftcopy}, but its
3771implementation is output device independent, and made very simple by relying
3772on everypage.")
3773 (license license:lppl1.3+)))
3774
74e9c9a4
RW
3775(define-public texlive-latex-environ
3776 (package
3777 (name "texlive-latex-environ")
3778 (version (number->string %texlive-revision))
3779 (source (origin
3780 (method svn-fetch)
3781 (uri (texlive-ref "latex" "environ"))
3782 (file-name (string-append name "-" version "-checkout"))
3783 (sha256
3784 (base32
3785 "06h28b26dyjkj9shksphgqfv4130jfkwhbw737hxn7d3yvdfffyd"))))
3786 (build-system texlive-build-system)
3787 (arguments '(#:tex-directory "latex/environ"))
b8d8806b 3788 (home-page "https://www.ctan.org/pkg/environ")
74e9c9a4
RW
3789 (synopsis "New interface for environments in LaTeX")
3790 (description
09acbb02
RW
3791 "This package provides the @code{\\collect@@body} command (as in
3792@code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},
3793for collecting the body text of an environment. These commands are used to
3794define a new author interface to creating new environments.")
74e9c9a4
RW
3795 (license license:lppl)))
3796
adfa7a2a
RW
3797(define-public texlive-latex-eqparbox
3798 (package
3799 (name "texlive-latex-eqparbox")
3800 (version (number->string %texlive-revision))
3801 (source (origin
3802 (method svn-fetch)
3803 (uri (texlive-ref "latex" "eqparbox"))
3804 (file-name (string-append name "-" version "-checkout"))
3805 (sha256
3806 (base32
d4d9a1ec 3807 "1ib5xdwcj5wk23wgk41m2hdcjr1dzrs4l3wwnpink9mlapz12wjs"))))
adfa7a2a
RW
3808 (build-system texlive-build-system)
3809 (arguments '(#:tex-directory "latex/eqparbox"))
b8d8806b 3810 (home-page "https://www.ctan.org/pkg/eqparbox")
adfa7a2a
RW
3811 (synopsis "Create equal-widthed parboxes")
3812 (description
3813 "LaTeX users sometimes need to ensure that two or more blocks of text
3814occupy the same amount of horizontal space on the page. To that end, the
3815@code{eqparbox} package defines a new command, @code{\\eqparbox}, which works
3816just like @code{\\parbox}, except that instead of specifying a width, one
3817specifies a tag. All @code{eqparbox}es with the same tag---regardless of
3818where they are in the document---will stretch to fit the widest
3819@code{eqparbox} with that tag. This simple, equal-width mechanism can be used
3820for a variety of alignment purposes, as is evidenced by the examples in
3821@code{eqparbox}'s documentation. Various derivatives of @code{\\eqparbox} are
3822also provided.")
3823 (license license:lppl1.3+)))
3824
32e623d0
RW
3825(define-public texlive-latex-expdlist
3826 (package
3827 (name "texlive-latex-expdlist")
3828 (version (number->string %texlive-revision))
3829 (source (origin
3830 (method svn-fetch)
3831 (uri (texlive-ref "latex" "expdlist"))
3832 (file-name (string-append name "-" version "-checkout"))
3833 (sha256
3834 (base32
3835 "1x7byk6x10njir3y9rm56glhdzrxwqag7gsnw2sqn1czlq525w7r"))))
3836 (build-system texlive-build-system)
3837 (arguments
3838 '(#:tex-directory "latex/expdlist"
3839 #:phases
3840 (modify-phases %standard-phases
3841 (add-after 'unpack 'remove-generated-file
3842 (lambda _
3843 (for-each delete-file
3844 (find-files "." "\\.drv$"))
3845 #t)))))
b8d8806b 3846 (home-page "https://www.ctan.org/pkg/expdlist")
32e623d0
RW
3847 (synopsis "Expanded description environments")
3848 (description
3849 "The package provides additional features for the LaTeX
3850@code{description} environment, including adjustable left margin. The package
3851also allows the user to \"break\" a list (for example, to interpose a comment)
3852without affecting the structure of the list (this works for @code{itemize} and
3853@code{enumerate} lists, and numbered lists remain in sequence).")
3854 (license license:lppl)))
3855
1333198d 3856(define-public texlive-filemod
893e3fc1 3857 (package
1333198d
RW
3858 (inherit (simple-texlive-package
3859 "texlive-filemod"
3860 (list "/doc/latex/filemod/"
3861 "/tex/latex/filemod/"
3862 "/tex/generic/filemod/")
3863 (base32
3864 "1snsj7kblkj1ig3x3845lsypz7ab04lf0dcpdh946xakgjnz4fb5")
3865 #:trivial? #t))
b8d8806b 3866 (home-page "https://www.ctan.org/pkg/filemod")
893e3fc1
RW
3867 (synopsis "Provide file modification times, and compare them")
3868 (description
3869 "This package provides macros to read and compare the modification dates
3870of files. The files may be @code{.tex} files, images or other files (as long
3871as they can be found by LaTeX). It uses the @code{\\pdffilemoddate} primitive
3872of pdfLaTeX to find the file modification date as PDF date string, parses the
3873string and returns the value to the user. The package will also work for DVI
3874output with recent versions of the LaTeX compiler which uses pdfLaTeX in DVI
3875mode. The functionality is provided by purely expandable macros or by faster
3876but non-expandable ones.")
3877 (license license:lppl1.3+)))
3878
1333198d
RW
3879(define-public texlive-latex-filemod
3880 (deprecated-package "texlive-latex-filemod" texlive-filemod))
3881
8c23f238
RW
3882(define-public texlive-latex-ifplatform
3883 (package
3884 (name "texlive-latex-ifplatform")
3885 (version (number->string %texlive-revision))
3886 (source (origin
3887 (method svn-fetch)
3888 (uri (texlive-ref "latex" "ifplatform"))
3889 (file-name (string-append name "-" version "-checkout"))
3890 (sha256
3891 (base32
d4d9a1ec 3892 "157pplavvm2z97b3jl4x41w11k6q9wgy074mfg0dwmsx5lm328jy"))))
8c23f238
RW
3893 (build-system texlive-build-system)
3894 (arguments '(#:tex-directory "latex/ifplatform"))
b8d8806b 3895 (home-page "https://www.ctan.org/pkg/ifplatform")
8c23f238
RW
3896 (synopsis "Conditionals to test which platform is being used")
3897 (description
3898 "This package uses the (La)TeX extension @code{-shell-escape} to
3899establish whether the document is being processed on a Windows or on a
3900Unix-like system, or on Cygwin (Unix environment over a Windows system).
3901Booleans provided are: @code{\\ifwindows}, @code{\\iflinux}, @code{\\ifmacosx}
3902and @code{\\ifcygwin}. The package also preserves the output of @code{uname}
3903on a Unix-like system, which may be used to distinguish between various
3904classes of systems.")
3905 (license license:lppl)))
3906
9b416042
RW
3907(define-public texlive-latex-natbib
3908 (package
3909 (name "texlive-latex-natbib")
3910 (version (number->string %texlive-revision))
3911 (source (origin
3912 (method svn-fetch)
3913 (uri (texlive-ref "latex" "natbib"))
23ae6e65 3914 (file-name (string-append name "-" version "-checkout"))
9b416042
RW
3915 (sha256
3916 (base32
3917 "0aqliq0nwblxyrzhwhv77pnmk7qh2y3prgq7z7qhwcbgz5kisld7"))))
3918 (build-system texlive-build-system)
3919 (arguments '(#:tex-directory "latex/natbib"))
b8d8806b 3920 (home-page "https://www.ctan.org/pkg/natbib")
9b416042
RW
3921 (synopsis "Flexible bibliography support")
3922 (description
3923 "This bundle provides a package that implements both author-year and
3924numbered references, as well as much detailed of support for other
3925bibliography use. Also provided are versions of the standard BibTeX styles
3926that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat},
3927@code{abbrnat}. The bibliography styles produced by @code{custom-bib} are
3928designed from the start to be compatible with @code{natbib}.")
3929 (license license:lppl)))
3930
d770d07f
RW
3931(define-public texlive-latex-psfrag
3932 (package
3933 (name "texlive-latex-psfrag")
3934 (version (number->string %texlive-revision))
3935 (source (origin
3936 (method svn-fetch)
3937 (uri (texlive-ref "latex" "psfrag"))
3938 (file-name (string-append name "-" version "-checkout"))
3939 (sha256
3940 (base32
3941 "1dxbl5il7wbbsp0v45vk884xi1192wxw03849pb1g5q4x808n352"))))
3942 (build-system texlive-build-system)
3943 (arguments '(#:tex-directory "latex/psfrag"))
b8d8806b 3944 (home-page "https://www.ctan.org/pkg/psfrag")
d770d07f
RW
3945 (synopsis "Replace strings in encapsulated PostScript figures")
3946 (description
3947 "This package allows LaTeX constructions (equations, picture
3948environments, etc.) to be precisely superimposed over Encapsulated PostScript
3949figures, using your own favorite drawing tool to create an EPS figure and
3950placing simple text \"tags\" where each replacement is to be placed, with
3951PSfrag automatically removing these tags from the figure and replacing them
3952with a user specified LaTeX construction, properly aligned, scaled, and/or
3953rotated.")
3954 (license (license:fsf-free "file://psfrag.dtx"))))
3955
6090b6c4 3956(define-public texlive-pstool
5a1ee7d8 3957 (package
6090b6c4
RW
3958 (inherit (simple-texlive-package
3959 "texlive-pstool"
3960 (list "/doc/latex/pstool/"
3961 "/tex/latex/pstool/")
3962 (base32
3963 "12clzcw2cl7g2chr2phgmmiwxw4859cln1gbx1wgp8bl9iw590nc")
3964 #:trivial? #t))
5a1ee7d8 3965 (propagated-inputs
d4d9a1ec 3966 `(("texlive-latex-bigfoot" ,texlive-latex-bigfoot) ; for suffix
5a1ee7d8
RW
3967 ("texlive-latex-filemod" ,texlive-latex-filemod)
3968 ("texlive-latex-graphics" ,texlive-latex-graphics)
3969 ("texlive-latex-ifplatform" ,texlive-latex-ifplatform)
d4d9a1ec 3970 ("texlive-latex-l3kernel" ,texlive-latex-l3kernel) ; for expl3
5a1ee7d8
RW
3971 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
3972 ("texlive-latex-psfrag" ,texlive-latex-psfrag)
d4d9a1ec
RW
3973 ("texlive-latex-tools" ,texlive-latex-tools) ; for shellesc
3974 ("texlive-latex-trimspaces" ,texlive-latex-trimspaces)
3975 ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
b8d8806b 3976 (home-page "https://www.ctan.org/pkg/pstool")
d4d9a1ec 3977 (synopsis "Process PostScript graphics within pdfLaTeX documents")
5a1ee7d8
RW
3978 (description
3979 "This is a package for processing PostScript graphics with @code{psfrag}
3980labels within pdfLaTeX documents. Every graphic is compiled individually,
3981drastically speeding up compilation time when only a single figure needs
3982re-processing.")
3983 (license license:lppl)))
3984
6090b6c4
RW
3985(define-public texlive-latex-pstool
3986 (deprecated-package "texlive-latex-pstool" texlive-pstool))
3987
a72058b9 3988(define-public texlive-seminar
171160d5 3989 (package
a72058b9
RW
3990 (inherit (simple-texlive-package
3991 "texlive-seminar"
3992 (list "/doc/latex/seminar/"
3993 "/tex/latex/seminar/")
3994 (base32
3995 "1clgw5xy867khzfn8d210rc5hsw5s7r0pznhk84niybvw4zc7r3f")
3996 #:trivial? #t))
b8d8806b 3997 (home-page "https://www.ctan.org/pkg/seminar")
171160d5
RW
3998 (synopsis "Make overhead slides")
3999 ;; TODO: This package may need fancybox and xcomment at runtime.
4000 (description
4001 "This package provides a class that produces overhead
4002slides (transparencies), with many facilities. Seminar is not nowadays
4003reckoned a good basis for a presentation — users are advised to use more
4004recent classes such as powerdot or beamer, both of which are tuned to
400521st-century presentation styles.")
4006 (license license:lppl1.2+)))
4007
a72058b9
RW
4008(define-public texlive-latex-seminar
4009 (deprecated-package "texlive-latex-seminar" texlive-seminar))
4010
f3540dbd
RW
4011(define-public texlive-latex-trimspaces
4012 (package
4013 (name "texlive-latex-trimspaces")
4014 (version (number->string %texlive-revision))
4015 (source (origin
4016 (method svn-fetch)
4017 (uri (texlive-ref "latex" "trimspaces"))
70a71d19 4018 (file-name (string-append name "-" version "-checkout"))
f3540dbd
RW
4019 (sha256
4020 (base32
4021 "0da00lb32am4g63mn96625wg48p3pj3spx79lajrk17d549apwqa"))))
4022 (build-system texlive-build-system)
4023 (arguments
4024 '(#:tex-directory "latex/trimspaces"
4025 #:tex-format "latex"
4026 #:phases
4027 (modify-phases %standard-phases
4028 (add-after 'unpack 'fix-bug
4029 (lambda _
4030 ;; The "ins" file refers to the wrong source file.
4031 (substitute* "trimspaces.ins"
4032 (("pstool.tex") "trimspaces.tex"))
4033 #t)))))
4034 (inputs
4035 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
b8d8806b 4036 (home-page "https://www.ctan.org/pkg/trimspaces")
f3540dbd
RW
4037 (synopsis "Trim spaces around an argument or within a macro")
4038 (description
4039 "This very short package allows you to expandably remove spaces around a
4040token list (commands are provided to remove spaces before, spaces after, or
4041both); or to remove surrounding spaces within a macro definition, or to define
4042space-stripped macros.")
4043 (license license:lppl)))
4044
7709d4d8
RW
4045(define-public texlive-latex-capt-of
4046 (package
4047 (name "texlive-latex-capt-of")
4048 (version (number->string %texlive-revision))
4049 (source (origin
4050 (method svn-fetch)
4051 (uri (svn-reference
4052 (url (string-append "svn://www.tug.org/texlive/tags/"
4053 %texlive-tag "/Master/texmf-dist/"
4054 "/tex/latex/capt-of"))
4055 (revision %texlive-revision)))
4056 (file-name (string-append name "-" version "-checkout"))
4057 (sha256
4058 (base32
4059 "1y2s50f6lz0jx2748lj3iy56hrpcczgnbzmvphxv7aqndyyamd4x"))))
4060 (build-system trivial-build-system)
4061 (arguments
4062 `(#:modules ((guix build utils))
4063 #:builder
4064 (begin
4065 (use-modules (guix build utils))
4066 (let ((target (string-append (assoc-ref %outputs "out")
4067 "/share/texmf-dist/tex/latex/capt-of")))
4068 (mkdir-p target)
4069 (copy-recursively (assoc-ref %build-inputs "source") target)
4070 #t))))
b8d8806b 4071 (home-page "https://www.ctan.org/pkg/capt-of")
7709d4d8
RW
4072 (synopsis "Captions on more than floats")
4073 (description
4074 "This package defines a command @code{\\captionof} for putting a caption
4075to something that's not a float.")
4076 (license license:lppl)))
4077
fb01a296 4078(define-public texlive-doi
49b2e86a 4079 (package
fb01a296
RW
4080 (inherit (simple-texlive-package
4081 "texlive-doi"
85892948 4082 (list "/doc/latex/doi/README.md"
fb01a296
RW
4083 "/tex/latex/doi/")
4084 (base32
85892948 4085 "18z9922lqb3hliqn95h883fndqs4lgyi5yqbnq2932ya0imc3j7h")
fb01a296 4086 #:trivial? #t))
49b2e86a
RW
4087 (home-page "https://www.ctan.org/pkg/doi")
4088 (synopsis "Create correct hyperlinks for DOI numbers")
4089 (description
4090 "You can hyperlink DOI numbers to doi.org. However, some publishers have
4091elected to use nasty characters in their DOI numbering scheme (@code{<},
4092@code{>}, @code{_} and @code{;} have all been spotted). This will either
4093upset LaTeX, or your PDF reader. This package contains a single user-level
4094command @code{\\doi{}}, which takes a DOI number, and creates a correct
4095hyperlink to the target of the DOI.")
4096 ;; Any version of the LPPL.
4097 (license license:lppl1.3+)))
4098
fb01a296
RW
4099(define-public texlive-latex-doi
4100 (deprecated-package "texlive-latex-doi" texlive-doi))
4101
346354a1 4102(define-public texlive-etoolbox
a8ac7c0b 4103 (package
346354a1
RW
4104 (inherit (simple-texlive-package
4105 "texlive-etoolbox"
4106 (list "/doc/latex/etoolbox/"
4107 "/tex/latex/etoolbox/")
4108 (base32
85892948 4109 "1cc1vw1ach55g4ff4x30by8k1mg01w199ccxvn72f5khlnnxial0")
346354a1 4110 #:trivial? #t))
b8d8806b 4111 (home-page "https://www.ctan.org/pkg/etoolbox")
a8ac7c0b
RW
4112 (synopsis "e-TeX tools for LaTeX")
4113 (description
4114 "This package is a toolbox of programming facilities geared primarily
4115towards LaTeX class and package authors. It provides LaTeX frontends to some
4116of the new primitives provided by e-TeX as well as some generic tools which
4117are not strictly related to e-TeX but match the profile of this package. The
4118package provides functions that seem to offer alternative ways of implementing
4119some LaTeX kernel commands; nevertheless, the package will not modify any part
4120of the LaTeX kernel.")
4121 (license license:lppl1.3+)))
4122
346354a1
RW
4123(define-public texlive-latex-etoolbox
4124 (deprecated-package "texlive-latex-etoolbox" texlive-etoolbox))
4125
17dce7e5
RW
4126(define-public texlive-latex-fncychap
4127 (package
4128 (name "texlive-latex-fncychap")
4129 (version (number->string %texlive-revision))
4130 (source (origin
4131 (method svn-fetch)
4132 (uri (svn-reference
4133 (url (string-append "svn://www.tug.org/texlive/tags/"
4134 %texlive-tag "/Master/texmf-dist/"
4135 "/tex/latex/fncychap"))
4136 (revision %texlive-revision)))
4137 (file-name (string-append name "-" version "-checkout"))
4138 (sha256
4139 (base32
4140 "0fdk84dbicfjfprkz6vk15x36mvlhaw9isjmgkc56jp2khwjswwq"))))
4141 (build-system trivial-build-system)
4142 (arguments
4143 `(#:modules ((guix build utils))
4144 #:builder
4145 (begin
4146 (use-modules (guix build utils))
4147 (let ((target (string-append (assoc-ref %outputs "out")
4148 "/share/texmf-dist/tex/latex/fncychap")))
4149 (mkdir-p target)
4150 (copy-recursively (assoc-ref %build-inputs "source") target)
4151 #t))))
b8d8806b 4152 (home-page "https://www.ctan.org/pkg/fncychap")
17dce7e5
RW
4153 (synopsis "Seven predefined chapter heading styles")
4154 (description
4155 "This package provides seven predefined chapter heading styles. Each
4156style can be modified using a set of simple commands. Optionally one can
4157modify the formatting routines in order to create additional chapter
4158headings.")
4159 (license license:lppl1.3+)))
4160
ef1e2ef0
RW
4161(define-public texlive-latex-framed
4162 (package
4163 (name "texlive-latex-framed")
4164 (version (number->string %texlive-revision))
4165 (source (origin
4166 (method svn-fetch)
4167 (uri (svn-reference
4168 (url (string-append "svn://www.tug.org/texlive/tags/"
4169 %texlive-tag "/Master/texmf-dist/"
4170 "/tex/latex/framed"))
4171 (revision %texlive-revision)))
4172 (file-name (string-append name "-" version "-checkout"))
4173 (sha256
4174 (base32
4175 "14a4ydqsvp3vcfavl21jrv0ybiqypaaqzg2q2cs3rzkandg7w98x"))))
4176 (build-system trivial-build-system)
4177 (arguments
4178 `(#:modules ((guix build utils))
4179 #:builder
4180 (begin
4181 (use-modules (guix build utils))
4182 (let ((target (string-append (assoc-ref %outputs "out")
4183 "/share/texmf-dist/tex/latex/framed")))
4184 (mkdir-p target)
4185 (copy-recursively (assoc-ref %build-inputs "source") target)
4186 #t))))
b8d8806b 4187 (home-page "https://www.ctan.org/pkg/framed")
ef1e2ef0
RW
4188 (synopsis "Framed or shaded regions that can break across pages")
4189 (description
4190 "The package creates three environments: @code{framed}, which puts an
4191ordinary frame box around the region, @code{shaded}, which shades the region,
4192and @code{leftbar}, which places a line at the left side. The environments
4193allow a break at their start (the @code{\\FrameCommand} enables creation of a
4194title that is “attached” to the environment); breaks are also allowed in the
4195course of the framed/shaded matter. There is also a command
4196@code{\\MakeFramed} to make your own framed-style environments.")
4197 ;; The header states: "These macros may be freely transmitted, reproduced,
4198 ;; or modified for any purpose provided that this notice is left intact."
4199 (license (license:fsf-free "file://framed.sty"))))
4200
588b5e96
RW
4201(define-public texlive-latex-g-brief
4202 (package
4203 (name "texlive-latex-g-brief")
4204 (version (number->string %texlive-revision))
4205 (source (origin
4206 (method svn-fetch)
4207 (uri (texlive-ref "latex" "g-brief"))
4208 (file-name (string-append name "-" version "-checkout"))
4209 (sha256
4210 (base32
85892948 4211 "1br4kv9y17cvngp83ykpvy7gy3jqfan5plk7sggcgbdfhndi5dsr"))))
588b5e96
RW
4212 (build-system texlive-build-system)
4213 (arguments
4214 '(#:tex-directory "latex/g-brief"
4215 #:phases
4216 (modify-phases %standard-phases
4217 (add-after 'unpack 'remove-generated-file
4218 (lambda _
4219 (delete-file "g-brief.drv")
4220 #t)))))
b8d8806b 4221 (home-page "https://www.ctan.org/pkg/g-brief")
588b5e96
RW
4222 (synopsis "Letter document class")
4223 (description
4224 "This package is designed for formatting formless letters in German; it
4225can also be used for English (by those who can read the documentation). There
4226are LaTeX 2.09 @code{documentstyle} and LaTeX 2e class files for both an
4227\"old\" and a \"new\" version of g-brief.")
4228 (license license:lppl)))
4229
9b4d5c09
RW
4230(define-public texlive-latex-galois
4231 (package
4232 (name "texlive-latex-galois")
4233 (version (number->string %texlive-revision))
4234 (source (origin
4235 (method svn-fetch)
4236 (uri (texlive-ref "latex" "galois"))
4237 (file-name (string-append name "-" version "-checkout"))
4238 (sha256
4239 (base32
4240 "0d4l0msk8j5pi95xnmm9wygv1vbpkwkv5amx9l0km86cs79jpp1h"))))
4241 (build-system texlive-build-system)
4242 (arguments '(#:tex-directory "latex/galois"))
b8d8806b 4243 (home-page "https://www.ctan.org/pkg/galois")
9b4d5c09
RW
4244 (synopsis "Typeset Galois connections")
4245 (description
4246 "The package deals with connections in two-dimensional style, optionally
4247in colour.")
4248 (license license:lppl)))
4249
5f691e2e
RW
4250(define-public texlive-latex-gcite
4251 (package
4252 (name "texlive-latex-gcite")
4253 (version (number->string %texlive-revision))
4254 (source (origin
4255 (method svn-fetch)
4256 (uri (texlive-ref "latex" "gcite"))
4257 (file-name (string-append name "-" version "-checkout"))
4258 (sha256
4259 (base32
4260 "03g9by54yrypn599y98r1xh7qw0bbbmpzq0bfwpj6j5q5rkl1mfa"))))
4261 (build-system texlive-build-system)
4262 (arguments '(#:tex-directory "latex/gcite"))
b8d8806b 4263 (home-page "https://www.ctan.org/pkg/gcite")
5f691e2e
RW
4264 (synopsis "Citations in a reader-friendly style")
4265 (description
4266 "The package allows citations in the German style, which is considered by
4267many to be particularly reader-friendly. The citation provides a small amount
4268of bibliographic information in a footnote on the page where each citation is
4269made. It combines a desire to eliminate unnecessary page-turning with the
4270look-up efficiency afforded by numeric citations. The package makes use of
4271BibLaTeX, and is considered experimental.")
4272 (license license:lppl1.3+)))
4273
f47d1a52
RW
4274(define-public texlive-latex-geometry
4275 (package
4276 (name "texlive-latex-geometry")
4277 (version (number->string %texlive-revision))
4278 (source (origin
4279 (method svn-fetch)
4280 (uri (texlive-ref "latex" "geometry"))
4281 (file-name (string-append name "-" version "-checkout"))
4282 (sha256
4283 (base32
85892948 4284 "0a8f38c2ds1flxcr0apdpyaaz3k6fyalz6dkbrmcv9srjc40mh3n"))))
f47d1a52
RW
4285 (build-system texlive-build-system)
4286 (arguments '(#:tex-directory "latex/geometry"))
00a7af0e
RW
4287 (propagated-inputs
4288 `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek))) ;for ifpdf
b8d8806b 4289 (home-page "https://www.ctan.org/pkg/geometry")
f47d1a52
RW
4290 (synopsis "Flexible and complete interface to document dimensions")
4291 (description
4292 "This package provides an easy and flexible user interface to customize
4293page layout, implementing auto-centering and auto-balancing mechanisms so that
4294the users have only to give the least description for the page layout. The
4295package knows about all the standard paper sizes, so that the user need not
4296know what the nominal \"real\" dimensions of the paper are, just its standard
4297name (such as a4, letter, etc.). An important feature is the package's
4298ability to communicate the paper size it's set up to the output.")
4299 (license license:lppl)))
4300
d48091be
RW
4301(define-public texlive-latex-mdwtools
4302 (package
4303 (name "texlive-latex-mdwtools")
4304 (version (number->string %texlive-revision))
4305 (source (origin
4306 (method svn-fetch)
4307 (uri (texlive-ref "latex" "mdwtools"))
4308 (file-name (string-append name "-" version "-checkout"))
4309 (sha256
4310 (base32
4311 "0caxs74hla28hc67csf5i5ahadx97w8vxh3mdmsprxbpd1mr7ssg"))))
4312 (build-system texlive-build-system)
4313 (arguments '(#:tex-directory "latex/mdwtools"))
b8d8806b 4314 (home-page "https://www.ctan.org/pkg/mdwtools")
d48091be
RW
4315 (synopsis "Miscellaneous tools by Mark Wooding")
4316 (description
4317 "This collection of tools includes: @code{atsupport} for short commands
fb5dfa86
RW
4318starting with @code{@@}, macros to sanitize the OT1 encoding of the
4319@code{cmtt} fonts; a @code{doafter} command; improved @code{footnote} support;
d48091be
RW
4320@code{mathenv} for various alignment in maths; list handling; @code{mdwmath}
4321which adds some minor changes to LaTeX maths; a rewrite of LaTeX's tabular and
4322array environments; verbatim handling; and syntax diagrams.")
4323 (license license:gpl3+)))
4324
80bf1f21
RW
4325(define-public texlive-latex-polyglossia
4326 (package
4327 (name "texlive-latex-polyglossia")
4328 (version (number->string %texlive-revision))
4329 (source (origin
4330 (method svn-fetch)
4331 (uri (texlive-ref "latex" "polyglossia"))
4332 (file-name (string-append name "-" version "-checkout"))
4333 (sha256
4334 (base32
85892948 4335 "0na7v4hsyx5s67cpjj2dbnq8j67k8lln6b19hmj631gfs27slss1"))))
80bf1f21
RW
4336 (build-system texlive-build-system)
4337 (arguments '(#:tex-directory "latex/polyglossia"))
b8d8806b 4338 (home-page "https://www.ctan.org/pkg/polyglossia")
80bf1f21
RW
4339 (synopsis "Alternative to babel for XeLaTeX and LuaLaTeX")
4340 (description
4341 "This package provides a complete Babel replacement for users of LuaLaTeX
4342and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least.")
4343 (license license:lppl1.3+)))
4344
84f8035a
RW
4345(define-public texlive-latex-supertabular
4346 (package
4347 (name "texlive-latex-supertabular")
4348 (version (number->string %texlive-revision))
4349 (source (origin
4350 (method svn-fetch)
4351 (uri (texlive-ref "latex" "supertabular"))
4352 (file-name (string-append name "-" version "-checkout"))
4353 (sha256
4354 (base32
4355 "14b2bc7cqz4ckxxycim9sw6jkrr1pahivm1rdbpz5k6hl967w1s3"))))
4356 (build-system texlive-build-system)
4357 (arguments '(#:tex-directory "latex/supertabular"))
b8d8806b 4358 (home-page "https://www.ctan.org/pkg/supertabular")
84f8035a
RW
4359 (synopsis "Multi-page tables package")
4360 (description
4361 "This package was a predecessor of @code{longtable}; the newer
4362package (designed on quite different principles) is easier to use and more
4363flexible, in many cases, but supertabular retains its usefulness in a few
4364situations where longtable has problems.")
4365 (license license:lppl1.3+)))
4366
a0aa6b59
RW
4367(define-public texlive-tex-texinfo
4368 (package
4369 (name "texlive-tex-texinfo")
4370 (version (number->string %texlive-revision))
4371 (source (origin
4372 (method svn-fetch)
4373 (uri (svn-reference
4374 (url (string-append "svn://www.tug.org/texlive/tags/"
4375 %texlive-tag "/Master/texmf-dist/"
4376 "/tex/texinfo"))
4377 (revision %texlive-revision)))
88ae1921 4378 (file-name (string-append name "-" version "-checkout"))
a0aa6b59
RW
4379 (sha256
4380 (base32
85892948 4381 "16jy02m089m7n6v9vbfi4xjgngc1fnvsmmppk8axfwzbhdky3c9c"))))
a0aa6b59
RW
4382 (build-system trivial-build-system)
4383 (arguments
4384 `(#:modules ((guix build utils))
4385 #:builder
4386 (begin
4387 (use-modules (guix build utils))
4388 (let ((target (string-append (assoc-ref %outputs "out")
4389 "/share/texmf-dist/tex/texinfo")))
4390 (mkdir-p target)
4391 (copy-recursively (assoc-ref %build-inputs "source") target)
4392 #t))))
b8d8806b 4393 (home-page "https://www.ctan.org/pkg/texinfo")
a0aa6b59
RW
4394 (synopsis "TeX macros to handle Texinfo files")
4395 (description
4396 "Texinfo is the preferred format for documentation in the GNU project;
4397the format may be used to produce online or printed output from a single
4398source. The Texinfo macros may be used to produce printable output using TeX;
4399other programs in the distribution offer online interactive use (with
4400hypertext linkages in some cases).")
4401 (license license:gpl3+)))
4402
0de81b09
RW
4403(define-public texlive-latex-upquote
4404 (package
4405 (name "texlive-latex-upquote")
4406 (version (number->string %texlive-revision))
4407 (source (origin
4408 (method svn-fetch)
4409 (uri (texlive-ref "latex" "upquote"))
4410 (file-name (string-append name "-" version "-checkout"))
4411 (sha256
4412 (base32
4413 "0d1050i973wnxigy0xpky5l7vn4ff7ldhkjpdqsw5s653gagwixp"))))
4414 (build-system texlive-build-system)
4415 (arguments '(#:tex-directory "latex/upquote"))
b8d8806b 4416 (home-page "https://www.ctan.org/pkg/upquote")
0de81b09
RW
4417 (synopsis "Show \"realistic\" quotes in verbatim")
4418 (description
4419 "Typewriter-style fonts are best for program listings, but Computer
4420Modern Typewriter prints @code{`} and @code{'} as bent opening and closing
4421single quotes. Other fonts, and most programming languages, print @code{`} as
4422a grave accent and @code{'} upright; @code{'} is used both to open and to
4423close quoted strings. The package switches the typewriter font to Computer
4424Modern Typewriter in OT1 encoding, and modifies the behaviour of
4425@code{verbatim}, @code{verbatim*}, @code{\\verb}, and @code{\\verb*} to print
4426in the expected way. It does this regardless of other fonts or encodings in
4427use, so long as the package is loaded after the other fonts were. The package
4428does not affect @code{\\tt}, @code{\\texttt}, etc.")
4429 (license license:lppl1.2+)))
4430
bda61541
RW
4431(define-public texlive-latex-anysize
4432 (package
4433 (name "texlive-latex-anysize")
4434 (version (number->string %texlive-revision))
4435 (source (origin
4436 (method svn-fetch)
4437 (uri (svn-reference
4438 (url (string-append "svn://www.tug.org/texlive/tags/"
4439 %texlive-tag "/Master/texmf-dist/"
4440 "/tex/latex/anysize"))
4441 (revision %texlive-revision)))
de4eb4d1 4442 (file-name (string-append name "-" version "-checkout"))
bda61541
RW
4443 (sha256
4444 (base32
4445 "19khwqjlvznc955sijhww3c4zbb0053rvzwv9nz738qknq7y18vb"))))
4446 (build-system trivial-build-system)
4447 (arguments
4448 `(#:modules ((guix build utils))
4449 #:builder
4450 (begin
4451 (use-modules (guix build utils))
4452 (let ((target (string-append (assoc-ref %outputs "out")
4453 "/share/texmf-dist/tex/latex/anysize")))
4454 (mkdir-p target)
4455 (copy-recursively (assoc-ref %build-inputs "source") target)
4456 #t))))
b8d8806b 4457 (home-page "https://www.ctan.org/pkg/anysize")
bda61541
RW
4458 (synopsis "Simple package to set up document margins")
4459 (description
4460 "This is a simple package to set up document margins. This package is
4461considered obsolete; alternatives are the @code{typearea} package from the
4462@code{koma-script} bundle, or the @code{geometry} package.")
4463 (license license:public-domain)))
4464
1d3be84e
RW
4465(define-public texlive-latex-appendix
4466 (package
4467 (name "texlive-latex-appendix")
4468 (version (number->string %texlive-revision))
4469 (source (origin
4470 (method svn-fetch)
4471 (uri (texlive-ref "latex" "appendix"))
72d5adf4 4472 (file-name (string-append name "-" version "-checkout"))
1d3be84e
RW
4473 (sha256
4474 (base32
4475 "0rxfpr8vq3brwx5rc7qn91ixlp9zva4zrms8a579fqa1g5yva7vg"))))
4476 (build-system texlive-build-system)
4477 (arguments '(#:tex-directory "latex/appendix"))
b8d8806b 4478 (home-page "https://www.ctan.org/pkg/appendix")
1d3be84e
RW
4479 (synopsis "Extra control of appendices")
4480 (description
4481 "The appendix package provides various ways of formatting the titles of
4482appendices. Also (sub)appendices environments are provided that can be used,
4483for example, for per chapter/section appendices. An @code{appendices}
4484environment is provided which can be used instead of the @code{\\appendix}
4485command.")
4486 (license license:lppl)))
4487
b92ac281
RW
4488(define-public texlive-latex-changebar
4489 (package
4490 (name "texlive-latex-changebar")
4491 (version (number->string %texlive-revision))
4492 (source (origin
4493 (method svn-fetch)
4494 (uri (texlive-ref "latex" "changebar"))
af8aa105 4495 (file-name (string-append name "-" version "-checkout"))
b92ac281
RW
4496 (sha256
4497 (base32
d4d9a1ec 4498 "05x15ilynqrl448h8l6qiraygamdldlngz89a2bw7kg74fym14ch"))))
b92ac281
RW
4499 (build-system texlive-build-system)
4500 (arguments '(#:tex-directory "latex/changebar"))
b8d8806b 4501 (home-page "https://www.ctan.org/pkg/changebar")
b92ac281
RW
4502 (synopsis "Generate changebars in LaTeX documents")
4503 (description
4504 "Identify areas of text to be marked with changebars with the
4505@code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured. The
36a4366d
EF
4506package uses @code{drivers} to place the bars; the available drivers can work
4507with @code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI
b92ac281
RW
4508drivers, and VTeX and pdfTeX.")
4509 (license license:lppl)))
4510
fedd77c1
RW
4511(define-public texlive-latex-cmap
4512 (package
4513 (name "texlive-latex-cmap")
4514 (version (number->string %texlive-revision))
4515 (source (origin
4516 (method svn-fetch)
4517 (uri (svn-reference
4518 (url (string-append "svn://www.tug.org/texlive/tags/"
4519 %texlive-tag "/Master/texmf-dist/"
4520 "/tex/latex/cmap"))
4521 (revision %texlive-revision)))
4522 (file-name (string-append name "-" version "-checkout"))
4523 (sha256
4524 (base32
4525 "1s1rv6zgw105w2j6ffhnk914qrix87y1ndzri1q72g2kbr91zlbg"))))
4526 (build-system trivial-build-system)
4527 (arguments
4528 `(#:modules ((guix build utils))
4529 #:builder
4530 (begin
4531 (use-modules (guix build utils))
4532 (let ((target (string-append (assoc-ref %outputs "out")
4533 "/share/texmf-dist/tex/latex/cmap")))
4534 (mkdir-p target)
4535 (copy-recursively (assoc-ref %build-inputs "source") target)
4536 #t))))
4537 (home-page "https://www.tug.org/svn/texlive/tags/texlive-2017.1/\
4538Master/texmf-dist/tex/latex/cmap/")
4539 (synopsis "CMap support for PDF files")
4540 (description
4541 "This package embeds CMap tables into PDF files to make search and
4542copy-and-paste functions work properly.")
4543 (license license:lppl)))
4544
e003a5f0
RW
4545(define-public texlive-latex-colortbl
4546 (package
4547 (name "texlive-latex-colortbl")
4548 (version (number->string %texlive-revision))
4549 (source (origin
4550 (method svn-fetch)
4551 (uri (texlive-ref "latex" "colortbl"))
4439c1de 4552 (file-name (string-append name "-" version "-checkout"))
e003a5f0
RW
4553 (sha256
4554 (base32
85892948 4555 "16vd99p01a0y30xr5yf1z2j5da9x8gy21vb30wk08jh31zffbaqj"))))
e003a5f0
RW
4556 (build-system texlive-build-system)
4557 (arguments '(#:tex-directory "latex/colortbl"))
b8d8806b 4558 (home-page "https://www.ctan.org/pkg/colortbl")
e003a5f0 4559 (synopsis "Add colour to LaTeX tables")
83c830d1 4560 (description
e003a5f0
RW
4561 "This package allows rows, columns, and even individual cells in LaTeX
4562tables to be coloured.")
4563 (license license:lppl)))
83c830d1 4564
36ce05ff 4565(define-public texlive-latex-fancybox
5e9bf5a2 4566 (package
36ce05ff 4567 (name "texlive-latex-fancybox")
5e9bf5a2
RW
4568 (version (number->string %texlive-revision))
4569 (source (origin
4570 (method svn-fetch)
4571 (uri (svn-reference
4572 (url (string-append "svn://www.tug.org/texlive/tags/"
4573 %texlive-tag "/Master/texmf-dist/"
36ce05ff 4574 "/tex/latex/fancybox"))
5e9bf5a2
RW
4575 (revision %texlive-revision)))
4576 (file-name (string-append name "-" version "-checkout"))
4577 (sha256
4578 (base32
36ce05ff 4579 "0smmnaad2q8qwicay1frri990lv65l0k8cwzsvdsyp3jk8kp042w"))))
5e9bf5a2
RW
4580 (build-system trivial-build-system)
4581 (arguments
36ce05ff 4582 `(#:modules ((guix build utils))
5e9bf5a2
RW
4583 #:builder
4584 (begin
36ce05ff
RW
4585 (use-modules (guix build utils))
4586 (let ((target (string-append (assoc-ref %outputs "out")
4587 "/share/texmf-dist/tex/latex/fancybox")))
4588 (mkdir-p target)
4589 (copy-recursively (assoc-ref %build-inputs "source") target)
5e9bf5a2 4590 #t))))
b8d8806b 4591 (home-page "https://www.ctan.org/pkg/fancybox")
36ce05ff 4592 (synopsis "Variants of \\fbox and other games with boxes")
5e9bf5a2 4593 (description
36ce05ff
RW
4594 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},
4595@code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for
4596using box macros and flexible verbatim macros. You can box mathematics,
4597floats, center, flushleft, and flushright, lists, and pages.")
4598 (license license:lppl1.2+)))
5e9bf5a2 4599
20282111 4600(define-public texlive-latex-fancyhdr
f2d1f060 4601 (package
20282111 4602 (name "texlive-latex-fancyhdr")
f2d1f060
RW
4603 (version (number->string %texlive-revision))
4604 (source (origin
4605 (method svn-fetch)
4606 (uri (svn-reference
4607 (url (string-append "svn://www.tug.org/texlive/tags/"
4608 %texlive-tag "/Master/texmf-dist/"
20282111 4609 "/tex/latex/fancyhdr"))
f2d1f060
RW
4610 (revision %texlive-revision)))
4611 (file-name (string-append name "-" version "-checkout"))
4612 (sha256
4613 (base32
85892948 4614 "0hrwspqkqfahxyzzsnjyrxlgxj06zw1f3636gx76pvl4xhvdj1cj"))))
f2d1f060
RW
4615 (build-system trivial-build-system)
4616 (arguments
20282111 4617 `(#:modules ((guix build utils))
f2d1f060
RW
4618 #:builder
4619 (begin
20282111
RW
4620 (use-modules (guix build utils))
4621 (let ((target (string-append (assoc-ref %outputs "out")
4622 "/share/texmf-dist/tex/latex/fancyhdr")))
4623 (mkdir-p target)
4624 (copy-recursively (assoc-ref %build-inputs "source") target)
f2d1f060 4625 #t))))
b8d8806b 4626 (home-page "https://www.ctan.org/pkg/fancyhdr")
20282111
RW
4627 (synopsis "Extensive control of page headers and footers in LaTeX2e")
4628 (description
4629 "The package provides extensive facilities, both for constructing headers
4630and footers, and for controlling their use (for example, at times when LaTeX
4631would automatically change the heading style in use).")
4632 (license license:lppl)))
4633
df2b9bb4
RW
4634(define-public texlive-latex-float
4635 (package
4636 (name "texlive-latex-float")
4637 (version (number->string %texlive-revision))
4638 (source (origin
4639 (method svn-fetch)
4640 (uri (texlive-ref "latex" "float"))
4fd0a591 4641 (file-name (string-append name "-" version "-checkout"))
df2b9bb4
RW
4642 (sha256
4643 (base32
4644 "0nbl7wylkv22fcdv4p8byhhj575fli6jnqjpkhrkbv8dzwah84nq"))))
4645 (build-system texlive-build-system)
4646 (arguments '(#:tex-directory "latex/float"))
b8d8806b 4647 (home-page "https://www.ctan.org/pkg/float")
df2b9bb4 4648 (synopsis "Improved interface for floating objects")
f2d1f060 4649 (description
df2b9bb4
RW
4650 "This package improves the interface for defining floating objects such
4651as figures and tables. It introduces the boxed float, the ruled float and the
4652plaintop float. You can define your own floats and improve the behaviour of
4653the old ones. The package also provides the @code{H} float modifier option of
4654the obsolete @code{here} package. You can select this as automatic default
4655with @code{\\floatplacement{figure}{H}}.")
4656 (license license:lppl)))
f2d1f060 4657
3921bc7c
RW
4658(define-public texlive-latex-footmisc
4659 (package
4660 (name "texlive-latex-footmisc")
4661 (version (number->string %texlive-revision))
4662 (source (origin
4663 (method svn-fetch)
4664 (uri (texlive-ref "latex" "footmisc"))
dae1d9e4 4665 (file-name (string-append name "-" version "-checkout"))
3921bc7c
RW
4666 (sha256
4667 (base32
4668 "03x61wwql8nh6zrqiiiq3rb0x7m3pn48c606zapy19y21fybwdxs"))))
4669 (build-system texlive-build-system)
4670 (arguments '(#:tex-directory "latex/footmisc"))
b8d8806b 4671 (home-page "https://www.ctan.org/pkg/footmisc")
3921bc7c
RW
4672 (synopsis "Range of footnote options")
4673 (description
4674 "This is a collection of ways to change the typesetting of footnotes.
4675The package provides means of changing the layout of the footnotes themselves,
4676a way to number footnotes per page, to make footnotes disappear in a
4677\"moving\" argument, and to deal with multiple references to footnotes from
4678the same place. The package also has a range of techniques for labelling
4679footnotes with symbols rather than numbers.")
4680 (license license:lppl1.3+)))
4681
b2bc1daf
RW
4682(define-public texlive-latex-listings
4683 (package
4684 (name "texlive-latex-listings")
4685 (version (number->string %texlive-revision))
4686 (source (origin
4687 (method svn-fetch)
4688 (uri (texlive-ref "latex" "listings"))
aeb135e3 4689 (file-name (string-append name "-" version "-checkout"))
b2bc1daf
RW
4690 (sha256
4691 (base32
85892948 4692 "1fbrhqj22vzakn30j71fc41l8nliqbv1dmxm0zlwi2qjjbq6fwav"))))
b2bc1daf
RW
4693 (build-system texlive-build-system)
4694 (arguments
4695 '(#:tex-directory "latex/listings"
4696 #:build-targets '("listings.ins")))
b8d8806b 4697 (home-page "https://www.ctan.org/pkg/listings")
b2bc1daf
RW
4698 (synopsis "Typeset source code listings using LaTeX")
4699 (description
4700 "The package enables the user to typeset programs (programming code)
4701within LaTeX; the source code is read directly by TeX---no front-end processor
4702is needed. Keywords, comments and strings can be typeset using different
4703styles. Support for @code{hyperref} is provided.")
4704 (license license:lppl1.3+)))
4705
02fd07b3 4706(define-public texlive-latex-jknapltx
4628315b 4707 (package
02fd07b3 4708 (name "texlive-latex-jknapltx")
4628315b
RW
4709 (version (number->string %texlive-revision))
4710 (source (origin
4711 (method svn-fetch)
4712 (uri (svn-reference
4713 (url (string-append "svn://www.tug.org/texlive/tags/"
4714 %texlive-tag "/Master/texmf-dist/"
02fd07b3 4715 "/tex/latex/jknapltx"))
4628315b
RW
4716 (revision %texlive-revision)))
4717 (file-name (string-append name "-" version "-checkout"))
4718 (sha256
4719 (base32
02fd07b3 4720 "0m034x72f2g07icr50gacyxfb9g1lz2rmqh4kqr1qjb421x2kds9"))))
4628315b
RW
4721 (build-system trivial-build-system)
4722 (arguments
02fd07b3 4723 `(#:modules ((guix build utils))
4628315b
RW
4724 #:builder
4725 (begin
02fd07b3
RW
4726 (use-modules (guix build utils))
4727 (let ((target (string-append (assoc-ref %outputs "out")
4728 "/share/texmf-dist/tex/latex/jknapltx")))
4729 (mkdir-p target)
4730 (copy-recursively (assoc-ref %build-inputs "source") target)
4628315b 4731 #t))))
b8d8806b 4732 (home-page "https://www.ctan.org/pkg/jknappen")
02fd07b3
RW
4733 (synopsis "Miscellaneous packages by Joerg Knappen")
4734 (description
4735 "This package provides miscellaneous macros by Joerg Knappen, including:
4736represent counters in greek; Maxwell's non-commutative division;
4737@code{latin1jk}, @code{latin2jk} and @code{latin3jk}, which are
4738@code{inputenc} definition files that allow verbatim input in the respective
4739ISO Latin codes; blackboard bold fonts in maths; use of RSFS fonts in maths;
4740extra alignments for @code{\\parboxes}; swap Roman and Sans fonts;
4741transliterate semitic languages; patches to make (La)TeX formulae embeddable
4742in SGML; use maths minus in text as appropriate; simple Young tableaux.")
4743 (license license:gpl2)))
4744
83c830d1
RW
4745(define-public texlive-fonts-ec
4746 (package
4747 (name "texlive-fonts-ec")
4748 (version (number->string %texlive-revision))
4749 (source (origin
4750 (method svn-fetch)
4751 (uri (svn-reference
4752 (url (string-append "svn://www.tug.org/texlive/tags/"
4753 %texlive-tag "/Master/texmf-dist/"
4754 "/fonts/source/jknappen/ec/"))
4755 (revision %texlive-revision)))
ca816eb3 4756 (file-name (string-append name "-" version "-checkout"))
83c830d1
RW
4757 (sha256
4758 (base32
4759 "12av65fbz9xiashm09c9m1fj1mijxls5xspd7652ry1n5s0nixy4"))))
4760 (build-system gnu-build-system)
4761 (arguments
4762 `(#:modules ((guix build gnu-build-system)
4763 (guix build utils)
4764 (srfi srfi-1)
4765 (srfi srfi-26))
4766 #:tests? #f ; no tests
4767 #:phases
4768 (modify-phases %standard-phases
4769 (delete 'configure)
4770 (replace 'build
4771 (lambda* (#:key inputs #:allow-other-keys)
4772 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
4773 ;; Tell mf where to find mf.base
4774 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
4775 ;; Tell mf where to look for source files
4776 (setenv "MFINPUTS"
4777 (string-append (getcwd) ":"
4778 mf "/share/texmf-dist/metafont/base:"
a6405e03 4779 (assoc-ref inputs "texlive-cm")
83c830d1
RW
4780 "/share/texmf-dist/fonts/source/public/cm")))
4781 (mkdir "build")
c4fc86e4
MW
4782 (for-each (lambda (font)
4783 (format #t "building font ~a\n" font)
4784 (invoke "mf" "-progname=mf"
4785 "-output-directory=build"
4786 (string-append "\\"
4787 "mode:=ljfour; "
4788 "mag:=1; "
4789 "batchmode; "
4790 "input " (basename font ".mf"))))
4791 (find-files "." "[0-9]+\\.mf$"))
4792 #t))
83c830d1
RW
4793 (replace 'install
4794 (lambda* (#:key outputs #:allow-other-keys)
4795 (let* ((out (assoc-ref outputs "out"))
4796 (tfm (string-append
4797 out "/share/texmf-dist/fonts/tfm/jknappen/ec"))
4798 (mf (string-append
4799 out "/share/texmf-dist/fonts/source/jknappen/ec")))
4800 (for-each (cut install-file <> tfm)
4801 (find-files "build" "\\.*"))
4802 (for-each (cut install-file <> mf)
4803 (find-files "." "\\.mf"))
4804 #t))))))
4628315b 4805 (native-inputs
83c830d1
RW
4806 `(("texlive-bin" ,texlive-bin)
4807 ("texlive-metafont-base" ,texlive-metafont-base)
a6405e03 4808 ("texlive-cm" ,texlive-cm)))
b8d8806b 4809 (home-page "https://www.ctan.org/pkg/ec")
83c830d1
RW
4810 (synopsis "Computer modern fonts in T1 and TS1 encodings")
4811 (description
4812 "The EC fonts are European Computer Modern Fonts, supporting the complete
4813LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.
4814These fonts are intended to be stable with no changes being made to the tfm
4815files. The set also contains a Text Companion Symbol font, called @code{tc},
4816featuring many useful characters needed in text typesetting, for example
4817oldstyle digits, currency symbols (including the newly created Euro symbol),
4818the permille sign, copyright, trade mark and servicemark as well as a copyleft
4819sign, and many others. Recent releases of LaTeX2e support the EC fonts. The
4820EC fonts supersede the preliminary version released as the DC fonts. The
4821fonts are available in (traced) Adobe Type 1 format, as part of the
4822@code{cm-super} bundle. The other Computer Modern-style T1-encoded Type 1
4823set, Latin Modern, is not actually a direct development of the EC set, and
4824differs from the EC in a number of particulars.")
4825 (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\
85892948 4826texlive-2019.3/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
83c830d1 4827
6a4fe83b
RW
4828;; FIXME: the fonts should be built from source, but running "tex aefonts.tex"
4829;; fails with obscure TeX-typical error messages.
4830(define-public texlive-ae
4831 (package
4832 (inherit (simple-texlive-package
4833 "texlive-ae"
4834 (list "/doc/fonts/ae/"
4835 "/source/fonts/ae/"
4836 "/fonts/tfm/public/ae/"
4837 "/fonts/vf/public/ae/"
4838 "/tex/latex/ae/")
4839 (base32
4840 "1xkzg381y0avdq381r2m990wp27czkdff0qkvsp2n5q62yc0bdsw")
4841 #:trivial? #t))
4842 (home-page "https://www.ctan.org/pkg/ae")
4843 (synopsis "Virtual fonts for T1 encoded CMR-fonts")
4844 (description
4845 "This package provides a set of virtual fonts which emulates T1 coded
4846fonts using the standard CM fonts. The package name, AE fonts, supposedly
4847stands for \"Almost European\". The main use of the package was to produce
4848PDF files using Adobe Type 1 versions of the CM fonts instead of bitmapped EC
4849fonts. Note that direct substitutes for the bitmapped EC fonts are available,
4850via the CM-super, Latin Modern and (in a restricted way) CM-LGC font sets.")
4851 (license license:lppl1.3+)))
4852
320dd119
RW
4853(define-public texlive-inconsolata
4854 (package
4855 (inherit (simple-texlive-package
4856 "texlive-inconsolata"
4857 (list "/doc/fonts/inconsolata/"
4858 "/fonts/enc/dvips/inconsolata/"
4859 "/fonts/map/dvips/inconsolata/"
4860 "/fonts/opentype/public/inconsolata/"
4861 "/fonts/tfm/public/inconsolata/"
4862 "/fonts/type1/public/inconsolata/"
4863 "/tex/latex/inconsolata/")
4864 (base32
4865 "1a77w26m4c4j0202s1qkikz7ha6cxlv8zxhzi9s3l0x1l2pl7cr2")
4866 #:trivial? #t))
4867 (home-page "https://www.ctan.org/pkg/inconsolata")
4868 (synopsis "Monospaced font with support files for use with TeX")
4869 (description
4870 "Inconsolata is a monospaced font designed by Raph Levien. This package
4871contains the font (in both Adobe Type 1 and OpenType formats) in regular and
4872bold weights, with additional glyphs and options to control slashed zero,
4873upright quotes and a shapelier lower-case L, plus metric files for use with
4874TeX, and LaTeX font definition and other relevant files.")
4875 (license (list license:lppl1.3+
4876 license:silofl1.1
4877 license:asl2.0))))
4878
1aaa117c 4879(define-public texlive-times
5e9bf5a2 4880 (package
1aaa117c
RW
4881 (inherit (simple-texlive-package
4882 "texlive-times"
4883 (list "/dvips/times/"
4884 "/fonts/afm/adobe/times/"
4885 "/fonts/afm/urw/times/"
4886 "/fonts/tfm/adobe/times/"
4887 "/fonts/tfm/urw35vf/times/"
4888 "/fonts/type1/urw/times/"
4889 "/fonts/vf/adobe/times/"
4890 "/fonts/vf/urw35vf/times/"
4891 "/fonts/map/dvips/times/"
4892 "/tex/latex/times/")
4893 (base32
4894 "13g41a7vbkvsf7ki9dgl7qm100w382mnlqkcngwgl3axp6s5s8l0")
4895 #:trivial? #t))
5e9bf5a2
RW
4896 (home-page "https://ctan.org/pkg/urw-base35")
4897 (synopsis "URW Base 35 font pack for LaTeX")
4898 (description
4899 "This package provides a drop-in replacements for the Times font from
4900Adobe's basic set.")
4901 ;; No license version specified.
4902 (license license:gpl3+)))
4903
1aaa117c
RW
4904(define-public texlive-fonts-adobe-times
4905 (deprecated-package "texlive-fonts-adobe-times" texlive-times))
4906
57bee3cc 4907(define-public texlive-palatino
f2d1f060 4908 (package
57bee3cc
RW
4909 (inherit (simple-texlive-package
4910 "texlive-palatino"
4911 (list "/dvips/palatino/"
4912 "/fonts/afm/adobe/palatino/"
4913 "/fonts/afm/urw/palatino/"
4914 "/fonts/tfm/adobe/palatino/"
4915 "/fonts/tfm/urw35vf/palatino/"
4916 "/fonts/type1/urw/palatino/"
4917 "/fonts/vf/adobe/palatino/"
4918 "/fonts/vf/urw35vf/palatino/"
4919
4920 "/fonts/map/dvips/palatino/"
4921 "/tex/latex/palatino/")
4922 (base32
4923 "12jc0av7v99857jigmva47qaxyllhpzsnqis10n0qya2kz44xf22")
4924 #:trivial? #t))
f2d1f060
RW
4925 (home-page "https://ctan.org/pkg/urw-base35")
4926 (synopsis "URW Base 35 font pack for LaTeX")
4927 (description
4928 "This package provides a drop-in replacements for the Palatino font from
4929Adobe's basic set.")
4930 ;; No license version specified.
4931 (license license:gpl3+)))
4932
57bee3cc
RW
4933(define-public texlive-fonts-adobe-palatino
4934 (deprecated-package "texlive-fonts-adobe-palatino" texlive-palatino))
4935
df19dc2f 4936(define-public texlive-zapfding
4628315b 4937 (package
df19dc2f
RW
4938 (inherit (simple-texlive-package
4939 "texlive-zapfding"
4940 (list "/dvips/zapfding/"
4941 "/fonts/afm/adobe/zapfding/"
4942 "/fonts/afm/urw/zapfding/"
4943 "/fonts/tfm/adobe/zapfding/"
4944 "/fonts/tfm/urw35vf/zapfding/"
4945 "/fonts/type1/urw/zapfding/"
4946 "/fonts/map/dvips/zapfding/"
4947 "/tex/latex/zapfding/")
4948 (base32
4949 "17mls8wilz9api9ivsbcczpiqp1f39qy8wa6ajssi8zhnc5lq7zn")
4950 #:trivial? #t))
4628315b
RW
4951 (home-page "https://ctan.org/pkg/urw-base35")
4952 (synopsis "URW Base 35 font pack for LaTeX")
4953 (description
4954 "This package provides a drop-in replacements for the Zapfding font from
4955Adobe's basic set.")
4956 ;; No license version specified.
4957 (license license:gpl3+)))
4958
df19dc2f
RW
4959(define-public texlive-fonts-adobe-zapfding
4960 (deprecated-package "texlive-fonts-adobe-zapfding" texlive-zapfding))
4961
f45a5520
RW
4962(define-public texlive-fonts-rsfs
4963 (package
4964 (name "texlive-fonts-rsfs")
4965 (version (number->string %texlive-revision))
4966 (source (origin
4967 (method svn-fetch)
4968 (uri (svn-reference
4969 (url (string-append "svn://www.tug.org/texlive/tags/"
4970 %texlive-tag "/Master/texmf-dist/"
4971 "/fonts/source/public/rsfs/"))
4972 (revision %texlive-revision)))
e26de9c9 4973 (file-name (string-append name "-" version "-checkout"))
f45a5520
RW
4974 (sha256
4975 (base32
4976 "0r12pn02r4a955prcvq0048nifh86ihlcgvw3pppqqvfngv34l5h"))))
4977 (build-system gnu-build-system)
4978 (arguments
4979 `(#:modules ((guix build gnu-build-system)
4980 (guix build utils)
4981 (srfi srfi-1)
4982 (srfi srfi-26))
4983 #:tests? #f ; no tests
4984 #:phases
4985 (modify-phases %standard-phases
4986 (delete 'configure)
4987 (replace 'build
4988 (lambda* (#:key inputs #:allow-other-keys)
4989 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
4990 ;; Tell mf where to find mf.base
4991 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
4992 ;; Tell mf where to look for source files
4993 (setenv "MFINPUTS"
4994 (string-append (getcwd) ":"
4995 mf "/share/texmf-dist/metafont/base:"
a6405e03 4996 (assoc-ref inputs "texlive-cm")
f45a5520
RW
4997 "/share/texmf-dist/fonts/source/public/cm")))
4998 (mkdir "build")
d8ac82c2
MW
4999 (for-each (lambda (font)
5000 (format #t "building font ~a\n" font)
5001 (invoke "mf" "-progname=mf"
5002 "-output-directory=build"
5003 (string-append "\\"
5004 "mode:=ljfour; "
5005 "mag:=1; "
5006 "batchmode; "
5007 "input " (basename font ".mf"))))
5008 (find-files "." "[0-9]+\\.mf$"))
5009 #t))
f45a5520
RW
5010 (replace 'install
5011 (lambda* (#:key outputs #:allow-other-keys)
5012 (let* ((out (assoc-ref outputs "out"))
5013 (tfm (string-append
5014 out "/share/texmf-dist/fonts/tfm/public/rsfs"))
5015 (mf (string-append
5016 out "/share/texmf-dist/fonts/source/public/rsfs")))
5017 (for-each (cut install-file <> tfm)
5018 (find-files "build" "\\.*"))
5019 (for-each (cut install-file <> mf)
5020 (find-files "." "\\.mf"))
5021 #t))))))
5022 (native-inputs
5023 `(("texlive-bin" ,texlive-bin)
5024 ("texlive-metafont-base" ,texlive-metafont-base)
a6405e03 5025 ("texlive-cm" ,texlive-cm)))
b8d8806b 5026 (home-page "https://www.ctan.org/pkg/rsfs")
f45a5520
RW
5027 (synopsis "Ralph Smith's Formal Script font")
5028 (description
5029 "The fonts provide uppercase formal script letters for use as symbols in
5030scientific and mathematical typesetting (in contrast to the informal script
5031fonts such as that used for the calligraphic symbols in the TeX maths symbol
5032font). The fonts are provided as Metafont source, and as derived Adobe Type 1
5033format. LaTeX support, for using these fonts in mathematics, is available via
5034one of the packages @code{calrsfs} and @code{mathrsfs}.")
5035 (license (license:fsf-free "http://mirrors.ctan.org/fonts/rsfs/README"))))
5036
1562763c
RW
5037(define-public texlive-latex-eso-pic
5038 (package
5039 (name "texlive-latex-eso-pic")
5040 (version (number->string %texlive-revision))
5041 (source (origin
5042 (method svn-fetch)
5043 (uri (texlive-ref "latex" "eso-pic"))
2678a63b 5044 (file-name (string-append name "-" version "-checkout"))
1562763c
RW
5045 (sha256
5046 (base32
85892948 5047 "0y2y08kr3w6asm9lblj9yywqmhaal36fq71zzcbfsc7cvwf641q7"))))
1562763c
RW
5048 (build-system texlive-build-system)
5049 (arguments '(#:tex-directory "latex/eso-pic"))
b8d8806b 5050 (home-page "https://www.ctan.org/pkg/eso-pic")
1562763c
RW
5051 (synopsis "Add picture commands (or backgrounds) to every page")
5052 (description
5053 "The package adds one or more user commands to LaTeX's @code{shipout}
5054routine, which may be used to place the output at fixed positions. The
5055@code{grid} option may be used to find the correct places.")
5056 (license license:lppl1.3+)))
5057
ae3779d5
RW
5058(define-public texlive-latex-eepic
5059 (package
5060 (name "texlive-latex-eepic")
5061 (version (number->string %texlive-revision))
5062 (source (origin
5063 (method svn-fetch)
5064 (uri (svn-reference
5065 (url (string-append "svn://www.tug.org/texlive/tags/"
5066 %texlive-tag "/Master/texmf-dist/"
5067 "/tex/latex/eepic"))
5068 (revision %texlive-revision)))
84d63643 5069 (file-name (string-append name "-" version "-checkout"))
ae3779d5
RW
5070 (sha256
5071 (base32
5072 "1c68gvh021pvybg07apsd2xhq2ljbg80kq94wh71drdga3c2zqjw"))))
5073 (build-system trivial-build-system)
5074 (arguments
5075 `(#:modules ((guix build utils))
5076 #:builder
5077 (begin
5078 (use-modules (guix build utils))
5079 (let ((target (string-append (assoc-ref %outputs "out")
5080 "/share/texmf-dist/tex/latex/eepic")))
5081 (mkdir-p target)
5082 (copy-recursively (assoc-ref %build-inputs "source") target)
5083 #t))))
b8d8806b 5084 (home-page "https://www.ctan.org/pkg/eepic")
ae3779d5
RW
5085 (synopsis "Extensions to epic and the LaTeX drawing tools")
5086 (description
5087 "Extensions to @code{epic} and the LaTeX picture drawing environment,
5088include the drawing of lines at any slope, the drawing of circles in any
5089radii, and the drawing of dotted and dashed lines much faster with much less
5090TeX memory, and providing several new commands for drawing ellipses, arcs,
5091splines, and filled circles and ellipses. The package uses @code{tpic}
5092@code{\\special} commands.")
5093 (license license:public-domain)))
5094
245f1f31
RW
5095(define-public texlive-latex-enumitem
5096 (package
5097 (name "texlive-latex-enumitem")
5098 (version (number->string %texlive-revision))
5099 (source (origin
5100 (method svn-fetch)
5101 (uri (svn-reference
5102 (url (string-append "svn://www.tug.org/texlive/tags/"
5103 %texlive-tag "/Master/texmf-dist/"
5104 "/tex/latex/enumitem"))
5105 (revision %texlive-revision)))
5106 (file-name (string-append name "-" version "-checkout"))
5107 (sha256
5108 (base32
85892948 5109 "1vm9xp67hzif0pqab4r3ialf0cyhi0fa4p8kxgp1ymcf85pqip14"))))
245f1f31
RW
5110 (build-system trivial-build-system)
5111 (arguments
5112 `(#:modules ((guix build utils))
5113 #:builder
5114 (begin
5115 (use-modules (guix build utils))
5116 (let ((target (string-append (assoc-ref %outputs "out")
5117 "/share/texmf-dist/tex/latex/enumitem")))
5118 (mkdir-p target)
5119 (copy-recursively (assoc-ref %build-inputs "source") target)
5120 #t))))
b8d8806b 5121 (home-page "https://www.ctan.org/pkg/enumitem")
245f1f31
RW
5122 (synopsis "Customize basic list environments")
5123 (description
5124 "This package is intended to ease customizing the three basic list
5125environments: @code{enumerate}, @code{itemize} and @code{description}. It
5126extends their syntax to allow an optional argument where a set of parameters
5127in the form @code{key=value} are available, for example:
5128@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}.")
5129 (license license:lppl1.3+)))
5130
ecffeeb5
RW
5131(define-public texlive-latex-multirow
5132 (package
5133 (name "texlive-latex-multirow")
5134 (version (number->string %texlive-revision))
5135 (source (origin
5136 (method svn-fetch)
5137 (uri (texlive-ref "latex" "multirow"))
6a919804 5138 (file-name (string-append name "-" version "-checkout"))
ecffeeb5
RW
5139 (sha256
5140 (base32
85892948 5141 "07vbcp6avdwldr870cwf65av2s9lfyzcpp8gpld53yw6lcxgaipj"))))
ecffeeb5
RW
5142 (build-system texlive-build-system)
5143 (arguments '(#:tex-directory "latex/multirow"))
b8d8806b 5144 (home-page "https://www.ctan.org/pkg/multirow")
ecffeeb5
RW
5145 (synopsis "Create tabular cells spanning multiple rows")
5146 (description
5147 "The package provides tools for creating tabular cells spanning multiple
5148rows. It has a lot of flexibility, including an option for specifying an
5149entry at the \"natural\" width of its text.")
5150 (license license:lppl1.3+)))
5151
da38b235
RW
5152(define-public texlive-latex-overpic
5153 (package
5154 (name "texlive-latex-overpic")
5155 (version (number->string %texlive-revision))
5156 (source (origin
5157 (method svn-fetch)
5158 (uri (svn-reference
5159 (url (string-append "svn://www.tug.org/texlive/tags/"
5160 %texlive-tag "/Master/texmf-dist/"
5161 "/tex/latex/overpic"))
5162 (revision %texlive-revision)))
b2aef721 5163 (file-name (string-append name "-" version "-checkout"))
da38b235
RW
5164 (sha256
5165 (base32
85892948 5166 "1pr6ym3ad7x14ng7gmhsmywh3685d2cnm5qgyrqbigng2r6fcc1k"))))
da38b235
RW
5167 (build-system trivial-build-system)
5168 (arguments
5169 `(#:modules ((guix build utils))
5170 #:builder
5171 (begin
5172 (use-modules (guix build utils))
5173 (let ((target (string-append (assoc-ref %outputs "out")
5174 "/share/texmf-dist/tex/latex/overpic")))
5175 (mkdir-p target)
5176 (copy-recursively (assoc-ref %build-inputs "source") target)
5177 #t))))
b8d8806b 5178 (home-page "https://www.ctan.org/pkg/overpic")
da38b235
RW
5179 (synopsis "Combine LaTeX commands over included graphics")
5180 (description
5181 "The @code{overpic} environment is a cross between the LaTeX
5182@code{picture} environment and the @code{\\includegraphics} command of
5183@code{graphicx}. The resulting picture environment has the same dimensions as
5184the included graphic. LaTeX commands can be placed on the graphic at defined
5185positions; a grid for orientation is available.")
5186 (license license:lppl1.0+)))
5187
e0d307d1
RW
5188(define-public texlive-latex-parskip
5189 (package
5190 (name "texlive-latex-parskip")
5191 (version (number->string %texlive-revision))
5192 (source (origin
5193 (method svn-fetch)
5194 (uri (svn-reference
5195 (url (string-append "svn://www.tug.org/texlive/tags/"
5196 %texlive-tag "/Master/texmf-dist/"
5197 "/tex/latex/parskip"))
5198 (revision %texlive-revision)))
5199 (file-name (string-append name "-" version "-checkout"))
5200 (sha256
5201 (base32
85892948 5202 "0j1fhm1m9k6rz80lmch3x44g20y9nm4abaaf8czb0q8hzwlx5aq5"))))
e0d307d1
RW
5203 (build-system trivial-build-system)
5204 (arguments
5205 `(#:modules ((guix build utils))
5206 #:builder
5207 (begin
5208 (use-modules (guix build utils))
5209 (let ((target (string-append (assoc-ref %outputs "out")
5210 "/share/texmf-dist/tex/latex/parskip")))
5211 (mkdir-p target)
5212 (copy-recursively (assoc-ref %build-inputs "source") target)
5213 #t))))
b8d8806b 5214 (home-page "https://www.ctan.org/pkg/parskip")
e0d307d1
RW
5215 (synopsis "Layout with zero \\parindent, non-zero \\parskip")
5216 (description
5217 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout
5218that is untidy; this package (though it is no substitute for a properly
5219designed class) helps alleviate this untidiness.")
5220 (license license:lppl)))
5221
adc02c70
RW
5222(define-public texlive-latex-pdfpages
5223 (package
5224 (name "texlive-latex-pdfpages")
5225 (version (number->string %texlive-revision))
5226 (source (origin
5227 (method svn-fetch)
5228 (uri (texlive-ref "latex" "pdfpages"))
7372ce18 5229 (file-name (string-append name "-" version "-checkout"))
adc02c70
RW
5230 (sha256
5231 (base32
d4d9a1ec 5232 "0s4izcah7im67889qz4d26pcfpasmm35sj1rw4ragkkdk3rlbbbd"))))
adc02c70
RW
5233 (build-system texlive-build-system)
5234 (arguments '(#:tex-directory "latex/pdfpages"))
b8d8806b 5235 (home-page "https://www.ctan.org/pkg/pdfpages")
adc02c70
RW
5236 (synopsis "Include PDF documents in LaTeX")
5237 (description
5238 "This package simplifies the inclusion of external multi-page PDF
5239documents in LaTeX documents. Pages may be freely selected and it is possible
5240to put several logical pages onto each sheet of paper. Furthermore a lot of
5241hypertext features like hyperlinks and article threads are provided. The
5242package supports pdfTeX (pdfLaTeX) and VTeX. With VTeX it is even possible to
5243use this package to insert PostScript files, in addition to PDF files.")
5244 (license license:lppl1.3+)))
5245
d8fef6ea
RW
5246(define-public texlive-fonts-stmaryrd
5247 (package
5248 (name "texlive-fonts-stmaryrd")
5249 (version (number->string %texlive-revision))
5250 (source (origin
5251 (method svn-fetch)
5252 (uri (texlive-ref "fonts" "stmaryrd"))
19835372 5253 (file-name (string-append name "-" version "-checkout"))
d8fef6ea
RW
5254 (sha256
5255 (base32
5256 "08pn4ca3vl6qm9l3wm5h5iyjsrg411kkm1yana329xwg2j14s9n6"))))
5257 (build-system texlive-build-system)
5258 (arguments
5259 '(#:tex-directory "latex/stmaryrd"
5260 #:phases
5261 (modify-phases %standard-phases
5262 (add-after 'configure 'patch-ins
5263 (lambda _
5264 (substitute* "stmaryrd.ins"
5265 (("^%% LaTeX2e.*") "\\input docstrip\n")
5266 (("fontdef\\}\\}" line)
5267 (string-append line "\n\\endbatchfile")))
5268 #t)))))
b8d8806b 5269 (home-page "https://www.ctan.org/pkg/stmaryrd")
d8fef6ea
RW
5270 (synopsis "St Mary Road symbols for theoretical computer science")
5271 (description
5272 "The fonts were originally distributed as Metafont sources only, but
5273Adobe Type 1 versions are also now available. Macro support is provided for
5274use under LaTeX; the package supports the @code{only} option (provided by the
5275@code{somedefs} package) to restrict what is loaded, for those who don't need
5276the whole font.")
5277 (license license:lppl)))
5278
2db3a034
RW
5279(define-public texlive-latex-subfigure
5280 (package
5281 (name "texlive-latex-subfigure")
5282 (version (number->string %texlive-revision))
5283 (source (origin
5284 (method svn-fetch)
5285 (uri (texlive-ref "latex" "subfigure"))
e1834df6 5286 (file-name (string-append name "-" version "-checkout"))
2db3a034
RW
5287 (sha256
5288 (base32
5289 "15spcl5wb7w269qd6y596vp4yi8sa5ppcx8w4z2i9kyp02r3a0yb"))))
5290 (build-system texlive-build-system)
5291 (arguments '(#:tex-directory "latex/subfigure"))
b8d8806b 5292 (home-page "https://www.ctan.org/pkg/subfigure")
2db3a034
RW
5293 (synopsis "Figures divided into subfigures")
5294 (description
5295 "This (deprecated) package provides support for the manipulation and
5296reference of small or \"sub\" figures and tables within a single figure or
5297table environment. It is convenient to use this package when your subfigures
5298are to be separately captioned, referenced, or are to be included in the
5299List-of-Figures. A new @code{\\subfigure} command is introduced which can be
5300used inside a figure environment for each subfigure. An optional first
5301argument is used as the caption for that subfigure. The package is now
5302considered obsolete: it was superseded by @code{subfig}, but users may find
5303the more recent @code{subcaption} package more satisfactory.")
5304 (license license:lppl)))
5305
c73d0e9d
RW
5306(define-public texlive-latex-tabulary
5307 (package
5308 (name "texlive-latex-tabulary")
5309 (version (number->string %texlive-revision))
5310 (source (origin
5311 (method svn-fetch)
5312 (uri (texlive-ref "latex" "tabulary"))
5313 (file-name (string-append name "-" version "-checkout"))
5314 (sha256
5315 (base32
5316 "1adkdx2zkk42g82nqf57lv1nc1z7kwl13jmy8vpcsizsa0xdnx9n"))))
5317 (build-system texlive-build-system)
5318 (arguments '(#:tex-directory "latex/tabulary"))
b8d8806b 5319 (home-page "https://www.ctan.org/pkg/tabulary")
c73d0e9d
RW
5320 (synopsis "Tabular with variable width columns balanced")
5321 (description
5322 "The package defines a @code{tabular*}-like environment, @code{tabulary},
5323taking a \"total width\" argument as well as the column specifications. The
5324environment uses column types @code{L}, @code{C}, @code{R} and @code{J} for
5325variable width columns (@code{\\raggedright}, @code{\\centering},
5326@code{\\raggedleft}, and normally justified). In contrast to
5327@code{tabularx}'s @code{X} columns, the width of each column is weighted
5328according to the natural width of the widest cell in the column.")
5329 (license license:lppl)))
5330
e3088297
RW
5331(define-public texlive-latex-threeparttable
5332 (package
5333 (name "texlive-latex-threeparttable")
5334 (version (number->string %texlive-revision))
5335 (source (origin
5336 (method svn-fetch)
5337 (uri (svn-reference
5338 (url (string-append "svn://www.tug.org/texlive/tags/"
5339 %texlive-tag "/Master/texmf-dist/"
5340 "/tex/latex/threeparttable"))
5341 (revision %texlive-revision)))
d57e5d41 5342 (file-name (string-append name "-" version "-checkout"))
e3088297
RW
5343 (sha256
5344 (base32
5345 "10vy9k150w2lviw8h22s2mcykff38xci653m5823s2vv44pwbmzq"))))
5346 (build-system trivial-build-system)
5347 (arguments
5348 `(#:modules ((guix build utils))
5349 #:builder
5350 (begin
5351 (use-modules (guix build utils))
5352 (let ((target (string-append (assoc-ref %outputs "out")
5353 "/share/texmf-dist/tex/latex/threeparttable")))
5354 (mkdir-p target)
5355 (copy-recursively (assoc-ref %build-inputs "source") target)
5356 #t))))
b8d8806b 5357 (home-page "https://www.ctan.org/pkg/threeparttable")
e3088297
RW
5358 (synopsis "Tables with captions and notes all the same width")
5359 (description
5360 "This package facilitates tables with titles (captions) and notes. The
5361title and notes are given a width equal to the body of the table (a
5362@code{tabular} environment). By itself, a @code{threeparttable} does not
5363float, but you can put it in a @code{table} or a @code{table*} or some other
5364environment.")
5365 (license (license:fsf-free "file://threeparttable.sty"))))
5366
0901f1b0 5367(define-public texlive-txfonts
1b10d494 5368 (package
0901f1b0
RW
5369 (inherit (simple-texlive-package
5370 "texlive-txfonts"
5371 (list "/doc/fonts/txfonts/"
5372
5373 "/fonts/afm/public/txfonts/"
5374 "/fonts/tfm/public/txfonts/"
5375 "/fonts/type1/public/txfonts/"
5376 "/fonts/vf/public/txfonts/"
5377
5378 "/fonts/map/dvips/txfonts/"
5379 "/fonts/enc/dvips/txfonts/"
5380 "/tex/latex/txfonts/")
5381 (base32
5382 "017zjas5y1zlyq0iy4x6mv1qbz23xcy3y5xs0crj6zdnfvnccqgp")
5383 #:trivial? #t))
5384 (home-page "https://www.ctan.org/pkg/txfonts")
1b10d494
RW
5385 (synopsis "Times-like fonts in support of mathematics")
5386 (description
5387 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW
5388NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,
5389and TS1 encodings; maths alphabets using Times/URW Nimbus; maths fonts
5390providing all the symbols of the Computer Modern and AMS fonts, including all
5391the Greek capital letters from CMR; and additional maths fonts of various
5392other symbols.
5393
5394The set is complemented by a sans-serif set of text fonts, based on
5395Helvetica/NimbusSanL, and a monospace set.
5396
5397All the fonts are in Type 1 format (AFM and PFB files), and are supported by
5398TeX metrics (VF and TFM files) and macros for use with LaTeX.")
5399 ;; Any version of the GPL with font exception.
5400 (license license:gpl3+)))
5401
0901f1b0
RW
5402(define-public texlive-fonts-txfonts
5403 (deprecated-package "texlive-fonts-txfonts" texlive-txfonts))
5404
f9e0fcb2
RW
5405(define-public texlive-fonts-iwona
5406 (package
5407 (name "texlive-fonts-iwona")
5408 (version "0.995b")
5409 (source (origin
5410 (method url-fetch)
5411 (uri (string-append "http://jmn.pl/pliki/Iwona-tex-"
5412 (string-map (lambda (c)
5413 (if (char=? c #\.)
5414 #\_ c))
5415 version)
5416 ".zip"))
5417 (sha256
5418 (base32
5419 "13684iqx5granpc5rfvqnmyvdpgpbr1x9y7i7y7bcaq0qxv7ph1x"))))
5420 (build-system trivial-build-system)
5421 (arguments
5422 `(#:modules ((guix build utils))
5423 #:builder
5424 (begin
5425 (use-modules (guix build utils))
5426 (let ((target (string-append (assoc-ref %outputs "out")
5427 "/share/texmf-dist/"))
5428 (unzip (string-append (assoc-ref %build-inputs "unzip")
5429 "/bin/unzip")))
e3cfef22 5430 (invoke unzip (assoc-ref %build-inputs "source"))
f9e0fcb2 5431 (mkdir-p target)
e3cfef22
MW
5432 (copy-recursively "iwona" target)
5433 #t))))
f9e0fcb2
RW
5434 (native-inputs
5435 `(("unzip" ,unzip)))
5436 (home-page "http://jmn.pl/en/kurier-i-iwona/")
5437 (synopsis "Sans-serif typeface for TeX")
5438 (description "Iwona is a two-element sans-serif typeface. It was created
5439as an alternative version of the Kurier typeface, which was designed in 1975
5440for a diploma in typeface design at the Warsaw Academy of Fine Arts under the
5441supervision of Roman Tomaszewski. Kurier was designed for linotype
f1a46c90 5442typesetting of newspapers and similar periodicals. The Iwona fonts are an
f9e0fcb2
RW
5443alternative version of the Kurier fonts. The difference lies in the absence
5444of ink traps which typify the Kurier font.")
5445 (license license:gfl1.0)))
5446
7b825087
MC
5447(define-public texlive-jknappen
5448 (package
5449 (inherit (simple-texlive-package
5450 "texlive-jknappen"
5451 (list "/fonts/source/jknappen/"
5452 "/fonts/tfm/jknappen/"
5453 "/fonts/source/jknappen/"
5454 "/fonts/tfm/jknappen/"
5455 "/tex4ht/ht-fonts/alias/jknappen/"
5456 "/tex4ht/ht-fonts/unicode/jknappen/")
5457 (base32
5458 "1v5wk5il41bddzr81h5636h3cjz0w1qann5g9garsb7qfch9fhws")
5459 #:trivial? #t))
5460 (home-page "https://www.ctan.org/pkg/jknappen")
5461 (synopsis "Miscellaneous packages by Jörg Knappen")
5462 (description
5463 "This package contains a collection of macros by Jörg Knappen:
5464@table @code
5465@item greekctr
5466New counterstyles @code{\\greek} and @code{\\Greek}.
5467@item holtpolt
5468Non-commutative fractions
5469@item latin1jk
5470@itemx latin2jk
5471@itemx latin3jk
5472Inputenc definition files that allow verbatim input in the respective ISO
5473Latin codes.
5474@item mathbol
5475Blackboard bold fonts for use in maths.
5476@item mathrsfs
5477Mathematical script letters, as traditionally used in physics for Lagrangian,
5478Hamiltonian, path integral measures, etc.
5479@item parboxx
5480New alignment options for parboxen at top and bottom of the box.
5481@item sans
5482Interchanges the roles of sans serif and roman fonts throughout the document.
5483@item semtrans
5484Support for special latin letters and diacritics used in transliteration of
5485semitic languages
5486@item smartmn
5487Intelligent hyphen/minus, which guesses whether to render as hyphen or minus.
5488@item sgmlcmpt
5489Commands replacing the characters <, >, and &.
5490@item tccompat
5491A compatibility package for users of the older versions of the textcomp package.
5492@item young
5493Simple Young tableaux.
5494@end table")
5495 (license license:gpl2))) ;per the 00readme_txt file.
5496
40557391
RW
5497(define-public texlive-libertine
5498 (package
5499 (inherit (simple-texlive-package
5500 "texlive-libertine"
5501 (list "/doc/fonts/libertine/"
5502
5503 "/fonts/enc/dvips/libertine/"
5504 "/fonts/map/dvips/libertine/"
5505 "/fonts/opentype/public/libertine/"
5506 "/fonts/tfm/public/libertine/"
5507 "/fonts/type1/public/libertine/"
5508 "/fonts/vf/public/libertine/"
5509
5510 "/tex/latex/libertine/")
5511 (base32
5512 "1v2vimpfi0b08sd79dadrck7wkpa0bphiakwyvhjc3ygq9k5bp8k")
5513 #:trivial? #t))
5514 (home-page "https://www.ctan.org/pkg/libertine")
5515 (synopsis "Use Linux Libertine and Biolinum fonts with LaTeX")
5516 (description
5517 "The package provides the Libertine and Biolinum fonts in both Type 1 and
5518OTF styles, together with support macros for their use. Monospaced and
5519display fonts, and the \"keyboard\" set are also included, in OTF style, only.
5520The @code{mweights} package is used to manage the selection of font weights.
5521The package supersedes both the @code{libertineotf} and the
5522@code{libertine-legacy} packages.")
5523 (license (list license:gpl2+ ; with font exception
5524 license:silofl1.1
5525 license:lppl))))
5526
223c4473
RW
5527(define-public texlive-dejavu
5528 (package
5529 (inherit (simple-texlive-package
5530 "texlive-dejavu"
5531 (list "/doc/fonts/dejavu/"
5532
5533 "/fonts/enc/dvips/dejavu/"
5534 "/fonts/map/dvips/dejavu/"
5535
5536 "/fonts/afm/public/dejavu/"
5537 "/fonts/tfm/public/dejavu/"
5538 "/fonts/truetype/public/dejavu/"
5539 "/fonts/type1/public/dejavu/"
5540 "/fonts/vf/public/dejavu/"
5541
5542 "/tex/latex/dejavu/")
5543 (base32
5544 "0y4qf5jl0xncah9nkcaalmy69wwq02n3j895zp71n2p0nfi24aka")
5545 #:trivial? #t))
5546 (home-page "https://www.ctan.org/pkg/libertine")
5547 (synopsis "LaTeX support for the DejaVu fonts")
5548 (description
5549 "The package contains LaTeX support for the DejaVu fonts, which are
5550derived from the Vera fonts but contain more characters and styles. The fonts
5551are included in the original TrueType format, and in converted Type 1 format.
5552The (currently) supported encodings are: OT1, T1, IL2, TS1, T2*, X2, QX, and
5553LGR. The package doesn't (currently) support mathematics.")
5554 (license license:lppl)))
5555
acc620d6
RW
5556(define-public texlive-latex-titlesec
5557 (package
5558 (name "texlive-latex-titlesec")
5559 (version (number->string %texlive-revision))
5560 (source (origin
5561 (method svn-fetch)
5562 (uri (svn-reference
5563 (url (string-append "svn://www.tug.org/texlive/tags/"
5564 %texlive-tag "/Master/texmf-dist/"
5565 "/tex/latex/titlesec"))
5566 (revision %texlive-revision)))
0475e35c 5567 (file-name (string-append name "-" version "-checkout"))
acc620d6
RW
5568 (sha256
5569 (base32
5570 "04nmkhqx6jxcxx9a30zbcd5smxi5fd0cbp132bki7fnvhspnhg21"))))
5571 (build-system trivial-build-system)
5572 (arguments
5573 `(#:modules ((guix build utils))
5574 #:builder
5575 (begin
5576 (use-modules (guix build utils))
5577 (let ((target (string-append (assoc-ref %outputs "out")
5578 "/share/texmf-dist/tex/latex/titlesec")))
5579 (mkdir-p target)
5580 (copy-recursively (assoc-ref %build-inputs "source") target)
5581 #t))))
b8d8806b 5582 (home-page "https://www.ctan.org/pkg/titlesec")
acc620d6
RW
5583 (synopsis "Select alternative section titles")
5584 (description
5585 "This package provides an interface to sectioning commands for selection
5586from various title styles, e.g. for marginal titles and to change the font of
5587all headings with a single command, also providing simple one-step page
5588styles. It also includes a package to change the page styles when there are
5589floats in a page. You may assign headers/footers to individual floats, too.")
5590 (license license:lppl)))
5591
274e3d4f
RW
5592(define-public texlive-latex-type1cm
5593 (package
5594 (name "texlive-latex-type1cm")
5595 (version (number->string %texlive-revision))
5596 (source (origin
5597 (method svn-fetch)
5598 (uri (texlive-ref "latex" "type1cm"))
5599 (file-name (string-append name "-" version "-checkout"))
5600 (sha256
5601 (base32
5602 "1lvxrqfwcwa4p31zyfm80gr05v8c28xybv5ri79zi2ngz6834z12"))))
5603 (build-system texlive-build-system)
5604 (arguments '(#:tex-directory "latex/type1cm"))
b8d8806b 5605 (home-page "https://www.ctan.org/pkg/type1cm")
274e3d4f
RW
5606 (synopsis "Arbitrary size font selection in LaTeX")
5607 (description
5608 "LaTeX, by default, restricts the sizes at which you can use its default
5609computer modern fonts, to a fixed set of discrete sizes (effectively, a set
5610specified by Knuth). The @code{type1cm} package removes this restriction;
5611this is particularly useful when using scalable versions of the CM
5612fonts (Bakoma, or the versions from BSR/Y&Y, or True Type versions from Kinch,
5613PCTeX, etc.). In fact, since modern distributions will automatically generate
5614any bitmap font you might need, @code{type1cm} has wider application than just
36a17f05 5615those using scalable versions of the fonts. Note that the LaTeX distribution
274e3d4f
RW
5616now contains a package @code{fix-cm},f which performs the task of
5617@code{type1cm}, as well as doing the same job for T1- and TS1-encoded
5618@code{ec} fonts.")
5619 (license license:lppl)))
5620
406af0d6
RW
5621(define-public texlive-latex-lh
5622 (package
5623 (name "texlive-latex-lh")
5624 (version (number->string %texlive-revision))
5625 (source (origin
5626 (method svn-fetch)
5627 (uri (texlive-ref "latex" "lh"))
de20fd6a 5628 (file-name (string-append name "-" version "-checkout"))
406af0d6
RW
5629 (sha256
5630 (base32
5631 "00gdiwh3sfhh1iimjhpja7lm7k4vzqzql2irgwnpz94qvh25zwi5"))))
5632 (build-system texlive-build-system)
5633 (arguments '(#:tex-directory "latex/lh"))
b8d8806b 5634 (home-page "https://www.ctan.org/pkg/lh")
406af0d6
RW
5635 (synopsis "Cyrillic fonts that support LaTeX standard encodings")
5636 (description
5637 "The LH fonts address the problem of the wide variety of alphabets that
5638are written with Cyrillic-style characters. The fonts are the original basis
5639of the set of T2* and X2 encodings that are now used when LaTeX users need to
5640write in Cyrillic languages. Macro support in standard LaTeX encodings is
5641offered through the latex-cyrillic and t2 bundles, and the package itself
5642offers support for other (more traditional) encodings. The fonts, in the
5643standard T2* and X2 encodings are available in Adobe Type 1 format, in the
5644CM-Super family of fonts. The package also offers its own LaTeX support for
5645OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
5646 (license license:lppl)))
5647
2c12d73a
MC
5648(define-public texlive-marvosym
5649 (package
5650 (inherit (simple-texlive-package
5651 "texlive-marvosym"
5652 (list "/doc/fonts/marvosym/"
5653 "/fonts/afm/public/marvosym/"
5654 "/fonts/map/dvips/marvosym/"
5655 "/fonts/tfm/public/marvosym/"
5656 "/fonts/truetype/public/marvosym/"
5657 "/fonts/type1/public/marvosym/"
5658 "/tex/latex/marvosym/")
5659 (base32
5660 "0m3bbg06cia8ni86fjhvb7x4a5qcxgnpqcvicfms91w2px9ysc46")
5661 #:trivial? #t))
5662 (home-page "https://martinvogel.de/blog/index.php?\
5663/archives/131-Marvosym.ttf.html")
5664 (synopsis "Martin Vogel's Symbols (marvosym) font")
5665 (description "The Martin Vogel’s Symbols fonts (marvosym) contains the
5666Euro currency symbol as defined by the European commission, along with symbols
5667for structural engineering, symbols for steel cross-sections, astronomy
5668signs (sun, moon, planets), the 12 signs of the zodiac, scissor symbols, CE
5669sign and others. This package contains both the original TrueType font and
5670the derived Type 1 font, together with support files for TeX (LaTeX).")
5671 (license (list license:lppl ;for TeX support files
5672 license:silofl1.1)))) ;for fonts
5673
44436def
RW
5674(define-public texlive-metapost
5675 (package
5676 (name "texlive-metapost")
5677 (version (number->string %texlive-revision))
5678 (source (origin
5679 (method svn-fetch)
5680 (uri (svn-reference
5681 (url (string-append "svn://www.tug.org/texlive/tags/"
5682 %texlive-tag "/Master/texmf-dist/"
5683 "/metapost"))
5684 (revision %texlive-revision)))
b4bb2750 5685 (file-name (string-append name "-" version "-checkout"))
44436def
RW
5686 (sha256
5687 (base32
85892948 5688 "1xyd57c8z1xi0kbqpbad61flcazz68i9ssxrag0gjvci3irxi8xh"))))
44436def
RW
5689 (build-system trivial-build-system)
5690 (arguments
5691 `(#:modules ((guix build utils))
5692 #:builder
5693 (begin
5694 (use-modules (guix build utils))
5695 (let ((target (string-append (assoc-ref %outputs "out")
5696 "/share/texmf-dist/metapost")))
5697 (mkdir-p target)
5698 (copy-recursively (assoc-ref %build-inputs "source") target)
5699 #t))))
b8d8806b 5700 (home-page "https://www.ctan.org/pkg/metapost")
44436def
RW
5701 (synopsis "Create scalable illustrations")
5702 (description
5703 "MetaPost uses a language based on that of Metafont to produce precise
5704technical illustrations. Its output is scalable PostScript or SVG, rather
5705than the bitmaps Metafont creates.")
5706 (license license:lppl)))
5707
9ff7161a
LC
5708(define-public texlive-latex-acmart
5709 (package
5710 (name "texlive-latex-acmart")
ff281acc 5711 (version "1.60")
9ff7161a
LC
5712 (source (origin
5713 (method svn-fetch)
5714 (uri (texlive-ref "latex" "acmart"))
5715 (sha256
5716 (base32
85892948 5717 "18rl67p2zhngskisnhv78mksv8q8q658l6igkswzswldixmkpphq"))
9ff7161a
LC
5718 (file-name (string-append name "-" version "-checkout"))))
5719 (build-system texlive-build-system)
5720 (arguments '(#:tex-directory "latex/acmart"))
b8d8806b 5721 (home-page "https://www.ctan.org/pkg/acmart")
9ff7161a
LC
5722 (synopsis "Class for typesetting publications of ACM")
5723 (description
5724 "This package provides a class for typesetting publications of the
5725Association for Computing Machinery (ACM).")
5726 (license license:lppl1.3+)))
5727
3966ebbb
RW
5728(define-public texlive-latex-varwidth
5729 (package
5730 (name "texlive-latex-varwidth")
5731 (version (number->string %texlive-revision))
5732 (source (origin
5733 (method svn-fetch)
5734 (uri (svn-reference
5735 (url (string-append "svn://www.tug.org/texlive/tags/"
5736 %texlive-tag "/Master/texmf-dist/"
5737 "/tex/latex/varwidth"))
5738 (revision %texlive-revision)))
5739 (file-name (string-append name "-" version "-checkout"))
5740 (sha256
5741 (base32
5742 "1bmz9ap0ffyg7qry2xi7lki06qx4809w028xvk88cl66h7p46g52"))))
5743 (build-system trivial-build-system)
5744 (arguments
5745 `(#:modules ((guix build utils))
5746 #:builder
5747 (begin
5748 (use-modules (guix build utils))
5749 (let ((target (string-append (assoc-ref %outputs "out")
5750 "/share/texmf-dist/tex/latex/varwidth")))
5751 (mkdir-p target)
5752 (copy-recursively (assoc-ref %build-inputs "source") target)
5753 #t))))
b8d8806b 5754 (home-page "https://www.ctan.org/pkg/varwidth")
3966ebbb
RW
5755 (synopsis "Variable-width minipage")
5756 (description
5757 "The @code{varwidth} environment is superficially similar to
5758@code{minipage}, but the specified width is just a maximum value — the box may
5759get a narrower “natural” width.")
5760 (license license:lppl)))
5761
0602047c
MC
5762(define-public texlive-wasy
5763 (package
5764 (inherit (simple-texlive-package
5765 "texlive-wasy"
5766 (list "/fonts/source/public/wasy/"
5767 "/fonts/tfm/public/wasy/"
5768 "/tex/plain/wasy/"
5769 "/doc/fonts/wasy/")
5770 (base32
5771 "10dxbqgv42niybj65hj6y47x8lsl83m48rgw2v2s50k05wbghwbm")
5772 #:trivial? #t))
5773 (home-page "https://www.ctan.org/pkg/wasy")
5774 (synopsis "Waldi symbol fonts")
5775 (description "This package provides the @code{wasy} (Waldi symbol) fonts,
5776in the Metafont and Adobe Type 1 formats. Support under LaTeX is provided by
5777the @code{wasysym} package.")
5778 (license license:public-domain)))
5779
cd2c77f4
RW
5780(define-public texlive-latex-wasysym
5781 (package
5782 (name "texlive-latex-wasysym")
5783 (version (number->string %texlive-revision))
5784 (source (origin
5785 (method svn-fetch)
5786 (uri (texlive-ref "latex" "wasysym"))
2cc9c011 5787 (file-name (string-append name "-" version "-checkout"))
cd2c77f4
RW
5788 (sha256
5789 (base32
5790 "1sgwbfwjjf70g54hh93gsd9jp9nm67w6n74x9d72a56n07jbk5hv"))))
5791 (build-system texlive-build-system)
5792 (arguments '(#:tex-directory "latex/wasysym"))
b8d8806b 5793 (home-page "https://www.ctan.org/pkg/wasysym")
e45dcf49 5794 (synopsis "LaTeX support file to use the @code{wasy} fonts")
cd2c77f4 5795 (description
e45dcf49
MC
5796 "The @code{wasy} (Waldi Symbol) font by Roland Waldi provides many glyphs like
5797male and female symbols and astronomical symbols, as well as the complete
5798@code{lasy} font set and other odds and ends. The @code{wasysym} package
5799implements an easy to use interface for these symbols.")
cd2c77f4
RW
5800 (license license:lppl)))
5801
63ed869b
RW
5802(define-public texlive-latex-wrapfig
5803 (package
5804 (name "texlive-latex-wrapfig")
5805 (version (number->string %texlive-revision))
5806 (source (origin
5807 (method svn-fetch)
5808 (uri (svn-reference
5809 (url (string-append "svn://www.tug.org/texlive/tags/"
5810 %texlive-tag "/Master/texmf-dist/"
5811 "/tex/latex/wrapfig"))
5812 (revision %texlive-revision)))
5813 (file-name (string-append name "-" version "-checkout"))
5814 (sha256
5815 (base32
5816 "16xpyl0csmmwndz1xhzqfg9l0zcsnqxslsixsqkwd4zsvfj30sv4"))))
5817 (build-system trivial-build-system)
5818 (arguments
5819 `(#:modules ((guix build utils))
5820 #:builder
5821 (begin
5822 (use-modules (guix build utils))
5823 (let ((target (string-append (assoc-ref %outputs "out")
5824 "/share/texmf-dist/tex/latex/wrapfig")))
5825 (mkdir-p target)
5826 (copy-recursively (assoc-ref %build-inputs "source") target)
5827 #t))))
b8d8806b 5828 (home-page "https://www.ctan.org/pkg/wrapfig")
63ed869b
RW
5829 (synopsis "Produces figures which text can flow around")
5830 (description
5831 "This package allows figures or tables to have text wrapped around them.
5832It does not work in combination with list environments, but can be used in a
5833@code{parbox} or @code{minipage}, and in two-column format.")
5834 (license license:lppl)))
5835
c178ffca
RW
5836(define-public texlive-latex-ucs
5837 (package
5838 (name "texlive-latex-ucs")
5839 (version (number->string %texlive-revision))
5840 (source (origin
5841 (method svn-fetch)
5842 (uri (svn-reference
5843 (url (string-append "svn://www.tug.org/texlive/tags/"
5844 %texlive-tag "/Master/texmf-dist/"
5845 "/tex/latex/ucs"))
5846 (revision %texlive-revision)))
5847 (file-name (string-append name "-" version "-checkout"))
5848 (sha256
5849 (base32
5850 "0rrxwi60wmz5dfjifl4fwk66plf7wix85qnhfv4ylvmj6qi6hw37"))))
5851 (build-system trivial-build-system)
5852 (arguments
5853 `(#:modules ((guix build utils))
5854 #:builder
5855 (begin
5856 (use-modules (guix build utils))
5857 (let ((target (string-append (assoc-ref %outputs "out")
5858 "/share/texmf-dist/tex/latex/ucs")))
5859 (mkdir-p target)
5860 (copy-recursively (assoc-ref %build-inputs "source") target)
5861 #t))))
b8d8806b 5862 (home-page "https://www.ctan.org/pkg/ucs")
c178ffca
RW
5863 (synopsis "Extended UTF-8 input encoding support for LaTeX")
5864 (description
5865 "The bundle provides the @code{ucs} package, and @code{utf8x.def},
5866together with a large number of support files. The @code{utf8x.def}
5867definition file for use with @code{inputenc} covers a wider range of Unicode
5868characters than does @code{utf8.def} in the LaTeX distribution. The package
5869provides facilities for efficient use of its large sets of Unicode characters.
5870Glyph production may be controlled by various options, which permits use of
5871non-ASCII characters when coding mathematical formulae. Note that the bundle
5872previously had an alias “unicode”; that alias has now been withdrawn, and no
5873package of that name now exists.")
5874 (license license:lppl1.3+)))
5875
86af0f2a
RW
5876(define-public texlive-latex-preview
5877 (package
5878 (name "texlive-latex-preview")
5879 (version (number->string %texlive-revision))
5880 (source (origin
5881 (method svn-fetch)
5882 (uri (texlive-ref "latex" "preview"))
5883 (file-name (string-append name "-" version "-checkout"))
5884 (sha256
5885 (base32
d4d9a1ec 5886 "1hpsk4yp08qvbl43kqiv0hhwxv3gcqqxcpahyv6ch2b38pbj4bh6"))))
86af0f2a
RW
5887 (build-system texlive-build-system)
5888 (arguments
5889 '(#:tex-directory "latex/preview"
5890 #:phases
5891 (modify-phases %standard-phases
5892 (add-after 'unpack 'remove-generated-file
5893 (lambda _
5894 (delete-file "preview.drv")
5895 #t)))))
b8d8806b 5896 (home-page "https://www.ctan.org/pkg/preview")
86af0f2a
RW
5897 (synopsis "Extract bits of a LaTeX source for output")
5898 (description
5899 "The main purpose of the preview package is the extraction of selected
5900elements from a LaTeX source, like formulas or graphics, into separate
5901pages of a DVI file. A flexible and convenient interface allows it to
5902specify what commands and constructs should be extracted. This works
5903with DVI files postprocessed by either Dvips and Ghostscript or
5904dvipng, but it also works when you are using PDFTeX for generating PDF
5905files.")
5906 (license license:gpl3+)))
5907
87b4360e
RW
5908(define-public texlive-latex-acronym
5909 (package
5910 (name "texlive-latex-acronym")
5911 (version (number->string %texlive-revision))
5912 (source (origin
5913 (method svn-fetch)
5914 (uri (texlive-ref "latex" "acronym"))
5915 (file-name (string-append name "-" version "-checkout"))
5916 (sha256
5917 (base32
5918 "0jmasg40bk53zdd2jc8nc18jvdai3p2wmamy7hwli8gls4nf25qp"))))
5919 (build-system texlive-build-system)
5920 (arguments '(#:tex-directory "latex/acronym"))
b8d8806b 5921 (home-page "https://www.ctan.org/pkg/acronym")
87b4360e
RW
5922 (synopsis "Expand acronyms at least once")
5923 (description
5924 "This package ensures that all acronyms used in the text are spelled out
5925in full at least once. It also provides an environment to build a list of
5926acronyms used. The package is compatible with PDF bookmarks. The package
5927requires the suffix package, which in turn requires that it runs under
5928e-TeX.")
5929 (license license:lppl1.3+)))
5930
fedb80ee
RW
5931(define-public texlive-generic-pdftex
5932 (package
5933 (name "texlive-generic-pdftex")
5934 (version (number->string %texlive-revision))
5935 (source (origin
5936 (method svn-fetch)
5937 (uri (svn-reference
5938 (url (string-append "svn://www.tug.org/texlive/tags/"
5939 %texlive-tag "/Master/texmf-dist/"
5940 "/tex/generic/pdftex"))
5941 (revision %texlive-revision)))
66e765a0 5942 (file-name (string-append name "-" version "-checkout"))
fedb80ee
RW
5943 (sha256
5944 (base32
5945 "0k68zmqzs4qvrqxdwsrawbjb14hxqjfamq649azvai0jjxdpkljd"))))
5946 (build-system trivial-build-system)
5947 (arguments
5948 `(#:modules ((guix build utils))
5949 #:builder
5950 (begin
5951 (use-modules (guix build utils))
5952 (let ((target (string-append (assoc-ref %outputs "out")
7002a45d
PN
5953 "/share/texmf-dist/tex/generic/pdftex"))
5954 (target-map (string-append (assoc-ref %outputs "out")
5955 "/share/texmf-dist/fonts/map/pdftex")))
fedb80ee
RW
5956 (mkdir-p target)
5957 (copy-recursively (assoc-ref %build-inputs "source") target)
7002a45d
PN
5958 (mkdir-p target-map)
5959 (copy-recursively (assoc-ref %build-inputs "pdftex-map") target-map)
fedb80ee 5960 #t))))
7002a45d
PN
5961 (native-inputs
5962 `(("pdftex-map"
5963 ,(origin
5964 (method svn-fetch)
5965 (uri (svn-reference
5966 (url (string-append "svn://www.tug.org/texlive/tags/"
5967 %texlive-tag "/Master/texmf-dist/"
5968 "/fonts/map/pdftex"))
5969 (revision %texlive-revision)))
5970 (file-name (string-append name "-map-" version "-checkout"))
5971 (sha256
5972 (base32
85892948 5973 "03rfif2631pgd8g1ar4xblcdh078kky7fvw3kfsj5a47rxxgicp2"))))))
b8d8806b 5974 (home-page "https://www.ctan.org/pkg/pdftex")
fedb80ee
RW
5975 (synopsis "TeX extension for direct creation of PDF")
5976 (description
5977 "This package provides an extension of TeX which can be configured to
5978directly generate PDF documents instead of DVI.")
5979 (license license:gpl2+)))
5980
8bcdc23f 5981(define texlive-texmf
0aa34e82
AE
5982 (package
5983 (name "texlive-texmf")
85892948 5984 (version "20190410")
0aa34e82
AE
5985 (source texlive-texmf-src)
5986 (build-system gnu-build-system)
5987 (inputs
5988 `(("texlive-bin" ,texlive-bin)
5989 ("lua" ,lua)
5990 ("perl" ,perl)
5991 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5992 ("ruby" ,ruby)
5993 ("tcsh" ,tcsh)))
5994 (arguments
5995 `(#:modules ((guix build gnu-build-system)
5996 (guix build utils)
5997 (srfi srfi-26))
a348af40
LC
5998
5999 ;; This package takes 4 GiB, which we can't afford to distribute from
6000 ;; our servers.
6001 #:substitutable? #f
6002
0aa34e82 6003 #:phases
4a6635f3
AE
6004 (modify-phases (map (cut assq <> %standard-phases)
6005 '(set-paths unpack patch-source-shebangs))
977403fe
RW
6006 (add-after 'unpack 'unset-environment-variables
6007 (lambda _
6008 (unsetenv "TEXMF")
6009 (unsetenv "TEXMFCNF")
6010 #t))
4a6635f3
AE
6011 (add-after 'patch-source-shebangs 'install
6012 (lambda* (#:key outputs #:allow-other-keys)
6013 (let ((share (string-append (assoc-ref outputs "out") "/share")))
6014 (mkdir-p share)
286eedec 6015 (invoke "mv" "texmf-dist" share))))
4a6635f3
AE
6016 (add-after 'install 'texmf-config
6017 (lambda* (#:key inputs outputs #:allow-other-keys)
6018 (let* ((out (assoc-ref outputs "out"))
6019 (share (string-append out "/share"))
6020 (texmfroot (string-append share "/texmf-dist/web2c"))
6021 (texmfcnf (string-append texmfroot "/texmf.cnf"))
6022 (texlive-bin (assoc-ref inputs "texlive-bin"))
6023 (texbin (string-append texlive-bin "/bin"))
6024 (tlpkg (string-append texlive-bin "/share/tlpkg")))
6025 ;; Register SHARE as TEXMFROOT in texmf.cnf.
6026 (substitute* texmfcnf
6027 (("TEXMFROOT = \\$SELFAUTOPARENT")
2d634d9b
FB
6028 (string-append "TEXMFROOT = " share))
6029 (("TEXMFLOCAL = \\$SELFAUTOGRANDPARENT/texmf-local")
6030 "TEXMFLOCAL = $SELFAUTODIR/share/texmf-local")
6031 (("!!\\$TEXMFLOCAL") "$TEXMFLOCAL"))
4a6635f3
AE
6032 ;; Register paths in texmfcnf.lua, needed for context.
6033 (substitute* (string-append texmfroot "/texmfcnf.lua")
6034 (("selfautodir:") out)
6035 (("selfautoparent:") (string-append share "/")))
6036 ;; Set path to TeXLive Perl modules
6037 (setenv "PERL5LIB"
6038 (string-append (getenv "PERL5LIB") ":" tlpkg))
6039 ;; Configure the texmf-dist tree; inspired from
6040 ;; http://slackbuilds.org/repository/13.37/office/texlive/
6041 (setenv "PATH" (string-append (getenv "PATH") ":" texbin))
6042 (setenv "TEXMFCNF" texmfroot)
286eedec
MW
6043 (invoke "updmap-sys" "--nohash" "--syncwithtrees")
6044 (invoke "mktexlsr")
0371132c 6045 (invoke "fmtutil-sys" "--all")))))))
7a15a68f 6046 (properties `((max-silent-time . 9600))) ; don't time out while grafting
0aa34e82 6047 (synopsis "TeX Live, a package of the TeX typesetting system")
eb0119ef
AE
6048 (description
6049 "TeX Live provides a comprehensive TeX document production system.
6050It includes all the major TeX-related programs, macro packages, and fonts
6051that are free software, including support for many languages around the
0aa34e82
AE
6052world.
6053
6054This package contains the complete tree of texmf-dist data.")
132e14b4
EF
6055 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
6056 (home-page "https://www.tug.org/texlive/")))
0aa34e82
AE
6057
6058(define-public texlive
6059 (package
6060 (name "texlive")
85892948 6061 (version "20190410")
0aa34e82
AE
6062 (source #f)
6063 (build-system trivial-build-system)
6064 (inputs `(("bash" ,bash) ; for wrap-program
6065 ("texlive-bin" ,texlive-bin)
6066 ("texlive-texmf" ,texlive-texmf)))
2d634d9b
FB
6067 (native-search-paths
6068 (list (search-path-specification
6069 (variable "TEXMFLOCAL")
6070 (files '("share/texmf-local")))))
0aa34e82
AE
6071 (arguments
6072 `(#:modules ((guix build utils))
6073 #:builder
6074 ;; Build the union of texlive-bin and texlive-texmf, but take the
6075 ;; conflicting subdirectory share/texmf-dist from texlive-texmf.
6076 (begin
6077 (use-modules (guix build utils))
6078 (let ((out (assoc-ref %outputs "out"))
6079 (bin (assoc-ref %build-inputs "texlive-bin"))
6080 (texmf (assoc-ref %build-inputs "texlive-texmf"))
6081 (bash (assoc-ref %build-inputs "bash")))
6082 (mkdir out)
6083 (with-directory-excursion out
6084 (for-each
6085 (lambda (name)
6086 (symlink (string-append bin "/" name) name))
6087 '("include" "lib"))
6088 (mkdir "bin")
6089 (with-directory-excursion "bin"
6090 (setenv "PATH" (string-append bash "/bin"))
6091 (for-each
6092 (lambda (name)
6093 (symlink name (basename name))
6094 (wrap-program
6095 (basename name)
6096 `("TEXMFCNF" =
6097 (,(string-append texmf "/share/texmf-dist/web2c")))))
6098 (find-files (string-append bin "/bin/") "")))
6099 (mkdir "share")
6100 (with-directory-excursion "share"
6101 (for-each
6102 (lambda (name)
6103 (symlink (string-append bin "/share/" name) name))
6104 '("info" "man" "tlpkg"))
6105 (for-each
6106 (lambda (name)
6107 (symlink (string-append texmf "/share/" name) name))
e3cfef22
MW
6108 '("texmf-dist" "texmf-var"))))
6109 #t))))
0aa34e82
AE
6110 (synopsis "TeX Live, a package of the TeX typesetting system")
6111 (description
6112 "TeX Live provides a comprehensive TeX document production system.
6113It includes all the major TeX-related programs, macro packages, and fonts
6114that are free software, including support for many languages around the
6115world.
6116
6117This package contains the complete TeX Live distribution.")
132e14b4
EF
6118 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
6119 (home-page "https://www.tug.org/texlive/")))
231eae53 6120
ebcf74da
RW
6121(define-public perl-text-bibtex
6122 (package
6123 (name "perl-text-bibtex")
a2460e0f 6124 (version "0.85")
ebcf74da
RW
6125 (source
6126 (origin
6127 (method url-fetch)
6128 (uri (string-append "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-"
6129 version ".tar.gz"))
6130 (sha256
6131 (base32
a2460e0f 6132 "036kxgbn1jf70pfm2lmjlzjwnhbkd888fp5lyvmkjpdd15gla18h"))))
ebcf74da
RW
6133 (build-system perl-build-system)
6134 (arguments
6135 `(#:phases
6136 (modify-phases %standard-phases
6137 (add-after 'unpack 'add-output-directory-to-rpath
6138 (lambda* (#:key outputs #:allow-other-keys)
6139 (substitute* "inc/MyBuilder.pm"
6140 (("-Lbtparse" line)
6141 (string-append "-Wl,-rpath="
6142 (assoc-ref outputs "out") "/lib " line)))
6143 #t))
6144 (add-after 'unpack 'install-libraries-to-/lib
6145 (lambda* (#:key outputs #:allow-other-keys)
6146 (substitute* "Build.PL"
6147 (("lib64") "lib"))
6148 #t)))))
6149 (native-inputs
6150 `(("perl-capture-tiny" ,perl-capture-tiny)
6151 ("perl-config-autoconf" ,perl-config-autoconf)
6152 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
6153 ("perl-module-build" ,perl-module-build)))
9aba9b12 6154 (home-page "https://metacpan.org/release/Text-BibTeX")
ebcf74da
RW
6155 (synopsis "Interface to read and parse BibTeX files")
6156 (description "@code{Text::BibTeX} is a Perl library for reading, parsing,
6157and processing BibTeX files. @code{Text::BibTeX} gives you access to the data
6158at many different levels: you may work with BibTeX entries as simple field to
6159string mappings, or get at the original form of the data as a list of simple
6160values (strings, macros, or numbers) pasted together.")
2f3108ad 6161 (license license:perl-license)))
ebcf74da 6162
d4000680
RW
6163(define-public biber
6164 (package
912be8ec
LC
6165 ;; Note: When updating Biber, make sure it matches our BibLaTeX version by
6166 ;; checking the Biber/BibLaTeX compatibility matrix in the BibLaTeX manual
6167 ;; at <https://ctan.org/pkg/biblatex>.
1335167a 6168 (name "biber")
912be8ec 6169 (version "2.12")
d4000680 6170 (source (origin
41a01087
JL
6171 (method git-fetch)
6172 (uri (git-reference
6173 (url "https://github.com/plk/biber/")
6174 (commit (string-append "v" version))))
6175 (file-name (git-file-name name version))
6176 ;; TODO: Patch awaiting inclusion upstream (see:
6177 ;; https://github.com/plk/biber/issues/239).
122b3cd6
LC
6178 (patches (search-patches "biber-fix-encoding-write.patch"
6179 "biber-sortinithash.patch"))
d4000680
RW
6180 (sha256
6181 (base32
912be8ec 6182 "1g1hi6zvf2hmrjly1sidjaxy5440gfqm4p7p3n7kayshnjsmlskx"))))
d4000680
RW
6183 (build-system perl-build-system)
6184 (arguments
6185 `(#:phases
6186 (modify-phases %standard-phases
6187 (add-after 'install 'wrap-programs
6188 (lambda* (#:key outputs #:allow-other-keys)
6189 (let* ((out (assoc-ref outputs "out"))
6190 (perl5lib (getenv "PERL5LIB")))
6191 (wrap-program (string-append out "/bin/biber")
6192 `("PERL5LIB" ":" prefix
6193 (,(string-append perl5lib ":" out
6194 "/lib/perl5/site_perl")))))
6195 #t)))))
6196 (inputs
6197 `(("perl-autovivification" ,perl-autovivification)
6198 ("perl-class-accessor" ,perl-class-accessor)
6199 ("perl-data-dump" ,perl-data-dump)
6200 ("perl-data-compare" ,perl-data-compare)
6201 ("perl-data-uniqid" ,perl-data-uniqid)
6202 ("perl-datetime-format-builder" ,perl-datetime-format-builder)
6203 ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
41a01087 6204 ("perl-file-slurper" ,perl-file-slurper)
d4000680
RW
6205 ("perl-ipc-cmd" ,perl-ipc-cmd)
6206 ("perl-ipc-run3" ,perl-ipc-run3)
6207 ("perl-list-allutils" ,perl-list-allutils)
6208 ("perl-list-moreutils" ,perl-list-moreutils)
6209 ("perl-mozilla-ca" ,perl-mozilla-ca)
6210 ("perl-regexp-common" ,perl-regexp-common)
6211 ("perl-log-log4perl" ,perl-log-log4perl)
6212 ;; We cannot use perl-unicode-collate here, because otherwise the
6213 ;; hardcoded hashes in the tests would differ. See
6214 ;; https://mail-archive.com/debian-bugs-dist@lists.debian.org/msg1469249.html
6215 ;;("perl-unicode-collate" ,perl-unicode-collate)
6216 ("perl-unicode-normalize" ,perl-unicode-normalize)
6217 ("perl-unicode-linebreak" ,perl-unicode-linebreak)
6218 ("perl-encode-eucjpascii" ,perl-encode-eucjpascii)
6219 ("perl-encode-jis2k" ,perl-encode-jis2k)
6220 ("perl-encode-hanextra" ,perl-encode-hanextra)
6221 ("perl-xml-libxml" ,perl-xml-libxml)
6222 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)
6223 ("perl-xml-libxslt" ,perl-xml-libxslt)
6224 ("perl-xml-writer" ,perl-xml-writer)
6225 ("perl-sort-key" ,perl-sort-key)
6226 ("perl-text-csv" ,perl-text-csv)
6227 ("perl-text-csv-xs" ,perl-text-csv-xs)
6228 ("perl-text-roman" ,perl-text-roman)
6229 ("perl-uri" ,perl-uri)
6230 ("perl-text-bibtex" ,perl-text-bibtex)
6231 ("perl-libwww" ,perl-libwww)
6232 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
6233 ("perl-business-isbn" ,perl-business-isbn)
6234 ("perl-business-issn" ,perl-business-issn)
6235 ("perl-business-ismn" ,perl-business-ismn)
6236 ("perl-lingua-translit" ,perl-lingua-translit)))
6237 (native-inputs
6238 `(("perl-config-autoconf" ,perl-config-autoconf)
6239 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
6240 ("perl-module-build" ,perl-module-build)
6241 ;; for tests
6242 ("perl-file-which" ,perl-file-which)
6243 ("perl-test-more" ,perl-test-most) ; FIXME: "more" would be sufficient
6244 ("perl-test-differences" ,perl-test-differences)))
6245 (home-page "http://biblatex-biber.sourceforge.net/")
6246 (synopsis "Backend for the BibLaTeX citation management tool")
6247 (description "Biber is a BibTeX replacement for users of biblatex. Among
6248other things it comes with full Unicode support.")
6249 (license license:artistic2.0)))
6250
231eae53
LC
6251(define-public rubber
6252 (package
6253 (name "rubber")
3d067528 6254 (version "1.5.1")
231eae53 6255 (source (origin
3d067528
AI
6256 (method url-fetch)
6257 (uri (list (string-append "https://launchpad.net/rubber/trunk/"
6258 version "/+download/rubber-"
6259 version ".tar.gz")
6260 (string-append "http://ebeffara.free.fr/pub/rubber-"
6261 version ".tar.gz")))
6262 (sha256
6263 (base32
6264 "178dmrp0mza5gqjiqgk6dqs0c10s0c517pk6k9pjbam86vf47a1p"))))
6265 (build-system python-build-system)
6266 (arguments
6267 '(#:tests? #f ; no `check' target
6268 #:phases
6269 (modify-phases %standard-phases
6270 (delete 'build)
6271 (replace 'install
6272 (lambda* (#:key outputs #:allow-other-keys)
6273 ;; texlive is required to build the PDF documentation; do not
6274 ;; build it.
6275 (invoke "python" "setup.py" "build" "--pdf=False" "install"
6276 (string-append "--prefix=" (assoc-ref outputs "out"))))))))
5a46779e 6277 (native-inputs `(("texinfo" ,texinfo)))
231eae53 6278 (home-page "https://launchpad.net/rubber")
35b9e423 6279 (synopsis "Wrapper for LaTeX and friends")
231eae53
LC
6280 (description
6281 "Rubber is a program whose purpose is to handle all tasks related to the
6282compilation of LaTeX documents. This includes compiling the document itself,
6283of course, enough times so that all references are defined, and running BibTeX
6284to manage bibliographic references. Automatic execution of dvips to produce
6285PostScript documents is also included, as well as usage of pdfLaTeX to produce
6286PDF documents.")
6287 (license license:gpl2+)))
4791876c
RJ
6288
6289(define-public texmaker
6290 (package
6291 (name "texmaker")
dac14efe 6292 (version "5.0.4")
4791876c
RJ
6293 (source (origin
6294 (method url-fetch)
6295 (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
6296 version ".tar.bz2"))
6297 (sha256
6298 (base32
dac14efe 6299 "1qnh5g8zkjpjmw2l8spcynpfgs3wpcfcla5ms2kkgvkbdlzspqqx"))))
4791876c
RJ
6300 (build-system gnu-build-system)
6301 (arguments
6302 `(#:phases
6303 (modify-phases %standard-phases
6304 ;; Qt has its own configuration utility.
6305 (replace 'configure
6306 (lambda* (#:key outputs #:allow-other-keys)
6307 (let ((out (assoc-ref outputs "out")))
6c23ed9b
MW
6308 (invoke "qmake"
6309 (string-append "PREFIX=" out)
c36d9725 6310 (string-append "DESKTOPDIR=" out "/share/applications")
6c23ed9b 6311 (string-append "ICONDIR=" out "/share/pixmaps")
c36d9725 6312 (string-append "METAINFODIR=" out "/share/metainfo")
6c23ed9b 6313 "texmaker.pro")))))))
4791876c
RJ
6314 (inputs
6315 `(("poppler-qt5" ,poppler-qt5)
bd917486
TD
6316 ("qtbase" ,qtbase)
6317 ("qtscript" ,qtscript)
6318 ("qtwebkit" ,qtwebkit)
4791876c
RJ
6319 ("zlib" ,zlib)))
6320 (native-inputs
6321 `(("pkg-config" ,pkg-config)))
6322 (home-page "http://www.xm1math.net/texmaker/")
6323 (synopsis "LaTeX editor")
6324 (description "Texmaker is a program that integrates many tools needed to
6325develop documents with LaTeX, in a single application.")
6326 (license license:gpl2+)))
83457fe0 6327
83457fe0
JD
6328(define-public teximpatient
6329 (package
6330 (name "teximpatient")
6331 (version "2.4")
6332 (source (origin
4f2ee8e2 6333 (method url-fetch/tarbomb)
83457fe0
JD
6334 (uri (string-append "mirror://gnu/" name "/" name "-"
6335 version ".tar.gz"))
6336 (sha256
6337 (base32
6338 "0h56w22d99dh4fgld4ssik8ggnmhmrrbnrn1lnxi1zr0miphn1sd"))))
6339 (build-system gnu-build-system)
6340 (arguments
4f2ee8e2
RW
6341 `(#:tests? #f ; there are none
6342 #:phases
83457fe0 6343 (modify-phases %standard-phases
4f2ee8e2
RW
6344 (add-after 'unpack 'fix-packaging-error
6345 (lambda* (#:key inputs #:allow-other-keys)
6346 ;; This file should have been part of the tarball.
6347 (install-file (car
6348 (find-files
6349 (assoc-ref inputs "automake")
6350 "^install-sh$"))
6351 ".")
6352 ;; Remove generated file.
6353 (delete-file "book.pdf")
6354 #t)))))
83457fe0 6355 (native-inputs
f75aa97f 6356 `(("texlive" ,(texlive-union (list texlive-amsfonts
4f2ee8e2
RW
6357 texlive-fonts-adobe-palatino
6358 texlive-fonts-adobe-zapfding
6359 texlive-fonts-knuth-lib
6360 texlive-fonts-mflogo-font
6361 texlive-generic-pdftex)))
83457fe0 6362 ("automake" ,automake)))
6fd52309 6363 (home-page "https://www.gnu.org/software/teximpatient/")
83457fe0
JD
6364 (synopsis "Book on TeX, plain TeX and Eplain")
6365 (description "@i{TeX for the Impatient} is a ~350 page book on TeX,
6366plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,
6367and Karl Berry.")
6368 (license license:fdl1.3+)))
ec40a050
DM
6369
6370(define-public lyx
6371 (package
6372 (name "lyx")
8738c65b 6373 (version "2.3.6.1")
ec40a050 6374 (source (origin
b17c8923 6375 (method url-fetch)
cb72994e 6376 (uri (string-append "https://ftp.lyx.org/pub/lyx/stable/"
e5a03489 6377 (version-major+minor version) ".x/"
03a7b67b 6378 "lyx-" version ".tar.xz"))
b17c8923
RW
6379 (sha256
6380 (base32
8738c65b 6381 "0y7sx804ral14py5jwmb3icvyd6rsw806dfclw0qx28r6iix5gn6"))
b17c8923
RW
6382 (modules '((guix build utils)))
6383 (snippet
6384 '(begin
6385 (delete-file-recursively "3rdparty")
6386 #t))))
e192b9e0 6387 (build-system qt-build-system)
ec40a050
DM
6388 (arguments
6389 `(#:configure-flags `("-DLYX_USE_QT=QT5"
6390 "-DLYX_EXTERNAL_BOOST=1"
6391 "-DLYX_INSTALL=1"
6392 "-DLYX_RELEASE=1"
dadf9795 6393 "-DLYX_PROGRAM_SUFFIX=OFF"
ec40a050 6394 ,(string-append "-DLYX_INSTALL_PREFIX="
dadf9795 6395 (assoc-ref %outputs "out")))
ec40a050
DM
6396 #:phases
6397 (modify-phases %standard-phases
6398 (add-after 'unpack 'patch-python
6399 (lambda* (#:key inputs #:allow-other-keys)
03a7b67b
EF
6400 (substitute* '("lib/configure.py"
6401 "src/support/ForkedCalls.cpp"
6402 "src/support/Systemcall.cpp"
6403 "src/support/os.cpp"
6404 "src/support/filetools.cpp")
b17c8923
RW
6405 (("\"python ")
6406 (string-append "\""
6407 (assoc-ref inputs "python")
03a7b67b 6408 "/bin/python3 ")))
ec40a050 6409 #t))
03a7b67b 6410 (add-after 'unpack 'add-missing-test-file
ec40a050 6411 (lambda _
b17c8923 6412 ;; Create missing file that would cause tests to fail.
03a7b67b 6413 (with-output-to-file "src/tests/check_layout.cmake"
b17c8923 6414 (const #t))
dadf9795 6415 #t)))))
ec40a050
DM
6416 (inputs
6417 `(("boost" ,boost)
b17c8923 6418 ("hunspell" ,hunspell) ; Note: Could also use aspell instead.
ec40a050 6419 ("libx11" ,libx11)
b17c8923 6420 ("mythes" ,mythes)
b3701ca1 6421 ("python" ,python)
ec40a050
DM
6422 ("qtbase" ,qtbase)
6423 ("qtsvg" ,qtsvg)
6424 ("zlib" ,zlib)))
6425 (propagated-inputs
b17c8923 6426 `(("texlive" ,(texlive-union (list texlive-fonts-ec)))))
ec40a050 6427 (native-inputs
b3701ca1 6428 `(("python" ,python)
8c183d95 6429 ("pkg-config" ,pkg-config)))
8960b2e6 6430 (home-page "https://www.lyx.org/")
ec40a050
DM
6431 (synopsis "Document preparation system with GUI")
6432 (description "LyX is a document preparation system. It excels at letting
6433you create complex technical and scientific articles with mathematics,
6434cross-references, bibliographies, indexes, etc. It is very good for working
6435with documents of any length in which the usual processing abilities are
6436required: automatic sectioning and pagination, spell checking and so forth.")
6437 (license license:gpl2+)))
7d50dff3
PN
6438
6439(define-public texlive-latex-media9
6440 (package
6441 (name "texlive-latex-media9")
6442 (version (number->string %texlive-revision))
6443 (source (origin
6444 (method svn-fetch)
6445 (uri (svn-reference
6446 (url (string-append "svn://www.tug.org/texlive/tags/"
6447 %texlive-tag "/Master/texmf-dist/"
6448 "/tex/latex/media9"))
6449 (revision %texlive-revision)))
6450 (file-name (string-append name "-" version "-checkout"))
6451 (sha256
6452 (base32
85892948 6453 "0s86v2b6b1vky1svmmn8pn0l2gz3v280mvjbr2d9l2sjyarlgz9w"))))
7d50dff3
PN
6454 (build-system trivial-build-system)
6455 (arguments
6456 `(#:modules ((guix build utils))
6457 #:builder
6458 (begin
6459 (use-modules (guix build utils))
6460 (let ((target (string-append (assoc-ref %outputs "out")
6461 "/share/texmf-dist/tex/latex/media9")))
6462 (mkdir-p target)
6463 (copy-recursively (assoc-ref %build-inputs "source") target)
6464 #t))))
6465 (home-page "https://www.ctan.org/pkg/media9")
6466 (synopsis "Multimedia inclusion package with Adobe Reader-9/X compatibility")
6467 (description
6468 "The package provides an interface to embed interactive Flash (SWF) and 3D
6469objects (Adobe U3D & PRC), as well as video and sound files or streams in the
6470popular MP4, FLV and MP3 formats into PDF documents with Acrobat-9/X
6471compatibility. Playback of multimedia files uses the built-in Flash Player of
6472Adobe Reader and does, therefore, not depend on external plug-ins. Flash Player
6473supports the efficient H.264 codec for video compression.
6474
6475The package is based on the RichMedia Annotation, an Adobe addition to the PDF
6476specification. It replaces the now obsolete @code{movie15} package.")
6477 (license license:lppl)))
288c8c97
PN
6478
6479(define-public texlive-latex-ocgx2
6480 (package
6481 (name "texlive-latex-ocgx2")
6482 (version (number->string %texlive-revision))
6483 (source (origin
6484 (method svn-fetch)
6485 (uri (svn-reference
6486 (url (string-append "svn://www.tug.org/texlive/tags/"
6487 %texlive-tag "/Master/texmf-dist/"
6488 "/tex/latex/ocgx2"))
6489 (revision %texlive-revision)))
6490 (file-name (string-append name "-" version "-checkout"))
6491 (sha256
6492 (base32
85892948 6493 "1yhp51w8yr10c10pc9196q7hlw80brzqinnqbjw81d0sf2p0llc5"))))
288c8c97
PN
6494 (build-system trivial-build-system)
6495 (arguments
6496 `(#:modules ((guix build utils))
6497 #:builder
6498 (begin
6499 (use-modules (guix build utils))
6500 (let ((target (string-append (assoc-ref %outputs "out")
6501 "/share/texmf-dist/tex/latex/ogcx2")))
6502 (mkdir-p target)
6503 (copy-recursively (assoc-ref %build-inputs "source") target)
6504 #t))))
6505 (home-page "https://www.ctan.org/pkg/ocgx2")
6506 (synopsis "Provide OCG (Optional Content Groups) support within a PDF document")
6507 (description
6508 "This package provides OCG (Optional Content Groups) support within a PDF
6509document.
6510
6511It re-implements the functionality of the @code{ocg}, @code{ocgx}, and
6512@code{ocg-p} packages and adds support for all known engines and back-ends
6513including:
6514
6515@itemize
6516@item LaTeX → dvips → @code{ps2pdf}/Distiller
6517@item (Xe)LaTeX(x) → @code{dvipdfmx}
6518@item pdfLaTeX and LuaLaTeX .
6519@end itemize
6520
6521It also ensures compatibility with the @code{media9} and @code{animate} packages.")
6522 (license license:lppl)))
b718793e
PN
6523
6524(define-public texlive-latex-ms
6525 (package
6526 (name "texlive-latex-ms")
6527 (version (number->string %texlive-revision))
6528 (source (origin
6529 (method svn-fetch)
6530 (uri (texlive-ref "latex" "ms"))
6531 (file-name (string-append name "-" version "-checkout"))
6532 (sha256
6533 (base32
6534 "0m4wx3yjb5al1qsv995z8fii8xxy96mcfihbnlx43lpgayiwz35s"))))
6535 (build-system texlive-build-system)
6536 (arguments
6537 '(#:tex-directory "latex/ms"
6538 #:tex-format "latex"))
6539 (home-page "https://ctan.org/pkg/ms")
6540 (synopsis "Various LATEX packages by Martin Schröder")
6541 (description
6542 "A bundle of LATEX packages by Martin Schröder; the collection comprises:
6543
6544@itemize
6545@item @command{count1to}, make use of fixed TEX counters;
6546@item @command{everysel}, set commands to execute every time a font is selected;
6547@item @command{everyshi}, set commands to execute whenever a page is shipped out;
6548@item @command{multitoc}, typeset the table of contents in multiple columns;
6549@item @command{prelim2e}, mark typeset pages as preliminary; and
6550@item @command{ragged2e}, typeset ragged text and allow hyphenation.
6551@end itemize\n")
6552 (license license:lppl1.3c+)))
707babdd
PN
6553
6554(define-public texlive-latex-needspace
6555 (package
6556 (name "texlive-latex-needspace")
6557 (version (number->string %texlive-revision))
6558 (source (origin
6559 (method svn-fetch)
6560 (uri (texlive-ref "latex" "needspace"))
6561 (file-name (string-append name "-" version "-checkout"))
6562 (sha256
6563 (base32
6564 "0kw80f5jh4gdpa2ka815abza3gr5z8b929w0745vrlc59pl0017y"))))
6565 (build-system texlive-build-system)
6566 (arguments
6567 '(#:tex-directory "latex/needspace"
6568 #:tex-format "latex"))
6569 (inputs
6570 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
6571 (home-page "https://www.ctan.org/pkg/needspace")
6572 (synopsis "Insert pagebreak if not enough space")
6573 (description
6574 "Provides commands to disable pagebreaking within a given vertical
6575space. If there is not enough space between the command and the bottom of the
6576page, a new page will be started.")
6577 (license license:lppl)))
0e73c11b 6578
73635e3f
RW
6579(define-public texlive-latex-changepage
6580 (package
6581 (name "texlive-latex-changepage")
6582 (version (number->string %texlive-revision))
6583 (source
6584 (origin
6585 (method svn-fetch)
6586 (uri (texlive-ref "latex" "changepage"))
e34a17e4 6587 (file-name (string-append name "-" version "-checkout"))
73635e3f
RW
6588 (sha256
6589 (base32
6590 "1rpw8xg5p4jsyh236jma9dz3l29wjx4062f154b3wak5yjcxyxyb"))))
6591 (build-system texlive-build-system)
6592 (arguments
6593 '(#:tex-directory "latex/changepage"
6594 #:tex-format "latex"))
6595 (inputs
6596 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
6597 (home-page "https://www.ctan.org/pkg/changepage")
6598 (synopsis "Margin adjustment and detection of odd/even pages")
6599 (description
6600 "The package provides commands to change the page layout in the middle of
6601a document, and to robustly check for typesetting on odd or even pages.
6602Instructions for use are at the end of the file. The package is an extraction
6603of code from the @code{memoir} class, whose user interface it shares.")
6604 (license license:lppl1.3+)))
6605
0e73c11b
PN
6606(define-public texlive-latex-eukdate
6607 (package
6608 (name "texlive-latex-eukdate")
6609 (version (number->string %texlive-revision))
6610 (source
6611 (origin
6612 (method svn-fetch)
6613 (uri (svn-reference
6614 (url (string-append "svn://www.tug.org/texlive/tags/"
6615 %texlive-tag "/Master/texmf-dist/"
6616 "/tex/latex/eukdate"))
6617 (revision %texlive-revision)))
6618 (file-name (string-append name "-" version "-checkout"))
6619 (sha256
6620 (base32
6621 "18xan116l8w47v560bkw6nbhkrml7g04xrlzk3jrpc7qsyf3n5fz"))))
6622 (build-system trivial-build-system)
6623 (arguments
6624 `(#:modules ((guix build utils))
6625 #:builder
6626 (begin
6627 (use-modules (guix build utils))
6628 (let ((target (string-append (assoc-ref %outputs "out")
6629 "/share/texmf-dist/tex/latex/eukdate")))
6630 (mkdir-p target)
6631 (copy-recursively (assoc-ref %build-inputs "source") target)
6632 #t))))
6633 (home-page "https://www.ctan.org/pkg/eukdate")
6634 (synopsis "UK format dates, with weekday")
6635 (description
6636 "The package is used to change the format of @code{\\today}’s date,
6637including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which
6638is preferred in many parts of the world, as distinct from that which is used in
6639@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'.")
6640 (license license:lppl)))
910d67fb
PN
6641
6642(define-public texlive-generic-ulem
6643 (package
6644 (name "texlive-generic-ulem")
6645 (version (number->string %texlive-revision))
6646 (source
6647 (origin
6648 (method svn-fetch)
6649 (uri (svn-reference
6650 (url (string-append "svn://www.tug.org/texlive/tags/"
6651 %texlive-tag "/Master/texmf-dist/"
6652 "/tex/generic/ulem"))
6653 (revision %texlive-revision)))
6654 (file-name (string-append name "-" version "-checkout"))
6655 (sha256
6656 (base32
6657 "1rzdniqq9zk39w8ch8ylx3ywh2mj87s4ivchrsk2b8nx06jyn797"))))
6658 (build-system trivial-build-system)
6659 (arguments
6660 `(#:modules ((guix build utils))
6661 #:builder
6662 (begin
6663 (use-modules (guix build utils))
6664 (let ((target (string-append (assoc-ref %outputs "out")
6665 "/share/texmf-dist/tex/generic/ulem")))
6666 (mkdir-p target)
6667 (copy-recursively (assoc-ref %build-inputs "source") target)
6668 #t))))
6669 (home-page "https://www.ctan.org/pkg/ulem")
6670 (synopsis "Underline text in TeX")
6671 (description
6672 "The package provides an @code{\\ul} (underline) command which will break
6673over line ends; this technique may be used to replace @code{\\em} (both in that
6674form and as the @code{\\emph} command), so as to make output look as if it comes
6675from a typewriter. The package also offers double and wavy underlining, and
6676striking out (line through words) and crossing out (/// over words).")
6677 (license license:lppl1.3c+)))
17ef5f1f
PN
6678
6679(define-public texlive-latex-pgf
6680 (package
6681 (name "texlive-latex-pgf")
6682 (version (number->string %texlive-revision))
6683 (source
6684 (origin
6685 (method svn-fetch)
6686 (uri (svn-reference
6687 (url (string-append "svn://www.tug.org/texlive/tags/"
6688 %texlive-tag "/Master/texmf-dist/"
6689 "/tex/latex/pgf"))
6690 (revision %texlive-revision)))
6691 (file-name (string-append name "-" version "-checkout"))
6692 (sha256
6693 (base32
85892948 6694 "1dscrgwyr71vgx35mzb316xl669arzagfgq50fdv3nxga63959b3"))))
17ef5f1f
PN
6695 (build-system trivial-build-system)
6696 (native-inputs
6697 `(("texlive-latex-pgf-generic"
6698 ,(origin
6699 (method svn-fetch)
6700 (uri (svn-reference
6701 (url (string-append "svn://www.tug.org/texlive/tags/"
6702 %texlive-tag "/Master/texmf-dist/"
6703 "/tex/generic/pgf"))
6704 (revision %texlive-revision)))
6705 (file-name (string-append "texlive-latex-pgf-generic" version "-checkout"))
6706 (sha256
6707 (base32
85892948 6708 "0hk5x2j15n4pps279cmkbjl1dvhasq3mbhna5xdvp2qgh635ahks"))))))
0fc71e4b
RW
6709 (propagated-inputs
6710 `(("texlive-latex-xcolor" ,texlive-latex-xcolor)))
17ef5f1f
PN
6711 (arguments
6712 `(#:modules ((guix build utils))
6713 #:builder
6714 (begin
6715 (use-modules (guix build utils))
6716 (let ((target-generic (string-append (assoc-ref %outputs "out")
6717 "/share/texmf-dist/tex/generic/pgf"))
6718 (target-latex (string-append (assoc-ref %outputs "out")
6719 "/share/texmf-dist/tex/latex/pgf")))
6720 (mkdir-p target-generic)
6721 (mkdir-p target-latex)
6722 (copy-recursively (assoc-ref %build-inputs "texlive-latex-pgf-generic") target-generic)
6723 (copy-recursively (assoc-ref %build-inputs "source") target-latex)
6724 #t))))
6725 (home-page "https://www.ctan.org/pkg/tikz")
6726 (synopsis "Create PostScript and PDF graphics in TeX")
6727 (description
6728 "PGF is a macro package for creating graphics. It is platform- and
6729format-independent and works together with the most important TeX backend
6730drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer
6731called TikZ.
6732
6733Its usage is similar to pstricks and the standard picture environment. PGF
6734works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can
6735produce either PostScript or PDF output.")
6736 (license license:lppl1.3c+)))
e7b2937d
PN
6737
6738(define-public texlive-latex-koma-script
6739 (package
6740 (name "texlive-latex-koma-script")
6741 (version (number->string %texlive-revision))
6742 (source (origin
6743 (method svn-fetch)
6744 (uri (svn-reference
6745 (url (string-append "svn://www.tug.org/texlive/tags/"
6746 %texlive-tag "/Master/texmf-dist/"
6747 "/tex/latex/koma-script"))
6748 (revision %texlive-revision)))
6749 (file-name (string-append name "-" version "-checkout"))
6750 (sha256
6751 (base32
85892948 6752 "1vz9zg7s5w52xr323zgglzprfrvba2zvyzf6b8vrdf4wdghlpv4z"))))
e7b2937d
PN
6753 (build-system trivial-build-system)
6754 (arguments
77eaf5fc 6755 `(#:modules ((guix build utils))
e7b2937d
PN
6756 #:builder
6757 (begin
6758 (use-modules (guix build utils)
6759 (ice-9 match))
6760 (let ((root (string-append (assoc-ref %outputs "out")
6761 "/share/texmf-dist/"))
6762 (pkgs '(("source" . "tex/latex/koma-script"))))
6763 (for-each (match-lambda
6764 ((pkg . dir)
6765 (let ((target (string-append root dir)))
6766 (mkdir-p target)
6767 (copy-recursively (assoc-ref %build-inputs pkg)
6768 target))))
6769 pkgs)
6770 #t))))
6771 (home-page "https://www.ctan.org/pkg/koma-script")
6772 (synopsis "Bundle of versatile classes and packages")
6773 (description
6774 "The KOMA-Script bundle provides replacements for the article, report, and
6775book classes with emphasis on typography and versatility. There is also a
6776letter class.
6777
6778The bundle also offers:
6779
6780@itemize
6781@item a package for calculating type areas in the way laid down by the
6782typographer Jan Tschichold,
6783@item packages for easily changing and defining page styles,
6784@item a package scrdate for getting not only the current date but also the name
6785of the day, and
6786@item a package scrtime for getting the current time.
6787@end itemize
6788
6789All these packages may be used not only with KOMA-Script classes but also with
6790the standard classes.
6791
6792Since every package has its own version number, the version number quoted only
6793refers to the version of scrbook, scrreprt, scrartcl, scrlttr2 and
6794typearea (which are the main parts of the bundle).")
6795 (license license:lppl1.3+)))
893fbf12
RW
6796
6797(define-public texlive-generic-listofitems
6798 (package
6799 (name "texlive-generic-listofitems")
6800 (version (number->string %texlive-revision))
6801 (source (origin
6802 (method svn-fetch)
6803 (uri (svn-reference
6804 (url (string-append "svn://www.tug.org/texlive/tags/"
6805 %texlive-tag "/Master/texmf-dist/"
6806 "/tex/generic/listofitems"))
6807 (revision %texlive-revision)))
6808 (file-name (string-append name "-" version "-checkout"))
6809 (sha256
6810 (base32
85892948 6811 "1x4wnpca97rnbvvg6wjmbkxxvnfva274q9ahzx746b435q93z3i1"))))
893fbf12
RW
6812 (build-system trivial-build-system)
6813 (arguments
6814 `(#:modules ((guix build utils))
6815 #:builder
6816 (begin
6817 (use-modules (guix build utils))
6818 (let ((target (string-append (assoc-ref %outputs "out")
6819 "/share/texmf-dist/tex/generic/listofitems")))
6820 (mkdir-p target)
6821 (copy-recursively (assoc-ref %build-inputs "source") target)
6822 #t))))
6823 (home-page "https://www.ctan.org/pkg/listofitems")
88868575 6824 (synopsis "Grab items in lists using user-specified separation character")
893fbf12
RW
6825 (description
6826 "This package allows one to capture all the items of a list, for which
6827the parsing character has been selected by the user, and to access any of
6828these items with a simple syntax.")
6829 (license license:lppl1.3c+)))
1d0669f4
RW
6830
6831(define-public texlive-latex-readarray
6832 (package
6833 (name "texlive-latex-readarray")
6834 (version (number->string %texlive-revision))
6835 (source (origin
6836 (method svn-fetch)
6837 (uri (svn-reference
6838 (url (string-append "svn://www.tug.org/texlive/tags/"
6839 %texlive-tag "/Master/texmf-dist/"
6840 "/tex/latex/readarray"))
6841 (revision %texlive-revision)))
6842 (file-name (string-append name "-" version "-checkout"))
6843 (sha256
6844 (base32
6845 "0c53k180ivn1n7fz3ngvd2w1i5dw3kxml0n64vhki88xsylz7lxp"))))
6846 (build-system trivial-build-system)
6847 (arguments
6848 `(#:modules ((guix build utils))
6849 #:builder
6850 (begin
6851 (use-modules (guix build utils))
6852 (let ((target (string-append (assoc-ref %outputs "out")
6853 "/share/texmf-dist/tex/latex/readarray")))
6854 (mkdir-p target)
6855 (copy-recursively (assoc-ref %build-inputs "source") target)
6856 #t))))
6857 (propagated-inputs
6858 `(("texlive-generic-listofitems" ,texlive-generic-listofitems)))
6859 (home-page "https://www.ctan.org/pkg/readarray")
6860 (synopsis "Read, store and recall array-formatted data")
6861 (description
6862 "This package allows the user to input formatted data into elements of a
68632-D or 3-D array and to recall that data at will by individual cell number.
6864The data can be but need not be numerical in nature. It can be, for example,
6865formatted text.")
6866 (license license:lppl1.3)))
f50f343e
RW
6867
6868(define-public texlive-latex-verbatimbox
6869 (package
6870 (name "texlive-latex-verbatimbox")
6871 (version (number->string %texlive-revision))
6872 (source (origin
6873 (method svn-fetch)
6874 (uri (svn-reference
6875 (url (string-append "svn://www.tug.org/texlive/tags/"
6876 %texlive-tag "/Master/texmf-dist/"
6877 "/tex/latex/verbatimbox"))
6878 (revision %texlive-revision)))
6879 (file-name (string-append name "-" version "-checkout"))
6880 (sha256
6881 (base32
6882 "0qh1cgvfs463zsi2pjg490gj0mkjfdpfc381j10cbb5la304psna"))))
6883 (build-system trivial-build-system)
6884 (arguments
6885 `(#:modules ((guix build utils))
6886 #:builder
6887 (begin
6888 (use-modules (guix build utils))
6889 (let ((target (string-append (assoc-ref %outputs "out")
6890 "/share/texmf-dist/tex/latex/verbatimbox")))
6891 (mkdir-p target)
6892 (copy-recursively (assoc-ref %build-inputs "source") target)
6893 #t))))
6894 (propagated-inputs
6895 `(("texlive-latex-readarray" ,texlive-latex-readarray)))
6896 (home-page "https://www.ctan.org/pkg/verbatimbox")
6897 (synopsis "Deposit verbatim text in a box")
6898 (description
6899 "The package provides a @code{verbbox} environment to place its contents
6900into a globally available box, or into a box specified by the user. The
6901global box may then be used in a variety of situations (for example, providing
6902a replica of the @code{boxedverbatim} environment itself). A valuable use is
6903in places where the standard @code{verbatim} environment (which is based on a
6904@code{trivlist}) may not appear.")
6905 (license license:lppl1.3+)))
4348a059
RW
6906
6907(define-public texlive-latex-examplep
6908 (package
6909 (name "texlive-latex-examplep")
6910 (version (number->string %texlive-revision))
6911 (source (origin
6912 (method svn-fetch)
6913 (uri (svn-reference
6914 (url (string-append "svn://www.tug.org/texlive/tags/"
6915 %texlive-tag "/Master/texmf-dist/"
6916 "/tex/latex/examplep"))
6917 (revision %texlive-revision)))
6918 (file-name (string-append name "-" version "-checkout"))
6919 (sha256
6920 (base32
6921 "0fsvvmz68ij0zwfzrny6x13d92grxr4ap59lxgah4smbkccd6s27"))))
6922 (build-system trivial-build-system)
6923 (arguments
6924 `(#:modules ((guix build utils))
6925 #:builder
6926 (begin
6927 (use-modules (guix build utils))
6928 (let ((target (string-append (assoc-ref %outputs "out")
6929 "/share/texmf-dist/tex/latex/examplep")))
6930 (mkdir-p target)
6931 (copy-recursively (assoc-ref %build-inputs "source") target)
6932 #t))))
6933 (home-page "https://www.ctan.org/pkg/examplep")
6934 (synopsis "Verbatim phrases and listings in LaTeX")
6935 (description
6936 "Examplep provides sophisticated features for typesetting verbatim source
6937code listings, including the display of the source code and its compiled LaTeX
6938or METAPOST output side-by-side, with automatic width detection and enabled
6939page breaks (in the source), without the need for specifying the source twice.
6940Special care is taken that section, page and footnote numbers do not interfere
6941with the main document. For typesetting short verbatim phrases, a replacement
6942for the @code{\\verb} command is also provided in the package, which can be
6943used inside tables and moving arguments such as footnotes and section
6944titles.")
6945 ;; No version of the GPL is specified.
6946 (license license:gpl3+)))
547ab650 6947
8bc9afeb
RW
6948(define-public texlive-xypic
6949 (let ((template (simple-texlive-package
6950 "texlive-xypic"
6951 (list "/doc/generic/xypic/"
6952 "/dvips/xypic/xy389dict.pro"
6953 "/fonts/enc/dvips/xypic/"
6954 "/fonts/map/dvips/xypic/xypic.map"
6955
6956 "/fonts/source/public/xypic/"
6957 "/fonts/afm/public/xypic/"
6958 "/fonts/tfm/public/xypic/"
6959 "/fonts/type1/public/xypic/"
63d57404 6960 "/tex/generic/xypic/")
8bc9afeb 6961 (base32
63d57404
RW
6962 "09b51bbm189xh7039h5n8nmab5nn2bybhh26qjn08763m80zdhjg")
6963 #:trivial? #t)))
8bc9afeb
RW
6964 (package
6965 (inherit template)
6966 (arguments
6967 (substitute-keyword-arguments (package-arguments template)
8bc9afeb
RW
6968 ((#:phases phases)
6969 `(modify-phases ,phases
6970 (delete 'reset-gzip-timestamps)))))
6971 (home-page "https://www.ctan.org/pkg/xypic")
6972 (synopsis "Flexible diagramming macros")
6973 (description "This is a package for typesetting a variety of graphs and
6974diagrams with TeX. Xy-pic works with most formats (including LaTeX,
6975AMS-LaTeX, AMS-TeX, and plain TeX). The distribution includes Michael Barr's
6976@code{diag} package, which was previously distributed stand-alone.")
6977 (license license:gpl3+))))
1d9ce461
PN
6978
6979(define-public texlive-fonts-xypic
8bc9afeb
RW
6980 (deprecated-package "texlive-fonts-xypic" texlive-xypic))
6981
6982(define-public texlive-generic-xypic
6983 (deprecated-package "texblive-generic-xypic" texlive-xypic))
31595689
PN
6984
6985(define-public texlive-bibtex
6986 (package
6987 (name "texlive-bibtex")
6988 (version (number->string %texlive-revision))
6989 (source
6990 (origin
6991 (method svn-fetch)
6992 (uri (svn-reference
6993 (url (string-append "svn://www.tug.org/texlive/tags/"
6994 %texlive-tag "/Master/texmf-dist/"
6995 "/bibtex"))
6996 (revision %texlive-revision)))
6997 (file-name (string-append name "-" version "-checkout"))
6998 (sha256
6999 (base32
85892948 7000 "1wijqq605cbhn2bdaryby3xpkwmnk9ixcrjn5zwlfrxbgfblzfmz"))))
31595689
PN
7001 (build-system trivial-build-system)
7002 (arguments
7003 `(#:modules ((guix build utils))
7004 #:builder
7005 (begin
7006 (use-modules (guix build utils))
7007 (let ((target (string-append (assoc-ref %outputs "out")
7008 "/share/texmf-dist/bibtex")))
7009 (mkdir-p target)
7010 (copy-recursively (assoc-ref %build-inputs "source") target)
7011 #t))))
7012 (home-page "https://www.ctan.org/pkg/bibtex")
7013 (synopsis "Process bibliographies for LaTeX")
7014 (description
7015 "BibTeX allows the user to store his citation data in generic form, while
7016printing citations in a document in the form specified by a BibTeX style, to
7017be specified in the document itself (one often needs a LaTeX citation-style
7018package, such as @command{natbib} as well).")
7019 (license license:knuth)))
744b883e 7020
1f50ae63 7021(define-public texlive-charter
744b883e 7022 (package
1f50ae63
RW
7023 (inherit (simple-texlive-package
7024 "texlive-charter"
7025 (list "/doc/fonts/charter/readme.charter"
7026 "/fonts/afm/bitstrea/charter/"
7027 "/fonts/tfm/bitstrea/charter/"
7028 "/fonts/type1/bitstrea/charter/"
7029 "/fonts/vf/bitstrea/charter/")
7030 (base32
7031 "09l5ymgz48s3hyn776l01g3isk3dnhrj1vdavdw4qq4kfxxpqdn9")
7032 #:trivial? #t))
744b883e
PN
7033 (home-page "https://www.ctan.org/pkg/charter")
7034 (synopsis "Charter fonts for TeX")
1f50ae63
RW
7035 (description "This package provides a copy of the Charter Type-1 fonts
7036which Bitstream contributed to the X consortium, renamed for use with TeX.
7037Support for use with LaTeX is available in @code{freenfss}, part of
744b883e 7038@command{psnfss}. ")
1f50ae63
RW
7039 (license (license:non-copyleft
7040 "http://mirrors.ctan.org/fonts/charter/readme.charter"))))
7041
7042(define-public texlive-fonts-charter
7043 (deprecated-package "texlive-fonts-charter" texlive-charter))
a5bfedb4
PN
7044
7045(define-public texlive-context-base
7046 (package
7047 (name "texlive-context-base")
7048 (version (number->string %texlive-revision))
7049 (source (origin
7050 (method svn-fetch)
7051 (uri (svn-reference
7052 (url (string-append "svn://www.tug.org/texlive/tags/"
7053 %texlive-tag "/Master/texmf-dist/"
7054 "/tex/context/base"))
7055 (revision %texlive-revision)))
7056 (file-name (string-append name "-" version "-checkout"))
7057 (sha256
7058 (base32
85892948 7059 "0d7d74giz5knvj4rj6mbzd6c05mwg9jrxab86jxdqbc3jy7cl4kz"))))
a5bfedb4
PN
7060 (build-system trivial-build-system)
7061 (arguments
7062 `(#:modules ((guix build utils))
7063 #:builder
7064 (begin
7065 (use-modules (guix build utils))
7066 (let ((target (string-append (assoc-ref %outputs "out")
7067 "/share/texmf-dist/tex/context/case")))
7068 (mkdir-p target)
7069 (copy-recursively (assoc-ref %build-inputs "source") target)
7070 #t))))
7071 (home-page "https://www.ctan.org/pkg/context")
7072 (synopsis "Full featured, parameter driven macro package for TeX")
7073 (description "A full featured, parameter driven macro package, which fully
7074supports advanced interactive documents. See the ConTeXt garden for a wealth
7075of support information.")
7076 (license license:gpl2+)))
63133706 7077
81ca4614 7078(define-public texlive-beamer
63133706 7079 (package
81ca4614
RW
7080 (inherit (simple-texlive-package
7081 "texlive-beamer"
7082 (list "/doc/latex/beamer/"
7083 "/tex/latex/beamer/")
7084 (base32
85892948 7085 "1fqzbkmw2kfxihab8j4dadc3v68xap6v2ghpp2064fna47xlwy1c")
81ca4614 7086 #:trivial? #t))
63133706
RW
7087 (propagated-inputs
7088 `(("texlive-latex-hyperref" ,texlive-latex-hyperref)
7089 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
7090 ("texlive-latex-etoolbox" ,texlive-latex-etoolbox)
7091 ("texlive-latex-pgf" ,texlive-latex-pgf)))
63133706
RW
7092 (home-page "https://www.ctan.org/pkg/beamer")
7093 (synopsis "LaTeX class for producing presentations and slides")
7094 (description "The beamer LaTeX class can be used for producing slides.
7095The class works in both PostScript and direct PDF output modes, using the
7096@code{pgf} graphics system for visual effects. Content is created in the
7097@code{frame} environment, and each frame can be made up of a number of slides
7098using a simple notation for specifying material to appear on each slide within
7099a frame. Short versions of title, authors, institute can also be specified as
7100optional parameters. Whole frame graphics are supported by plain frames. The
7101class supports @code{figure} and @code{table} environments, transparency
7102effects, varying slide transitions and animations.")
7103 ;; Code is dual licensed under GPLv2+ or LPPL1.3c+; documentation is
7104 ;; dual-licensed under either FDLv1.3+ or LPPL1.3c+.
7105 (license (list license:lppl1.3c+ license:gpl2+ license:fdl1.3+))))
cafd4d38 7106
81ca4614
RW
7107(define-public texlive-latex-beamer
7108 (deprecated-package "texlive-latex-beamer" texlive-beamer))
7109
cafd4d38
RW
7110(define-public texlive-latex-xmpincl
7111 (package
7112 (name "texlive-latex-xmpincl")
7113 (version (number->string %texlive-revision))
7114 (source
7115 (origin
7116 (method svn-fetch)
7117 (uri (texlive-ref "latex" "xmpincl"))
97656fc9 7118 (file-name (string-append name "-" version "-checkout"))
cafd4d38
RW
7119 (sha256
7120 (base32
7121 "0lq3dfb4fsw955gjwllnk7cg00ciq5mva64mlpbva6g2jz117734"))))
7122 (build-system texlive-build-system)
7123 (arguments '(#:tex-directory "latex/xmpincl"))
7124 (home-page "http://www.ctan.org/pkg/xmpincl")
7125 (synopsis "Include eXtensible Metadata Platform data in pdfLaTeX")
7126 (description
7127 "The XMP (eXtensible Metadata platform) is a framework to add metadata to
7128digital material to enhance the workflow in publication. The essence is that
7129the metadata is stored in an XML file, and this XML stream is then embedded in
7130the file to which it applies.")
7131 (license license:gpl3+)))
f87dcb4d
RW
7132
7133(define-public texlive-latex-pdfx
7134 (package
7135 (name "texlive-latex-pdfx")
7136 (version (number->string %texlive-revision))
7137 (source
7138 (origin
7139 (method svn-fetch)
7140 (uri (texlive-ref "latex" "pdfx"))
2ada1259 7141 (file-name (string-append name "-" version "-checkout"))
f87dcb4d
RW
7142 (sha256
7143 (base32
85892948 7144 "18294h0cr05fs424m3x6aq24z5hf5zmiflalkj4kvpmsyyqqsj74"))))
f87dcb4d
RW
7145 (build-system texlive-build-system)
7146 (arguments
7147 '(#:tex-directory "latex/pdfx"
7148 #:phases
7149 (modify-phases %standard-phases
7150 (add-after 'unpack 'fix-encoding
7151 (lambda _
7152 (substitute* "pdfx.dtx"
7153 ((" .+umaczy") "umaczy"))
7154 #t))
7155 (add-before 'install 'install-tex-files
7156 (lambda* (#:key inputs outputs #:allow-other-keys)
7157 (let ((target (string-append (assoc-ref outputs "out")
7158 "/share/texmf-dist/tex/latex/pdfx")))
7159 (mkdir-p target)
7160 (copy-recursively (assoc-ref inputs "texlive-tex-pdfx") target)
7161 ;; Install the generated version in the "install" phase.
7162 (delete-file (string-append target "/pdfx.sty"))
7163 #t))))))
7164 (propagated-inputs
7165 `(("texlive-generic-pdftex" ,texlive-generic-pdftex)))
7166 (native-inputs
7167 `(("texlive-tex-pdfx"
7168 ,(origin
7169 (method svn-fetch)
7170 (uri (svn-reference
7171 (url (string-append "svn://www.tug.org/texlive/tags/"
7172 %texlive-tag "/Master/texmf-dist/"
7173 "/tex/latex/pdfx"))
7174 (revision %texlive-revision)))
7175 (file-name (string-append "texlive-tex-latex-pdfx-" version "-checkout"))
7176 (sha256
7177 (base32
85892948 7178 "171ffvpkj2fab4ljcxv3l6l5c8ga8zavdhmhfq07id8zyyr619ip"))))))
f87dcb4d
RW
7179 (home-page "https://www.ctan.org/pkg/pdfx")
7180 (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX")
7181 (description
ba11dddb 7182 "This package helps LaTeX users to create PDF/X, PDF/A and other
f87dcb4d
RW
7183standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX.")
7184 (license license:lppl1.2+)))
73ce4421
RW
7185
7186(define-public texlive-ydoc
7187 (let ((template (simple-texlive-package
7188 "texlive-ydoc"
7189 (list "/doc/latex/ydoc/"
7190 "/source/latex/ydoc/")
7191 (base32
7192 "0ckcpy1b8v1fk3qc8qkxgiag2wc0qzxm6bgksv000m4m1hsi2g8b")
7193 #:trivial? #f)))
7194 (package
7195 (inherit template)
7196 (outputs '("out" "doc"))
7197 (arguments
7198 (substitute-keyword-arguments (package-arguments template)
7199 ((#:tex-directory _ #t)
7200 "latex/ydoc")
7201 ((#:build-targets _ #t)
7202 ''("ydoc.dtx"))
7203 ((#:phases phases)
7204 `(modify-phases ,phases
7205 (add-after 'unpack 'chdir
7206 (lambda _ (chdir "source/latex/ydoc") #t))
7207 (add-after 'copy-files 'move-files
7208 (lambda* (#:key outputs #:allow-other-keys)
7209 (let* ((share (string-append (assoc-ref outputs "out")
7210 "/share/texmf-dist"))
7211 (target (string-append share "/tex/generic/ydoc"))
7212 (doc (string-append (assoc-ref outputs "doc")
7213 "/share/texmf-dist/doc") ))
7214 (mkdir-p target)
7215 (for-each
7216 (lambda (file)
7217 (rename-file (string-append share "/tex/latex/ydoc/" file)
7218 (string-append target "/" file)))
7219 '("ydocincl.tex" "ydocstrip.tex"))
7220 (mkdir-p doc)
7221 (rename-file (string-append share "/doc") doc)
7222 #t)))))))
7223 (home-page "http://www.ctan.org/pkg/ydoc")
7224 (synopsis "Macros for documentation of LaTeX classes and packages")
7225 (description "The package provides macros and environments to document
7226LaTeX packages and classes. It is an (as yet unfinished) alternative to the
7227@code{ltxdoc} class and the @code{doc} or @code{xdoc} packages. The aim is to
7228provide a different layout and more modern styles (using the @code{xcolor},
7229@code{hyperref} packages, etc.) This is an alpha release, and should probably
7230not (yet) be used with other packages, since the implementation might
7231change.")
7232 (license license:lppl1.3+))))
e5c08129
RW
7233
7234(define-public texlive-pstricks
7235 (let ((template (simple-texlive-package
7236 "texlive-pstricks"
7237 (list "/doc/generic/pstricks/"
7238 "/dvips/pstricks/"
7239 "/tex/generic/pstricks/"
7240 "/tex/latex/pstricks/")
7241 (base32
85892948 7242 "0sdxdd0qi4sccw9il7d4s7jivs24pq99cdzfnrf0gkqjb1y8s7cl")
e5c08129
RW
7243 #:trivial? #t)))
7244 (package
7245 (inherit template)
7246 (arguments
7247 (substitute-keyword-arguments (package-arguments template)
7248 ((#:phases phases)
7249 `(modify-phases ,phases
7250 (delete 'reset-gzip-timestamps)))))
7251 (home-page "http://www.ctan.org/pkg/pstricks")
7252 (synopsis "PostScript macros for TeX")
7253 (description "PSTricks offers an extensive collection of macros for
7254generating PostScript that is usable with most TeX macro formats, including
7255Plain TeX, LaTeX, AMS-TeX, and AMS-LaTeX. Included are macros for colour,
7256graphics, pie charts, rotation, trees and overlays. It has many special
7257features, including a wide variety of graphics (picture drawing) macros, with
7258a flexible interface and with colour support. There are macros for colouring
7259or shading the cells of tables.")
7260 (license license:lppl1.3+))))
a72d343a
RW
7261
7262(define-public texlive-pst-text
7263 (let ((template (simple-texlive-package
7264 "texlive-pst-text"
7265 (list "/doc/generic/pst-text/"
a72d343a
RW
7266 "/dvips/pst-text/pst-text.pro"
7267 "/tex/generic/pst-text/"
7268 "/tex/latex/pst-text/")
7269 (base32
85892948 7270 "146fpzd1xlqi94q5r48z8ni8qww713yh6nwkbr9pw27mjrqdadb9")
a72d343a
RW
7271 #:trivial? #t)))
7272 (package
7273 (inherit template)
7274 (propagated-inputs
7275 `(("texlive-pstricks" ,texlive-pstricks)))
7276 (home-page "http://www.ctan.org/pkg/pst-text")
7277 (synopsis "Text and character manipulation in PSTricks")
7278 (description "Pst-text is a PSTricks based package for plotting text along
7279a different path and manipulating characters. It includes the functionality
7280of the old package @code{pst-char}.")
7281 (license license:lppl))))
51bf1c51 7282
cf4a56d7
RW
7283(define-public texlive-marginnote
7284 (let ((template (simple-texlive-package
7285 "texlive-marginnote"
7286 (list "/source/latex/marginnote/marginnote.dtx")
7287 (base32
7288 "1vj1k8xm11gjdfj60as42d8lsv3dbzrm5dlgqcfk89d9dzm3k39j"))))
7289 (package
7290 (inherit template)
7291 (home-page "http://www.ctan.org/pkg/marginnote")
7292 (arguments
7293 (substitute-keyword-arguments (package-arguments template)
7294 ((#:tex-directory _ '())
7295 "latex/marginnote")
7296 ((#:build-targets _ '())
7297 ''("marginnote.dtx"))
7298 ((#:phases phases)
7299 `(modify-phases ,phases
7300 (add-after 'unpack 'chdir
7301 (lambda _ (chdir "source/latex/marginnote") #t))))))
7302 (synopsis "Notes in the margin")
7303 (description "This package provides the command @code{\\marginnote} that
7304may be used instead of @code{\\marginpar} at almost every place where
7305@code{\\marginpar} cannot be used, e.g., inside floats, footnotes, or in
7306frames made with the @code{framed} package.")
7307 (license license:lppl1.3c+))))
7308
51bf1c51
RW
7309(define-public texlive-iftex
7310 (let ((template (simple-texlive-package
7311 "texlive-iftex"
7312 (list "/doc/generic/iftex/"
7313 "/tex/generic/iftex/iftex.sty")
7314 (base32
7315 "089zvw31gby150n1k0zdk2c0q97pgbqs46phxydaqil64b55nnl7")
7316 #:trivial? #t)))
7317 (package
7318 (inherit template)
7319 (home-page "http://www.ctan.org/pkg/iftex")
7320 (synopsis "Determine the currently used TeX engine")
7321 (description "This package, which works both for Plain TeX and for
7322LaTeX, defines the @code{\\ifPDFTeX}, @code{\\ifXeTeX}, and @code{\\ifLuaTeX}
7323conditionals for testing which engine is being used for typesetting. The
7324package also provides the @code{\\RequirePDFTeX}, @code{\\RequireXeTeX}, and
7325@code{\\RequireLuaTeX} commands which throw an error if pdfTeX, XeTeX or
7326LuaTeX (respectively) is not the engine in use.")
7327 (license license:lppl1.3+))))
99b14365
RW
7328
7329(define-public texlive-tools
7330 (let ((template (simple-texlive-package
7331 "texlive-tools"
7332 (list "/doc/latex/tools/"
7333 "/source/latex/tools/")
7334 (base32
85892948 7335 "1ivhij7171wvrgcjn4wah84wxwpd21d0chh3zxab4pj067c8d0mh"))))
99b14365
RW
7336 (package
7337 (inherit template)
7338 (arguments
7339 (substitute-keyword-arguments (package-arguments template)
7340 ((#:tex-directory _ '())
7341 "latex/tools")
7342 ((#:build-targets _ '())
7343 ''("tools.ins"))
7344 ((#:phases phases)
7345 `(modify-phases ,phases
7346 (add-after 'unpack 'chdir
7347 (lambda _ (chdir "source/latex/tools") #t))))))
7348 (home-page "https://www.ctan.org/tex-archive/macros/latex/required/tools/")
7349 (synopsis "LaTeX standard tools bundle")
7350 (description "This package provides a collection of simple tools that
7351are part of the LaTeX required tools distribution, comprising the packages:
7352@code{afterpage}, @code{array}, @code{bm}, @code{calc}, @code{dcolumn},
7353@code{delarray}, @code{enumerate}, @code{fileerr}, @code{fontsmpl},
7354@code{ftnright}, @code{hhline}, @code{indentfirst}, @code{layout},
7355@code{longtable}, @code{multicol}, @code{rawfonts}, @code{showkeys},
7356@code{somedefs}, @code{tabularx}, @code{theorem}, @code{trace},
7357@code{varioref}, @code{verbatim}, @code{xr}, and @code{xspace}.")
7358 (license license:lppl1.3+))))
f16e0948
RW
7359
7360(define-public texlive-latex-xkeyval
7361 (package
7362 (name "texlive-latex-xkeyval")
7363 (version (number->string %texlive-revision))
7364 (source (origin
7365 (method svn-fetch)
7366 (uri (texlive-ref "latex" "xkeyval"))
04f46e5d 7367 (file-name (string-append name "-" version "-checkout"))
f16e0948
RW
7368 (sha256
7369 (base32
7370 "0wancavix39j240pd8m9cgmwsijwx6jd6n54v8wg0x2rk5m44myp"))))
7371 (build-system texlive-build-system)
7372 (arguments
7373 '(#:tex-directory "latex/xkeyval"
7374 #:build-targets '("xkeyval.dtx")
7375 #:tex-format "latex" ; won't build with luatex
7376 #:phases
7377 (modify-phases %standard-phases
7378 ;; This package cannot be built out of tree as it expects to find
7379 ;; built files in the working directory.
7380 (add-before 'build 'fix-build
7381 (lambda _
7382 (setenv "TEXINPUTS"
7383 (string-append (getcwd) "/build:"))
7384 (substitute* "xkeyval.dtx"
7385 (("usepackage\\{xcolor\\}")
7386 "usepackage[dvips]{xcolor}"))
7387 #t))
7388 ;; FIXME: We don't have a package for this font yet.
7389 (add-after 'unpack 'remove-dependency-on-fourier
7390 (lambda _
7391 (substitute* "xkeyval.dtx"
7392 (("\\\\usepackage\\{fourier\\}") ""))
7393 #t))
7394 (add-after 'install 'move-files
7395 (lambda* (#:key outputs #:allow-other-keys)
7396 (let* ((out (assoc-ref outputs "out"))
7397 (share (string-append out "/share/texmf-dist"))
7398 (source (string-append share "/tex/latex/xkeyval/"))
7399 (target (string-append share "/tex/generic/xkeyval/")))
7400 (mkdir-p target)
7401 (for-each (lambda (file)
7402 (rename-file (string-append source file)
7403 (string-append target file)))
7404 '("keyval.tex"
7405 "pst-xkey.tex"
7406 "xkeyval.tex"
7407 "xkvex1.tex"
7408 "xkvex2.tex"
7409 "xkvex3.tex"
7410 "xkvex4.tex"
7411 "xkvtxhdr.tex"
7412 "xkvutils.tex"))
7413 #t))))))
7414 (native-inputs
7415 `(("texlive-latex-base" ,texlive-latex-base)
7416 ("texlive-cm" ,texlive-cm)
7417 ("texlive-lm" ,texlive-lm)
7418 ("texlive-url" ,texlive-url)
7419 ("texlive-graphics-def" ,texlive-graphics-def)
7420 ("texlive-xcolor" ,texlive-xcolor)
7421 ("texlive-latex-footmisc" ,texlive-latex-footmisc)
7422 ("texlive-latex-listings" ,texlive-latex-listings)
7423 ("texlive-iftex" ,texlive-iftex)
7424 ("texlive-pstricks" ,texlive-pstricks)
7425 ("texlive-pst-text" ,texlive-pst-text)
7426 ("texlive-tools" ,texlive-tools)
7427 ("texlive-latex-pgf" ,texlive-latex-pgf)))
7428 (home-page "http://www.ctan.org/pkg/xkeyval")
7429 (synopsis "Extension of the keyval package")
7430 (description
7431 "This package is an extension of the keyval package and offers additional
7432macros for setting keys and declaring and setting class or package options.
7433The package allows the programmer to specify a prefix to the name of the
7434macros it defines for keys, and to define families of key definitions; these
7435all help use in documents where several packages define their own sets of
7436keys.")
7437 (license license:lppl1.3+)))
11ecf9f4
RW
7438
7439(define-public texlive-standalone
7440 (package
7441 (name "texlive-standalone")
7442 (version (number->string %texlive-revision))
7443 (source
7444 (origin
7445 (method svn-fetch)
7446 (uri (texlive-ref "latex" "standalone"))
4c08aa57 7447 (file-name (string-append name "-" version "-checkout"))
11ecf9f4
RW
7448 (sha256
7449 (base32
7450 "192ydxcn8ir96q8qwvnppksmqf5i0p50i0wz6iqazbwmh3dqxpx4"))))
7451 (build-system texlive-build-system)
7452 (arguments '(#:tex-directory "latex/standalone"))
7453 (propagated-inputs
7454 `(("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
7455 (native-inputs
7456 `(("texlive-ydoc" ,texlive-ydoc)))
7457 (home-page "http://www.ctan.org/pkg/standalone")
7458 (synopsis "Compile TeX pictures stand-alone or as part of a document")
7459 (description "A class and package is provided which allows TeX pictures or
7460other TeX code to be compiled standalone or as part of a main document.
7461Special support for pictures with beamer overlays is also provided. The
7462package is used in the main document and skips extra preambles in sub-files.
7463The class may be used to simplify the preamble in sub-files. By default the
7464@code{preview} package is used to display the typeset code without margins.
7465The behaviour in standalone mode may adjusted using a configuration file
7466@code{standalone.cfg} to redefine the standalone environment.")
7467 (license license:lppl1.3+)))
69f0c8cf
RW
7468
7469(define-public texlive-siunitx
7470 (package
7471 (name "texlive-siunitx")
7472 (version (number->string %texlive-revision))
7473 (source (texlive-origin
7474 name version
7475 (list "/source/latex/siunitx/siunitx.dtx"
7476 "/doc/latex/siunitx/README.md")
7477 (base32
85892948 7478 "11kf6znkgw7y5qmw75qk6px6pqf57bwr53q0673zaiyq20lif96c")))
69f0c8cf
RW
7479 (build-system texlive-build-system)
7480 (arguments
7481 '(#:tex-directory "latex/siunitx"
7482 #:build-targets '("siunitx.dtx")
7483 #:phases
7484 (modify-phases %standard-phases
7485 (add-after 'unpack 'chdir
7486 (lambda _ (chdir "source/latex/siunitx") #t)))))
7487 (propagated-inputs
7488 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)
7489 ("texlive-latex-l3packages" ,texlive-latex-l3packages)))
7490 (home-page "http://www.ctan.org/pkg/siunitx")
7491 (synopsis "Comprehensive SI units package")
7492 (description
7493 "Typesetting values with units requires care to ensure that the combined
7494mathematical meaning of the value plus unit combination is clear. In
7495particular, the SI units system lays down a consistent set of units with rules
7496on how they are to be used. However, different countries and publishers have
7497differing conventions on the exact appearance of numbers (and units). A
7498number of LaTeX packages have been developed to provide consistent application
7499of the various rules. The @code{siunitx} package takes the best from the
7500existing packages, and adds new features and a consistent interface. A number
7501of new ideas have been incorporated, to fill gaps in the existing provision.
7502The package also provides backward-compatibility with @code{SIunits},
7503@code{sistyle}, @code{unitsdef} and @code{units}. The aim is to have one
7504package to handle all of the possible unit-related needs of LaTeX users.")
7505 (license license:lppl1.3c)))
66d21335
RW
7506
7507(define-public texlive-booktabs
7508 (package
7509 (name "texlive-booktabs")
7510 (version (number->string %texlive-revision))
7511 (source
7512 (origin
7513 (method svn-fetch)
7514 (uri (texlive-ref "latex" "booktabs"))
dc08ede8 7515 (file-name (string-append name "-" version "-checkout"))
66d21335
RW
7516 (sha256
7517 (base32
7518 "1dqid48vgh25wmw8xzmx6x3pfgz1y9f0r8aza1yxq2mjny5yf68x"))))
7519 (build-system texlive-build-system)
7520 (arguments '(#:tex-directory "latex/booktabs"))
7521 (home-page "http://www.ctan.org/pkg/booktabs")
7522 (synopsis "Publication quality tables in LaTeX")
7523 (description
7524 "This package enhances the quality of tables in LaTeX, providing extra
7525commands as well as behind-the-scenes optimisation. Guidelines are given as
7526to what constitutes a good table in this context. The package offers
7527@code{longtable} compatibility.")
7528 (license license:lppl1.3+)))
a1d369f1
RW
7529
7530(define-public texlive-csquotes
7531 (let ((template (simple-texlive-package
7532 "texlive-csquotes"
7533 (list "/doc/latex/csquotes/"
7534 "/tex/latex/csquotes/")
7535 (base32
37465b5b 7536 "088gvi60d7sdl6fgg68fbz30fnpqc3yrpkx80sfw7vwgar3wm3av")
a1d369f1
RW
7537 #:trivial? #t)))
7538 (package
7539 (inherit template)
7540 (propagated-inputs
7541 `(("texlive-etoolbox" ,texlive-etoolbox)))
7542 (home-page "https://www.ctan.org/pkg/csquotes")
7543 (synopsis "Context sensitive quotation facilities")
7544 (description "This package provides advanced facilities for inline and
7545display quotations. It is designed for a wide range of tasks ranging from the
7546most simple applications to the more complex demands of formal quotations.
7547The facilities include commands, environments, and user-definable 'smart
7548quotes' which dynamically adjust to their context. Quotation marks are
7549switched automatically if quotations are nested and they can be adjusted to
7550the current language if the babel package is available. There are additional
7551facilities designed to cope with the more specific demands of academic
7552writing, especially in the humanities and the social sciences. All quote
7553styles as well as the optional active quotes are freely configurable.")
7554 (license license:lppl1.3c+))))
b01c04eb
PG
7555
7556(define-public texlive-logreq
7557 (let ((template (simple-texlive-package
7558 "texlive-logreq"
7559 (list "/doc/latex/logreq/"
7560 "/tex/latex/logreq/")
7561 (base32
7562 "13difccs3cxlkqlnhw286yb0c7mifrxfd402a2x5wwxv0m1kgfqd")
7563 #:trivial? #t)))
7564 (package
7565 (inherit template)
7566 (propagated-inputs
7567 `(("texlive-etoolbox" ,texlive-etoolbox)))
7568 (home-page "https://www.ctan.org/pkg/logreq")
49bf16b6 7569 (synopsis "Support for automation of the LaTeX workflow")
b01c04eb
PG
7570 (description "The package helps to automate a typical LaTeX
7571workflow that involves running LaTeX several times and running tools
7572such as BibTeX or makeindex. It will log requests like \"please rerun
7573LaTeX\" or \"please run BibTeX on file X\" to an external file in a
7574machine-readable format. Compiler scripts and integrated LaTeX
7575editing environments may parse this file to determine the next steps
7576in the workflow. In sum, the package will do two things:
7577
7578@enumerate
7579@item
7580enable package authors to use LaTeX commands to issue requests, and
7581
7582@item
7583collect all requests from all packages and write them to an external
7584XML file.
7585@end enumerate\n")
7586 (license license:lppl1.3c))))
b1c1d7ef
PG
7587
7588(define-public texlive-biblatex
7589 (let ((template (simple-texlive-package
7590 "texlive-biblatex"
7591 (list "/doc/latex/biblatex/"
7592 "/tex/latex/biblatex/")
7593 (base32
7594 "11kzvny50iklzkamr0rqd5x532q8rxny1xhmf96jl8mzj1d2zmay")
7595 #:trivial? #t)))
7596 (package
7597 (inherit template)
7598 (propagated-inputs
7599 `(("texlive-logreq" ,texlive-logreq)
7600 ("texlive-url" ,texlive-url)))
7601 (home-page "https://www.ctan.org/pkg/biblatex")
7602 (synopsis "Sophisticated bibliographies in LaTeX")
7603 (description "BibLaTeX is a complete reimplementation of the
7604bibliographic facilities provided by LaTeX. Formatting of the
7605bibliography is entirely controlled by LaTeX macros, facilitating the
7606design of new bibliography and citation styles. BibLaTeX uses its own
7607data backend program \"biber\" to read and process the bibliographic
7608data. With biber, the range of features provided by biblatex
7609includes:
7610
7611@enumerate
7612@item
7613full unicode support,
7614
7615@item
7616customisable bibliography labels,
7617
7618@item
7619multiple bibliographies in the same document, and
7620
7621@item
7622subdivided bibliographies, such as bibliographies per chapter or
7623section.
7624@end enumerate\n")
7625 (license license:lppl1.3c))))
5674ea45
PG
7626
7627(define-public texlive-todonotes
7628 (let ((template (simple-texlive-package
7629 "texlive-todonotes"
7630 (list "/doc/latex/todonotes/"
7631 "/tex/latex/todonotes/")
7632 (base32
7633 "0lvxsskz4bdfxhd59hf77kiq8k4nh2spb66vc6hifdgi21z8r8wm")
7634 #:trivial? #t)))
7635 (package
7636 (inherit template)
7637 (propagated-inputs
7638 `(("texlive-latex-pgf" ,texlive-latex-pgf)
7639 ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
7640 (home-page "http://www.ctan.org/pkg/todonotes")
7641 (synopsis "Marking things to do in a LaTeX document")
7642 (description "The @code{todonotes} package lets the user mark
7643things to do later, in a simple and visually appealing way. The
7644package takes several options to enable customization and finetuning
7645of the visual appearance.")
7646 (license license:lppl1.3+))))
94ca1e19
PG
7647
7648(define-public texlive-units
7649 (let ((template (simple-texlive-package
7650 "texlive-units"
7651 (list "/doc/latex/units/"
7652 "/tex/latex/units/")
7653 (base32
7654 "1ia1vzy8dp7pdvmawwnmh9lmkajmpnnh62dixrjpb6mnxq118bfd")
7655 #:trivial? #t)))
7656 (package
7657 (inherit template)
7658 (home-page "http://www.ctan.org/pkg/units")
7659 (synopsis "Typeset physical units and fractions")
7660 (description "@code{units} is a package for typesetting physical
7661units in a standard-looking way. The package is based upon
7662@code{nicefrac}, a package for typing fractions. @code{nicefrac} is
7663included in the @code{units} bundle.")
7664 (license license:gpl3+))))
389b71aa
PG
7665
7666(define-public texlive-microtype
7667 (let ((template (simple-texlive-package
7668 "texlive-microtype"
7669 (list "/doc/latex/microtype/"
7670 "/tex/latex/microtype/")
7671 (base32
7672 "0xmjpzbj4nqmnl5m7xx1bshdk2c8n57rmbvn0j479ypj4wdlq9iy")
7673 #:trivial? #t)))
7674 (package
7675 (inherit template)
7676 (home-page "http://www.ctan.org/pkg/microtype")
7677 (synopsis "Subliminal refinements towards typographical perfection")
7678 (description "@code{microtype} provides a LaTeX interface to the
7679micro-typographic extensions that were introduced by pdfTeX and have
7680since propagated to XeTeX and LuaTeX: most prominently character
7681protrusion and font expansion, the adjustment of kerning and interword
7682spacing, hyphenatable letterspacing and the possibility to disable all
7683or selected ligatures. These features may be applied to customisable
7684sets of fonts. All micro-typographic aspects of the fonts can be
7685configured in a straight-forward and flexible way. Settings for
921fad1a
PG
7686various fonts are provided. An alternative package
7687@code{letterspace}, which also works with plain TeX, is included in
7688the bundle.")
389b71aa 7689 (license license:lppl1.3c))))
475e3768
PG
7690
7691(define-public texlive-caption
7692 (let ((template (simple-texlive-package
7693 "texlive-caption"
7694 (list "/doc/latex/caption/"
7695 "/tex/latex/caption/")
7696 (base32
7697 "09gmh8yjj9f5zak8r18g87w9p5jn7flnvmlhxmvdq6992mbdc6hg")
7698 #:trivial? #t)))
7699 (package
7700 (inherit template)
7701 (home-page "http://www.ctan.org/pkg/caption")
7702 (synopsis "Customising captions in floating environments")
7703 (description "The @code{caption} package provides many ways to
7704customise the captions in floating environments like figure and table.
7705Facilities include rotating captions, sideways captions and continued
7706captions (for tables or figures that come in several parts). A list
7707of compatibility notes, for other packages, is provided in the
7708documentation. The package also provides the \"caption outside
7709float\" facility, in the same way that simpler packages like
7710@code{capt-ofcapt-of} do. The package supersedes @code{caption2}.
7711Packages @code{bicaption}, @code{ltcaption}, @code{newfloat},
7712@code{subcaption} and @code{totalcount} are included in the bundle.")
7713 (license license:lppl1.3+))))
905a2ff0
PG
7714
7715(define-public texlive-symbol
7716 (package
7717 (inherit (simple-texlive-package
7718 "texlive-symbol"
7719 (list "/dvips/symbol/"
7720 "/fonts/afm/adobe/symbol/"
7721 "/fonts/afm/urw/symbol/"
7722 "/fonts/tfm/adobe/symbol/"
7723 "/fonts/tfm/urw35vf/symbol/"
7724 "/fonts/type1/urw/symbol/"
7725 "/fonts/map/dvips/symbol/"
7726 "/tex/latex/symbol/")
7727 (base32
7728 "01xiygb88xwi7rfvh1zrlxzi5pqb5fvylws5zzszg379iz4pyzwj")
7729 #:trivial? #t))
7730 (home-page "https://ctan.org/pkg/urw-base35")
7731 (synopsis "URW Base 35 font pack for LaTeX")
7732 (description "This package provides a drop-in replacement for the
7733Symbol font from Adobe's basic set.")
7734 (license license:gpl2)))
a489d2f1
PG
7735
7736(define-public texlive-mathpazo
7737 (package
7738 (inherit (simple-texlive-package
7739 "texlive-mathpazo"
7740 (list "/doc/latex/mathpazo/"
7741 "/fonts/afm/public/mathpazo/"
7742 "/fonts/tfm/public/mathpazo/"
6ca673b3
PG
7743 "/fonts/type1/public/mathpazo/"
7744 "/fonts/vf/public/mathpazo/")
a489d2f1 7745 (base32
6ca673b3 7746 "02in6hdnbnkz216mpy8g6fk3wmlls8nh5982vmg37vhbj77lk0rh")
a489d2f1
PG
7747 #:trivial? #t))
7748 (home-page "http://www.ctan.org/pkg/mathpazo")
7749 (synopsis "Fonts to typeset mathematics to match Palatino")
7750 (description "The Pazo Math fonts are a family of PostScript fonts
7751suitable for typesetting mathematics in combination with the Palatino
7752family of text fonts. The Pazo Math family is made up of five fonts
7753provided in Adobe Type 1 format. These contain glyphs that are
7754usually not available in Palatino and for which Computer Modern looks
7755odd when combined with Palatino. These glyphs include the uppercase
7756Greek alphabet in upright and slanted shapes, the lowercase Greek
7757alphabet in slanted shape, several mathematical glyphs and the
7758uppercase letters commonly used to represent various number sets.
7759LaTeX macro support is provided in package @code{psnfss}.")
7760 (license license:gpl3+)))
5bc041df
PG
7761
7762(define-public texlive-fpl
7763 (package
7764 (inherit (simple-texlive-package
7765 "texlive-fpl"
7766 (list "/doc/fonts/fpl/"
7767 "/source/fonts/fpl/"
7768 "/fonts/afm/public/fpl/"
7769 "/fonts/type1/public/fpl/")
7770 (base32
7771 "02gkl516z9kn8xqs269pdkqn37sxm8ib0pcs43s4rs2rhyyl5z68")
7772 #:trivial? #t))
7773 (home-page "https://www.ctan.org/pkg/fpl")
7774 (synopsis "SC and OsF fonts for URW Palladio L")
7775 (description "The FPL Fonts provide a set of SC/OsF fonts for URW
7776Palladio L which are compatible with the Palatino SC/OsF fonts from
7777Adobe. LaTeX use is enabled by the mathpazo package, which is part of
7778the @code{psnfss} distribution.")
7779 ;; Either LPPL version 1.0 or later, or GPL version 2
7780 (license (list license:lppl1.0+ license:gpl2))))
13354b3f
PG
7781
7782(define-public texlive-arev
7783 (package
7784 (inherit (simple-texlive-package
7785 "texlive-arev"
7786 (list "/doc/fonts/arev/"
7787 "/fonts/afm/public/arev/"
7788 "/fonts/enc/dvips/arev/"
7789 "/fonts/map/dvips/arev/"
7790 "/fonts/tfm/public/arev/"
7791 "/fonts/type1/public/arev/"
7792 "/fonts/vf/public/arev/"
7793 "/tex/latex/arev/")
7794 (base32
7795 "15wkgc48r52mjpymv6l7j9bl99kwxbvg3g1mi3qyq7nfm799dkxy")
7796 #:trivial? #t))
7797 (home-page "https://www.ctan.org/pkg/arev")
7798 (synopsis "Fonts and LaTeX support files for Arev Sans")
7799 (description "The @code{arev} package provides type 1 fonts,
7800virtual fonts and LaTeX packages for using Arev Sans in both text and
7801mathematics. Arev Sans is a derivative of Bitstream Vera Sans, adding
7802support for Greek and Cyrillic characters and a few variant letters
7803appropriate for mathematics. The font is primarily used in LaTeX for
7804presentations, particularly when using a computer projector. Arev
7805Sans has large x-height, \"open letters\", wide spacing and thick
7806stems. The style is very similar to the SliTeX font lcmss but
7807heavier. Arev is one of a very small number of sans-font mathematics
7808support packages. Others are cmbright, hvmath and kerkis.")
7809 (license (list license:silofl1.1 ;for Arev Sans
7810 license:lppl1.3a ;for TeX support files
a6f8e820 7811 license:gpl2)))) ;for ams-mdbch.sty
193f1816
PG
7812
7813(define-public texlive-mathdesign
7814 (package
7815 (inherit (simple-texlive-package
7816 "texlive-mathdesign"
7817 (list "/doc/fonts/mathdesign/"
7818 "/dvips/mathdesign/"
7819 "/fonts/enc/dvips/mathdesign/"
7820 "/fonts/map/dvips/mathdesign/"
7821 "/fonts/tfm/public/mathdesign/"
7822 "/fonts/type1/public/mathdesign/"
7823 "/fonts/vf/public/mathdesign/"
7824 "/tex/latex/mathdesign/")
7825 (base32
7826 "0jcby2sd0l3ank2drxc0qcf5d1cwa8idzh4g91h4nxk8zrzxj8nr")
7827 #:trivial? #t))
7828 (home-page "https://www.ctan.org/pkg/mathdesign")
7829 (synopsis "Mathematical fonts to fit with particular text fonts")
7830 (description "The Math Design project offers free mathematical
7831fonts that match with existing text fonts. To date, three free font
7832families are available: Adobe Utopia, URW Garamond and Bitstream
7833Charter. Mathdesign covers the whole LaTeX glyph set including AMS
7834symbols. Both roman and bold versions of these symbols can be used.
7835Moreover, there is a choice between three greek fonts (two of them
7836created by the Greek Font Society).")
7837 (license license:gpl2+)))
1b6e7157
PG
7838
7839(define-public texlive-bera
7840 (package
7841 (inherit (simple-texlive-package
7842 "texlive-bera"
7843 (list "/doc/fonts/bera/"
7844 "/fonts/afm/public/bera/"
7845 "/fonts/map/dvips/bera/"
7846 "/fonts/tfm/public/bera/"
7847 "/fonts/type1/public/bera/"
7848 "/fonts/vf/public/bera/"
7849 "/tex/latex/bera/")
7850 (base32
7851 "1pkmhhr6ah44xhipjr7nianv03hr4w4bn45xcvp264yw6ymqzqwr")
7852 #:trivial? #t))
7853 (home-page "https://www.ctan.org/pkg/bera")
7854 (synopsis "Bera fonts")
7855 (description "The @code{bera} package contains the Bera Type 1
7856fonts and files to use the fonts with LaTeX. Bera is a set of three
7857font families: Bera Serif (a slab-serif Roman), Bera Sans (a Frutiger
7858descendant) and Bera Mono (monospaced/typewriter). The Bera family is
7859a repackaging, for use with TeX, of the Bitstream Vera family.")
7860 (license license:silofl1.1)))
26133b1f
PG
7861
7862(define-public texlive-fourier
7863 (package
7864 (inherit (simple-texlive-package
7865 "texlive-fourier"
7866 (list "/doc/fonts/fourier/"
7867 "/fonts/afm/public/fourier/"
7868 "/fonts/map/dvips/fourier/"
7869 "/fonts/tfm/public/fourier/"
7870 "/fonts/type1/public/fourier/"
7871 "/fonts/vf/public/fourier/"
7872 "/tex/latex/fourier/")
7873 (base32
7874 "1vs2xdx6f6hd01zlslx3y93g3dsa7k3yhqpnhgkizgjmz0r9ipz1")
7875 #:trivial? #t))
7876 (home-page "https://www.ctan.org/pkg/fourier")
7877 (synopsis "Utopia fonts for LaTeX documents")
7878 (description "Fourier-GUTenberg is a LaTeX typesetting system
7879which uses Adobe Utopia as its standard base font. Fourier-GUTenberg
7880provides all complementary typefaces needed to allow Utopia based TeX
7881typesetting including an extensive mathematics set and several other
7882symbols. The system is absolutely stand-alone; apart from Utopia and
7883Fourier no other typefaces are required. Utopia is a registered
7884trademark of Adobe Systems Incorporated.")
7885 (license license:lppl)))
95ef58f0
PG
7886
7887(define-public texlive-utopia
7888 (package
7889 (inherit (simple-texlive-package
7890 "texlive-utopia"
7891 (list "/doc/fonts/utopia/"
7892 "/fonts/afm/adobe/utopia/"
7893 "/fonts/tfm/adobe/utopia/"
7894 "/fonts/type1/adobe/utopia/"
7895 "/fonts/vf/adobe/utopia/")
7896 (base32
7897 "113wgkfz4z0ls2grxxfj17l42a1yv9r5ipcd0156xnfsrqvqzxfc")
7898 #:trivial? #t))
7899 (home-page "https://www.ctan.org/pkg/utopia")
7900 (synopsis "Adobe Utopia fonts")
7901 (description "The Adobe Standard Encoding set of the Utopia font
7902family, as contributed to the X Consortium. The set comprises upright
7903and italic shapes in medium and bold weights. Macro support and
7904matching maths fonts are provided by the @code{fourier} and
7905@code{mathdesign} font packages.")
7906 (license (license:fsf-free
7907 "http://mirrors.ctan.org/fonts/utopia/README"))))
2d77c270
PG
7908
7909(define-public texlive-fontaxes
7910 (package
7911 (name "texlive-fontaxes")
7912 (version "1.0e")
7913 (source
7914 (origin
7915 (method svn-fetch)
7916 (uri (texlive-ref "latex" "fontaxes"))
7917 (file-name (string-append name "-" version "-checkout"))
7918 (sha256
7919 (base32
7920 "19mhp9l7cjw0sbq55c9lz0l2pffkyhyir3i63jqynifjmglbgkl7"))))
7921 (build-system texlive-build-system)
7922 (arguments '(#:tex-directory "latex/fontaxes"))
7923 (home-page "http://www.ctan.org/pkg/fontaxes")
7924 (synopsis "Additional font axes for LaTeX")
7925 (description "The @code{fontaxes} package adds several new font
7926axes on top of LaTeX's New Font Selection Scheme (NFSS). In
7927particular, it splits the shape axis into a primary and a secondary
7928shape axis and it adds three new axes to deal with the different
7929figure versions offered by many professional fonts.")
7930 (license license:lppl1.3+)))
71ca8fd4
PG
7931
7932(define-public texlive-mweights
7933 (package
7934 (inherit (simple-texlive-package
7935 "texlive-mweights"
7936 (list "/doc/latex/mweights/"
7937 "/tex/latex/mweights/")
7938 (base32
7939 "1k2xclk54q3xgn48hji23q52nivkzgwf0s30bmm6k83f7v57qv8h")
7940 #:trivial? #t))
7941 (home-page "https://www.ctan.org/pkg/mweights")
7942 (synopsis "Support for multiple-weight font packages")
7943 (description "Many font families available for use with LaTeX are
7944available at multiple weights. Many Type 1-oriented support packages
7945for such fonts re-define the standard @code{\\mddefault} or
7946@code{\\bfdefault} macros. This can create difficulties if the weight
7947desired for one font family is not available for another font family,
7948or if it differs from the weight desired for another font family. The
7949@code{mweights} package provides a solution to these difficulties.")
7950 (license license:lppl)))
c3c338e0
PG
7951
7952(define-public texlive-cabin
7953 (package
7954 (inherit (simple-texlive-package
7955 "texlive-cabin"
7956 (list "/doc/fonts/cabin/"
7957 "/fonts/enc/dvips/cabin/"
7958 "/fonts/map/dvips/cabin/"
7959 "/fonts/opentype/impallari/cabin/"
7960 "/fonts/tfm/impallari/cabin/"
7961 "/fonts/type1/impallari/cabin/"
7962 "/fonts/vf/impallari/cabin/"
7963 "/tex/latex/cabin/")
7964 (base32
7965 "0dfq9gqch80iyvp58spmpmqfc9h61sjvnddm81ba0af1p8ag8sfg")
7966 #:trivial? #t))
7967 (home-page "https://www.ctan.org/pkg/cabin")
7968 (synopsis "Humanist Sans Serif font with LaTeX support")
7969 (description "Cabin is a humanist sans with four weights, true
7970italics and small capitals. According to its designer, Pablo
7971Impallari, Cabin was inspired by the typefaces of Edward Johnston and
7972Eric Gill. Cabin incorporates modern proportions, optical adjustments
7973and some elements of the geometric sans. @code{cabin.sty} supports
7974use of the font under LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX. It uses
7975the @code{mweights} package to manage the user's view of all those
7976font weights. An @code{sfdefault} option is provided to enable Cabin
7977as the default text font. The @code{fontaxes} package is required for
7978use with [pdf]LaTeX.")
7979 (license (list license:silofl1.1 ;for Cabin
7980 license:lppl)))) ;for support files
e6988434
PG
7981
7982(define-public texlive-newtx
7983 (package
7984 (inherit (simple-texlive-package
7985 "texlive-newtx"
7986 (list "/doc/fonts/newtx/"
7987 "/fonts/afm/public/newtx/"
7988 "/fonts/enc/dvips/newtx/"
7989 "/fonts/map/dvips/newtx/"
7990 "/fonts/opentype/public/newtx/"
7991 "/fonts/tfm/public/newtx/"
7992 "/fonts/type1/public/newtx/"
7993 "/fonts/vf/public/newtx/"
7994 "/tex/latex/newtx/")
7995 (base32
7996 "0rqjj33m6xkhrjzjhf24kxdg61az5sqsbcl0m7xqkf4akqybn22d")
7997 #:trivial? #t))
7998 (home-page "https://www.ctan.org/pkg/newtx")
7999 (synopsis "Repackaging of the TX fonts with improved metrics")
8000 (description "The @code{newtx} bundle splits
8001@code{txfonts.sty} (from the TX fonts distribution) into two
8002independent packages, @code{newtxtext.sty} and @code{newtxmath.sty},
8003each with fixes and enhancements. @code{newtxmath}'s metrics have
8004been re-evaluated to provide a less tight appearance and to provide a
8005@code{libertine} option that substitutes Libertine italic and Greek
8006letters for the existing math italic and Greek glyphs, making a
8007mathematics package that matches Libertine text quite well.")
8008 (license license:lppl1.3)))
995f685e
PG
8009
8010(define-public texlive-xcharter
8011 (package
8012 (inherit (simple-texlive-package
8013 "texlive-xcharter"
8014 (list "/doc/fonts/xcharter/"
8015 "/fonts/afm/public/xcharter/"
8016 "/fonts/enc/dvips/xcharter/"
8017 "/fonts/map/dvips/xcharter/"
8018 "/fonts/opentype/public/xcharter/"
8019 "/fonts/tfm/public/xcharter/"
8020 "/fonts/type1/public/xcharter/"
8021 "/fonts/vf/public/xcharter/"
8022 "/tex/latex/xcharter/")
8023 (base32
8024 "0krm4h53lw7h9jbmv5nc89fm4x7i8l574aig1l4mw8w3ziknwmi7")
8025 #:trivial? #t))
8026 (home-page "https://www.ctan.org/pkg/xcharter")
8027 (synopsis "Extension of the Bitstream Charter fonts")
8028 (description "@code{xcharter} repackages Bitstream Charter with an
8029extended set of features. The extension provides small caps, oldstyle
8030figures and superior figures in all four styles, accompanied by LaTeX
8031font support files. The fonts themselves are provided in both Adobe
8032Type 1 and OTF formats, with supporting files as necessary.")
8033 (license (list (license:fsf-free
8034 "http://mirrors.ctan.org/fonts/xcharter/README")
8035 license:lppl1.3))))
9153e12d
PG
8036
8037(define-public texlive-ly1
8038 (package
8039 (inherit (simple-texlive-package
8040 "texlive-ly1"
8041 (list "/doc/fonts/ly1/"
8042 "/fonts/enc/dvips/ly1/"
8043 "/fonts/map/dvips/ly1/"
8044 "/fonts/tfm/adobe/ly1/"
8045 "/fonts/vf/adobe/ly1/"
8046 "/tex/latex/ly1/")
8047 (base32
8048 "0wjyw0risgvrq97zfciglwy1f4msvfslln6pz0q8yzzx8wsv3zgq")
8049 #:trivial? #t))
8050 (home-page "https://www.ctan.org/pkg/ly1")
8051 (synopsis "Support for LY1 LaTeX encoding")
8052 (description "The legacy @emph{texnansi} (TeX and ANSI) encoding
8053is known in the LaTeX scheme of things as @emph{LY1} encoding. The
8054@code{ly1} bundle includes metrics and LaTeX macros to use the three
8055basic Adobe Type 1 fonts (Times, Helvetica and Courier) in LaTeX using
8056LY1 encoding.")
8057 (license license:lppl1.0+)))
a5bbd38f
PG
8058
8059(define-public texlive-kastrup
8060 (package
8061 (name "texlive-kastrup")
8062 (version (number->string %texlive-revision))
8063 (source
8064 (origin
8065 (method svn-fetch)
8066 (uri (texlive-ref "generic" "kastrup"))
8067 (file-name (string-append name "-" version "-checkout"))
8068 (sha256
8069 (base32
8070 "1kkshc48brkq2nx3rlbv78a2130izykbf33ri1q2shqr8pjfmmq8"))))
8071 (build-system texlive-build-system)
8072 (arguments
8073 '(#:tex-directory "generic/kastrup"
8074 #:phases
8075 (modify-phases %standard-phases
8076 (add-after 'unpack 'remove-generated-file
8077 (lambda _
8078 (delete-file "binhex.drv")
8079 #t)))))
8080 (home-page "http://www.ctan.org/pkg/binhex")
8081 (synopsis "Convert numbers into binary, octal and hexadecimal")
8082 (description "The @code{kastrup} package provides the
8083@emph{binhex.tex} file. This file provides expandable macros for both
8084fixed-width and minimum-width numbers to bases 2, 4, 8 and 16. All
8085constructs TeX accepts as arguments to its @code{\\number} primitive
8086are valid as arguments for the macros. The package may be used under
8087LaTeX and plain TeX.")
8088 (license (license:fsf-free "file:/binhex.dtx"))))