gnu: Add texlive-hyphen-english.
[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
5153431c
RW
1623(define-public texlive-hyph-utf8
1624 (package
1625 (inherit (simple-texlive-package
1626 "texlive-hyph-utf8"
1627 (list "/source/generic/hyph-utf8/"
1628 "/source/luatex/hyph-utf8/"
1629 "/doc/luatex/hyph-utf8/"
1630 "/tex/luatex/hyph-utf8/etex.src"
1631 ;; Used to extract luatex-hyphen.lua
1632 "/tex/latex/base/docstrip.tex"
1633
1634 ;; Documentation; we can't use the whole directory because
1635 ;; it includes files from other packages.
1636 "/doc/generic/hyph-utf8/CHANGES"
1637 "/doc/generic/hyph-utf8/HISTORY"
1638 "/doc/generic/hyph-utf8/hyph-utf8.pdf"
1639 "/doc/generic/hyph-utf8/hyph-utf8.tex"
1640 "/doc/generic/hyph-utf8/hyphenation-distribution.pdf"
1641 "/doc/generic/hyph-utf8/hyphenation-distribution.tex"
1642 "/doc/generic/hyph-utf8/img/miktex-languages.png"
1643 "/doc/generic/hyph-utf8/img/texlive-collection.png")
1644 (base32
1645 "10y8svgk68sivmgzrv8gv137r7kv49cs256cq2wja9ms437pxvbj")))
1646 (outputs '("out" "doc"))
1647 (build-system gnu-build-system)
1648 (arguments
1649 `(#:tests? #f ; there are none
1650 #:modules ((guix build gnu-build-system)
1651 (guix build utils)
1652 (ice-9 match))
1653 #:make-flags
1654 (list "-C" "source/luatex/hyph-utf8/"
1655 (string-append "DO_TEX = tex --interaction=nonstopmode '&tex' $<")
1656 (string-append "RUNDIR =" (assoc-ref %outputs "out") "/share/texmf-dist/tex/luatex/hyph-utf8/")
1657 (string-append "DOCDIR =" (assoc-ref %outputs "doc") "/share/texmf-dist/doc/luatex/hyph-utf8/")
1658 ;; hyphen.cfg is neither included nor generated, so let's only build the lua file.
1659 (string-append "UNPACKED = $(NAME).lua"))
1660 #:phases
1661 (modify-phases %standard-phases
1662 ;; TeX isn't usable at this point, so we first need to generate the
1663 ;; tex.fmt.
1664 (replace 'configure
1665 (lambda* (#:key inputs outputs #:allow-other-keys)
1666 ;; Target directories must exist.
1667 (mkdir-p (string-append (assoc-ref %outputs "out")
1668 "/share/texmf-dist/tex/luatex/hyph-utf8/"))
1669 (mkdir-p (string-append (assoc-ref %outputs "doc")
1670 "/share/texmf-dist/doc/luatex/hyph-utf8/"))
1671
1672 ;; We cannot build the documentation because that requires a
1673 ;; fully functional pdflatex, which depends on this package.
1674 (substitute* "source/luatex/hyph-utf8/Makefile"
1675 (("all: .*") "all: $(RUNFILES)\n"))
1676
1677 ;; Find required fonts for building tex.fmt
1678 (setenv "TFMFONTS"
1679 (string-append (assoc-ref inputs "texlive-fonts-cm")
1680 "/share/texmf-dist/fonts/tfm/public/cm:"
1681 (assoc-ref inputs "texlive-fonts-knuth-lib")
1682 "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
1683 ;; ...and find all tex files in this environment.
1684 (setenv "TEXINPUTS"
1685 (string-append
1686 (getcwd) ":"
1687 (string-join
1688 (map (match-lambda ((_ . dir) dir)) inputs)
1689 "//:")))
1690
1691 ;; Generate tex.fmt.
1692 (let ((where "source/luatex/hyph-utf8"))
1693 (mkdir-p where)
1694 (with-directory-excursion where
1695 (invoke "tex" "-ini"
1696 (string-append (assoc-ref inputs "texlive-tex-plain")
1697 "/share/texmf-dist/tex/plain/config/tex.ini"))))))
1698 (add-before 'build 'build-loaders-and-converters
1699 (lambda* (#:key outputs #:allow-other-keys)
1700 (let* ((root (string-append (assoc-ref outputs "out")
1701 "/share/texmf-dist"))
1702 (conv
1703 (string-append root
1704 "/tex/generic/hyph-utf8/conversions")))
1705
1706 ;; Build converters
1707 (mkdir-p conv)
1708 (with-directory-excursion "source/generic/hyph-utf8"
1709 (substitute* "generate-converters.rb"
1710 (("\\$path_root=File.*")
1711 (string-append "$path_root=\"" root "\"\n"))
1712 ;; Avoid error with newer Ruby.
1713 (("#1\\{%") "#1{%%"))
1714 (invoke "ruby" "generate-converters.rb"))
1715 #t)))
1716 (replace 'install
1717 (lambda* (#:key source outputs #:allow-other-keys)
1718 (let ((doc (assoc-ref outputs "doc"))
1719 (out (assoc-ref outputs "out")))
1720 (mkdir-p doc)
1721 (copy-recursively
1722 (string-append source "/doc")
1723 (string-append doc "/doc"))
1724 (install-file
1725 (string-append source "/tex/luatex/hyph-utf8/etex.src")
1726 (string-append out "/share/texmf-dist/tex/luatex/hyph-utf8/")))
1727 #t)))))
1728 (native-inputs
1729 `(("ruby" ,ruby)
1730 ("texlive-bin" ,texlive-bin)
1731 ;; The following packages are needed for build "tex.fmt", which we need
1732 ;; for a working "tex".
1733 ("texlive-tex-plain" ,texlive-tex-plain)
1734 ("texlive-fonts-cm" ,texlive-fonts-cm)
1735 ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)
1736 ("texlive-hyphen-base" ,texlive-hyphen-base)))
1737 (home-page "https://ctan.org/pkg/hyph-utf8")
1738 (synopsis "Hyphenation patterns expressed in UTF-8")
1739 (description "Modern native UTF-8 engines such as XeTeX and LuaTeX need
1740hyphenation patterns in UTF-8 format, whereas older systems require
1741hyphenation patterns in the 8-bit encoding of the font in use (such encodings
1742are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1,
1743etc). The present package offers a collection of conversions of existing
1744patterns to UTF-8 format, together with converters for use with 8-bit fonts in
1745older systems. Since hyphenation patterns for Knuthian-style TeX systems are
1746only read at iniTeX time, it is hoped that the UTF-8 patterns, with their
1747converters, will completely supplant the older patterns.")
1748 ;; Individual files each have their own license. Most of these files are
1749 ;; independent hyphenation patterns.
1750 (license (list license:lppl1.0+
1751 license:lppl1.2+
1752 license:lppl1.3
1753 license:lppl1.3+
1754 license:lppl1.3a+
1755 license:lgpl2.1
1756 license:lgpl2.1+
1757 license:lgpl3+
1758 license:gpl2+
1759 license:gpl3+
1760 license:mpl1.1
1761 license:asl2.0
1762 license:expat
1763 license:bsd-3
1764 license:cc0
1765 license:public-domain
1766 license:wtfpl2))))
1767
1768(define-public texlive-generic-hyph-utf8
1769 (deprecated-package "texlive-generic-hyph-utf8" texlive-hyph-utf8))
1770
e68c7091
RW
1771(define-public texlive-dehyph-exptl
1772 (package
1773 (inherit (simple-texlive-package
1774 "texlive-dehyph-exptl"
1775 (list "/tex/generic/dehyph-exptl/"
1776 "/doc/generic/dehyph-exptl/")
1777 (base32
1778 "1w2danvvy2f52hcb4acvjks53kcanwxr9s990fap6mj279hpgmh2")
1779 #:trivial? #t))
1780 (propagated-inputs
1781 `(("texlive-hyphen-base" ,texlive-hyphen-base)
1782 ("texlive-hyph-utf8" ,texlive-hyph-utf8)))
1783 (home-page "http://projekte.dante.de/Trennmuster/WebHome")
1784 (synopsis "Hyphenation patterns for German")
1785 (description "The package provides experimental hyphenation patterns for
1786the German language, covering both traditional and reformed orthography. The
1787patterns can be used with packages Babel and hyphsubst from the Oberdiek
1788bundle.")
1789 ;; Hyphenation patterns are under the Expat license; documentation is
1790 ;; under LPPL.
1791 (license (list license:expat license:lppl))))
1792
1793(define-public texlive-generic-dehyph-exptl
1794 (deprecated-package "texlive-generic-dehyph-exptl" texlive-dehyph-exptl))
1795
010f476f
RW
1796(define-public texlive-latex-base
1797 (let ((texlive-dir
1798 (lambda (dir hash)
1799 (origin
1800 (method svn-fetch)
1801 (uri (svn-reference
1802 (url (string-append "svn://www.tug.org/texlive/tags/"
1803 %texlive-tag "/Master/texmf-dist/"
1804 dir))
1805 (revision %texlive-revision)))
8d514ae7
EF
1806 (file-name (string-append "texlive-generic-"
1807 (last (string-split
1808 (string-drop-right dir 1) #\/))
1809 "-" (number->string %texlive-revision)
1810 "-checkout"))
010f476f
RW
1811 (sha256 (base32 hash))))))
1812 (package
1813 (name "texlive-latex-base")
1814 (version (number->string %texlive-revision))
1815 (source (origin
1816 (method svn-fetch)
1817 (uri (texlive-ref "latex" "base"))
8d514ae7 1818 (file-name (string-append name "-" version "-checkout"))
010f476f
RW
1819 (sha256
1820 (base32
d4d9a1ec 1821 "17bqrzzjz16k52sc7ydl4vw7ddy2z3g0p1xsk2c35h1ynq9h3wwm"))))
010f476f
RW
1822 (build-system gnu-build-system)
1823 (arguments
1824 `(#:modules ((guix build gnu-build-system)
1825 (guix build utils)
1826 (ice-9 match)
1827 (srfi srfi-1)
1828 (srfi srfi-26))
1829 #:tests? #f ; no tests
1830 #:phases
1831 (modify-phases %standard-phases
1832 (delete 'configure)
1833 (replace 'build
1834 (lambda* (#:key inputs #:allow-other-keys)
1835 ;; Find required fonts
1836 (setenv "TFMFONTS"
1837 (string-append (assoc-ref inputs "texlive-fonts-cm")
1838 "/share/texmf-dist/fonts/tfm/public/cm:"
1839 (assoc-ref inputs "texlive-fonts-latex")
1840 "/share/texmf-dist/fonts/tfm/public/latex-fonts:"
1841 (assoc-ref inputs "texlive-fonts-knuth-lib")
1842 "/share/texmf-dist/fonts/tfm/public/knuth-lib"))
1843 (setenv "TEXINPUTS"
1844 (string-append
1845 (getcwd) ":"
1846 (getcwd) "/build:"
1847 (string-join
6858ade2
RW
1848 (map (match-lambda ((_ . dir) dir)) inputs)
1849 "//:")))
010f476f
RW
1850
1851 ;; Create an empty texsys.cfg, because latex.ltx wants to include
1852 ;; it. This file must exist and it's fine if it's empty.
1853 (with-output-to-file "texsys.cfg"
1854 (lambda _ (format #t "%")))
1855
1856 (mkdir "build")
1857 (mkdir "web2c")
4f2f53f9
MW
1858 (invoke "luatex" "-ini" "-interaction=batchmode"
1859 "-output-directory=build" "unpack.ins")
1860 (invoke "tex" "-ini" "-interaction=batchmode"
1861 "-output-directory=web2c" "tex.ini")
1862 ;; LaTeX, pdfetex/pdftex, and XeTeX require e-TeX, which
1863 ;; is enabled only in extended mode (activated with a
1864 ;; leading asterisk). We should not use luatex here,
1865 ;; because that would make the generated format files
1866 ;; incompatible with any other TeX engine.
1867 (for-each (lambda (format)
1868 (invoke "latex" "-ini" "-interaction=batchmode"
1869 "-output-directory=web2c"
1870 "-translate-file=cp227.tcx"
1871 (string-append "*" format ".ini")))
1872 '("latex"
1873 "pdflatex"
1874 "pdfetex"))
1875 (for-each (lambda (format)
1876 (invoke format "-ini" "-interaction=batchmode"
1877 "-output-directory=web2c"
1878 (string-append "*" format ".ini")))
1879 '("xetex"
1880 "xelatex"))
1881 (for-each (lambda (format)
1882 (invoke "luatex" "-ini" "-interaction=batchmode"
1883 "-output-directory=web2c"
1884 (string-append format ".ini")))
1885 '("dviluatex" "dvilualatex" "luatex" "lualatex"))
1886 #t))
010f476f 1887 (replace 'install
756fc3e1 1888 (lambda* (#:key inputs outputs #:allow-other-keys)
010f476f
RW
1889 (let* ((out (assoc-ref outputs "out"))
1890 (target (string-append
1891 out "/share/texmf-dist/tex/latex/base"))
1892 (web2c (string-append
756fc3e1
PN
1893 out "/share/texmf-dist/web2c"))
1894 (support-files (assoc-ref inputs "texlive-latex-base-support-files")))
010f476f
RW
1895 (mkdir-p target)
1896 (mkdir-p web2c)
1897 (for-each delete-file (find-files "." "\\.(log|aux)$"))
1898 (for-each (cut install-file <> target)
1899 (find-files "build" ".*"))
1900 (for-each (cut install-file <> web2c)
1901 (find-files "web2c" ".*"))
bd6e2385
RW
1902 ;; pdftex is really just the same as pdfetex, but since it
1903 ;; doesn't have its own format file, we need to copy it.
1904 (copy-file "web2c/pdfetex.fmt"
1905 (string-append web2c "/pdftex.fmt"))
756fc3e1
PN
1906 ;; "source" is missing the support files as per doc/latex/base/manifest.txt.
1907 ;; FIXME: We are probably not packaging this right.
1908 (for-each (lambda (file)
1909 (install-file
1910 (string-append support-files "/" file)
1911 target))
1912 '("ltxguide.cls" "ltnews.cls" "minimal.cls" "idx.tex"
1913 "lablst.tex" "testpage.tex" "ltxcheck.tex"))
d68c8017
RW
1914 ;; Install configurations
1915 (copy-recursively
1916 (assoc-ref inputs "texlive-latex-latexconfig")
1917 (string-append out "/share/texmf-dist/tex/latex/latexconfig"))
1918 (copy-recursively
1919 (assoc-ref inputs "texlive-generic-config")
1920 (string-append out "/share/texmf-dist/tex/generic/config"))
1921 (copy-recursively
1922 (assoc-ref inputs "texlive-generic-hyphen")
1923 (string-append out "/share/texmf-dist/tex/generic/hyphen"))
1924 (copy-recursively
1925 (assoc-ref inputs "texlive-generic-ruhyphen")
1926 (string-append out "/share/texmf-dist/tex/generic/ruhyphen"))
1927 (copy-recursively
1928 (assoc-ref inputs "texlive-generic-ukrhyph")
1929 (string-append out "/share/texmf-dist/tex/generic/ukrhyph"))
010f476f
RW
1930 #t))))))
1931 (native-inputs
1932 `(("texlive-bin" ,texlive-bin)
1933 ("texlive-generic-unicode-data" ,texlive-generic-unicode-data)
1934 ("texlive-generic-dehyph-exptl" ,texlive-generic-dehyph-exptl)
1935 ("texlive-generic-tex-ini-files" ,texlive-generic-tex-ini-files)
1936 ("texlive-latex-latexconfig"
1937 ,(texlive-dir "tex/latex/latexconfig/"
1938 "1zb3j49cj8p75yph6c8iysjp7qbdvghwf0mn9j0l7qq3qkbz2xaf"))
010f476f
RW
1939 ("texlive-generic-hyphen"
1940 ,(texlive-dir "tex/generic/hyphen/"
1941 "0xim36wybw2625yd0zwlp9m2c2xrcybw58gl4rih9nkph0wqwwhd"))
1942 ("texlive-generic-ruhyphen"
1943 ,(texlive-dir "tex/generic/ruhyphen/"
1944 "14rjkpl4zkjqs13rcf9kcd24mn2kx7i1jbdwxq8ds94bi66ylzsd"))
1945 ("texlive-generic-ukrhyph"
1946 ,(texlive-dir "tex/generic/ukrhyph/"
1947 "1cfwdg2rhbayl3w0x1xqd36d45zbc96f029myp13s7cb6kbmbppv"))
1948 ("texlive-generic-config"
1949 ,(texlive-dir "tex/generic/config/"
d4d9a1ec 1950 "1v90iihy112q93zdpblpdk8zv8rf99fgslsg06s1sxm27zjm9nap"))
756fc3e1
PN
1951 ("texlive-latex-base-support-files"
1952 ,(origin
1953 (method svn-fetch)
1954 (uri (svn-reference
1955 (url (string-append "svn://www.tug.org/texlive/tags/"
1956 %texlive-tag "/Master/texmf-dist/"
1957 "/tex/latex/base"))
1958 (revision %texlive-revision)))
1959 (file-name (string-append name "-" version "-checkout"))
1960 (sha256
1961 (base32
d4d9a1ec 1962 "18wy8dlcw8adl6jzqwbg54pdwlhs8hilnfvqbw6ikj6y3zhqkj7q"))))
010f476f
RW
1963 ("texlive-tex-plain" ,texlive-tex-plain)
1964 ("texlive-fonts-cm" ,texlive-fonts-cm)
1965 ("texlive-fonts-latex" ,texlive-fonts-latex)
1966 ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)))
d68c8017
RW
1967 (propagated-inputs
1968 `(("texlive-generic-hyph-utf8" ,texlive-generic-hyph-utf8)))
b8d8806b 1969 (home-page "https://www.ctan.org/pkg/latex-base")
010f476f
RW
1970 (synopsis "Base sources of LaTeX")
1971 (description
1972 "This bundle comprises the source of LaTeX itself, together with several
1973packages which are considered \"part of the kernel\". This bundle, together
1974with the required packages, constitutes what every LaTeX distribution should
1975contain.")
1976 (license license:lppl1.3c+))))
1977
3e485ed2
RW
1978(define-public texlive-latex-filecontents
1979 (package
1980 (name "texlive-latex-filecontents")
1981 (version (number->string %texlive-revision))
1982 (source (origin
1983 (method svn-fetch)
1984 (uri (texlive-ref "latex" "filecontents"))
7e353a77 1985 (file-name (string-append name "-" version "-checkout"))
3e485ed2
RW
1986 (sha256
1987 (base32
1988 "0swkbxv8vg0yizadfnvrwjb4cj0pn34v9wm6v7wqq903fdav7k7q"))))
1989 (build-system texlive-build-system)
1990 (arguments '(#:tex-directory "latex/filecontents"))
b8d8806b 1991 (home-page "https://www.ctan.org/pkg/filecontents")
3e485ed2
RW
1992 (synopsis "Extended filecontents and filecontents* environments")
1993 (description
1994 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments
1995enable a LaTeX source file to generate external files as it runs through
1996LaTeX. However, there are two limitations of these environments: they refuse
1997to overwrite existing files, and they can only be used in the preamble of a
1998document. The filecontents package removes these limitations, letting you
1999overwrite existing files and letting you use @code{filecontents} /
2000@code{filecontents*} anywhere.")
2001 (license license:lppl1.3c+)))
2002
1193aa89
RW
2003(define-public texlive-generic-ifxetex
2004 (package
2005 (name "texlive-generic-ifxetex")
fea8eef3 2006 (version (number->string %texlive-revision))
1193aa89
RW
2007 (source (origin
2008 (method svn-fetch)
2009 (uri (texlive-ref "generic" "ifxetex"))
24dbc602 2010 (file-name (string-append name "-" version "-checkout"))
1193aa89
RW
2011 (sha256
2012 (base32
2013 "0w2xj7n0szavj329kds09q626szkc378p3w0sk022q0ln4ksz86d"))))
2014 (build-system texlive-build-system)
2015 (arguments
2016 '(#:tex-directory "generic/ifxetex"
2017 #:tex-format "xelatex"))
2018 (inputs
2019 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
b8d8806b 2020 (home-page "https://www.ctan.org/pkg/ifxetex")
1193aa89
RW
2021 (synopsis "Am I running under XeTeX?")
2022 (description
2023 "This is a simple package which provides an @code{\\ifxetex} conditional,
2024so that other code can determine that it is running under XeTeX. The package
beb476ed 2025requires the e-TeX extensions to the TeX primitive set.")
1193aa89
RW
2026 (license license:lppl1.3c+)))
2027
9186c156
RW
2028(define-public texlive-generic-epsf
2029 (package
2030 (name "texlive-generic-epsf")
2031 (version (number->string %texlive-revision))
2032 (source (origin
2033 (method svn-fetch)
2034 (uri (svn-reference
2035 (url (string-append "svn://www.tug.org/texlive/tags/"
2036 %texlive-tag "/Master/texmf-dist/"
2037 "/tex/generic/epsf"))
2038 (revision %texlive-revision)))
ca61c6b3 2039 (file-name (string-append name "-" version "-checkout"))
9186c156
RW
2040 (sha256
2041 (base32
2042 "14w3j81ympyvg8hkk9i1xgr8a0gfnfsb2ki8qqsk5pa051za1xcy"))))
2043 (build-system trivial-build-system)
2044 (arguments
2045 `(#:modules ((guix build utils))
2046 #:builder
2047 (begin
2048 (use-modules (guix build utils))
2049 (let ((target (string-append (assoc-ref %outputs "out")
2050 "/share/texmf-dist/tex/generic/epfs")))
2051 (mkdir-p target)
2052 (copy-recursively (assoc-ref %build-inputs "source") target)
2053 #t))))
b8d8806b 2054 (home-page "https://www.ctan.org/pkg/epsf")
9186c156
RW
2055 (synopsis "Simple macros for EPS inclusion")
2056 (description
2057 "This package provides the original (and now obsolescent) graphics
2058inclusion macros for use with dvips, still widely used by Plain TeX users (in
2059particular). For LaTeX users, the package is nowadays (rather strongly)
2060deprecated in favour of the more sophisticated standard LaTeX latex-graphics
2061bundle of packages. (The latex-graphics bundle is also available to Plain TeX
2062users, via its Plain TeX version.)")
2063 (license license:public-domain)))
2064
437822a1
RW
2065(define-public texlive-latex-fancyvrb
2066 (package
2067 (name "texlive-latex-fancyvrb")
2068 (version (number->string %texlive-revision))
2069 (source (origin
2070 (method svn-fetch)
2071 (uri (texlive-ref "latex" "fancyvrb"))
88e11022 2072 (file-name (string-append name "-" version "-checkout"))
437822a1
RW
2073 (sha256
2074 (base32
2075 "03l7140y031rr14h02i4z9zqsfvrbn7wzwxbjsrjcgrk6sdr71wv"))))
2076 (build-system texlive-build-system)
2077 (arguments
2078 '(#:tex-directory "latex/fancyvrb"
bae65dc4 2079 #:tex-format "latex"))
b8d8806b 2080 (home-page "https://www.ctan.org/pkg/fancyvrb")
437822a1
RW
2081 (synopsis "Sophisticated verbatim text")
2082 (description
2083 "This package provides tools for the flexible handling of verbatim text
2084including: verbatim commands in footnotes; a variety of verbatim environments
2085with many parameters; ability to define new customized verbatim environments;
2086save and restore verbatim text and environments; write and read files in
2087verbatim mode; build \"example\" environments (showing both result and
2088verbatim source).")
2089 (license license:lppl1.0+)))
2090
4eebd2cd
RW
2091(define-public texlive-latex-graphics
2092 (package
2093 (name "texlive-latex-graphics")
2094 (version (number->string %texlive-revision))
2095 (source (origin
2096 (method svn-fetch)
2097 (uri (texlive-ref "latex" "graphics"))
f7302073 2098 (file-name (string-append name "-" version "-checkout"))
4eebd2cd
RW
2099 (sha256
2100 (base32
d4d9a1ec 2101 "0nlfhn55ax89rcvpkrl9570671b62kcr4c9l5ch3w5zw9vmi00dz"))))
4eebd2cd
RW
2102 (build-system texlive-build-system)
2103 (arguments
2104 '(#:tex-directory "latex/graphics"
2105 #:phases
2106 (modify-phases %standard-phases
2107 (add-after 'install 'install-config
2108 (lambda* (#:key inputs outputs #:allow-other-keys)
2109 (let ((cfg (assoc-ref inputs "graphics-cfg"))
2110 (target (string-append (assoc-ref outputs "out")
2111 "/share/texmf-dist/tex/latex/graphics-cfg")))
2112 (mkdir-p target)
2113 (install-file (string-append cfg "/graphics.cfg") target)
2114 (install-file (string-append cfg "/color.cfg") target)
2115 #t)))
2116 (add-after 'install 'install-defs
2117 (lambda* (#:key inputs outputs #:allow-other-keys)
2118 (let ((def (assoc-ref inputs "graphics-def"))
2119 (target (string-append (assoc-ref outputs "out")
2120 "/share/texmf-dist/tex/latex/graphics-def")))
2121 (mkdir-p target)
2122 (copy-recursively def target)
2123 #t))))))
2124 (native-inputs
2125 `(("graphics-cfg"
2126 ,(origin
2127 (method git-fetch)
2128 (uri (git-reference
2129 (url "https://github.com/latex3/graphics-cfg.git")
2130 (commit "19d1238af17df376cd46333b229579b0f7f3a41f")))
f7302073
EF
2131 (file-name (string-append "graphics-cfg-"
2132 (number->string %texlive-revision)
2133 "-checkout"))
4eebd2cd
RW
2134 (sha256
2135 (base32
2136 "12kbgbm52gmmgn8zajb74s8n5rvnxcfdvs3iyj8vcw5vrsw5i6mh"))))
2137 ("graphics-def"
2138 ,(origin
2139 (method svn-fetch)
2140 (uri (svn-reference
2141 (url (string-append "svn://www.tug.org/texlive/tags/"
2142 %texlive-tag "/Master/texmf-dist/"
2143 "/tex/latex/graphics-def"))
2144 (revision %texlive-revision)))
f7302073
EF
2145 (file-name (string-append "graphics-def-"
2146 (number->string %texlive-revision)
2147 "-checkout"))
4eebd2cd
RW
2148 (sha256
2149 (base32
d4d9a1ec 2150 "17zpcgrfsr29g1dkz9np1qi63kjv7gb12rg979c6dai6qksbr3vq"))))))
b8d8806b 2151 (home-page "https://www.ctan.org/pkg/latex-graphics")
4eebd2cd
RW
2152 (synopsis "LaTeX standard graphics bundle")
2153 (description
2154 "This is a collection of LaTeX packages for producing color, including
2155graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX
2156documents. It comprises the packages color, graphics, graphicx, trig, epsfig,
2157keyval, and lscape.")
2158 ;; The configuration files are released under CC0.
2159 (license (list license:lppl1.3c+
2160 license:cc0))))
2161
f5a6af42
RW
2162(define-public texlive-latex-xcolor
2163 (package
2164 (name "texlive-latex-xcolor")
2165 (version (number->string %texlive-revision))
2166 (source (origin
2167 (method svn-fetch)
2168 (uri (texlive-ref "latex" "xcolor"))
19389bcd 2169 (file-name (string-append name "-" version "-checkout"))
f5a6af42
RW
2170 (sha256
2171 (base32
2172 "01n613s7bcrd2n4jfawm0k4nn2ny3aaifp2jjfif3lz4sbv31494"))))
2173 (build-system texlive-build-system)
2174 (arguments '(#:tex-directory "latex/xcolor"))
b8d8806b 2175 (home-page "https://www.ctan.org/pkg/xcolor")
f5a6af42
RW
2176 (synopsis "Driver-independent color extensions for LaTeX and pdfLaTeX")
2177 (description
2178 "The package starts from the basic facilities of the colorcolor package,
2179and provides easy driver-independent access to several kinds of color tints,
2180shades, tones, and mixes of arbitrary colors. It allows a user to select a
2181document-wide target color model and offers complete tools for conversion
2182between eight color models. Additionally, there is a command for alternating
2183row colors plus repeated non-aligned material (like horizontal lines) in
2184tables.")
2185 (license license:lppl1.2+)))
2186
4d660fdf
RW
2187(define-public texlive-latex-hyperref
2188 (package
2189 (name "texlive-latex-hyperref")
2190 (version "6.84a2")
2191 ;; The sources in the TeX Live SVN repository do not contain hluatex.dtx,
2192 ;; so we fetch the release from GitHub.
2193 (source (origin
2194 (method url-fetch)
2195 (uri (string-append "https://github.com/ho-tex/hyperref/"
2196 "archive/release-" version ".tar.gz"))
2197 (file-name (string-append name "-" version ".tar.gz"))
2198 (sha256
2199 (base32
2200 "1d3rmjgzh0025a1dza55zb6nzzlgd1y9snwx45wq1c1vf42m79h2"))))
2201 (build-system texlive-build-system)
2202 (arguments '(#:tex-directory "latex/hyperref"))
2a0bcbf4
RW
2203 (propagated-inputs
2204 `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek) ; for ltxcmds.sty
2205 ("texlive-latex-url" ,texlive-latex-url)))
b8d8806b 2206 (home-page "https://www.ctan.org/pkg/hyperref")
4d660fdf
RW
2207 (synopsis "Extensive support for hypertext in LaTeX")
2208 (description
c5a8ecb6
RW
2209 "The @code{hyperref} package is used to handle cross-referencing commands
2210in LaTeX to produce hypertext links in the document. The package provides
2211backends for the @code{\\special} set defined for HyperTeX DVI processors; for
2212embedded @code{pdfmark} commands for processing by Acrobat
2213Distiller (@code{dvips} and Y&Y's @code{dvipsone}); for Y&Y's @code{dviwindo};
2214for PDF control within pdfTeX and @code{dvipdfm}; for TeX4ht; and for VTeX's
2215pdf and HTML backends. The package is distributed with the @code{backref} and
2216@code{nameref} packages, which make use of the facilities of @code{hyperref}.")
4d660fdf
RW
2217 (license license:lppl1.3+)))
2218
c3455b7d
RW
2219(define-public texlive-latex-oberdiek
2220 (package
2221 (name "texlive-latex-oberdiek")
2222 (version (number->string %texlive-revision))
2223 (source (origin
2224 (method svn-fetch)
2225 (uri (texlive-ref "latex" "oberdiek"))
7dea3119 2226 (file-name (string-append name "-" version "-checkout"))
c3455b7d
RW
2227 (sha256
2228 (base32
d4d9a1ec 2229 "1m9fg8ddhpsl1212igr9a9fmj012lv780aghjn6fpidg2wqrffmn"))))
c3455b7d
RW
2230 (build-system texlive-build-system)
2231 (arguments
2232 '(#:tex-directory "latex/oberdiek"
05d28068 2233 #:build-targets '("oberdiek.ins")
c3455b7d
RW
2234 #:phases
2235 (modify-phases %standard-phases
05d28068 2236 ;; "ifpdf.ins" is not generated, so we need to process the dtx file.
c3455b7d
RW
2237 (add-after 'unpack 'do-not-process-ifpdf.ins
2238 (lambda _
2239 (substitute* "oberdiek.ins"
05d28068 2240 (("ifpdf.ins") "ifpdf.dtx"))
c3455b7d 2241 #t)))))
a9cd7b03
RW
2242 (propagated-inputs
2243 `(("texlive-generic-ifxetex" ,texlive-generic-ifxetex)))
b8d8806b 2244 (home-page "https://www.ctan.org/pkg/oberdiek")
c3455b7d
RW
2245 (synopsis "Bundle of packages submitted by Heiko Oberdiek")
2246 (description
2247 "The bundle comprises various LaTeX packages, providing among others:
2248better accessibility support for PDF files; extensible chemists reaction
2249arrows; record information about document class(es) used; and many more.")
2250 (license license:lppl1.3+)))
2251
f2536af2
RW
2252(define-public texlive-latex-tools
2253 (package
2254 (name "texlive-latex-tools")
2255 (version (number->string %texlive-revision))
2256 (source (origin
2257 (method svn-fetch)
2258 (uri (texlive-ref "latex" "tools"))
f8340ab1 2259 (file-name (string-append name "-" version "-checkout"))
f2536af2
RW
2260 (sha256
2261 (base32
d4d9a1ec 2262 "0vj7h1fgf1396h4qjdc2m07y08i54gbbfrxl8y327cn3r1n093s6"))))
f2536af2
RW
2263 (build-system texlive-build-system)
2264 (arguments
2265 '(#:tex-directory "latex/tools"
2266 #:build-targets '("tools.ins")))
b8d8806b 2267 (home-page "https://www.ctan.org/pkg/latex-tools")
f2536af2
RW
2268 (synopsis "LaTeX standard tools bundle")
2269 (description
2270 "This package is a collection of (variously) simple tools provided as
2271part of the LaTeX required tools distribution, comprising the following
2272packages: afterpage, array, bm, calc, dcolumn, delarray, enumerate, fileerr,
2273fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol,
2274rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim,
2275xr, and xspace.")
2276 (license license:lppl1.3+)))
2277
35adcc3a
RW
2278(define-public texlive-latex-url
2279 (package
2280 (name "texlive-latex-url")
2281 (version (number->string %texlive-revision))
2282 (source (origin
2283 (method svn-fetch)
2284 (uri (svn-reference
2285 (url (string-append "svn://www.tug.org/texlive/tags/"
2286 %texlive-tag "/Master/texmf-dist/"
2287 "/tex/latex/url"))
2288 (revision %texlive-revision)))
a26207f8 2289 (file-name (string-append name "-" version "-checkout"))
35adcc3a
RW
2290 (sha256
2291 (base32
2292 "184s2543cwia5l7iibhlkl1ffbncfhjpv5p56zq0c15by5sghlac"))))
2293 (build-system trivial-build-system)
2294 (arguments
2295 `(#:modules ((guix build utils))
2296 #:builder
2297 (begin
2298 (use-modules (guix build utils))
2299 (let ((target (string-append (assoc-ref %outputs "out")
2300 "/share/texmf-dist/tex/latex/url")))
2301 (mkdir-p target)
2302 (copy-recursively (assoc-ref %build-inputs "source") target)
2303 #t))))
2304 (home-page "https://www.ctan.org/pkg/url")
2305 (synopsis "Verbatim with URL-sensitive line breaks")
2306 (description "The command @code{\\url} is a form of verbatim command that
2307allows linebreaks at certain characters or combinations of characters, accepts
2308reconfiguration, and can usually be used in the argument to another command.
2309The command is intended for email addresses, hypertext links,
2310directories/paths, etc., which normally have no spaces, so by default the
2311package ignores spaces in its argument. However, a package option allows
2312spaces, which is useful for operating systems where spaces are a common part
2313of file names.")
2314 ;; The license header states that it is under LPPL version 2 or later, but
2315 ;; the latest version is 1.3c.
2316 (license license:lppl1.3c+)))
2317
a5b1ef84
RW
2318(define-public texlive-latex-l3kernel
2319 (package
2320 (name "texlive-latex-l3kernel")
2321 (version (number->string %texlive-revision))
2322 (source (origin
2323 (method svn-fetch)
2324 (uri (texlive-ref "latex" "l3kernel"))
f4a39a5b 2325 (file-name (string-append name "-" version "-checkout"))
a5b1ef84
RW
2326 (sha256
2327 (base32
d4d9a1ec 2328 "0p3fsxap1ilwjz356aq4s5ygwvdscis8bh93g8klf8mhrd8cr2jy"))))
a5b1ef84
RW
2329 (build-system texlive-build-system)
2330 (arguments
2331 '(#:tex-directory "latex/l3kernel"))
b8d8806b 2332 (home-page "https://www.ctan.org/pkg/l3kernel")
a5b1ef84
RW
2333 (synopsis "LaTeX3 programmers’ interface")
2334 (description
2335 "The l3kernel bundle provides an implementation of the LaTeX3
2336programmers’ interface, as a set of packages that run under LaTeX 2e. The
2337interface provides the foundation on which the LaTeX3 kernel and other future
2338code are built: it is an API for TeX programmers. The packages are set up so
2339that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
2340 (license license:lppl1.3c+)))
2341
cc09d48b
RW
2342(define-public texlive-latex-l3packages
2343 (package
2344 (name "texlive-latex-l3packages")
2345 (version (number->string %texlive-revision))
2346 (source (origin
2347 (method svn-fetch)
2348 (uri (texlive-ref "latex" "l3packages"))
b749aa98 2349 (file-name (string-append name "-" version "-checkout"))
cc09d48b
RW
2350 (sha256
2351 (base32
d4d9a1ec 2352 "0pyx0hffiyss363vv7fkrcdiaf7p099xnq0mngzqc7v8v9q849hs"))))
cc09d48b
RW
2353 (build-system texlive-build-system)
2354 (arguments
2355 '(#:tex-directory "latex/l3packages"
3d4908a7
PN
2356 ;; build-targets must be specified manually since they are in
2357 ;; sub-directories.
2358 #:build-targets '("l3keys2e.ins" "xparse.ins" "xfrac.ins" "xfp.ins" "xtemplate.ins")
cc09d48b
RW
2359 #:phases
2360 (modify-phases %standard-phases
2361 ;; All package sources are in sub-directories, so we need to add them
2362 ;; to TEXINPUTS.
2363 (add-after 'unpack 'set-TEXINPUTS
2364 (lambda _
2365 (let ((cwd (getcwd)))
2366 (setenv "TEXINPUTS"
2367 (string-append cwd "/l3keys2e:"
2368 cwd "/xparse:"
2369 cwd "/xfrac:"
2370 cwd "/xfp:"
3d4908a7
PN
2371 cwd "/xtemplate"
2372 ;; The terminating ":" is required to include the
2373 ;; l3kernel input as well.
2374 ":")))
2375 #t)))
2376 ))
2fea7041 2377 (propagated-inputs
cc09d48b 2378 `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
b8d8806b 2379 (home-page "https://www.ctan.org/pkg/l3packages")
cc09d48b
RW
2380 (synopsis "High-level LaTeX3 concepts")
2381 (description
2382 "This bundle holds prototype implementations of concepts for a LaTeX
2383designer interface, to be used with the experimental LaTeX kernel as
2384programming tools and kernel sup­port. Packages provided in this release are:
2385
2386@enumerate
2387@item l3keys2e, which makes the facilities of the kernel module l3keys
2388 available for use by LaTeX 2e packages;
2389@item xfrac, which provides flexible splitlevel fractions;
2390@item xparse, which provides a high-level interface for declaring document
2391 commands; and
2392@item xtemplate, which provides a means of defining generic functions using a
2393 key-value syntax.
2394@end enumerate\n")
2395 (license license:lppl1.3c+)))
2396
58308491
RW
2397(define-public texlive-latex-fontspec
2398 (package
2399 (name "texlive-latex-fontspec")
2400 (version (number->string %texlive-revision))
2401 (source (origin
2402 (method svn-fetch)
2403 (uri (texlive-ref "latex" "fontspec"))
634a4a7f 2404 (file-name (string-append name "-" version "-checkout"))
58308491
RW
2405 (sha256
2406 (base32
d4d9a1ec 2407 "1p0mkn6iywl0k4m9cx3hnhylpi499inisff3f72pcf349baqsnvq"))))
58308491
RW
2408 (build-system texlive-build-system)
2409 (arguments
9c45beb4
RW
2410 '(#:tex-directory "latex/fontspec"
2411 #:phases
2412 (modify-phases %standard-phases
2413 (add-after 'install 'install-default-fontspec.cfg
2414 (lambda* (#:key outputs #:allow-other-keys)
2415 (with-output-to-file
2416 (string-append (assoc-ref outputs "out")
2417 "/share/texmf-dist/tex/latex/fontspec/fontspec.cfg")
2418 (lambda _
2419 (display "\
2420%%% FONTSPEC.CFG %%%
2421%
2422% This configuration file sets up TeX Ligatures by default for all fonts loaded
2423% with `\\setmainfont` and `\\setsansfont`.
2424%
2425% In addition, `\\setmonofont` has default features to enforce \"monospace\"
2426% settings with regard to space stretchability and shrinkability.
2427
2428\\defaultfontfeatures
2429 [\\rmfamily,\\sffamily]
2430 {Ligatures=TeX}
2431
2432\\defaultfontfeatures
2433 [\\ttfamily]
2434 {WordSpace={1,0,0},
2435 HyphenChar=None,
2436 PunctuationSpace=WordSpace}
2437")))
2438 #t)))))
b80ecc5a
RW
2439 (propagated-inputs
2440 `(("texlive-latex-l3packages" ,texlive-latex-l3packages)))
b8d8806b 2441 (home-page "https://www.ctan.org/pkg/fontspec")
58308491
RW
2442 (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX")
2443 (description
2444 "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an
2445automatic and unified interface to feature-rich AAT and OpenType fonts through
2446the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires
2447the l3kernel and xparse bundles from the LaTeX 3 development team.")
2448 (license license:lppl1.3+)))
2449
e93f472d
RW
2450;; The SVN directory contains little more than a dtx file that generates three
2451;; of the many lua files that should be installed as part of this package.
2452;; This is why we take the release from GitHub instead.
2453(define-public texlive-luatex-lualibs
2454 (package
2455 (name "texlive-luatex-lualibs")
2456 (version "2.5")
2457 (source (origin
2458 (method url-fetch)
2459 (uri (string-append "https://github.com/lualatex/lualibs/"
2460 "releases/download/v"
2461 version "/lualibs.zip"))
01d79c30 2462 (file-name (string-append name "-" version ".zip"))
e93f472d
RW
2463 (sha256
2464 (base32
2465 "1xx9blvrmx9hyhrl345lpai9m6xxnw997261a1ahn1bm5r2j5fqy"))))
2466 (build-system gnu-build-system)
2467 (arguments
2468 `(#:make-flags
2469 (list (string-append "DESTDIR="
2470 (assoc-ref %outputs "out")
2471 "/share/texmf-dist"))
2472 #:phases
2473 (modify-phases %standard-phases
2474 (delete 'configure))))
2475 (native-inputs
2476 `(("texlive-bin" ,texlive-bin)
2477 ("unzip" ,unzip)
2478 ("zip" ,zip)))
2479 (home-page "https://github.com/lualatex/lualibs")
2480 (synopsis "Lua modules for general programming (in the (La)TeX world)")
2481 (description
2482 "Lualibs is a collection of Lua modules useful for general programming.
2483The bundle is based on Lua modules shipped with ConTeXt, and made available in
2484this bundle for use independent of ConTeXt.")
2485 ;; GPL version 2 only
2486 (license license:gpl2)))
2487
769bb5e5
RW
2488(define-public texlive-luatex-luaotfload
2489 (package
2490 (name "texlive-luatex-luaotfload")
2491 (version "2.8-fix-2")
2492 ;; The release tarball does not contain all source files.
2493 (source (origin
2494 (method git-fetch)
2495 (uri (git-reference
2496 (url "https://github.com/lualatex/luaotfload.git")
2497 (commit (string-append "v" version))))
2498 (file-name (git-file-name name version))
2499 (sha256
2500 (base32
2501 "0l5l7iq3dxcxl65qaghcpjg27yd9iw1sxa8pnd7xlvlm09dhfdnf"))))
2502 (build-system gnu-build-system)
2503 (arguments
2504 `(#:make-flags
2505 (list (string-append "DESTDIR="
2506 (assoc-ref %outputs "out")
2507 "/share/texmf-dist")
2508 "all")
2509 #:parallel-build? #f ; not supported
2510 #:phases
2511 (modify-phases %standard-phases
2512 (replace 'configure
2513 (lambda* (#:key inputs #:allow-other-keys)
2514 (substitute* "doc/Makefile"
2515 (("rst2man") "rst2man.py")
2516 ;; Don't build the PDF. This requires more of LaTeX.
2517 (("\\$\\(DOCPDF\\)") ""))
2518
2519 (substitute* "Makefile"
2520 ;; We don't build the PDF, so don't attempt to install it.
2521 (("cp \\$\\(RESOURCES\\) \\$\\(DOCPDF\\)")
2522 "cp $(RESOURCES)")
2523 (("= \\$\\(DOCPDF\\)") "= ")
2524 ;; Fix name of fontloader file
2525 (("^LOADER.*= \\$\\(BUILDDIR\\)/fontloader-\\$\\(shell date \\+%F\\).lua")
2526 "LOADER = $(BUILDDIR)/fontloader.lua"))
2527
2528 (mkdir "build")
2529
2530 ;; Don't download this file.
2531 (copy-file (assoc-ref inputs "glyphlist")
2532 "build/glyphlist.txt")
2533
2534 ;; Don't use git
2535 (let ((notes
2536 `((committer . "Philipp Gesang <phg@phi-gamma.net>")
2537 (description . ,version)
2538 (loader . "fontloader.lua")
2539 (revision . "ad480924393fffa2896156e1a32c22f5c61120dd")
2540 (timestamp . "2019-01-01 00:00:00 +0000"))))
2541 (substitute* "scripts/mkstatus"
2542 (("local notes.*=.*")
2543 (string-append "local notes = {"
2544 (string-join
2545 (map (lambda (entry)
2546 (format "[\"~a\"]=\"~a\","
2547 (symbol->string (car entry))
2548 (cdr entry)))
2549 notes))
2550 "}"))))
2551 #t)))))
2552 (native-inputs
2553 `(("zip" ,zip)
2554 ("unzip" ,unzip)
2555 ("graphviz" ,graphviz)
2556 ("lualatex" ,(texlive-union (list texlive-luatex-lualibs
2557 texlive-context-base)))
2558 ("python-docutils" ,python-docutils)
2559 ("glyphlist"
2560 ,(origin
2561 (method url-fetch)
2562 (uri (string-append "https://raw.githubusercontent.com/adobe-type-tools/"
2563 "agl-aglfn/b2a04cb906f9257cc06a2fe0ad4b3d663bc02136/"
2564 "glyphlist.txt"))
2565 (sha256
2566 (base32 "1s6svfw23rqzdvflv8frgd4xrwvrmsj8szwzqgcd39dp9rpjafjp"))))))
2567 (propagated-inputs
2568 `(("texlive-luatex-lualibs" ,texlive-luatex-lualibs)))
2569 (home-page "https://github.com/lualatex/luaotfload")
2570 (synopsis "OpenType font loader for LuaTeX")
2571 (description
2572 "Luaotfload is an adaptation of the ConTeXt font loading system for the
2573Plain and LaTeX formats. It allows OpenType fonts to be loaded with font
2574features accessible using an extended font request syntax while providing
2575compatibilitywith XeTeX. By indexing metadata in a database it facilitates
2576loading fonts by their proper names instead of file names.")
2577 ;; GPL version 2 only
2578 (license license:gpl2)))
2579
2573163a
RW
2580(define-public texlive-latex-amsmath
2581 (package
2582 (name "texlive-latex-amsmath")
2583 (version (number->string %texlive-revision))
2584 (source (origin
2585 (method svn-fetch)
2586 (uri (texlive-ref "latex" "amsmath"))
320c771a 2587 (file-name (string-append name "-" version "-checkout"))
2573163a
RW
2588 (sha256
2589 (base32
d4d9a1ec 2590 "0arvk7gn32mshnfdad5qkgf3i1arxq77k3vq7wnpm4nwnrzclxal"))))
2573163a
RW
2591 (build-system texlive-build-system)
2592 (arguments '(#:tex-directory "latex/amsmath"))
b8d8806b 2593 (home-page "https://www.ctan.org/pkg/amsmath")
2573163a
RW
2594 (synopsis "AMS mathematical facilities for LaTeX")
2595 (description
2596 "This is the principal package in the AMS-LaTeX distribution. It adapts
2597for use in LaTeX most of the mathematical features found in AMS-TeX; it is
2598highly recommended as an adjunct to serious mathematical typesetting in LaTeX.
2599When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold
2600symbols), @code{amsopnamsopn} (for operator names) and
2601@code{amstextamstext} (for text embedded in mathematics) are also loaded.
2602This package is part of the LaTeX required distribution; however, several
2603contributed packages add still further to its appeal; examples are
2604@code{empheqempheq}, which provides functions for decorating and highlighting
2605mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
2606definitions.")
2607 (license license:lppl1.3c+)))
2608
18e366e8
RW
2609(define-public texlive-latex-amscls
2610 (package
2611 (name "texlive-latex-amscls")
2612 (version (number->string %texlive-revision))
2613 (source (origin
2614 (method svn-fetch)
2615 (uri (texlive-ref "latex" "amscls"))
43059ed0 2616 (file-name (string-append name "-" version "-checkout"))
18e366e8
RW
2617 (sha256
2618 (base32
d4d9a1ec 2619 "0c2j9xh4qpi0x1vvcxdjxq6say0zhyr569fryi5cmhp8bclh4kca"))))
18e366e8
RW
2620 (build-system texlive-build-system)
2621 (arguments
2622 `(#:tex-directory "latex/amscls"))
b8d8806b 2623 (home-page "https://www.ctan.org/pkg/amscls")
18e366e8
RW
2624 (synopsis "AMS document classes for LaTeX")
2625 (description
2626 "This bundle contains three AMS classes: @code{amsartamsart} (for writing
2627articles for the AMS), @code{amsbookamsbook} (for books) and
2628@code{amsprocamsproc} (for proceedings), together with some supporting
2629material. The material is made available as part of the AMS-LaTeX
2630distribution.")
2631 (license license:lppl1.3c+)))
2632
f84d5a09
RW
2633(define-public texlive-latex-babel
2634 (package
2635 (name "texlive-latex-babel")
2636 (version (number->string %texlive-revision))
2637 (source (origin
2638 (method svn-fetch)
2639 (uri (texlive-ref "latex" "babel"))
8732493e 2640 (file-name (string-append name "-" version "-checkout"))
f84d5a09
RW
2641 (sha256
2642 (base32
d4d9a1ec 2643 "0yhlfiz3fjc8jd46f1zrjj4jig48l8rrzh8cmd8ammml8z9a01z6"))))
f84d5a09
RW
2644 (build-system texlive-build-system)
2645 (arguments
dcc8af4a 2646 '(#:tex-directory "generic/babel"
f84d5a09
RW
2647 #:phases
2648 (modify-phases %standard-phases
2649 ;; This package tries to produce babel.aux twice but refuses to
2650 ;; overwrite the first one.
2651 (add-before 'build 'fix-ins
2652 (lambda _
2653 (substitute* "babel.ins"
2654 (("askonceonly") "askforoverwritefalse"))
2655 #t)))))
b8d8806b 2656 (home-page "https://www.ctan.org/pkg/babel")
f84d5a09
RW
2657 (synopsis "Multilingual support for Plain TeX or LaTeX")
2658 (description
2659 "The package manages culturally-determined typographical (and other)
2660rules, and hyphenation patterns for a wide range of languages. A document may
2661select a single language to be supported, or it may select several, in which
2662case the document may switch from one language to another in a variety of
2663ways. Babel uses contributed configuration files that provide the detail of
2664what has to be done for each language. Users of XeTeX are advised to use the
2665polyglossia package rather than Babel.")
2666 (license license:lppl1.3+)))
2667
876a1980
RW
2668(define-public texlive-generic-babel-english
2669 (package
2670 (name "texlive-generic-babel-english")
2671 (version (number->string %texlive-revision))
2672 (source (origin
2673 (method svn-fetch)
2674 (uri (texlive-ref "generic" "babel-english"))
2675 (file-name (string-append name "-" version "-checkout"))
2676 (sha256
2677 (base32
2678 "1s404wbx91z5w65hm024kyl4h56zsa096irx18vsx8jvlmwsr5wc"))))
2679 (build-system texlive-build-system)
2680 (arguments '(#:tex-directory "generic/babel-english"))
b8d8806b 2681 (home-page "https://www.ctan.org/pkg/babel-english")
876a1980
RW
2682 (synopsis "Babel support for English")
2683 (description
2684 "This package provides the language definition file for support of
2685English in @code{babel}. Care is taken to select British hyphenation patterns
2686for British English and Australian text, and default (\"american\") patterns
2687for Canadian and USA text.")
2688 (license license:lppl1.3+)))
2689
6309d215
RW
2690(define-public texlive-generic-babel-german
2691 (package
2692 (name "texlive-generic-babel-german")
2693 (version (number->string %texlive-revision))
2694 (source (origin
2695 (method svn-fetch)
2696 (uri (texlive-ref "generic" "babel-german"))
2697 (file-name (string-append name "-" version "-checkout"))
2698 (sha256
2699 (base32
2700 "0h47s67gnhdaxfgbf8pirp5vw4z6rrhxl8zav803yjxka0096i3y"))))
2701 (build-system texlive-build-system)
2702 (arguments '(#:tex-directory "generic/babel-german"))
2703 (home-page "https://www.ctan.org/pkg/babel-german")
2704 (synopsis "Babel support for German")
2705 (description
2706 "This package provides the language definition file for support of German
2707in @code{babel}. It provides all the necessary macros, definitions and
2708settings to typeset German documents. The bundle includes support for the
2709traditional and reformed German orthography as well as for the Austrian and
2710Swiss varieties of German.")
2711 (license license:lppl1.3+)))
2712
93286d38
RW
2713(define-public texlive-latex-cyrillic
2714 (package
2715 (name "texlive-latex-cyrillic")
2716 (version (number->string %texlive-revision))
2717 (source (origin
2718 (method svn-fetch)
2719 (uri (texlive-ref "latex" "cyrillic"))
51bffe79 2720 (file-name (string-append name "-" version "-checkout"))
93286d38
RW
2721 (sha256
2722 (base32
d4d9a1ec 2723 "083xbwg7hrnlv47fkwvz8yjb830bhxx7y0mq7z7nz2f96y2ldr6b"))))
93286d38
RW
2724 (build-system texlive-build-system)
2725 (arguments
2726 '(#:tex-directory "latex/cyrillic"))
b8d8806b 2727 (home-page "https://www.ctan.org/pkg/latex-cyrillic")
93286d38
RW
2728 (synopsis "Support for Cyrillic fonts in LaTeX")
2729 (description
2730 "This bundle of macros files provides macro support (including font
2731encoding macros) for the use of Cyrillic characters in fonts encoded under the
2732T2* and X2 encodings. These encodings cover (between them) pretty much every
2733language that is written in a Cyrillic alphabet.")
2734 (license license:lppl1.3c+)))
2735
83fe6231
RW
2736(define-public texlive-latex-psnfss
2737 (package
2738 (name "texlive-latex-psnfss")
2739 (version (number->string %texlive-revision))
2740 (source (origin
2741 (method svn-fetch)
2742 (uri (texlive-ref "latex" "psnfss"))
b5b10f3b 2743 (file-name (string-append name "-" version "-checkout"))
83fe6231
RW
2744 (sha256
2745 (base32
2746 "1920dcq8613yzprasbg80fh4fcjcidvvl54wkx438nimyxcri7qz"))))
2747 (build-system texlive-build-system)
2748 (arguments '(#:tex-directory "latex/psnfss"))
b8d8806b 2749 (home-page "https://www.ctan.org/pkg/psnfss")
83fe6231
RW
2750 (synopsis "Font support for common PostScript fonts")
2751 (description
2752 "The PSNFSS collection includes a set of files that provide a complete
2753working setup of the LaTeX font selection scheme (NFSS2) for use with common
2754PostScript fonts. It covers the so-called \"Base\" fonts (which are built
2755into any Level 2 PostScript printing device and the Ghostscript interpreter)
2756and a number of free fonts. It provides font definition files, macros and
2757font metrics. The bundle as a whole is part of the LaTeX required set of
2758packages.")
2759 (license license:lppl1.2+)))
2760
bfcb9d4d
RW
2761;; For user profiles
2762(define-public texlive-base
2763 (let ((default-packages
2764 (list texlive-bin
2765 texlive-dvips
2766 texlive-fontname
2767 texlive-fonts-cm
2768 texlive-fonts-latex
2769 texlive-metafont-base
2770 texlive-latex-base
2771 ;; LaTeX packages from the "required" set.
2772 texlive-latex-amsmath
2773 texlive-latex-amscls
2774 texlive-latex-babel
2775 texlive-generic-babel-english
2776 texlive-latex-cyrillic
2777 texlive-latex-graphics
2778 texlive-latex-psnfss
2779 texlive-latex-tools)))
2780 (package
2781 (name "texlive-base")
2782 (version (number->string %texlive-revision))
2783 (source #f)
2784 (build-system trivial-build-system)
2785 (arguments
2786 '(#:builder
2787 (begin (mkdir (assoc-ref %outputs "out")))))
2788 (propagated-inputs
2789 (map (lambda (package)
2790 (list (package-name package) package))
2791 default-packages))
2792 (home-page (package-home-page texlive-bin))
2793 (synopsis "TeX Live base packages")
2794 (description "This is a very limited subset of the TeX Live distribution.
2795It includes little more than the required set of LaTeX packages.")
2796 (license (fold (lambda (package result)
2797 (match (package-license package)
2798 ((lst ...)
2799 (append lst result))
2800 ((? license:license? license)
2801 (cons license result))))
2802 '()
2803 default-packages)))))
2804
d7da2372 2805;; For use in package definitions only
cb7bc20a
RW
2806(define-public texlive-union
2807 (lambda* (#:optional (packages '()))
2808 "Return 'texlive-union' package which is a union of PACKAGES and the
2809standard LaTeX packages."
d7da2372
RW
2810 (let ((default-packages (match (package-propagated-inputs texlive-base)
2811 (((labels packages) ...) packages))))
2812 (package (inherit texlive-base)
cb7bc20a 2813 (name "texlive-union")
cb7bc20a
RW
2814 (build-system trivial-build-system)
2815 (arguments
2816 '(#:modules ((guix build union)
2817 (guix build utils)
2818 (guix build texlive-build-system)
2819 (guix build gnu-build-system)
2820 (guix build gremlin)
2821 (guix elf))
2822 #:builder
2823 (begin
2824 (use-modules (ice-9 match)
1a64a7b3 2825 (ice-9 popen)
cb7bc20a
RW
2826 (srfi srfi-26)
2827 (guix build union)
2828 (guix build utils)
2829 (guix build texlive-build-system))
2830 (let* ((out (assoc-ref %outputs "out"))
2831 (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf")))
1a64a7b3
RW
2832 ;; Build a modifiable union of all inputs (but exclude bash and
2833 ;; the updmap.cfg file)
cb7bc20a
RW
2834 (match (filter (match-lambda
2835 ((name . _)
1a64a7b3 2836 (not (member name '("bash" "updmap.cfg")))))
cb7bc20a
RW
2837 %build-inputs)
2838 (((names . directories) ...)
2839 (union-build (assoc-ref %outputs "out")
2840 directories
c58d1b5f
RW
2841 #:create-all-directories? #t
2842 #:log-port (%make-void-port "w"))))
cb7bc20a
RW
2843
2844 ;; The configuration file "texmf.cnf" is provided by the
2845 ;; "texlive-bin" package. We take it and override only the
2846 ;; setting for TEXMFROOT and TEXMF. This file won't be consulted
2847 ;; by default, though, so we still need to set TEXMFCNF.
2848 (substitute* texmf.cnf
2849 (("^TEXMFROOT = .*")
2850 (string-append "TEXMFROOT = " out "/share\n"))
2851 (("^TEXMF = .*")
2852 "TEXMF = $TEXMFROOT/share/texmf-dist\n"))
1a64a7b3
RW
2853 (setenv "PATH" (string-append
2854 (assoc-ref %build-inputs "bash") "/bin:"
2855 (assoc-ref %build-inputs "coreutils") "/bin:"
2856 (string-append out "/bin")))
cb7bc20a
RW
2857 (for-each
2858 (cut wrap-program <>
476f7fce
RW
2859 `("TEXMFCNF" ":" suffix (,(dirname texmf.cnf)))
2860 `("TEXMF" ":" suffix (,(string-append out "/share/texmf-dist"))))
cb7bc20a 2861 (find-files (string-append out "/bin") ".*"))
1a64a7b3
RW
2862
2863 ;; Remove invalid maps from config file.
2864 (let ((port (open-pipe* OPEN_WRITE "updmap-sys"
2865 "--syncwithtrees"
2866 "--nohash"
2867 (assoc-ref %build-inputs "updmap.cfg"))))
2868 (display "Y\n" port)
2869 (when (not (zero? (status:exit-val (close-pipe port))))
2870 (error "failed to filter updmap.cfg")))
2871 ;; Generate maps.
2872 (invoke "updmap-sys" "--force"
2873 (string-append out "/share/texmf-config/web2c/updmap.cfg"))
cb7bc20a
RW
2874 #t))))
2875 (inputs
2876 `(("bash" ,bash)
2877 ,@(map (lambda (package)
2878 (list (package-name package) package))
2879 (append default-packages packages))))
1a64a7b3
RW
2880 (native-inputs
2881 `(("coreutils" ,coreutils)
2882 ("sed" ,sed)
2883 ("updmap.cfg"
2884 ,(origin
2885 (method url-fetch)
2886 (uri (string-append "https://tug.org/svn/texlive/tags/"
2887 %texlive-tag "/Master/texmf-dist/web2c/updmap.cfg"
2888 "?revision=" (number->string %texlive-revision)))
2889 (file-name (string-append "updmap.cfg-"
2890 (number->string %texlive-revision)))
2891 (sha256
2892 (base32
2893 "06mwpy5i218g5k3sf4gba0fmxgas82hkzx9fhwn67z5ik37d8apq"))))))
cb7bc20a
RW
2894 (home-page (package-home-page texlive-bin))
2895 (synopsis "Union of TeX Live packages")
2896 (description "This package provides a subset of the TeX Live
2897distribution.")
2898 (license (fold (lambda (package result)
2899 (match (package-license package)
2900 ((lst ...)
2901 (append lst result))
2902 ((? license:license? license)
2903 (cons license result))))
2904 '()
2905 (append default-packages packages)))))))
2906
d7da2372 2907;; For use in package definitions only
9d4f8dc2
RW
2908(define-public texlive-tiny
2909 (package
2910 (inherit (texlive-union))
2911 (name "texlive-tiny")
2912 (description "This is a very limited subset of the TeX Live distribution.
2913It includes little more than the required set of LaTeX packages.")))
2914
60b5e228
RW
2915(define-public texlive-latex-amsrefs
2916 (package
2917 (name "texlive-latex-amsrefs")
2918 (version (number->string %texlive-revision))
2919 (source (origin
2920 (method svn-fetch)
2921 (uri (texlive-ref "latex" "amsrefs"))
2922 (file-name (string-append name "-" version "-checkout"))
2923 (sha256
2924 (base32
2925 "15i4k479dwrpr0kspmm70g1yn4p3dkh0whyzmr93hph9bggnh1i1"))))
2926 (build-system texlive-build-system)
2927 (arguments '(#:tex-directory "latex/amsrefs"))
b8d8806b 2928 (home-page "https://www.ctan.org/pkg/amsrefs")
60b5e228
RW
2929 (synopsis "LaTeX-based replacement for BibTeX")
2930 (description
2931 "Amsrefs is a LaTeX package for bibliographies that provides an archival
2932data format similar to the format of BibTeX database files, but adapted to
2933make direct processing by LaTeX easier. The package can be used either in
2934conjunction with BibTeX or as a replacement for BibTeX.")
2935 (license license:lppl1.3+)))
2936
3236599f
RW
2937(define-public texlive-latex-bigfoot
2938 (package
2939 (name "texlive-latex-bigfoot")
2940 (version (number->string %texlive-revision))
2941 (source (origin
2942 (method svn-fetch)
2943 (uri (texlive-ref "latex" "bigfoot"))
2944 (file-name (string-append name "-" version "-checkout"))
2945 (sha256
2946 (base32
2947 "092g8alnsdwlgl1isdnqrr32l161994295kadr1n05d81xgj5wnv"))))
2948 (build-system texlive-build-system)
2949 (arguments
2950 '(#:tex-directory "latex/bigfoot"
2951 #:phases
2952 (modify-phases %standard-phases
2953 (add-after 'unpack 'remove-generated-file
2954 (lambda _
2955 (for-each delete-file (find-files "." "\\.drv$"))
2956 #t)))))
b8d8806b 2957 (home-page "https://www.ctan.org/pkg/bigfoot")
3236599f
RW
2958 (synopsis "Footnotes for critical editions")
2959 (description
2960 "This package aims to provide a one-stop solution to requirements for
2961footnotes. It offers: Multiple footnote apparatus superior to that of
2962@code{manyfoot}. Footnotes can be formatted in separate paragraphs, or be run
2963into a single paragraph (this choice may be selected per footnote series);
2964Things you might have expected (such as @code{\\verb}-like material in
2965footnotes, and color selections over page breaks) now work. Note that the
2966majority of the bigfoot package's interface is identical to that of
2967@code{manyfoot}; users should seek information from that package's
2968documentation. The bigfoot bundle also provides the @code{perpage} and
2969@code{suffix} packages.")
2970 (license license:gpl2+)))
2971
8e732b49
RW
2972(define-public texlive-latex-blindtext
2973 (package
2974 (name "texlive-latex-blindtext")
2975 (version (number->string %texlive-revision))
2976 (source (origin
2977 (method svn-fetch)
2978 (uri (texlive-ref "latex" "blindtext"))
2979 (file-name (string-append name "-" version "-checkout"))
2980 (sha256
2981 (base32
2982 "1jrja9b1pzdh9zgv1jh807w4xijqja58n2mqny6dkwicv8qfgbfg"))))
2983 (build-system texlive-build-system)
2984 (arguments '(#:tex-directory "latex/blindtext"))
b8d8806b 2985 (home-page "https://www.ctan.org/pkg/blindtext")
8e732b49
RW
2986 (synopsis "Producing 'blind' text for testing")
2987 (description
2988 "The package provides the commands @code{\\blindtext} and
2989@code{\\Blindtext} for creating \"blind\" text useful in testing new classes
2990and packages, and @code{\\blinddocument}, @code{\\Blinddocument} for creating
2991an entire random document with sections, lists, mathematics, etc. The package
2992supports three languages, @code{english}, @code{(n)german} and @code{latin};
2993the @code{latin} option provides a short \"lorem ipsum\" (for a fuller \"lorem
2994ipsum\" text, see the @code{lipsum} package).")
2995 (license license:lppl)))
2996
7cda03bd
RW
2997(define-public texlive-latex-dinbrief
2998 (package
2999 (name "texlive-latex-dinbrief")
3000 (version (number->string %texlive-revision))
3001 (source (origin
3002 (method svn-fetch)
3003 (uri (texlive-ref "latex" "dinbrief"))
3004 (file-name (string-append name "-" version "-checkout"))
3005 (sha256
3006 (base32
3007 "0lb0kiy8fxzl6cnhcw1sggy6jrjvcd6kj1kkw3k9lkimm388yjz6"))))
3008 (build-system texlive-build-system)
3009 (arguments
3010 '(#:tex-directory "latex/dinbrief"
3011 #:phases
3012 (modify-phases %standard-phases
3013 (add-after 'unpack 'remove-generated-file
3014 (lambda _
3015 (delete-file "dinbrief.drv")
d4d9a1ec
RW
3016 #t))
3017 (add-after 'unpack 'fix-encoding-error
3018 (lambda _
3019 (with-fluids ((%default-port-encoding "ISO-8859-1"))
3020 (substitute* "dinbrief.dtx"
3021 (("zur Verf.+ung. In der Pr\"aambel")
3022 "zur Verf\"ung. In der Pr\"aambel")))
7cda03bd 3023 #t)))))
b8d8806b 3024 (home-page "https://www.ctan.org/pkg/dinbrief")
7cda03bd
RW
3025 (synopsis "German letter DIN style")
3026 (description
3027 "This package implements a document layout for writing letters according
3028to the rules of DIN (Deutsches Institut für Normung, German standardisation
3029institute). A style file for LaTeX 2.09 (with limited support of the
3030features) is part of the package. Since the letter layout is based on a
3031German standard, the user guide is written in German, but most macros have
3032English names from which the user can recognize what they are used for. In
3033addition there are example files showing how letters may be created with the
3034package.")
3035 (license license:lppl)))
3036
de224adb
RW
3037(define-public texlive-latex-draftwatermark
3038 (package
3039 (name "texlive-latex-draftwatermark")
3040 (version (number->string %texlive-revision))
3041 (source (origin
3042 (method svn-fetch)
3043 (uri (texlive-ref "latex" "draftwatermark"))
3044 (file-name (string-append name "-" version "-checkout"))
3045 (sha256
3046 (base32
3047 "1zyl2pcz2x529gzj5m93a1s4ipymdabf7qdjl3l1673pizd4hfyv"))))
3048 (build-system texlive-build-system)
3049 (arguments '(#:tex-directory "latex/draftwatermark"))
b8d8806b 3050 (home-page "https://www.ctan.org/pkg/draftwatermark")
de224adb
RW
3051 (synopsis "Put a grey textual watermark on document pages")
3052 (description
3053 "This package provides a means to add a textual, light grey watermark on
3054every page or on the first page of a document. Typical usage may consist in
3055writing words such as DRAFT or CONFIDENTIAL across document pages. The
3056package performs a similar function to that of @code{draftcopy}, but its
3057implementation is output device independent, and made very simple by relying
3058on everypage.")
3059 (license license:lppl1.3+)))
3060
74e9c9a4
RW
3061(define-public texlive-latex-environ
3062 (package
3063 (name "texlive-latex-environ")
3064 (version (number->string %texlive-revision))
3065 (source (origin
3066 (method svn-fetch)
3067 (uri (texlive-ref "latex" "environ"))
3068 (file-name (string-append name "-" version "-checkout"))
3069 (sha256
3070 (base32
3071 "06h28b26dyjkj9shksphgqfv4130jfkwhbw737hxn7d3yvdfffyd"))))
3072 (build-system texlive-build-system)
3073 (arguments '(#:tex-directory "latex/environ"))
b8d8806b 3074 (home-page "https://www.ctan.org/pkg/environ")
74e9c9a4
RW
3075 (synopsis "New interface for environments in LaTeX")
3076 (description
09acbb02
RW
3077 "This package provides the @code{\\collect@@body} command (as in
3078@code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},
3079for collecting the body text of an environment. These commands are used to
3080define a new author interface to creating new environments.")
74e9c9a4
RW
3081 (license license:lppl)))
3082
adfa7a2a
RW
3083(define-public texlive-latex-eqparbox
3084 (package
3085 (name "texlive-latex-eqparbox")
3086 (version (number->string %texlive-revision))
3087 (source (origin
3088 (method svn-fetch)
3089 (uri (texlive-ref "latex" "eqparbox"))
3090 (file-name (string-append name "-" version "-checkout"))
3091 (sha256
3092 (base32
d4d9a1ec 3093 "1ib5xdwcj5wk23wgk41m2hdcjr1dzrs4l3wwnpink9mlapz12wjs"))))
adfa7a2a
RW
3094 (build-system texlive-build-system)
3095 (arguments '(#:tex-directory "latex/eqparbox"))
b8d8806b 3096 (home-page "https://www.ctan.org/pkg/eqparbox")
adfa7a2a
RW
3097 (synopsis "Create equal-widthed parboxes")
3098 (description
3099 "LaTeX users sometimes need to ensure that two or more blocks of text
3100occupy the same amount of horizontal space on the page. To that end, the
3101@code{eqparbox} package defines a new command, @code{\\eqparbox}, which works
3102just like @code{\\parbox}, except that instead of specifying a width, one
3103specifies a tag. All @code{eqparbox}es with the same tag---regardless of
3104where they are in the document---will stretch to fit the widest
3105@code{eqparbox} with that tag. This simple, equal-width mechanism can be used
3106for a variety of alignment purposes, as is evidenced by the examples in
3107@code{eqparbox}'s documentation. Various derivatives of @code{\\eqparbox} are
3108also provided.")
3109 (license license:lppl1.3+)))
3110
32e623d0
RW
3111(define-public texlive-latex-expdlist
3112 (package
3113 (name "texlive-latex-expdlist")
3114 (version (number->string %texlive-revision))
3115 (source (origin
3116 (method svn-fetch)
3117 (uri (texlive-ref "latex" "expdlist"))
3118 (file-name (string-append name "-" version "-checkout"))
3119 (sha256
3120 (base32
3121 "1x7byk6x10njir3y9rm56glhdzrxwqag7gsnw2sqn1czlq525w7r"))))
3122 (build-system texlive-build-system)
3123 (arguments
3124 '(#:tex-directory "latex/expdlist"
3125 #:phases
3126 (modify-phases %standard-phases
3127 (add-after 'unpack 'remove-generated-file
3128 (lambda _
3129 (for-each delete-file
3130 (find-files "." "\\.drv$"))
3131 #t)))))
b8d8806b 3132 (home-page "https://www.ctan.org/pkg/expdlist")
32e623d0
RW
3133 (synopsis "Expanded description environments")
3134 (description
3135 "The package provides additional features for the LaTeX
3136@code{description} environment, including adjustable left margin. The package
3137also allows the user to \"break\" a list (for example, to interpose a comment)
3138without affecting the structure of the list (this works for @code{itemize} and
3139@code{enumerate} lists, and numbered lists remain in sequence).")
3140 (license license:lppl)))
3141
893e3fc1
RW
3142(define-public texlive-latex-filemod
3143 (package
3144 (name "texlive-latex-filemod")
3145 (version (number->string %texlive-revision))
3146 (source (origin
3147 (method svn-fetch)
3148 (uri (svn-reference
3149 (url (string-append "svn://www.tug.org/texlive/tags/"
3150 %texlive-tag "/Master/texmf-dist/"
3151 "/tex/latex/filemod"))
3152 (revision %texlive-revision)))
681b579d 3153 (file-name (string-append name "-" version "-checkout"))
893e3fc1
RW
3154 (sha256
3155 (base32
3156 "0vpxilfw69xv78f03g0j0zw0bw4qcn36whqp8phcq48qk1ax2kr2"))))
3157 (build-system trivial-build-system)
3158 (arguments
3159 `(#:modules ((guix build utils))
3160 #:builder
3161 (begin
3162 (use-modules (guix build utils))
3163 (let ((target (string-append (assoc-ref %outputs "out")
3164 "/share/texmf-dist/tex/latex/filemod")))
3165 (mkdir-p target)
3166 (copy-recursively (assoc-ref %build-inputs "source") target)
3167 #t))))
b8d8806b 3168 (home-page "https://www.ctan.org/pkg/filemod")
893e3fc1
RW
3169 (synopsis "Provide file modification times, and compare them")
3170 (description
3171 "This package provides macros to read and compare the modification dates
3172of files. The files may be @code{.tex} files, images or other files (as long
3173as they can be found by LaTeX). It uses the @code{\\pdffilemoddate} primitive
3174of pdfLaTeX to find the file modification date as PDF date string, parses the
3175string and returns the value to the user. The package will also work for DVI
3176output with recent versions of the LaTeX compiler which uses pdfLaTeX in DVI
3177mode. The functionality is provided by purely expandable macros or by faster
3178but non-expandable ones.")
3179 (license license:lppl1.3+)))
3180
8c23f238
RW
3181(define-public texlive-latex-ifplatform
3182 (package
3183 (name "texlive-latex-ifplatform")
3184 (version (number->string %texlive-revision))
3185 (source (origin
3186 (method svn-fetch)
3187 (uri (texlive-ref "latex" "ifplatform"))
3188 (file-name (string-append name "-" version "-checkout"))
3189 (sha256
3190 (base32
d4d9a1ec 3191 "157pplavvm2z97b3jl4x41w11k6q9wgy074mfg0dwmsx5lm328jy"))))
8c23f238
RW
3192 (build-system texlive-build-system)
3193 (arguments '(#:tex-directory "latex/ifplatform"))
b8d8806b 3194 (home-page "https://www.ctan.org/pkg/ifplatform")
8c23f238
RW
3195 (synopsis "Conditionals to test which platform is being used")
3196 (description
3197 "This package uses the (La)TeX extension @code{-shell-escape} to
3198establish whether the document is being processed on a Windows or on a
3199Unix-like system, or on Cygwin (Unix environment over a Windows system).
3200Booleans provided are: @code{\\ifwindows}, @code{\\iflinux}, @code{\\ifmacosx}
3201and @code{\\ifcygwin}. The package also preserves the output of @code{uname}
3202on a Unix-like system, which may be used to distinguish between various
3203classes of systems.")
3204 (license license:lppl)))
3205
9b416042
RW
3206(define-public texlive-latex-natbib
3207 (package
3208 (name "texlive-latex-natbib")
3209 (version (number->string %texlive-revision))
3210 (source (origin
3211 (method svn-fetch)
3212 (uri (texlive-ref "latex" "natbib"))
23ae6e65 3213 (file-name (string-append name "-" version "-checkout"))
9b416042
RW
3214 (sha256
3215 (base32
3216 "0aqliq0nwblxyrzhwhv77pnmk7qh2y3prgq7z7qhwcbgz5kisld7"))))
3217 (build-system texlive-build-system)
3218 (arguments '(#:tex-directory "latex/natbib"))
b8d8806b 3219 (home-page "https://www.ctan.org/pkg/natbib")
9b416042
RW
3220 (synopsis "Flexible bibliography support")
3221 (description
3222 "This bundle provides a package that implements both author-year and
3223numbered references, as well as much detailed of support for other
3224bibliography use. Also provided are versions of the standard BibTeX styles
3225that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat},
3226@code{abbrnat}. The bibliography styles produced by @code{custom-bib} are
3227designed from the start to be compatible with @code{natbib}.")
3228 (license license:lppl)))
3229
d770d07f
RW
3230(define-public texlive-latex-psfrag
3231 (package
3232 (name "texlive-latex-psfrag")
3233 (version (number->string %texlive-revision))
3234 (source (origin
3235 (method svn-fetch)
3236 (uri (texlive-ref "latex" "psfrag"))
3237 (file-name (string-append name "-" version "-checkout"))
3238 (sha256
3239 (base32
3240 "1dxbl5il7wbbsp0v45vk884xi1192wxw03849pb1g5q4x808n352"))))
3241 (build-system texlive-build-system)
3242 (arguments '(#:tex-directory "latex/psfrag"))
b8d8806b 3243 (home-page "https://www.ctan.org/pkg/psfrag")
d770d07f
RW
3244 (synopsis "Replace strings in encapsulated PostScript figures")
3245 (description
3246 "This package allows LaTeX constructions (equations, picture
3247environments, etc.) to be precisely superimposed over Encapsulated PostScript
3248figures, using your own favorite drawing tool to create an EPS figure and
3249placing simple text \"tags\" where each replacement is to be placed, with
3250PSfrag automatically removing these tags from the figure and replacing them
3251with a user specified LaTeX construction, properly aligned, scaled, and/or
3252rotated.")
3253 (license (license:fsf-free "file://psfrag.dtx"))))
3254
d4d9a1ec
RW
3255(define-public texlive-latex-xkeyval
3256 (package
3257 (name "texlive-latex-xkeyval")
3258 (version (number->string %texlive-revision))
3259 (source (origin
3260 (method svn-fetch)
3261 (uri (texlive-ref "latex" "xkeyval"))
3262 (file-name (string-append name "-" version "-checkout"))
3263 (sha256
3264 (base32
3265 "0wancavix39j240pd8m9cgmwsijwx6jd6n54v8wg0x2rk5m44myp"))))
3266 (build-system texlive-build-system)
3267 (arguments '(#:tex-directory "latex/xkeyval"))
3268 (home-page "https://www.ctan.org/pkg/xkeyval")
3269 (synopsis "Macros for defining and setting keys")
3270 (description
3271 "This package is an extension of the @code{keyval} package and offers
3272more flexible macros for defining and setting keys. The package provides a
3273pointer and a preset system. Furthermore, it supplies macros to allow class
3274and package options to contain options of the @code{key=value} form. A LaTeX
3275kernel patch is provided to avoid premature expansions of macros in class or
3276package options. A specialized system for setting @code{PSTricks} keys is
3277provided by the @code{pst-xkey} package.")
3278 (license license:lppl1.3+)))
3279
5a1ee7d8
RW
3280(define-public texlive-latex-pstool
3281 (package
3282 (name "texlive-latex-pstool")
3283 (version (number->string %texlive-revision))
3284 (source (origin
3285 (method svn-fetch)
d4d9a1ec
RW
3286 (uri (svn-reference
3287 (url (string-append "svn://www.tug.org/texlive/tags/"
3288 %texlive-tag "/Master/texmf-dist/"
3289 "/tex/latex/pstool"))
3290 (revision %texlive-revision)))
5a1ee7d8
RW
3291 (file-name (string-append name "-" version "-checkout"))
3292 (sha256
3293 (base32
d4d9a1ec
RW
3294 "1h816jain8c9nky75kk8pmmwj5b4yf9dpqvdvi2l6jhfj5iqkzr8"))))
3295 (build-system trivial-build-system)
5a1ee7d8 3296 (arguments
d4d9a1ec
RW
3297 `(#:modules ((guix build utils))
3298 #:builder
3299 (begin
3300 (use-modules (guix build utils))
3301 (let ((target (string-append (assoc-ref %outputs "out")
3302 "/share/texmf-dist/tex/latex/pstool")))
3303 (mkdir-p target)
3304 (copy-recursively (assoc-ref %build-inputs "source") target)
3305 #t))))
5a1ee7d8 3306 (propagated-inputs
d4d9a1ec 3307 `(("texlive-latex-bigfoot" ,texlive-latex-bigfoot) ; for suffix
5a1ee7d8
RW
3308 ("texlive-latex-filemod" ,texlive-latex-filemod)
3309 ("texlive-latex-graphics" ,texlive-latex-graphics)
3310 ("texlive-latex-ifplatform" ,texlive-latex-ifplatform)
d4d9a1ec 3311 ("texlive-latex-l3kernel" ,texlive-latex-l3kernel) ; for expl3
5a1ee7d8
RW
3312 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
3313 ("texlive-latex-psfrag" ,texlive-latex-psfrag)
d4d9a1ec
RW
3314 ("texlive-latex-tools" ,texlive-latex-tools) ; for shellesc
3315 ("texlive-latex-trimspaces" ,texlive-latex-trimspaces)
3316 ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
b8d8806b 3317 (home-page "https://www.ctan.org/pkg/pstool")
d4d9a1ec 3318 (synopsis "Process PostScript graphics within pdfLaTeX documents")
5a1ee7d8
RW
3319 (description
3320 "This is a package for processing PostScript graphics with @code{psfrag}
3321labels within pdfLaTeX documents. Every graphic is compiled individually,
3322drastically speeding up compilation time when only a single figure needs
3323re-processing.")
3324 (license license:lppl)))
3325
171160d5
RW
3326(define-public texlive-latex-seminar
3327 (package
3328 (name "texlive-latex-seminar")
3329 (version (number->string %texlive-revision))
3330 (source (origin
3331 (method svn-fetch)
3332 (uri (svn-reference
3333 (url (string-append "svn://www.tug.org/texlive/tags/"
3334 %texlive-tag "/Master/texmf-dist/"
3335 "/tex/latex/seminar"))
3336 (revision %texlive-revision)))
a74ac06b 3337 (file-name (string-append name "-" version "-checkout"))
171160d5
RW
3338 (sha256
3339 (base32
3340 "0y4i651b75y6006n03x8n86bsqvjsailvvz9bhzy51dzsznqidq0"))))
1d4c2dab
RW
3341 (build-system trivial-build-system)
3342 (arguments
3343 `(#:modules ((guix build utils))
3344 #:builder
3345 (begin
3346 (use-modules (guix build utils))
3347 (let ((target (string-append (assoc-ref %outputs "out")
3348 "/share/texmf-dist/tex/latex/seminar")))
3349 (mkdir-p target)
3350 (copy-recursively (assoc-ref %build-inputs "source") target)
3351 #t))))
b8d8806b 3352 (home-page "https://www.ctan.org/pkg/seminar")
171160d5
RW
3353 (synopsis "Make overhead slides")
3354 ;; TODO: This package may need fancybox and xcomment at runtime.
3355 (description
3356 "This package provides a class that produces overhead
3357slides (transparencies), with many facilities. Seminar is not nowadays
3358reckoned a good basis for a presentation — users are advised to use more
3359recent classes such as powerdot or beamer, both of which are tuned to
336021st-century presentation styles.")
3361 (license license:lppl1.2+)))
3362
f3540dbd
RW
3363(define-public texlive-latex-trimspaces
3364 (package
3365 (name "texlive-latex-trimspaces")
3366 (version (number->string %texlive-revision))
3367 (source (origin
3368 (method svn-fetch)
3369 (uri (texlive-ref "latex" "trimspaces"))
70a71d19 3370 (file-name (string-append name "-" version "-checkout"))
f3540dbd
RW
3371 (sha256
3372 (base32
3373 "0da00lb32am4g63mn96625wg48p3pj3spx79lajrk17d549apwqa"))))
3374 (build-system texlive-build-system)
3375 (arguments
3376 '(#:tex-directory "latex/trimspaces"
3377 #:tex-format "latex"
3378 #:phases
3379 (modify-phases %standard-phases
3380 (add-after 'unpack 'fix-bug
3381 (lambda _
3382 ;; The "ins" file refers to the wrong source file.
3383 (substitute* "trimspaces.ins"
3384 (("pstool.tex") "trimspaces.tex"))
3385 #t)))))
3386 (inputs
3387 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
b8d8806b 3388 (home-page "https://www.ctan.org/pkg/trimspaces")
f3540dbd
RW
3389 (synopsis "Trim spaces around an argument or within a macro")
3390 (description
3391 "This very short package allows you to expandably remove spaces around a
3392token list (commands are provided to remove spaces before, spaces after, or
3393both); or to remove surrounding spaces within a macro definition, or to define
3394space-stripped macros.")
3395 (license license:lppl)))
3396
7709d4d8
RW
3397(define-public texlive-latex-capt-of
3398 (package
3399 (name "texlive-latex-capt-of")
3400 (version (number->string %texlive-revision))
3401 (source (origin
3402 (method svn-fetch)
3403 (uri (svn-reference
3404 (url (string-append "svn://www.tug.org/texlive/tags/"
3405 %texlive-tag "/Master/texmf-dist/"
3406 "/tex/latex/capt-of"))
3407 (revision %texlive-revision)))
3408 (file-name (string-append name "-" version "-checkout"))
3409 (sha256
3410 (base32
3411 "1y2s50f6lz0jx2748lj3iy56hrpcczgnbzmvphxv7aqndyyamd4x"))))
3412 (build-system trivial-build-system)
3413 (arguments
3414 `(#:modules ((guix build utils))
3415 #:builder
3416 (begin
3417 (use-modules (guix build utils))
3418 (let ((target (string-append (assoc-ref %outputs "out")
3419 "/share/texmf-dist/tex/latex/capt-of")))
3420 (mkdir-p target)
3421 (copy-recursively (assoc-ref %build-inputs "source") target)
3422 #t))))
b8d8806b 3423 (home-page "https://www.ctan.org/pkg/capt-of")
7709d4d8
RW
3424 (synopsis "Captions on more than floats")
3425 (description
3426 "This package defines a command @code{\\captionof} for putting a caption
3427to something that's not a float.")
3428 (license license:lppl)))
3429
49b2e86a
RW
3430(define-public texlive-latex-doi
3431 (package
3432 (name "texlive-latex-doi")
3433 (version (number->string %texlive-revision))
3434 (source (origin
3435 (method svn-fetch)
3436 (uri (svn-reference
3437 (url (string-append "svn://www.tug.org/texlive/tags/"
3438 %texlive-tag "/Master/texmf-dist/"
3439 "/tex/latex/doi"))
3440 (revision %texlive-revision)))
3441 (file-name (string-append name "-" version "-checkout"))
3442 (sha256
3443 (base32
3444 "0378rdmrgr2lzbfi4qqy4dfpj5im20diyd8z8b9m4mlg05r7wgnb"))))
3445 (build-system trivial-build-system)
3446 (arguments
3447 `(#:modules ((guix build utils))
3448 #:builder
3449 (begin
3450 (use-modules (guix build utils))
3451 (let ((target (string-append (assoc-ref %outputs "out")
3452 "/share/texmf-dist/tex/latex/doi")))
3453 (mkdir-p target)
3454 (copy-recursively (assoc-ref %build-inputs "source") target)
3455 #t))))
3456 (home-page "https://www.ctan.org/pkg/doi")
3457 (synopsis "Create correct hyperlinks for DOI numbers")
3458 (description
3459 "You can hyperlink DOI numbers to doi.org. However, some publishers have
3460elected to use nasty characters in their DOI numbering scheme (@code{<},
3461@code{>}, @code{_} and @code{;} have all been spotted). This will either
3462upset LaTeX, or your PDF reader. This package contains a single user-level
3463command @code{\\doi{}}, which takes a DOI number, and creates a correct
3464hyperlink to the target of the DOI.")
3465 ;; Any version of the LPPL.
3466 (license license:lppl1.3+)))
3467
a8ac7c0b
RW
3468(define-public texlive-latex-etoolbox
3469 (package
3470 (name "texlive-latex-etoolbox")
3471 (version (number->string %texlive-revision))
3472 (source (origin
3473 (method svn-fetch)
3474 (uri (svn-reference
3475 (url (string-append "svn://www.tug.org/texlive/tags/"
3476 %texlive-tag "/Master/texmf-dist/"
3477 "/tex/latex/etoolbox"))
3478 (revision %texlive-revision)))
3479 (file-name (string-append name "-" version "-checkout"))
3480 (sha256
3481 (base32
d4d9a1ec 3482 "1agmq6bf8wzcd77n20ng8bl4kh69cg5f6sjniii7bcw4llhd3nc8"))))
a8ac7c0b
RW
3483 (build-system trivial-build-system)
3484 (arguments
3485 `(#:modules ((guix build utils))
3486 #:builder
3487 (begin
3488 (use-modules (guix build utils))
3489 (let ((target (string-append (assoc-ref %outputs "out")
3490 "/share/texmf-dist/tex/latex/etoolbox")))
3491 (mkdir-p target)
3492 (copy-recursively (assoc-ref %build-inputs "source") target)
3493 #t))))
b8d8806b 3494 (home-page "https://www.ctan.org/pkg/etoolbox")
a8ac7c0b
RW
3495 (synopsis "e-TeX tools for LaTeX")
3496 (description
3497 "This package is a toolbox of programming facilities geared primarily
3498towards LaTeX class and package authors. It provides LaTeX frontends to some
3499of the new primitives provided by e-TeX as well as some generic tools which
3500are not strictly related to e-TeX but match the profile of this package. The
3501package provides functions that seem to offer alternative ways of implementing
3502some LaTeX kernel commands; nevertheless, the package will not modify any part
3503of the LaTeX kernel.")
3504 (license license:lppl1.3+)))
3505
17dce7e5
RW
3506(define-public texlive-latex-fncychap
3507 (package
3508 (name "texlive-latex-fncychap")
3509 (version (number->string %texlive-revision))
3510 (source (origin
3511 (method svn-fetch)
3512 (uri (svn-reference
3513 (url (string-append "svn://www.tug.org/texlive/tags/"
3514 %texlive-tag "/Master/texmf-dist/"
3515 "/tex/latex/fncychap"))
3516 (revision %texlive-revision)))
3517 (file-name (string-append name "-" version "-checkout"))
3518 (sha256
3519 (base32
3520 "0fdk84dbicfjfprkz6vk15x36mvlhaw9isjmgkc56jp2khwjswwq"))))
3521 (build-system trivial-build-system)
3522 (arguments
3523 `(#:modules ((guix build utils))
3524 #:builder
3525 (begin
3526 (use-modules (guix build utils))
3527 (let ((target (string-append (assoc-ref %outputs "out")
3528 "/share/texmf-dist/tex/latex/fncychap")))
3529 (mkdir-p target)
3530 (copy-recursively (assoc-ref %build-inputs "source") target)
3531 #t))))
b8d8806b 3532 (home-page "https://www.ctan.org/pkg/fncychap")
17dce7e5
RW
3533 (synopsis "Seven predefined chapter heading styles")
3534 (description
3535 "This package provides seven predefined chapter heading styles. Each
3536style can be modified using a set of simple commands. Optionally one can
3537modify the formatting routines in order to create additional chapter
3538headings.")
3539 (license license:lppl1.3+)))
3540
ef1e2ef0
RW
3541(define-public texlive-latex-framed
3542 (package
3543 (name "texlive-latex-framed")
3544 (version (number->string %texlive-revision))
3545 (source (origin
3546 (method svn-fetch)
3547 (uri (svn-reference
3548 (url (string-append "svn://www.tug.org/texlive/tags/"
3549 %texlive-tag "/Master/texmf-dist/"
3550 "/tex/latex/framed"))
3551 (revision %texlive-revision)))
3552 (file-name (string-append name "-" version "-checkout"))
3553 (sha256
3554 (base32
3555 "14a4ydqsvp3vcfavl21jrv0ybiqypaaqzg2q2cs3rzkandg7w98x"))))
3556 (build-system trivial-build-system)
3557 (arguments
3558 `(#:modules ((guix build utils))
3559 #:builder
3560 (begin
3561 (use-modules (guix build utils))
3562 (let ((target (string-append (assoc-ref %outputs "out")
3563 "/share/texmf-dist/tex/latex/framed")))
3564 (mkdir-p target)
3565 (copy-recursively (assoc-ref %build-inputs "source") target)
3566 #t))))
b8d8806b 3567 (home-page "https://www.ctan.org/pkg/framed")
ef1e2ef0
RW
3568 (synopsis "Framed or shaded regions that can break across pages")
3569 (description
3570 "The package creates three environments: @code{framed}, which puts an
3571ordinary frame box around the region, @code{shaded}, which shades the region,
3572and @code{leftbar}, which places a line at the left side. The environments
3573allow a break at their start (the @code{\\FrameCommand} enables creation of a
3574title that is “attached” to the environment); breaks are also allowed in the
3575course of the framed/shaded matter. There is also a command
3576@code{\\MakeFramed} to make your own framed-style environments.")
3577 ;; The header states: "These macros may be freely transmitted, reproduced,
3578 ;; or modified for any purpose provided that this notice is left intact."
3579 (license (license:fsf-free "file://framed.sty"))))
3580
588b5e96
RW
3581(define-public texlive-latex-g-brief
3582 (package
3583 (name "texlive-latex-g-brief")
3584 (version (number->string %texlive-revision))
3585 (source (origin
3586 (method svn-fetch)
3587 (uri (texlive-ref "latex" "g-brief"))
3588 (file-name (string-append name "-" version "-checkout"))
3589 (sha256
3590 (base32
3591 "0sikazkg0dpkcpzlbqw8qzxr81paf2f443vsrh14jnw7s4gswvc5"))))
3592 (build-system texlive-build-system)
3593 (arguments
3594 '(#:tex-directory "latex/g-brief"
3595 #:phases
3596 (modify-phases %standard-phases
3597 (add-after 'unpack 'remove-generated-file
3598 (lambda _
3599 (delete-file "g-brief.drv")
3600 #t)))))
b8d8806b 3601 (home-page "https://www.ctan.org/pkg/g-brief")
588b5e96
RW
3602 (synopsis "Letter document class")
3603 (description
3604 "This package is designed for formatting formless letters in German; it
3605can also be used for English (by those who can read the documentation). There
3606are LaTeX 2.09 @code{documentstyle} and LaTeX 2e class files for both an
3607\"old\" and a \"new\" version of g-brief.")
3608 (license license:lppl)))
3609
9b4d5c09
RW
3610(define-public texlive-latex-galois
3611 (package
3612 (name "texlive-latex-galois")
3613 (version (number->string %texlive-revision))
3614 (source (origin
3615 (method svn-fetch)
3616 (uri (texlive-ref "latex" "galois"))
3617 (file-name (string-append name "-" version "-checkout"))
3618 (sha256
3619 (base32
3620 "0d4l0msk8j5pi95xnmm9wygv1vbpkwkv5amx9l0km86cs79jpp1h"))))
3621 (build-system texlive-build-system)
3622 (arguments '(#:tex-directory "latex/galois"))
b8d8806b 3623 (home-page "https://www.ctan.org/pkg/galois")
9b4d5c09
RW
3624 (synopsis "Typeset Galois connections")
3625 (description
3626 "The package deals with connections in two-dimensional style, optionally
3627in colour.")
3628 (license license:lppl)))
3629
5f691e2e
RW
3630(define-public texlive-latex-gcite
3631 (package
3632 (name "texlive-latex-gcite")
3633 (version (number->string %texlive-revision))
3634 (source (origin
3635 (method svn-fetch)
3636 (uri (texlive-ref "latex" "gcite"))
3637 (file-name (string-append name "-" version "-checkout"))
3638 (sha256
3639 (base32
3640 "03g9by54yrypn599y98r1xh7qw0bbbmpzq0bfwpj6j5q5rkl1mfa"))))
3641 (build-system texlive-build-system)
3642 (arguments '(#:tex-directory "latex/gcite"))
b8d8806b 3643 (home-page "https://www.ctan.org/pkg/gcite")
5f691e2e
RW
3644 (synopsis "Citations in a reader-friendly style")
3645 (description
3646 "The package allows citations in the German style, which is considered by
3647many to be particularly reader-friendly. The citation provides a small amount
3648of bibliographic information in a footnote on the page where each citation is
3649made. It combines a desire to eliminate unnecessary page-turning with the
3650look-up efficiency afforded by numeric citations. The package makes use of
3651BibLaTeX, and is considered experimental.")
3652 (license license:lppl1.3+)))
3653
f47d1a52
RW
3654(define-public texlive-latex-geometry
3655 (package
3656 (name "texlive-latex-geometry")
3657 (version (number->string %texlive-revision))
3658 (source (origin
3659 (method svn-fetch)
3660 (uri (texlive-ref "latex" "geometry"))
3661 (file-name (string-append name "-" version "-checkout"))
3662 (sha256
3663 (base32
d4d9a1ec 3664 "0yw6bjfgsli3s1dldsgb7mkr7lnk329cgdjbgs8z2xn59pmmdsn4"))))
f47d1a52
RW
3665 (build-system texlive-build-system)
3666 (arguments '(#:tex-directory "latex/geometry"))
00a7af0e
RW
3667 (propagated-inputs
3668 `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek))) ;for ifpdf
b8d8806b 3669 (home-page "https://www.ctan.org/pkg/geometry")
f47d1a52
RW
3670 (synopsis "Flexible and complete interface to document dimensions")
3671 (description
3672 "This package provides an easy and flexible user interface to customize
3673page layout, implementing auto-centering and auto-balancing mechanisms so that
3674the users have only to give the least description for the page layout. The
3675package knows about all the standard paper sizes, so that the user need not
3676know what the nominal \"real\" dimensions of the paper are, just its standard
3677name (such as a4, letter, etc.). An important feature is the package's
3678ability to communicate the paper size it's set up to the output.")
3679 (license license:lppl)))
3680
d48091be
RW
3681(define-public texlive-latex-mdwtools
3682 (package
3683 (name "texlive-latex-mdwtools")
3684 (version (number->string %texlive-revision))
3685 (source (origin
3686 (method svn-fetch)
3687 (uri (texlive-ref "latex" "mdwtools"))
3688 (file-name (string-append name "-" version "-checkout"))
3689 (sha256
3690 (base32
3691 "0caxs74hla28hc67csf5i5ahadx97w8vxh3mdmsprxbpd1mr7ssg"))))
3692 (build-system texlive-build-system)
3693 (arguments '(#:tex-directory "latex/mdwtools"))
b8d8806b 3694 (home-page "https://www.ctan.org/pkg/mdwtools")
d48091be
RW
3695 (synopsis "Miscellaneous tools by Mark Wooding")
3696 (description
3697 "This collection of tools includes: @code{atsupport} for short commands
fb5dfa86
RW
3698starting with @code{@@}, macros to sanitize the OT1 encoding of the
3699@code{cmtt} fonts; a @code{doafter} command; improved @code{footnote} support;
d48091be
RW
3700@code{mathenv} for various alignment in maths; list handling; @code{mdwmath}
3701which adds some minor changes to LaTeX maths; a rewrite of LaTeX's tabular and
3702array environments; verbatim handling; and syntax diagrams.")
3703 (license license:gpl3+)))
3704
80bf1f21
RW
3705(define-public texlive-latex-polyglossia
3706 (package
3707 (name "texlive-latex-polyglossia")
3708 (version (number->string %texlive-revision))
3709 (source (origin
3710 (method svn-fetch)
3711 (uri (texlive-ref "latex" "polyglossia"))
3712 (file-name (string-append name "-" version "-checkout"))
3713 (sha256
3714 (base32
d4d9a1ec 3715 "03ma58z3ypsbp7zgkzb1ylpn2ygr27cxzkf042ns0rif4g8s491f"))))
80bf1f21
RW
3716 (build-system texlive-build-system)
3717 (arguments '(#:tex-directory "latex/polyglossia"))
b8d8806b 3718 (home-page "https://www.ctan.org/pkg/polyglossia")
80bf1f21
RW
3719 (synopsis "Alternative to babel for XeLaTeX and LuaLaTeX")
3720 (description
3721 "This package provides a complete Babel replacement for users of LuaLaTeX
3722and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least.")
3723 (license license:lppl1.3+)))
3724
84f8035a
RW
3725(define-public texlive-latex-supertabular
3726 (package
3727 (name "texlive-latex-supertabular")
3728 (version (number->string %texlive-revision))
3729 (source (origin
3730 (method svn-fetch)
3731 (uri (texlive-ref "latex" "supertabular"))
3732 (file-name (string-append name "-" version "-checkout"))
3733 (sha256
3734 (base32
3735 "14b2bc7cqz4ckxxycim9sw6jkrr1pahivm1rdbpz5k6hl967w1s3"))))
3736 (build-system texlive-build-system)
3737 (arguments '(#:tex-directory "latex/supertabular"))
b8d8806b 3738 (home-page "https://www.ctan.org/pkg/supertabular")
84f8035a
RW
3739 (synopsis "Multi-page tables package")
3740 (description
3741 "This package was a predecessor of @code{longtable}; the newer
3742package (designed on quite different principles) is easier to use and more
3743flexible, in many cases, but supertabular retains its usefulness in a few
3744situations where longtable has problems.")
3745 (license license:lppl1.3+)))
3746
a0aa6b59
RW
3747(define-public texlive-tex-texinfo
3748 (package
3749 (name "texlive-tex-texinfo")
3750 (version (number->string %texlive-revision))
3751 (source (origin
3752 (method svn-fetch)
3753 (uri (svn-reference
3754 (url (string-append "svn://www.tug.org/texlive/tags/"
3755 %texlive-tag "/Master/texmf-dist/"
3756 "/tex/texinfo"))
3757 (revision %texlive-revision)))
88ae1921 3758 (file-name (string-append name "-" version "-checkout"))
a0aa6b59
RW
3759 (sha256
3760 (base32
d4d9a1ec 3761 "06cf821y1j7jdg93pb41ayigrfwgn0y49d7w1025zlijjxi6bvjp"))))
a0aa6b59
RW
3762 (build-system trivial-build-system)
3763 (arguments
3764 `(#:modules ((guix build utils))
3765 #:builder
3766 (begin
3767 (use-modules (guix build utils))
3768 (let ((target (string-append (assoc-ref %outputs "out")
3769 "/share/texmf-dist/tex/texinfo")))
3770 (mkdir-p target)
3771 (copy-recursively (assoc-ref %build-inputs "source") target)
3772 #t))))
b8d8806b 3773 (home-page "https://www.ctan.org/pkg/texinfo")
a0aa6b59
RW
3774 (synopsis "TeX macros to handle Texinfo files")
3775 (description
3776 "Texinfo is the preferred format for documentation in the GNU project;
3777the format may be used to produce online or printed output from a single
3778source. The Texinfo macros may be used to produce printable output using TeX;
3779other programs in the distribution offer online interactive use (with
3780hypertext linkages in some cases).")
3781 (license license:gpl3+)))
3782
0de81b09
RW
3783(define-public texlive-latex-upquote
3784 (package
3785 (name "texlive-latex-upquote")
3786 (version (number->string %texlive-revision))
3787 (source (origin
3788 (method svn-fetch)
3789 (uri (texlive-ref "latex" "upquote"))
3790 (file-name (string-append name "-" version "-checkout"))
3791 (sha256
3792 (base32
3793 "0d1050i973wnxigy0xpky5l7vn4ff7ldhkjpdqsw5s653gagwixp"))))
3794 (build-system texlive-build-system)
3795 (arguments '(#:tex-directory "latex/upquote"))
b8d8806b 3796 (home-page "https://www.ctan.org/pkg/upquote")
0de81b09
RW
3797 (synopsis "Show \"realistic\" quotes in verbatim")
3798 (description
3799 "Typewriter-style fonts are best for program listings, but Computer
3800Modern Typewriter prints @code{`} and @code{'} as bent opening and closing
3801single quotes. Other fonts, and most programming languages, print @code{`} as
3802a grave accent and @code{'} upright; @code{'} is used both to open and to
3803close quoted strings. The package switches the typewriter font to Computer
3804Modern Typewriter in OT1 encoding, and modifies the behaviour of
3805@code{verbatim}, @code{verbatim*}, @code{\\verb}, and @code{\\verb*} to print
3806in the expected way. It does this regardless of other fonts or encodings in
3807use, so long as the package is loaded after the other fonts were. The package
3808does not affect @code{\\tt}, @code{\\texttt}, etc.")
3809 (license license:lppl1.2+)))
3810
bda61541
RW
3811(define-public texlive-latex-anysize
3812 (package
3813 (name "texlive-latex-anysize")
3814 (version (number->string %texlive-revision))
3815 (source (origin
3816 (method svn-fetch)
3817 (uri (svn-reference
3818 (url (string-append "svn://www.tug.org/texlive/tags/"
3819 %texlive-tag "/Master/texmf-dist/"
3820 "/tex/latex/anysize"))
3821 (revision %texlive-revision)))
de4eb4d1 3822 (file-name (string-append name "-" version "-checkout"))
bda61541
RW
3823 (sha256
3824 (base32
3825 "19khwqjlvznc955sijhww3c4zbb0053rvzwv9nz738qknq7y18vb"))))
3826 (build-system trivial-build-system)
3827 (arguments
3828 `(#:modules ((guix build utils))
3829 #:builder
3830 (begin
3831 (use-modules (guix build utils))
3832 (let ((target (string-append (assoc-ref %outputs "out")
3833 "/share/texmf-dist/tex/latex/anysize")))
3834 (mkdir-p target)
3835 (copy-recursively (assoc-ref %build-inputs "source") target)
3836 #t))))
b8d8806b 3837 (home-page "https://www.ctan.org/pkg/anysize")
bda61541
RW
3838 (synopsis "Simple package to set up document margins")
3839 (description
3840 "This is a simple package to set up document margins. This package is
3841considered obsolete; alternatives are the @code{typearea} package from the
3842@code{koma-script} bundle, or the @code{geometry} package.")
3843 (license license:public-domain)))
3844
1d3be84e
RW
3845(define-public texlive-latex-appendix
3846 (package
3847 (name "texlive-latex-appendix")
3848 (version (number->string %texlive-revision))
3849 (source (origin
3850 (method svn-fetch)
3851 (uri (texlive-ref "latex" "appendix"))
72d5adf4 3852 (file-name (string-append name "-" version "-checkout"))
1d3be84e
RW
3853 (sha256
3854 (base32
3855 "0rxfpr8vq3brwx5rc7qn91ixlp9zva4zrms8a579fqa1g5yva7vg"))))
3856 (build-system texlive-build-system)
3857 (arguments '(#:tex-directory "latex/appendix"))
b8d8806b 3858 (home-page "https://www.ctan.org/pkg/appendix")
1d3be84e
RW
3859 (synopsis "Extra control of appendices")
3860 (description
3861 "The appendix package provides various ways of formatting the titles of
3862appendices. Also (sub)appendices environments are provided that can be used,
3863for example, for per chapter/section appendices. An @code{appendices}
3864environment is provided which can be used instead of the @code{\\appendix}
3865command.")
3866 (license license:lppl)))
3867
b92ac281
RW
3868(define-public texlive-latex-changebar
3869 (package
3870 (name "texlive-latex-changebar")
3871 (version (number->string %texlive-revision))
3872 (source (origin
3873 (method svn-fetch)
3874 (uri (texlive-ref "latex" "changebar"))
af8aa105 3875 (file-name (string-append name "-" version "-checkout"))
b92ac281
RW
3876 (sha256
3877 (base32
d4d9a1ec 3878 "05x15ilynqrl448h8l6qiraygamdldlngz89a2bw7kg74fym14ch"))))
b92ac281
RW
3879 (build-system texlive-build-system)
3880 (arguments '(#:tex-directory "latex/changebar"))
b8d8806b 3881 (home-page "https://www.ctan.org/pkg/changebar")
b92ac281
RW
3882 (synopsis "Generate changebars in LaTeX documents")
3883 (description
3884 "Identify areas of text to be marked with changebars with the
3885@code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured. The
36a4366d
EF
3886package uses @code{drivers} to place the bars; the available drivers can work
3887with @code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI
b92ac281
RW
3888drivers, and VTeX and pdfTeX.")
3889 (license license:lppl)))
3890
fedd77c1
RW
3891(define-public texlive-latex-cmap
3892 (package
3893 (name "texlive-latex-cmap")
3894 (version (number->string %texlive-revision))
3895 (source (origin
3896 (method svn-fetch)
3897 (uri (svn-reference
3898 (url (string-append "svn://www.tug.org/texlive/tags/"
3899 %texlive-tag "/Master/texmf-dist/"
3900 "/tex/latex/cmap"))
3901 (revision %texlive-revision)))
3902 (file-name (string-append name "-" version "-checkout"))
3903 (sha256
3904 (base32
3905 "1s1rv6zgw105w2j6ffhnk914qrix87y1ndzri1q72g2kbr91zlbg"))))
3906 (build-system trivial-build-system)
3907 (arguments
3908 `(#:modules ((guix build utils))
3909 #:builder
3910 (begin
3911 (use-modules (guix build utils))
3912 (let ((target (string-append (assoc-ref %outputs "out")
3913 "/share/texmf-dist/tex/latex/cmap")))
3914 (mkdir-p target)
3915 (copy-recursively (assoc-ref %build-inputs "source") target)
3916 #t))))
3917 (home-page "https://www.tug.org/svn/texlive/tags/texlive-2017.1/\
3918Master/texmf-dist/tex/latex/cmap/")
3919 (synopsis "CMap support for PDF files")
3920 (description
3921 "This package embeds CMap tables into PDF files to make search and
3922copy-and-paste functions work properly.")
3923 (license license:lppl)))
3924
e003a5f0
RW
3925(define-public texlive-latex-colortbl
3926 (package
3927 (name "texlive-latex-colortbl")
3928 (version (number->string %texlive-revision))
3929 (source (origin
3930 (method svn-fetch)
3931 (uri (texlive-ref "latex" "colortbl"))
4439c1de 3932 (file-name (string-append name "-" version "-checkout"))
e003a5f0
RW
3933 (sha256
3934 (base32
3935 "190pmq8la2rq07xry8bn8z8yywzxv6fqyqaj7yjfj5rgw6x0mas8"))))
3936 (build-system texlive-build-system)
3937 (arguments '(#:tex-directory "latex/colortbl"))
b8d8806b 3938 (home-page "https://www.ctan.org/pkg/colortbl")
e003a5f0
RW
3939 (synopsis "Add colour to LaTeX tables")
3940 (description
3941 "This package allows rows, columns, and even individual cells in LaTeX
3942tables to be coloured.")
3943 (license license:lppl)))
3944
36ce05ff
RW
3945(define-public texlive-latex-fancybox
3946 (package
3947 (name "texlive-latex-fancybox")
3948 (version (number->string %texlive-revision))
3949 (source (origin
3950 (method svn-fetch)
3951 (uri (svn-reference
3952 (url (string-append "svn://www.tug.org/texlive/tags/"
3953 %texlive-tag "/Master/texmf-dist/"
3954 "/tex/latex/fancybox"))
3955 (revision %texlive-revision)))
62ee46b9 3956 (file-name (string-append name "-" version "-checkout"))
36ce05ff
RW
3957 (sha256
3958 (base32
3959 "0smmnaad2q8qwicay1frri990lv65l0k8cwzsvdsyp3jk8kp042w"))))
3960 (build-system trivial-build-system)
3961 (arguments
3962 `(#:modules ((guix build utils))
3963 #:builder
3964 (begin
3965 (use-modules (guix build utils))
3966 (let ((target (string-append (assoc-ref %outputs "out")
3967 "/share/texmf-dist/tex/latex/fancybox")))
3968 (mkdir-p target)
3969 (copy-recursively (assoc-ref %build-inputs "source") target)
3970 #t))))
b8d8806b 3971 (home-page "https://www.ctan.org/pkg/fancybox")
36ce05ff
RW
3972 (synopsis "Variants of \\fbox and other games with boxes")
3973 (description
3974 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},
3975@code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for
3976using box macros and flexible verbatim macros. You can box mathematics,
3977floats, center, flushleft, and flushright, lists, and pages.")
3978 (license license:lppl1.2+)))
3979
20282111
RW
3980(define-public texlive-latex-fancyhdr
3981 (package
3982 (name "texlive-latex-fancyhdr")
3983 (version (number->string %texlive-revision))
3984 (source (origin
3985 (method svn-fetch)
3986 (uri (svn-reference
3987 (url (string-append "svn://www.tug.org/texlive/tags/"
3988 %texlive-tag "/Master/texmf-dist/"
3989 "/tex/latex/fancyhdr"))
3990 (revision %texlive-revision)))
e89d5cf4 3991 (file-name (string-append name "-" version "-checkout"))
20282111
RW
3992 (sha256
3993 (base32
d4d9a1ec 3994 "1xsnzx7vgdfh9zh2m7bjz6bgdpxsgb1kyc19p50vhs34x5nbgsnr"))))
20282111
RW
3995 (build-system trivial-build-system)
3996 (arguments
3997 `(#:modules ((guix build utils))
3998 #:builder
3999 (begin
4000 (use-modules (guix build utils))
4001 (let ((target (string-append (assoc-ref %outputs "out")
4002 "/share/texmf-dist/tex/latex/fancyhdr")))
4003 (mkdir-p target)
4004 (copy-recursively (assoc-ref %build-inputs "source") target)
4005 #t))))
b8d8806b 4006 (home-page "https://www.ctan.org/pkg/fancyhdr")
20282111
RW
4007 (synopsis "Extensive control of page headers and footers in LaTeX2e")
4008 (description
4009 "The package provides extensive facilities, both for constructing headers
4010and footers, and for controlling their use (for example, at times when LaTeX
4011would automatically change the heading style in use).")
4012 (license license:lppl)))
4013
df2b9bb4
RW
4014(define-public texlive-latex-float
4015 (package
4016 (name "texlive-latex-float")
4017 (version (number->string %texlive-revision))
4018 (source (origin
4019 (method svn-fetch)
4020 (uri (texlive-ref "latex" "float"))
4fd0a591 4021 (file-name (string-append name "-" version "-checkout"))
df2b9bb4
RW
4022 (sha256
4023 (base32
4024 "0nbl7wylkv22fcdv4p8byhhj575fli6jnqjpkhrkbv8dzwah84nq"))))
4025 (build-system texlive-build-system)
4026 (arguments '(#:tex-directory "latex/float"))
b8d8806b 4027 (home-page "https://www.ctan.org/pkg/float")
df2b9bb4
RW
4028 (synopsis "Improved interface for floating objects")
4029 (description
4030 "This package improves the interface for defining floating objects such
4031as figures and tables. It introduces the boxed float, the ruled float and the
4032plaintop float. You can define your own floats and improve the behaviour of
4033the old ones. The package also provides the @code{H} float modifier option of
4034the obsolete @code{here} package. You can select this as automatic default
4035with @code{\\floatplacement{figure}{H}}.")
4036 (license license:lppl)))
4037
3921bc7c
RW
4038(define-public texlive-latex-footmisc
4039 (package
4040 (name "texlive-latex-footmisc")
4041 (version (number->string %texlive-revision))
4042 (source (origin
4043 (method svn-fetch)
4044 (uri (texlive-ref "latex" "footmisc"))
dae1d9e4 4045 (file-name (string-append name "-" version "-checkout"))
3921bc7c
RW
4046 (sha256
4047 (base32
4048 "03x61wwql8nh6zrqiiiq3rb0x7m3pn48c606zapy19y21fybwdxs"))))
4049 (build-system texlive-build-system)
4050 (arguments '(#:tex-directory "latex/footmisc"))
b8d8806b 4051 (home-page "https://www.ctan.org/pkg/footmisc")
3921bc7c
RW
4052 (synopsis "Range of footnote options")
4053 (description
4054 "This is a collection of ways to change the typesetting of footnotes.
4055The package provides means of changing the layout of the footnotes themselves,
4056a way to number footnotes per page, to make footnotes disappear in a
4057\"moving\" argument, and to deal with multiple references to footnotes from
4058the same place. The package also has a range of techniques for labelling
4059footnotes with symbols rather than numbers.")
4060 (license license:lppl1.3+)))
4061
b2bc1daf
RW
4062(define-public texlive-latex-listings
4063 (package
4064 (name "texlive-latex-listings")
4065 (version (number->string %texlive-revision))
4066 (source (origin
4067 (method svn-fetch)
4068 (uri (texlive-ref "latex" "listings"))
aeb135e3 4069 (file-name (string-append name "-" version "-checkout"))
b2bc1daf
RW
4070 (sha256
4071 (base32
4072 "1nsn9wp3wl12b36c0sqrim33lf33cr5wky0h4ncnw8lvqgm7h8wf"))))
4073 (build-system texlive-build-system)
4074 (arguments
4075 '(#:tex-directory "latex/listings"
4076 #:build-targets '("listings.ins")))
b8d8806b 4077 (home-page "https://www.ctan.org/pkg/listings")
b2bc1daf
RW
4078 (synopsis "Typeset source code listings using LaTeX")
4079 (description
4080 "The package enables the user to typeset programs (programming code)
4081within LaTeX; the source code is read directly by TeX---no front-end processor
4082is needed. Keywords, comments and strings can be typeset using different
4083styles. Support for @code{hyperref} is provided.")
4084 (license license:lppl1.3+)))
4085
02fd07b3
RW
4086(define-public texlive-latex-jknapltx
4087 (package
4088 (name "texlive-latex-jknapltx")
4089 (version (number->string %texlive-revision))
4090 (source (origin
4091 (method svn-fetch)
4092 (uri (svn-reference
4093 (url (string-append "svn://www.tug.org/texlive/tags/"
4094 %texlive-tag "/Master/texmf-dist/"
4095 "/tex/latex/jknapltx"))
4096 (revision %texlive-revision)))
aa499191 4097 (file-name (string-append name "-" version "-checkout"))
02fd07b3
RW
4098 (sha256
4099 (base32
4100 "0m034x72f2g07icr50gacyxfb9g1lz2rmqh4kqr1qjb421x2kds9"))))
4101 (build-system trivial-build-system)
4102 (arguments
4103 `(#:modules ((guix build utils))
4104 #:builder
4105 (begin
4106 (use-modules (guix build utils))
4107 (let ((target (string-append (assoc-ref %outputs "out")
4108 "/share/texmf-dist/tex/latex/jknapltx")))
4109 (mkdir-p target)
4110 (copy-recursively (assoc-ref %build-inputs "source") target)
4111 #t))))
b8d8806b 4112 (home-page "https://www.ctan.org/pkg/jknappen")
02fd07b3
RW
4113 (synopsis "Miscellaneous packages by Joerg Knappen")
4114 (description
4115 "This package provides miscellaneous macros by Joerg Knappen, including:
4116represent counters in greek; Maxwell's non-commutative division;
4117@code{latin1jk}, @code{latin2jk} and @code{latin3jk}, which are
4118@code{inputenc} definition files that allow verbatim input in the respective
4119ISO Latin codes; blackboard bold fonts in maths; use of RSFS fonts in maths;
4120extra alignments for @code{\\parboxes}; swap Roman and Sans fonts;
4121transliterate semitic languages; patches to make (La)TeX formulae embeddable
4122in SGML; use maths minus in text as appropriate; simple Young tableaux.")
4123 (license license:gpl2)))
4124
83c830d1
RW
4125(define-public texlive-fonts-ec
4126 (package
4127 (name "texlive-fonts-ec")
4128 (version (number->string %texlive-revision))
4129 (source (origin
4130 (method svn-fetch)
4131 (uri (svn-reference
4132 (url (string-append "svn://www.tug.org/texlive/tags/"
4133 %texlive-tag "/Master/texmf-dist/"
4134 "/fonts/source/jknappen/ec/"))
4135 (revision %texlive-revision)))
ca816eb3 4136 (file-name (string-append name "-" version "-checkout"))
83c830d1
RW
4137 (sha256
4138 (base32
4139 "12av65fbz9xiashm09c9m1fj1mijxls5xspd7652ry1n5s0nixy4"))))
4140 (build-system gnu-build-system)
4141 (arguments
4142 `(#:modules ((guix build gnu-build-system)
4143 (guix build utils)
4144 (srfi srfi-1)
4145 (srfi srfi-26))
4146 #:tests? #f ; no tests
4147 #:phases
4148 (modify-phases %standard-phases
4149 (delete 'configure)
4150 (replace 'build
4151 (lambda* (#:key inputs #:allow-other-keys)
4152 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
4153 ;; Tell mf where to find mf.base
4154 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
4155 ;; Tell mf where to look for source files
4156 (setenv "MFINPUTS"
4157 (string-append (getcwd) ":"
4158 mf "/share/texmf-dist/metafont/base:"
4159 (assoc-ref inputs "texlive-fonts-cm")
4160 "/share/texmf-dist/fonts/source/public/cm")))
4161 (mkdir "build")
c4fc86e4
MW
4162 (for-each (lambda (font)
4163 (format #t "building font ~a\n" font)
4164 (invoke "mf" "-progname=mf"
4165 "-output-directory=build"
4166 (string-append "\\"
4167 "mode:=ljfour; "
4168 "mag:=1; "
4169 "batchmode; "
4170 "input " (basename font ".mf"))))
4171 (find-files "." "[0-9]+\\.mf$"))
4172 #t))
83c830d1
RW
4173 (replace 'install
4174 (lambda* (#:key outputs #:allow-other-keys)
4175 (let* ((out (assoc-ref outputs "out"))
4176 (tfm (string-append
4177 out "/share/texmf-dist/fonts/tfm/jknappen/ec"))
4178 (mf (string-append
4179 out "/share/texmf-dist/fonts/source/jknappen/ec")))
4180 (for-each (cut install-file <> tfm)
4181 (find-files "build" "\\.*"))
4182 (for-each (cut install-file <> mf)
4183 (find-files "." "\\.mf"))
4184 #t))))))
4185 (native-inputs
4186 `(("texlive-bin" ,texlive-bin)
4187 ("texlive-metafont-base" ,texlive-metafont-base)
4188 ("texlive-fonts-cm" ,texlive-fonts-cm)))
b8d8806b 4189 (home-page "https://www.ctan.org/pkg/ec")
83c830d1
RW
4190 (synopsis "Computer modern fonts in T1 and TS1 encodings")
4191 (description
4192 "The EC fonts are European Computer Modern Fonts, supporting the complete
4193LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.
4194These fonts are intended to be stable with no changes being made to the tfm
4195files. The set also contains a Text Companion Symbol font, called @code{tc},
4196featuring many useful characters needed in text typesetting, for example
4197oldstyle digits, currency symbols (including the newly created Euro symbol),
4198the permille sign, copyright, trade mark and servicemark as well as a copyleft
4199sign, and many others. Recent releases of LaTeX2e support the EC fonts. The
4200EC fonts supersede the preliminary version released as the DC fonts. The
4201fonts are available in (traced) Adobe Type 1 format, as part of the
4202@code{cm-super} bundle. The other Computer Modern-style T1-encoded Type 1
4203set, Latin Modern, is not actually a direct development of the EC set, and
4204differs from the EC in a number of particulars.")
4205 (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\
4206texlive-2017.1/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
4207
5e9bf5a2
RW
4208(define-public texlive-fonts-adobe-times
4209 (package
4210 (name "texlive-fonts-adobe-times")
4211 (version (number->string %texlive-revision))
4212 (source (origin
4213 (method svn-fetch)
4214 (uri (svn-reference
4215 (url (string-append "svn://www.tug.org/texlive/tags/"
4216 %texlive-tag "/Master/texmf-dist/"
4217 "/fonts/type1/urw/times/"))
4218 (revision %texlive-revision)))
4219 (file-name (string-append name "-" version "-checkout"))
4220 (sha256
4221 (base32
4222 "15vzyr7favkv1mj00qxr03s89kw78nd066fh69by93272g8p5sgd"))))
4223 (build-system trivial-build-system)
4224 (arguments
4225 `(#:modules ((guix build utils)
4226 (ice-9 match))
4227 #:builder
4228 (begin
4229 (use-modules (guix build utils)
4230 (ice-9 match))
4231 (let ((root (string-append (assoc-ref %outputs "out")
4232 "/share/texmf-dist/"))
4233 (pkgs '(("source" . "fonts/type1/urw/times")
4234
4235 ("times-afm" . "fonts/afm/adobe/times")
4236 ("times-tfm" . "fonts/tfm/adobe/times")
4237 ("times-vf" . "fonts/vf/adobe/times")
4238
4239 ("urw-afm" . "fonts/afm/urw/times")
4240 ("urw35vf-tfm" . "fonts/tfm/urw35vf/times")
4241 ("urw35vf-vf" . "fonts/vf/urw35vf/times")
4242
4243 ("times-tex" . "tex/latex/times")
4244 ("dvips" . "dvips/times")
4245 ("fonts-map" . "fonts/map/dvips/times"))))
4246 (for-each (match-lambda
4247 ((pkg . dir)
4248 (let ((target (string-append root dir)))
4249 (mkdir-p target)
4250 (copy-recursively (assoc-ref %build-inputs pkg)
4251 target))))
4252 pkgs)
4253 #t))))
4254 (native-inputs
4255 `(("times-afm"
4256 ,(origin
4257 (method svn-fetch)
4258 (uri (svn-reference
4259 (url (string-append "svn://www.tug.org/texlive/tags/"
4260 %texlive-tag "/Master/texmf-dist/"
4261 "/fonts/afm/adobe/times"))
4262 (revision %texlive-revision)))
4263 (file-name (string-append name "-afm-" version "-checkout"))
4264 (sha256
4265 (base32
4266 "1k7h6vihfc6ri2lq9ggnq2g4zq3qcgq1vd0hr486g9cqrdpys6cy"))))
4267 ("times-tfm"
4268 ,(origin
4269 (method svn-fetch)
4270 (uri (svn-reference
4271 (url (string-append "svn://www.tug.org/texlive/tags/"
4272 %texlive-tag "/Master/texmf-dist/"
4273 "/fonts/tfm/adobe/times"))
4274 (revision %texlive-revision)))
4275 (file-name (string-append name "-tfm-" version "-checkout"))
4276 (sha256
4277 (base32
4278 "1hbgkjnf5xyganbznwpwszvr3iyk4bzb0ys4hd8ybawp60paadrr"))))
4279 ("times-vf"
4280 ,(origin
4281 (method svn-fetch)
4282 (uri (svn-reference
4283 (url (string-append "svn://www.tug.org/texlive/tags/"
4284 %texlive-tag "/Master/texmf-dist/"
4285 "/fonts/vf/adobe/times"))
4286 (revision %texlive-revision)))
4287 (file-name (string-append name "-vf-" version "-checkout"))
4288 (sha256
4289 (base32
4290 "18rfspnwdw9r81dy18lb4w96d09b6c4g7y80azwylalkhwdf2lfp"))))
4291 ("urw-afm"
4292 ,(origin
4293 (method svn-fetch)
4294 (uri (svn-reference
4295 (url (string-append "svn://www.tug.org/texlive/tags/"
4296 %texlive-tag "/Master/texmf-dist/"
4297 "/fonts/afm/urw/times"))
4298 (revision %texlive-revision)))
4299 (file-name (string-append name "-urw-afm-" version "-checkout"))
4300 (sha256
4301 (base32
4302 "0g0xpsyn6634g0b4rpd420v7i4gkz3zr12vcy2b8csbcscjvwri5"))))
4303 ("urw35vf-tfm"
4304 ,(origin
4305 (method svn-fetch)
4306 (uri (svn-reference
4307 (url (string-append "svn://www.tug.org/texlive/tags/"
4308 %texlive-tag "/Master/texmf-dist/"
4309 "/fonts/tfm/urw35vf/times"))
4310 (revision %texlive-revision)))
4311 (file-name (string-append name "-urw35vf-tfm-" version "-checkout"))
4312 (sha256
4313 (base32
4314 "0a4idlvpaqd0ypqgy1xw0rpx8q23bvssg8xq757zzn3zikj0w7pr"))))
4315 ("urw35vf-vf"
4316 ,(origin
4317 (method svn-fetch)
4318 (uri (svn-reference
4319 (url (string-append "svn://www.tug.org/texlive/tags/"
4320 %texlive-tag "/Master/texmf-dist/"
4321 "/fonts/vf/urw35vf/times"))
4322 (revision %texlive-revision)))
4323 (file-name (string-append name "-urw35vf-vf-" version "-checkout"))
4324 (sha256
4325 (base32
4326 "05mppwxd4c5x0yw50gca726f0ylc1rk8jf0jjkrriixq6rnw03di"))))
4327 ("times-tex"
4328 ,(origin
4329 (method svn-fetch)
4330 (uri (svn-reference
4331 (url (string-append "svn://www.tug.org/texlive/tags/"
4332 %texlive-tag "/Master/texmf-dist/"
4333 "/tex/latex/times"))
4334 (revision %texlive-revision)))
4335 (file-name (string-append name "-tex-" version "-checkout"))
4336 (sha256
4337 (base32
4338 "1gmd0x7c3vkvfzgmrsp4866rcdbyimfk3bjr91zaadc41r1i8xrp"))))
4339 ("dvips"
4340 ,(origin
4341 (method svn-fetch)
4342 (uri (svn-reference
4343 (url (string-append "svn://www.tug.org/texlive/tags/"
4344 %texlive-tag "/Master/texmf-dist/"
4345 "/dvips/times/"))
4346 (revision %texlive-revision)))
4347 (file-name (string-append name "-dvips-" version "-checkout"))
4348 (sha256
4349 (base32
4350 "1fvqpgqi7bp2q76nf5kmlhsdijxw65arqfy3ax3djwih3yg12mp0"))))
4351 ("fonts-map"
4352 ,(origin
4353 (method svn-fetch)
4354 (uri (svn-reference
4355 (url (string-append "svn://www.tug.org/texlive/tags/"
4356 %texlive-tag "/Master/texmf-dist/"
4357 "/fonts/map/dvips/times/"))
4358 (revision %texlive-revision)))
4359 (file-name (string-append name "-fonts-map-" version "-checkout"))
4360 (sha256
4361 (base32
4362 "12f00gzs2zgllkm59qdhw2xxj7lvg3p256232f1l275z3pldfqqi"))))))
4363 (home-page "https://ctan.org/pkg/urw-base35")
4364 (synopsis "URW Base 35 font pack for LaTeX")
4365 (description
4366 "This package provides a drop-in replacements for the Times font from
4367Adobe's basic set.")
4368 ;; No license version specified.
4369 (license license:gpl3+)))
4370
f2d1f060
RW
4371(define-public texlive-fonts-adobe-palatino
4372 (package
4373 (name "texlive-fonts-adobe-palatino")
4374 (version (number->string %texlive-revision))
4375 (source (origin
4376 (method svn-fetch)
4377 (uri (svn-reference
4378 (url (string-append "svn://www.tug.org/texlive/tags/"
4379 %texlive-tag "/Master/texmf-dist/"
4380 "/fonts/type1/urw/palatino/"))
4381 (revision %texlive-revision)))
4382 (file-name (string-append name "-" version "-checkout"))
4383 (sha256
4384 (base32
4385 "18dw5260c6fy7acxaqwrg3hw04kg63ijq4lkn56q5pa2g6nyylrp"))))
4386 (build-system trivial-build-system)
4387 (arguments
4388 `(#:modules ((guix build utils)
4389 (ice-9 match))
4390 #:builder
4391 (begin
4392 (use-modules (guix build utils)
4393 (ice-9 match))
4394 (let ((root (string-append (assoc-ref %outputs "out")
4395 "/share/texmf-dist/"))
4396 (pkgs '(("source" . "fonts/type1/urw/palatino")
4397
4398 ("palatino-afm" . "fonts/afm/adobe/palatino")
4399 ("palatino-tfm" . "fonts/tfm/adobe/palatino")
4400 ("palatino-vf" . "fonts/vf/adobe/palatino")
4401
4402 ("urw-afm" . "fonts/afm/urw/palatino")
4403 ("urw35vf-tfm" . "fonts/tfm/urw35vf/palatino")
4404 ("urw35vf-vf" . "fonts/vf/urw35vf/palatino")
4405
4406 ("palatino-tex" . "tex/latex/palatino")
4407 ("dvips" . "dvips/palatino")
4408 ("fonts-map" . "fonts/map/dvips/palatino"))))
4409 (for-each (match-lambda
4410 ((pkg . dir)
4411 (let ((target (string-append root dir)))
4412 (mkdir-p target)
4413 (copy-recursively (assoc-ref %build-inputs pkg)
4414 target))))
4415 pkgs)
4416 #t))))
4417 (native-inputs
4418 `(("palatino-afm"
4419 ,(origin
4420 (method svn-fetch)
4421 (uri (svn-reference
4422 (url (string-append "svn://www.tug.org/texlive/tags/"
4423 %texlive-tag "/Master/texmf-dist/"
4424 "/fonts/afm/adobe/palatino"))
4425 (revision %texlive-revision)))
4426 (file-name (string-append name "-afm-" version "-checkout"))
4427 (sha256
4428 (base32
4429 "0pxizay730cx7rb9y5bqq9dn1zxx3arc33rmdsn7l29pc51flmmi"))))
4430 ("palatino-tfm"
4431 ,(origin
4432 (method svn-fetch)
4433 (uri (svn-reference
4434 (url (string-append "svn://www.tug.org/texlive/tags/"
4435 %texlive-tag "/Master/texmf-dist/"
4436 "/fonts/tfm/adobe/palatino"))
4437 (revision %texlive-revision)))
4438 (file-name (string-append name "-tfm-" version "-checkout"))
4439 (sha256
4440 (base32
4441 "1w1vm0sk9kpsy14yhyf1v1q3c6b97cgbba74g578bcwjlh810mg0"))))
4442 ("palatino-vf"
4443 ,(origin
4444 (method svn-fetch)
4445 (uri (svn-reference
4446 (url (string-append "svn://www.tug.org/texlive/tags/"
4447 %texlive-tag "/Master/texmf-dist/"
4448 "/fonts/vf/adobe/palatino"))
4449 (revision %texlive-revision)))
4450 (file-name (string-append name "-vf-" version "-checkout"))
4451 (sha256
4452 (base32
4453 "1maqfis8hpybcn9lmm8r2b1g56620lfpsncg0742c3kkjd6dh97h"))))
4454 ("urw-afm"
4455 ,(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 "/fonts/afm/urw/palatino"))
4461 (revision %texlive-revision)))
4462 (file-name (string-append name "-urw-afm-" version "-checkout"))
4463 (sha256
4464 (base32
4465 "0gk0xwy1fs2si5kb1j3dzgm52c8sagv32gd9dmw88m7sgh5qkd87"))))
4466 ("urw35vf-tfm"
4467 ,(origin
4468 (method svn-fetch)
4469 (uri (svn-reference
4470 (url (string-append "svn://www.tug.org/texlive/tags/"
4471 %texlive-tag "/Master/texmf-dist/"
4472 "/fonts/tfm/urw35vf/palatino"))
4473 (revision %texlive-revision)))
4474 (file-name (string-append name "-urw35vf-tfm-" version "-checkout"))
4475 (sha256
4476 (base32
4477 "19aq3xwfg7vkf1qzjdxgcvcdqwpvpavq3l25y64xni72qx0kmppz"))))
4478 ("urw35vf-vf"
4479 ,(origin
4480 (method svn-fetch)
4481 (uri (svn-reference
4482 (url (string-append "svn://www.tug.org/texlive/tags/"
4483 %texlive-tag "/Master/texmf-dist/"
4484 "/fonts/vf/urw35vf/palatino"))
4485 (revision %texlive-revision)))
4486 (file-name (string-append name "-urw35vf-vf-" version "-checkout"))
4487 (sha256
4488 (base32
4489 "1lkn4p6zimrs0ah6mxsang4bicp8j7xzl016529a3f168an7mdmj"))))
4490 ("palatino-tex"
4491 ,(origin
4492 (method svn-fetch)
4493 (uri (svn-reference
4494 (url (string-append "svn://www.tug.org/texlive/tags/"
4495 %texlive-tag "/Master/texmf-dist/"
4496 "/tex/latex/palatino"))
4497 (revision %texlive-revision)))
4498 (file-name (string-append name "-tex-" version "-checkout"))
4499 (sha256
4500 (base32
4501 "0ng9w7i0p1nb51amla32jj86vx6p84m6qc7asam3g4x8w5jf7s27"))))
4502 ("dvips"
4503 ,(origin
4504 (method svn-fetch)
4505 (uri (svn-reference
4506 (url (string-append "svn://www.tug.org/texlive/tags/"
4507 %texlive-tag "/Master/texmf-dist/"
4508 "/dvips/palatino/"))
4509 (revision %texlive-revision)))
4510 (file-name (string-append name "-dvips-" version "-checkout"))
4511 (sha256
4512 (base32
4513 "1pdbkfmhx4kk3brh5lg6fyl9ad2kbjmkrhgcx84klnlhq01mfdhb"))))
4514 ("fonts-map"
4515 ,(origin
4516 (method svn-fetch)
4517 (uri (svn-reference
4518 (url (string-append "svn://www.tug.org/texlive/tags/"
4519 %texlive-tag "/Master/texmf-dist/"
4520 "/fonts/map/dvips/palatino/"))
4521 (revision %texlive-revision)))
4522 (file-name (string-append name "-fonts-map-" version "-checkout"))
4523 (sha256
4524 (base32
4525 "0rg13hyp652hp3gnrj5pbyb84zkqmyi1qnm8c6spcyaq8pm06l0d"))))))
4526 (home-page "https://ctan.org/pkg/urw-base35")
4527 (synopsis "URW Base 35 font pack for LaTeX")
4528 (description
4529 "This package provides a drop-in replacements for the Palatino font from
4530Adobe's basic set.")
4531 ;; No license version specified.
4532 (license license:gpl3+)))
4533
4628315b
RW
4534(define-public texlive-fonts-adobe-zapfding
4535 (package
4536 (name "texlive-fonts-adobe-zapfding")
4537 (version (number->string %texlive-revision))
4538 (source (origin
4539 (method svn-fetch)
4540 (uri (svn-reference
4541 (url (string-append "svn://www.tug.org/texlive/tags/"
4542 %texlive-tag "/Master/texmf-dist/"
4543 "/fonts/type1/urw/zapfding/"))
4544 (revision %texlive-revision)))
4545 (file-name (string-append name "-" version "-checkout"))
4546 (sha256
4547 (base32
4548 "1sp3jblg3khp0yj121blvhph6ib09919kyrsk5x2lg258yypqyis"))))
4549 (build-system trivial-build-system)
4550 (arguments
4551 `(#:modules ((guix build utils)
4552 (ice-9 match))
4553 #:builder
4554 (begin
4555 (use-modules (guix build utils)
4556 (ice-9 match))
4557 (let ((root (string-append (assoc-ref %outputs "out")
4558 "/share/texmf-dist/"))
4559 (pkgs '(("source" . "fonts/type1/urw/zapfding")
4560 ("zapf-afm" . "fonts/afm/adobe/zapfding")
4561 ("zapf-tfm" . "fonts/tfm/adobe/zapfding")
4562 ("urw-afm" . "fonts/afm/urw/zapfding")
4563 ("urw35vf-tfm" . "fonts/tfm/urw35vf/zapfding")
4564
4565 ("zapf-tex" . "tex/latex/zapfding")
4566 ("dvips" . "dvips/zapfding")
4567 ("fonts-map" . "fonts/map/dvips/zapfding"))))
4568 (for-each (match-lambda
4569 ((pkg . dir)
4570 (let ((target (string-append root dir)))
4571 (mkdir-p target)
4572 (copy-recursively (assoc-ref %build-inputs pkg)
4573 target))))
4574 pkgs)
4575 #t))))
4576 (native-inputs
4577 `(("zapf-afm"
4578 ,(origin
4579 (method svn-fetch)
4580 (uri (svn-reference
4581 (url (string-append "svn://www.tug.org/texlive/tags/"
4582 %texlive-tag "/Master/texmf-dist/"
4583 "/fonts/afm/adobe/zapfding"))
4584 (revision %texlive-revision)))
4585 (file-name (string-append name "-afm-" version "-checkout"))
4586 (sha256
4587 (base32
4588 "0qvl4w1bfcpiakkd8rvkism46qnvzj9w7x4r8z9m0y7mspbkblyr"))))
4589 ("zapf-tfm"
4590 ,(origin
4591 (method svn-fetch)
4592 (uri (svn-reference
4593 (url (string-append "svn://www.tug.org/texlive/tags/"
4594 %texlive-tag "/Master/texmf-dist/"
4595 "/fonts/tfm/adobe/zapfding"))
4596 (revision %texlive-revision)))
4597 (file-name (string-append name "-tfm-" version "-checkout"))
4598 (sha256
4599 (base32
4600 "1i8mh9xsl8l4cgsg3nl4ha9q6m55j122riclaxsvkc5ka83432qm"))))
4601 ("urw-afm"
4602 ,(origin
4603 (method svn-fetch)
4604 (uri (svn-reference
4605 (url (string-append "svn://www.tug.org/texlive/tags/"
4606 %texlive-tag "/Master/texmf-dist/"
4607 "/fonts/afm/urw/zapfding"))
4608 (revision %texlive-revision)))
4609 (file-name (string-append name "-urw-afm-" version "-checkout"))
4610 (sha256
4611 (base32
4612 "0m4qndqh7ji723ff82c5c1q8ziqvblbaip7vx05vnl15fqbsnfx1"))))
4613 ("urw35vf-tfm"
4614 ,(origin
4615 (method svn-fetch)
4616 (uri (svn-reference
4617 (url (string-append "svn://www.tug.org/texlive/tags/"
4618 %texlive-tag "/Master/texmf-dist/"
4619 "/fonts/tfm/urw35vf/zapfding"))
4620 (revision %texlive-revision)))
4621 (file-name (string-append name "-urw35vf-tfm-" version "-checkout"))
4622 (sha256
4623 (base32
4624 "167g2x6mpjfqh0w1fhjbw14qcx6ridrj2zm1bd8bi0l2d7phj28m"))))
4625 ("zapf-tex"
4626 ,(origin
4627 (method svn-fetch)
4628 (uri (svn-reference
4629 (url (string-append "svn://www.tug.org/texlive/tags/"
4630 %texlive-tag "/Master/texmf-dist/"
4631 "/tex/latex/zapfding"))
4632 (revision %texlive-revision)))
4633 (file-name (string-append name "-tex-" version "-checkout"))
4634 (sha256
4635 (base32
4636 "0hp7i8f6nbrg7irrwc8fd7n1hrzjysa84d6iyivwlc65v9p7lmd0"))))
4637 ("dvips"
4638 ,(origin
4639 (method svn-fetch)
4640 (uri (svn-reference
4641 (url (string-append "svn://www.tug.org/texlive/tags/"
4642 %texlive-tag "/Master/texmf-dist/"
4643 "/dvips/zapfding/"))
4644 (revision %texlive-revision)))
4645 (file-name (string-append name "-dvips-" version "-checkout"))
4646 (sha256
4647 (base32
4648 "1f18sc4qwxykd786zhn6szcrycqvpvfhlcim71aamxmwghakd7fa"))))
4649 ("fonts-map"
4650 ,(origin
4651 (method svn-fetch)
4652 (uri (svn-reference
4653 (url (string-append "svn://www.tug.org/texlive/tags/"
4654 %texlive-tag "/Master/texmf-dist/"
4655 "/fonts/map/dvips/zapfding/"))
4656 (revision %texlive-revision)))
4657 (file-name (string-append name "-fonts-map-" version "-checkout"))
4658 (sha256
4659 (base32
4660 "17kwxmdrgz2fb072hx57a3pidcrhbgayphx11zyld2hv9149pkyl"))))))
4661 (home-page "https://ctan.org/pkg/urw-base35")
4662 (synopsis "URW Base 35 font pack for LaTeX")
4663 (description
4664 "This package provides a drop-in replacements for the Zapfding font from
4665Adobe's basic set.")
4666 ;; No license version specified.
4667 (license license:gpl3+)))
4668
f45a5520
RW
4669(define-public texlive-fonts-rsfs
4670 (package
4671 (name "texlive-fonts-rsfs")
4672 (version (number->string %texlive-revision))
4673 (source (origin
4674 (method svn-fetch)
4675 (uri (svn-reference
4676 (url (string-append "svn://www.tug.org/texlive/tags/"
4677 %texlive-tag "/Master/texmf-dist/"
4678 "/fonts/source/public/rsfs/"))
4679 (revision %texlive-revision)))
e26de9c9 4680 (file-name (string-append name "-" version "-checkout"))
f45a5520
RW
4681 (sha256
4682 (base32
4683 "0r12pn02r4a955prcvq0048nifh86ihlcgvw3pppqqvfngv34l5h"))))
4684 (build-system gnu-build-system)
4685 (arguments
4686 `(#:modules ((guix build gnu-build-system)
4687 (guix build utils)
4688 (srfi srfi-1)
4689 (srfi srfi-26))
4690 #:tests? #f ; no tests
4691 #:phases
4692 (modify-phases %standard-phases
4693 (delete 'configure)
4694 (replace 'build
4695 (lambda* (#:key inputs #:allow-other-keys)
4696 (let ((mf (assoc-ref inputs "texlive-metafont-base")))
4697 ;; Tell mf where to find mf.base
4698 (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
4699 ;; Tell mf where to look for source files
4700 (setenv "MFINPUTS"
4701 (string-append (getcwd) ":"
4702 mf "/share/texmf-dist/metafont/base:"
4703 (assoc-ref inputs "texlive-fonts-cm")
4704 "/share/texmf-dist/fonts/source/public/cm")))
4705 (mkdir "build")
d8ac82c2
MW
4706 (for-each (lambda (font)
4707 (format #t "building font ~a\n" font)
4708 (invoke "mf" "-progname=mf"
4709 "-output-directory=build"
4710 (string-append "\\"
4711 "mode:=ljfour; "
4712 "mag:=1; "
4713 "batchmode; "
4714 "input " (basename font ".mf"))))
4715 (find-files "." "[0-9]+\\.mf$"))
4716 #t))
f45a5520
RW
4717 (replace 'install
4718 (lambda* (#:key outputs #:allow-other-keys)
4719 (let* ((out (assoc-ref outputs "out"))
4720 (tfm (string-append
4721 out "/share/texmf-dist/fonts/tfm/public/rsfs"))
4722 (mf (string-append
4723 out "/share/texmf-dist/fonts/source/public/rsfs")))
4724 (for-each (cut install-file <> tfm)
4725 (find-files "build" "\\.*"))
4726 (for-each (cut install-file <> mf)
4727 (find-files "." "\\.mf"))
4728 #t))))))
4729 (native-inputs
4730 `(("texlive-bin" ,texlive-bin)
4731 ("texlive-metafont-base" ,texlive-metafont-base)
4732 ("texlive-fonts-cm" ,texlive-fonts-cm)))
b8d8806b 4733 (home-page "https://www.ctan.org/pkg/rsfs")
f45a5520
RW
4734 (synopsis "Ralph Smith's Formal Script font")
4735 (description
4736 "The fonts provide uppercase formal script letters for use as symbols in
4737scientific and mathematical typesetting (in contrast to the informal script
4738fonts such as that used for the calligraphic symbols in the TeX maths symbol
4739font). The fonts are provided as Metafont source, and as derived Adobe Type 1
4740format. LaTeX support, for using these fonts in mathematics, is available via
4741one of the packages @code{calrsfs} and @code{mathrsfs}.")
4742 (license (license:fsf-free "http://mirrors.ctan.org/fonts/rsfs/README"))))
4743
1562763c
RW
4744(define-public texlive-latex-eso-pic
4745 (package
4746 (name "texlive-latex-eso-pic")
4747 (version (number->string %texlive-revision))
4748 (source (origin
4749 (method svn-fetch)
4750 (uri (texlive-ref "latex" "eso-pic"))
2678a63b 4751 (file-name (string-append name "-" version "-checkout"))
1562763c
RW
4752 (sha256
4753 (base32
4754 "1xvmms28mvvfpks9x7lfya2xhh5k8jy3qnlih1mzcnf156xnb89z"))))
4755 (build-system texlive-build-system)
4756 (arguments '(#:tex-directory "latex/eso-pic"))
b8d8806b 4757 (home-page "https://www.ctan.org/pkg/eso-pic")
1562763c
RW
4758 (synopsis "Add picture commands (or backgrounds) to every page")
4759 (description
4760 "The package adds one or more user commands to LaTeX's @code{shipout}
4761routine, which may be used to place the output at fixed positions. The
4762@code{grid} option may be used to find the correct places.")
4763 (license license:lppl1.3+)))
4764
ae3779d5
RW
4765(define-public texlive-latex-eepic
4766 (package
4767 (name "texlive-latex-eepic")
4768 (version (number->string %texlive-revision))
4769 (source (origin
4770 (method svn-fetch)
4771 (uri (svn-reference
4772 (url (string-append "svn://www.tug.org/texlive/tags/"
4773 %texlive-tag "/Master/texmf-dist/"
4774 "/tex/latex/eepic"))
4775 (revision %texlive-revision)))
84d63643 4776 (file-name (string-append name "-" version "-checkout"))
ae3779d5
RW
4777 (sha256
4778 (base32
4779 "1c68gvh021pvybg07apsd2xhq2ljbg80kq94wh71drdga3c2zqjw"))))
4780 (build-system trivial-build-system)
4781 (arguments
4782 `(#:modules ((guix build utils))
4783 #:builder
4784 (begin
4785 (use-modules (guix build utils))
4786 (let ((target (string-append (assoc-ref %outputs "out")
4787 "/share/texmf-dist/tex/latex/eepic")))
4788 (mkdir-p target)
4789 (copy-recursively (assoc-ref %build-inputs "source") target)
4790 #t))))
b8d8806b 4791 (home-page "https://www.ctan.org/pkg/eepic")
ae3779d5
RW
4792 (synopsis "Extensions to epic and the LaTeX drawing tools")
4793 (description
4794 "Extensions to @code{epic} and the LaTeX picture drawing environment,
4795include the drawing of lines at any slope, the drawing of circles in any
4796radii, and the drawing of dotted and dashed lines much faster with much less
4797TeX memory, and providing several new commands for drawing ellipses, arcs,
4798splines, and filled circles and ellipses. The package uses @code{tpic}
4799@code{\\special} commands.")
4800 (license license:public-domain)))
4801
245f1f31
RW
4802(define-public texlive-latex-enumitem
4803 (package
4804 (name "texlive-latex-enumitem")
4805 (version (number->string %texlive-revision))
4806 (source (origin
4807 (method svn-fetch)
4808 (uri (svn-reference
4809 (url (string-append "svn://www.tug.org/texlive/tags/"
4810 %texlive-tag "/Master/texmf-dist/"
4811 "/tex/latex/enumitem"))
4812 (revision %texlive-revision)))
4813 (file-name (string-append name "-" version "-checkout"))
4814 (sha256
4815 (base32
4816 "0q24b1bkdi9l6bw787bpggww83jh2vj8955aw2m5yccqbx4vgr5r"))))
4817 (build-system trivial-build-system)
4818 (arguments
4819 `(#:modules ((guix build utils))
4820 #:builder
4821 (begin
4822 (use-modules (guix build utils))
4823 (let ((target (string-append (assoc-ref %outputs "out")
4824 "/share/texmf-dist/tex/latex/enumitem")))
4825 (mkdir-p target)
4826 (copy-recursively (assoc-ref %build-inputs "source") target)
4827 #t))))
b8d8806b 4828 (home-page "https://www.ctan.org/pkg/enumitem")
245f1f31
RW
4829 (synopsis "Customize basic list environments")
4830 (description
4831 "This package is intended to ease customizing the three basic list
4832environments: @code{enumerate}, @code{itemize} and @code{description}. It
4833extends their syntax to allow an optional argument where a set of parameters
4834in the form @code{key=value} are available, for example:
4835@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}.")
4836 (license license:lppl1.3+)))
4837
ecffeeb5
RW
4838(define-public texlive-latex-multirow
4839 (package
4840 (name "texlive-latex-multirow")
4841 (version (number->string %texlive-revision))
4842 (source (origin
4843 (method svn-fetch)
4844 (uri (texlive-ref "latex" "multirow"))
6a919804 4845 (file-name (string-append name "-" version "-checkout"))
ecffeeb5
RW
4846 (sha256
4847 (base32
4848 "0qlxy47f1f8plgch3jqfsnrdgpyz20sz46yp33i2jwvf9hvfczf0"))))
4849 (build-system texlive-build-system)
4850 (arguments '(#:tex-directory "latex/multirow"))
b8d8806b 4851 (home-page "https://www.ctan.org/pkg/multirow")
ecffeeb5
RW
4852 (synopsis "Create tabular cells spanning multiple rows")
4853 (description
4854 "The package provides tools for creating tabular cells spanning multiple
4855rows. It has a lot of flexibility, including an option for specifying an
4856entry at the \"natural\" width of its text.")
4857 (license license:lppl1.3+)))
4858
da38b235
RW
4859(define-public texlive-latex-overpic
4860 (package
4861 (name "texlive-latex-overpic")
4862 (version (number->string %texlive-revision))
4863 (source (origin
4864 (method svn-fetch)
4865 (uri (svn-reference
4866 (url (string-append "svn://www.tug.org/texlive/tags/"
4867 %texlive-tag "/Master/texmf-dist/"
4868 "/tex/latex/overpic"))
4869 (revision %texlive-revision)))
b2aef721 4870 (file-name (string-append name "-" version "-checkout"))
da38b235
RW
4871 (sha256
4872 (base32
d4d9a1ec 4873 "1rpx4ibjncj5416rg19v0xjbj3z9avhfdfn2gzp8r8sz9vz25c6g"))))
da38b235
RW
4874 (build-system trivial-build-system)
4875 (arguments
4876 `(#:modules ((guix build utils))
4877 #:builder
4878 (begin
4879 (use-modules (guix build utils))
4880 (let ((target (string-append (assoc-ref %outputs "out")
4881 "/share/texmf-dist/tex/latex/overpic")))
4882 (mkdir-p target)
4883 (copy-recursively (assoc-ref %build-inputs "source") target)
4884 #t))))
b8d8806b 4885 (home-page "https://www.ctan.org/pkg/overpic")
da38b235
RW
4886 (synopsis "Combine LaTeX commands over included graphics")
4887 (description
4888 "The @code{overpic} environment is a cross between the LaTeX
4889@code{picture} environment and the @code{\\includegraphics} command of
4890@code{graphicx}. The resulting picture environment has the same dimensions as
4891the included graphic. LaTeX commands can be placed on the graphic at defined
4892positions; a grid for orientation is available.")
4893 (license license:lppl1.0+)))
4894
e0d307d1
RW
4895(define-public texlive-latex-parskip
4896 (package
4897 (name "texlive-latex-parskip")
4898 (version (number->string %texlive-revision))
4899 (source (origin
4900 (method svn-fetch)
4901 (uri (svn-reference
4902 (url (string-append "svn://www.tug.org/texlive/tags/"
4903 %texlive-tag "/Master/texmf-dist/"
4904 "/tex/latex/parskip"))
4905 (revision %texlive-revision)))
4906 (file-name (string-append name "-" version "-checkout"))
4907 (sha256
4908 (base32
4909 "14r6h9hqb0qgccxj5l1208694fx8sb8avmgzps36lsbbpszl7i7m"))))
4910 (build-system trivial-build-system)
4911 (arguments
4912 `(#:modules ((guix build utils))
4913 #:builder
4914 (begin
4915 (use-modules (guix build utils))
4916 (let ((target (string-append (assoc-ref %outputs "out")
4917 "/share/texmf-dist/tex/latex/parskip")))
4918 (mkdir-p target)
4919 (copy-recursively (assoc-ref %build-inputs "source") target)
4920 #t))))
b8d8806b 4921 (home-page "https://www.ctan.org/pkg/parskip")
e0d307d1
RW
4922 (synopsis "Layout with zero \\parindent, non-zero \\parskip")
4923 (description
4924 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout
4925that is untidy; this package (though it is no substitute for a properly
4926designed class) helps alleviate this untidiness.")
4927 (license license:lppl)))
4928
adc02c70
RW
4929(define-public texlive-latex-pdfpages
4930 (package
4931 (name "texlive-latex-pdfpages")
4932 (version (number->string %texlive-revision))
4933 (source (origin
4934 (method svn-fetch)
4935 (uri (texlive-ref "latex" "pdfpages"))
7372ce18 4936 (file-name (string-append name "-" version "-checkout"))
adc02c70
RW
4937 (sha256
4938 (base32
d4d9a1ec 4939 "0s4izcah7im67889qz4d26pcfpasmm35sj1rw4ragkkdk3rlbbbd"))))
adc02c70
RW
4940 (build-system texlive-build-system)
4941 (arguments '(#:tex-directory "latex/pdfpages"))
b8d8806b 4942 (home-page "https://www.ctan.org/pkg/pdfpages")
adc02c70
RW
4943 (synopsis "Include PDF documents in LaTeX")
4944 (description
4945 "This package simplifies the inclusion of external multi-page PDF
4946documents in LaTeX documents. Pages may be freely selected and it is possible
4947to put several logical pages onto each sheet of paper. Furthermore a lot of
4948hypertext features like hyperlinks and article threads are provided. The
4949package supports pdfTeX (pdfLaTeX) and VTeX. With VTeX it is even possible to
4950use this package to insert PostScript files, in addition to PDF files.")
4951 (license license:lppl1.3+)))
4952
d8fef6ea
RW
4953(define-public texlive-fonts-stmaryrd
4954 (package
4955 (name "texlive-fonts-stmaryrd")
4956 (version (number->string %texlive-revision))
4957 (source (origin
4958 (method svn-fetch)
4959 (uri (texlive-ref "fonts" "stmaryrd"))
19835372 4960 (file-name (string-append name "-" version "-checkout"))
d8fef6ea
RW
4961 (sha256
4962 (base32
4963 "08pn4ca3vl6qm9l3wm5h5iyjsrg411kkm1yana329xwg2j14s9n6"))))
4964 (build-system texlive-build-system)
4965 (arguments
4966 '(#:tex-directory "latex/stmaryrd"
4967 #:phases
4968 (modify-phases %standard-phases
4969 (add-after 'configure 'patch-ins
4970 (lambda _
4971 (substitute* "stmaryrd.ins"
4972 (("^%% LaTeX2e.*") "\\input docstrip\n")
4973 (("fontdef\\}\\}" line)
4974 (string-append line "\n\\endbatchfile")))
4975 #t)))))
b8d8806b 4976 (home-page "https://www.ctan.org/pkg/stmaryrd")
d8fef6ea
RW
4977 (synopsis "St Mary Road symbols for theoretical computer science")
4978 (description
4979 "The fonts were originally distributed as Metafont sources only, but
4980Adobe Type 1 versions are also now available. Macro support is provided for
4981use under LaTeX; the package supports the @code{only} option (provided by the
4982@code{somedefs} package) to restrict what is loaded, for those who don't need
4983the whole font.")
4984 (license license:lppl)))
4985
2db3a034
RW
4986(define-public texlive-latex-subfigure
4987 (package
4988 (name "texlive-latex-subfigure")
4989 (version (number->string %texlive-revision))
4990 (source (origin
4991 (method svn-fetch)
4992 (uri (texlive-ref "latex" "subfigure"))
e1834df6 4993 (file-name (string-append name "-" version "-checkout"))
2db3a034
RW
4994 (sha256
4995 (base32
4996 "15spcl5wb7w269qd6y596vp4yi8sa5ppcx8w4z2i9kyp02r3a0yb"))))
4997 (build-system texlive-build-system)
4998 (arguments '(#:tex-directory "latex/subfigure"))
b8d8806b 4999 (home-page "https://www.ctan.org/pkg/subfigure")
2db3a034
RW
5000 (synopsis "Figures divided into subfigures")
5001 (description
5002 "This (deprecated) package provides support for the manipulation and
5003reference of small or \"sub\" figures and tables within a single figure or
5004table environment. It is convenient to use this package when your subfigures
5005are to be separately captioned, referenced, or are to be included in the
5006List-of-Figures. A new @code{\\subfigure} command is introduced which can be
5007used inside a figure environment for each subfigure. An optional first
5008argument is used as the caption for that subfigure. The package is now
5009considered obsolete: it was superseded by @code{subfig}, but users may find
5010the more recent @code{subcaption} package more satisfactory.")
5011 (license license:lppl)))
5012
c73d0e9d
RW
5013(define-public texlive-latex-tabulary
5014 (package
5015 (name "texlive-latex-tabulary")
5016 (version (number->string %texlive-revision))
5017 (source (origin
5018 (method svn-fetch)
5019 (uri (texlive-ref "latex" "tabulary"))
5020 (file-name (string-append name "-" version "-checkout"))
5021 (sha256
5022 (base32
5023 "1adkdx2zkk42g82nqf57lv1nc1z7kwl13jmy8vpcsizsa0xdnx9n"))))
5024 (build-system texlive-build-system)
5025 (arguments '(#:tex-directory "latex/tabulary"))
b8d8806b 5026 (home-page "https://www.ctan.org/pkg/tabulary")
c73d0e9d
RW
5027 (synopsis "Tabular with variable width columns balanced")
5028 (description
5029 "The package defines a @code{tabular*}-like environment, @code{tabulary},
5030taking a \"total width\" argument as well as the column specifications. The
5031environment uses column types @code{L}, @code{C}, @code{R} and @code{J} for
5032variable width columns (@code{\\raggedright}, @code{\\centering},
5033@code{\\raggedleft}, and normally justified). In contrast to
5034@code{tabularx}'s @code{X} columns, the width of each column is weighted
5035according to the natural width of the widest cell in the column.")
5036 (license license:lppl)))
5037
e3088297
RW
5038(define-public texlive-latex-threeparttable
5039 (package
5040 (name "texlive-latex-threeparttable")
5041 (version (number->string %texlive-revision))
5042 (source (origin
5043 (method svn-fetch)
5044 (uri (svn-reference
5045 (url (string-append "svn://www.tug.org/texlive/tags/"
5046 %texlive-tag "/Master/texmf-dist/"
5047 "/tex/latex/threeparttable"))
5048 (revision %texlive-revision)))
d57e5d41 5049 (file-name (string-append name "-" version "-checkout"))
e3088297
RW
5050 (sha256
5051 (base32
5052 "10vy9k150w2lviw8h22s2mcykff38xci653m5823s2vv44pwbmzq"))))
5053 (build-system trivial-build-system)
5054 (arguments
5055 `(#:modules ((guix build utils))
5056 #:builder
5057 (begin
5058 (use-modules (guix build utils))
5059 (let ((target (string-append (assoc-ref %outputs "out")
5060 "/share/texmf-dist/tex/latex/threeparttable")))
5061 (mkdir-p target)
5062 (copy-recursively (assoc-ref %build-inputs "source") target)
5063 #t))))
b8d8806b 5064 (home-page "https://www.ctan.org/pkg/threeparttable")
e3088297
RW
5065 (synopsis "Tables with captions and notes all the same width")
5066 (description
5067 "This package facilitates tables with titles (captions) and notes. The
5068title and notes are given a width equal to the body of the table (a
5069@code{tabular} environment). By itself, a @code{threeparttable} does not
5070float, but you can put it in a @code{table} or a @code{table*} or some other
5071environment.")
5072 (license (license:fsf-free "file://threeparttable.sty"))))
5073
1b10d494
RW
5074(define-public texlive-fonts-txfonts
5075 (package
5076 (name "texlive-fonts-txfonts")
5077 (version (number->string %texlive-revision))
5078 (source (origin
5079 (method svn-fetch)
5080 (uri (svn-reference
5081 (url (string-append "svn://www.tug.org/texlive/tags/"
5082 %texlive-tag "/Master/texmf-dist/"
5083 "/tex/latex/txfonts"))
5084 (revision %texlive-revision)))
5085 (file-name (string-append name "-" version "-checkout"))
5086 (sha256
5087 (base32
5088 "0jl921qdphg8i7bkfprackn3xd4gmvxckc526nmzqsmahqkavgg2"))))
5089 (build-system trivial-build-system)
5090 (arguments
5091 `(#:modules ((guix build utils)
5092 (ice-9 match))
5093 #:builder
5094 (begin
5095 (use-modules (guix build utils)
5096 (ice-9 match))
5097 (let ((root (string-append (assoc-ref %outputs "out")
5098 "/share/texmf-dist/"))
5099 (pkgs '(("source" . "tex/latex/txfonts")
5100 ("txfonts-vf" . "fonts/tfm/public/txfonts")
5101 ("txfonts-afm" . "fonts/afm/public/txfonts")
5102 ("txfonts-tfm" . "fonts/tfm/public/txfonts")
5103 ("txfonts-type1" . "fonts/type1/public/txfonts")
5104 ("txfonts-enc" . "fonts/enc/dvips/txfonts")
5105 ("txfonts-map" . "fonts/map/dvips/txfonts"))))
5106 (for-each (match-lambda
5107 ((pkg . dir)
5108 (let ((target (string-append root dir)))
5109 (mkdir-p target)
5110 (copy-recursively (assoc-ref %build-inputs pkg)
5111 target))))
5112 pkgs)
5113 #t))))
5114 (native-inputs
5115 `(("txfonts-tfm"
5116 ,(origin
5117 (method svn-fetch)
5118 (uri (svn-reference
5119 (url (string-append "svn://www.tug.org/texlive/tags/"
5120 %texlive-tag "/Master/texmf-dist/"
5121 "/fonts/tfm/public/txfonts"))
5122 (revision %texlive-revision)))
5123 (file-name (string-append name "-tfm-" version "-checkout"))
5124 (sha256
5125 (base32
5126 "12ffmbrp48ap35qa3b4mi6ckif9q2vf7972jxh5dc1yzykhla2xv"))))
5127 ("txfonts-vf"
5128 ,(origin
5129 (method svn-fetch)
5130 (uri (svn-reference
5131 (url (string-append "svn://www.tug.org/texlive/tags/"
5132 %texlive-tag "/Master/texmf-dist/"
5133 "/fonts/vf/public/txfonts"))
5134 (revision %texlive-revision)))
5135 (file-name (string-append name "-vf-" version "-checkout"))
5136 (sha256
5137 (base32
5138 "04acyfdwvxpfx4l2xh2bpzdmpvwdf2pzbs7a236b0xckz2jvc1ci"))))
5139 ("txfonts-afm"
5140 ,(origin
5141 (method svn-fetch)
5142 (uri (svn-reference
5143 (url (string-append "svn://www.tug.org/texlive/tags/"
5144 %texlive-tag "/Master/texmf-dist/"
5145 "/fonts/afm/public/txfonts"))
5146 (revision %texlive-revision)))
5147 (file-name (string-append name "-afm-" version "-checkout"))
5148 (sha256
5149 (base32
5150 "1705klz51pnqzcs89s3521b84b6c89wlczflsh0vci66nl155yis"))))
5151 ("txfonts-type1"
5152 ,(origin
5153 (method svn-fetch)
5154 (uri (svn-reference
5155 (url (string-append "svn://www.tug.org/texlive/tags/"
5156 %texlive-tag "/Master/texmf-dist/"
5157 "/fonts/type1/public/txfonts"))
5158 (revision %texlive-revision)))
5159 (file-name (string-append name "-type1-" version "-checkout"))
5160 (sha256
5161 (base32
5162 "0ajwr7zb6ch3gxd0g8p2i4llhy2wr9a9saz6jq6hm6fxf4pgl5h3"))))
5163 ("txfonts-map"
5164 ,(origin
5165 (method svn-fetch)
5166 (uri (svn-reference
5167 (url (string-append "svn://www.tug.org/texlive/tags/"
5168 %texlive-tag "/Master/texmf-dist/"
5169 "/fonts/map/dvips/txfonts"))
5170 (revision %texlive-revision)))
5171 (file-name (string-append name "-map-" version "-checkout"))
5172 (sha256
5173 (base32
5174 "0kamr8a9x24jakas3v09dgv7kkpybj3i7qv4vz1iyypqr6kk1raj"))))
5175 ("txfonts-enc"
5176 ,(origin
5177 (method svn-fetch)
5178 (uri (svn-reference
5179 (url (string-append "svn://www.tug.org/texlive/tags/"
5180 %texlive-tag "/Master/texmf-dist/"
5181 "/fonts/enc/dvips/txfonts"))
5182 (revision %texlive-revision)))
5183 (file-name (string-append name "-enc-" version "-checkout"))
5184 (sha256
5185 (base32
5186 "1bal5fhw0xlhl37ayv8vlnqnsn1y82kadzfjhbgr223blspp4zsj"))))))
b8d8806b 5187 (home-page "https://www.ctan.org/pkg/threeparttable")
1b10d494
RW
5188 (synopsis "Times-like fonts in support of mathematics")
5189 (description
5190 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW
5191NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,
5192and TS1 encodings; maths alphabets using Times/URW Nimbus; maths fonts
5193providing all the symbols of the Computer Modern and AMS fonts, including all
5194the Greek capital letters from CMR; and additional maths fonts of various
5195other symbols.
5196
5197The set is complemented by a sans-serif set of text fonts, based on
5198Helvetica/NimbusSanL, and a monospace set.
5199
5200All the fonts are in Type 1 format (AFM and PFB files), and are supported by
5201TeX metrics (VF and TFM files) and macros for use with LaTeX.")
5202 ;; Any version of the GPL with font exception.
5203 (license license:gpl3+)))
5204
f9e0fcb2
RW
5205(define-public texlive-fonts-iwona
5206 (package
5207 (name "texlive-fonts-iwona")
5208 (version "0.995b")
5209 (source (origin
5210 (method url-fetch)
5211 (uri (string-append "http://jmn.pl/pliki/Iwona-tex-"
5212 (string-map (lambda (c)
5213 (if (char=? c #\.)
5214 #\_ c))
5215 version)
5216 ".zip"))
5217 (sha256
5218 (base32
5219 "13684iqx5granpc5rfvqnmyvdpgpbr1x9y7i7y7bcaq0qxv7ph1x"))))
5220 (build-system trivial-build-system)
5221 (arguments
5222 `(#:modules ((guix build utils))
5223 #:builder
5224 (begin
5225 (use-modules (guix build utils))
5226 (let ((target (string-append (assoc-ref %outputs "out")
5227 "/share/texmf-dist/"))
5228 (unzip (string-append (assoc-ref %build-inputs "unzip")
5229 "/bin/unzip")))
e3cfef22 5230 (invoke unzip (assoc-ref %build-inputs "source"))
f9e0fcb2 5231 (mkdir-p target)
e3cfef22
MW
5232 (copy-recursively "iwona" target)
5233 #t))))
f9e0fcb2
RW
5234 (native-inputs
5235 `(("unzip" ,unzip)))
5236 (home-page "http://jmn.pl/en/kurier-i-iwona/")
5237 (synopsis "Sans-serif typeface for TeX")
5238 (description "Iwona is a two-element sans-serif typeface. It was created
5239as an alternative version of the Kurier typeface, which was designed in 1975
5240for a diploma in typeface design at the Warsaw Academy of Fine Arts under the
5241supervision of Roman Tomaszewski. Kurier was designed for linotype
5242typesetting of newspapers and similar periodicals. The Iwona fonts are an
5243alternative version of the Kurier fonts. The difference lies in the absence
5244of ink traps which typify the Kurier font.")
5245 (license license:gfl1.0)))
5246
acc620d6
RW
5247(define-public texlive-latex-titlesec
5248 (package
5249 (name "texlive-latex-titlesec")
5250 (version (number->string %texlive-revision))
5251 (source (origin
5252 (method svn-fetch)
5253 (uri (svn-reference
5254 (url (string-append "svn://www.tug.org/texlive/tags/"
5255 %texlive-tag "/Master/texmf-dist/"
5256 "/tex/latex/titlesec"))
5257 (revision %texlive-revision)))
0475e35c 5258 (file-name (string-append name "-" version "-checkout"))
acc620d6
RW
5259 (sha256
5260 (base32
5261 "04nmkhqx6jxcxx9a30zbcd5smxi5fd0cbp132bki7fnvhspnhg21"))))
5262 (build-system trivial-build-system)
5263 (arguments
5264 `(#:modules ((guix build utils))
5265 #:builder
5266 (begin
5267 (use-modules (guix build utils))
5268 (let ((target (string-append (assoc-ref %outputs "out")
5269 "/share/texmf-dist/tex/latex/titlesec")))
5270 (mkdir-p target)
5271 (copy-recursively (assoc-ref %build-inputs "source") target)
5272 #t))))
b8d8806b 5273 (home-page "https://www.ctan.org/pkg/titlesec")
acc620d6
RW
5274 (synopsis "Select alternative section titles")
5275 (description
5276 "This package provides an interface to sectioning commands for selection
5277from various title styles, e.g. for marginal titles and to change the font of
5278all headings with a single command, also providing simple one-step page
5279styles. It also includes a package to change the page styles when there are
5280floats in a page. You may assign headers/footers to individual floats, too.")
5281 (license license:lppl)))
5282
274e3d4f
RW
5283(define-public texlive-latex-type1cm
5284 (package
5285 (name "texlive-latex-type1cm")
5286 (version (number->string %texlive-revision))
5287 (source (origin
5288 (method svn-fetch)
5289 (uri (texlive-ref "latex" "type1cm"))
5290 (file-name (string-append name "-" version "-checkout"))
5291 (sha256
5292 (base32
5293 "1lvxrqfwcwa4p31zyfm80gr05v8c28xybv5ri79zi2ngz6834z12"))))
5294 (build-system texlive-build-system)
5295 (arguments '(#:tex-directory "latex/type1cm"))
b8d8806b 5296 (home-page "https://www.ctan.org/pkg/type1cm")
274e3d4f
RW
5297 (synopsis "Arbitrary size font selection in LaTeX")
5298 (description
5299 "LaTeX, by default, restricts the sizes at which you can use its default
5300computer modern fonts, to a fixed set of discrete sizes (effectively, a set
5301specified by Knuth). The @code{type1cm} package removes this restriction;
5302this is particularly useful when using scalable versions of the CM
5303fonts (Bakoma, or the versions from BSR/Y&Y, or True Type versions from Kinch,
5304PCTeX, etc.). In fact, since modern distributions will automatically generate
5305any bitmap font you might need, @code{type1cm} has wider application than just
36a17f05 5306those using scalable versions of the fonts. Note that the LaTeX distribution
274e3d4f
RW
5307now contains a package @code{fix-cm},f which performs the task of
5308@code{type1cm}, as well as doing the same job for T1- and TS1-encoded
5309@code{ec} fonts.")
5310 (license license:lppl)))
5311
406af0d6
RW
5312(define-public texlive-latex-lh
5313 (package
5314 (name "texlive-latex-lh")
5315 (version (number->string %texlive-revision))
5316 (source (origin
5317 (method svn-fetch)
5318 (uri (texlive-ref "latex" "lh"))
de20fd6a 5319 (file-name (string-append name "-" version "-checkout"))
406af0d6
RW
5320 (sha256
5321 (base32
5322 "00gdiwh3sfhh1iimjhpja7lm7k4vzqzql2irgwnpz94qvh25zwi5"))))
5323 (build-system texlive-build-system)
5324 (arguments '(#:tex-directory "latex/lh"))
b8d8806b 5325 (home-page "https://www.ctan.org/pkg/lh")
406af0d6
RW
5326 (synopsis "Cyrillic fonts that support LaTeX standard encodings")
5327 (description
5328 "The LH fonts address the problem of the wide variety of alphabets that
5329are written with Cyrillic-style characters. The fonts are the original basis
5330of the set of T2* and X2 encodings that are now used when LaTeX users need to
5331write in Cyrillic languages. Macro support in standard LaTeX encodings is
5332offered through the latex-cyrillic and t2 bundles, and the package itself
5333offers support for other (more traditional) encodings. The fonts, in the
5334standard T2* and X2 encodings are available in Adobe Type 1 format, in the
5335CM-Super family of fonts. The package also offers its own LaTeX support for
5336OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
5337 (license license:lppl)))
5338
44436def
RW
5339(define-public texlive-metapost
5340 (package
5341 (name "texlive-metapost")
5342 (version (number->string %texlive-revision))
5343 (source (origin
5344 (method svn-fetch)
5345 (uri (svn-reference
5346 (url (string-append "svn://www.tug.org/texlive/tags/"
5347 %texlive-tag "/Master/texmf-dist/"
5348 "/metapost"))
5349 (revision %texlive-revision)))
b4bb2750 5350 (file-name (string-append name "-" version "-checkout"))
44436def
RW
5351 (sha256
5352 (base32
d4d9a1ec 5353 "0sf18pc6chgy26p9bxxn44xcqhzjrfb53jxjr2y7l3jb6xllhblq"))))
44436def
RW
5354 (build-system trivial-build-system)
5355 (arguments
5356 `(#:modules ((guix build utils))
5357 #:builder
5358 (begin
5359 (use-modules (guix build utils))
5360 (let ((target (string-append (assoc-ref %outputs "out")
5361 "/share/texmf-dist/metapost")))
5362 (mkdir-p target)
5363 (copy-recursively (assoc-ref %build-inputs "source") target)
5364 #t))))
b8d8806b 5365 (home-page "https://www.ctan.org/pkg/metapost")
44436def
RW
5366 (synopsis "Create scalable illustrations")
5367 (description
5368 "MetaPost uses a language based on that of Metafont to produce precise
5369technical illustrations. Its output is scalable PostScript or SVG, rather
5370than the bitmaps Metafont creates.")
5371 (license license:lppl)))
5372
9ff7161a
LC
5373(define-public texlive-latex-acmart
5374 (package
5375 (name "texlive-latex-acmart")
ff281acc 5376 (version "1.60")
9ff7161a
LC
5377 (source (origin
5378 (method svn-fetch)
5379 (uri (texlive-ref "latex" "acmart"))
5380 (sha256
5381 (base32
ff281acc 5382 "0n62cs8dhcbn29y9ij1nnyigzr76yhk36kyahhqkkmvbafbys9s7"))
9ff7161a
LC
5383 (file-name (string-append name "-" version "-checkout"))))
5384 (build-system texlive-build-system)
5385 (arguments '(#:tex-directory "latex/acmart"))
b8d8806b 5386 (home-page "https://www.ctan.org/pkg/acmart")
9ff7161a
LC
5387 (synopsis "Class for typesetting publications of ACM")
5388 (description
5389 "This package provides a class for typesetting publications of the
5390Association for Computing Machinery (ACM).")
5391 (license license:lppl1.3+)))
5392
3966ebbb
RW
5393(define-public texlive-latex-varwidth
5394 (package
5395 (name "texlive-latex-varwidth")
5396 (version (number->string %texlive-revision))
5397 (source (origin
5398 (method svn-fetch)
5399 (uri (svn-reference
5400 (url (string-append "svn://www.tug.org/texlive/tags/"
5401 %texlive-tag "/Master/texmf-dist/"
5402 "/tex/latex/varwidth"))
5403 (revision %texlive-revision)))
5404 (file-name (string-append name "-" version "-checkout"))
5405 (sha256
5406 (base32
5407 "1bmz9ap0ffyg7qry2xi7lki06qx4809w028xvk88cl66h7p46g52"))))
5408 (build-system trivial-build-system)
5409 (arguments
5410 `(#:modules ((guix build utils))
5411 #:builder
5412 (begin
5413 (use-modules (guix build utils))
5414 (let ((target (string-append (assoc-ref %outputs "out")
5415 "/share/texmf-dist/tex/latex/varwidth")))
5416 (mkdir-p target)
5417 (copy-recursively (assoc-ref %build-inputs "source") target)
5418 #t))))
b8d8806b 5419 (home-page "https://www.ctan.org/pkg/varwidth")
3966ebbb
RW
5420 (synopsis "Variable-width minipage")
5421 (description
5422 "The @code{varwidth} environment is superficially similar to
5423@code{minipage}, but the specified width is just a maximum value — the box may
5424get a narrower “natural” width.")
5425 (license license:lppl)))
5426
cd2c77f4
RW
5427(define-public texlive-latex-wasysym
5428 (package
5429 (name "texlive-latex-wasysym")
5430 (version (number->string %texlive-revision))
5431 (source (origin
5432 (method svn-fetch)
5433 (uri (texlive-ref "latex" "wasysym"))
2cc9c011 5434 (file-name (string-append name "-" version "-checkout"))
cd2c77f4
RW
5435 (sha256
5436 (base32
5437 "1sgwbfwjjf70g54hh93gsd9jp9nm67w6n74x9d72a56n07jbk5hv"))))
5438 (build-system texlive-build-system)
5439 (arguments '(#:tex-directory "latex/wasysym"))
b8d8806b 5440 (home-page "https://www.ctan.org/pkg/wasysym")
cd2c77f4
RW
5441 (synopsis "LaTeX support file to use the WASY2 fonts")
5442 (description
5443 "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs
5444like male and female symbols and astronomical symbols, as well as the complete
5445lasy font set and other odds and ends. The wasysym package implements an easy
5446to use interface for these symbols.")
5447 (license license:lppl)))
5448
63ed869b
RW
5449(define-public texlive-latex-wrapfig
5450 (package
5451 (name "texlive-latex-wrapfig")
5452 (version (number->string %texlive-revision))
5453 (source (origin
5454 (method svn-fetch)
5455 (uri (svn-reference
5456 (url (string-append "svn://www.tug.org/texlive/tags/"
5457 %texlive-tag "/Master/texmf-dist/"
5458 "/tex/latex/wrapfig"))
5459 (revision %texlive-revision)))
5460 (file-name (string-append name "-" version "-checkout"))
5461 (sha256
5462 (base32
5463 "16xpyl0csmmwndz1xhzqfg9l0zcsnqxslsixsqkwd4zsvfj30sv4"))))
5464 (build-system trivial-build-system)
5465 (arguments
5466 `(#:modules ((guix build utils))
5467 #:builder
5468 (begin
5469 (use-modules (guix build utils))
5470 (let ((target (string-append (assoc-ref %outputs "out")
5471 "/share/texmf-dist/tex/latex/wrapfig")))
5472 (mkdir-p target)
5473 (copy-recursively (assoc-ref %build-inputs "source") target)
5474 #t))))
b8d8806b 5475 (home-page "https://www.ctan.org/pkg/wrapfig")
63ed869b
RW
5476 (synopsis "Produces figures which text can flow around")
5477 (description
5478 "This package allows figures or tables to have text wrapped around them.
5479It does not work in combination with list environments, but can be used in a
5480@code{parbox} or @code{minipage}, and in two-column format.")
5481 (license license:lppl)))
5482
c178ffca
RW
5483(define-public texlive-latex-ucs
5484 (package
5485 (name "texlive-latex-ucs")
5486 (version (number->string %texlive-revision))
5487 (source (origin
5488 (method svn-fetch)
5489 (uri (svn-reference
5490 (url (string-append "svn://www.tug.org/texlive/tags/"
5491 %texlive-tag "/Master/texmf-dist/"
5492 "/tex/latex/ucs"))
5493 (revision %texlive-revision)))
5494 (file-name (string-append name "-" version "-checkout"))
5495 (sha256
5496 (base32
5497 "0rrxwi60wmz5dfjifl4fwk66plf7wix85qnhfv4ylvmj6qi6hw37"))))
5498 (build-system trivial-build-system)
5499 (arguments
5500 `(#:modules ((guix build utils))
5501 #:builder
5502 (begin
5503 (use-modules (guix build utils))
5504 (let ((target (string-append (assoc-ref %outputs "out")
5505 "/share/texmf-dist/tex/latex/ucs")))
5506 (mkdir-p target)
5507 (copy-recursively (assoc-ref %build-inputs "source") target)
5508 #t))))
b8d8806b 5509 (home-page "https://www.ctan.org/pkg/ucs")
c178ffca
RW
5510 (synopsis "Extended UTF-8 input encoding support for LaTeX")
5511 (description
5512 "The bundle provides the @code{ucs} package, and @code{utf8x.def},
5513together with a large number of support files. The @code{utf8x.def}
5514definition file for use with @code{inputenc} covers a wider range of Unicode
5515characters than does @code{utf8.def} in the LaTeX distribution. The package
5516provides facilities for efficient use of its large sets of Unicode characters.
5517Glyph production may be controlled by various options, which permits use of
5518non-ASCII characters when coding mathematical formulae. Note that the bundle
5519previously had an alias “unicode”; that alias has now been withdrawn, and no
5520package of that name now exists.")
5521 (license license:lppl1.3+)))
5522
86af0f2a
RW
5523(define-public texlive-latex-preview
5524 (package
5525 (name "texlive-latex-preview")
5526 (version (number->string %texlive-revision))
5527 (source (origin
5528 (method svn-fetch)
5529 (uri (texlive-ref "latex" "preview"))
5530 (file-name (string-append name "-" version "-checkout"))
5531 (sha256
5532 (base32
d4d9a1ec 5533 "1hpsk4yp08qvbl43kqiv0hhwxv3gcqqxcpahyv6ch2b38pbj4bh6"))))
86af0f2a
RW
5534 (build-system texlive-build-system)
5535 (arguments
5536 '(#:tex-directory "latex/preview"
5537 #:phases
5538 (modify-phases %standard-phases
5539 (add-after 'unpack 'remove-generated-file
5540 (lambda _
5541 (delete-file "preview.drv")
5542 #t)))))
b8d8806b 5543 (home-page "https://www.ctan.org/pkg/preview")
86af0f2a
RW
5544 (synopsis "Extract bits of a LaTeX source for output")
5545 (description
5546 "The main purpose of the preview package is the extraction of selected
5547elements from a LaTeX source, like formulas or graphics, into separate
5548pages of a DVI file. A flexible and convenient interface allows it to
5549specify what commands and constructs should be extracted. This works
5550with DVI files postprocessed by either Dvips and Ghostscript or
5551dvipng, but it also works when you are using PDFTeX for generating PDF
5552files.")
5553 (license license:gpl3+)))
5554
87b4360e
RW
5555(define-public texlive-latex-acronym
5556 (package
5557 (name "texlive-latex-acronym")
5558 (version (number->string %texlive-revision))
5559 (source (origin
5560 (method svn-fetch)
5561 (uri (texlive-ref "latex" "acronym"))
5562 (file-name (string-append name "-" version "-checkout"))
5563 (sha256
5564 (base32
5565 "0jmasg40bk53zdd2jc8nc18jvdai3p2wmamy7hwli8gls4nf25qp"))))
5566 (build-system texlive-build-system)
5567 (arguments '(#:tex-directory "latex/acronym"))
b8d8806b 5568 (home-page "https://www.ctan.org/pkg/acronym")
87b4360e
RW
5569 (synopsis "Expand acronyms at least once")
5570 (description
5571 "This package ensures that all acronyms used in the text are spelled out
5572in full at least once. It also provides an environment to build a list of
5573acronyms used. The package is compatible with PDF bookmarks. The package
5574requires the suffix package, which in turn requires that it runs under
5575e-TeX.")
5576 (license license:lppl1.3+)))
5577
fedb80ee
RW
5578(define-public texlive-generic-pdftex
5579 (package
5580 (name "texlive-generic-pdftex")
5581 (version (number->string %texlive-revision))
5582 (source (origin
5583 (method svn-fetch)
5584 (uri (svn-reference
5585 (url (string-append "svn://www.tug.org/texlive/tags/"
5586 %texlive-tag "/Master/texmf-dist/"
5587 "/tex/generic/pdftex"))
5588 (revision %texlive-revision)))
66e765a0 5589 (file-name (string-append name "-" version "-checkout"))
fedb80ee
RW
5590 (sha256
5591 (base32
5592 "0k68zmqzs4qvrqxdwsrawbjb14hxqjfamq649azvai0jjxdpkljd"))))
5593 (build-system trivial-build-system)
5594 (arguments
5595 `(#:modules ((guix build utils))
5596 #:builder
5597 (begin
5598 (use-modules (guix build utils))
5599 (let ((target (string-append (assoc-ref %outputs "out")
7002a45d
PN
5600 "/share/texmf-dist/tex/generic/pdftex"))
5601 (target-map (string-append (assoc-ref %outputs "out")
5602 "/share/texmf-dist/fonts/map/pdftex")))
fedb80ee
RW
5603 (mkdir-p target)
5604 (copy-recursively (assoc-ref %build-inputs "source") target)
7002a45d
PN
5605 (mkdir-p target-map)
5606 (copy-recursively (assoc-ref %build-inputs "pdftex-map") target-map)
fedb80ee 5607 #t))))
7002a45d
PN
5608 (native-inputs
5609 `(("pdftex-map"
5610 ,(origin
5611 (method svn-fetch)
5612 (uri (svn-reference
5613 (url (string-append "svn://www.tug.org/texlive/tags/"
5614 %texlive-tag "/Master/texmf-dist/"
5615 "/fonts/map/pdftex"))
5616 (revision %texlive-revision)))
5617 (file-name (string-append name "-map-" version "-checkout"))
5618 (sha256
5619 (base32
d4d9a1ec 5620 "18jvcm0vwpg6wwzijvnb92xx78la45kkh71k6l44425krp2vnwm0"))))))
b8d8806b 5621 (home-page "https://www.ctan.org/pkg/pdftex")
fedb80ee
RW
5622 (synopsis "TeX extension for direct creation of PDF")
5623 (description
5624 "This package provides an extension of TeX which can be configured to
5625directly generate PDF documents instead of DVI.")
5626 (license license:gpl2+)))
5627
8bcdc23f 5628(define texlive-texmf
0aa34e82
AE
5629 (package
5630 (name "texlive-texmf")
3e1ebaab 5631 (version "20180414")
0aa34e82
AE
5632 (source texlive-texmf-src)
5633 (build-system gnu-build-system)
5634 (inputs
5635 `(("texlive-bin" ,texlive-bin)
5636 ("lua" ,lua)
5637 ("perl" ,perl)
5638 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5639 ("ruby" ,ruby)
5640 ("tcsh" ,tcsh)))
5641 (arguments
5642 `(#:modules ((guix build gnu-build-system)
5643 (guix build utils)
5644 (srfi srfi-26))
a348af40
LC
5645
5646 ;; This package takes 4 GiB, which we can't afford to distribute from
5647 ;; our servers.
5648 #:substitutable? #f
5649
0aa34e82 5650 #:phases
4a6635f3
AE
5651 (modify-phases (map (cut assq <> %standard-phases)
5652 '(set-paths unpack patch-source-shebangs))
977403fe
RW
5653 (add-after 'unpack 'unset-environment-variables
5654 (lambda _
5655 (unsetenv "TEXMF")
5656 (unsetenv "TEXMFCNF")
5657 #t))
4a6635f3
AE
5658 (add-after 'patch-source-shebangs 'install
5659 (lambda* (#:key outputs #:allow-other-keys)
5660 (let ((share (string-append (assoc-ref outputs "out") "/share")))
5661 (mkdir-p share)
286eedec 5662 (invoke "mv" "texmf-dist" share))))
4a6635f3
AE
5663 (add-after 'install 'texmf-config
5664 (lambda* (#:key inputs outputs #:allow-other-keys)
5665 (let* ((out (assoc-ref outputs "out"))
5666 (share (string-append out "/share"))
5667 (texmfroot (string-append share "/texmf-dist/web2c"))
5668 (texmfcnf (string-append texmfroot "/texmf.cnf"))
5669 (texlive-bin (assoc-ref inputs "texlive-bin"))
5670 (texbin (string-append texlive-bin "/bin"))
5671 (tlpkg (string-append texlive-bin "/share/tlpkg")))
5672 ;; Register SHARE as TEXMFROOT in texmf.cnf.
5673 (substitute* texmfcnf
5674 (("TEXMFROOT = \\$SELFAUTOPARENT")
2d634d9b
FB
5675 (string-append "TEXMFROOT = " share))
5676 (("TEXMFLOCAL = \\$SELFAUTOGRANDPARENT/texmf-local")
5677 "TEXMFLOCAL = $SELFAUTODIR/share/texmf-local")
5678 (("!!\\$TEXMFLOCAL") "$TEXMFLOCAL"))
4a6635f3
AE
5679 ;; Register paths in texmfcnf.lua, needed for context.
5680 (substitute* (string-append texmfroot "/texmfcnf.lua")
5681 (("selfautodir:") out)
5682 (("selfautoparent:") (string-append share "/")))
5683 ;; Set path to TeXLive Perl modules
5684 (setenv "PERL5LIB"
5685 (string-append (getenv "PERL5LIB") ":" tlpkg))
5686 ;; Configure the texmf-dist tree; inspired from
5687 ;; http://slackbuilds.org/repository/13.37/office/texlive/
5688 (setenv "PATH" (string-append (getenv "PATH") ":" texbin))
5689 (setenv "TEXMFCNF" texmfroot)
286eedec
MW
5690 (invoke "updmap-sys" "--nohash" "--syncwithtrees")
5691 (invoke "mktexlsr")
0371132c 5692 (invoke "fmtutil-sys" "--all")))))))
7a15a68f 5693 (properties `((max-silent-time . 9600))) ; don't time out while grafting
0aa34e82 5694 (synopsis "TeX Live, a package of the TeX typesetting system")
eb0119ef
AE
5695 (description
5696 "TeX Live provides a comprehensive TeX document production system.
5697It includes all the major TeX-related programs, macro packages, and fonts
5698that are free software, including support for many languages around the
0aa34e82
AE
5699world.
5700
5701This package contains the complete tree of texmf-dist data.")
132e14b4
EF
5702 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
5703 (home-page "https://www.tug.org/texlive/")))
0aa34e82
AE
5704
5705(define-public texlive
5706 (package
5707 (name "texlive")
3e1ebaab 5708 (version "20180414")
0aa34e82
AE
5709 (source #f)
5710 (build-system trivial-build-system)
5711 (inputs `(("bash" ,bash) ; for wrap-program
5712 ("texlive-bin" ,texlive-bin)
5713 ("texlive-texmf" ,texlive-texmf)))
2d634d9b
FB
5714 (native-search-paths
5715 (list (search-path-specification
5716 (variable "TEXMFLOCAL")
5717 (files '("share/texmf-local")))))
0aa34e82
AE
5718 (arguments
5719 `(#:modules ((guix build utils))
5720 #:builder
5721 ;; Build the union of texlive-bin and texlive-texmf, but take the
5722 ;; conflicting subdirectory share/texmf-dist from texlive-texmf.
5723 (begin
5724 (use-modules (guix build utils))
5725 (let ((out (assoc-ref %outputs "out"))
5726 (bin (assoc-ref %build-inputs "texlive-bin"))
5727 (texmf (assoc-ref %build-inputs "texlive-texmf"))
5728 (bash (assoc-ref %build-inputs "bash")))
5729 (mkdir out)
5730 (with-directory-excursion out
5731 (for-each
5732 (lambda (name)
5733 (symlink (string-append bin "/" name) name))
5734 '("include" "lib"))
5735 (mkdir "bin")
5736 (with-directory-excursion "bin"
5737 (setenv "PATH" (string-append bash "/bin"))
5738 (for-each
5739 (lambda (name)
5740 (symlink name (basename name))
5741 (wrap-program
5742 (basename name)
5743 `("TEXMFCNF" =
5744 (,(string-append texmf "/share/texmf-dist/web2c")))))
5745 (find-files (string-append bin "/bin/") "")))
5746 (mkdir "share")
5747 (with-directory-excursion "share"
5748 (for-each
5749 (lambda (name)
5750 (symlink (string-append bin "/share/" name) name))
5751 '("info" "man" "tlpkg"))
5752 (for-each
5753 (lambda (name)
5754 (symlink (string-append texmf "/share/" name) name))
e3cfef22
MW
5755 '("texmf-dist" "texmf-var"))))
5756 #t))))
0aa34e82
AE
5757 (synopsis "TeX Live, a package of the TeX typesetting system")
5758 (description
5759 "TeX Live provides a comprehensive TeX document production system.
5760It includes all the major TeX-related programs, macro packages, and fonts
5761that are free software, including support for many languages around the
5762world.
5763
5764This package contains the complete TeX Live distribution.")
132e14b4
EF
5765 (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))
5766 (home-page "https://www.tug.org/texlive/")))
231eae53 5767
ebcf74da
RW
5768(define-public perl-text-bibtex
5769 (package
5770 (name "perl-text-bibtex")
a2460e0f 5771 (version "0.85")
ebcf74da
RW
5772 (source
5773 (origin
5774 (method url-fetch)
5775 (uri (string-append "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-"
5776 version ".tar.gz"))
5777 (sha256
5778 (base32
a2460e0f 5779 "036kxgbn1jf70pfm2lmjlzjwnhbkd888fp5lyvmkjpdd15gla18h"))))
ebcf74da
RW
5780 (build-system perl-build-system)
5781 (arguments
5782 `(#:phases
5783 (modify-phases %standard-phases
5784 (add-after 'unpack 'add-output-directory-to-rpath
5785 (lambda* (#:key outputs #:allow-other-keys)
5786 (substitute* "inc/MyBuilder.pm"
5787 (("-Lbtparse" line)
5788 (string-append "-Wl,-rpath="
5789 (assoc-ref outputs "out") "/lib " line)))
5790 #t))
5791 (add-after 'unpack 'install-libraries-to-/lib
5792 (lambda* (#:key outputs #:allow-other-keys)
5793 (substitute* "Build.PL"
5794 (("lib64") "lib"))
5795 #t)))))
5796 (native-inputs
5797 `(("perl-capture-tiny" ,perl-capture-tiny)
5798 ("perl-config-autoconf" ,perl-config-autoconf)
5799 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
5800 ("perl-module-build" ,perl-module-build)))
9aba9b12 5801 (home-page "https://metacpan.org/release/Text-BibTeX")
ebcf74da
RW
5802 (synopsis "Interface to read and parse BibTeX files")
5803 (description "@code{Text::BibTeX} is a Perl library for reading, parsing,
5804and processing BibTeX files. @code{Text::BibTeX} gives you access to the data
5805at many different levels: you may work with BibTeX entries as simple field to
5806string mappings, or get at the original form of the data as a list of simple
5807values (strings, macros, or numbers) pasted together.")
2f3108ad 5808 (license license:perl-license)))
ebcf74da 5809
d4000680
RW
5810(define-public biber
5811 (package
1335167a 5812 (name "biber")
41a01087 5813 (version "2.12")
d4000680 5814 (source (origin
41a01087
JL
5815 (method git-fetch)
5816 (uri (git-reference
5817 (url "https://github.com/plk/biber/")
5818 (commit (string-append "v" version))))
5819 (file-name (git-file-name name version))
5820 ;; TODO: Patch awaiting inclusion upstream (see:
5821 ;; https://github.com/plk/biber/issues/239).
5822 (patches (search-patches "biber-fix-encoding-write.patch"))
d4000680
RW
5823 (sha256
5824 (base32
41a01087 5825 "1g1hi6zvf2hmrjly1sidjaxy5440gfqm4p7p3n7kayshnjsmlskx"))))
d4000680
RW
5826 (build-system perl-build-system)
5827 (arguments
5828 `(#:phases
5829 (modify-phases %standard-phases
5830 (add-after 'install 'wrap-programs
5831 (lambda* (#:key outputs #:allow-other-keys)
5832 (let* ((out (assoc-ref outputs "out"))
5833 (perl5lib (getenv "PERL5LIB")))
5834 (wrap-program (string-append out "/bin/biber")
5835 `("PERL5LIB" ":" prefix
5836 (,(string-append perl5lib ":" out
5837 "/lib/perl5/site_perl")))))
5838 #t)))))
5839 (inputs
5840 `(("perl-autovivification" ,perl-autovivification)
5841 ("perl-class-accessor" ,perl-class-accessor)
5842 ("perl-data-dump" ,perl-data-dump)
5843 ("perl-data-compare" ,perl-data-compare)
5844 ("perl-data-uniqid" ,perl-data-uniqid)
5845 ("perl-datetime-format-builder" ,perl-datetime-format-builder)
5846 ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
41a01087 5847 ("perl-file-slurper" ,perl-file-slurper)
d4000680
RW
5848 ("perl-ipc-cmd" ,perl-ipc-cmd)
5849 ("perl-ipc-run3" ,perl-ipc-run3)
5850 ("perl-list-allutils" ,perl-list-allutils)
5851 ("perl-list-moreutils" ,perl-list-moreutils)
5852 ("perl-mozilla-ca" ,perl-mozilla-ca)
5853 ("perl-regexp-common" ,perl-regexp-common)
5854 ("perl-log-log4perl" ,perl-log-log4perl)
5855 ;; We cannot use perl-unicode-collate here, because otherwise the
5856 ;; hardcoded hashes in the tests would differ. See
5857 ;; https://mail-archive.com/debian-bugs-dist@lists.debian.org/msg1469249.html
5858 ;;("perl-unicode-collate" ,perl-unicode-collate)
5859 ("perl-unicode-normalize" ,perl-unicode-normalize)
5860 ("perl-unicode-linebreak" ,perl-unicode-linebreak)
5861 ("perl-encode-eucjpascii" ,perl-encode-eucjpascii)
5862 ("perl-encode-jis2k" ,perl-encode-jis2k)
5863 ("perl-encode-hanextra" ,perl-encode-hanextra)
5864 ("perl-xml-libxml" ,perl-xml-libxml)
5865 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)
5866 ("perl-xml-libxslt" ,perl-xml-libxslt)
5867 ("perl-xml-writer" ,perl-xml-writer)
5868 ("perl-sort-key" ,perl-sort-key)
5869 ("perl-text-csv" ,perl-text-csv)
5870 ("perl-text-csv-xs" ,perl-text-csv-xs)
5871 ("perl-text-roman" ,perl-text-roman)
5872 ("perl-uri" ,perl-uri)
5873 ("perl-text-bibtex" ,perl-text-bibtex)
5874 ("perl-libwww" ,perl-libwww)
5875 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
5876 ("perl-business-isbn" ,perl-business-isbn)
5877 ("perl-business-issn" ,perl-business-issn)
5878 ("perl-business-ismn" ,perl-business-ismn)
5879 ("perl-lingua-translit" ,perl-lingua-translit)))
5880 (native-inputs
5881 `(("perl-config-autoconf" ,perl-config-autoconf)
5882 ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
5883 ("perl-module-build" ,perl-module-build)
5884 ;; for tests
5885 ("perl-file-which" ,perl-file-which)
5886 ("perl-test-more" ,perl-test-most) ; FIXME: "more" would be sufficient
5887 ("perl-test-differences" ,perl-test-differences)))
5888 (home-page "http://biblatex-biber.sourceforge.net/")
5889 (synopsis "Backend for the BibLaTeX citation management tool")
5890 (description "Biber is a BibTeX replacement for users of biblatex. Among
5891other things it comes with full Unicode support.")
5892 (license license:artistic2.0)))
5893
231eae53
LC
5894(define-public rubber
5895 (package
5896 (name "rubber")
5897 (version "1.1")
5898 (source (origin
5899 (method url-fetch)
5900 (uri (list (string-append "https://launchpad.net/rubber/trunk/"
5901 version "/+download/rubber-"
5902 version ".tar.gz")
5903 (string-append "http://ebeffara.free.fr/pub/rubber-"
5904 version ".tar.gz")))
5905 (sha256
5906 (base32
5907 "1xbkv8ll889933gyi2a5hj7hhh216k04gn8fwz5lfv5iz8s34gbq"))))
5908 (build-system gnu-build-system)
5909 (arguments '(#:tests? #f)) ; no `check' target
5910 (inputs `(("texinfo" ,texinfo)
9bee5d6c 5911 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
231eae53
LC
5912 ("which" ,which)))
5913 (home-page "https://launchpad.net/rubber")
35b9e423 5914 (synopsis "Wrapper for LaTeX and friends")
231eae53
LC
5915 (description
5916 "Rubber is a program whose purpose is to handle all tasks related to the
5917compilation of LaTeX documents. This includes compiling the document itself,
5918of course, enough times so that all references are defined, and running BibTeX
5919to manage bibliographic references. Automatic execution of dvips to produce
5920PostScript documents is also included, as well as usage of pdfLaTeX to produce
5921PDF documents.")
5922 (license license:gpl2+)))
4791876c
RJ
5923
5924(define-public texmaker
5925 (package
5926 (name "texmaker")
585be42f 5927 (version "5.0.3")
4791876c
RJ
5928 (source (origin
5929 (method url-fetch)
5930 (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
5931 version ".tar.bz2"))
5932 (sha256
5933 (base32
585be42f 5934 "0vrj9w5lk3vf6138n5bz8phmy3xp5kv4dq1rgirghcf4hbxdyx30"))))
4791876c
RJ
5935 (build-system gnu-build-system)
5936 (arguments
5937 `(#:phases
5938 (modify-phases %standard-phases
5939 ;; Qt has its own configuration utility.
5940 (replace 'configure
5941 (lambda* (#:key outputs #:allow-other-keys)
5942 (let ((out (assoc-ref outputs "out")))
6c23ed9b
MW
5943 (invoke "qmake"
5944 (string-append "PREFIX=" out)
c36d9725 5945 (string-append "DESKTOPDIR=" out "/share/applications")
6c23ed9b 5946 (string-append "ICONDIR=" out "/share/pixmaps")
c36d9725 5947 (string-append "METAINFODIR=" out "/share/metainfo")
6c23ed9b 5948 "texmaker.pro")))))))
4791876c
RJ
5949 (inputs
5950 `(("poppler-qt5" ,poppler-qt5)
bd917486
TD
5951 ("qtbase" ,qtbase)
5952 ("qtscript" ,qtscript)
5953 ("qtwebkit" ,qtwebkit)
4791876c
RJ
5954 ("zlib" ,zlib)))
5955 (native-inputs
5956 `(("pkg-config" ,pkg-config)))
5957 (home-page "http://www.xm1math.net/texmaker/")
5958 (synopsis "LaTeX editor")
5959 (description "Texmaker is a program that integrates many tools needed to
5960develop documents with LaTeX, in a single application.")
5961 (license license:gpl2+)))
83457fe0 5962
83457fe0
JD
5963(define-public teximpatient
5964 (package
5965 (name "teximpatient")
5966 (version "2.4")
5967 (source (origin
4f2ee8e2 5968 (method url-fetch/tarbomb)
83457fe0
JD
5969 (uri (string-append "mirror://gnu/" name "/" name "-"
5970 version ".tar.gz"))
5971 (sha256
5972 (base32
5973 "0h56w22d99dh4fgld4ssik8ggnmhmrrbnrn1lnxi1zr0miphn1sd"))))
5974 (build-system gnu-build-system)
5975 (arguments
4f2ee8e2
RW
5976 `(#:tests? #f ; there are none
5977 #:phases
83457fe0 5978 (modify-phases %standard-phases
4f2ee8e2
RW
5979 (add-after 'unpack 'fix-packaging-error
5980 (lambda* (#:key inputs #:allow-other-keys)
5981 ;; This file should have been part of the tarball.
5982 (install-file (car
5983 (find-files
5984 (assoc-ref inputs "automake")
5985 "^install-sh$"))
5986 ".")
5987 ;; Remove generated file.
5988 (delete-file "book.pdf")
5989 #t)))))
83457fe0 5990 (native-inputs
4f2ee8e2
RW
5991 `(("texlive" ,(texlive-union (list texlive-latex-amsfonts
5992 texlive-fonts-amsfonts
5993 texlive-fonts-adobe-palatino
5994 texlive-fonts-adobe-zapfding
5995 texlive-fonts-knuth-lib
5996 texlive-fonts-mflogo-font
5997 texlive-generic-pdftex)))
83457fe0 5998 ("automake" ,automake)))
6fd52309 5999 (home-page "https://www.gnu.org/software/teximpatient/")
83457fe0
JD
6000 (synopsis "Book on TeX, plain TeX and Eplain")
6001 (description "@i{TeX for the Impatient} is a ~350 page book on TeX,
6002plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,
6003and Karl Berry.")
6004 (license license:fdl1.3+)))
ec40a050
DM
6005
6006(define-public lyx
6007 (package
6008 (name "lyx")
b17c8923 6009 (version "2.3.2-2")
ec40a050 6010 (source (origin
b17c8923 6011 (method url-fetch)
e5a03489
EF
6012 (uri (string-append "http://ftp.lyx.org/pub/lyx/stable/"
6013 (version-major+minor version) ".x/"
b17c8923
RW
6014 name "-" version ".tar.gz"))
6015 (sha256
6016 (base32
6017 "0vr0qwis6rhind6azfa270hqxci7rj8qb1kk5x6lm80mc34nvrqi"))
6018 (modules '((guix build utils)))
6019 (snippet
6020 '(begin
6021 (delete-file-recursively "3rdparty")
6022 #t))))
ec40a050
DM
6023 (build-system cmake-build-system)
6024 (arguments
6025 `(#:configure-flags `("-DLYX_USE_QT=QT5"
6026 "-DLYX_EXTERNAL_BOOST=1"
6027 "-DLYX_INSTALL=1"
6028 "-DLYX_RELEASE=1"
6029 ,(string-append "-DLYX_INSTALL_PREFIX="
6030 (assoc-ref %outputs "out")
6031 ;; Exact name and level is necessary.
e5a03489 6032 "/lyx" ,(version-major+minor version)))
ec40a050
DM
6033 #:phases
6034 (modify-phases %standard-phases
b17c8923
RW
6035 ;; See ;; https://www.lyx.org/trac/changeset/3a123b90af838b08680471d87170c38e56787df9/lyxgit
6036 (add-after 'unpack 'fix-compilation-with-boost-1.69
6037 (lambda _
6038 (substitute* "src/support/FileName.cpp"
6039 (("^template struct boost::detail::crc_table_t.*") ""))
6040 #t))
ec40a050
DM
6041 (add-after 'unpack 'patch-python
6042 (lambda* (#:key inputs #:allow-other-keys)
6043 (substitute* '("src/support/os.cpp")
b17c8923
RW
6044 (("\"python ")
6045 (string-append "\""
6046 (assoc-ref inputs "python")
6047 "/bin/python ")))
ec40a050
DM
6048 #t))
6049 (add-after 'patch-python 'patch-desktop-file
6050 (lambda* (#:key outputs #:allow-other-keys)
6051 (substitute* "lib/lyx.desktop.in"
b17c8923
RW
6052 (("Exec=")
6053 (string-append "Exec="
6054 (assoc-ref outputs "out")
6055 "/")))
ec40a050
DM
6056 #t))
6057 (add-before 'check 'setenv-check
6058 (lambda _
b17c8923
RW
6059 ;; Create missing file that would cause tests to fail.
6060 (with-output-to-file (string-append "../lyx-"
6061 ,version
6062 "/src/tests/check_layout.cmake")
6063 (const #t))
e5a03489
EF
6064 (setenv (string-append "LYX_DIR_"
6065 (string-join
6066 (string-split
6067 ,(version-major+minor version) #\-)) "x")
6068 (string-append (getcwd) "/../lyx-" ,version "/lib"))
ec40a050
DM
6069 #t))
6070 (add-after 'install 'install-symlinks
6071 (lambda* (#:key outputs #:allow-other-keys)
6072 (let ((out (assoc-ref outputs "out")))
6073 (mkdir-p (string-append out "/bin"))
e5a03489
EF
6074 (symlink (string-append "../lyx" ,(version-major+minor version)
6075 "/bin/lyx" ,(version-major+minor version))
6076 (string-append out "/bin/lyx" ,(version-major+minor version)))
ec40a050
DM
6077 #t))))))
6078 (inputs
6079 `(("boost" ,boost)
b17c8923 6080 ("hunspell" ,hunspell) ; Note: Could also use aspell instead.
ec40a050 6081 ("libx11" ,libx11)
b17c8923
RW
6082 ("mythes" ,mythes)
6083 ("python" ,python-2)
ec40a050
DM
6084 ("qtbase" ,qtbase)
6085 ("qtsvg" ,qtsvg)
6086 ("zlib" ,zlib)))
6087 (propagated-inputs
b17c8923
RW
6088 `(("texlive" ,(texlive-union (list texlive-fonts-ec)))))
6089 ;; FIXME: Python 3.7.0 cannot be used because the test infrastructure
6090 ;; "requires a bytes-like object, not 'str'". This may be fixed with
6091 ;; upgrades to Python.
ec40a050 6092 (native-inputs
b17c8923 6093 `(("python" ,python-2)
ec40a050
DM
6094 ("pkg-config" ,pkg-config)
6095 ("bc" ,bc)))
8960b2e6 6096 (home-page "https://www.lyx.org/")
ec40a050
DM
6097 (synopsis "Document preparation system with GUI")
6098 (description "LyX is a document preparation system. It excels at letting
6099you create complex technical and scientific articles with mathematics,
6100cross-references, bibliographies, indexes, etc. It is very good for working
6101with documents of any length in which the usual processing abilities are
6102required: automatic sectioning and pagination, spell checking and so forth.")
6103 (license license:gpl2+)))
7d50dff3
PN
6104
6105(define-public texlive-latex-media9
6106 (package
6107 (name "texlive-latex-media9")
6108 (version (number->string %texlive-revision))
6109 (source (origin
6110 (method svn-fetch)
6111 (uri (svn-reference
6112 (url (string-append "svn://www.tug.org/texlive/tags/"
6113 %texlive-tag "/Master/texmf-dist/"
6114 "/tex/latex/media9"))
6115 (revision %texlive-revision)))
6116 (file-name (string-append name "-" version "-checkout"))
6117 (sha256
6118 (base32
d4d9a1ec 6119 "0lhb2h5hxjq9alpk4r3gvg21pwyifs4ah6hqzp92k55mkp1xv73j"))))
7d50dff3
PN
6120 (build-system trivial-build-system)
6121 (arguments
6122 `(#:modules ((guix build utils))
6123 #:builder
6124 (begin
6125 (use-modules (guix build utils))
6126 (let ((target (string-append (assoc-ref %outputs "out")
6127 "/share/texmf-dist/tex/latex/media9")))
6128 (mkdir-p target)
6129 (copy-recursively (assoc-ref %build-inputs "source") target)
6130 #t))))
6131 (home-page "https://www.ctan.org/pkg/media9")
6132 (synopsis "Multimedia inclusion package with Adobe Reader-9/X compatibility")
6133 (description
6134 "The package provides an interface to embed interactive Flash (SWF) and 3D
6135objects (Adobe U3D & PRC), as well as video and sound files or streams in the
6136popular MP4, FLV and MP3 formats into PDF documents with Acrobat-9/X
6137compatibility. Playback of multimedia files uses the built-in Flash Player of
6138Adobe Reader and does, therefore, not depend on external plug-ins. Flash Player
6139supports the efficient H.264 codec for video compression.
6140
6141The package is based on the RichMedia Annotation, an Adobe addition to the PDF
6142specification. It replaces the now obsolete @code{movie15} package.")
6143 (license license:lppl)))
288c8c97
PN
6144
6145(define-public texlive-latex-ocgx2
6146 (package
6147 (name "texlive-latex-ocgx2")
6148 (version (number->string %texlive-revision))
6149 (source (origin
6150 (method svn-fetch)
6151 (uri (svn-reference
6152 (url (string-append "svn://www.tug.org/texlive/tags/"
6153 %texlive-tag "/Master/texmf-dist/"
6154 "/tex/latex/ocgx2"))
6155 (revision %texlive-revision)))
6156 (file-name (string-append name "-" version "-checkout"))
6157 (sha256
6158 (base32
d4d9a1ec 6159 "0zp00jg058djx8xp0xqwas92y3j97clkyd8z6pqr890yqy06myqb"))))
288c8c97
PN
6160 (build-system trivial-build-system)
6161 (arguments
6162 `(#:modules ((guix build utils))
6163 #:builder
6164 (begin
6165 (use-modules (guix build utils))
6166 (let ((target (string-append (assoc-ref %outputs "out")
6167 "/share/texmf-dist/tex/latex/ogcx2")))
6168 (mkdir-p target)
6169 (copy-recursively (assoc-ref %build-inputs "source") target)
6170 #t))))
6171 (home-page "https://www.ctan.org/pkg/ocgx2")
6172 (synopsis "Provide OCG (Optional Content Groups) support within a PDF document")
6173 (description
6174 "This package provides OCG (Optional Content Groups) support within a PDF
6175document.
6176
6177It re-implements the functionality of the @code{ocg}, @code{ocgx}, and
6178@code{ocg-p} packages and adds support for all known engines and back-ends
6179including:
6180
6181@itemize
6182@item LaTeX → dvips → @code{ps2pdf}/Distiller
6183@item (Xe)LaTeX(x) → @code{dvipdfmx}
6184@item pdfLaTeX and LuaLaTeX .
6185@end itemize
6186
6187It also ensures compatibility with the @code{media9} and @code{animate} packages.")
6188 (license license:lppl)))
b718793e
PN
6189
6190(define-public texlive-latex-ms
6191 (package
6192 (name "texlive-latex-ms")
6193 (version (number->string %texlive-revision))
6194 (source (origin
6195 (method svn-fetch)
6196 (uri (texlive-ref "latex" "ms"))
6197 (file-name (string-append name "-" version "-checkout"))
6198 (sha256
6199 (base32
6200 "0m4wx3yjb5al1qsv995z8fii8xxy96mcfihbnlx43lpgayiwz35s"))))
6201 (build-system texlive-build-system)
6202 (arguments
6203 '(#:tex-directory "latex/ms"
6204 #:tex-format "latex"))
6205 (home-page "https://ctan.org/pkg/ms")
6206 (synopsis "Various LATEX packages by Martin Schröder")
6207 (description
6208 "A bundle of LATEX packages by Martin Schröder; the collection comprises:
6209
6210@itemize
6211@item @command{count1to}, make use of fixed TEX counters;
6212@item @command{everysel}, set commands to execute every time a font is selected;
6213@item @command{everyshi}, set commands to execute whenever a page is shipped out;
6214@item @command{multitoc}, typeset the table of contents in multiple columns;
6215@item @command{prelim2e}, mark typeset pages as preliminary; and
6216@item @command{ragged2e}, typeset ragged text and allow hyphenation.
6217@end itemize\n")
6218 (license license:lppl1.3c+)))
707babdd
PN
6219
6220(define-public texlive-latex-needspace
6221 (package
6222 (name "texlive-latex-needspace")
6223 (version (number->string %texlive-revision))
6224 (source (origin
6225 (method svn-fetch)
6226 (uri (texlive-ref "latex" "needspace"))
6227 (file-name (string-append name "-" version "-checkout"))
6228 (sha256
6229 (base32
6230 "0kw80f5jh4gdpa2ka815abza3gr5z8b929w0745vrlc59pl0017y"))))
6231 (build-system texlive-build-system)
6232 (arguments
6233 '(#:tex-directory "latex/needspace"
6234 #:tex-format "latex"))
6235 (inputs
6236 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
6237 (home-page "https://www.ctan.org/pkg/needspace")
6238 (synopsis "Insert pagebreak if not enough space")
6239 (description
6240 "Provides commands to disable pagebreaking within a given vertical
6241space. If there is not enough space between the command and the bottom of the
6242page, a new page will be started.")
6243 (license license:lppl)))
0e73c11b 6244
73635e3f
RW
6245(define-public texlive-latex-changepage
6246 (package
6247 (name "texlive-latex-changepage")
6248 (version (number->string %texlive-revision))
6249 (source
6250 (origin
6251 (method svn-fetch)
6252 (uri (texlive-ref "latex" "changepage"))
6253 (sha256
6254 (base32
6255 "1rpw8xg5p4jsyh236jma9dz3l29wjx4062f154b3wak5yjcxyxyb"))))
6256 (build-system texlive-build-system)
6257 (arguments
6258 '(#:tex-directory "latex/changepage"
6259 #:tex-format "latex"))
6260 (inputs
6261 `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
6262 (home-page "https://www.ctan.org/pkg/changepage")
6263 (synopsis "Margin adjustment and detection of odd/even pages")
6264 (description
6265 "The package provides commands to change the page layout in the middle of
6266a document, and to robustly check for typesetting on odd or even pages.
6267Instructions for use are at the end of the file. The package is an extraction
6268of code from the @code{memoir} class, whose user interface it shares.")
6269 (license license:lppl1.3+)))
6270
0e73c11b
PN
6271(define-public texlive-latex-eukdate
6272 (package
6273 (name "texlive-latex-eukdate")
6274 (version (number->string %texlive-revision))
6275 (source
6276 (origin
6277 (method svn-fetch)
6278 (uri (svn-reference
6279 (url (string-append "svn://www.tug.org/texlive/tags/"
6280 %texlive-tag "/Master/texmf-dist/"
6281 "/tex/latex/eukdate"))
6282 (revision %texlive-revision)))
6283 (file-name (string-append name "-" version "-checkout"))
6284 (sha256
6285 (base32
6286 "18xan116l8w47v560bkw6nbhkrml7g04xrlzk3jrpc7qsyf3n5fz"))))
6287 (build-system trivial-build-system)
6288 (arguments
6289 `(#:modules ((guix build utils))
6290 #:builder
6291 (begin
6292 (use-modules (guix build utils))
6293 (let ((target (string-append (assoc-ref %outputs "out")
6294 "/share/texmf-dist/tex/latex/eukdate")))
6295 (mkdir-p target)
6296 (copy-recursively (assoc-ref %build-inputs "source") target)
6297 #t))))
6298 (home-page "https://www.ctan.org/pkg/eukdate")
6299 (synopsis "UK format dates, with weekday")
6300 (description
6301 "The package is used to change the format of @code{\\today}’s date,
6302including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which
6303is preferred in many parts of the world, as distinct from that which is used in
6304@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'.")
6305 (license license:lppl)))
910d67fb
PN
6306
6307(define-public texlive-generic-ulem
6308 (package
6309 (name "texlive-generic-ulem")
6310 (version (number->string %texlive-revision))
6311 (source
6312 (origin
6313 (method svn-fetch)
6314 (uri (svn-reference
6315 (url (string-append "svn://www.tug.org/texlive/tags/"
6316 %texlive-tag "/Master/texmf-dist/"
6317 "/tex/generic/ulem"))
6318 (revision %texlive-revision)))
6319 (file-name (string-append name "-" version "-checkout"))
6320 (sha256
6321 (base32
6322 "1rzdniqq9zk39w8ch8ylx3ywh2mj87s4ivchrsk2b8nx06jyn797"))))
6323 (build-system trivial-build-system)
6324 (arguments
6325 `(#:modules ((guix build utils))
6326 #:builder
6327 (begin
6328 (use-modules (guix build utils))
6329 (let ((target (string-append (assoc-ref %outputs "out")
6330 "/share/texmf-dist/tex/generic/ulem")))
6331 (mkdir-p target)
6332 (copy-recursively (assoc-ref %build-inputs "source") target)
6333 #t))))
6334 (home-page "https://www.ctan.org/pkg/ulem")
6335 (synopsis "Underline text in TeX")
6336 (description
6337 "The package provides an @code{\\ul} (underline) command which will break
6338over line ends; this technique may be used to replace @code{\\em} (both in that
6339form and as the @code{\\emph} command), so as to make output look as if it comes
6340from a typewriter. The package also offers double and wavy underlining, and
6341striking out (line through words) and crossing out (/// over words).")
6342 (license license:lppl1.3c+)))
17ef5f1f
PN
6343
6344(define-public texlive-latex-pgf
6345 (package
6346 (name "texlive-latex-pgf")
6347 (version (number->string %texlive-revision))
6348 (source
6349 (origin
6350 (method svn-fetch)
6351 (uri (svn-reference
6352 (url (string-append "svn://www.tug.org/texlive/tags/"
6353 %texlive-tag "/Master/texmf-dist/"
6354 "/tex/latex/pgf"))
6355 (revision %texlive-revision)))
6356 (file-name (string-append name "-" version "-checkout"))
6357 (sha256
6358 (base32
6359 "1dq8p10pz8wn0vx412m7d7d5gj1syxly3yqdqvf7lv2xl8zndn5h"))))
6360 (build-system trivial-build-system)
6361 (native-inputs
6362 `(("texlive-latex-pgf-generic"
6363 ,(origin
6364 (method svn-fetch)
6365 (uri (svn-reference
6366 (url (string-append "svn://www.tug.org/texlive/tags/"
6367 %texlive-tag "/Master/texmf-dist/"
6368 "/tex/generic/pgf"))
6369 (revision %texlive-revision)))
6370 (file-name (string-append "texlive-latex-pgf-generic" version "-checkout"))
6371 (sha256
6372 (base32
6373 "0xkxw26sjzr5npjpzpr28yygwdbhzpdd0hsk80gjpidhcxmz393i"))))))
0fc71e4b
RW
6374 (propagated-inputs
6375 `(("texlive-latex-xcolor" ,texlive-latex-xcolor)))
17ef5f1f
PN
6376 (arguments
6377 `(#:modules ((guix build utils))
6378 #:builder
6379 (begin
6380 (use-modules (guix build utils))
6381 (let ((target-generic (string-append (assoc-ref %outputs "out")
6382 "/share/texmf-dist/tex/generic/pgf"))
6383 (target-latex (string-append (assoc-ref %outputs "out")
6384 "/share/texmf-dist/tex/latex/pgf")))
6385 (mkdir-p target-generic)
6386 (mkdir-p target-latex)
6387 (copy-recursively (assoc-ref %build-inputs "texlive-latex-pgf-generic") target-generic)
6388 (copy-recursively (assoc-ref %build-inputs "source") target-latex)
6389 #t))))
6390 (home-page "https://www.ctan.org/pkg/tikz")
6391 (synopsis "Create PostScript and PDF graphics in TeX")
6392 (description
6393 "PGF is a macro package for creating graphics. It is platform- and
6394format-independent and works together with the most important TeX backend
6395drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer
6396called TikZ.
6397
6398Its usage is similar to pstricks and the standard picture environment. PGF
6399works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can
6400produce either PostScript or PDF output.")
6401 (license license:lppl1.3c+)))
e7b2937d
PN
6402
6403(define-public texlive-latex-koma-script
6404 (package
6405 (name "texlive-latex-koma-script")
6406 (version (number->string %texlive-revision))
6407 (source (origin
6408 (method svn-fetch)
6409 (uri (svn-reference
6410 (url (string-append "svn://www.tug.org/texlive/tags/"
6411 %texlive-tag "/Master/texmf-dist/"
6412 "/tex/latex/koma-script"))
6413 (revision %texlive-revision)))
6414 (file-name (string-append name "-" version "-checkout"))
6415 (sha256
6416 (base32
d4d9a1ec 6417 "0nqwf0sr4mf3v9gqa6apv6ml2xhcdwax0vgyf12a672g7rpdyvgm"))))
e7b2937d
PN
6418 (build-system trivial-build-system)
6419 (arguments
6420 `(#:modules ((guix build utils)
6421 (ice-9 match))
6422 #:builder
6423 (begin
6424 (use-modules (guix build utils)
6425 (ice-9 match))
6426 (let ((root (string-append (assoc-ref %outputs "out")
6427 "/share/texmf-dist/"))
6428 (pkgs '(("source" . "tex/latex/koma-script"))))
6429 (for-each (match-lambda
6430 ((pkg . dir)
6431 (let ((target (string-append root dir)))
6432 (mkdir-p target)
6433 (copy-recursively (assoc-ref %build-inputs pkg)
6434 target))))
6435 pkgs)
6436 #t))))
6437 (home-page "https://www.ctan.org/pkg/koma-script")
6438 (synopsis "Bundle of versatile classes and packages")
6439 (description
6440 "The KOMA-Script bundle provides replacements for the article, report, and
6441book classes with emphasis on typography and versatility. There is also a
6442letter class.
6443
6444The bundle also offers:
6445
6446@itemize
6447@item a package for calculating type areas in the way laid down by the
6448typographer Jan Tschichold,
6449@item packages for easily changing and defining page styles,
6450@item a package scrdate for getting not only the current date but also the name
6451of the day, and
6452@item a package scrtime for getting the current time.
6453@end itemize
6454
6455All these packages may be used not only with KOMA-Script classes but also with
6456the standard classes.
6457
6458Since every package has its own version number, the version number quoted only
6459refers to the version of scrbook, scrreprt, scrartcl, scrlttr2 and
6460typearea (which are the main parts of the bundle).")
6461 (license license:lppl1.3+)))
893fbf12
RW
6462
6463(define-public texlive-generic-listofitems
6464 (package
6465 (name "texlive-generic-listofitems")
6466 (version (number->string %texlive-revision))
6467 (source (origin
6468 (method svn-fetch)
6469 (uri (svn-reference
6470 (url (string-append "svn://www.tug.org/texlive/tags/"
6471 %texlive-tag "/Master/texmf-dist/"
6472 "/tex/generic/listofitems"))
6473 (revision %texlive-revision)))
6474 (file-name (string-append name "-" version "-checkout"))
6475 (sha256
6476 (base32
d4d9a1ec 6477 "0hs28fc0v2l92ad9las9b8xcckyrdrwmyhcx1yzmbr6s7s6nvsx8"))))
893fbf12
RW
6478 (build-system trivial-build-system)
6479 (arguments
6480 `(#:modules ((guix build utils))
6481 #:builder
6482 (begin
6483 (use-modules (guix build utils))
6484 (let ((target (string-append (assoc-ref %outputs "out")
6485 "/share/texmf-dist/tex/generic/listofitems")))
6486 (mkdir-p target)
6487 (copy-recursively (assoc-ref %build-inputs "source") target)
6488 #t))))
6489 (home-page "https://www.ctan.org/pkg/listofitems")
88868575 6490 (synopsis "Grab items in lists using user-specified separation character")
893fbf12
RW
6491 (description
6492 "This package allows one to capture all the items of a list, for which
6493the parsing character has been selected by the user, and to access any of
6494these items with a simple syntax.")
6495 (license license:lppl1.3c+)))
1d0669f4
RW
6496
6497(define-public texlive-latex-readarray
6498 (package
6499 (name "texlive-latex-readarray")
6500 (version (number->string %texlive-revision))
6501 (source (origin
6502 (method svn-fetch)
6503 (uri (svn-reference
6504 (url (string-append "svn://www.tug.org/texlive/tags/"
6505 %texlive-tag "/Master/texmf-dist/"
6506 "/tex/latex/readarray"))
6507 (revision %texlive-revision)))
6508 (file-name (string-append name "-" version "-checkout"))
6509 (sha256
6510 (base32
6511 "0c53k180ivn1n7fz3ngvd2w1i5dw3kxml0n64vhki88xsylz7lxp"))))
6512 (build-system trivial-build-system)
6513 (arguments
6514 `(#:modules ((guix build utils))
6515 #:builder
6516 (begin
6517 (use-modules (guix build utils))
6518 (let ((target (string-append (assoc-ref %outputs "out")
6519 "/share/texmf-dist/tex/latex/readarray")))
6520 (mkdir-p target)
6521 (copy-recursively (assoc-ref %build-inputs "source") target)
6522 #t))))
6523 (propagated-inputs
6524 `(("texlive-generic-listofitems" ,texlive-generic-listofitems)))
6525 (home-page "https://www.ctan.org/pkg/readarray")
6526 (synopsis "Read, store and recall array-formatted data")
6527 (description
6528 "This package allows the user to input formatted data into elements of a
65292-D or 3-D array and to recall that data at will by individual cell number.
6530The data can be but need not be numerical in nature. It can be, for example,
6531formatted text.")
6532 (license license:lppl1.3)))
f50f343e
RW
6533
6534(define-public texlive-latex-verbatimbox
6535 (package
6536 (name "texlive-latex-verbatimbox")
6537 (version (number->string %texlive-revision))
6538 (source (origin
6539 (method svn-fetch)
6540 (uri (svn-reference
6541 (url (string-append "svn://www.tug.org/texlive/tags/"
6542 %texlive-tag "/Master/texmf-dist/"
6543 "/tex/latex/verbatimbox"))
6544 (revision %texlive-revision)))
6545 (file-name (string-append name "-" version "-checkout"))
6546 (sha256
6547 (base32
6548 "0qh1cgvfs463zsi2pjg490gj0mkjfdpfc381j10cbb5la304psna"))))
6549 (build-system trivial-build-system)
6550 (arguments
6551 `(#:modules ((guix build utils))
6552 #:builder
6553 (begin
6554 (use-modules (guix build utils))
6555 (let ((target (string-append (assoc-ref %outputs "out")
6556 "/share/texmf-dist/tex/latex/verbatimbox")))
6557 (mkdir-p target)
6558 (copy-recursively (assoc-ref %build-inputs "source") target)
6559 #t))))
6560 (propagated-inputs
6561 `(("texlive-latex-readarray" ,texlive-latex-readarray)))
6562 (home-page "https://www.ctan.org/pkg/verbatimbox")
6563 (synopsis "Deposit verbatim text in a box")
6564 (description
6565 "The package provides a @code{verbbox} environment to place its contents
6566into a globally available box, or into a box specified by the user. The
6567global box may then be used in a variety of situations (for example, providing
6568a replica of the @code{boxedverbatim} environment itself). A valuable use is
6569in places where the standard @code{verbatim} environment (which is based on a
6570@code{trivlist}) may not appear.")
6571 (license license:lppl1.3+)))
4348a059
RW
6572
6573(define-public texlive-latex-examplep
6574 (package
6575 (name "texlive-latex-examplep")
6576 (version (number->string %texlive-revision))
6577 (source (origin
6578 (method svn-fetch)
6579 (uri (svn-reference
6580 (url (string-append "svn://www.tug.org/texlive/tags/"
6581 %texlive-tag "/Master/texmf-dist/"
6582 "/tex/latex/examplep"))
6583 (revision %texlive-revision)))
6584 (file-name (string-append name "-" version "-checkout"))
6585 (sha256
6586 (base32
6587 "0fsvvmz68ij0zwfzrny6x13d92grxr4ap59lxgah4smbkccd6s27"))))
6588 (build-system trivial-build-system)
6589 (arguments
6590 `(#:modules ((guix build utils))
6591 #:builder
6592 (begin
6593 (use-modules (guix build utils))
6594 (let ((target (string-append (assoc-ref %outputs "out")
6595 "/share/texmf-dist/tex/latex/examplep")))
6596 (mkdir-p target)
6597 (copy-recursively (assoc-ref %build-inputs "source") target)
6598 #t))))
6599 (home-page "https://www.ctan.org/pkg/examplep")
6600 (synopsis "Verbatim phrases and listings in LaTeX")
6601 (description
6602 "Examplep provides sophisticated features for typesetting verbatim source
6603code listings, including the display of the source code and its compiled LaTeX
6604or METAPOST output side-by-side, with automatic width detection and enabled
6605page breaks (in the source), without the need for specifying the source twice.
6606Special care is taken that section, page and footnote numbers do not interfere
6607with the main document. For typesetting short verbatim phrases, a replacement
6608for the @code{\\verb} command is also provided in the package, which can be
6609used inside tables and moving arguments such as footnotes and section
6610titles.")
6611 ;; No version of the GPL is specified.
6612 (license license:gpl3+)))
547ab650
PN
6613
6614(define-public texlive-generic-xypic
6615 (package
6616 (name "texlive-generic-xypic")
6617 (version (number->string %texlive-revision))
6618 (source
6619 (origin
6620 (method svn-fetch)
6621 (uri (svn-reference
6622 (url (string-append "svn://www.tug.org/texlive/tags/"
6623 %texlive-tag "/Master/texmf-dist/"
6624 "/tex/generic/xypic"))
6625 (revision %texlive-revision)))
6626 (file-name (string-append name "-" version "-checkout"))
6627 (sha256
6628 (base32
6629 "1g5cyxwdfznq4lk9zl6fkjkapmhmwd2cm4m5aibxj20qgwnaggfz"))))
6630 (build-system trivial-build-system)
6631 (arguments
6632 `(#:modules ((guix build utils))
6633 #:builder
6634 (begin
6635 (use-modules (guix build utils))
6636 (let ((target (string-append (assoc-ref %outputs "out")
6637 "/share/texmf-dist/tex/generic/xypic")))
6638 (mkdir-p target)
6639 (copy-recursively (assoc-ref %build-inputs "source") target)
6640 #t))))
6641 (home-page "https://www.ctan.org/pkg/xypic")
6642 (synopsis "Flexible diagramming macros for TeX")
6643 (description
6644 "A package for typesetting a variety of graphs and diagrams with TeX.
6645Xy-pic works with most formats (including LaTeX, AMS-LaTeX, AMS-TeX, and plain
6646TeX).")
6647 (license license:gpl3+)))
1d9ce461
PN
6648
6649(define-public texlive-fonts-xypic
6650 (package
6651 (name "texlive-fonts-xypic")
6652 (version (number->string %texlive-revision))
6653 (source (origin
6654 (method svn-fetch)
6655 (uri (svn-reference
6656 (url (string-append "svn://www.tug.org/texlive/tags/"
6657 %texlive-tag "/Master/texmf-dist/"
6658 "/fonts/source/public/xypic"))
6659 (revision %texlive-revision)))
6660 (file-name (string-append name "-" version "-checkout"))
6661 (sha256
6662 (base32
6663 "0p20v1257kwsqnrk98cdhhiz2viv8l3ly4xay4by0an3j37m9xs3"))))
6664 (build-system trivial-build-system)
6665 (arguments
6666 `(#:modules ((guix build utils)
6667 (ice-9 match))
6668 #:builder
6669 (begin
6670 (use-modules (guix build utils)
6671 (ice-9 match))
6672 (let ((root (string-append (assoc-ref %outputs "out")
6673 "/share/texmf-dist/"))
6674 (pkgs '(("source" . "fonts/source/public/xypic")
6675 ("xypic-afm" . "fonts/afm/public/xypic")
6676 ("xypic-type1" . "fonts/type1/public/xypic")
6677 ("xypic-enc" . "fonts/enc/dvips/xypic"))))
6678 (for-each (match-lambda
6679 ((pkg . dir)
6680 (let ((target (string-append root dir)))
6681 (mkdir-p target)
6682 (copy-recursively (assoc-ref %build-inputs pkg)
6683 target))))
6684 pkgs)
6685 #t))))
6686 (native-inputs
6687 `(("xypic-afm"
6688 ,(origin
6689 (method svn-fetch)
6690 (uri (svn-reference
6691 (url (string-append "svn://www.tug.org/texlive/tags/"
6692 %texlive-tag "/Master/texmf-dist/"
6693 "/fonts/afm/public/xypic"))
6694 (revision %texlive-revision)))
6695 (file-name (string-append name "-afm-" version "-checkout"))
6696 (sha256
6697 (base32
6698 "149xdijxp8lw3s0qv2aqxxxyyn748z57dpr596rjvkqdffpnsddh"))))
6699 ("xypic-type1"
6700 ,(origin
6701 (method svn-fetch)
6702 (uri (svn-reference
6703 (url (string-append "svn://www.tug.org/texlive/tags/"
6704 %texlive-tag "/Master/texmf-dist/"
6705 "/fonts/type1/public/xypic"))
6706 (revision %texlive-revision)))
6707 (file-name (string-append name "-type1-" version "-checkout"))
6708 (sha256
6709 (base32
6710 "1bln89wib7g3hcv2jny3qi6jb73k9d2vbgx3wnnjwp3ryg0846if"))))
6711 ("xypic-enc"
6712 ,(origin
6713 (method svn-fetch)
6714 (uri (svn-reference
6715 (url (string-append "svn://www.tug.org/texlive/tags/"
6716 %texlive-tag "/Master/texmf-dist/"
6717 "/fonts/enc/dvips/xypic"))
6718 (revision %texlive-revision)))
6719 (file-name (string-append name "-enc-" version "-checkout"))
6720 (sha256
6721 (base32
6722 "0yi8vms3203l3p5slnhrrlzzp0f0jw77fkcvcaicrz2vmw9z99x7"))))))
6723 (home-page "https://www.ctan.org/pkg/xypic")
6724 (synopsis "Fonts for XY-pic")
6725 (description "This package provides the XY-pic fonts.")
6726 (license license:gpl3+)))
31595689
PN
6727
6728(define-public texlive-bibtex
6729 (package
6730 (name "texlive-bibtex")
6731 (version (number->string %texlive-revision))
6732 (source
6733 (origin
6734 (method svn-fetch)
6735 (uri (svn-reference
6736 (url (string-append "svn://www.tug.org/texlive/tags/"
6737 %texlive-tag "/Master/texmf-dist/"
6738 "/bibtex"))
6739 (revision %texlive-revision)))
6740 (file-name (string-append name "-" version "-checkout"))
6741 (sha256
6742 (base32
d4d9a1ec 6743 "0hnbs0s1znbn32hfcsyijl39z81sdb00jf092a4blqz421qs2mbv"))))
31595689
PN
6744 (build-system trivial-build-system)
6745 (arguments
6746 `(#:modules ((guix build utils))
6747 #:builder
6748 (begin
6749 (use-modules (guix build utils))
6750 (let ((target (string-append (assoc-ref %outputs "out")
6751 "/share/texmf-dist/bibtex")))
6752 (mkdir-p target)
6753 (copy-recursively (assoc-ref %build-inputs "source") target)
6754 #t))))
6755 (home-page "https://www.ctan.org/pkg/bibtex")
6756 (synopsis "Process bibliographies for LaTeX")
6757 (description
6758 "BibTeX allows the user to store his citation data in generic form, while
6759printing citations in a document in the form specified by a BibTeX style, to
6760be specified in the document itself (one often needs a LaTeX citation-style
6761package, such as @command{natbib} as well).")
6762 (license license:knuth)))
744b883e
PN
6763
6764(define-public texlive-fonts-charter
6765 (package
6766 (name "texlive-fonts-charter")
6767 (version (number->string %texlive-revision))
6768 (source (origin
6769 (method svn-fetch)
6770 (uri (svn-reference
6771 (url (string-append "svn://www.tug.org/texlive/tags/"
6772 %texlive-tag "/Master/texmf-dist/"
6773 "/fonts/type1/bitstrea/charter"))
6774 (revision %texlive-revision)))
6775 (file-name (string-append name "-" version "-checkout"))
6776 (sha256
6777 (base32
6778 "0yvib45xxff3jm5270zij4q888pivbc18cqs7lz4pqfhn1am4wnv"))))
6779 (build-system trivial-build-system)
6780 (arguments
6781 `(#:modules ((guix build utils)
6782 (ice-9 match))
6783 #:builder
6784 (begin
6785 (use-modules (guix build utils)
6786 (ice-9 match))
6787 (let ((root (string-append (assoc-ref %outputs "out")
6788 "/share/texmf-dist/"))
6789 (pkgs '(("source" . "fonts/type1/bitstrea/charter")
6790 ("charter-afm" . "fonts/afm/bitstrea/charter")
6791 ("charter-tfm" . "fonts/tfm/bitstrea/charter"))))
6792 (for-each (match-lambda
6793 ((pkg . dir)
6794 (let ((target (string-append root dir)))
6795 (mkdir-p target)
6796 (copy-recursively (assoc-ref %build-inputs pkg)
6797 target))))
6798 pkgs)
6799 #t))))
6800 (native-inputs
6801 `(("charter-afm"
6802 ,(origin
6803 (method svn-fetch)
6804 (uri (svn-reference
6805 (url (string-append "svn://www.tug.org/texlive/tags/"
6806 %texlive-tag "/Master/texmf-dist/"
6807 "/fonts/afm/bitstrea/charter"))
6808 (revision %texlive-revision)))
6809 (file-name (string-append name "-afm-" version "-checkout"))
6810 (sha256
6811 (base32
6812 "02nbkqrlr3vypnzslmr7dxg1353mmc0rl4ynx0s6qbvf313fq76a"))))
6813 ("charter-tfm"
6814 ,(origin
6815 (method svn-fetch)
6816 (uri (svn-reference
6817 (url (string-append "svn://www.tug.org/texlive/tags/"
6818 %texlive-tag "/Master/texmf-dist/"
6819 "/fonts/tfm/bitstrea/charter"))
6820 (revision %texlive-revision)))
6821 (file-name (string-append name "-tfm-" version "-checkout"))
6822 (sha256
6823 (base32
6824 "0j7ci9vprivbhac70aq0z7m23hqcpx1g0i3wp1k0h8ilhimj80xk"))))))
6825 (home-page "https://www.ctan.org/pkg/charter")
6826 (synopsis "Charter fonts for TeX")
6827 (description "A commercial text font donated for the common good. Support
6828for use with LaTeX is available in @code{freenfss}, part of
6829@command{psnfss}. ")
6830 (license (license:non-copyleft (string-append "http://mirrors.ctan.org/"
6831 "fonts/charter/readme.charter")))))
a5bfedb4
PN
6832
6833(define-public texlive-context-base
6834 (package
6835 (name "texlive-context-base")
6836 (version (number->string %texlive-revision))
6837 (source (origin
6838 (method svn-fetch)
6839 (uri (svn-reference
6840 (url (string-append "svn://www.tug.org/texlive/tags/"
6841 %texlive-tag "/Master/texmf-dist/"
6842 "/tex/context/base"))
6843 (revision %texlive-revision)))
6844 (file-name (string-append name "-" version "-checkout"))
6845 (sha256
6846 (base32
d4d9a1ec 6847 "0rlx4qqijms1n64gjx475kvip8l322fh7v17zkmwp1l1g0w3vlyz"))))
a5bfedb4
PN
6848 (build-system trivial-build-system)
6849 (arguments
6850 `(#:modules ((guix build utils))
6851 #:builder
6852 (begin
6853 (use-modules (guix build utils))
6854 (let ((target (string-append (assoc-ref %outputs "out")
6855 "/share/texmf-dist/tex/context/case")))
6856 (mkdir-p target)
6857 (copy-recursively (assoc-ref %build-inputs "source") target)
6858 #t))))
6859 (home-page "https://www.ctan.org/pkg/context")
6860 (synopsis "Full featured, parameter driven macro package for TeX")
6861 (description "A full featured, parameter driven macro package, which fully
6862supports advanced interactive documents. See the ConTeXt garden for a wealth
6863of support information.")
6864 (license license:gpl2+)))
63133706
RW
6865
6866(define-public texlive-latex-beamer
6867 (package
6868 (name "texlive-latex-beamer")
6869 (version (number->string %texlive-revision))
6870 (source (origin
6871 (method svn-fetch)
6872 (uri (svn-reference
6873 (url (string-append "svn://www.tug.org/texlive/tags/"
6874 %texlive-tag "/Master/texmf-dist/"
6875 "/tex/latex/beamer"))
6876 (revision %texlive-revision)))
6877 (file-name (string-append name "-" version "-checkout"))
6878 (sha256
6879 (base32
6880 "09y3qwbj0nckshvg9afgwcv9v3zdif1d7bnpzrggsa1fbr80mgk2"))))
6881 (build-system trivial-build-system)
6882 (outputs '("out" "doc"))
6883 (arguments
6884 `(#:modules ((guix build utils))
6885 #:builder
6886 (begin
6887 (use-modules (guix build utils))
6888 (let ((target (string-append (assoc-ref %outputs "out")
6889 "/share/texmf-dist/tex/latex/beamer"))
6890 (docs (string-append (assoc-ref %outputs "doc")
6891 "/share/texmf-dist/doc/latex/beamer/")))
6892 (mkdir-p target)
6893 (copy-recursively (assoc-ref %build-inputs "source") target)
6894
6895 (mkdir-p docs)
6896 (copy-recursively (assoc-ref %build-inputs "docs") docs)
6897 #t))))
6898 (propagated-inputs
6899 `(("texlive-latex-hyperref" ,texlive-latex-hyperref)
6900 ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
6901 ("texlive-latex-etoolbox" ,texlive-latex-etoolbox)
6902 ("texlive-latex-pgf" ,texlive-latex-pgf)))
6903 (native-inputs
6904 `(("docs"
6905 ,(origin
6906 (method svn-fetch)
6907 (uri (svn-reference
6908 (url (string-append "svn://www.tug.org/texlive/tags/"
6909 %texlive-tag "/Master/texmf-dist/"
6910 "/doc/latex/beamer"))
6911 (revision %texlive-revision)))
6912 (file-name (string-append name "-" version "-checkout"))
6913 (sha256
6914 (base32
6915 "102b18b9nw9dicqqgjwx0srh1mav8vh9wdvwayn741niza9hac23"))))))
6916 (home-page "https://www.ctan.org/pkg/beamer")
6917 (synopsis "LaTeX class for producing presentations and slides")
6918 (description "The beamer LaTeX class can be used for producing slides.
6919The class works in both PostScript and direct PDF output modes, using the
6920@code{pgf} graphics system for visual effects. Content is created in the
6921@code{frame} environment, and each frame can be made up of a number of slides
6922using a simple notation for specifying material to appear on each slide within
6923a frame. Short versions of title, authors, institute can also be specified as
6924optional parameters. Whole frame graphics are supported by plain frames. The
6925class supports @code{figure} and @code{table} environments, transparency
6926effects, varying slide transitions and animations.")
6927 ;; Code is dual licensed under GPLv2+ or LPPL1.3c+; documentation is
6928 ;; dual-licensed under either FDLv1.3+ or LPPL1.3c+.
6929 (license (list license:lppl1.3c+ license:gpl2+ license:fdl1.3+))))
cafd4d38
RW
6930
6931(define-public texlive-latex-xmpincl
6932 (package
6933 (name "texlive-latex-xmpincl")
6934 (version (number->string %texlive-revision))
6935 (source
6936 (origin
6937 (method svn-fetch)
6938 (uri (texlive-ref "latex" "xmpincl"))
6939 (sha256
6940 (base32
6941 "0lq3dfb4fsw955gjwllnk7cg00ciq5mva64mlpbva6g2jz117734"))))
6942 (build-system texlive-build-system)
6943 (arguments '(#:tex-directory "latex/xmpincl"))
6944 (home-page "http://www.ctan.org/pkg/xmpincl")
6945 (synopsis "Include eXtensible Metadata Platform data in pdfLaTeX")
6946 (description
6947 "The XMP (eXtensible Metadata platform) is a framework to add metadata to
6948digital material to enhance the workflow in publication. The essence is that
6949the metadata is stored in an XML file, and this XML stream is then embedded in
6950the file to which it applies.")
6951 (license license:gpl3+)))
f87dcb4d
RW
6952
6953(define-public texlive-latex-pdfx
6954 (package
6955 (name "texlive-latex-pdfx")
6956 (version (number->string %texlive-revision))
6957 (source
6958 (origin
6959 (method svn-fetch)
6960 (uri (texlive-ref "latex" "pdfx"))
6961 (sha256
6962 (base32
6963 "0ikxg8yzq78hy5b9x13d4nah46d0yvmwlqmdri06pygbx116dcac"))))
6964 (build-system texlive-build-system)
6965 (arguments
6966 '(#:tex-directory "latex/pdfx"
6967 #:phases
6968 (modify-phases %standard-phases
6969 (add-after 'unpack 'fix-encoding
6970 (lambda _
6971 (substitute* "pdfx.dtx"
6972 ((" .+umaczy") "umaczy"))
6973 #t))
6974 (add-before 'install 'install-tex-files
6975 (lambda* (#:key inputs outputs #:allow-other-keys)
6976 (let ((target (string-append (assoc-ref outputs "out")
6977 "/share/texmf-dist/tex/latex/pdfx")))
6978 (mkdir-p target)
6979 (copy-recursively (assoc-ref inputs "texlive-tex-pdfx") target)
6980 ;; Install the generated version in the "install" phase.
6981 (delete-file (string-append target "/pdfx.sty"))
6982 #t))))))
6983 (propagated-inputs
6984 `(("texlive-generic-pdftex" ,texlive-generic-pdftex)))
6985 (native-inputs
6986 `(("texlive-tex-pdfx"
6987 ,(origin
6988 (method svn-fetch)
6989 (uri (svn-reference
6990 (url (string-append "svn://www.tug.org/texlive/tags/"
6991 %texlive-tag "/Master/texmf-dist/"
6992 "/tex/latex/pdfx"))
6993 (revision %texlive-revision)))
6994 (file-name (string-append "texlive-tex-latex-pdfx-" version "-checkout"))
6995 (sha256
6996 (base32
6997 "14j1zsvqc59ims3sk34v6km8db6cimks28y5fcxcr5mi2ykvj4vf"))))))
6998 (home-page "https://www.ctan.org/pkg/pdfx")
6999 (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX")
7000 (description
7001 "This package helps LaTeX users to create PDF/X, PFD/A and other
7002standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX.")
7003 (license license:lppl1.2+)))