summary refs log tree commit diff
path: root/gnu/packages/tex.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2019-07-15 19:16:00 +0200
committerRicardo Wurmus <rekado@elephly.net>2019-07-24 09:46:49 +0200
commit82ff725df9f93fb5a864eec7803fdbb09f7f816b (patch)
tree26843edb9fc83d52ec4f69feda77a6eaa8cb31f3 /gnu/packages/tex.scm
parente976d3618d2b732d1ddfa7ed7b89f8a8cfc3489a (diff)
downloadguix-82ff725df9f93fb5a864eec7803fdbb09f7f816b.tar.gz
gnu: Add texlive-amsfonts.
* gnu/packages/tex.scm (texlive-fonts-amsfonts, texlive-latex-amsfonts):
Deprecate and merge...
(texlive-amsfonts): ...to this new package.
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r--gnu/packages/tex.scm352
1 files changed, 137 insertions, 215 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index de38cc92a8..ee404871fb 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -1039,198 +1039,138 @@ Taco Hoekwater.")
 (define-public texlive-fonts-mflogo-font
   (deprecated-package "texlive-fonts-mflogo-font" texlive-mflogo-font))
 
-(define-public texlive-fonts-amsfonts
-  (package
-    (name "texlive-fonts-amsfonts")
-    (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/amsfonts"))
-                    (revision %texlive-revision)))
-              (file-name (string-append name "-" version "-checkout"))
-              (sha256
-               (base32
-                "07h20rvpbdb4k72hzmjkyb29426zr9wxsfp6yd4ajbbpd3vx8grb"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (ice-9 match)
-                  (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-union"))
-                   (cwd (getcwd)))
-               ;; Make METAFONT reproducible
-               (setenv "SOURCE_DATE_EPOCH" "1")
-               ;; 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 cwd ":"
-                                      cwd "/cmextra:"
-                                      cwd "/cyrillic:"
-                                      cwd "/dummy:"
-                                      cwd "/symbols:"
-                                      mf "/share/texmf-dist/metafont/base:"
-                                      (assoc-ref inputs "texlive-fonts-cm")
-                                      "/share/texmf-dist/fonts/source/public/cm")))
-             (mkdir "build")
-             (for-each (lambda (font)
-                         (format #t "building font ~a\n" (basename font ".mf"))
-                         (with-directory-excursion (dirname font)
-                           (invoke "mf" "-progname=mf"
-                                   "-output-directory=../build"
-                                   (string-append "\\"
-                                                  "mode:=ljfour; "
-                                                  "mag:=1; "
-                                                  "nonstopmode; "
-                                                  "input "
-                                                  (getcwd) "/"
-                                                  (basename font ".mf")))))
-                       (find-files "." "[0-9]+\\.mf$"))
-
-             ;; There are no metafont sources for the Euler fonts, so we
-             ;; convert the afm files instead.
-             (mkdir "build/euler")
-             (for-each (lambda (font)
-                         (format #t "converting afm font ~a\n" (basename font ".afm"))
-                         (invoke "afm2tfm" font
-                                 (string-append "build/euler/"
-                                                (basename font ".tfm"))))
-                       (find-files (assoc-ref inputs "amsfonts-afm")
-                                   "\\.afm$"))
-
-             ;; Frustratingly, not all fonts can be created this way.  To
-             ;; generate eufm8.tfm, for example, we first scale down
-             ;; eufm10.afm to eufm8.pl, and then generate the tfm file from
-             ;; the pl file.
-             (with-directory-excursion "build/euler"
-               (setenv "TEXINPUTS"
-                       (string-append (getcwd) "//:"
-                                      (assoc-ref inputs "amsfonts-afm") "//:"
-                                      (assoc-ref inputs "texlive-union") "//"))
-               (for-each (match-lambda
-                           (((target-base target-size)
-                             (source-base source-size))
-                            (let ((factor (number->string
-                                           (truncate/ (* 1000 target-size)
-                                                      source-size))))
-                              (invoke "tex"
-                                      "-interaction=scrollmode"
-                                      (string-append "\\input fontinst.sty "
-                                                     "\\transformfont{" target-base "}"
-                                                     "{\\scalefont{" factor "}"
-                                                     "{\\fromafm{" source-base "}}} "
-                                                     "\\bye")))
-                            (invoke "pltotf"
-                                    (string-append target-base ".pl")
-                                    (string-append target-base ".tfm"))
-                            (delete-file (string-append target-base ".pl"))))
-
-                         '((("eufm8" 8) ("eufm10" 10))
-
-                           (("eufb6" 6) ("eufb7" 7))
-                           (("eufb8" 8) ("eufb10" 10))
-                           (("eufb9" 9) ("eufb10" 10))
-
-                           (("eufm6" 6) ("eufb7" 7))
-                           (("eufm9" 9) ("eufb10" 10))
-
-                           (("eurb6" 6) ("eurb7" 7))
-                           (("eurb8" 8) ("eurb10" 10))
-                           (("eurb9" 9) ("eurb10" 10))
-
-                           (("eurm6" 6) ("eurm7" 7))
-                           (("eurm8" 8) ("eurm10" 10))
-                           (("eurm9" 9) ("eurm10" 10)))))
-             #t))
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out  (assoc-ref outputs "out"))
-                    (root (string-append out "/share/texmf-dist/fonts/"))
-                    (pkgs '(("amsfonts-afm"   . "afm/public/amsfonts")
-                            ("amsfonts-type1" . "type1/public/amsfonts")
-                            ("amsfonts-map"   . "map/dvips/amsfonts"))))
-               (for-each (match-lambda
-                           ((pkg . dir)
-                            (let ((target (string-append root dir)))
-                              (mkdir-p target)
-                              (copy-recursively (assoc-ref inputs pkg)
-                                                target))))
-                         pkgs)
-               (copy-recursively (assoc-ref inputs "amsfonts-plain")
-                                 (string-append out "/share/texmf-dist/tex/plain/amsfonts"))
-               (let* ((tfm (string-append root "tfm/public/amsfonts"))
-                      (mf  (string-append root "source/public/amsfonts")))
-                 (copy-recursively "build" tfm)
-                 (for-each (cut install-file <> mf)
-                           (find-files "." "\\.mf"))
-                 #t)))))))
-    (native-inputs
-     `(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base
-                                              texlive-fonts-cm
-                                              texlive-metafont-base)))
-       ("amsfonts-plain"
-        ,(origin
-           (method svn-fetch)
-           (uri (svn-reference
-                 (url (string-append "svn://www.tug.org/texlive/tags/"
-                                     %texlive-tag "/Master/texmf-dist/"
-                                     "/tex/plain/amsfonts"))
-                 (revision %texlive-revision)))
-           (file-name (string-append name "-plain-" version "-checkout"))
-           (sha256
-            (base32
-             "1hi8c9rkfb6395sxf7fhkr91xygfg8am1hqij9g3h2c7qx3714qp"))))
-       ("amsfonts-map"
-        ,(origin
-           (method svn-fetch)
-           (uri (svn-reference
-                 (url (string-append "svn://www.tug.org/texlive/tags/"
-                                     %texlive-tag "/Master/texmf-dist/"
-                                     "/fonts/map/dvips/amsfonts"))
-                 (revision %texlive-revision)))
-           (file-name (string-append name "-map-" version "-checkout"))
-           (sha256
-            (base32
-             "1lrj3bd9ybj4aawzlygc6qvakbrwc5s0mc5n9rpic331frv3axfs"))))
-       ("amsfonts-type1"
-        ,(origin
-           (method svn-fetch)
-           (uri (svn-reference
-                 (url (string-append "svn://www.tug.org/texlive/tags/"
-                                     %texlive-tag "/Master/texmf-dist/"
-                                     "/fonts/type1/public/amsfonts"))
-                 (revision %texlive-revision)))
-           (file-name (string-append name "-type1-" version "-checkout"))
-           (sha256
-            (base32
-             "1zfz33vn6gm19njy74n8wmn7sljrimfhwns5z8qqhxqfh1g4qip2"))))
-       ("amsfonts-afm"
-        ,(origin
-           (method svn-fetch)
-           (uri (svn-reference
-                 (url (string-append "svn://www.tug.org/texlive/tags/"
-                                     %texlive-tag "/Master/texmf-dist/"
-                                     "/fonts/afm/public/amsfonts"))
-                 (revision %texlive-revision)))
-           (file-name (string-append name "-afm-" version "-checkout"))
-           (sha256
-            (base32
-             "1fifzkaihmjgchnk7dmw0c23k0cz999dxnc78ivmqvgi1dhx0iv8"))))))
-    (home-page "https://www.ctan.org/pkg/amsfonts")
-    (synopsis "TeX fonts from the American Mathematical Society")
-    (description
-     "This package provides an extended set of fonts for use in mathematics,
+(define-public texlive-amsfonts
+  (let ((template (simple-texlive-package
+                   "texlive-amsfonts"
+                   (list "/source/latex/amsfonts/"
+                         "/fonts/source/public/amsfonts/"
+                         "/fonts/type1/public/amsfonts/"
+                         "/fonts/afm/public/amsfonts/"
+                         "/fonts/map/dvips/amsfonts/"
+                         "/tex/plain/amsfonts/"
+                         "/doc/fonts/amsfonts/")
+                   (base32
+                    "15q70nkjf8wqzbd5ivcdx3i2sdgqxjb38q0qn9a2qw9i0qcnx6zw"))))
+    (package
+      (inherit template)
+      (arguments
+       (substitute-keyword-arguments (package-arguments template)
+         ((#:tex-directory _ #t)
+          "latex/amsfonts")
+         ((#:modules modules '())
+          `((guix build texlive-build-system)
+            (guix build utils)
+            (ice-9 match)
+            (srfi srfi-1)
+            (srfi srfi-26)))
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-before 'build 'build-fonts
+               (lambda* (#:key inputs #:allow-other-keys)
+                 (let ((mf  (assoc-ref inputs "texlive-union"))
+                       (src (string-append (getcwd) "/fonts/source/public/amsfonts/")))
+                   ;; Make METAFONT reproducible
+                   (setenv "SOURCE_DATE_EPOCH" "1")
+                   ;; 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 src ":"
+                                          src "/cmextra:"
+                                          src "/cyrillic:"
+                                          src "/dummy:"
+                                          src "/symbols:"
+                                          mf "/share/texmf-dist/metafont/base:"
+                                          (assoc-ref inputs "texlive-fonts-cm")
+                                          "/share/texmf-dist/fonts/source/public/cm")))
+                 (let ((build (string-append (getcwd) "/build")))
+                   (mkdir-p build)
+                   (with-directory-excursion "fonts/source/public/amsfonts"
+                     (for-each (lambda (font)
+                                 (format #t "building font ~a\n" (basename font ".mf"))
+                                 (with-directory-excursion (dirname font)
+                                   (invoke "mf" "-progname=mf"
+                                           (string-append "-output-directory=" build)
+                                           (string-append "\\"
+                                                          "mode:=ljfour; "
+                                                          "mag:=1; "
+                                                          "nonstopmode; "
+                                                          "input "
+                                                          (getcwd) "/"
+                                                          (basename font ".mf")))))
+                               (find-files "." "[0-9]+\\.mf$"))))
+
+                 ;; There are no metafont sources for the Euler fonts, so we
+                 ;; convert the afm files instead.
+                 (let ((build (string-append (getcwd) "/build/euler")))
+                   (mkdir build)
+                   (with-directory-excursion "fonts/afm/public/amsfonts/"
+                     (for-each (lambda (font)
+                                 (format #t "converting afm font ~a\n" (basename font ".afm"))
+                                 (invoke "afm2tfm" font
+                                         (string-append build "/"
+                                                        (basename font ".tfm"))))
+                               (find-files "." "\\.afm$")))
+
+                   ;; Frustratingly, not all fonts can be created this way.  To
+                   ;; generate eufm8.tfm, for example, we first scale down
+                   ;; eufm10.afm to eufm8.pl, and then generate the tfm file from
+                   ;; the pl file.
+                   (setenv "TEXINPUTS"
+                             (string-append build "//:"
+                                            (getcwd) "/fonts/afm/public/amsfonts//:"
+                                            (assoc-ref inputs "texlive-union") "//"))
+                   (with-directory-excursion build
+                     (for-each (match-lambda
+                                 (((target-base target-size)
+                                   (source-base source-size))
+                                  (let ((factor (number->string
+                                                 (truncate/ (* 1000 target-size)
+                                                            source-size))))
+                                    (invoke "tex"
+                                            "-interaction=scrollmode"
+                                            (string-append "\\input fontinst.sty "
+                                                           "\\transformfont{" target-base "}"
+                                                           "{\\scalefont{" factor "}"
+                                                           "{\\fromafm{" source-base "}}} "
+                                                           "\\bye")))
+                                  (invoke "pltotf"
+                                          (string-append target-base ".pl")
+                                          (string-append target-base ".tfm"))
+                                  (delete-file (string-append target-base ".pl"))))
+
+                               '((("eufm8" 8) ("eufm10" 10))
+
+                                 (("eufb6" 6) ("eufb7" 7))
+                                 (("eufb8" 8) ("eufb10" 10))
+                                 (("eufb9" 9) ("eufb10" 10))
+
+                                 (("eufm6" 6) ("eufb7" 7))
+                                 (("eufm9" 9) ("eufb10" 10))
+
+                                 (("eurb6" 6) ("eurb7" 7))
+                                 (("eurb8" 8) ("eurb10" 10))
+                                 (("eurb9" 9) ("eurb10" 10))
+
+                                 (("eurm6" 6) ("eurm7" 7))
+                                 (("eurm8" 8) ("eurm10" 10))
+                                 (("eurm9" 9) ("eurm10" 10))))))
+                 #t))
+             (add-after 'install 'install-generated-fonts
+               (lambda* (#:key inputs outputs #:allow-other-keys)
+                 (copy-recursively "build"
+                                   (string-append
+                                    (assoc-ref outputs "out")
+                                    "/share/texmf-dist/fonts/tfm/public/amsfonts"))
+                 #t))))))
+      (native-inputs
+       `(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base
+                                                texlive-fonts-cm
+                                                texlive-metafont-base)))))
+      (home-page "https://www.ctan.org/pkg/amsfonts")
+      (synopsis "TeX fonts from the American Mathematical Society")
+      (description
+       "This package provides an extended set of fonts for use in mathematics,
 including: extra mathematical symbols; blackboard bold letters (uppercase
 only); fraktur letters; subscript sizes of bold math italic and bold Greek
 letters; subscript sizes of large symbols such as sum and product; added sizes
@@ -1240,31 +1180,13 @@ files, and all except the Euler fonts are provided as Metafont source.  The
 distribution also includes the canonical Type 1 versions of the Computer
 Modern family of fonts.  The Euler fonts are supported by separate packages;
 details can be found in the documentation.")
-    (license license:silofl1.1)))
+      (license license:silofl1.1))))
+
+(define-public texlive-fonts-amsfonts
+  (deprecated-package "texlive-fonts-amsfonts" texlive-amsfonts))
 
 (define-public texlive-latex-amsfonts
-  (package
-    (name "texlive-latex-amsfonts")
-    (version (number->string %texlive-revision))
-    (source (origin
-              (method svn-fetch)
-              (uri (texlive-ref "latex" "amsfonts"))
-              (file-name (string-append name "-" version "-checkout"))
-              (sha256
-               (base32
-                "0slzfv5h2m03b2xvm2sasznz4azh6rgi069z161dja3l8rln79hm"))))
-    (build-system texlive-build-system)
-    (arguments '(#:tex-directory "latex/amsfonts"))
-    (native-inputs
-     `(("texlive-fonts-cm" ,texlive-fonts-cm)
-       ("texlive-metafont-base" ,texlive-metafont-base)))
-    (home-page "https://www.ctan.org/pkg/amsfonts")
-    (synopsis "TeX fonts from the American Mathematical Society")
-    (description
-     "This package provides basic LaTeX support for the symbol fonts provides
-by the amsfonts package.  It provides @code{amsfonts.sty}, with names of
-individual symbols defined in @code{amssymb.sty}.")
-    (license license:silofl1.1)))
+  (deprecated-package "texlive-latex-amsfonts" texlive-amsfonts))
 
 (define-public texlive-mkpattern
   (package