如果使用 XeLaTeX 编译,软件包“LibertinusT1Math”会引发错误

如果使用 XeLaTeX 编译,软件包“LibertinusT1Math”会引发错误

如果使用 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}

相关内容