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