LaTeX lstlisting не выделяет ключевые слова, когда основной стиль-ttfamily

Я работаю над документом 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 ответов


шрифт по умолчанию в LaTeX, Computer Modern, не содержит жирного шрифта семейства телетайпов. Вы можете установить это как ; см. этот FAQ запись для сведения.


другой вариант-поменять местами шрифты, которые вы используете для полужирного шрифта, как описано здесь: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}{}

существует альтернативный подход (немного simplee IMHO) здесь использование шрифта Courier вместо современного компьютера по умолчанию:

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

все кредиты идут на Марко Даниэля!