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