我正在尝试使用包 showexpl 显示 LaTeX 命令。在包的文档中,它说 的explpreset
默认值为。我认为文档中的句子不完整,因为它缺少一个句号。
但是当我添加explpreset={}
定义样式时,它以某种方式破坏了样式,我首先看到的问题是begin
没有突出显示(end
尽管大多数其他都突出显示了)。
我很好奇添加是如何explpreset={}
产生这种差异的。explpreset
一开始是否真的包含某些内容,还是我使用的方式错误?
此外,该关键字有何特殊之处begin
导致其无法正确突出显示?
以下是 MWE 和结果:
\documentclass[12pt,a4paper]{article}
\usepackage{showexpl}
\lstdefinestyle{codestyle1}{
basicstyle=\ttfamily\footnotesize,
pos=b
}
\lstdefinestyle{codestyle2}{
basicstyle=\ttfamily\footnotesize,
pos=b,
explpreset = {}
}
\begin{document}
\lstset{language=TeX,style=codestyle1}
\begin{LTXexample}
\begin{center}
Some text with code style1
\end{center}
\end{LTXexample}
\begin{LTXexample}[explpreset={}]
\begin{center}
Some text with code style1 with empty explpreset
\end{center}
\end{LTXexample}
\lstset{language=TeX,style=codestyle2}
\begin{LTXexample}
\begin{center}
Some text with code style2 with empty explpreset
\end{center}
\end{LTXexample}
\end{document}
答案1
的默认设置explpreset
可以在 的源代码中showexpl
(靠近文件末尾)找到showexpl.sty
:
\lstset{explpreset={numbers=left,numberstyle=\tiny,numbersep=.3em,
xleftmargin=1em,columns=flexible,language=[LaTeX]TEX},pos=l,width=-99pt,
overhang=0pt,hsep=\columnsep,vsep=\bigskipamount,rframe=single}
这解释了输出的第三块中的差异:没有行号和更宽的文本(因为columns=flexible
)。突出显示的差异可能是由语言设置TeX
而不是引起的[LaTeX]TeX
,因为begin
是特定于 LaTeX 的关键字,并且列表中 TeX 语言设置的默认方言是plain
而不是LaTeX
。end
另一方面,关键字是primitive
加载的集合的一部分TeX
。
但它没有解释为什么第二个示例中的空预设被忽略。这可能是处理环境选项时的一个错误 - 但我并不完全确定是否如此。