조건부로 `tikz`를 로드하고 `미리보기`가 로드되지 않은 경우 TikZ 다이어그램을 그리는 방법

조건부로 `tikz`를 로드하고 `미리보기`가 로드되지 않은 경우 TikZ 다이어그램을 그리는 방법

tikz로드되지 않은 경우에만 TikZ 다이어그램을 조건부로 로드하고 그릴 수 있습니까 preview? 즉, AUCTeX가 다른 항목(예: 수학 공식)에 대한 이미지를 생성하지 않습니다.

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}

관련 정보