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