tikz
がロードされていないとき、つまり AUCTeX が他のもの (数式など) の画像を生成していないときにのみ、TikZ 図を条件付きでロードして描画するにはどうすればよいですかpreview
?
MWE:
\documentclass{amsart}
\usepackage{tikz} %*
\begin{document}
\[ a^2 + b^2 = c^2 \]
\begin{figure}[htbp]
\begin{tikzpicture} %*
\draw (0, 0) -- (1, 1); %*
\end{tikzpicture} %*
\end{figure}
\end{document}
AUCTeX が画像を生成するときに、 の行を除外したいと思います%*
。
補遺: AUCTeX は次のようにpreview
を使用してロードします\AtBeginDocument
。
latex -ini -interaction=nonstopmode "&latex" prv_hoge.ini "\nonstopmode\nofiles\PassOptionsToPackage{active,tightpage,auctex}{preview}\AtBeginDocument{\ifx\ifPreview\undefined\RequirePackage[displaymath,floats,graphics,textmath,sections,footnotes]{preview}[2004/11/05]\fi}" "\input" mwe.tex
\@ifpackageloaded
つまり、プリアンブルで を使用して分岐するのはうまく機能しません。代替手段は何でしょうか?
答え1
を使用できます\@ifpackageloaded{preview}{}{}
。
参考文献:
コード:
\documentclass{amsart}
\makeatletter
\@ifpackageloaded{preview}{%
}{%
\usepackage{tikz}%
}%
\makeatother
\begin{document}
\[ a^2 + b^2 = c^2 \]
\begin{figure}[htbp]
\begin{tikzpicture} %*
\draw (0, 0) -- (1, 1); %*
\end{tikzpicture} %*
\end{figure}
\end{document}