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