저는 `를 짧은 인라인 목록 구분 기호로 사용하고 있습니다. 이것은 잘 컴파일됩니다.
\documentclass{article}
\usepackage{listings, pgfplots}
\pgfplotsset{compat=1.14}
\tikzset{every picture/.style={execute at begin picture={\lstDeleteShortInline{`}}, execute at end picture={\lstMakeShortInline{`}}}}
\AtBeginDocument{\lstMakeShortInline{`}}
\begin{document}
\begin{tikzpicture}
\draw node{Hello};
\end{tikzpicture}
\end{document}
하지만 이렇게 하면 오류가 발생합니다.
\documentclass{article}
\usepackage{listings, pgfplots}
\pgfplotsset{compat=1.14}
\tikzset{every picture/.style={execute at begin picture={\lstDeleteShortInline{`}}, execute at end picture={\lstMakeShortInline{`}}}}
\AtBeginDocument{\lstMakeShortInline{`}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {(1,1) (2,2)};
\end{axis}
\end{tikzpicture}
\end{document}
오류는 다음과 같습니다.
Package Listings Error: ` is not a short reference for \lstinline.
문서에서 pgfplot과 백틱으로 구분된 인라인 코드 조각을 모두 사용할 수 있나요?
답변1
문제는 목록이 이미 비활성화된 바로가기를 비활성화하는 것을 원하지 않는다는 것입니다. 그리고 pgfplots가 그림을 중첩하면 오류가 발생합니다. 이중 설정을 피하는 비활성화된 매크로를 직접 작성할 수 있습니다.
\documentclass{article}
\usepackage{listings}
\usepackage{pgfplots}
\newcommand\deactivemyshortinline{%
\expandafter\ifx\csname lst@ShortInlineOldCatcode\string`\endcsname\relax
\else
\lstDeleteShortInline{`}%
\fi}
\pgfplotsset{compat=1.14}
\tikzset{every picture/.style={execute at begin picture={\deactivemyshortinline}}, execute at end picture={\lstMakeShortInline{`}}}
\AtBeginDocument{\lstMakeShortInline{`}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {(1,1) (2,2)};
\end{axis}
\end{tikzpicture}
\end{document}