当基本样式为ttfamily时,LaTeX lstlisting无法突出显示关键字

18

我正在编写一个LaTeX文档,并使用lstlisting来展示我的Java源代码。我的设置看起来像这样:

\lstset{
  basicstyle=\ttfamily,
  keywordstyle=\bfseries,
  language=Java,
  frame=single,
  aboveskip=11pt,
  belowskip=11pt,
  breaklines=true,
  breakatwhitespace=false,
  showspaces=false,
  showstringspaces=false
}

使用ttfamily时,关键字未加粗显示,但如果使用small或不指定基本样式,则可以正常显示。

我漏掉了什么?

3个回答

15

LaTeX的默认字体计算机现代字体并没有提供等宽字族的粗体版本。你可以安装bold-extra包来解决这个问题;请参考这个FAQ条目获取详细信息。


1
@Lex:如果这个答案解决了你的问题,你需要点击它旁边的勾选标记来“接受”这个答案。请参考http://stackoverflow.com/faq了解如何提出一个好的问题。欢迎来到SO! - Seth Johnson
没错,我昨天确实忽略了它,但还是谢谢你的提示! - Lex

1

另一个选择是根据此处所述交换使用的粗体字体:http://www.macfreek.nl/mindmaster/LaTeX_Bold_Typewriter_Font

在我的文档顶部放置这行代码对于我来说在标准的Ubuntu构建上有效:

\DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}

1

有一种替代方法(在我看来有点简单)这里,使用 Courier 字体而不是默认的 Computer Modern 字体:

% Using Courier font
\renewcommand{\ttdefault}{pcr}
\begin{lstlisting}[basicstyle=\ttfamily\bfseries]
y:=2
\end{lstlisting}

所有的功劳当然归于Marco Daniel!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接