我正在使用 showexpl 包为一个包编写文档,而 showexpl 包又使用了 listings 包。使用 listing 时,我可以像这样突出显示部分代码:
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstset{
moredelim=[is][\color{red}]{<}{>}
}
\begin{document}
\begin{lstlisting}
This is an <emphasized string>.
\end{lstlisting}
\end{document}
但是将moredelim
选项传递给LTXexample
环境并没有达到预期的效果,代码仍然是黑色的。
\documentclass{article}
\usepackage{xcolor}
\usepackage{showexpl}
\lstset{
basicstyle=\ttfamily\small,
moredelim=[is][\color{red}]{<}{>}
}
\begin{document}
\begin{LTXexample}
This is an <emphasized string>.
\end{LTXexample}
\end{document}
moredelim
关于将选项正确地传递给环境,我是否遗漏了什么LTXexample
?
答案1
当您使用 moredelim 时,分隔符在 showexpl 时已从代码中删除写道将代码保存到临时文件中。(检查 tmp 文件)。因此,打印列表时分隔符根本不存在。您可以使用 explpreset 来避免这种情况(不要同时使用 moredelim 和 explpreset,否则会导致混淆。)
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{showexpl}
\lstset{
% moredelim=[is][\color{red}]{:}{.}
explpreset={moredelim={[is][\color{red}]{:}{.}}}
}
\begin{document}
\begin{lstlisting}
This is an :emphasized string.
\end{lstlisting}
\begin{LTXexample}
This is an :emphasized string.
\end{LTXexample}
\end{document}
答案2
当使用不同的颜色时,框架会出现问题:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{showexpl}
\lstset{
basicstyle=\ttfamily\small,
explpreset={moredelim=[is][\color{red}]{<}{>}}}
\begin{document}
\begingroup
\catcode`\<=\active \def<{}
\catcode`\>=\active \def>{}
\begin{LTXexample}
This is an <emphasized string>.
\end{LTXexample}
\endgroup
\end{document}