在 XeTeX 中使用 Ryman Eco 字体

在 XeTeX 中使用 Ryman Eco 字体

我想在我的 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 将其保持简单,但以这种方式混合英语和其他语言的文本也应该使用语言标签。

相关内容