Ricardo Wurmus <rek...@elephly.net> writes:
> 2) we aren’t using XeTeX or LuaTeX with the monolithic “texlive” > package, so why does pdfTeX behave differently here? I see in the logs > that the date of the format file differs — does this indicate that our > pdfTeX format file is wrong? I will compare the two files. The comparison with diffoscope wasn’t very helpful because the file embeds countless store directory names and differs everywhere. So I just copied the known-good pdftex.fmt from the monolithic package and added it to the union: the TOC looks fine! (The build with “make doc/guix.de.pdf” still fails for unknown reasons, but it produces a fine PDF file.) So: what’s wrong with our pdftex.fmt? It’s not clear how the file is generated in the TeX Live repository. People are probably expected to just copy it, but we’re generating it from source with the following code in “texlive-latex-base”: --8<---------------cut here---------------start------------->8--- … ;; XXX: We can't build all formats at this point, nor are they ;; part of the LaTeX base, so we disable them. Actually, we ;; should be running this all in a profile hook, so that only ;; selected formats and hyphenation patterns are included, but it ;; takes long and TeX Live isn't designed to be modular like ;; that. Everything operates on a shared directory, which we ;; would only have at profile generation time. (let ((disabled-formats '("aleph aleph" "lamed aleph" "uptex uptex" "euptex euptex" "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex" "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex" "luacsplain luatex" "cont-en xetex" "cont-en pdftex" "pdfcsplain xetex" "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex" "mptopdf pdftex" "uplatex euptex" "jadetex pdftex" "amstex pdftex" "pdfcslatex pdftex" "lollipop tex" "xmltex pdftex" "pdfjadetex pdftex" "eplain pdftex" "texsis pdftex" "mltex pdftex" "utf8mex pdftex"))) (mkdir "web2c") (install-file (string-append (assoc-ref inputs "texlive-kpathsea") "/share/texmf-dist/web2c/fmtutil.cnf") "web2c") (make-file-writable "web2c/fmtutil.cnf") (substitute* "web2c/fmtutil.cnf" (((string-append "^(" (string-join disabled-formats "|") ")") m) (string-append "#! " m)))) (invoke "fmtutil-sys" "--all" "--fmtdir=web2c" (string-append "--cnffile=web2c/fmtutil.cnf")) ;; We don't actually want to install it. (delete-file "web2c/fmtutil.cnf") #t)) --8<---------------cut here---------------end--------------->8--- I suspect that the build environment doesn’t have locales set up so the format dumping tool assumes that we want to us Latin-1 encoding for everything. (Roughly speaking, the fmt files are like dumped Lisp images as I understand it.) I’ll try to tweak the texlive-latex-base package and see if I can get it to generate the pdftex.fmt correctly. -- Ricardo