在基于Unicode的库出现之前 XeLaTeX
,LuaLaTeX
没有pdfLaTeX
一个可以直接输出为pdf
-格式的库。为了数学排版方便,amsmath
主要使用这个包。
但在基于 Unicode 的引擎出现后,也出现了类似这样的包unicode-math
(也是lualatex-math
为了修复一些问题)。现在出现了如何使用这些包以及按照什么顺序使用这些包的问题,因为有时我们会遇到它们之间的冲突(主要是与mathtools
),正如 tex.se 中的许多问题所证明的那样。
另外,例如,如果一个人使用lualatex
,则可以使用其中一个amsmath
或一个 unicode-math
包,或者两者(这并不罕见)。
比较Lualatex
+ amsmath
:
% !TeX program = lualatex
% !TeX encoding = utf8
\documentclass[]{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
I = \alpha\oint\limits_L f(x) dx, \quad \text{an Integral}
\end{equation}
\end{document}
或Lualatex
+ unicode-math
:
% !TeX program = lualatex
% !TeX encoding = utf8
\documentclass[]{article}
\usepackage{unicode-math}
\begin{document}
\begin{equation}
I = \alpha\oint\limits_L f(x) dx, \quad \text{an Integral}
\end{equation}
\end{document}
总而言之,需要一份简短的说明,说明如何以及以何种顺序调用基于 Unicode 的引擎的数学XeLaTeX
包LuaLaTeX
。
答案1
正如 David Carlisle 所说,amsmath
适用于所有字体包。 它无处不在,我不知道有任何与它不兼容的。 许多较新的软件包想要修改amsmath
其工作方式,并且amsmath
不屑于为它们改变自己,因此很少有软件包需要在 之前加载amsmath
。 (除了文档类,它们应该先出现。)我经常加载mathtools
,它会加载amsmath
并添加一些修复和扩展,而不是amsmath
。
该unicode-math
包会加载amsmath
,但如果您想要加载amsmath
任何选项,或加载mathtools
,请在加载之前加载它们unicode-math
。
其他数学符号包与 兼容unicode-math
,因为它们不会导致错误,但unicode-math
会覆盖序言末尾的其他同名符号。因此,如果您想加载unicode-math
但将任何单个符号更改为某个旧包中的定义,则需要从旧包中复制并粘贴相关命令,将符号定义包装在 中\AtBeginDocument
。
如果您想使用现代字体作为文本,使用传统(8 位)字体作为数学,请加载fontspec
。加载fontspec
将更改您的字体\mathrm
和其他一些内容,如果您fontspec
在 之后加载amsmath
,它还会更改一些字体,如\text
和对数运算符。要关闭此行为,请提供fontspec
选项no-math
。unicode-math
包加载,并可以向其传递选项。如果您需要解决使用不同选项加载的包之间的冲突,fontspec
可以fontspec
显式加载,然后。unicode-math
fontspec
您可以mathastext
在设置文本字体(可以是 8 位或现代字体)和旧数学字体后加载。这也将在数学模式下使用字母的主字体。您也可以设置unicode-math
这样做,但这需要更多努力。
最后,您可以mathspec
在 XeTeX 中使用 将现代文本字体与传统数学字体一起加载为数学字母。这比 和 支持更多用例fontspec
,mathastext
例如使用除主文本字体之外的现代字体作为数学字母,或设置无衬线数学字母。
答案2
unicode-math
和 并amsmath
没有真正的关系,前者主要涉及字体设置,后者涉及定义数学布局结构的宏,并且或多或少与所使用的字体无关。
如果使用 OpenType 数学字体排版数学,建议您同时加载两者(amsmath
首先加载)。事实上,开发版本 (v0.8p) 会自动加载,因此以后amsmath
只需加载就足够了。unicode-math
对于 lualatex 和 xelatex,默认设置是使用 OpenType 字体来处理文本,但使用经典的 8 位 tfm 字体指标来处理数学的 1 型字体。对于该设置,建议仅加载amsmath
。