列表中的双分隔符

列表中的双分隔符

使用该listings包,可以为任意一组分隔符及其所包含的字符定义格式。但是,当使用双分隔符时,指定的格式不适用于结束分隔符。

考虑以下 MWE。

\documentclass{article}
\usepackage{listings}
\usepackage{upquote}
\usepackage{xcolor}
\lstset{
    moredelim = [s][\color{blue}]{`}{'},
}
\begin{document}
\begin{lstlisting}
macros u i
`u`i''
\end{lstlisting}
\end{document}

此代码产生以下输出: enter image description here

请注意,最后一个结束分隔符'未格式化为蓝色。有办法解决这个问题吗?

笔记:我使用该upquote包来获得所需的逐字撇号外观,但如果不使用该包,问题仍然存在。

答案1

看起来像是嵌套问题。从手动的(第 24 页),您可以添加星号以便找到内部分隔符:

\documentclass{article}
\usepackage{listings}
\usepackage{upquote}
\usepackage{xcolor}
\lstset{
    moredelim = *[s][\color{blue}]{`}{'},
}
\begin{document}
\begin{lstlisting}
macros u i
`u`i''
\end{lstlisting}
\end{document}

result

相关内容