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