diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 753a6e8d8d..5d5e5e7fc4 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1431,11 +1431,12 @@ details can be found in the documentation.") "/fonts/source/public/amsfonts/" "/fonts/type1/public/amsfonts/" "/fonts/afm/public/amsfonts/" + "/fonts/tfm/public/amsfonts/" "/fonts/map/dvips/amsfonts/" "/tex/plain/amsfonts/" "/doc/fonts/amsfonts/") (base32 - "15q70nkjf8wqzbd5ivcdx3i2sdgqxjb38q0qn9a2qw9i0qcnx6zw")))) + "1rpl87643q8v6gcqsz68mjha8wac6cqx7mr16ds8f0ccbw7a4w9b")))) (package (inherit template) (arguments @@ -1444,135 +1445,17 @@ details can be found in the documentation.") '(list "amsfonts.ins")) ((#: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) - ;; Allow self fonts sources and other resources to be - ;; discovered. - (setenv "GUIX_TEXMF" (string-append (getenv "GUIX_TEXMF") - ":" (getcwd))) - - (let ((build "/tmp/build-fonts")) - (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) - (let ((outdir (string-append build "/" (dirname font)))) - (mkdir-p outdir) - (invoke "mf" "-progname=mf" - (string-append "-output-directory=" outdir) - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "nonstopmode; " - "input " - (getcwd) "/" - (basename font ".mf")))))) - (find-files "." "([0-9]+|dummy)\\.mf$")))) - - ;; There are no metafont sources for the Euler fonts, so we - ;; convert the afm files instead. - (let ((build "/tmp/build-fonts")) - (mkdir-p build) - (with-directory-excursion "fonts/afm/public/amsfonts/" - ;; These files have bogus values for the Descender field, - ;; so we can't process them. - (substitute* (find-files "." "eus(b|m).*\\.afm$") - (("^Descender -2147483648") "")) - - (for-each (lambda (font) - (let ((directory (string-append build "/" (dirname font)))) - (mkdir-p directory) - (format #t "converting afm font ~a\n" (basename font ".afm")) - (invoke "afm2tfm" font - (string-append directory "/" - (basename font ".afm") - ".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//:" - (getcwd) "/source/latex/amsfonts//:")) - - (with-directory-excursion (string-append build "/euler") - (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")))) - - '((("eufb6" 6) ("eufb7" 7)) - (("eufb8" 8) ("eufb10" 10)) - (("eufb9" 9) ("eufb10" 10)) - - (("eufm6" 6) ("eufm7" 7)) - (("eufm8" 8) ("eufm10" 10)) - (("eufm9" 9) ("eufm10" 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)) - - (("eusb6" 6) ("eusb7" 7)) - (("eusb8" 8) ("eusb10" 10)) - (("eusb9" 9) ("eusb10" 10)) - - (("eusm6" 6) ("eusm7" 7)) - (("eusm8" 8) ("eusm10" 10)) - (("eusm9" 9) ("eusm10" 10)))))))) - (add-after 'install 'install-generated-fonts - (lambda* (#:key inputs outputs #:allow-other-keys) - (copy-recursively "/tmp/build-fonts" - (string-append - (assoc-ref outputs "out") - "/share/texmf-dist/fonts/tfm/public/amsfonts")))) + (add-after 'unpack 'chdir + (lambda _ (chdir "source/latex/amsfonts"))) + (add-before 'copy-files 'unchdir + (lambda _ (chdir "../../.."))) (add-after 'copy-files 'remove-extra-files - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((prefix (string-append - (assoc-ref outputs "out") - "/share/texmf-dist/fonts/"))) - (for-each delete-file - (find-files (string-append prefix - "tfm/public/amsfonts/") - "\\.(mtx|pl|log|600gf)")) - (for-each delete-file-recursively - (list (string-append (assoc-ref outputs "out") - "/share/texmf-dist/build/") - (string-append prefix - "tfm/public/amsfonts/cm/") - (string-append prefix - "tfm/public/amsfonts/latxfont/")))))))))) - (native-inputs - (list (texlive-updmap.cfg (list texlive-fontinst)))) + (lambda* (#:key outputs #:allow-other-keys) + (delete-file-recursively + (string-append (assoc-ref outputs "out") + "/share/texmf-dist/source/latex/amsfonts/build/")))))))) (home-page "https://www.ctan.org/pkg/amsfonts") (synopsis "TeX fonts from the American Mathematical Society") (description