all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* TeXlive packaging issues
@ 2023-03-28 19:30 Emmanuel Beffara
  2023-03-29 18:48 ` bug#56556: " Josselin Poiret
  0 siblings, 1 reply; 6+ messages in thread
From: Emmanuel Beffara @ 2023-03-28 19:30 UTC (permalink / raw)
  To: help-guix; +Cc: 56556

Hello Guix,

I would like to share a few thoughts on how TeXlive is currently handled in
Guix. The package `texlive` contains all of TeXlive, it works fine but it is
arguably too big to be practical. The documentation rightfully says

> We recommend using the modular package set because it is much less
> resource-hungry. 

Yet assembling modular sets is problematic for various reasons.

Firstly, unless I am missing something, creating a manifest with the right set
of packages is tedious: one has to guess the Guix package that matches each
LaTeX package, and the correspondence is not obvious. Thankfully, with a
working installation, `tlmgr show something.sty` helps finding the TeXlive
package that contains the file and `guix search texlive something` finds the
corresponding Guix package if there is one (it could be named
`texlive-something` or `texlive-latex-something`, this feels somewhat
inconsistent). When trying to compile a complex document, doing that for every
package and dependency is time-consuming (compile, read compilation errors,
install more packages, restart).

Secondly, many packages are missing. Apparently, `(gnu packages tex)` contains
an arbitrary set of common packages, likely defined by people who needed them
and had the skill to produce a patch for them. It is fairly easy to produce
new definitions using `guix import texlive something` and adjusting the
result, still it feels more complicated than it ought to be. Considering how
well TeXlive is organized, it should be possible to automatically extract the
set of all packages in a given release and turn the result into a big
comprehensive Guile module.

Besides, importing TeXlive "collections" could be a useful intermediate
between taking the whole system and picking packages individually.

Thirdly, formats are apparently not handled right. The main issue is with
hyphenation (hence the cc on an open issue): hyphenation patterns need to be
compiled into the formats to be available in documents, so the format files
should be built depending on which `texlive-hyphen-something` packages are
installed. Currently this is not the case:

```
$ guix shell --pure coreutils texlive-base texlive-latex-base -- /bin/sh -c 'realpath $GUIX_TEXMF/web2c/pdflatex.fmt'
/gnu/store/m1vh5mm4gjlqzaylfxmxbx5g3j20k8wn-texlive-latex-base-59745/share/texmf-dist/web2c/pdflatex.fmt
$ guix shell --pure coreutils texlive-base texlive-latex-base texlive-hyphen-base texlive-hyphen-french -- /bin/sh -c 'realpath $GUIX_TEXMF/web2c/pdflatex.fmt'
/gnu/store/m1vh5mm4gjlqzaylfxmxbx5g3j20k8wn-texlive-latex-base-59745/share/texmf-dist/web2c/pdflatex.fmt
```

If the format is always the same, then no modular installation can do any
hyphenation, as reported in https://issues.guix.gnu.org/56556. There might be
other things than hyphenation that require similar treatment.

That said, I don't know what would be the best way to contribute.

-- 
Emmanuel


^ permalink raw reply	[flat|nested] 6+ messages in thread
* bug#56556: texlive-babel-dutch with and without texlive-hyphen-dutch: No hyphenation patterns were preloaded
@ 2022-07-14 14:13 Remco van 't Veer
  0 siblings, 0 replies; 6+ messages in thread
From: Remco van 't Veer @ 2022-07-14 14:13 UTC (permalink / raw)
  To: 56556

Neither texlive-babel-dutch nor texlive-hyphen-dutch load hyphenation.

Test document:

  \documentclass{article}
  \usepackage[dutch]{babel}
  \begin{document}
  test
  \end{document}

Running with texlive-babel-dutch only:

  $ guix shell --pure texlive-base texlive-babel-dutch -- pdflatex test.tex
  This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/GNU Guix) (preloaded format=pdflatex)
   restricted \write18 enabled.
  entering extended mode
  (./test.tex
  LaTeX2e <2020-10-01> patch level 4
  L3 programming layer <2021-02-18> (/gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/tex/latex/base/article.cls
  Document Class: article 2020/04/10 v1.4m Standard LaTeX document class
  (/gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/tex/latex/base/size10.clo)) (/gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/tex/generic/babel/babel.sty (/gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/tex/generic/babel/babel.def (/gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/tex/generic/config/language.def) (/gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/tex/generic/babel/txtbabel.def)) (/gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/tex/generic/babel-dutch/dutch.ldf

  Package babel Warning: No hyphenation patterns were preloaded for
  (babel)                the language `Dutch' into the format.
  (babel)                Please, configure your TeX system to add them and
  (babel)                rebuild the format. Now I will use the patterns
  (babel)                preloaded for \language=0 instead on input line 49.

  )) (/gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def) (./test.aux) [1{/gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/fonts/map/pdftex/updmap/pdftex.map}] (./test.aux) ) </gnu/store/1p55mddnasba5xq2vcnzyc8wjywn4cwn-profile/share/texmf-dist/fonts/pk/ljfour/public/cm/dpi600/cmr10.pk>
  Output written on test.pdf (1 page, 2226 bytes).
  Transcript written on test.log.

With texlive-hyphen-dutch included:

  $ guix shell --pure texlive-base texlive-babel-dutch texlive-hyphen-dutch -- pdflatex test.tex
  This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/GNU Guix) (preloaded format=pdflatex)
   restricted \write18 enabled.
  entering extended mode
  (./test.tex
  LaTeX2e <2020-10-01> patch level 4
  L3 programming layer <2021-02-18> (/gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/tex/latex/base/article.cls
  Document Class: article 2020/04/10 v1.4m Standard LaTeX document class
  (/gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/tex/latex/base/size10.clo)) (/gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/tex/generic/babel/babel.sty (/gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/tex/generic/babel/babel.def (/gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/tex/generic/config/language.def) (/gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/tex/generic/babel/txtbabel.def)) (/gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/tex/generic/babel-dutch/dutch.ldf

  Package babel Warning: No hyphenation patterns were preloaded for
  (babel)                the language `Dutch' into the format.
  (babel)                Please, configure your TeX system to add them and
  (babel)                rebuild the format. Now I will use the patterns
  (babel)                preloaded for \language=0 instead on input line 49.

  )) (/gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def) (./test.aux) [1{/gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/fonts/map/pdftex/updmap/pdftex.map}] (./test.aux) ) </gnu/store/c61c43w5c7dlz7ipxcqi4z385p3a4dzb-profile/share/texmf-dist/fonts/pk/ljfour/public/cm/dpi600/cmr10.pk>
  Output written on test.pdf (1 page, 2226 bytes).
  Transcript written on test.log.

Problem does not occur when using the complete TeX Live distribution:

  $ guix shell --pure texlive -- pdflatex test.tex
  This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/GNU Guix) (preloaded format=pdflatex)
   restricted \write18 enabled.
  entering extended mode
  (./test.tex
  LaTeX2e <2020-10-01> patch level 4
  L3 programming layer <2021-02-18>
  (/gnu/store/lgkfz7wg59sg81zlf3xy7i7dbvx1fvyp-texlive-texmf-20210325/share/texmf
  -dist/tex/latex/base/article.cls
  Document Class: article 2020/04/10 v1.4m Standard LaTeX document class

  (/gnu/store/lgkfz7wg59sg81zlf3xy7i7dbvx1fvyp-texlive-texmf-20210325/share/texmf
  -dist/tex/latex/base/size10.clo))
  (/gnu/store/lgkfz7wg59sg81zlf3xy7i7dbvx1fvyp-texlive-texmf-20210325/share/texmf
  -dist/tex/generic/babel/babel.sty
  (/gnu/store/lgkfz7wg59sg81zlf3xy7i7dbvx1fvyp-texlive-texmf-20210325/share/texmf
  -dist/tex/generic/babel/babel.def
  (/gnu/store/lgkfz7wg59sg81zlf3xy7i7dbvx1fvyp-texlive-texmf-20210325/share/texmf
  -dist/tex/generic/babel/txtbabel.def))
  (/gnu/store/lgkfz7wg59sg81zlf3xy7i7dbvx1fvyp-texlive-texmf-20210325/share/texmf
  -dist/tex/generic/babel-dutch/dutch.ldf))
  (/gnu/store/lgkfz7wg59sg81zlf3xy7i7dbvx1fvyp-texlive-texmf-20210325/share/texmf
  -dist/tex/latex/l3backend/l3backend-pdftex.def) (./test.aux) [1{/gnu/store/lgkf
  z7wg59sg81zlf3xy7i7dbvx1fvyp-texlive-texmf-20210325/share/texmf-dist/fonts/map/
  pdftex/updmap/pdftex.map}] (./test.aux) )</gnu/store/lgkfz7wg59sg81zlf3xy7i7dbv
  x1fvyp-texlive-texmf-20210325/share/texmf-dist/fonts/type1/public/amsfonts/cm/c
  mr10.pfb>
  Output written on test.pdf (1 page, 10613 bytes).
  Transcript written on test.log.

Am I doing something wrong?




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-05-19 16:34 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-28 19:30 TeXlive packaging issues Emmanuel Beffara
2023-03-29 18:48 ` bug#56556: " Josselin Poiret
2023-04-07 10:33   ` bug#56556: texlive-babel-dutch with and without texlive-hyphen-dutch: No hyphenation patterns were preloaded Ludovic Courtès
2023-04-07 10:47     ` Emmanuel Beffara
2023-05-19 15:22       ` Simon Tournier
  -- strict thread matches above, loose matches on Subject: below --
2022-07-14 14:13 Remco van 't Veer

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.