¿Incompatibilidad de lotes y listados de PGFP?

¿Incompatibilidad de lotes y listados de PGFP?

Estoy usando `como mi delimitador de listado corto en línea. Esto se compila bien:

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

pero esto arroja un error:

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

y el error es este:

Package Listings Error: ` is not a short reference for \lstinline.

¿Hay alguna forma de utilizar pgfplots y fragmentos de código en línea delimitados por comillas invertidas en un documento?

Respuesta1

El problema es que listados no quiere desactivar un acceso directo que ya está desactivado. Y como pgfplots anida imágenes, aparece un error. Puedes escribir tu propia macro desactivada que evite la doble configuración:

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

información relacionada