如何更改 unicode-math/fontspec 中的默认下标删除值?

如何更改 unicode-math/fontspec 中的默认下标删除值?

在从 PDFLaTeX 切换typeface到 XeLaTeX 时,fontspec我发现下标相对于基线的位置存在差异。鉴于论坛上关于该定位的问题,这似乎是一个较老的问题。例如,请参阅 如何使用特定字体正确缩放数字下标和上标使用 xits-math 的数学模式中下标设置得太低或者使用 unicode-math 放置下标。这是 XeTeX 错误吗?

就我而言,这可能与我为使用 创建的化合物使用的不同无衬线字体有关chemmacros。在 PDFlaTeX 中,我使用(d)Tex Gyre Heros,而在 XeLaTeX 中,我切换到Fira Sans(请参阅我之前的问题/答案,了解原因:非拉丁字符在 XeLaTex 中编译时消失,但在使用 Typeface 的 PDFLaTeX 中不会消失)。

下面的输出显示了 PDFLaTeX 和 XeLaTeX 输出中带有TeX Gyre Heros和的差异Fira Sans。出于某种原因,unicode-mathXeLaTeX 将化合物的索引(下标)放置得稍微低一些。这似乎没什么,但它实际上会影响包含多行化合物的文本的可读性。那么我该如何改变下标的放置方式呢?

该软件包在手册的第 25-27 页unicode-math列出了一组功能。可以使用这些命令来实现该功能吗?\fontdimen

PDFLaTeX / TeX Gyre Heros 输出:在此处输入图片描述

XeLaTeX / TeX Gyre Heros 输出:在此处输入图片描述

XeLaTeX / Fira Sans 输出:在此处输入图片描述

这些示例中使用的 MWE:

\documentclass[a4paper,12pt]{article}

\usepackage[dutch]{babel}

%----- lettertypen -----
\usepackage[charter,cal=cmcal]{mathdesign}

\usepackage[sans-style=upright]{unicode-math} % automatically loads fontspec package
\defaultfontfeatures{Scale = MatchLowercase}
\setmainfont{GFS Artemisia}[Scale=1.05,]
\setsansfont{FiraSans}[
    Extension = .otf,
    UprightFont = *-Regular,
    ItalicFont = *-Italic,
    BoldFont = *-Medium,
    BoldItalicFont = *-MediumItalic]

%----- chemie -----
\usepackage{chemmacros}
\chemsetup{greek=mathdesign,formula=chemformula}
\chemsetup[chemformula]{format=\sffamily}

%----- layout pakketten -----
\usepackage[body={17.0cm,26cm},top=2.0cm,left=2.0cm]{geometry}

\setlength{\parindent}{0pt}

%===== =====

\begin{document}
    
    Default \verb*|\sffamily| font is \textsf{Fira Sans Regular}: \ch{C2H3ClIOH}
    
\end{document}

为了获得 TeX Gyre Heros 字体的输出,在 MWE 中进行了以下更改:

\setsansfont{texgyreheros}[
    Extension = .otf,
    UprightFont = *-regular,
    ItalicFont = *-italic,
    BoldFont = *-bold,
    BoldItalicFont = *-bolditalic]

Default \verb*|\sffamily| font is \textsf{TeX Gyre Heros}: \ch{C2H3ClIOH}

相关内容