使用以下方法编译lualatex
\documentclass{article}
\usepackage{libertinus-otf}
\usepackage{yhmath}
\begin{document}
$\wideparen{ABC}$
\end{document}
给出错误信息
/usr/local/texlive/2022/texmf-dist/tex/latex/yhmath/yhmath.sty:59: LaTeX Error:
Command `\arrowvert' already defined.
如何防止这种情况发生?
答案1
只需导入\wideparen
\documentclass{article}
\usepackage{libertinus-otf}
\DeclareSymbolFont{yhlargesymbols}{OMX}{yhex}{m}{n}
\DeclareMathAccent{\wideparen}{\mathord}{yhlargesymbols}{"F3}
\begin{document}
$\wideparen{ABC}$
\end{document}
如果你仔细观察yhmath.sty
,你会发现
\DeclareSymbolFont{yhlargesymbols}{OMX}{yhex}{m}{n}
这是设置数学符号字体的标准 LaTeX 方式。需要一个名称和一个字体规范;在这种情况下,ofmyhex.fd
存在一个名为的字体编码文件,因此我们不需要其他任何东西。
接下来,您将找到所需的\DeclareMathAccent
说明,这是 LaTeX 定义数学重音的方法。您可以在基本fontmath.ltx
文件(LaTeX 内核的一部分)中找到其中几个示例。
在其他一些情况下,还需要指定字体声明。一种情况是当您需要从mathabx
或导入符号时fdsymbols
。对于这种情况,里程可能会有所不同,需要一些经验。