Quiero usar showexpl
e imprimir el código LaTeX con llaves de colores. Puedo hacer esto dentro de un lstlisting
entorno agregando una opción alfabetizada como en el ejemplo siguiente, pero no dentro de un LTXexample
entorno (produce un error). ¿Hay alguna manera de colorear las llaves en el bloque de código de un LTXexample
entorno?
\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}
Respuesta1
Debido a que showexpl
se basa en el listings
paquete, la mayoría de las características de este último, incluida la literate
clave, deberían, en teoría, funcionar de inmediato. Sin embargo, por alguna razón, definir los reemplazos literales globalmente, así
\lstset
{
literate=
*{\{}{{\textcolor{blue}{\{}}}{1}
{\}}{{\textcolor{blue}{\}}}}{1},
}
parece romperse showexpl
, lo que se queja de un Undefined control sequence \textitTest
. No conozco showexpl
lo suficiente las entrañas como para tener una buena explicación para ese error, pero parece que los frenos se caen cuando no deberían. Me parece un error showexpl
, especialmente porque el inicio de la literate
clave en listings
(1999) es anterior a la primera versión de showexpl
(2004).
Una solución alternativa es definir esos reemplazos alfabetizados, no globalmente, sino dentro de un estilo personalizado; Entonces no deberías recibir ningún error.
\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}