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