diff options
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r-- | gnu/packages/tex.scm | 224 |
1 files changed, 62 insertions, 162 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 753a6e8d8d..34e9aa1e06 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -436,6 +436,18 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use. (lambda _ (substitute* "texk/kpathsea/config.h" (("#define ST_NLINK_TRICK") "")))) + + ,@(if (target-arm32?) + `((add-after 'unpack 'skip-faulty-test + (lambda _ + ;; Skip this faulty test on armhf-linux: + ;; https://issues.guix.gnu.org/54055 + (substitute* '("texk/mendexk/tests/mendex.test" + "texk/upmendex/tests/upmendex.test") + (("^TEXMFCNF=" all) + (string-append "exit 77 # skip\n" all)))))) + '()) + (add-after 'check 'customize-texmf.cnf ;; The default texmf.cnf is provided by this package, texlive-bin. ;; Every variable of interest is set relatively to the GUIX_TEXMF @@ -1431,11 +1443,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 +1457,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 @@ -4017,6 +3912,8 @@ loading fonts by their proper names instead of file names.") (sha256 (base32 "172zybw7rp05jca8wl6x0mh6z6gncdyi1j9wdfyjnhbvqw0z4wi4")))) + ;; This package misses important files + (replacement texlive-amsmath) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/amsmath")) (home-page "https://www.ctan.org/pkg/amsmath") @@ -4120,6 +4017,8 @@ distribution.") "0qr5vjp79g1c1l6k173qhfdfabgbky73wymzhm56pazx4a8r08wz")))) (package (inherit template) + ;; TODO: This package is missing files. + (replacement texlive-babel/fixed) (arguments (substitute-keyword-arguments (package-arguments template) ((#:tex-directory _ #t) @@ -4414,6 +4313,8 @@ language that is written in a Cyrillic alphabet.") "11f14dzhwsy4pli21acccip43d36nf3pac33ihjffnps1i2mhqkd")))) (package (inherit template) + ;; TODO: This package is missing files. + (replacement texlive-psnfss/fixed) (arguments (substitute-keyword-arguments (package-arguments template) ((#:tex-directory _ #t) @@ -5935,14 +5836,16 @@ optional arguments, or for macros that are defined as robust macros by that also takes care of the involved internal macros.") (license license:lppl1.3c+))) -(define-public texlive-latex-listings +(define-public texlive-listings (package - (name "texlive-latex-listings") + (name "texlive-listings") (version (number->string %texlive-revision)) (source (origin (method svn-fetch) (uri (texlive-ref "latex" "listings")) - (file-name (string-append name "-" version "-checkout")) + (file-name + ;; TODO: Drop "latex-" on next rebuild cycle. + (string-append "texlive-latex-listings-" version "-checkout")) (sha256 (base32 "082zri3gp8s6p2difhk1pbix2vzmvsf6fmld2z78v35xwk3fiya0")))) @@ -5959,6 +5862,9 @@ is needed. Keywords, comments and strings can be typeset using different styles. Support for @code{hyperref} is provided.") (license license:lppl1.3+))) +(define-public texlive-latex-listings + (deprecated-package "texlive-latex-listings" texlive-listings)) + (define-public texlive-latex-jknapltx (package (name "texlive-latex-jknapltx") @@ -6508,6 +6414,8 @@ use this package to insert PostScript files, in addition to PDF files.") "0yn0yl6x1z9ab5gb56lhvkqabd2agz3ggxifwxkiysrj5780j29z")))) (package (inherit template) + ;; TODO: This package is missing files. + (replacement texlive-stmaryrd/fixed) (arguments (substitute-keyword-arguments (package-arguments template) ((#:tex-directory _ #t) "latex/stmaryrd") @@ -7201,33 +7109,15 @@ implements an easy to use interface for these symbols.") (define-deprecated-package texlive-latex-wasysym texlive-wasysym) -(define-public texlive-latex-wrapfig +(define-public texlive-wrapfig (package - (name "texlive-latex-wrapfig") - (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/wrapfig")) - (revision %texlive-revision))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "16xpyl0csmmwndz1xhzqfg9l0zcsnqxslsixsqkwd4zsvfj30sv4")))) - (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/latex/wrapfig"))) - (mkdir-p target) - (copy-recursively (assoc-ref %build-inputs "source") target) - #t)))) - (home-page "https://www.ctan.org/pkg/wrapfig") + (inherit + (simple-texlive-package + "texlive-wrapfig" + (list "doc/latex/wrapfig/" "tex/latex/wrapfig/") + (base32 "0wk1vp0dqsp597xzsqbwj8xk80v7d77qmpjir84n54f920rf9ka9") + #:trivial? #t)) + (home-page "https://ctan.org/macros/latex/contrib/wrapfig") (synopsis "Produces figures which text can flow around") (description "This package allows figures or tables to have text wrapped around them. @@ -7235,6 +7125,8 @@ It does not work in combination with list environments, but can be used in a @code{parbox} or @code{minipage}, and in two-column format.") (license license:lppl))) +(define-deprecated-package texlive-latex-wrapfig texlive-wrapfig) + (define-public texlive-latex-ucs (package (name "texlive-latex-ucs") @@ -8093,9 +7985,9 @@ striking out (line through words) and crossing out (/// over words).") (define-deprecated-package texlive-generic-ulem texlive-ulem) -(define-public texlive-latex-pgf +(define-public texlive-pgf (package - (name "texlive-latex-pgf") + (name "texlive-pgf") (version (number->string %texlive-revision)) (source (origin @@ -8152,6 +8044,9 @@ works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can produce either PostScript or PDF output.") (license license:lppl1.3c+))) +(define-public texlive-latex-pgf + (deprecated-package "texlive-latex-pgf" texlive-pgf)) + (define-public texlive-latex-koma-script (package (name "texlive-latex-koma-script") @@ -8776,7 +8671,7 @@ for a wealth of support information.") #:trivial? #t)) (propagated-inputs (list texlive-hyperref texlive-oberdiek texlive-etoolbox - texlive-latex-pgf)) + texlive-pgf)) (home-page "https://www.ctan.org/pkg/beamer") (synopsis "LaTeX class for producing presentations and slides") (description "The beamer LaTeX class can be used for producing slides. @@ -9130,11 +9025,16 @@ are part of the LaTeX required tools distribution, comprising the packages: texlive-graphics-def texlive-xcolor texlive-latex-footmisc + + ;; TODO: Use non-deprecated name on next rebuild cycle. texlive-latex-listings + texlive-generic-iftex texlive-pstricks texlive-pst-text texlive-tools + + ;; TODO: Use non-deprecated name on next rebuild cycle. texlive-latex-pgf)) (home-page "http://www.ctan.org/pkg/xkeyval") (synopsis "Extension of the keyval package") @@ -9344,7 +9244,7 @@ section. (package (inherit template) (propagated-inputs - (list texlive-latex-pgf texlive-latex-xkeyval)) + (list texlive-pgf texlive-latex-xkeyval)) (home-page "http://www.ctan.org/pkg/todonotes") (synopsis "Marking things to do in a LaTeX document") (description "The @code{todonotes} package lets the user mark @@ -10071,7 +9971,7 @@ the list of graphics file extensions recognised by package graphics.") (native-inputs (list texlive-ydoc)) (propagated-inputs - (list texlive-latex-pgf + (list texlive-pgf texlive-latex-varwidth texlive-latex-xkeyval texlive-collectbox @@ -10101,7 +10001,7 @@ provided box macros are @code{\\lapbox}, @code{\\marginbox}, (package (inherit template) (propagated-inputs - (list texlive-etoolbox texlive-latex-environ texlive-latex-pgf + (list texlive-etoolbox texlive-latex-environ texlive-pgf texlive-latex-tools)) (home-page "https://www.ctan.org/pkg/tcolorbox") (synopsis "Colored boxes, for LaTeX examples and theorems, etc") |