;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gd)
#:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages ruby)
#:use-module (gnu packages shells)
(define texlive-extra-src
(origin
(method url-fetch)
- (uri "ftp://tug.org/historic/systems/texlive/2017/texlive-20170524-extra.tar.xz")
+ (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-extra.tar.xz")
(sha256 (base32
- "0zvd2zskk78ig114mfj24g15qys41hzqv59fmqpirdbgq9c9gr5g"))))
+ "0a83kymxc8zmlxjb0y1gf6mx7qnf0hxffwkivwh5yh138y2rfhsv"))))
(define texlive-texmf-src
(origin
(method url-fetch)
- (uri "ftp://tug.org/historic/systems/texlive/2017/texlive-20170524-texmf.tar.xz")
+ (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-texmf.tar.xz")
(sha256 (base32
- "1v69y3kgkbk24f7s4dfkknwd317mqmck5jgpyb35wqgqfy5p0qrz"))))
+ "1b8zigzg8raxkhhzphcmynf84rbdbj2ym2qkz24v8n0qx82zmqms"))))
(define-public texlive-bin
(package
(name "texlive-bin")
- (version "20170524")
+ (version "20180414")
(source
(origin
- (method url-fetch)
- (uri (string-append "ftp://tug.org/historic/systems/texlive/2017/"
+ (method url-fetch)
+ (uri (string-append "ftp://tug.org/historic/systems/texlive/2018/"
"texlive-" version "-source.tar.xz"))
+ (sha256
+ (base32
+ "0khyi6h015r2zfqgg0a44a2j7vmr1cy42knw7jbss237yvakc07y"))
(patches
(list
- ;; This is required for compatibility with Poppler >= 0.58.
- ;; See <http://tutex.tug.org/pipermail/tex-k/2017-September/002809.html>
- ;; and <https://bugs.archlinux.org/task/55720> for some discussion.
+ ;; This is required for compatibility with Poppler 0.64.0 and to fix a
+ ;; segmentation fault in dvipdfm-x from XeTeX, and also contains a fix
+ ;; for CVE-2018-17407.
(origin
(method url-fetch)
- (uri (string-append "https://git.archlinux.org/svntogit/packages.git/plain"
- "/trunk/texlive-poppler-0.59.patch?h=packages/texlive-bin"
- "&id=ba2de374e2b21ecc4b85cc9777f2f15c4d356c61"))
+ (uri (string-append "http://www.linuxfromscratch.org/patches/blfs/"
+ "svn/texlive-" version "-source-upstream_fixes-2.patch"))
(file-name "texlive-poppler-compat.patch")
(sha256
(base32
- "1c4ikq4kxw48bi3i33bzpabrjvbk01fwjr2lz20gkc9kv8l0bg3n")))))
- (sha256 (base32
- "1amjrxyasplv4alfwcxwnw4nrx7dz2ydmddkq16k6hg90i9njq81"))))
+ "04sxy1qv9y575mxwyg3y7rx7mh540pfjqx7yni7ncb5wjbq9pq1a")))
+ (search-patch "texlive-bin-luatex-poppler-compat.patch")
+ (search-patch "texlive-bin-pdftex-poppler-compat.patch")
+ (search-patch "texlive-bin-xetex-poppler-compat.patch")))))
(build-system gnu-build-system)
(inputs
`(("texlive-extra-src" ,texlive-extra-src)
(not (or (string-prefix? "aarch64" s)
(string-prefix? "mips64" s))))
#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'configure-ghostscript-executable
- ;; ps2eps.pl uses the "gswin32c" ghostscript executable on Windows,
- ;; and the "gs" ghostscript executable on Unix. It detects Unix by
- ;; checking for the existence of the /usr/bin directory. Since
- ;; GuixSD does not have /usr/bin, it is also detected as Windows.
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "utils/ps2eps/ps2eps-src/bin/ps2eps.pl"
- (("gswin32c") "gs"))
- (substitute* "texk/texlive/linked_scripts/epstopdf/epstopdf.pl"
- (("\"gs\"")
- (string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\"")))
- #t))
- (add-after 'install 'postint
- (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
- (let* ((out (assoc-ref outputs "out"))
- (share (string-append out "/share"))
- (texlive-extra (assoc-ref inputs "texlive-extra-src"))
- (unpack (assoc-ref %standard-phases 'unpack))
- (patch-source-shebangs
- (assoc-ref %standard-phases 'patch-source-shebangs)))
- ;; Create symbolic links for the latex variants and their
- ;; man pages.
- (with-directory-excursion (string-append out "/bin/")
- (for-each symlink
- '("pdftex" "pdftex" "xetex" "luatex")
- '("latex" "pdflatex" "xelatex" "lualatex")))
- (with-directory-excursion (string-append share "/man/man1/")
- (symlink "luatex.1" "lualatex.1"))
- ;; Unpack texlive-extra and install tlpkg.
- (mkdir "texlive-extra")
- (with-directory-excursion "texlive-extra"
- (apply unpack (list #:source texlive-extra))
- (apply patch-source-shebangs (list #:source texlive-extra))
- (invoke "mv" "tlpkg" share))
- ;; texlua shebangs are not patched by the patch-source-shebangs
- ;; phase because the texlua executable does not exist at that
- ;; time.
- (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))
- (with-directory-excursion out
- (patch-source-shebangs))))))))
+ (modify-phases %standard-phases
+ (add-after 'unpack 'configure-ghostscript-executable
+ ;; ps2eps.pl uses the "gswin32c" ghostscript executable on Windows,
+ ;; and the "gs" ghostscript executable on Unix. It detects Unix by
+ ;; checking for the existence of the /usr/bin directory. Since
+ ;; GuixSD does not have /usr/bin, it is also detected as Windows.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "utils/ps2eps/ps2eps-src/bin/ps2eps.pl"
+ (("gswin32c") "gs"))
+ (substitute* "texk/texlive/linked_scripts/epstopdf/epstopdf.pl"
+ (("\"gs\"")
+ (string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\"")))
+ #t))
+ (add-after 'unpack 'use-code-for-new-poppler
+ (lambda _
+ (copy-file "texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc"
+ "texk/web2c/pdftexdir/pdftoepdf.cc")
+ (copy-file "texk/web2c/pdftexdir/pdftosrc-newpoppler.cc"
+ "texk/web2c/pdftexdir/pdftosrc.cc")
+ #t))
+ (add-after 'unpack 'disable-failing-test
+ (lambda _
+ ;; FIXME: This test fails on 32-bit architectures since Glibc 2.28:
+ ;; <https://bugzilla.redhat.com/show_bug.cgi?id=1631847>.
+ (substitute* "texk/web2c/omegafonts/check.test"
+ (("^\\./omfonts -ofm2opl \\$srcdir/tests/check tests/xcheck \\|\\| exit 1")
+ "./omfonts -ofm2opl $srcdir/tests/check tests/xcheck || exit 77"))
+ #t))
+ (add-after 'install 'postint
+ (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share"))
+ (texlive-extra (assoc-ref inputs "texlive-extra-src"))
+ (unpack (assoc-ref %standard-phases 'unpack))
+ (patch-source-shebangs
+ (assoc-ref %standard-phases 'patch-source-shebangs)))
+ (substitute* (string-append share "/texmf-dist/web2c/texmf.cnf")
+ ;; Don't truncate lines.
+ (("^error_line = .*$") "error_line = 254\n")
+ (("^half_error_line = .*$") "half_error_line = 238\n")
+ (("^max_print_line = .*$") "max_print_line = 1000\n"))
+ ;; Create symbolic links for the latex variants and their
+ ;; man pages.
+ (with-directory-excursion (string-append out "/bin/")
+ (for-each symlink
+ '("pdftex" "pdftex" "xetex" "luatex")
+ '("latex" "pdflatex" "xelatex" "lualatex")))
+ (with-directory-excursion (string-append share "/man/man1/")
+ (symlink "luatex.1" "lualatex.1"))
+ ;; Unpack texlive-extra and install tlpkg.
+ (mkdir "texlive-extra")
+ (with-directory-excursion "texlive-extra"
+ (apply unpack (list #:source texlive-extra))
+ (apply patch-source-shebangs (list #:source texlive-extra))
+ (invoke "mv" "tlpkg" share))
+ ;; texlua shebangs are not patched by the patch-source-shebangs
+ ;; phase because the texlua executable does not exist at that
+ ;; time.
+ (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))
+ (with-directory-excursion out
+ (patch-source-shebangs))))))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "TEXMF")
+ (files '("share/texmf-dist"))
+ (separator #f))
+ (search-path-specification
+ (variable "TEXMFCNF")
+ (files '("share/texmf-dist/web2c"))
+ (separator #f))))
(synopsis "TeX Live, a package of the TeX typesetting system")
(description
"TeX Live provides a comprehensive TeX document production system.
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0fcy2hpapbj01ncpjj3v39yhr0jjxb6rm13qaxjjw66s3vydxls1"))))
+ "1ky6wc173jhf0b33lhyb4r3bx1d4bmiqkn6y1hxn92kwjdzl42p7"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(let* ((root (string-append (assoc-ref %outputs "out")
"/share/texmf-dist"))
(dvips (string-append root "/dvips"))
- (maps (string-append root "/fonts/map/dvips/tetex"))
+ (maps (string-append root "/fonts/map/dvips"))
(encs (string-append root "/fonts/enc/dvips/base")))
(mkdir-p dvips)
(copy-recursively (assoc-ref %build-inputs "source") dvips)
(uri (svn-reference
(url (string-append "svn://www.tug.org/texlive/tags/"
%texlive-tag "/Master/texmf-dist/"
- "/fonts/map/dvips/tetex"))
+ "/fonts/map/dvips"))
(revision %texlive-revision)))
(file-name (string-append "dvips-font-maps-" version "-checkout"))
(sha256
(base32
- "100208pg7q6lj7swiq9p9287nn6b64bl62bnlaxpjni9y2kdrqy5"))))
+ "0nxvfbb5vsvakiw0iviicghdc2sxk05cj056ilqnpa62fffc36a6"))))
("dvips-base-enc"
,(origin
(method svn-fetch)
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0ivrhp6jz31pl4z841g4ws41lmvdiwz4sslmhf02inlib79gz6r2"))))
+ "0r1v16jyfpz6dwqsgm6b9jcj4kf2pkzc9hg07s6fx9g8ba8qglih"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1l9wgv99qq0ysvlxqpj4g8bl0dywbzra4g8m2kmpg2fb0i0hczap"))))
+ "03yj1di9py92drp6gpfva6q69vk2iixr79r7cp7ja570s3pr0m33"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0ghizcz7ps16dzfqf66wwg5i181assc6qsm0g7g5dbmp909931vi"))))
+ "1alnn9cd60m2c12vym9f9q22ap1ngywxpkjl9dk472why44g1dmy"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
build fonts using the Metafont system.")
(license license:knuth)))
+(define-public texlive-tex-fontinst-base
+ (package
+ (name "texlive-tex-fontinst-base")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/fontinst/base"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "12gnb8hc45p47pqn31msvi4mpr3wxbbbf2k4xhmshjqykwzlx508"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/fontinst/base")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/fontinst")
+ (synopsis "Tools for converting and installing fonts for TeX and LaTeX")
+ (description "This package provides TeX macros for converting Adobe Font
+Metric files to TeX metric and virtual font format. Fontinst helps mainly
+with the number crunching and shovelling parts of font installation. This
+means in practice that it creates a number of files which give the TeX
+metrics (and related information) for a font family that TeX needs to do any
+typesetting in these fonts.")
+ (license license:lppl1.1+)))
+
(define-public texlive-fontname
(package
(name "texlive-fontname")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0cssbzcx15221dynp5sii72qh4l18mwkr14n8w1xb19j8pbaqasz"))))
+ "05rbn7z30xawd3n6w7c3ijp2yc67ga220jgqmkla9pd9wx185rzq"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "045k5b9rdmbxpy1a3006l1x96z1rd18vg3cwrvnld9bqybw5qz44"))))
+ "0vfjhidr9pha613h8mfhnpcpvld6ahdfb449918fpsfs93cppkyj"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(string-append (getcwd) ":"
mf "/share/texmf-dist/metafont/base")))
(mkdir "build")
+ (mkdir-p "pk/ljfour/public/cm/dpi600")
(for-each (lambda (font)
(format #t "building font ~a\n" font)
(invoke "mf" "-progname=mf"
"-output-directory=build"
(string-append "\\"
"mode:=ljfour; "
- "mag:=1; "
+ "mag:=1+0/600; "
"batchmode; "
"input "
- (basename font ".mf"))))
+ (basename font ".mf")))
+ (invoke "gftopk"
+ (string-append "build/"
+ (basename font ".mf") ".600gf")
+ (string-append "pk/ljfour/public/cm/dpi600/"
+ (basename font ".mf") ".pk")))
(find-files "." "cm(.*[0-9]+.*|inch)\\.mf$"))
#t))
(replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (tfm (string-append
- out "/share/texmf-dist/fonts/tfm/public/cm"))
- (mf (string-append
- out "/share/texmf-dist/fonts/source/public/cm")))
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (fonts (string-append out "/share/texmf-dist/fonts/"))
+ (pk (string-append fonts "pk"))
+ (tfm (string-append fonts "tfm/public/cm"))
+ (mf (string-append fonts "source/public/cm"))
+ (type1 (string-append fonts "type1/public/amsfonts/cm")))
(for-each (cut install-file <> tfm)
(find-files "build" "\\.*"))
(for-each (cut install-file <> mf)
(find-files "." "\\.mf"))
+ (copy-recursively "pk" pk)
+ (mkdir-p type1)
+ (copy-recursively (assoc-ref inputs "cm-type1") type1)
#t))))))
(native-inputs
`(("texlive-bin" ,texlive-bin)
- ("texlive-metafont-base" ,texlive-metafont-base)))
+ ("texlive-metafont-base" ,texlive-metafont-base)
+ ("cm-type1"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/type1/public/amsfonts/cm"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-type1-" version "-checkout"))
+ (sha256
+ (base32
+ "12jyl9jp3hidifa4l5pmi47p71d5mb5kj5rknxkygilix8yz2iy6"))))))
(home-page "https://www.ctan.org/pkg/cm")
(synopsis "Computer Modern fonts for TeX")
(description "This package provides the Computer Modern fonts by Donald
8A.")
(license license:knuth)))
+(define-public texlive-fonts-cm-super
+ (package
+ (name "texlive-fonts-cm-super")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/cm-super"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0ybb4gi2rblzpb6wfzm2wk7dj3y2jnmkzsla7mz7g3zc12y4r2b9"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils)
+ (ice-9 match))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (let ((root (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/"))
+ (pkgs '(("source" . "tex/latex/cm-super")
+ ("cm-super-afm" . "fonts/afm/public/cm-super")
+ ("cm-super-type1" . "fonts/type1/public/cm-super")
+ ("cm-super-enc" . "fonts/enc/dvips/cm-super")
+ ("cm-super-map" . "fonts/map/dvips/cm-super")
+ ("cm-super-vtex" . "fonts/map/vtex/cm-super"))))
+ (for-each (match-lambda
+ ((pkg . dir)
+ (let ((target (string-append root dir)))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs pkg)
+ target))))
+ pkgs)
+ #t))))
+ (native-inputs
+ `(("cm-super-vtex"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/map/vtex/cm-super"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-map-vtex-" version "-checkout"))
+ (sha256
+ (base32
+ "14c9allsgfv6za9wznz4cxqxwz5nsmj8rnwvxams8fhs5rvglxqi"))))
+ ("cm-super-afm"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/afm/public/cm-super"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-afm-" version "-checkout"))
+ (sha256
+ (base32
+ "048ih65f2nghdabdar2p957c4s2spgllmy2gxdscddwqpnmd26yn"))))
+ ("cm-super-type1"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/type1/public/cm-super"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-type1-" version "-checkout"))
+ (sha256
+ (base32
+ "1140swk3w2ka0y4zdsq6pdifrdanb281q71p5gngbbjxdxjxf4qx"))))
+ ("cm-super-map"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/map/dvips/cm-super"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-map-" version "-checkout"))
+ (sha256
+ (base32
+ "10r6xqbwf9wk3ylg7givwyrw1952zydc6p7fw29zjf8ijl0lndim"))))
+ ("cm-super-enc"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/enc/dvips/cm-super"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-enc-" version "-checkout"))
+ (sha256
+ (base32
+ "1pgksy96gfgyjxfhs2k04bgg7nr7i128y01kjcahr7n38080h4ij"))))))
+ (home-page "https://www.ctan.org/pkg/cm-super")
+ (synopsis "Computer Modern Super family of fonts")
+ (description "The CM-Super family provides Adobe Type 1 fonts that replace
+the T1/TS1-encoded Computer Modern (EC/TC), T1/TS1-encoded Concrete,
+T1/TS1-encoded CM bright and LH Cyrillic fonts (thus supporting all European
+languages except Greek), and bringing many ameliorations in typesetting
+quality. The fonts exhibit the same metrics as the METAFONT-encoded
+originals.")
+ ;; With font exception
+ (license license:gpl2+)))
+
+(define-public texlive-fonts-lm
+ (package
+ (name "texlive-fonts-lm")
+ (version "2.004")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.gust.org.pl/projects/e-foundry/"
+ "latin-modern/download/lm" version "bas.zip"))
+ (sha256
+ (base32
+ "0z2s253y751m2ci5aw8nq0sf2kyg9hpimv2gyixkch9d07m2b9wp"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((root (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/")))
+ (mkdir-p root)
+ (with-directory-excursion root
+ (invoke (string-append (assoc-ref %build-inputs "unzip")
+ "/bin/unzip")
+ (assoc-ref %build-inputs "source")))
+ #t))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "http://www.gust.org.pl/projects/e-foundry/latin-modern/")
+ (synopsis "Latin Modern family of fonts")
+ (description "The Latin Modern fonts are derived from the famous Computer
+Modern fonts designed by Donald E. Knuth and described in Volume E of his
+Computers & Typesetting series.")
+ ;; The GUST font license (GFL) is legally identical to the LaTeX Project
+ ;; Public License (LPPL), version 1.3c or later, but comes with an
+ ;; additional but not legally binding clause.
+ (license license:lppl1.3c+)))
+
(define-public texlive-fonts-knuth-lib
(package
(name "texlive-fonts-knuth-lib")
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
+ (ice-9 match)
(srfi srfi-1)
(srfi srfi-26))
#:tests? #f ; no tests
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
- (let ((mf (assoc-ref inputs "texlive-metafont-base"))
+ (let ((mf (assoc-ref inputs "texlive-union"))
(cwd (getcwd)))
;; Make METAFONT reproducible
(setenv "SOURCE_DATE_EPOCH" "1")
(getcwd) "/"
(basename font ".mf")))))
(find-files "." "[0-9]+\\.mf$"))
+
+ ;; There are no metafont sources for the Euler fonts, so we
+ ;; convert the afm files instead.
+ (mkdir "build/euler")
+ (for-each (lambda (font)
+ (format #t "converting afm font ~a\n" (basename font ".afm"))
+ (invoke "afm2tfm" font
+ (string-append "build/euler/"
+ (basename font ".tfm"))))
+ (find-files (assoc-ref inputs "amsfonts-afm")
+ "\\.afm$"))
+
+ ;; Frustratingly, not all fonts can be created this way. To
+ ;; generate eufm8.tfm, for example, we first scale down
+ ;; eufm10.afm to eufm8.pl, and then generate the tfm file from
+ ;; the pl file.
+ (with-directory-excursion "build/euler"
+ (setenv "TEXINPUTS"
+ (string-append (getcwd) "//:"
+ (assoc-ref inputs "amsfonts-afm") "//:"
+ (assoc-ref inputs "texlive-union") "//"))
+ (for-each (match-lambda
+ (((target-base target-size)
+ (source-base source-size))
+ (let ((factor (number->string
+ (truncate/ (* 1000 target-size)
+ source-size))))
+ (invoke "tex"
+ "-interaction=scrollmode"
+ (string-append "\\input fontinst.sty "
+ "\\transformfont{" target-base "}"
+ "{\\scalefont{" factor "}"
+ "{\\fromafm{" source-base "}}} "
+ "\\bye")))
+ (invoke "pltotf"
+ (string-append target-base ".pl")
+ (string-append target-base ".tfm"))
+ (delete-file (string-append target-base ".pl"))))
+
+ '((("eufm8" 8) ("eufm10" 10))
+
+ (("eufb6" 6) ("eufb7" 7))
+ (("eufb8" 8) ("eufb10" 10))
+ (("eufb9" 9) ("eufb10" 10))
+
+ (("eufm6" 6) ("eufb7" 7))
+ (("eufm9" 9) ("eufb10" 10))
+
+ (("eurb6" 6) ("eurb7" 7))
+ (("eurb8" 8) ("eurb10" 10))
+ (("eurb9" 9) ("eurb10" 10))
+
+ (("eurm6" 6) ("eurm7" 7))
+ (("eurm8" 8) ("eurm10" 10))
+ (("eurm9" 9) ("eurm10" 10)))))
#t))
(replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (tfm (string-append
- out "/share/texmf-dist/fonts/tfm/public/amsfonts"))
- (mf (string-append
- out "/share/texmf-dist/fonts/source/public/amsfonts")))
- (for-each (cut install-file <> tfm)
- (find-files "build" "\\.*"))
- (for-each (cut install-file <> mf)
- (find-files "." "\\.mf"))
- #t))))))
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (root (string-append out "/share/texmf-dist/fonts/"))
+ (pkgs '(("amsfonts-afm" . "afm/public/amsfonts")
+ ("amsfonts-type1" . "type1/public/amsfonts")
+ ("amsfonts-map" . "map/dvips/amsfonts"))))
+ (for-each (match-lambda
+ ((pkg . dir)
+ (let ((target (string-append root dir)))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref inputs pkg)
+ target))))
+ pkgs)
+ (copy-recursively (assoc-ref inputs "amsfonts-plain")
+ (string-append out "/share/texmf-dist/tex/plain/amsfonts"))
+ (let* ((tfm (string-append root "tfm/public/amsfonts"))
+ (mf (string-append root "source/public/amsfonts")))
+ (copy-recursively "build" tfm)
+ (for-each (cut install-file <> mf)
+ (find-files "." "\\.mf"))
+ #t)))))))
(native-inputs
- `(("texlive-fonts-cm" ,texlive-fonts-cm)
- ("texlive-metafont-base" ,texlive-metafont-base)
- ("texlive-bin" ,texlive-bin)))
+ `(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base
+ texlive-fonts-cm
+ texlive-metafont-base)))
+ ("amsfonts-plain"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/plain/amsfonts"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-plain-" version "-checkout"))
+ (sha256
+ (base32
+ "1hi8c9rkfb6395sxf7fhkr91xygfg8am1hqij9g3h2c7qx3714qp"))))
+ ("amsfonts-map"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/map/dvips/amsfonts"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-map-" version "-checkout"))
+ (sha256
+ (base32
+ "1lrj3bd9ybj4aawzlygc6qvakbrwc5s0mc5n9rpic331frv3axfs"))))
+ ("amsfonts-type1"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/type1/public/amsfonts"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-type1-" version "-checkout"))
+ (sha256
+ (base32
+ "1zfz33vn6gm19njy74n8wmn7sljrimfhwns5z8qqhxqfh1g4qip2"))))
+ ("amsfonts-afm"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/afm/public/amsfonts"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-afm-" version "-checkout"))
+ (sha256
+ (base32
+ "1fifzkaihmjgchnk7dmw0c23k0cz999dxnc78ivmqvgi1dhx0iv8"))))))
(home-page "https://www.ctan.org/pkg/amsfonts")
(synopsis "TeX fonts from the American Mathematical Society")
(description
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0mjgl3gscn3ps29yjambz1j9fg81ynnncb96vpprwx4xsijhsns0"))))
+ "1xknlb3gcw6jjqh97bhghxi594bzpj1zfzzfsrr9pvr9s1bx7dnf"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1h9pir2hz6i9avc4lrl733p3zf4rpkg8537x1zdbhs91hvhikw9k"))))
+ "17bqrzzjz16k52sc7ydl4vw7ddy2z3g0p1xsk2c35h1ynq9h3wwm"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(getcwd) ":"
(getcwd) "/build:"
(string-join
- (append-map (match-lambda
- ((_ . dir)
- (find-files dir
- (lambda (_ stat)
- (eq? 'directory (stat:type stat)))
- #:directories? #t
- #:stat stat)))
- inputs)
- ":")))
+ (map (match-lambda ((_ . dir) dir)) inputs)
+ "//:")))
;; Create an empty texsys.cfg, because latex.ltx wants to include
;; it. This file must exist and it's fine if it's empty.
target))
'("ltxguide.cls" "ltnews.cls" "minimal.cls" "idx.tex"
"lablst.tex" "testpage.tex" "ltxcheck.tex"))
+ ;; Install configurations
+ (copy-recursively
+ (assoc-ref inputs "texlive-latex-latexconfig")
+ (string-append out "/share/texmf-dist/tex/latex/latexconfig"))
+ (copy-recursively
+ (assoc-ref inputs "texlive-generic-config")
+ (string-append out "/share/texmf-dist/tex/generic/config"))
+ (copy-recursively
+ (assoc-ref inputs "texlive-generic-hyphen")
+ (string-append out "/share/texmf-dist/tex/generic/hyphen"))
+ (copy-recursively
+ (assoc-ref inputs "texlive-generic-ruhyphen")
+ (string-append out "/share/texmf-dist/tex/generic/ruhyphen"))
+ (copy-recursively
+ (assoc-ref inputs "texlive-generic-ukrhyph")
+ (string-append out "/share/texmf-dist/tex/generic/ukrhyph"))
#t))))))
(native-inputs
`(("texlive-bin" ,texlive-bin)
("texlive-latex-latexconfig"
,(texlive-dir "tex/latex/latexconfig/"
"1zb3j49cj8p75yph6c8iysjp7qbdvghwf0mn9j0l7qq3qkbz2xaf"))
- ("texlive-generic-hyph-utf8" ,texlive-generic-hyph-utf8)
("texlive-generic-hyphen"
,(texlive-dir "tex/generic/hyphen/"
"0xim36wybw2625yd0zwlp9m2c2xrcybw58gl4rih9nkph0wqwwhd"))
"1cfwdg2rhbayl3w0x1xqd36d45zbc96f029myp13s7cb6kbmbppv"))
("texlive-generic-config"
,(texlive-dir "tex/generic/config/"
- "19vj088p4kkp6xll0141m4kl6ssgdzhs3g10i232khb07aqiag8s"))
+ "1v90iihy112q93zdpblpdk8zv8rf99fgslsg06s1sxm27zjm9nap"))
("texlive-latex-base-support-files"
,(origin
(method svn-fetch)
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "16bs9pi3nq407xhg59glklqv43v102cg3yim6k3zcri5d9nkbv3a"))))
+ "18wy8dlcw8adl6jzqwbg54pdwlhs8hilnfvqbw6ikj6y3zhqkj7q"))))
("texlive-tex-plain" ,texlive-tex-plain)
("texlive-fonts-cm" ,texlive-fonts-cm)
("texlive-fonts-latex" ,texlive-fonts-latex)
("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)))
+ (propagated-inputs
+ `(("texlive-generic-hyph-utf8" ,texlive-generic-hyph-utf8)))
(home-page "https://www.ctan.org/pkg/latex-base")
(synopsis "Base sources of LaTeX")
(description
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/fancyvrb"
- ;; We exclude "fvrb-ex" to avoid a dependency on texlive-luaotfload and
- ;; thus texlive-luatex-lualibs.
- #:build-targets '("fancyvrb.ins")))
+ #:tex-format "latex"))
(home-page "https://www.ctan.org/pkg/fancyvrb")
(synopsis "Sophisticated verbatim text")
(description
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "07azyn0b1s49vbdlr6dmygrminxp72ndl24j1091hiiccvrjq3xc"))))
+ "0nlfhn55ax89rcvpkrl9570671b62kcr4c9l5ch3w5zw9vmi00dz"))))
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/graphics"
"-checkout"))
(sha256
(base32
- "0gi4qv6378nl84s8n1yx3hjqvv7r4lza7hpbymbl5rzwgw8qrnyb"))))))
+ "17zpcgrfsr29g1dkz9np1qi63kjv7gb12rg979c6dai6qksbr3vq"))))))
(home-page "https://www.ctan.org/pkg/latex-graphics")
(synopsis "LaTeX standard graphics bundle")
(description
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0aswvsxgsn709xmvpcg50d2xl7vcy1ckdxb9c1cligqqfjjvviqf"))))
+ "1m9fg8ddhpsl1212igr9a9fmj012lv780aghjn6fpidg2wqrffmn"))))
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/oberdiek"
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "052a0pch2k5zls5jlay9xxcf93rw3i60a2x28y3ip3rhbsv3xgiz"))))
+ "0vj7h1fgf1396h4qjdc2m07y08i54gbbfrxl8y327cn3r1n093s6"))))
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/tools"
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0r0wfk594j8wkdqhh21haimwsfq8x5jch4ldm21hkzk5dnmvpbg6"))))
+ "0p3fsxap1ilwjz356aq4s5ygwvdscis8bh93g8klf8mhrd8cr2jy"))))
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/l3kernel"))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "16jplkvzdysfssijq9l051nsks65c2nrarsl17k8gjhc28yznj8y"))))
+ "0pyx0hffiyss363vv7fkrcdiaf7p099xnq0mngzqc7v8v9q849hs"))))
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/l3packages"
":")))
#t)))
))
- (inputs
+ (propagated-inputs
`(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
(home-page "https://www.ctan.org/pkg/l3packages")
(synopsis "High-level LaTeX3 concepts")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1rx43y5xmjqvc27pjdnmqwp4pcw3czcfd6nfpmzc1gnqfl1hlc0q"))))
+ "1p0mkn6iywl0k4m9cx3hnhylpi499inisff3f72pcf349baqsnvq"))))
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/fontspec"
- #:build-targets '("fontspec.dtx")))
- (inputs
- `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-default-fontspec.cfg
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-output-to-file
+ (string-append (assoc-ref outputs "out")
+ "/share/texmf-dist/tex/latex/fontspec/fontspec.cfg")
+ (lambda _
+ (display "\
+%%% FONTSPEC.CFG %%%
+%
+% This configuration file sets up TeX Ligatures by default for all fonts loaded
+% with `\\setmainfont` and `\\setsansfont`.
+%
+% In addition, `\\setmonofont` has default features to enforce \"monospace\"
+% settings with regard to space stretchability and shrinkability.
+
+\\defaultfontfeatures
+ [\\rmfamily,\\sffamily]
+ {Ligatures=TeX}
+
+\\defaultfontfeatures
+ [\\ttfamily]
+ {WordSpace={1,0,0},
+ HyphenChar=None,
+ PunctuationSpace=WordSpace}
+")))
+ #t)))))
+ (propagated-inputs
+ `(("texlive-latex-l3packages" ,texlive-latex-l3packages)))
(home-page "https://www.ctan.org/pkg/fontspec")
(synopsis "Advanced font selection in XeLaTeX and LuaLaTeX")
(description
;; GPL version 2 only
(license license:gpl2)))
+(define-public texlive-luatex-luaotfload
+ (package
+ (name "texlive-luatex-luaotfload")
+ (version "2.8-fix-2")
+ ;; The release tarball does not contain all source files.
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lualatex/luaotfload.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0l5l7iq3dxcxl65qaghcpjg27yd9iw1sxa8pnd7xlvlm09dhfdnf"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "DESTDIR="
+ (assoc-ref %outputs "out")
+ "/share/texmf-dist")
+ "all")
+ #:parallel-build? #f ; not supported
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "doc/Makefile"
+ (("rst2man") "rst2man.py")
+ ;; Don't build the PDF. This requires more of LaTeX.
+ (("\\$\\(DOCPDF\\)") ""))
+
+ (substitute* "Makefile"
+ ;; We don't build the PDF, so don't attempt to install it.
+ (("cp \\$\\(RESOURCES\\) \\$\\(DOCPDF\\)")
+ "cp $(RESOURCES)")
+ (("= \\$\\(DOCPDF\\)") "= ")
+ ;; Fix name of fontloader file
+ (("^LOADER.*= \\$\\(BUILDDIR\\)/fontloader-\\$\\(shell date \\+%F\\).lua")
+ "LOADER = $(BUILDDIR)/fontloader.lua"))
+
+ (mkdir "build")
+
+ ;; Don't download this file.
+ (copy-file (assoc-ref inputs "glyphlist")
+ "build/glyphlist.txt")
+
+ ;; Don't use git
+ (let ((notes
+ `((committer . "Philipp Gesang <phg@phi-gamma.net>")
+ (description . ,version)
+ (loader . "fontloader.lua")
+ (revision . "ad480924393fffa2896156e1a32c22f5c61120dd")
+ (timestamp . "2019-01-01 00:00:00 +0000"))))
+ (substitute* "scripts/mkstatus"
+ (("local notes.*=.*")
+ (string-append "local notes = {"
+ (string-join
+ (map (lambda (entry)
+ (format "[\"~a\"]=\"~a\","
+ (symbol->string (car entry))
+ (cdr entry)))
+ notes))
+ "}"))))
+ #t)))))
+ (native-inputs
+ `(("zip" ,zip)
+ ("unzip" ,unzip)
+ ("graphviz" ,graphviz)
+ ("lualatex" ,(texlive-union (list texlive-luatex-lualibs
+ texlive-context-base)))
+ ("python-docutils" ,python-docutils)
+ ("glyphlist"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "https://raw.githubusercontent.com/adobe-type-tools/"
+ "agl-aglfn/b2a04cb906f9257cc06a2fe0ad4b3d663bc02136/"
+ "glyphlist.txt"))
+ (sha256
+ (base32 "1s6svfw23rqzdvflv8frgd4xrwvrmsj8szwzqgcd39dp9rpjafjp"))))))
+ (propagated-inputs
+ `(("texlive-luatex-lualibs" ,texlive-luatex-lualibs)))
+ (home-page "https://github.com/lualatex/luaotfload")
+ (synopsis "OpenType font loader for LuaTeX")
+ (description
+ "Luaotfload is an adaptation of the ConTeXt font loading system for the
+Plain and LaTeX formats. It allows OpenType fonts to be loaded with font
+features accessible using an extended font request syntax while providing
+compatibilitywith XeTeX. By indexing metadata in a database it facilitates
+loading fonts by their proper names instead of file names.")
+ ;; GPL version 2 only
+ (license license:gpl2)))
+
(define-public texlive-latex-amsmath
(package
(name "texlive-latex-amsmath")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "178ywjpdlv78qmfzqdyn6gy14620zjsn2q9wap76fbr9s4hw6dba"))))
+ "0arvk7gn32mshnfdad5qkgf3i1arxq77k3vq7wnpm4nwnrzclxal"))))
(build-system texlive-build-system)
(arguments '(#:tex-directory "latex/amsmath"))
(home-page "https://www.ctan.org/pkg/amsmath")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0jmcr37mcdi7drczppvr6lmz5d5yd9m67ii79gp2nglg1xpw934j"))))
+ "0c2j9xh4qpi0x1vvcxdjxq6say0zhyr569fryi5cmhp8bclh4kca"))))
(build-system texlive-build-system)
(arguments
`(#:tex-directory "latex/amscls"))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1n3i5adsyy7jw0imnzrm2i8wkf73i3mjk9h3ic8cb9cd19i4r9r3"))))
+ "0yhlfiz3fjc8jd46f1zrjj4jig48l8rrzh8cmd8ammml8z9a01z6"))))
(build-system texlive-build-system)
(arguments
'(#:tex-directory "generic/babel"
for Canadian and USA text.")
(license license:lppl1.3+)))
+(define-public texlive-generic-babel-german
+ (package
+ (name "texlive-generic-babel-german")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (texlive-ref "generic" "babel-german"))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0h47s67gnhdaxfgbf8pirp5vw4z6rrhxl8zav803yjxka0096i3y"))))
+ (build-system texlive-build-system)
+ (arguments '(#:tex-directory "generic/babel-german"))
+ (home-page "https://www.ctan.org/pkg/babel-german")
+ (synopsis "Babel support for German")
+ (description
+ "This package provides the language definition file for support of German
+in @code{babel}. It provides all the necessary macros, definitions and
+settings to typeset German documents. The bundle includes support for the
+traditional and reformed German orthography as well as for the Austrian and
+Swiss varieties of German.")
+ (license license:lppl1.3+)))
+
(define-public texlive-latex-cyrillic
(package
(name "texlive-latex-cyrillic")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1mdhl35hwas68ki56qqngzar37dwv4mm64l2canihr255bz34lbv"))))
+ "083xbwg7hrnlv47fkwvz8yjb830bhxx7y0mq7z7nz2f96y2ldr6b"))))
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/cyrillic"))
packages.")
(license license:lppl1.2+)))
+;; For user profiles
+(define-public texlive-base
+ (let ((default-packages
+ (list texlive-bin
+ texlive-dvips
+ texlive-fontname
+ texlive-fonts-cm
+ texlive-fonts-latex
+ texlive-metafont-base
+ texlive-latex-base
+ ;; LaTeX packages from the "required" set.
+ texlive-latex-amsmath
+ texlive-latex-amscls
+ texlive-latex-babel
+ texlive-generic-babel-english
+ texlive-latex-cyrillic
+ texlive-latex-graphics
+ texlive-latex-psnfss
+ texlive-latex-tools)))
+ (package
+ (name "texlive-base")
+ (version (number->string %texlive-revision))
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments
+ '(#:builder
+ (begin (mkdir (assoc-ref %outputs "out")))))
+ (propagated-inputs
+ (map (lambda (package)
+ (list (package-name package) package))
+ default-packages))
+ (home-page (package-home-page texlive-bin))
+ (synopsis "TeX Live base packages")
+ (description "This is a very limited subset of the TeX Live distribution.
+It includes little more than the required set of LaTeX packages.")
+ (license (fold (lambda (package result)
+ (match (package-license package)
+ ((lst ...)
+ (append lst result))
+ ((? license:license? license)
+ (cons license result))))
+ '()
+ default-packages)))))
+
+;; For use in package definitions only
(define-public texlive-union
(lambda* (#:optional (packages '()))
"Return 'texlive-union' package which is a union of PACKAGES and the
standard LaTeX packages."
- (let ((default-packages
- (list texlive-bin
- texlive-dvips
- texlive-fontname
- texlive-fonts-cm
- texlive-fonts-latex
- texlive-metafont-base
- texlive-latex-base
- ;; LaTeX packages from the "required" set.
- texlive-latex-amsmath
- texlive-latex-amscls
- texlive-latex-babel
- texlive-generic-babel-english
- texlive-latex-cyrillic
- texlive-latex-graphics
- texlive-latex-psnfss
- texlive-latex-tools)))
- (package
+ (let ((default-packages (match (package-propagated-inputs texlive-base)
+ (((labels packages) ...) packages))))
+ (package (inherit texlive-base)
(name "texlive-union")
- (version (number->string %texlive-revision))
- (source #f)
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build union)
"/bin"))
(for-each
(cut wrap-program <>
- `("TEXMFCNF" ":" = (,(dirname texmf.cnf)))
- `("TEXMF" ":" = (,(string-append out "/share/texmf-dist"))))
+ `("TEXMFCNF" ":" suffix (,(dirname texmf.cnf)))
+ `("TEXMF" ":" suffix (,(string-append out "/share/texmf-dist"))))
(find-files (string-append out "/bin") ".*"))
#t))))
(inputs
'()
(append default-packages packages)))))))
+;; For use in package definitions only
(define-public texlive-tiny
(package
(inherit (texlive-union))
(add-after 'unpack 'remove-generated-file
(lambda _
(delete-file "dinbrief.drv")
+ #t))
+ (add-after 'unpack 'fix-encoding-error
+ (lambda _
+ (with-fluids ((%default-port-encoding "ISO-8859-1"))
+ (substitute* "dinbrief.dtx"
+ (("zur Verf.+ung. In der Pr\"aambel")
+ "zur Verf\"ung. In der Pr\"aambel")))
#t)))))
(home-page "https://www.ctan.org/pkg/dinbrief")
(synopsis "German letter DIN style")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0pvmhsd4xmpil0m3c7qcgwilbk266mlkzv03g0jr8r3zd8jxlyzq"))))
+ "1ib5xdwcj5wk23wgk41m2hdcjr1dzrs4l3wwnpink9mlapz12wjs"))))
(build-system texlive-build-system)
(arguments '(#:tex-directory "latex/eqparbox"))
(home-page "https://www.ctan.org/pkg/eqparbox")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "11gvvjvmdfs9b7mm19yf80zwkx49jqcbq6g8qb9y5ns1r1qvnixp"))))
+ "157pplavvm2z97b3jl4x41w11k6q9wgy074mfg0dwmsx5lm328jy"))))
(build-system texlive-build-system)
(arguments '(#:tex-directory "latex/ifplatform"))
(home-page "https://www.ctan.org/pkg/ifplatform")
rotated.")
(license (license:fsf-free "file://psfrag.dtx"))))
-(define-public texlive-latex-pstool
+(define-public texlive-latex-xkeyval
(package
- (name "texlive-latex-pstool")
+ (name "texlive-latex-xkeyval")
(version (number->string %texlive-revision))
(source (origin
(method svn-fetch)
- (uri (texlive-ref "latex" "pstool"))
+ (uri (texlive-ref "latex" "xkeyval"))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1kwlk1x67lad4xb7gpkxqgdlxwpi6nvq1r9wika7m92abmyf18h3"))))
+ "0wancavix39j240pd8m9cgmwsijwx6jd6n54v8wg0x2rk5m44myp"))))
(build-system texlive-build-system)
- (arguments
- '(#:tex-directory "latex/pstool"
- #:tex-format "latex"))
- (inputs
- `(("texlive-fonts-cm" ,texlive-fonts-cm)
- ("texlive-latex-filecontents" ,texlive-latex-filecontents)))
- (propagated-inputs
- `(("texlive-latex-bigfoot" ,texlive-latex-bigfoot)
- ("texlive-latex-filemod" ,texlive-latex-filemod)
- ("texlive-latex-graphics" ,texlive-latex-graphics)
- ("texlive-latex-ifplatform" ,texlive-latex-ifplatform)
- ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
- ("texlive-latex-psfrag" ,texlive-latex-psfrag)
- ("texlive-latex-trimspaces" ,texlive-latex-trimspaces)))
- (home-page "https://www.ctan.org/pkg/pstool")
- (synopsis "Process PostScript graphisc within pdfLaTeX documents")
+ (arguments '(#:tex-directory "latex/xkeyval"))
+ (home-page "https://www.ctan.org/pkg/xkeyval")
+ (synopsis "Macros for defining and setting keys")
(description
- "This is a package for processing PostScript graphics with @code{psfrag}
+ "This package is an extension of the @code{keyval} package and offers
+more flexible macros for defining and setting keys. The package provides a
+pointer and a preset system. Furthermore, it supplies macros to allow class
+and package options to contain options of the @code{key=value} form. A LaTeX
+kernel patch is provided to avoid premature expansions of macros in class or
+package options. A specialized system for setting @code{PSTricks} keys is
+provided by the @code{pst-xkey} package.")
+ (license license:lppl1.3+)))
+
+(define-public texlive-latex-pstool
+ (package
+ (name "texlive-latex-pstool")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/pstool"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1h816jain8c9nky75kk8pmmwj5b4yf9dpqvdvi2l6jhfj5iqkzr8"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/pstool")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (propagated-inputs
+ `(("texlive-latex-bigfoot" ,texlive-latex-bigfoot) ; for suffix
+ ("texlive-latex-filemod" ,texlive-latex-filemod)
+ ("texlive-latex-graphics" ,texlive-latex-graphics)
+ ("texlive-latex-ifplatform" ,texlive-latex-ifplatform)
+ ("texlive-latex-l3kernel" ,texlive-latex-l3kernel) ; for expl3
+ ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
+ ("texlive-latex-psfrag" ,texlive-latex-psfrag)
+ ("texlive-latex-tools" ,texlive-latex-tools) ; for shellesc
+ ("texlive-latex-trimspaces" ,texlive-latex-trimspaces)
+ ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
+ (home-page "https://www.ctan.org/pkg/pstool")
+ (synopsis "Process PostScript graphics within pdfLaTeX documents")
+ (description
+ "This is a package for processing PostScript graphics with @code{psfrag}
labels within pdfLaTeX documents. Every graphic is compiled individually,
drastically speeding up compilation time when only a single figure needs
re-processing.")
(sha256
(base32
"0y4i651b75y6006n03x8n86bsqvjsailvvz9bhzy51dzsznqidq0"))))
- (build-system texlive-build-system)
- (arguments '(#:tex-directory "latex/seminar"))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/seminar")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
(home-page "https://www.ctan.org/pkg/seminar")
(synopsis "Make overhead slides")
;; TODO: This package may need fancybox and xcomment at runtime.
to something that's not a float.")
(license license:lppl)))
+(define-public texlive-latex-doi
+ (package
+ (name "texlive-latex-doi")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/doi"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0378rdmrgr2lzbfi4qqy4dfpj5im20diyd8z8b9m4mlg05r7wgnb"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/doi")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/doi")
+ (synopsis "Create correct hyperlinks for DOI numbers")
+ (description
+ "You can hyperlink DOI numbers to doi.org. However, some publishers have
+elected to use nasty characters in their DOI numbering scheme (@code{<},
+@code{>}, @code{_} and @code{;} have all been spotted). This will either
+upset LaTeX, or your PDF reader. This package contains a single user-level
+command @code{\\doi{}}, which takes a DOI number, and creates a correct
+hyperlink to the target of the DOI.")
+ ;; Any version of the LPPL.
+ (license license:lppl1.3+)))
+
(define-public texlive-latex-etoolbox
(package
(name "texlive-latex-etoolbox")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0016bscnpima9krrg2569mva78xzwnygzlvg87dznsm6gf8g589v"))))
+ "1agmq6bf8wzcd77n20ng8bl4kh69cg5f6sjniii7bcw4llhd3nc8"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1r2kfcwclg33yk5z8mvlagwxj7nr1mc3w4bdpmhrwv6dn8mrbvw8"))))
+ "0yw6bjfgsli3s1dldsgb7mkr7lnk329cgdjbgs8z2xn59pmmdsn4"))))
(build-system texlive-build-system)
(arguments '(#:tex-directory "latex/geometry"))
(home-page "https://www.ctan.org/pkg/geometry")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "09mvszd5qgqg4cfglpj5qxyzjz190ppb9p8gnsnjydwp1akvhayf"))))
+ "03ma58z3ypsbp7zgkzb1ylpn2ygr27cxzkf042ns0rif4g8s491f"))))
(build-system texlive-build-system)
(arguments '(#:tex-directory "latex/polyglossia"))
(home-page "https://www.ctan.org/pkg/polyglossia")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "09zj2w3lx0y6i2syfjjgizahf86z301dw8p37ln6syfhqhzqdz46"))))
+ "06cf821y1j7jdg93pb41ayigrfwgn0y49d7w1025zlijjxi6bvjp"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1ik4m8pzfsn1grlda6fniqqfwmgj7rfxwg63jdw0p0qv002vc7ik"))))
+ "05x15ilynqrl448h8l6qiraygamdldlngz89a2bw7kg74fym14ch"))))
(build-system texlive-build-system)
(arguments '(#:tex-directory "latex/changebar"))
(home-page "https://www.ctan.org/pkg/changebar")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "04h430agf8aj7ziwyb46xpk95c605rjk1wzhr63m6ylipihidlgw"))))
+ "1xsnzx7vgdfh9zh2m7bjz6bgdpxsgb1kyc19p50vhs34x5nbgsnr"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0m29q9qdb00558b7g2i7iw6w62n5s46yx81j8m99qkv77magk4fm"))))
+ "1rpx4ibjncj5416rg19v0xjbj3z9avhfdfn2gzp8r8sz9vz25c6g"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "06p5smfq66559ppdnmkl3hp8534x84ywbscimsiir4gllpya3i9h"))))
+ "0s4izcah7im67889qz4d26pcfpasmm35sj1rw4ragkkdk3rlbbbd"))))
(build-system texlive-build-system)
(arguments '(#:tex-directory "latex/pdfpages"))
(home-page "https://www.ctan.org/pkg/pdfpages")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "03nvjddffiz796wll6axzmgfvynyciy2mqamv20qx252w71vwkwd"))))
+ "0sf18pc6chgy26p9bxxn44xcqhzjrfb53jxjr2y7l3jb6xllhblq"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0j6fff6q0ca96nwfdgay2jm55792z4q9aa0rczmiw2qccyg5n2dv"))))
+ "1hpsk4yp08qvbl43kqiv0hhwxv3gcqqxcpahyv6ch2b38pbj4bh6"))))
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/preview"
(begin
(use-modules (guix build utils))
(let ((target (string-append (assoc-ref %outputs "out")
- "/share/texmf-dist/tex/generic/pdftex")))
+ "/share/texmf-dist/tex/generic/pdftex"))
+ (target-map (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/fonts/map/pdftex")))
(mkdir-p target)
(copy-recursively (assoc-ref %build-inputs "source") target)
+ (mkdir-p target-map)
+ (copy-recursively (assoc-ref %build-inputs "pdftex-map") target-map)
#t))))
+ (native-inputs
+ `(("pdftex-map"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/map/pdftex"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-map-" version "-checkout"))
+ (sha256
+ (base32
+ "18jvcm0vwpg6wwzijvnb92xx78la45kkh71k6l44425krp2vnwm0"))))))
(home-page "https://www.ctan.org/pkg/pdftex")
(synopsis "TeX extension for direct creation of PDF")
(description
(define texlive-texmf
(package
(name "texlive-texmf")
- (version "2017")
+ (version "20180414")
(source texlive-texmf-src)
(build-system gnu-build-system)
(inputs
#:phases
(modify-phases (map (cut assq <> %standard-phases)
'(set-paths unpack patch-source-shebangs))
+ (add-after 'unpack 'unset-environment-variables
+ (lambda _
+ (unsetenv "TEXMF")
+ (unsetenv "TEXMFCNF")
+ #t))
(add-after 'patch-source-shebangs 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((share (string-append (assoc-ref outputs "out") "/share")))
(define-public texlive
(package
(name "texlive")
- (version "2017")
+ (version "20180414")
(source #f)
(build-system trivial-build-system)
(inputs `(("bash" ,bash) ; for wrap-program
(define-public biber
(package
(name "biber")
- (version "2.7")
+ (version "2.12")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/plk/biber/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/plk/biber/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ ;; TODO: Patch awaiting inclusion upstream (see:
+ ;; https://github.com/plk/biber/issues/239).
+ (patches (search-patches "biber-fix-encoding-write.patch"))
(sha256
(base32
- "17wd80jg98qyddhvz4cin8779ycvppaf2va77r1lyvymjz6w9bx0"))))
+ "1g1hi6zvf2hmrjly1sidjaxy5440gfqm4p7p3n7kayshnjsmlskx"))))
(build-system perl-build-system)
(arguments
`(#:phases
("perl-data-uniqid" ,perl-data-uniqid)
("perl-datetime-format-builder" ,perl-datetime-format-builder)
("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
- ("perl-file-slurp" ,perl-file-slurp)
+ ("perl-file-slurper" ,perl-file-slurper)
("perl-ipc-cmd" ,perl-ipc-cmd)
("perl-ipc-run3" ,perl-ipc-run3)
("perl-list-allutils" ,perl-list-allutils)
(define-public texmaker
(package
(name "texmaker")
- (version "4.5")
+ (version "5.0.2")
(source (origin
(method url-fetch)
(uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
version ".tar.bz2"))
(sha256
(base32
- "056njk6j8wma23mlp7xa3rgfaxx0q8ynwx8wkmj7iy0b85p9ds9c"))))
+ "0y81mjm89b99pr9svcwpaf4iz2q9pc9hjas5kiwd1pbgl5vqskm9"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(let ((out (assoc-ref outputs "out")))
(invoke "qmake"
(string-append "PREFIX=" out)
- (string-append "DESKTOPDIR=" out
- "/share/applications")
+ (string-append "DESKTOPDIR=" out "/share/applications")
(string-append "ICONDIR=" out "/share/pixmaps")
+ (string-append "METAINFODIR=" out "/share/metainfo")
"texmaker.pro")))))))
(inputs
`(("poppler-qt5" ,poppler-qt5)
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "01ysky8h8s6q12dxfahkzwhbkc9j5wl50xzcczy0cbjx9f6aj9kv"))))
+ "0lhb2h5hxjq9alpk4r3gvg21pwyifs4ah6hqzp92k55mkp1xv73j"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "12kkl7n534j0p4frwyrlw22dc3ik50kxv97cxp4xpmji13m0hxpf"))))
+ "0zp00jg058djx8xp0xqwas92y3j97clkyd8z6pqr890yqy06myqb"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
It also ensures compatibility with the @code{media9} and @code{animate} packages.")
(license license:lppl)))
+
+(define-public texlive-latex-ms
+ (package
+ (name "texlive-latex-ms")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (texlive-ref "latex" "ms"))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0m4wx3yjb5al1qsv995z8fii8xxy96mcfihbnlx43lpgayiwz35s"))))
+ (build-system texlive-build-system)
+ (arguments
+ '(#:tex-directory "latex/ms"
+ #:tex-format "latex"))
+ (home-page "https://ctan.org/pkg/ms")
+ (synopsis "Various LATEX packages by Martin Schröder")
+ (description
+ "A bundle of LATEX packages by Martin Schröder; the collection comprises:
+
+@itemize
+@item @command{count1to}, make use of fixed TEX counters;
+@item @command{everysel}, set commands to execute every time a font is selected;
+@item @command{everyshi}, set commands to execute whenever a page is shipped out;
+@item @command{multitoc}, typeset the table of contents in multiple columns;
+@item @command{prelim2e}, mark typeset pages as preliminary; and
+@item @command{ragged2e}, typeset ragged text and allow hyphenation.
+@end itemize\n")
+ (license license:lppl1.3c+)))
+
+(define-public texlive-latex-needspace
+ (package
+ (name "texlive-latex-needspace")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (texlive-ref "latex" "needspace"))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0kw80f5jh4gdpa2ka815abza3gr5z8b929w0745vrlc59pl0017y"))))
+ (build-system texlive-build-system)
+ (arguments
+ '(#:tex-directory "latex/needspace"
+ #:tex-format "latex"))
+ (inputs
+ `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
+ (home-page "https://www.ctan.org/pkg/needspace")
+ (synopsis "Insert pagebreak if not enough space")
+ (description
+ "Provides commands to disable pagebreaking within a given vertical
+space. If there is not enough space between the command and the bottom of the
+page, a new page will be started.")
+ (license license:lppl)))
+
+(define-public texlive-latex-changepage
+ (package
+ (name "texlive-latex-changepage")
+ (version (number->string %texlive-revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (texlive-ref "latex" "changepage"))
+ (sha256
+ (base32
+ "1rpw8xg5p4jsyh236jma9dz3l29wjx4062f154b3wak5yjcxyxyb"))))
+ (build-system texlive-build-system)
+ (arguments
+ '(#:tex-directory "latex/changepage"
+ #:tex-format "latex"))
+ (inputs
+ `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
+ (home-page "https://www.ctan.org/pkg/changepage")
+ (synopsis "Margin adjustment and detection of odd/even pages")
+ (description
+ "The package provides commands to change the page layout in the middle of
+a document, and to robustly check for typesetting on odd or even pages.
+Instructions for use are at the end of the file. The package is an extraction
+of code from the @code{memoir} class, whose user interface it shares.")
+ (license license:lppl1.3+)))
+
+(define-public texlive-latex-eukdate
+ (package
+ (name "texlive-latex-eukdate")
+ (version (number->string %texlive-revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/eukdate"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "18xan116l8w47v560bkw6nbhkrml7g04xrlzk3jrpc7qsyf3n5fz"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/eukdate")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/eukdate")
+ (synopsis "UK format dates, with weekday")
+ (description
+ "The package is used to change the format of @code{\\today}’s date,
+including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which
+is preferred in many parts of the world, as distinct from that which is used in
+@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'.")
+ (license license:lppl)))
+
+(define-public texlive-generic-ulem
+ (package
+ (name "texlive-generic-ulem")
+ (version (number->string %texlive-revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/generic/ulem"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1rzdniqq9zk39w8ch8ylx3ywh2mj87s4ivchrsk2b8nx06jyn797"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/generic/ulem")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/ulem")
+ (synopsis "Underline text in TeX")
+ (description
+ "The package provides an @code{\\ul} (underline) command which will break
+over line ends; this technique may be used to replace @code{\\em} (both in that
+form and as the @code{\\emph} command), so as to make output look as if it comes
+from a typewriter. The package also offers double and wavy underlining, and
+striking out (line through words) and crossing out (/// over words).")
+ (license license:lppl1.3c+)))
+
+(define-public texlive-latex-pgf
+ (package
+ (name "texlive-latex-pgf")
+ (version (number->string %texlive-revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/pgf"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1dq8p10pz8wn0vx412m7d7d5gj1syxly3yqdqvf7lv2xl8zndn5h"))))
+ (build-system trivial-build-system)
+ (native-inputs
+ `(("texlive-latex-pgf-generic"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/generic/pgf"))
+ (revision %texlive-revision)))
+ (file-name (string-append "texlive-latex-pgf-generic" version "-checkout"))
+ (sha256
+ (base32
+ "0xkxw26sjzr5npjpzpr28yygwdbhzpdd0hsk80gjpidhcxmz393i"))))))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target-generic (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/generic/pgf"))
+ (target-latex (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/pgf")))
+ (mkdir-p target-generic)
+ (mkdir-p target-latex)
+ (copy-recursively (assoc-ref %build-inputs "texlive-latex-pgf-generic") target-generic)
+ (copy-recursively (assoc-ref %build-inputs "source") target-latex)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/tikz")
+ (synopsis "Create PostScript and PDF graphics in TeX")
+ (description
+ "PGF is a macro package for creating graphics. It is platform- and
+format-independent and works together with the most important TeX backend
+drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer
+called TikZ.
+
+Its usage is similar to pstricks and the standard picture environment. PGF
+works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can
+produce either PostScript or PDF output.")
+ (license license:lppl1.3c+)))
+
+(define-public texlive-latex-koma-script
+ (package
+ (name "texlive-latex-koma-script")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/koma-script"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0nqwf0sr4mf3v9gqa6apv6ml2xhcdwax0vgyf12a672g7rpdyvgm"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils)
+ (ice-9 match))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (let ((root (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/"))
+ (pkgs '(("source" . "tex/latex/koma-script"))))
+ (for-each (match-lambda
+ ((pkg . dir)
+ (let ((target (string-append root dir)))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs pkg)
+ target))))
+ pkgs)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/koma-script")
+ (synopsis "Bundle of versatile classes and packages")
+ (description
+ "The KOMA-Script bundle provides replacements for the article, report, and
+book classes with emphasis on typography and versatility. There is also a
+letter class.
+
+The bundle also offers:
+
+@itemize
+@item a package for calculating type areas in the way laid down by the
+typographer Jan Tschichold,
+@item packages for easily changing and defining page styles,
+@item a package scrdate for getting not only the current date but also the name
+of the day, and
+@item a package scrtime for getting the current time.
+@end itemize
+
+All these packages may be used not only with KOMA-Script classes but also with
+the standard classes.
+
+Since every package has its own version number, the version number quoted only
+refers to the version of scrbook, scrreprt, scrartcl, scrlttr2 and
+typearea (which are the main parts of the bundle).")
+ (license license:lppl1.3+)))
+
+(define-public texlive-generic-listofitems
+ (package
+ (name "texlive-generic-listofitems")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/generic/listofitems"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0hs28fc0v2l92ad9las9b8xcckyrdrwmyhcx1yzmbr6s7s6nvsx8"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/generic/listofitems")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/listofitems")
+ (synopsis "Grab items in lists using user-specified seperation character")
+ (description
+ "This package allows one to capture all the items of a list, for which
+the parsing character has been selected by the user, and to access any of
+these items with a simple syntax.")
+ (license license:lppl1.3c+)))
+
+(define-public texlive-latex-readarray
+ (package
+ (name "texlive-latex-readarray")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/readarray"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0c53k180ivn1n7fz3ngvd2w1i5dw3kxml0n64vhki88xsylz7lxp"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/readarray")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (propagated-inputs
+ `(("texlive-generic-listofitems" ,texlive-generic-listofitems)))
+ (home-page "https://www.ctan.org/pkg/readarray")
+ (synopsis "Read, store and recall array-formatted data")
+ (description
+ "This package allows the user to input formatted data into elements of a
+2-D or 3-D array and to recall that data at will by individual cell number.
+The data can be but need not be numerical in nature. It can be, for example,
+formatted text.")
+ (license license:lppl1.3)))
+
+(define-public texlive-latex-verbatimbox
+ (package
+ (name "texlive-latex-verbatimbox")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/verbatimbox"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0qh1cgvfs463zsi2pjg490gj0mkjfdpfc381j10cbb5la304psna"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/verbatimbox")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (propagated-inputs
+ `(("texlive-latex-readarray" ,texlive-latex-readarray)))
+ (home-page "https://www.ctan.org/pkg/verbatimbox")
+ (synopsis "Deposit verbatim text in a box")
+ (description
+ "The package provides a @code{verbbox} environment to place its contents
+into a globally available box, or into a box specified by the user. The
+global box may then be used in a variety of situations (for example, providing
+a replica of the @code{boxedverbatim} environment itself). A valuable use is
+in places where the standard @code{verbatim} environment (which is based on a
+@code{trivlist}) may not appear.")
+ (license license:lppl1.3+)))
+
+(define-public texlive-latex-examplep
+ (package
+ (name "texlive-latex-examplep")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/examplep"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0fsvvmz68ij0zwfzrny6x13d92grxr4ap59lxgah4smbkccd6s27"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/examplep")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/examplep")
+ (synopsis "Verbatim phrases and listings in LaTeX")
+ (description
+ "Examplep provides sophisticated features for typesetting verbatim source
+code listings, including the display of the source code and its compiled LaTeX
+or METAPOST output side-by-side, with automatic width detection and enabled
+page breaks (in the source), without the need for specifying the source twice.
+Special care is taken that section, page and footnote numbers do not interfere
+with the main document. For typesetting short verbatim phrases, a replacement
+for the @code{\\verb} command is also provided in the package, which can be
+used inside tables and moving arguments such as footnotes and section
+titles.")
+ ;; No version of the GPL is specified.
+ (license license:gpl3+)))
+
+(define-public texlive-generic-xypic
+ (package
+ (name "texlive-generic-xypic")
+ (version (number->string %texlive-revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/generic/xypic"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1g5cyxwdfznq4lk9zl6fkjkapmhmwd2cm4m5aibxj20qgwnaggfz"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/generic/xypic")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/xypic")
+ (synopsis "Flexible diagramming macros for TeX")
+ (description
+ "A package for typesetting a variety of graphs and diagrams with TeX.
+Xy-pic works with most formats (including LaTeX, AMS-LaTeX, AMS-TeX, and plain
+TeX).")
+ (license license:gpl3+)))
+
+(define-public texlive-fonts-xypic
+ (package
+ (name "texlive-fonts-xypic")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/source/public/xypic"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0p20v1257kwsqnrk98cdhhiz2viv8l3ly4xay4by0an3j37m9xs3"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils)
+ (ice-9 match))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (let ((root (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/"))
+ (pkgs '(("source" . "fonts/source/public/xypic")
+ ("xypic-afm" . "fonts/afm/public/xypic")
+ ("xypic-type1" . "fonts/type1/public/xypic")
+ ("xypic-enc" . "fonts/enc/dvips/xypic"))))
+ (for-each (match-lambda
+ ((pkg . dir)
+ (let ((target (string-append root dir)))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs pkg)
+ target))))
+ pkgs)
+ #t))))
+ (native-inputs
+ `(("xypic-afm"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/afm/public/xypic"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-afm-" version "-checkout"))
+ (sha256
+ (base32
+ "149xdijxp8lw3s0qv2aqxxxyyn748z57dpr596rjvkqdffpnsddh"))))
+ ("xypic-type1"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/type1/public/xypic"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-type1-" version "-checkout"))
+ (sha256
+ (base32
+ "1bln89wib7g3hcv2jny3qi6jb73k9d2vbgx3wnnjwp3ryg0846if"))))
+ ("xypic-enc"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/enc/dvips/xypic"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-enc-" version "-checkout"))
+ (sha256
+ (base32
+ "0yi8vms3203l3p5slnhrrlzzp0f0jw77fkcvcaicrz2vmw9z99x7"))))))
+ (home-page "https://www.ctan.org/pkg/xypic")
+ (synopsis "Fonts for XY-pic")
+ (description "This package provides the XY-pic fonts.")
+ (license license:gpl3+)))
+
+(define-public texlive-bibtex
+ (package
+ (name "texlive-bibtex")
+ (version (number->string %texlive-revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/bibtex"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0hnbs0s1znbn32hfcsyijl39z81sdb00jf092a4blqz421qs2mbv"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/bibtex")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/bibtex")
+ (synopsis "Process bibliographies for LaTeX")
+ (description
+ "BibTeX allows the user to store his citation data in generic form, while
+printing citations in a document in the form specified by a BibTeX style, to
+be specified in the document itself (one often needs a LaTeX citation-style
+package, such as @command{natbib} as well).")
+ (license license:knuth)))
+
+(define-public texlive-fonts-charter
+ (package
+ (name "texlive-fonts-charter")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/type1/bitstrea/charter"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0yvib45xxff3jm5270zij4q888pivbc18cqs7lz4pqfhn1am4wnv"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils)
+ (ice-9 match))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (let ((root (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/"))
+ (pkgs '(("source" . "fonts/type1/bitstrea/charter")
+ ("charter-afm" . "fonts/afm/bitstrea/charter")
+ ("charter-tfm" . "fonts/tfm/bitstrea/charter"))))
+ (for-each (match-lambda
+ ((pkg . dir)
+ (let ((target (string-append root dir)))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs pkg)
+ target))))
+ pkgs)
+ #t))))
+ (native-inputs
+ `(("charter-afm"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/afm/bitstrea/charter"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-afm-" version "-checkout"))
+ (sha256
+ (base32
+ "02nbkqrlr3vypnzslmr7dxg1353mmc0rl4ynx0s6qbvf313fq76a"))))
+ ("charter-tfm"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/fonts/tfm/bitstrea/charter"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-tfm-" version "-checkout"))
+ (sha256
+ (base32
+ "0j7ci9vprivbhac70aq0z7m23hqcpx1g0i3wp1k0h8ilhimj80xk"))))))
+ (home-page "https://www.ctan.org/pkg/charter")
+ (synopsis "Charter fonts for TeX")
+ (description "A commercial text font donated for the common good. Support
+for use with LaTeX is available in @code{freenfss}, part of
+@command{psnfss}. ")
+ (license (license:non-copyleft (string-append "http://mirrors.ctan.org/"
+ "fonts/charter/readme.charter")))))
+
+(define-public texlive-context-base
+ (package
+ (name "texlive-context-base")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/context/base"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0rlx4qqijms1n64gjx475kvip8l322fh7v17zkmwp1l1g0w3vlyz"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/context/case")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/context")
+ (synopsis "Full featured, parameter driven macro package for TeX")
+ (description "A full featured, parameter driven macro package, which fully
+supports advanced interactive documents. See the ConTeXt garden for a wealth
+of support information.")
+ (license license:gpl2+)))
+
+(define-public texlive-latex-beamer
+ (package
+ (name "texlive-latex-beamer")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/beamer"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "09y3qwbj0nckshvg9afgwcv9v3zdif1d7bnpzrggsa1fbr80mgk2"))))
+ (build-system trivial-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/beamer"))
+ (docs (string-append (assoc-ref %outputs "doc")
+ "/share/texmf-dist/doc/latex/beamer/")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+
+ (mkdir-p docs)
+ (copy-recursively (assoc-ref %build-inputs "docs") docs)
+ #t))))
+ (propagated-inputs
+ `(("texlive-latex-hyperref" ,texlive-latex-hyperref)
+ ("texlive-latex-oberdiek" ,texlive-latex-oberdiek)
+ ("texlive-latex-etoolbox" ,texlive-latex-etoolbox)
+ ("texlive-latex-pgf" ,texlive-latex-pgf)))
+ (native-inputs
+ `(("docs"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/doc/latex/beamer"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "102b18b9nw9dicqqgjwx0srh1mav8vh9wdvwayn741niza9hac23"))))))
+ (home-page "https://www.ctan.org/pkg/beamer")
+ (synopsis "LaTeX class for producing presentations and slides")
+ (description "The beamer LaTeX class can be used for producing slides.
+The class works in both PostScript and direct PDF output modes, using the
+@code{pgf} graphics system for visual effects. Content is created in the
+@code{frame} environment, and each frame can be made up of a number of slides
+using a simple notation for specifying material to appear on each slide within
+a frame. Short versions of title, authors, institute can also be specified as
+optional parameters. Whole frame graphics are supported by plain frames. The
+class supports @code{figure} and @code{table} environments, transparency
+effects, varying slide transitions and animations.")
+ ;; Code is dual licensed under GPLv2+ or LPPL1.3c+; documentation is
+ ;; dual-licensed under either FDLv1.3+ or LPPL1.3c+.
+ (license (list license:lppl1.3c+ license:gpl2+ license:fdl1.3+))))