XeLaTeX:mathtools、unicode-math 和 \text spoil \mathtt

XeLaTeX:mathtools、unicode-math 和 \text spoil \mathtt

我在处理一个大型 XeLaTeX 文档,在安装 MiKTeX 时遇到了渲染错误(?)(所有软件包均已于 2016 年 4 月 10 日更新)。这是一个简单示例:

\documentclass{article}
\usepackage{mathtools}
\usepackage{unicode-math}
\DeclareSymbolFont{somemeaninglessname}{\encodingdefault}{\familydefault}{m}{it}

\begin{document}
    \[ \mathtt{z} \]
    \[ \text{$z$} \]
    \[ \mathtt{z} \]
\end{document}

我期望第一行和第三行相同。然而,事实并非如此:

MiKTeX 渲染结果

我让我的朋友使用 TeXLive-2014 在 Linux 上渲染同一个文件,他得到的结果如下:

TeXLive 渲染结果

但是,如果我在 的行\usepackage{mathtools}之后立即移动,则我的系统上的一切都按预期运行:\DeclareSymbolFont

修复 MiKTeX 渲染

将其移动到中间\usepackage{unicode-math}并且\DeclareSymbolFont不执行任何操作。

我不确定这是否是错误或对这两个包的错误使用。不幸的是,我真的不明白这\DeclareSymbolFont是什么——它是别人写的。这是怎么回事?

更新型多巴胺: 好像它不是 MiKTeX 独有的问题,在 TeXLie 15 上也发生了。

答案1

这个问题在这里又出现了:xelatex 中的 mathtools 和 unicode-math 不兼容?,补丁位于我的答案

A拉取请求已在 unicode-math 开发者网站上发布,以修复之前有报道作者:@UlrikeFischer。

答案2

以下情况不会发生:

\documentclass{article}
\usepackage{mathtools}
\DeclareSymbolFont{somemeaninglessname}{\encodingdefault}{\familydefault}{m}{it}
\usepackage{unicode-math}
[...]

相关内容