В списке LaTeX не выделены ключевые слова, когда базовый стиль - это ttfamily - PullRequest
13 голосов
/ 25 марта 2010

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

12 голосов
/ 25 марта 2010

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

1 голос
/ 23 июля 2012

Существует альтернативный подход (немного проще ИМХО) здесь с использованием шрифта Courier вместо стандартного Computer Modern:

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

Все кредиты принадлежат Марко Даниэлю!

1 голос
/ 21 сентября 2011

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