使用 XeTeX 的 mathaccent skewchar

使用 XeTeX 的 mathaccent skewchar

如何才能将点放在正确的位置:

\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 相同):

luatex 输出

顺便说一句,\skewcharOpenType 数学字体没有用处,所以设置它没有区别。另外,/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}

使用这个新的二阶导数命令,您可以轻松控制双点的位置。例如,您可以将 \: 替换为 \; 或 \ 等。

相关内容