我是 LaTeX 新手,所以请原谅我的无知。
我想用 Cambria 排版一份包含文本和 Cambria Math 数学的文档。我找到了 unicode-math 包,它似乎可以满足我的要求。
这是一个简单示例:
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{Cambria}
\setmathfont{Cambria Math}
\begin{document}
The Bezier curve $C$ of degree $m$ is
$$C(u) = \sum_{i=0}^m f_i(u)P_i$$
\end{document}
数学运算的结果就像简单的(直立的) Cambria。
知道可能出了什么问题吗?
[详细说明]:我使用的是 MikTeX 2.9 和 XeLateX。我更新了 XeTeX 版本,因为 unicode-math 告诉我这样做。我只是从 TeXworks 菜单中选择一个选项。我不知道幕后发生了什么(我希望我不需要知道)。
以下是一些可能相关的日志文件输出:
Requested font "Cambria/ICU:script=latn;language=DFLT;" at 10.0pt
-> C:/Windows/Fonts/CAMBRIA.TTC
Requested font "Cambria Math/ICU" at 10.0pt
-> C:/Windows/Fonts/CAMBRIA.TTC
\g_fontspec_family_Cambria Math_int=\count125
Requested font "Cambria Math/B/ICU" at 10.0pt
-> C:/Windows/Fonts/CAMBRIA.TTC
.................................................
. fontspec info: "no-font-shape"
.
. Could not resolve font Cambria Math/B (it probably doesn't exist).
.................................................
. fontspec info: "defining-font"
.
. Font family 'CambriaMath(0)' created for font 'Cambria Math' with options
. [BoldItalicFont={},ItalicFont={},Script=Math,SizeFeatures={{Size=10-},{Size=7
-10,Font=Cambria
. Math,Style=MathScript},{Size=-7,Font=Cambria
. Math,Style=MathScriptScript}},].
.
. This font family consists of the following shapes:
.
. * 'normal' with NFSS spec.:
. <10->"Cambria Math/ICU:script=math;language=DFLT;"<7-10>"Cambria
. Math/ICU:script=math;language=DFLT;+ssty=0;"<-7>"Cambria
. Math/ICU:script=math;language=DFLT;+ssty=1;"
答案1
此行为是由于最新版本中已知的“重大”变化造成的l3kernel
(IE团队知道这个版本的行为发生了改变,但从长远来看,这个版本被认为是最好的选择。因此,unicode-math
需要进行更新以符合改变后的l3kernel
代码。
临时修复(使用风险自负):制作复制在unicode-math.sty
您的本地树中搜索并替换\l_keys_choice_int
,将其替换为\l_keys_choice_int \or
。这将解决问题直到 unicode-math
已正式修复。(至少在我的快速测试中是这样的。)
修复unicode-math
现已在 CTAN 和 TeX Live 2012 中提供。正如预期的那样,问题得到了解决,一切恢复正常。