showexpl で中括弧に色を付けるにはどうすればいいですか?

showexpl で中括弧に色を付けるにはどうすればいいですか?

showexplLaTeX コードを色付きの括弧付きで使用し、印刷したいと考えています。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、このエラーについてうまく説明できませんが、中括弧が省略されるべきでないときに省略されているようです。 これは のバグのように見えます。特に、 (1999)での キーshowexplの導入が(2004)の最初のリリースより前のものであるためです。literatelistingsshowexpl

回避策の 1 つは、グローバルではなくカスタム スタイル内でこれらのリテラル置換を定義することです。そうすれば、エラーは発生しないはずです。

ここに画像の説明を入力してください

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

関連情報