有没有办法将二元关系和运算符的位置提高一定量,以便 =、+、- 等在没有明确标记的情况下稍微提升一点?
例如,在下面的例子中,很可能是因为这种字体一开始就不是为专业数学排版设计的,所以 < 和 = 在我看来太低了:
% !TeX program = xelatex
\documentclass[10pt]{article}
\usepackage{mathspec}
\setmainfont{Helvetica Neue}
\setsansfont{Helvetica Neue}
\setmathfont(Latin,Digits)
[Scale=MatchLowercase,Uppercase=Regular,Lowercase=Regular]{Helvetica Neue}
\begin{document}
\[
A>B>C=D
\]
\end{document}
我真的很讨厌使用 Helvetica(并且是直立的!)来排版数学,但不幸的是在这件事上我别无选择。
如果提高数学轴不可行或产生的问题比它能解决的问题还多,我也愿意接受其他建议。
答案1
您可以提高数学轴(fontdimen22)
\documentclass[10pt]{article}
\usepackage{mathspec}
\setmainfont{Arial}
\setsansfont{Arial}
\setmathfont(Latin,Digits)
[Scale=MatchLowercase,Uppercase=Regular,Lowercase=Regular]{Arial}
\begin{document}
\[
\sum A>B>C=D
\]
\edef\savedaxis{\the\fontdimen22\textfont2}
\fontdimen22\textfont2=10pt
\[
\sum A>B>C=D
\]
\fontdimen22\textfont2=\savedaxis
{
\global\mathchardef\oldgt\mathcode`>
\global\mathcode`>"8000
\catcode`>\active
\gdef>{\mathrel{\raisebox{1pt}{$\oldgt$}}}
\global\mathchardef\oldeq\mathcode`=
\global\mathcode`="8000
\catcode`=\active
\gdef={\mathrel{\raisebox{1pt}{$\oldeq$}}}
}
\[
\sum A>B>C=D
\]
\end{document}
但正如这里所见,只有显示运算符和分数等明确地定位在轴上,诸如此类的字符<
只是假定为匹配而设计的。
您可以使所有受影响的字符都具有数学活性(数学代码“8000”),并定义每个字符。我想......