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