在 LuaLaTeX 和 Google Docs 中使用 Times New Roman 时,两者的尖音符位置不同,Google Docs 的位置正确。为什么 LuaLaTeX 的位置错误?我原本以为 LuaLaTeX 的位置是正确的。我不想将字体更改为 STIX Two Text,因为我发现使用 TNR Cyrillic о 和 STIX Two Text Cyrillic о 时大小不一致,STT 的 о 更大,而且很明显。我必须为正在处理的文档添加元音重音符号。
\documentclass[letterpaper,12pt]{article}
\usepackage{microtype}
\usepackage{unicode-math} % loads fontspec
\setmainfont[Ligatures=TeX]{Times New Roman}
\newfontfamily\secondfont[Ligatures=TeX]{STIX Two Text}
\usepackage[main=english,russian]{babel}
\title{help with Cyrillic accents!}
\author{(please!)}
\date{\today}
\begin{document}
\maketitle
\foreignlanguage{russian}{
\'ы ы́ {\secondfont \'ы ы́}
}
Cyrillic o looks inconsistent when using the two fonts.
\foreignlanguage{russian}{
\'o {\secondfont \'o}
}
\end{document}
Google Docs 的定位正确,而 LuaLaTeX 的定位不正确,这真是说不通。希望能解决这个问题。
答案1
为什么 LuaLaTeX 的位置不对?我原本以为 LuaLaTeX 的位置应该正确。……Google Docs 的位置正确,而 LuaLaTeX 的位置不正确,这真是说不通
ы
请注意,LuaLaTeX在使用 时确实“正确定位了”字形的重音符号Stix Two Text
。因此,不要责怪 LuaLaTeX;相反,如果您愿意,请指责那些显然未能在 中嵌入足够数量的有关重音符号定位的元信息的人Times New Roman
。
我不想将字体更改为
STIX Two Text
,因为我发现使用 TNR Cyrillic о 和 `STIX Two Text Cyrillic о 时大小不一致,STT 的 о 更大,而且很明显。
人们普遍误以为,加载两种字体12pt
意味着它们的小写字形应该具有相同的高度(即所谓的“x 高度”)。不幸的是,事实并非如此。如果您想直接比较不同字体的小写字母,请以使其 x 高度确实相同的方式加载它们。幸运的是,该fontspec
软件包(顺便说一句,它适用于 LuaLaTeX 和 XeLaTeX)使这变得简单:只需指定Scale=MatchLowercase
第二种字体的选项(即未通过 指定的选项\setmainfont
)。
进行此调整后(见下面的屏幕截图),两种字形之间仍然有明显的差异,不仅是 Cyrillic-o,还有 Latin-o。不过,我认为没有理由将这种形状差异称为“不一致”。它们只是两种不同的字体,有很多相似之处,但也有一些不同之处。
请注意,不仅 Cyrillic-o 和 Latin-o 字形不同,而且锐音符(或“尖锐”)重音符在两种字体中也不同。再一次,我认为没有理由将这些差异称为不一致。
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\newfontfamily\secondfont{STIX Two Text}[Scale=MatchLowercase]
\usepackage[main=english,russian]{babel}
\usepackage{microtype}
\begin{document}
\foreignlanguage{russian}{\'ы ы́ {\secondfont \'ы ы́}}
\'o {\secondfont \'o} % Latin
\foreignlanguage{russian}{\'o {\secondfont \'o}} % Cyrillic
\end{document}
答案2
请注意,Times New Roman 是 Windows 系统字体,其他平台通常不可用。MicroSoft 制作了 True Type 版本的旧副本,作为 Linux 版 Microsoft Corefonts 软件包的一部分,该版本是您在 Overleaf 中看到的版本。
该字体无法很好地定位此字母上的尖锐重音,但正如 fontspec 手册中所述,您可以调整命令的重音以应对这种情况。
这表示使用经典的 TeX\accent
定位,而不是依赖于将尖音符组合在一起的字体来定位这个字母。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\DeclareTextCompositeCommand{\'}{TU}{ы}{\accent"B4 ы}
\begin{document}
\'ы
\end{document}