使用时unicode-math
,建议使用\symup
来获取数学模式中的直立符号,并使用\textnormal
来获取直立文本,例如文本标签下标。使用 STIX Two 字体时,这两个命令会产生不一致的结果。
\documentclass{article}
\usepackage{amsmath}
\usepackage{unicode-math}
\setmainfont{STIX Two Text}
\setmathfont{STIX Two Math}
\begin{document}
\[
\textnormal{AVfi}_{\textnormal{AVfi}_\textnormal{AVfi}} \qquad \symup{AVfi}_{\symup{AVfi}_\symup{AVfi}}
\]
\end{document}
在左侧示例中,字距调整和连字符效果很好,但下标中的字体大小很差。在右侧示例中,下标中的字体大小很好,但字距调整和连字符效果很差。
我认为问题在于 STIX Two Text 没有包含下标中光学尺寸的正确字形。
是否可以在不修改字体文件的情况下获得良好的字距、连字和大小?如果不行,是否有一种简单的方法可以使用 fontforge 实现所需的结果?如果这会导致问题,我可以不使用连字。
答案1
字母的光学尺寸是根据特定的字体大小来选择的在数学模式中。
这是一个实验:您可以看到文本中不符合+ssty=0
或功能(第二行)。+ssty=1
您可以做的是禁用数学中的光学尺寸(第四行)。
\documentclass{article}
\usepackage{amsmath}
\usepackage{unicode-math}
\setmainfont{STIX Two Text}[
SizeFeatures={
{Size={9-}},
{Size={6-9},RawFeature={+ssty=0}},
{Size={-6},RawFeature={+ssty=1}},
},
]
\newfontfamily{\stixmath}{STIX Two Math}[
SizeFeatures={
{Size={9-}},
{Size={6-9},RawFeature={+ssty=0}},
{Size={-6},RawFeature={+ssty=1}},
},
]
\setmathfont{STIX Two Math}
\setmathfont{STIX Two Math}[
version=test,
script-features={},
sscript-features={}
]
\begin{document}
AVfi{\footnotesize AVfi}{\tiny AVfi}
{\stixmath AVfi{\footnotesize AVfi}{\tiny AVfi}}
$\textnormal{AVfi}_{\textnormal{AVfi}_\textnormal{AVfi}}$
{\mathversion{test}$\symup{AVfi}_{\symup{AVfi}_\symup{AVfi}}$}
$\symup{AVfi}_{\symup{AVfi}_\symup{AVfi}}$
\end{document}
请注意,下标中使用的字体大小\textnormal
与 使用的字体大小完全相同\symup
;只需添加
$\textnormal{\detokenize\expandafter{\the\font}}$
$\scriptstyle\textnormal{\detokenize\expandafter{\the\font}}$
$\scriptscriptstyle\textnormal{\detokenize\expandafter{\the\font}}$
\detokenize\expandafter{\the\textfont2}
\detokenize\expandafter{\the\scriptfont2}
\detokenize\expandafter{\the\scriptscriptfont2}
在上一个示例的末尾,你会看到
尺寸的差异仅仅是由于 获得的下标\symup
受到 的影响而产生的光学效应ssty
。
答案2
数学字体和数学模式是为数学设计的,这意味着它们主要用于单身的数学符号,不适用于文本字如果您确实想在下标中打印一个单词,则明确切换到文本模式更合乎逻辑——并且在文本模式下您自然可以调整字体大小:
\documentclass[fleqn]{article}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{unicode-math}
\setmainfont{STIX Two Text}
\setmathfont{STIX Two Math}
\newcommand\mytext[1]
{%
{\mathchoice
{\mbox{\normalfont\normalsize\color{green}#1}}%
{\mbox{\normalfont\normalsize\color{blue}#1}}%
{\mbox{\normalfont\footnotesize\color{red}#1}}%
{\mbox{\normalfont\fontsize{5.5pt}{6pt}\selectfont\color{red!50!green}#1}}%
}%
}
\begin{document}
$ \mytext{AVfi}_{\mytext{AVfi}_{\mytext{AVfi}}} \qquad \symup{AVfi}_{\symup{AVfi}_{\symup{AVfi}}} $
\[
\mytext{AVfi}_{\mytext{AVfi}_{\mytext{AVfi}}} \qquad \symup{AVfi}_{\symup{AVfi}_{\symup{AVfi}}}
\]
\end{document}