Texlive packages required by Doxygen

I’m attempting to use Doxygen to generate documentation in a PDF for a C project. This requires some texlive packages. Everything works when I use the following build inputs:

buildInputs = [ pkgs.doxygen pkgs.texlive.combined.scheme-full ];

However, texlive.combined.scheme-full is very large and impractical in my situation. Unfortunately none of the other texlive.combined.scheme-* nix packages have all of the texlive packages needed to produce the PDF.

I tried to find all of the texlive packages manually by scouring the latex directory for references and repeatedly running nix build to find out what I missed. I used texlive.combine to gather these on top of scheme-small:

      tex = pkgs.texlive.combine {
        inherit (pkgs.texlive) scheme-small;
        inherit (pkgs.texlive) adjustbox alphalph enumitem fancyvrb
          float hanging linegoal multirow stackengine varwidth;
        inherit (pkgs.texlive) caption changepage courier etoc
          fancyhdr geometry hyperref natbib newunicodechar sectsty
          tocloft wasysym;

Now with

buildInputs = [ pkgs.doxygen tex ];

There is a new error:

cdox> kpathsea: Running mktextfm phvr8t
cdox> /nix/store/pza8c3imw8hlywicjl9z3rss0sb4w277-texlive-combined-2022-texmfdist/web2c/mktexnam: Could not map source abbreviation  for phvr8t.
cdox> /nix/store/pza8c3imw8hlywicjl9z3rss0sb4w277-texlive-combined-2022-texmfdist/web2c/mktexnam: Need to update ?
cdox> mkdir: cannot create directory '././homeless-shelter': Permission denied
cdox> mktextfm: mktexdir /homeless-shelter/.texlive2022/texmf-var/fonts/tfm/unknown/unknown failed.
cdox> kpathsea: Appending font creation commands to missfont.log.
cdox> ! Font T1/phv/m/n/10=phvr8t at 8.99994pt not loadable: Metric (TFM) file not fo
cdox> und.
cdox> <to be read again>
cdox>                    relax
cdox> l.153 \begin{document}
cdox> ?
cdox> ! Emergency stop.
cdox> <to be read again>
cdox>                    relax
cdox> l.153 \begin{document}
cdox> !  ==> Fatal error occurred, no output PDF file produced!
cdox> Transcript written on refman.log.
cdox> make[1]: *** [Makefile:12: refman.pdf] Error 1
cdox> make[1]: Leaving directory '/build/01z7l71wqsz93byw63xqqvic7481qh0i-source/latex'

I don’t know how to proceed at this point. It seems absurdly difficult to generate the PDF without scheme-full, but perhaps I am approaching this the wrong way?

According to this tex stackexchange post, someone is saying that it’s a file from a package named ec, while others are saying that you are missing texlive-fonts-recommended:

AFAIK, manually specifying the packages you need is the only available solution if you want to avoid a full install. But there are multiple ways of figuring out which packages are needed.

One way might be to first render with texlive-full while stracing the process, and afterwards filtering out the syscalls that open files within texlive-full. Or maybe see if you can find a tool similar to the texliveonfly (mentioned in the post), which can automatically do this kind of package search for you?

1 Like