# How to compile The Comprehensive LaTeX Symbol List?

I want to compile The Comprehensive LaTeX Symbol List with different settings of the `hyperref` package.

First I tried to compile it without modification. But invoking `make symbols-a4.pdf` gives me an error:

``````(/usr/local/texlive/2019/texmf-dist/tex/latex/universa/uni.sty
! Undefined control sequence.
<argument> ...lse \noexpand \UniError {\bausquare
}\noexpand \fi }}
l.88 \DeclareUniChar{\bausquare}{"00}

?
``````

I am sorry to have no idea about what the error means. How to solve it?

• Did you take a look at the Makefile at tug.ctan.org/info/symbols/comprehensive/source? – Mico Aug 16 '19 at 19:14
• @Mico Yes, I have. That is why I invoke `make symbols-a4.pdf`. Maybe I miss something? – Eli4ph Aug 16 '19 at 23:17
• @Mico The makefile works but only works in a very specific setup. – Eli4ph Aug 20 '19 at 10:56

I wrote to the author (Scott Pakin), and he gave me a very important workaround to build the document (partially).

Here I list the workaround and some tips help me when building.

1. The package `uni.sty` needs a fix (thanks to Scott Pakin):

``````% change
\else\noexpand\UniError{#1}\noexpand\fi}}}{%
% to
\else\noexpand\UniError{\noexpand#1}\noexpand\fi}}}{%
``````
2. If `rawtables-*.pdf` is wanted, it is easier to use Linux because some perl scripts use several system utilities which are not available on mac and win. Moreover, the processing of packages `junicode` and `lilyglyphs` also relies on Linux.

3. It is easier to build with TeX Live 2016, which can be obtained from ftp://tug.org/historic/systems/texlive.

This is due to the development of various packages since the Comprehensive LaTeX Symbol List contains commands from various packages. For example, in the prebuilt version the package `halloweenmath` is dated `2017/01/06`, but on `2017/04/25` an package update happens and adds several commands which conflict with commands in other packages, such as `\skull`. Thus extra care should be taken to avoid the name conflict. Due to my limited knowledge about LaTeX, I choose to use the old version of TeXLive to avoid resolving those name conflicts.

4. It is easier to install TeX Live using `scheme-full`. If one choose to install without documentation, it is better to run `tlmgr install --reinstall --with-doc lilyglyphs` because the routines for building seems to rely on the existence of lilyglyphs's document to find some related files.

At the beginning I go with the latest 2019 version, an error goes away after some tweaks but another shows up. After finding that section, I realise it is packages' update that make the source `symbols.tex` erroneous.
Finally... I was able to build a partial version with my own settings of `hyperref` (because some packages can not be easily installed by `tlmgr` and I became too tired after hours of tweaking through a slow remote Linux).