amsthm 与其他一些软件包之间的冲突

amsthm 与其他一些软件包之间的冲突

这是我正在编辑的一本书的序言:

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{xspace}
\usepackage{proof}
\usepackage{url}
\usepackage{xy}
\xyoption{all}
\usepackage{amsthm}
\usepackage{stmaryrd}
\usepackage{amsfonts}
\usepackage{amstext}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{enumerate}
\usepackage{paralist}
\usepackage{mathrsfs}

尝试编译此文档会产生错误:

LaTeX Error: Command \proof already defined.

此错误仅在将 amsthm 添加到上述列表中后发生,而我需要其中一章。显然,amsthm 与列表中的其他包发生冲突,但我无法找到是哪一个(其他包无论如何都需要其他包)。

有什么方法可以告诉 LaTeX 忽略 amsthm 的证明定义,从而有望解决冲突?

编辑:我使用的课程是 monog3,由牛津大学出版社提供给我。我不知道是否可以分享其内容,但我已经检查过,它确实包含有冲突的定义:

\def\proof{\trivlist \item[\hskip \labelsep{\bf Proof\ }]}

考虑到这一点,有没有办法解决冲突?

答案1

如果类定义了宏或环境,则在加载之前proof添加指令\let\proof\relax和 。\let\endproof\relaxamsthm

答案2

上述说明仅在我输入 \let\proof\relax\let\endproof\relax输入后才有效\usepackage{amsthm}

答案3

将这些行放在 \usepackage(s) 之前:

\documentclass[runningheads]{llncs}

\let\proof\relax
\let\endproof\relax
\let\example\relax
\let\endexample\relax

\usepackage{amsthm}
\usepackage{mathtools}

答案4

我在 amsmath 和 aip-cp 会议论文集类之间遇到了冲突,因为 txfonts 也定义了 iint。我在 www.tex.ac.uk/FAQ-alreadydefined.html 上找到了有关该冲突的有用常见问题解答

本质上,它使用“savesym”包通过在包含 amsmath 之前保存符号来消除 amsmath 和 txfonts 的冲突:

\documentclass{aip-cp}

\usepackage{savesym}
\savesymbol{iint}
\savesymbol{iiint}
\savesymbol{iiiint}
\savesymbol{idotsint}
\usepackage{amsmath}
\restoresymbol{AMS}{iint}
\restoresymbol{AMS}{iiint}
\restoresymbol{AMS}{iiiint}
\restoresymbol{AMS}{idotsint}

...

也许您可以以类似的方式保存/恢复您的证明命令?

相关内容