在从 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-math
XeLaTeX 将化合物的索引(下标)放置得稍微低一些。这似乎没什么,但它实际上会影响包含多行化合物的文本的可读性。那么我该如何改变下标的放置方式呢?
该软件包在手册的第 25-27 页unicode-math
列出了一组功能。可以使用这些命令来实现该功能吗?\fontdimen
这些示例中使用的 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}