如果使用 XeLaTex 进行编译,以下 MWE 会引发错误:
\documentclass{article}
\usepackage{libertinus}
\usepackage[slantedGreek]{libertinust1math}
\begin{document}
Lore ipsum dulur.
\end{document}
错误是:
(/usr/share/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty)
! LaTeX Error: Command \dddot already defined.
Or name \end... illegal, see p.192 of the manual.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
这LibertineT1Math 文档说如果需要的话它会加载“amsmath”,但这显然会导致错误。
如何将 Libertine/Libertinus 字体不仅用于正文,还用于数学材料以及 XeLaTeX?
答案1
该libertinus
包(实际上libertinus-otf
,在使用 XeLaTeX 时加载)有一个nomath
选项,但它并不能避免加载unicode-math
,只是不会将 Libertinus Math 设置为数学字体。
在我看来,该软件包应该提供使用传统数学字体(如 Libertinus1Math)的选项。
解决方法:欺骗 LaTeX 认为unicode-math
已经加载;您还需要明确加载fontspec
。
\expandafter\def\csname [email protected]\endcsname{}
\documentclass{article}
\usepackage{fontspec}
\usepackage[nomath]{libertinus}
\usepackage[slantedGreek]{libertinust1math}
\begin{document}
Lore ipsum dulur $a=b-\sin x$
\end{document}
以下是 的输出pdffonts
:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
HXAFGM+LibertinusSerif-Regular-Identity-H CID Type 0C Identity-H yes yes yes 5 0
XWISZM+LibertinusT1Math Type 1C Custom yes yes yes 6 0
RZKIRB+LibertinusT1Math Type 1C Custom yes yes yes 7 0
如果您乐意使用unicode-math
,那么您可以使用 ISO 数学样式:
\documentclass{article}
\PassOptionsToPackage{math-style=ISO}{unicode-math}
\usepackage{libertinus}
\begin{document}
Lore ipsum dulur $a=b-\sin 2x$
$\Gamma$ $\Delta$
\end{document}