列表中关键字前面的额外空格

列表中关键字前面的额外空格

有人知道为什么我的代码清单中的关键字前面会有多余的空格吗?我附上了一张我用showspaces=true和编译的清单的图片。您可以清楚地看到、、和其他关键字showtabs=true前面的间隙。但是这些间隙并没有用下划线表示为空格。voidrangeint

我使用的样式是:

basicstyle=\ttfamily\footnotesize,
keywordstyle=\color{black}\bfseries\rmfamily\footnotesize,

keywords={而且我的语言定义的或部分中的任何关键字前面都没有空格morekeywords={

这是否与关键字和常规标识符之间的字体系列变化有关?有人能建议我如何摆脱它们吗?

带有额外空格的代码清单示例

答案1

在尝试创建最小工作示例的过程中,我设法找到了问题所在。起初我无法重现这个故障。它实际上与 Listings 包无关,而是与我论文中的其他标题语句有关。

我在Cameron Bracken 的博客文章才是真正的罪魁祸首。

麻烦的部分是:

\usepackage{microtype}
\makeatletter 
\def\MT@register@subst@font{
    \MT@exp@one@n\MT@in@clist\font@name\MT@font@list 
    \ifMT@inlist@\else\xdef\MT@font@list{\MT@font@list\font@name,}\fi} 
\makeatother

@font{具体来说,Cameron 的例子中,和之间的缩进似乎\MT@exp@one....是问题所在。如果您删除回车符(或换行符)并将两个语句放在一行上,则问题将从任何列表中消失。

相关内容