添加空的 explpreset 时样式被破坏

添加空的 explpreset 时样式被破坏

我正在尝试使用包 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}

为空时的不同样式 explpreset

答案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而不是LaTeXend另一方面,关键字是primitive加载的集合的一部分TeX

但它没有解释为什么第二个示例中的空预设被忽略。这可能是处理环境选项时的一个错误 - 但我并不完全确定是否如此。

相关内容