gnu: texlive-amsfonts: Promote replacement.

* gnu/packages/tex.scm (texlive-amsfonts): Remove.
(texlive-amsfonts-fixed): Rename to...
(texlive-amsfonts): ... this.
This commit is contained in:
Ludovic Courtès 2022-05-08 11:48:40 +02:00
parent 466e12c18b
commit d08921adde
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1306,139 +1306,6 @@ (define-deprecated-package texlive-fonts-mflogo-font texlive-mflogo-font)
(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)
;; TODO: This package is missing files.
(replacement texlive-amsfonts/fixed)
(arguments
(substitute-keyword-arguments (package-arguments template)
((#:build-targets _ #t)
'(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 (string-append (getcwd) "/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)
(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-fonts/euler")))
(mkdir build)
(with-directory-excursion "fonts/afm/public/amsfonts/euler"
(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 "(cmextra|cyrillic|dummy|euler|symbols)"
"\\.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 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))))))))
(add-after 'install 'install-generated-fonts
(lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively "build-fonts"
(string-append
(assoc-ref outputs "out")
"/share/texmf-dist/fonts/tfm/public/amsfonts"))))))))
(native-inputs
(list (texlive-updmap.cfg (list texlive-fontinst))))
(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
of the Computer Modern small caps font; cyrillic fonts (from the University of
Washington); Euler mathematical fonts. All fonts are provided as Adobe Type 1
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))))
(define-public texlive-amsfonts/fixed
(let ((template (simple-texlive-package
"texlive-amsfonts-fixed"
(list "/source/latex/amsfonts/"
"/fonts/source/public/amsfonts/"
"/fonts/type1/public/amsfonts/"