Как условно загрузить `tikz` и нарисовать диаграмму TikZ, когда `preview` не загружен

Как условно загрузить `tikz` и нарисовать диаграмму TikZ, когда `preview` не загружен

Как можно условно загрузить tikzи нарисовать диаграмму TikZ только тогда, когда previewона не загружена, т. е. AUCTeX не генерирует изображения для других вещей (например, математических формул)?

МВЭ:

 \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}

Связанный контент