如何解决符号包中的冲突?

如何解决符号包中的冲突?

我想要使​​用来自wasysymmarvosym包的符号:

\usepackage{wasysym}
\usepackage{marvosym}

但它给出了一个错误,因为两个包都有命令\CheckedBox。我不想使用这个命令,但由于两个包都有它,这会让 latex 感到困惑。我怎样才能忽略一个命令来同时使用两个包?

答案1

如果您按照其他顺序加载包,那么一切都会正常工作。

\usepackage{marvosym}
\usepackage{wasysym}

如果你想保持它们当前的顺序,那么以下方法有效

\usepackage{wasysym}
\let\CheckedBox\relax
\usepackage{marvosym}

答案2

作为休斯表示,有时以相反的顺序加载包可以解决问题。但是,如果反转顺序仍然产生冲突,或者由于某种原因,反转顺序不是一种选择,那么当两个包定义相同的符号时,有一个很好的程序可以防止符号名称冲突:加载第一个包,重命名冲突的符号,然后加载第二个包。包\savesymbol中的命令savesym可用于此目的;\savesymbol{XXX}将符号从重命名\XXX\origXXX

\documentclass{article}
\usepackage{savesym}
\usepackage{wasysym}
\savesymbol{CheckedBox}
\usepackage{marvosym}

\begin{document}

\CheckedBox\qquad\origCheckedBox

\end{document}

在此处输入图片描述

相关内容