STIX Two 和 unicode-math 的脚本大小不一致

STIX Two 和 unicode-math 的脚本大小不一致

使用时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}

在此处输入图片描述

相关内容