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