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