如何在未載入“preview”時有條件載入“tikz”並繪製 TikZ 圖

如何在未載入“preview”時有條件載入“tikz”並繪製 TikZ 圖

如何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 生成圖像時的行。

附錄: AUCTeXpreview使用加載\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}

相關內容