全局提升数学轴

全局提升数学轴

有没有办法将二元关系和运算符的位置提高一定量,以便 =、+、- 等在没有明确标记的情况下稍微提升一点?

例如,在下面的例子中,很可能是因为这种字体一开始就不是为专业数学排版设计的,所以 < 和 = 在我看来太低了:

% !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”),并定义每个字符。我想......

在此处输入图片描述

相关内容