PGFPlots 및 목록 비호환성?

PGFPlots 및 목록 비호환성?

저는 `를 짧은 인라인 목록 구분 기호로 사용하고 있습니다. 이것은 잘 컴파일됩니다.

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

관련 정보