From b7d779db34630f98df817a244adf44b9e486abe9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 Jul 2019 15:14:30 +0200 Subject: gnu: Add texlive-cm. * gnu/packages/tex.scm (texlive-cm): New variable. (texlive-fonts-cm): Deprecate package. --- gnu/packages/tex.scm | 156 ++++++++++++++++++++++++--------------------------- 1 file changed, 73 insertions(+), 83 deletions(-) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index c8d08cff5d..f847e22705 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -699,92 +699,82 @@ from (almost) arbitrarily complex font names, thus helping portability of TeX documents.") (license license:public-domain))) -(define-public texlive-fonts-cm - (package - (inherit (simple-texlive-package - "texlive-fonts-cm" - (list "/fonts/source/public/cm/" - "/fonts/map/dvips/cm/cmtext-bsr-interpolated.map" - "/doc/fonts/cm/README" - "/doc/fonts/cm/README-cmps.txt") - (base32 - "1h0q71paqmg1xjg6k35ni2i6m93kmlq9rdwm913xg9n4qngywl18"))) - (outputs '("out" "doc")) - (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) "/fonts/source/public/cm/:" - mf "/share/texmf-dist/metafont/base"))) - (for-each make-file-writable - (cons "fonts/source/public/cm/" - (find-files "fonts/source/public/cm/" ".*"))) - (let ((build (string-append (getcwd) "/build")) - (pkdir (string-append (getcwd) "/pk/ljfour/public/cm/dpi600"))) - (mkdir-p pkdir) - (mkdir-p build) - (with-directory-excursion "fonts/source/public/cm/" - (for-each (lambda (font) - (format #t "building font ~a\n" font) - (invoke "mf" "-progname=mf" - (string-append "-output-directory=" build) - (string-append "\\" - "mode:=ljfour; " - "mag:=1+0/600; " - "scrollmode; " - "input " - (basename font ".mf"))) - (invoke "gftopk" - (string-append build "/" - (basename font ".mf") ".600gf") - (string-append pkdir "/" - (basename font ".mf") ".pk"))) - (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$")))) - #t)) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc")) - (source (assoc-ref inputs "source")) - (fonts (string-append out "/share/texmf-dist/fonts/")) - (pk (string-append fonts "pk")) - (tfm (string-append fonts "tfm/public/cm")) - (mf (string-append fonts "source/public/cm"))) - (for-each (cut install-file <> tfm) - (find-files "build" "\\.*")) - (for-each (cut install-file <> mf) - (find-files "." "\\.mf")) - (copy-recursively "pk" pk) - (copy-recursively - (string-append source "/doc") - (string-append doc "/doc")) - (install-file - (string-append source "/fonts/map/dvips/cm/cmtext-bsr-interpolated.map") - (string-append fonts "/map/dvips/cm/cmtext-bsr-interpolated.map")) - #t)))))) - (native-inputs - `(("texlive-bin" ,texlive-bin) - ("texlive-metafont-base" ,texlive-metafont-base))) - (home-page "https://www.ctan.org/pkg/cm") - (synopsis "Computer Modern fonts for TeX") - (description "This package provides the Computer Modern fonts by Donald +(define-public texlive-cm + (let ((template (simple-texlive-package + "texlive-cm" + (list "/fonts/source/public/cm/" + "/fonts/map/dvips/cm/cmtext-bsr-interpolated.map" + "/doc/fonts/cm/") + (base32 + "1h0q71paqmg1xjg6k35ni2i6m93kmlq9rdwm913xg9n4qngywl18") + #:trivial? #t))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:modules modules '()) + '((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26))) + ((#:phases phases) + `(modify-phases ,phases + (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) "/fonts/source/public/cm/:" + mf "/share/texmf-dist/metafont/base"))) + (for-each make-file-writable + (cons "fonts/source/public/cm/" + (find-files "fonts/source/public/cm/" ".*"))) + (let ((build (string-append (getcwd) "/build")) + (pkdir (string-append (getcwd) "/pk/ljfour/public/cm/dpi600"))) + (mkdir-p pkdir) + (mkdir-p build) + (with-directory-excursion "fonts/source/public/cm/" + (for-each (lambda (font) + (format #t "building font ~a\n" font) + (invoke "mf" "-progname=mf" + (string-append "-output-directory=" build) + (string-append "\\" + "mode:=ljfour; " + "mag:=1+0/600; " + "scrollmode; " + "input " + (basename font ".mf"))) + (invoke "gftopk" + (string-append build "/" + (basename font ".mf") ".600gf") + (string-append pkdir "/" + (basename font ".mf") ".pk"))) + (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$")))) + #t)) + (add-after 'install 'install-generated-fonts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (fonts (string-append out "/share/texmf-dist/fonts/")) + (pk (string-append fonts "pk")) + (tfm (string-append fonts "tfm/public/cm"))) + (for-each (cut install-file <> tfm) + (find-files "build" "\\.*")) + (copy-recursively "pk" pk) + #t))))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-metafont-base" ,texlive-metafont-base))) + (home-page "https://www.ctan.org/pkg/cm") + (synopsis "Computer Modern fonts for TeX") + (description "This package provides the Computer Modern fonts by Donald Knuth. The Computer Modern font family is a large collection of text, display, and mathematical fonts in a range of styles, based on Monotype Modern 8A.") - (license license:knuth))) + (license license:knuth)))) + +(define-public texlive-fonts-cm + (deprecated-package "texlive-fonts-cm" texlive-cm)) (define-public texlive-cm-super (let ((template (simple-texlive-package -- cgit v1.2.3