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