gnu: Add texlive-latex-etoolbox.
[jackhill/guix/guix.git] / gnu / packages / tex.scm
index 9841359..22d7e6d 100644 (file)
@@ -1442,7 +1442,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 +1464,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")
@@ -1525,6 +1547,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
@@ -1602,6 +1625,169 @@ 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-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-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-natbib
   (package
     (name "texlive-latex-natbib")
@@ -1652,6 +1838,210 @@ 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-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-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 +2082,48 @@ 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-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")
@@ -1804,6 +2236,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")
@@ -2103,6 +2569,79 @@ differs from the EC in a number of particulars.")
     (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\
 texlive-2017.1/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
 
+(define-public texlive-fonts-rsfs
+  (package
+    (name "texlive-fonts-rsfs")
+    (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/rsfs/"))
+                    (revision %texlive-revision)))
+              (sha256
+               (base32
+                "0r12pn02r4a955prcvq0048nifh86ihlcgvw3pppqqvfngv34l5h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (srfi srfi-1)
+                  (srfi srfi-26))
+       #:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((mf (assoc-ref inputs "texlive-metafont-base")))
+               ;; Tell mf where to find mf.base
+               (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
+               ;; Tell mf where to look for source files
+               (setenv "MFINPUTS"
+                       (string-append (getcwd) ":"
+                                      mf "/share/texmf-dist/metafont/base:"
+                                      (assoc-ref inputs "texlive-fonts-cm")
+                                      "/share/texmf-dist/fonts/source/public/cm")))
+             (mkdir "build")
+             (every (lambda (font)
+                      (format #t "building font ~a\n" font)
+                      (zero? (system* "mf" "-progname=mf"
+                                      "-output-directory=build"
+                                      (string-append "\\"
+                                                     "mode:=ljfour; "
+                                                     "mag:=1; "
+                                                     "batchmode; "
+                                                     "input " (basename font ".mf")))))
+                    (find-files "." "[0-9]+\\.mf$"))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (tfm (string-append
+                          out "/share/texmf-dist/fonts/tfm/public/rsfs"))
+                    (mf  (string-append
+                          out "/share/texmf-dist/fonts/source/public/rsfs")))
+               (for-each (cut install-file <> tfm)
+                         (find-files "build" "\\.*"))
+               (for-each (cut install-file <> mf)
+                         (find-files "." "\\.mf"))
+               #t))))))
+    (native-inputs
+     `(("texlive-bin" ,texlive-bin)
+       ("texlive-metafont-base" ,texlive-metafont-base)
+       ("texlive-fonts-cm" ,texlive-fonts-cm)))
+    (home-page "http://www.ctan.org/pkg/rsfs")
+    (synopsis "Ralph Smith's Formal Script font")
+    (description
+     "The fonts provide uppercase formal script letters for use as symbols in
+scientific and mathematical typesetting (in contrast to the informal script
+fonts such as that used for the calligraphic symbols in the TeX maths symbol
+font).  The fonts are provided as Metafont source, and as derived Adobe Type 1
+format.  LaTeX support, for using these fonts in mathematics, is available via
+one of the packages @code{calrsfs} and @code{mathrsfs}.")
+    (license (license:fsf-free "http://mirrors.ctan.org/fonts/rsfs/README"))))
+
 (define-public texlive-latex-eso-pic
   (package
     (name "texlive-latex-eso-pic")
@@ -2330,6 +2869,65 @@ 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-lh
+  (package
+    (name "texlive-latex-lh")
+    (version (number->string %texlive-revision))
+    (source (origin
+              (method svn-fetch)
+              (uri (texlive-ref "latex" "lh"))
+              (sha256
+               (base32
+                "00gdiwh3sfhh1iimjhpja7lm7k4vzqzql2irgwnpz94qvh25zwi5"))))
+    (build-system texlive-build-system)
+    (arguments '(#:tex-directory "latex/lh"))
+    (home-page "http://www.ctan.org/pkg/lh")
+    (synopsis "Cyrillic fonts that support LaTeX standard encodings")
+    (description
+     "The LH fonts address the problem of the wide variety of alphabets that
+are written with Cyrillic-style characters.  The fonts are the original basis
+of the set of T2* and X2 encodings that are now used when LaTeX users need to
+write in Cyrillic languages.  Macro support in standard LaTeX encodings is
+offered through the latex-cyrillic and t2 bundles, and the package itself
+offers support for other (more traditional) encodings.  The fonts, in the
+standard T2* and X2 encodings are available in Adobe Type 1 format, in the
+CM-Super family of fonts.  The package also offers its own LaTeX support for
+OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
+    (license license:lppl)))
+
+(define-public texlive-metapost
+  (package
+    (name "texlive-metapost")
+    (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/"
+                                        "/metapost"))
+                    (revision %texlive-revision)))
+              (sha256
+               (base32
+                "03nvjddffiz796wll6axzmgfvynyciy2mqamv20qx252w71vwkwd"))))
+    (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/metapost")))
+           (mkdir-p target)
+           (copy-recursively (assoc-ref %build-inputs "source") target)
+           #t))))
+    (home-page "http://www.ctan.org/pkg/metapost")
+    (synopsis "Create scalable illustrations")
+    (description
+     "MetaPost uses a language based on that of Metafont to produce precise
+technical illustrations.  Its output is scalable PostScript or SVG, rather
+than the bitmaps Metafont creates.")
+    (license license:lppl)))
+
 (define-public texlive-latex-wasysym
   (package
     (name "texlive-latex-wasysym")
@@ -2351,6 +2949,101 @@ 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-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 texlive-texmf
   (package
    (name "texlive-texmf")