如何才能将点放在正确的位置:
\font\test="XITS Math:script=math;mapping=italic" \skewchar\test=127
\XeTeXmathchardef\beta="0"1`β
\def\ddot{\XeTeXmathaccent"7"1"0308}
\textfont1=\test
$\ddot\beta$
\bye
与默认 CMI 相比$\ddot\beta$\bye
:
答案1
看起来像是 XeTeX 的一个错误,LuaTeX 给出了正确的结果:
\input ifxetex.sty
\ifxetex
\XeTeXmathchardef\beta="0"1"1D6FD
\def\ddot{\XeTeXmathaccent"7"1"0308}
\else
\input luaotfload.sty
\Umathchardef\beta="0"1"1D6FD
\def\ddot{\Umathaccent"7"1"0308}
\fi
\font\test="XITS Math:script=math"
\textfont1=\test
$\ddot\beta$
\bye
当使用 luatex 运行时我得到(与 MS Office 2007 相同):
顺便说一句,\skewchar
OpenType 数学字体没有用处,所以设置它没有区别。另外,/I
您的定义也没有意义,因为 XITS Math 只提供常规样式,没有单独的斜体字体,{Xe,Lua}TeX 会浪费时间搜索不存在的字体,然后返回常规字体。
更新:XeTeX 错误已在 0.9998(TeX Live 2012)版本中修复。
答案2
这似乎是 XITS Math 中的一个错误,因为 Asana Math 或 Latin Modern Math 结果正确(并且没有设置\skewchar
)。
这是 Asana Math,我添加了字符 U+1D5A0 以便比较
答案3
也许你也应该尝试这个:
在序言中写到:
\newcommand{\std}[1]{\overset{\:\mbox{\huge .\!.}}{#1}}
在文本中输入
\std{\beta}
使用这个新的二阶导数命令,您可以轻松控制双点的位置。例如,您可以将 \: 替换为 \; 或 \ 等。