我想在我的 XeTeX 文档中使用 Ryman Eco 字体。原因是我的学生大多打印这些文档,所以我尽量节省墨水(当然也尽量做到环保)。但字体本身没有斜体、粗体或数学样式。这很奇怪,因为在 LibreOffice 中会出现这些样式。
举个小例子:
\documentclass[11pt,a4paper]{article}
\usepackage{fontspec}
\usepackage[magyar]{babel}
\setmainfont{Ryman Eco}
\begin{document}
This is normal text - it's okay. Ez a normális szöveg, és ez rendben van.
\textit{This text may appear italic, but it doesn't do it. Ennek a szövegnek dőlt betűsnek kellene lennie, de nem lesz az.}
\textbf{This text must be bold. Most vastagnak kellene lennie.}
And some math text. Végül némi matematikai szöveg. $\sqrt{2}\nin\mathbb{Q}$
\begin{equation}
e^{i\pi}-1=0
\end{equation}
\end{document}
我阅读了fontspec
文档,并尝试了第四章的建议,但它们不起作用,所以我来这里寻求帮助。
答案1
您选择的字体没有粗体、斜体、数学或匈牙利双锐角字符。但是,可以伪造它们。
为了抑制所有警告信息,此示例比实际需要的更详细一些。
\documentclass[11pt,a4paper]{article}
\usepackage{newunicodechar}
\usepackage{unicode-math}
\usepackage{babel}
\babelprovide[import, main]{hungarian}
\defaultfontfeatures{Scale = MatchLowercase}
\setmainfont{RymanEco}[
Scale = 1.0 ,
Ligatures = {Common, TeX} ,
Numbers = OldStyle ,
UprightFont = *-Regular ,
BoldFont = *-Regular , % Faking it.
BoldFeatures = {FakeBold = 1.25} ,
ItalicFont = *-Regular , % Faking it.
ItalicFeatures = {FakeSlant = .15} ,
BoldItalicFont = *-Regular , % Faking it.
BoldItalicFeatures = { FakeBold = 1.25, FakeSlant = .15 } ,
Extension = .otf ]
\setmathfont{STIX Two Math}
\setmathfont{RymanEco-Regular.otf}[
range={"00-"FF, up/{Latin, latin, Digits}},
Script = Default ,
script-features={},
sscript-features={} ]
\setmathfont{RymanEco-Regular.otf}[
range=it/{Latin, latin},
Script = Default,
script-features={},
sscript-features={},
FakeSlant = .15 ]
\setmathfont{RymanEco-Regular.otf}[
range=bfup/{Latin, latin},
Script = Default,
script-features={},
sscript-features={},
FakeBold = 1.25 ]
\setmathfont{RymanEco-Regular.otf}[
range=bfit/{Latin, latin},
Script = Default,
script-features={},
sscript-features={},
FakeSlant = .15 ,
FakeBold = 1.25 ]
\renewcommand\H[1]{{\accent"02DD #1}}
\newunicodechar{Ő}{\H{O}}
\newunicodechar{ő}{\H{o}}
\newunicodechar{Ű}{\H{U}}
\newunicodechar{ű}{\H{u}}
\begin{document}
This is normal text---it's okay. Ez a normális szöveg, és ez rendben van.
\textit{This text may appear italic, but it doesn't do it. Ennek a szövegnek dőlt betűsnek kellene lennie, de nem lesz az.}
\textbf{This text must be bold. Most vastagnak kellene lennie. \textit{Bold Slanted.}}
And some math text. Végül némi matematikai szöveg. $\sqrt{2} \notin \mathbb{Q}$
\begin{equation}
e^{i\pi}-1=0
\end{equation}
\end{document}
我复制了你的 MWE,并做了一些小改动,\notin
例如\nin
。
FakeSlant
使用命令伪造斜体(更迂腐,倾斜)fontspec
,使用 伪造粗体FakeBold
。请注意,使用粗体会违背节省墨水的目的!但您可以减少我给出的系数并感到自豪。(ETA:如果是这样,您可以添加一点FakeStretch
以使强调的文本更加突出,而无需使用太多墨水。)
Ryman Eco 字体没有预制的 ő 或组合重音符号 ◌̋ (U+030B),但有 ˝ (U+02DD)。您可以使用该字形作为组合重音符号的命令\accent
。上面的命令不适用于使用组合重音符号的源代码,只能适用于它设置的四个预制字符。
如果您不喜欢假斜体,您可以调用\usepackage[math-style=upright]{unicode-math}
数学模式使用直立字母。在 ISO 样式中,i、e 和 π 等常数无论如何都应该是直立的!
尽管您作为 MWE 将其保持简单,但以这种方式混合英语和其他语言的文本也应该使用语言标签。