diff options
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r-- | gnu/packages/tex.scm | 1464 |
1 files changed, 1342 insertions, 122 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 3b9fb275fc..f12746c83f 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,29 +67,28 @@ (define texlive-extra-src (origin (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523-extra.tar.xz") + (uri "ftp://tug.org/historic/systems/texlive/2017/texlive-20170524-extra.tar.xz") (sha256 (base32 - "0q4a92zmwhn4ry6xgrp4k8wq11ax2sg9rg9yrsrdkr719y0x887a")))) + "0zvd2zskk78ig114mfj24g15qys41hzqv59fmqpirdbgq9c9gr5g")))) (define texlive-texmf-src (origin (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523b-texmf.tar.xz") - (patches (search-patches "texlive-texmf-CVE-2016-10243.patch")) - (patch-flags '("-p2")) + (uri "ftp://tug.org/historic/systems/texlive/2017/texlive-20170524-texmf.tar.xz") (sha256 (base32 - "1dv8vgfzpczqw82hv9g7a8djhhyzywljmrarlcyy6g2qi5q51glr")))) + "1v69y3kgkbk24f7s4dfkknwd317mqmck5jgpyb35wqgqfy5p0qrz")))) (define-public texlive-bin (package (name "texlive-bin") - (version "2016") + (version "20170524") (source (origin (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523b-source.tar.xz") + (uri (string-append "ftp://tug.org/historic/systems/texlive/2017/" + "texlive-" version "-source.tar.xz")) (sha256 (base32 - "1v91vahxlxkdra0qz3f132vvx5d9cx2jy84yl1hkch0agyj2rcx8")))) + "1amjrxyasplv4alfwcxwnw4nrx7dz2ydmddkq16k6hg90i9njq81")))) (build-system gnu-build-system) (inputs `(("texlive-extra-src" ,texlive-extra-src) @@ -201,11 +201,41 @@ This package contains the binaries.") #:builder (begin (use-modules (guix build utils)) - (let ((target (string-append (assoc-ref %outputs "out") - "/share/texmf-dist/dvips"))) - (mkdir-p target) - (copy-recursively (assoc-ref %build-inputs "source") target) + (let* ((root (string-append (assoc-ref %outputs "out") + "/share/texmf-dist")) + (dvips (string-append root "/dvips")) + (maps (string-append root "/fonts/map/dvips/tetex")) + (encs (string-append root "/fonts/enc/dvips/base"))) + (mkdir-p dvips) + (copy-recursively (assoc-ref %build-inputs "source") dvips) + (mkdir-p maps) + (copy-recursively (assoc-ref %build-inputs "dvips-font-maps") maps) + (mkdir-p encs) + (copy-recursively (assoc-ref %build-inputs "dvips-base-enc") encs) #t)))) + (native-inputs + `(("dvips-font-maps" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/map/dvips/tetex")) + (revision %texlive-revision))) + (sha256 + (base32 + "100208pg7q6lj7swiq9p9287nn6b64bl62bnlaxpjni9y2kdrqy5")))) + ("dvips-base-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/base")) + (revision %texlive-revision))) + (sha256 + (base32 + "1xnf6ms0h87r55kxik4vicwr1907scj789lhqflqns8svvsli5iy")))))) (home-page "http://www.ctan.org/pkg/dvips") (synopsis "DVI to PostScript drivers") (description "This package provides files needed for converting DVI files @@ -429,6 +459,40 @@ converters, will completely supplant the older patterns.") build fonts using the Metafont system.") (license license:knuth))) +(define-public texlive-fontname + (package + (name "texlive-fontname") + (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/map/fontname")) + (revision %texlive-revision))) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0cssbzcx15221dynp5sii72qh4l18mwkr14n8w1xb19j8pbaqasz")))) + (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/fonts/map/fontname"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "https://www.ctan.org/pkg/fontname") + (synopsis "Scheme for naming fonts in TeX") + (description "This is Fontname, a naming scheme for (the base part of) +external TeX font filenames. This makes at most eight-character names +from (almost) arbitrarily complex font names, thus helping portability of TeX +documents.") + (license license:public-domain))) + (define-public texlive-fonts-cm (package (name "texlive-fonts-cm") @@ -1442,7 +1506,7 @@ distribution.") "1n3i5adsyy7jw0imnzrm2i8wkf73i3mjk9h3ic8cb9cd19i4r9r3")))) (build-system texlive-build-system) (arguments - '(#:tex-directory "latex/babel" + '(#:tex-directory "generic/babel" #:phases (modify-phases %standard-phases ;; This package tries to produce babel.aux twice but refuses to @@ -1464,6 +1528,28 @@ what has to be done for each language. Users of XeTeX are advised to use the polyglossia package rather than Babel.") (license license:lppl1.3+))) +(define-public texlive-generic-babel-english + (package + (name "texlive-generic-babel-english") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "generic" "babel-english")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1s404wbx91z5w65hm024kyl4h56zsa096irx18vsx8jvlmwsr5wc")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "generic/babel-english")) + (home-page "http://www.ctan.org/pkg/babel-english") + (synopsis "Babel support for English") + (description + "This package provides the language definition file for support of +English in @code{babel}. Care is taken to select British hyphenation patterns +for British English and Australian text, and default (\"american\") patterns +for Canadian and USA text.") + (license license:lppl1.3+))) + (define-public texlive-latex-cyrillic (package (name "texlive-latex-cyrillic") @@ -1517,6 +1603,7 @@ standard LaTeX packages." (let ((default-packages (list texlive-bin texlive-dvips + texlive-fontname texlive-fonts-cm texlive-fonts-latex texlive-metafont-base @@ -1525,6 +1612,7 @@ standard LaTeX packages." texlive-latex-amsmath texlive-latex-amscls texlive-latex-babel + texlive-generic-babel-english texlive-latex-cyrillic texlive-latex-graphics texlive-latex-psnfss @@ -1558,7 +1646,8 @@ standard LaTeX packages." (((names . directories) ...) (union-build (assoc-ref %outputs "out") directories - #:create-all-directories? #t))) + #:create-all-directories? #t + #:log-port (%make-void-port "w")))) ;; The configuration file "texmf.cnf" is provided by the ;; "texlive-bin" package. We take it and override only the @@ -1602,6 +1691,289 @@ distribution.") (description "This is a very limited subset of the TeX Live distribution. It includes little more than the required set of LaTeX packages."))) +(define-public texlive-latex-amsrefs + (package + (name "texlive-latex-amsrefs") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "amsrefs")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "15i4k479dwrpr0kspmm70g1yn4p3dkh0whyzmr93hph9bggnh1i1")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/amsrefs")) + (home-page "http://www.ctan.org/pkg/amsrefs") + (synopsis "LaTeX-based replacement for BibTeX") + (description + "Amsrefs is a LaTeX package for bibliographies that provides an archival +data format similar to the format of BibTeX database files, but adapted to +make direct processing by LaTeX easier. The package can be used either in +conjunction with BibTeX or as a replacement for BibTeX.") + (license license:lppl1.3+))) + +(define-public texlive-latex-bigfoot + (package + (name "texlive-latex-bigfoot") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "bigfoot")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "092g8alnsdwlgl1isdnqrr32l161994295kadr1n05d81xgj5wnv")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/bigfoot" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-generated-file + (lambda _ + (for-each delete-file (find-files "." "\\.drv$")) + #t))))) + (home-page "http://www.ctan.org/pkg/bigfoot") + (synopsis "Footnotes for critical editions") + (description + "This package aims to provide a one-stop solution to requirements for +footnotes. It offers: Multiple footnote apparatus superior to that of +@code{manyfoot}. Footnotes can be formatted in separate paragraphs, or be run +into a single paragraph (this choice may be selected per footnote series); +Things you might have expected (such as @code{\\verb}-like material in +footnotes, and color selections over page breaks) now work. Note that the +majority of the bigfoot package's interface is identical to that of +@code{manyfoot}; users should seek information from that package's +documentation. The bigfoot bundle also provides the @code{perpage} and +@code{suffix} packages.") + (license license:gpl2+))) + +(define-public texlive-latex-blindtext + (package + (name "texlive-latex-blindtext") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "blindtext")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1jrja9b1pzdh9zgv1jh807w4xijqja58n2mqny6dkwicv8qfgbfg")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/blindtext")) + (home-page "http://www.ctan.org/pkg/blindtext") + (synopsis "Producing 'blind' text for testing") + (description + "The package provides the commands @code{\\blindtext} and +@code{\\Blindtext} for creating \"blind\" text useful in testing new classes +and packages, and @code{\\blinddocument}, @code{\\Blinddocument} for creating +an entire random document with sections, lists, mathematics, etc. The package +supports three languages, @code{english}, @code{(n)german} and @code{latin}; +the @code{latin} option provides a short \"lorem ipsum\" (for a fuller \"lorem +ipsum\" text, see the @code{lipsum} package).") + (license license:lppl))) + +(define-public texlive-latex-dinbrief + (package + (name "texlive-latex-dinbrief") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "dinbrief")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0lb0kiy8fxzl6cnhcw1sggy6jrjvcd6kj1kkw3k9lkimm388yjz6")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/dinbrief" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-generated-file + (lambda _ + (delete-file "dinbrief.drv") + #t))))) + (home-page "http://www.ctan.org/pkg/dinbrief") + (synopsis "German letter DIN style") + (description + "This package implements a document layout for writing letters according +to the rules of DIN (Deutsches Institut für Normung, German standardisation +institute). A style file for LaTeX 2.09 (with limited support of the +features) is part of the package. Since the letter layout is based on a +German standard, the user guide is written in German, but most macros have +English names from which the user can recognize what they are used for. In +addition there are example files showing how letters may be created with the +package.") + (license license:lppl))) + +(define-public texlive-latex-draftwatermark + (package + (name "texlive-latex-draftwatermark") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "draftwatermark")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1zyl2pcz2x529gzj5m93a1s4ipymdabf7qdjl3l1673pizd4hfyv")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/draftwatermark")) + (home-page "http://www.ctan.org/pkg/draftwatermark") + (synopsis "Put a grey textual watermark on document pages") + (description + "This package provides a means to add a textual, light grey watermark on +every page or on the first page of a document. Typical usage may consist in +writing words such as DRAFT or CONFIDENTIAL across document pages. The +package performs a similar function to that of @code{draftcopy}, but its +implementation is output device independent, and made very simple by relying +on everypage.") + (license license:lppl1.3+))) + +(define-public texlive-latex-environ + (package + (name "texlive-latex-environ") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "environ")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "06h28b26dyjkj9shksphgqfv4130jfkwhbw737hxn7d3yvdfffyd")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/environ")) + (home-page "http://www.ctan.org/pkg/environ") + (synopsis "New interface for environments in LaTeX") + (description + "This package provides the @code{\\collect@@body} command (as in +@code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body}, +for collecting the body text of an environment. These commands are used to +define a new author interface to creating new environments.") + (license license:lppl))) + +(define-public texlive-latex-eqparbox + (package + (name "texlive-latex-eqparbox") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "eqparbox")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0pvmhsd4xmpil0m3c7qcgwilbk266mlkzv03g0jr8r3zd8jxlyzq")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/eqparbox")) + (home-page "http://www.ctan.org/pkg/eqparbox") + (synopsis "Create equal-widthed parboxes") + (description + "LaTeX users sometimes need to ensure that two or more blocks of text +occupy the same amount of horizontal space on the page. To that end, the +@code{eqparbox} package defines a new command, @code{\\eqparbox}, which works +just like @code{\\parbox}, except that instead of specifying a width, one +specifies a tag. All @code{eqparbox}es with the same tag---regardless of +where they are in the document---will stretch to fit the widest +@code{eqparbox} with that tag. This simple, equal-width mechanism can be used +for a variety of alignment purposes, as is evidenced by the examples in +@code{eqparbox}'s documentation. Various derivatives of @code{\\eqparbox} are +also provided.") + (license license:lppl1.3+))) + +(define-public texlive-latex-expdlist + (package + (name "texlive-latex-expdlist") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "expdlist")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1x7byk6x10njir3y9rm56glhdzrxwqag7gsnw2sqn1czlq525w7r")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/expdlist" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-generated-file + (lambda _ + (for-each delete-file + (find-files "." "\\.drv$")) + #t))))) + (home-page "http://www.ctan.org/pkg/expdlist") + (synopsis "Expanded description environments") + (description + "The package provides additional features for the LaTeX +@code{description} environment, including adjustable left margin. The package +also allows the user to \"break\" a list (for example, to interpose a comment) +without affecting the structure of the list (this works for @code{itemize} and +@code{enumerate} lists, and numbered lists remain in sequence).") + (license license:lppl))) + +(define-public texlive-latex-filemod + (package + (name "texlive-latex-filemod") + (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/filemod")) + (revision %texlive-revision))) + (sha256 + (base32 + "0vpxilfw69xv78f03g0j0zw0bw4qcn36whqp8phcq48qk1ax2kr2")))) + (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/filemod"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/filemod") + (synopsis "Provide file modification times, and compare them") + (description + "This package provides macros to read and compare the modification dates +of files. The files may be @code{.tex} files, images or other files (as long +as they can be found by LaTeX). It uses the @code{\\pdffilemoddate} primitive +of pdfLaTeX to find the file modification date as PDF date string, parses the +string and returns the value to the user. The package will also work for DVI +output with recent versions of the LaTeX compiler which uses pdfLaTeX in DVI +mode. The functionality is provided by purely expandable macros or by faster +but non-expandable ones.") + (license license:lppl1.3+))) + +(define-public texlive-latex-ifplatform + (package + (name "texlive-latex-ifplatform") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "ifplatform")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "11gvvjvmdfs9b7mm19yf80zwkx49jqcbq6g8qb9y5ns1r1qvnixp")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/ifplatform")) + (home-page "http://www.ctan.org/pkg/ifplatform") + (synopsis "Conditionals to test which platform is being used") + (description + "This package uses the (La)TeX extension @code{-shell-escape} to +establish whether the document is being processed on a Windows or on a +Unix-like system, or on Cygwin (Unix environment over a Windows system). +Booleans provided are: @code{\\ifwindows}, @code{\\iflinux}, @code{\\ifmacosx} +and @code{\\ifcygwin}. The package also preserves the output of @code{uname} +on a Unix-like system, which may be used to distinguish between various +classes of systems.") + (license license:lppl))) + (define-public texlive-latex-natbib (package (name "texlive-latex-natbib") @@ -1625,6 +1997,66 @@ that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat}, designed from the start to be compatible with @code{natbib}.") (license license:lppl))) +(define-public texlive-latex-psfrag + (package + (name "texlive-latex-psfrag") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "psfrag")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1dxbl5il7wbbsp0v45vk884xi1192wxw03849pb1g5q4x808n352")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/psfrag")) + (home-page "http://www.ctan.org/pkg/psfrag") + (synopsis "Replace strings in encapsulated PostScript figures") + (description + "This package allows LaTeX constructions (equations, picture +environments, etc.) to be precisely superimposed over Encapsulated PostScript +figures, using your own favorite drawing tool to create an EPS figure and +placing simple text \"tags\" where each replacement is to be placed, with +PSfrag automatically removing these tags from the figure and replacing them +with a user specified LaTeX construction, properly aligned, scaled, and/or +rotated.") + (license (license:fsf-free "file://psfrag.dtx")))) + +(define-public texlive-latex-pstool + (package + (name "texlive-latex-pstool") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "pstool")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1kwlk1x67lad4xb7gpkxqgdlxwpi6nvq1r9wika7m92abmyf18h3")))) + (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 "http://www.ctan.org/pkg/pstool") + (synopsis "Process PostScript graphisc 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.") + (license license:lppl))) + (define-public texlive-latex-seminar (package (name "texlive-latex-seminar") @@ -1652,6 +2084,283 @@ recent classes such as powerdot or beamer, both of which are tuned to 21st-century presentation styles.") (license license:lppl1.2+))) +(define-public texlive-latex-trimspaces + (package + (name "texlive-latex-trimspaces") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "trimspaces")) + (sha256 + (base32 + "0da00lb32am4g63mn96625wg48p3pj3spx79lajrk17d549apwqa")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/trimspaces" + #:tex-format "latex" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-bug + (lambda _ + ;; The "ins" file refers to the wrong source file. + (substitute* "trimspaces.ins" + (("pstool.tex") "trimspaces.tex")) + #t))))) + (inputs + `(("texlive-latex-filecontents" ,texlive-latex-filecontents))) + (home-page "http://www.ctan.org/pkg/trimspaces") + (synopsis "Trim spaces around an argument or within a macro") + (description + "This very short package allows you to expandably remove spaces around a +token list (commands are provided to remove spaces before, spaces after, or +both); or to remove surrounding spaces within a macro definition, or to define +space-stripped macros.") + (license license:lppl))) + +(define-public texlive-latex-capt-of + (package + (name "texlive-latex-capt-of") + (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/capt-of")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1y2s50f6lz0jx2748lj3iy56hrpcczgnbzmvphxv7aqndyyamd4x")))) + (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/capt-of"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/capt-of") + (synopsis "Captions on more than floats") + (description + "This package defines a command @code{\\captionof} for putting a caption +to something that's not a float.") + (license license:lppl))) + +(define-public texlive-latex-etoolbox + (package + (name "texlive-latex-etoolbox") + (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/etoolbox")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0016bscnpima9krrg2569mva78xzwnygzlvg87dznsm6gf8g589v")))) + (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/etoolbox"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/etoolbox") + (synopsis "e-TeX tools for LaTeX") + (description + "This package is a toolbox of programming facilities geared primarily +towards LaTeX class and package authors. It provides LaTeX frontends to some +of the new primitives provided by e-TeX as well as some generic tools which +are not strictly related to e-TeX but match the profile of this package. The +package provides functions that seem to offer alternative ways of implementing +some LaTeX kernel commands; nevertheless, the package will not modify any part +of the LaTeX kernel.") + (license license:lppl1.3+))) + +(define-public texlive-latex-fncychap + (package + (name "texlive-latex-fncychap") + (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/fncychap")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0fdk84dbicfjfprkz6vk15x36mvlhaw9isjmgkc56jp2khwjswwq")))) + (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/fncychap"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/fncychap") + (synopsis "Seven predefined chapter heading styles") + (description + "This package provides seven predefined chapter heading styles. Each +style can be modified using a set of simple commands. Optionally one can +modify the formatting routines in order to create additional chapter +headings.") + (license license:lppl1.3+))) + +(define-public texlive-latex-framed + (package + (name "texlive-latex-framed") + (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/framed")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "14a4ydqsvp3vcfavl21jrv0ybiqypaaqzg2q2cs3rzkandg7w98x")))) + (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/framed"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/framed") + (synopsis "Framed or shaded regions that can break across pages") + (description + "The package creates three environments: @code{framed}, which puts an +ordinary frame box around the region, @code{shaded}, which shades the region, +and @code{leftbar}, which places a line at the left side. The environments +allow a break at their start (the @code{\\FrameCommand} enables creation of a +title that is “attached” to the environment); breaks are also allowed in the +course of the framed/shaded matter. There is also a command +@code{\\MakeFramed} to make your own framed-style environments.") + ;; The header states: "These macros may be freely transmitted, reproduced, + ;; or modified for any purpose provided that this notice is left intact." + (license (license:fsf-free "file://framed.sty")))) + +(define-public texlive-latex-g-brief + (package + (name "texlive-latex-g-brief") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "g-brief")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0sikazkg0dpkcpzlbqw8qzxr81paf2f443vsrh14jnw7s4gswvc5")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/g-brief" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-generated-file + (lambda _ + (delete-file "g-brief.drv") + #t))))) + (home-page "http://www.ctan.org/pkg/g-brief") + (synopsis "Letter document class") + (description + "This package is designed for formatting formless letters in German; it +can also be used for English (by those who can read the documentation). There +are LaTeX 2.09 @code{documentstyle} and LaTeX 2e class files for both an +\"old\" and a \"new\" version of g-brief.") + (license license:lppl))) + +(define-public texlive-latex-galois + (package + (name "texlive-latex-galois") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "galois")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0d4l0msk8j5pi95xnmm9wygv1vbpkwkv5amx9l0km86cs79jpp1h")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/galois")) + (home-page "http://www.ctan.org/pkg/galois") + (synopsis "Typeset Galois connections") + (description + "The package deals with connections in two-dimensional style, optionally +in colour.") + (license license:lppl))) + +(define-public texlive-latex-gcite + (package + (name "texlive-latex-gcite") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "gcite")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "03g9by54yrypn599y98r1xh7qw0bbbmpzq0bfwpj6j5q5rkl1mfa")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/gcite")) + (home-page "http://www.ctan.org/pkg/gcite") + (synopsis "Citations in a reader-friendly style") + (description + "The package allows citations in the German style, which is considered by +many to be particularly reader-friendly. The citation provides a small amount +of bibliographic information in a footnote on the page where each citation is +made. It combines a desire to eliminate unnecessary page-turning with the +look-up efficiency afforded by numeric citations. The package makes use of +BibLaTeX, and is considered experimental.") + (license license:lppl1.3+))) + +(define-public texlive-latex-geometry + (package + (name "texlive-latex-geometry") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "geometry")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1r2kfcwclg33yk5z8mvlagwxj7nr1mc3w4bdpmhrwv6dn8mrbvw8")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/geometry")) + (home-page "http://www.ctan.org/pkg/geometry") + (synopsis "Flexible and complete interface to document dimensions") + (description + "This package provides an easy and flexible user interface to customize +page layout, implementing auto-centering and auto-balancing mechanisms so that +the users have only to give the least description for the page layout. The +package knows about all the standard paper sizes, so that the user need not +know what the nominal \"real\" dimensions of the paper are, just its standard +name (such as a4, letter, etc.). An important feature is the package's +ability to communicate the paper size it's set up to the output.") + (license license:lppl))) + (define-public texlive-latex-hyperref (package (name "texlive-latex-hyperref") @@ -1692,6 +2401,72 @@ pdf and HTML backends. The package is distributed with the @code{backref} and @code{nameref} packages, which make use of the facilities of @code{hyperref}.") (license license:lppl1.3+))) +(define-public texlive-latex-mdwtools + (package + (name "texlive-latex-mdwtools") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "mdwtools")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0caxs74hla28hc67csf5i5ahadx97w8vxh3mdmsprxbpd1mr7ssg")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/mdwtools")) + (home-page "http://www.ctan.org/pkg/mdwtools") + (synopsis "Miscellaneous tools by Mark Wooding") + (description + "This collection of tools includes: @code{atsupport} for short commands +starting with @code{@@}, macros to sanitize the OT1 encoding of the +@code{cmtt} fonts; a @code{doafter} command; improved @code{footnote} support; +@code{mathenv} for various alignment in maths; list handling; @code{mdwmath} +which adds some minor changes to LaTeX maths; a rewrite of LaTeX's tabular and +array environments; verbatim handling; and syntax diagrams.") + (license license:gpl3+))) + +(define-public texlive-latex-polyglossia + (package + (name "texlive-latex-polyglossia") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "polyglossia")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09mvszd5qgqg4cfglpj5qxyzjz190ppb9p8gnsnjydwp1akvhayf")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/polyglossia")) + (home-page "http://www.ctan.org/pkg/polyglossia") + (synopsis "Alternative to babel for XeLaTeX and LuaLaTeX") + (description + "This package provides a complete Babel replacement for users of LuaLaTeX +and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least.") + (license license:lppl1.3+))) + +(define-public texlive-latex-supertabular + (package + (name "texlive-latex-supertabular") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "supertabular")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "14b2bc7cqz4ckxxycim9sw6jkrr1pahivm1rdbpz5k6hl967w1s3")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/supertabular")) + (home-page "http://www.ctan.org/pkg/supertabular") + (synopsis "Multi-page tables package") + (description + "This package was a predecessor of @code{longtable}; the newer +package (designed on quite different principles) is easier to use and more +flexible, in many cases, but supertabular retains its usefulness in a few +situations where longtable has problems.") + (license license:lppl1.3+))) + (define-public texlive-tex-texinfo (package (name "texlive-tex-texinfo") @@ -1727,6 +2502,34 @@ other programs in the distribution offer online interactive use (with hypertext linkages in some cases).") (license license:gpl3+))) +(define-public texlive-latex-upquote + (package + (name "texlive-latex-upquote") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "upquote")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0d1050i973wnxigy0xpky5l7vn4ff7ldhkjpdqsw5s653gagwixp")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/upquote")) + (home-page "http://www.ctan.org/pkg/upquote") + (synopsis "Show \"realistic\" quotes in verbatim") + (description + "Typewriter-style fonts are best for program listings, but Computer +Modern Typewriter prints @code{`} and @code{'} as bent opening and closing +single quotes. Other fonts, and most programming languages, print @code{`} as +a grave accent and @code{'} upright; @code{'} is used both to open and to +close quoted strings. The package switches the typewriter font to Computer +Modern Typewriter in OT1 encoding, and modifies the behaviour of +@code{verbatim}, @code{verbatim*}, @code{\\verb}, and @code{\\verb*} to print +in the expected way. It does this regardless of other fonts or encodings in +use, so long as the package is loaded after the other fonts were. The package +does not affect @code{\\tt}, @code{\\texttt}, etc.") + (license license:lppl1.2+))) + (define-public texlive-latex-anysize (package (name "texlive-latex-anysize") @@ -1804,6 +2607,40 @@ package uses 'drivers' to place the bars; the available drivers can work with drivers, and VTeX and pdfTeX.") (license license:lppl))) +(define-public texlive-latex-cmap + (package + (name "texlive-latex-cmap") + (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/cmap")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1s1rv6zgw105w2j6ffhnk914qrix87y1ndzri1q72g2kbr91zlbg")))) + (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/cmap"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "https://www.tug.org/svn/texlive/tags/texlive-2017.1/\ +Master/texmf-dist/tex/latex/cmap/") + (synopsis "CMap support for PDF files") + (description + "This package embeds CMap tables into PDF files to make search and +copy-and-paste functions work properly.") + (license license:lppl))) + (define-public texlive-latex-colortbl (package (name "texlive-latex-colortbl") @@ -2232,6 +3069,42 @@ splines, and filled circles and ellipses. The package uses @code{tpic} @code{\\special} commands.") (license license:public-domain))) +(define-public texlive-latex-enumitem + (package + (name "texlive-latex-enumitem") + (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/enumitem")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0q24b1bkdi9l6bw787bpggww83jh2vj8955aw2m5yccqbx4vgr5r")))) + (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/enumitem"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/enumitem") + (synopsis "Customize basic list environments") + (description + "This package is intended to ease customizing the three basic list +environments: @code{enumerate}, @code{itemize} and @code{description}. It +extends their syntax to allow an optional argument where a set of parameters +in the form @code{key=value} are available, for example: +@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}.") + (license license:lppl1.3+))) + (define-public texlive-latex-multirow (package (name "texlive-latex-multirow") @@ -2287,6 +3160,40 @@ the included graphic. LaTeX commands can be placed on the graphic at defined positions; a grid for orientation is available.") (license license:lppl1.0+))) +(define-public texlive-latex-parskip + (package + (name "texlive-latex-parskip") + (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/parskip")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "14r6h9hqb0qgccxj5l1208694fx8sb8avmgzps36lsbbpszl7i7m")))) + (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/parskip"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/parskip") + (synopsis "Layout with zero \\parindent, non-zero \\parskip") + (description + "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout +that is untidy; this package (though it is no substitute for a properly +designed class) helps alleviate this untidiness.") + (license license:lppl))) + (define-public texlive-latex-pdfpages (package (name "texlive-latex-pdfpages") @@ -2368,6 +3275,197 @@ considered obsolete: it was superseded by @code{subfig}, but users may find the more recent @code{subcaption} package more satisfactory.") (license license:lppl))) +(define-public texlive-latex-tabulary + (package + (name "texlive-latex-tabulary") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "tabulary")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1adkdx2zkk42g82nqf57lv1nc1z7kwl13jmy8vpcsizsa0xdnx9n")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/tabulary")) + (home-page "http://www.ctan.org/pkg/tabulary") + (synopsis "Tabular with variable width columns balanced") + (description + "The package defines a @code{tabular*}-like environment, @code{tabulary}, +taking a \"total width\" argument as well as the column specifications. The +environment uses column types @code{L}, @code{C}, @code{R} and @code{J} for +variable width columns (@code{\\raggedright}, @code{\\centering}, +@code{\\raggedleft}, and normally justified). In contrast to +@code{tabularx}'s @code{X} columns, the width of each column is weighted +according to the natural width of the widest cell in the column.") + (license license:lppl))) + +(define-public texlive-latex-threeparttable + (package + (name "texlive-latex-threeparttable") + (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/threeparttable")) + (revision %texlive-revision))) + (sha256 + (base32 + "10vy9k150w2lviw8h22s2mcykff38xci653m5823s2vv44pwbmzq")))) + (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/threeparttable"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/threeparttable") + (synopsis "Tables with captions and notes all the same width") + (description + "This package facilitates tables with titles (captions) and notes. The +title and notes are given a width equal to the body of the table (a +@code{tabular} environment). By itself, a @code{threeparttable} does not +float, but you can put it in a @code{table} or a @code{table*} or some other +environment.") + (license (license:fsf-free "file://threeparttable.sty")))) + +(define-public texlive-fonts-txfonts + (package + (name "texlive-fonts-txfonts") + (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/txfonts")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0jl921qdphg8i7bkfprackn3xd4gmvxckc526nmzqsmahqkavgg2")))) + (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/txfonts") + ("txfonts-vf" . "fonts/tfm/public/txfonts") + ("txfonts-afm" . "fonts/afm/public/txfonts") + ("txfonts-tfm" . "fonts/tfm/public/txfonts") + ("txfonts-type1" . "fonts/type1/public/txfonts") + ("txfonts-enc" . "fonts/enc/dvips/txfonts") + ("txfonts-map" . "fonts/map/dvips/txfonts")))) + (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 + `(("txfonts-tfm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/tfm/public/txfonts")) + (revision %texlive-revision))) + (file-name (string-append name "-tfm-" version "-checkout")) + (sha256 + (base32 + "12ffmbrp48ap35qa3b4mi6ckif9q2vf7972jxh5dc1yzykhla2xv")))) + ("txfonts-vf" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/vf/public/txfonts")) + (revision %texlive-revision))) + (file-name (string-append name "-vf-" version "-checkout")) + (sha256 + (base32 + "04acyfdwvxpfx4l2xh2bpzdmpvwdf2pzbs7a236b0xckz2jvc1ci")))) + ("txfonts-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/txfonts")) + (revision %texlive-revision))) + (file-name (string-append name "-afm-" version "-checkout")) + (sha256 + (base32 + "1705klz51pnqzcs89s3521b84b6c89wlczflsh0vci66nl155yis")))) + ("txfonts-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/txfonts")) + (revision %texlive-revision))) + (file-name (string-append name "-type1-" version "-checkout")) + (sha256 + (base32 + "0ajwr7zb6ch3gxd0g8p2i4llhy2wr9a9saz6jq6hm6fxf4pgl5h3")))) + ("txfonts-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/txfonts")) + (revision %texlive-revision))) + (file-name (string-append name "-map-" version "-checkout")) + (sha256 + (base32 + "0kamr8a9x24jakas3v09dgv7kkpybj3i7qv4vz1iyypqr6kk1raj")))) + ("txfonts-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/txfonts")) + (revision %texlive-revision))) + (file-name (string-append name "-enc-" version "-checkout")) + (sha256 + (base32 + "1bal5fhw0xlhl37ayv8vlnqnsn1y82kadzfjhbgr223blspp4zsj")))))) + (home-page "http://www.ctan.org/pkg/threeparttable") + (synopsis "Times-like fonts in support of mathematics") + (description + "Txfonts supplies virtual text roman fonts using Adobe Times (or URW +NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1, +and TS1 encodings; maths alphabets using Times/URW Nimbus; maths fonts +providing all the symbols of the Computer Modern and AMS fonts, including all +the Greek capital letters from CMR; and additional maths fonts of various +other symbols. + +The set is complemented by a sans-serif set of text fonts, based on +Helvetica/NimbusSanL, and a monospace set. + +All the fonts are in Type 1 format (AFM and PFB files), and are supported by +TeX metrics (VF and TFM files) and macros for use with LaTeX.") + ;; Any version of the GPL with font exception. + (license license:gpl3+))) + (define-public texlive-latex-titlesec (package (name "texlive-latex-titlesec") @@ -2403,6 +3501,35 @@ styles. It also includes a package to change the page styles when there are floats in a page. You may assign headers/footers to individual floats, too.") (license license:lppl))) +(define-public texlive-latex-type1cm + (package + (name "texlive-latex-type1cm") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "type1cm")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1lvxrqfwcwa4p31zyfm80gr05v8c28xybv5ri79zi2ngz6834z12")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/type1cm")) + (home-page "http://www.ctan.org/pkg/type1cm") + (synopsis "Arbitrary size font selection in LaTeX") + (description + "LaTeX, by default, restricts the sizes at which you can use its default +computer modern fonts, to a fixed set of discrete sizes (effectively, a set +specified by Knuth). The @code{type1cm} package removes this restriction; +this is particularly useful when using scalable versions of the CM +fonts (Bakoma, or the versions from BSR/Y&Y, or True Type versions from Kinch, +PCTeX, etc.). In fact, since modern distributions will automatically generate +any bitmap font you might need, @code{type1cm} has wider application than just +those using scaleable versions of the fonts. Note that the LaTeX distribution +now contains a package @code{fix-cm},f which performs the task of +@code{type1cm}, as well as doing the same job for T1- and TS1-encoded +@code{ec} fonts.") + (license license:lppl))) + (define-public texlive-latex-lh (package (name "texlive-latex-lh") @@ -2462,6 +3589,40 @@ technical illustrations. Its output is scalable PostScript or SVG, rather than the bitmaps Metafont creates.") (license license:lppl))) +(define-public texlive-latex-varwidth + (package + (name "texlive-latex-varwidth") + (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/varwidth")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1bmz9ap0ffyg7qry2xi7lki06qx4809w028xvk88cl66h7p46g52")))) + (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/varwidth"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/varwidth") + (synopsis "Variable-width minipage") + (description + "The @code{varwidth} environment is superficially similar to +@code{minipage}, but the specified width is just a maximum value — the box may +get a narrower “natural” width.") + (license license:lppl))) + (define-public texlive-latex-wasysym (package (name "texlive-latex-wasysym") @@ -2483,10 +3644,171 @@ lasy font set and other odds and ends. The wasysym package implements an easy to use interface for these symbols.") (license license:lppl))) +(define-public texlive-latex-wrapfig + (package + (name "texlive-latex-wrapfig") + (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/wrapfig")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "16xpyl0csmmwndz1xhzqfg9l0zcsnqxslsixsqkwd4zsvfj30sv4")))) + (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/wrapfig"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/wrapfig") + (synopsis "Produces figures which text can flow around") + (description + "This package allows figures or tables to have text wrapped around them. +It does not work in combination with list environments, but can be used in a +@code{parbox} or @code{minipage}, and in two-column format.") + (license license:lppl))) + +(define-public texlive-latex-ucs + (package + (name "texlive-latex-ucs") + (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/ucs")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0rrxwi60wmz5dfjifl4fwk66plf7wix85qnhfv4ylvmj6qi6hw37")))) + (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/ucs"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/ucs") + (synopsis "Extended UTF-8 input encoding support for LaTeX") + (description + "The bundle provides the @code{ucs} package, and @code{utf8x.def}, +together with a large number of support files. The @code{utf8x.def} +definition file for use with @code{inputenc} covers a wider range of Unicode +characters than does @code{utf8.def} in the LaTeX distribution. The package +provides facilities for efficient use of its large sets of Unicode characters. +Glyph production may be controlled by various options, which permits use of +non-ASCII characters when coding mathematical formulae. Note that the bundle +previously had an alias “unicode”; that alias has now been withdrawn, and no +package of that name now exists.") + (license license:lppl1.3+))) + +(define-public texlive-latex-preview + (package + (name "texlive-latex-preview") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "preview")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0j6fff6q0ca96nwfdgay2jm55792z4q9aa0rczmiw2qccyg5n2dv")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/preview" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-generated-file + (lambda _ + (delete-file "preview.drv") + #t))))) + (home-page "http://www.ctan.org/pkg/preview") + (synopsis "Extract bits of a LaTeX source for output") + (description + "The main purpose of the preview package is the extraction of selected +elements from a LaTeX source, like formulas or graphics, into separate +pages of a DVI file. A flexible and convenient interface allows it to +specify what commands and constructs should be extracted. This works +with DVI files postprocessed by either Dvips and Ghostscript or +dvipng, but it also works when you are using PDFTeX for generating PDF +files.") + (license license:gpl3+))) + +(define-public texlive-latex-acronym + (package + (name "texlive-latex-acronym") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "acronym")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0jmasg40bk53zdd2jc8nc18jvdai3p2wmamy7hwli8gls4nf25qp")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/acronym")) + (home-page "http://www.ctan.org/pkg/acronym") + (synopsis "Expand acronyms at least once") + (description + "This package ensures that all acronyms used in the text are spelled out +in full at least once. It also provides an environment to build a list of +acronyms used. The package is compatible with PDF bookmarks. The package +requires the suffix package, which in turn requires that it runs under +e-TeX.") + (license license:lppl1.3+))) + +(define-public texlive-generic-pdftex + (package + (name "texlive-generic-pdftex") + (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/pdftex")) + (revision %texlive-revision))) + (sha256 + (base32 + "0k68zmqzs4qvrqxdwsrawbjb14hxqjfamq649azvai0jjxdpkljd")))) + (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/pdftex"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/pdftex") + (synopsis "TeX extension for direct creation of PDF") + (description + "This package provides an extension of TeX which can be configured to +directly generate PDF documents instead of DVI.") + (license license:gpl2+))) + (define texlive-texmf (package (name "texlive-texmf") - (version "2016") + (version "2017") (source texlive-texmf-src) (build-system gnu-build-system) (inputs @@ -2558,7 +3880,7 @@ This package contains the complete tree of texmf-dist data.") (define-public texlive (package (name "texlive") - (version "2016") + (version "2017") (source #f) (build-system trivial-build-system) (inputs `(("bash" ,bash) ; for wrap-program @@ -2617,81 +3939,6 @@ This package contains the complete TeX Live distribution.") (license (license:fsf-free "https://www.tug.org/texlive/copying.html")) (home-page "https://www.tug.org/texlive/"))) - -;; texlive-texmf-minimal is a pruned, small version of the texlive tree, -;; in particular dropping documentation and fonts. It weighs in at 470 MiB -;; instead of 4 GiB. -(define texlive-texmf-minimal - (package (inherit texlive-texmf) - (name "texlive-texmf-minimal") - (arguments - (substitute-keyword-arguments - (package-arguments texlive-texmf) - ((#:modules modules) - `((ice-9 ftw) - (srfi srfi-1) - ,@modules)) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'prune - (lambda _ - (define (delete subdir exclude) - "Delete all files and directories in SUBDIR except for those -given in the list EXCLUDE." - (with-directory-excursion subdir - (for-each delete-file-recursively - (lset-difference equal? - (scandir ".") - (append '("." "..") - exclude))))) - (with-directory-excursion "texmf-dist" - (for-each delete-file-recursively - '("doc" "source" "tex4ht")) - ;; Delete all subdirectories of "fonts", except for "tfm" and - ;; any directories named "cm". - (delete "fonts" '("afm" "map" "pk" "source" "tfm" "type1")) - (delete "fonts/afm" '("public")) - (delete "fonts/afm/public" '("amsfonts")) - (delete "fonts/afm/public/amsfonts" '("cm")) - (delete "fonts/map" '("dvips")) - (delete "fonts/map/dvips" '("cm")) - (delete "fonts/source" '("public")) - (delete "fonts/source/public" '("cm")) - (delete "fonts/tfm" '("public")) - (delete "fonts/type1" '("public")) - (delete "fonts/type1/public" '("amsfonts")) - (delete "fonts/type1/public/amsfonts" '("cm"))) - #t)))))) - (description - "TeX Live provides a comprehensive TeX document production system. -It includes all the major TeX-related programs, macro packages, and fonts -that are free software, including support for many languages around the -world. - -This package contains a small subset of the texmf-dist data."))) - - -;; texlive-minimal is the same as texlive, but using texlive-texmf-minimal -;; instead of the full texlive-texmf. It can be used, for instance, as a -;; native input to packages that need texlive to build their documentation. -(define-public texlive-minimal - (package (inherit texlive) - (name "texlive-minimal") - (inputs - `(("texlive-texmf" ,texlive-texmf-minimal) - ,@(alist-delete "texlive-texmf" (package-inputs texlive)))) - (native-search-paths - (list (search-path-specification - (variable "TEXMFLOCAL") - (files '("share/texmf-local"))))) - (description - "TeX Live provides a comprehensive TeX document production system. -It includes all the major TeX-related programs, macro packages, and fonts -that are free software, including support for many languages around the -world. - -This package contains a small working part of the TeX Live distribution."))) - (define-public perl-text-bibtex (package (name "perl-text-bibtex") @@ -2736,8 +3983,8 @@ values (strings, macros, or numbers) pasted together.") (define-public biber (package - (name "biber-next") - (version "2.6") + (name "biber") + (version "2.7") (source (origin (method url-fetch) (uri (string-append "https://github.com/plk/biber/archive/v" @@ -2745,7 +3992,7 @@ values (strings, macros, or numbers) pasted together.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "158smzgjhjvyabdv97si5q88zjj5l8j1zbfnddvzy6fkpfhskgkp")))) + "17wd80jg98qyddhvz4cin8779ycvppaf2va77r1lyvymjz6w9bx0")))) (build-system perl-build-system) (arguments `(#:phases @@ -2814,33 +4061,6 @@ values (strings, macros, or numbers) pasted together.") other things it comes with full Unicode support.") (license license:artistic2.0))) -;; Our version of texlive comes with biblatex 3.4, which is only compatible -;; with biber 2.5 according to the compatibility matrix in the biber -;; documentation. -(define-public biber-2.5 - (package (inherit biber) - (name "biber") - (version "2.5") - (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")) - (sha256 - (base32 - "163sd343wkrzwnvj2003m2j0kz517jmjr4savw6f8bjxhj8fdrqv")))) - (arguments - (substitute-keyword-arguments (package-arguments biber) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'check 'delete-failing-test - (lambda _ - (delete-file "t/sort-order.t") - #t)))))) - (inputs - `(("perl-date-simple" ,perl-date-simple) - ,@(package-inputs biber))))) - (define-public rubber (package (name "rubber") |