summary refs log tree commit diff
path: root/gnu/packages/tex.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r--gnu/packages/tex.scm147
1 files changed, 140 insertions, 7 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index eb69547a1c..f4b6596e9d 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -735,11 +735,14 @@ book).")
                (and (zero? (system* "luatex" "-ini" "-interaction=batchmode"
                                     "-output-directory=build"
                                     "unpack.ins"))
-                    ;; LaTeX and XeTeX require e-TeX, which is enabled only in
-                    ;; extended mode (activated with a leading asterisk).  We
-                    ;; should not use luatex here, because that would make the
-                    ;; generated format files incompatible with any other TeX
-                    ;; engine.
+                    (zero? (system* "tex" "-ini" "-interaction=batchmode"
+                                    "-output-directory=web2c"
+                                    "tex.ini"))
+                    ;; LaTeX, pdfetex/pdftex, and XeTeX require e-TeX, which
+                    ;; is enabled only in extended mode (activated with a
+                    ;; leading asterisk).  We should not use luatex here,
+                    ;; because that would make the generated format files
+                    ;; incompatible with any other TeX engine.
 
                     ;; FIXME: XeTeX fails to build because neither
                     ;; \XeTeXuseglyphmetrics nor \XeTeXdashbreakstate are
@@ -751,7 +754,8 @@ book).")
                                        "-translate-file=cp227.tcx"
                                        (string-append "*" format ".ini"))))
                      '("latex" ;"xetex"
-                       ))
+                       "pdflatex"
+                       "pdfetex"))
                     (every
                      (lambda (format)
                        (zero? (system* "luatex" "-ini" "-interaction=batchmode"
@@ -772,6 +776,10 @@ book).")
                            (find-files "build" ".*"))
                  (for-each (cut install-file <> web2c)
                            (find-files "web2c" ".*"))
+                 ;; pdftex is really just the same as pdfetex, but since it
+                 ;; doesn't have its own format file, we need to copy it.
+                 (copy-file "web2c/pdfetex.fmt"
+                            (string-append web2c "/pdftex.fmt"))
                  #t))))))
       (native-inputs
        `(("texlive-bin" ,texlive-bin)
@@ -934,7 +942,7 @@ verbatim source).")
                  (revision %texlive-revision)))
            (sha256
             (base32
-             "1q5l0x3jsy74v0zq4c9g0x0rb9jfzf7cbhdzkbchyydv49iav802"))))))
+             "0gi4qv6378nl84s8n1yx3hjqvv7r4lza7hpbymbl5rzwgw8qrnyb"))))))
     (home-page "http://www.ctan.org/pkg/latex-graphics")
     (synopsis "LaTeX standard graphics bundle")
     (description
@@ -1446,6 +1454,131 @@ 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-natbib
+  (package
+    (name "texlive-latex-natbib")
+    (version (number->string %texlive-revision))
+    (source (origin
+              (method svn-fetch)
+              (uri (texlive-ref "latex" "natbib"))
+              (sha256
+               (base32
+                "0aqliq0nwblxyrzhwhv77pnmk7qh2y3prgq7z7qhwcbgz5kisld7"))))
+    (build-system texlive-build-system)
+    (arguments '(#:tex-directory "latex/natbib"))
+    (home-page "http://www.ctan.org/pkg/natbib")
+    (synopsis "Flexible bibliography support")
+    (description
+     "This bundle provides a package that implements both author-year and
+numbered references, as well as much detailed of support for other
+bibliography use.  Also provided are versions of the standard BibTeX styles
+that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat},
+@code{abbrnat}.  The bibliography styles produced by @code{custom-bib} are
+designed from the start to be compatible with @code{natbib}.")
+    (license license:lppl)))
+
+(define-public texlive-latex-seminar
+  (package
+    (name "texlive-latex-seminar")
+    (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/seminar"))
+                    (revision %texlive-revision)))
+              (sha256
+               (base32
+                "0y4i651b75y6006n03x8n86bsqvjsailvvz9bhzy51dzsznqidq0"))))
+    (build-system texlive-build-system)
+    (arguments '(#:tex-directory "latex/seminar"))
+    (home-page "http://www.ctan.org/pkg/seminar")
+    (synopsis "Make overhead slides")
+    ;; TODO: This package may need fancybox and xcomment at runtime.
+    (description
+     "This package provides a class that produces overhead
+slides (transparencies), with many facilities.  Seminar is not nowadays
+reckoned a good basis for a presentation — users are advised to use more
+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-hyperref
+  (package
+    (name "texlive-latex-hyperref")
+    (version (number->string %texlive-revision))
+    (source (origin
+              (method svn-fetch)
+              (uri (texlive-ref "latex" "hyperref"))
+              (sha256
+               (base32
+                "03arf3xvz1jsbvlpgc5qxbxbl9wmk8k09cn6b8gv9pzgpjy4vx4j"))))
+    (build-system texlive-build-system)
+    (arguments
+     '(#:tex-directory "latex/hyperref"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-hluatex.def
+           (lambda _
+             ;; This depends on hluatex.dtx, which does not exist and is
+             ;; nowhere to be found in the sources of the TeX Live
+             ;; distribution.
+             (substitute* "hyperref.ins"
+               (("\\\\file\\{hluatex.def\\}.*") ""))
+             #t)))))
+    ;; The package depends on the kvoptions, ltxcmds, and refcount packages,
+    ;; which are part of the oberdiek bundle.
+    (inputs
+     `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek)))
+    (home-page "http://www.ctan.org/pkg/hyperref")
+    (synopsis "Extensive support for hypertext in LaTeX")
+    (description
+     "The @code{hyperref} package is used to handle cross-referencing commands
+in LaTeX to produce hypertext links in the document.  The package provides
+backends for the @code{\\special} set defined for HyperTeX DVI processors; for
+embedded @code{pdfmark} commands for processing by Acrobat
+Distiller (@code{dvips} and Y&Y's @code{dvipsone}); for Y&Y's @code{dviwindo};
+for PDF control within pdfTeX and @code{dvipdfm}; for TeX4ht; and for VTeX's
+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-tex-texinfo
+  (package
+    (name "texlive-tex-texinfo")
+    (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/texinfo"))
+                    (revision %texlive-revision)))
+              (sha256
+               (base32
+                "09zj2w3lx0y6i2syfjjgizahf86z301dw8p37ln6syfhqhzqdz46"))))
+    (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/texinfo")))
+           (mkdir-p target)
+           (copy-recursively (assoc-ref %build-inputs "source") target)
+           #t))))
+    (home-page "http://www.ctan.org/pkg/texinfo")
+    (synopsis "TeX macros to handle Texinfo files")
+    (description
+     "Texinfo is the preferred format for documentation in the GNU project;
+the format may be used to produce online or printed output from a single
+source.  The Texinfo macros may be used to produce printable output using TeX;
+other programs in the distribution offer online interactive use (with
+hypertext linkages in some cases).")
+    (license license:gpl3+)))
+
 (define texlive-texmf
   (package
    (name "texlive-texmf")