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