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