\dot{P}
我正尝试在数学环境中使用。
梅威瑟:
\documentclass{scrartcl}
\usepackage[no-math]{fontspec}
\usepackage{libertineotf}
\usepackage[libertine]{newtxmath}
\begin{document}
\begin{equation}
\dot{P}(t) + 1234567890
\end{equation}
\end{document}
没有该命令,\dot
一切都按预期进行。
有了这个命令,我得到了错误:Internal error: bad native font flag
并且没有产生任何输出。
如果没有该选项no-math
或整个fontspec
包(目前我甚至不需要其功能),编译的输出会包含正确的“带点”P。
但括号、加号和数字不是用 Libertine 字体设置的,而是用 CM 设置的。此外,包中的间距信息newtxmath
似乎丢失了(可能与 CM 有关)。
我已经尝试更改软件包顺序。结果导致 fontspec 出现选项冲突错误,并且输出与没有 fontspec 软件包时相同。
有什么建议吗?
我尝试使用libertine
for 包pdflatex
(当然没有 fontspec),它产生的输出与没有 fontspec 包的 XeLaTeX 相同。
版本/文件列表:
MikTeX 2.9 64bit, Win7
libertineotf.sty 2012/04/07 5.13-8
fontspec.sty 2012/05/06 v2.2b
newtxmath.sty 2012/06/25 v0.99
答案1
这是 XeTeX 中的一个错误,是由于将 OpenType(又称“原生”)字体 Libertine 与 TFM 字体中的重音混合而导致的newtxmath
。由于漏洞这妨碍了 OpenType 数学重音定位的正确使用,该问题最近已得到修复。
我尝试修复这个新错误,但似乎有点棘手。无论如何,我希望它能在下一个版本发布时修复。
答案2
我终于在以下帮助下找到了解决方案亨德里克的回答到点导数差异。
只需添加
\renewcommand*\dot[1]{%
\placeaccent{\acc@dot}{#1}%
}
\renewcommand*\ddot[1]{%
\placeaccent{\acc@dot\mkern1.4mu\acc@dot}{#1}%
}
到他的代码片段。
当然,这对其他口音没有帮助。
对于该\hat{}
命令,我找到了以下解决方案:
\renewcommand*\hat[1]{%
\placeaccent{\acc@hat}{#1}%
}
其中\acc@hat
定义为:
\def\acc@hat{\mbox{\raisebox{-1.27ex}[0ex][0ex]{\^{}}}}
答案3
我遇到了类似的问题,这里是 MWE
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Liberation Serif}
\def\conduce{⇝}
\usepackage{latexsym}
\begin{document}
\[ \dot{P}(t) + 1234567890 \]
\[\not\conduce\]
\[\not\leadsto\]
\end{document}
这里的线条\[ \dot{P}(t) + 1234567890 \]
渲染得很好
相反,在这个例子中,命令将崩溃;如果不使用,\not\leadsto
它不会崩溃,但没有出现符号;该命令确实有效(但看起来有点丑)。unicode-math
\not\conduce
请注意,这里使用了 Libertine 字体,但这并不相关;我尝试添加\setmathfont{STIX Two Math}
和/或\setmainfont{Times New Roman}
,其行为相同。
因此,回答 OP:使用setmainfont