amsrefs 包与期刊的文档类别之间的冲突

amsrefs 包与期刊的文档类别之间的冲突

程序包 amsrefs 与文档类冲突qt2018作者(关于日记帐)。
我收到以下错误:! LaTeX Error: Command \eprint already defined.我猜问题出在字段\eprint应该同时出现在两者中。

如何在不删除 amsrefs 的情况下解决这个问题?


下面是出现问题的一个简单示例:

\documentclass{qt2018author}

\usepackage{amsrefs}

\begin{document}

\begin{bibdiv}
\begin{biblist}
\bib{p3}{article}{
   author={Palcoux, Sebastien},
   title={Euler totient of subfactor planar algebras},
   journal={Proc. Am. Math. Soc.}
   volume={146},
   number={11},
   date={2018},
   pages={4775--4786},
   doi={10.1090/proc/14167}
}
\end{biblist}
\end{bibdiv}

\end{document}

错误信息如下:

! LaTeX Error: Command \eprint 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.
...
l.2820 \newcommand{\eprint}[1]{\url{#1}}

答案1

qt2018author类中\eprint,命令仅出现两次,第一次是在定义时,第二次是在命令中使用时\arXiv。因此,您可以取消定义命令(例如,请参阅https://tex.stackexchange.com/a/35967/),用不同的名称重新定义它,并更改命令中的调用\arXiv。重新定义应该在加载amsrefs包之前执行。

梅威瑟:

\documentclass{qt2018author}
\let\eprint\undefined
\newcommand*{\eprintnew}[2][arXiv]{%
 \ifstrequal{#1}{arXiv}%
  {\href{http://arxiv.org/abs/#2}{arXiv:#2}}%
  {\mbox{#1:#2}}}
\renewcommand*{\arXiv}[1]{\eprintnew[arXiv]{#1}}

\usepackage{amsrefs}

\begin{document}

\begin{bibdiv}
\begin{biblist}
\bib{p3}{article}{
   author={Palcoux, Sebastien},
   title={Euler totient of subfactor planar algebras},
   journal={Proc. Am. Math. Soc.},
   volume={146},
   number={11},
   date={2018},
   pages={4775--4786},
   doi={10.1090/proc/14167}
}
\end{biblist}
\end{bibdiv}

\end{document}

结果:

在此处输入图片描述

请注意,原始代码中第 12 行缺少一个逗号,从而触发警告Package rkeyval Warning: Missing comma on input line 13

还请注意(如链接问题中所述),使用时\let\eprint\undefined,宏\undefined不是特殊的 LaTeX 命令,它只是不存在的东西(\let\eprint\foo也可以工作)。这足以绕过对已定义命令的检查,从而导致您遇到的错误消息。

相关内容