LaTeX で TikZ を usepackage すると Missing number, treated as zero. でコケる
状況
とあるスタイルファイルを usepackage
した状態で
\usepackage{tikz}
しようとするとエラーを吐かれ、TeX ファイルのコンパイルができない。
エラーログ
! Missing number, treated as zero. <to be read again> \gdef l.33 \xdef \pgfmath@rnd@z{\the\c@pgfmath@counta}% The seed.
再現性のある最小構成
ディレクトリ構成
. ├── foo.sty └── main.tex
main.tex
\documentclass{jsarticle} \usepackage{foo} \usepackage{tikz} \begin{document} \end{document}
foo.sty
\def\year#1{\gdef\@year{#1}}
原因
TikZ が内部で利用している pgfmathfunctions.random.code.tex
が \year
を乱数のシードの生成に使用していて、TikZ をロードする前に呼び出したスタイルファイル (今回は foo.sty
) で定義された \year
とコンフリクトしているのが原因だった。
解決法
TikZ をロードした後にコンフリクトしていたスタイルをロードすれば良い。
\documentclass{jsarticle} \usepackage{tikz} \usepackage{foo} \begin{document} \end{document}