这是我正在编辑的一本书的序言:
\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\relax
amsthm
答案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}
...
也许您可以以类似的方式保存/恢复您的证明命令?