有人知道为什么我的代码清单中的关键字前面会有多余的空格吗?我附上了一张我用showspaces=true
和编译的清单的图片。您可以清楚地看到、、和其他关键字showtabs=true
前面的间隙。但是这些间隙并没有用下划线表示为空格。void
range
int
我使用的样式是:
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....
是问题所在。如果您删除回车符(或换行符)并将两个语句放在一行上,则问题将从任何列表中消失。