bfseries 英文文档中的西里尔字母单词

bfseries 英文文档中的西里尔字母单词

我在英语 LaTeX 文档中有一个俄语西里尔文单词,我安装了 texlive-full TeX 发行版来处理它。俄语单词应该以粗体显示,但它太模糊了。英语字体是“Tex Gyre Schola”,在我看来比一般字体更粗,所以我希望西里尔文单词更粗,以便与英语字体更好地匹配。

我的文档是用 pdftex 或 pdflatex 生成的(?我不确定它们有什么区别)。此外,序言也做了一些调整以适应俄语单词。

--在选项中添加“T2A”:

\usepackage[T2A,T1]{fontenc}  

--确保这是 UTF8 编码:

\usepackage[utf8]{inputenc}

--使用 babel 包并在选项中添加“russian”

\usepackage[russian,english]{babel} 

在英文文档正文中,我实现了俄语单词,如下所示

\foreignlanguage{russian}{русское слово} %% русское слово = my russian word %% 

为了使俄语单词加粗,我尝试在俄语单词前加上前缀:

{\bfseries русское слово}

{\textbf{русское слово}}

但俄语单词并没有变得更加粗体。

有没有简单的方法可以解决这个问题?

答案1

如果没有 MWE,我们就无法重现此问题。但是,您说您正在使用字体tgschola。这不支持西里尔文,因此如果您检查日志,您可能会收到类似以下内容的消息:

LaTeX Font Warning: Font shape `T2A/qcs/b/n' undefined
(Font)              using `T2A/qcs/m/n' instead on input line 23.

这告诉您不存在T2ATeX Gyre Schola (家族qcs) Bold (系列b, 形状n) 的版本,因此它恢复到了 Computer Modern 的中等粗细。

解决方案是选择一种西里尔字体来补充 TeX Gyre Schola。由于这是 URW 版本的 New Century Schoolbook 的克隆版,因此如果您的系统上有 Century 或 Century Schoolbook,您可以使用它。基于 Century 的免费字体是 Old Standard,尽管它比 TeX Gyre Schola 略轻。在这里,我选择了 DejaVu Serif。

您也可以使用支持西里尔字母和拉丁字母的字体作为主字体。

在现代工具链中

我建议尽可能使用现代字体和 Unicode,必要时使用旧式 8 位字体。遗憾的是,有些出版商仍要求作者使用它们。

\babelfont[russian]{rm}您可以使用、\babelfont[russian]{sf}和声明俄语的替代字体\babelfont[russian]{tt}。您也可以只选择包含西里尔文的字体。(例如旧版本的 TeX Gyre Schola 本身!见下文。)

\tracinglostchars=2如果您尝试显示当前字体不包含的字形,请务必声明以警告您!如果没有这个,如果您选择了错误的语言,TeX 将默默地忽略任何西里尔字母,只会在.log文件中隐藏一条警告消息。

使用旧字体

如果您需要 PDFLaTeX 兼容性,您可以为您的字体系列声明一个西里尔替代字体。CTAN 打包为 T2A 的字体选择非常有限(除非您想使用 TrueType 或 OpenType 字体并自行转换)。在这里,我选择了基于 Times 的 Tempora。

您可以使用\substitutefont{T2A}{\rmdefault}{...}\substitutefont{T2A}{\sfdefault}{...}substitutefont声明这些替换。

代码

\tracinglostchars=2 % Warn if a glyph is missing from the current font.
\documentclass[russian, english]{article}
\usepackage{iftex}

\ifTUTeX
  \usepackage{babel}
  \usepackage{fontspec}
  \defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
  
  \babelfont{rm}
            [Ligatures=Common]{TeX Gyre Schola}
  \babelfont[russian]{rm}
            {DejaVu Serif}
\else
  \usepackage[T2A,T1]{fontenc}
  \usepackage{babel}
  \usepackage{substitutefont}
  \usepackage{tempora}
  \usepackage{tgschola}
  \substitutefont{T2A}{\rmdefault}{Tempora-TLF}
\fi

\babeltags{russian=russian} % Adds \textrussian, \begin{russian}, etc.

\begin{document}
  English text and \textrussian{русские}.
  
  \textbf{In bold, \textrussian{русское слово}.}
\end{document}

使用 LuaLaTeX (DejaVu Serif 中的西里尔文) 输出:

DejaVu 衬线示例

使用 PDFLaTeX 编译后,您会得到 Tempora 中的西里尔文:

Tempora 字体示例

使用旧版本的 TeX Gyre Schola

奇怪的是,TeX Gyre Schola 1.103 版 做过包含西里尔字母,该字母已从 2.005 版中删除。如果您使用类似以下内容指定旧版本

\babelfont{rm}
          [Ligatures = Common,
           Path=fonts/,% Must contain version 1.103 of the font files.
           UprightFont=*-regular,
           BoldFont=*-bold,
           ItalicFont=*-italic,
           BoldItalicFont=*-bolditalic,
           Extension=.otf
          ]{texgyreschola}

这将在 LuaLaTeX 或 XeLaTeX 中起作用。

相关内容