Как раскрасить фигурные скобки в showexpl?

Как раскрасить фигурные скобки в showexpl?

Я хочу использовать showexplи распечатать код LaTeX с цветными скобками. Я могу сделать это в lstlistingсреде, добавив опцию literate, как в примере ниже, но не в LTXexampleсреде (это приводит к ошибке). Есть ли способ сделать скобки цветными в блоке кода среды LTXexample?

\documentclass{article}
\usepackage{xcolor}
\usepackage{showexpl}
\lstset{language=[LaTeX]Tex,texcsstyle=*\color{red}}

\begin{document}
\begin{LTXexample}
\textit{Test}
\end{LTXexample}

\begin{lstlisting}[
    literate=
        *{\{}{{\textcolor{blue}{\{}}}{1}
        {\}}{{\textcolor{blue}{\}}}}{1}
]
\textit{Test}
\end{lstlisting}
\end{document}

пример цветных брекетов

решение1

Поскольку showexplон основан на listingsпакете, большинство функций последнего, включая ключ literate, должны, в теории, работать из коробки. По какой-то причине, однако, определение буквальных замен глобально, как так

\lstset
{
  literate=
    *{\{}{{\textcolor{blue}{\{}}}{1}
     {\}}{{\textcolor{blue}{\}}}}{1},
}

похоже, ломается showexpl, который жалуется на Undefined control sequence \textitTest. Я не знаю внутренности showexplдостаточно хорошо, чтобы иметь хорошее объяснение этой ошибки, но, похоже, скобки сбрасываются, когда не должны. Мне это кажется ошибкой showexpl, особенно потому, что начало ключа literateв listings(1999) предшествует первому выпуску showexpl(2004).

Одним из обходных путей является определение этих грамотных замен не глобально, а в рамках пользовательского стиля; в этом случае вы не должны получить никаких ошибок.

введите описание изображения здесь

\documentclass{article}

\usepackage{xcolor}
\usepackage{showexpl}

%% returns an error!
%\lstset
%{
%  literate=
%    *{\{}{{\textcolor{blue}{\{}}}{1}
%     {\}}{{\textcolor{blue}{\}}}}{1},
%}

\lstdefinestyle{myLaTeX}
{
  language=[LaTeX]Tex,
  texcsstyle=*\color{red},
  literate=
    *{\{}{{\textcolor{blue}{\{}}}{1}
     {\}}{{\textcolor{blue}{\}}}}{1},
}

\begin{document}

\begin{LTXexample}[style=myLaTeX]
\textit{Test}
\end{LTXexample}

\begin{lstlisting}[style=myLaTeX]
\textit{Test}
\end{lstlisting}

\end{document}

Связанный контент