我不喜欢在 XeLaTeX 下使用 unicode 数学字体时放置下标。与 CM 字体相比,下标放置在不同的垂直位置,这显然取决于前一个符号的深度。以下是一个例子:
它是用以下 MWE 生成的:
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Renderer=Basic,Ligatures={TeX}}
\setmainfont[Numbers={OldStyle}]{Minion Pro}
\usepackage[math-style=ISO,bold-style=ISO]{unicode-math}
\setmathfont[version=asana]{Asana Math}
\setmathfont[version=cambria]{Cambria Math}
\setmathfont[version=lm]{Latin Modern Math}
\setmathfont[version=stix]{STIXGeneral}
\setmathfont[version=xits]{XITS Math}
\begin{document}%
Asana Math \mathversion{asana}
\( \nabla_{\bot}p_{\bot} + \nabla_{\parallel}p_{\parallel} + d_{s}J_{s} \)
Cambria Math
\mathversion{cambria}
\( \nabla_{\bot}p_{\bot} + \nabla_{\parallel}p_{\parallel} + d_{s}J_{s} \)
STIXGeneral
\mathversion{stix}
\( \nabla_{\bot}p_{\bot} + \nabla_{\parallel}p_{\parallel} + d_{s}J_{s} \)
Latin Modern
\mathversion{lm}
\( \nabla_{\bot}p_{\bot} + \nabla_{\parallel}p_{\parallel} + d_{s}J_{s} \)
XITS Math
\mathversion{xits}
\( \nabla_{\bot}p_{\bot} + \nabla_{\parallel}p_{\parallel} + d_{s}J_{s} \)
\end{document}
并且使用 Computer Modern 字体的原始 PDFLaTeX 产生在相同垂直位置对齐的下标:
更新:
LuaLaTeX 没有这样的“功能”:
问题1:是 XeLaTeX 错误吗?
问题2:是否有可能unicode-math
在 XeLaTeX 下指示将下标对齐到相同的垂直位置?
答案1
我遇到了与上标类似的问题。在寻找解决方案时,我遇到了您的问题。
问题描述:刚刚排版
\begin{equation}
F\le\frac{c^4}{4G}\frac{Mm}{(M+m)^2}
\end{equation}
对齐错误。
进一步的搜索可能有助于找到解决方案,结果显示:
Q#1 这不是一个xelatex
错误,因为eulervm
使用数学字体和mathspec
包进行排版不会导致这种行为。这也不是 opentype 字体指标的错误,因为上述公式在使用 Cambria Math 的 Word 2010 中正确显示(这很尴尬)。因此,我相信包的代码中存在一些问题unicode-math
。
问题#2:阅读软件包的文档unicode-math
,除了修改源代码之外,我没有找到任何可以纠正此行为的方法,但我不知道该怎么做。
我认为应该将此作为不良行为(或错误)的示例提交给软件包维护者unicode-math
,以便在将来的版本中进行纠正。
使用 进行编译lualatex
不能成为一种通用的解决方案,因为(至少就我而言)我需要polyglossia
的功能,因为我的文本涉及英语、希腊语和一些俄语文本,并且polyglossia
存在它的问题lualatex
(或者相反?)。
答案2
XeTeX 错误跟踪器中已有针对此问题的待处理错误报告。不幸的是,这个问题已经一年多没有得到解决。
https://sourceforge.net/tracker/?func=detail&aid=3067472&group_id=194926&atid=951385