在列表中的关键字中使用 lmodern 的粗体打字机字体,但在 LaTeX 文档的其余部分保留 Computer Modern 字体

在列表中的关键字中使用 lmodern 的粗体打字机字体,但在 LaTeX 文档的其余部分保留 Computer Modern 字体

我正在使用标准 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}

输出

相关内容