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