我正在使用标准 Computer Modern 字体用 LaTeX 编写文档。文本主要为俄语,但包含一些列表。我更喜欢使用标准打字机字体 ( \ttfamily
) 来排版列表。如果我可以使用粗体打字机字体来显示列表中的关键字,那就太好了。
如果我的文档只有英文,我会使用粗体打字机字体来自lmodern
:
\usepackage{lmodern}
\usepackage{listings}
\lstset{%
basicstyle=\ttfamily\fontseries{l}\selectfont,
keywordstyle=\ttfamily\fontseries{b}\selectfont
}
lmodern
但是,由于不支持西里尔字母,因此无法在我的情况下使用。但理论上来说,列表中的所有关键字仅包含拉丁字母是好的。因此,我的想法是使用粗体打字机lmodern
字体(即\ttfamily\fontseries{b}\selectfont
)作为列表中的关键字,并在文档的其余部分保留 Computer Modern 字体(包括列表中包含俄文字符串和注释的非关键字条目)。不幸的是,我不知道该怎么做。似乎当我加载lmodern
包时,它会更改整个文档的字体,并且由于俄文字母,我丢失了许多字体格式。有人可以帮我吗?
重要的是,我只需要使用 LaTeX(不是 XeLaTeX,也不是 LuaLaTeX)。我可能应该注意,具体来自的粗体打字机字体lmodern
并不重要,我只是喜欢它的外观。
答案1
谢谢大卫·卡莱尔和埃格尔,我想出了这个解决方案:
\documentclass[12pt]{article}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english, russian]{babel}
\usepackage{listings}
\lstset{%
basicstyle=\ttfamily,
keywordstyle=\fontencoding{T1}\fontfamily{lmtt}\bfseries
}
\begin{document}
Русский текст. \textbf{Жирный шрифт.}
\begin{lstlisting}[language=Python]
def func(s):
return s
\end{lstlisting}
\end{document}