我正在使用文档类合并一组文章。但是,当这些环境已由之前的论文定义时,在各个文章中combine
使用该命令会导致错误。我想保留单独编译每个文件的能力,这样就无法简单地删除或注释掉这些命令。该类似乎比该类更可取,后者显然只是忽略了整个序言;这将消除每篇论文的标题和作者信息,以及每个作者可能定义的任何信息。\newtheorem
\newtheorem
combine
standalone
\newcommands
例如,一个主文件:
\documentclass{combine}
\usepackage{amsthm}
\begin{document}
\begin{papers}
\coltoctitle{An article} \coltocauthor{A.~N.~Author} \label{art1} \import{ThmTest}
\coltoctitle{Another article} \coltocauthor{A.~N.~Author} \label{art2} \import{ThmTest2}
\end{papers}
\end{document}
连同文件ThmTest.tex
和ThmTest2.tex
(相同内容):
\documentclass{article}
\usepackage{amsthm}
\newtheorem{Theorem}{Theorem}[section]
\begin{document}
\section{Section}
\begin{Theorem}
A theorem.
\end{Theorem}
\end{document}
文档combine
(http://mirrors.ctan.org/macros/latex/contrib/combine/combine.pdf) 在第 14 页建议,可以通过“巧妙使用分组”来避免此问题。简单地在每个导入的文章周围添加括号似乎无法解决问题,那么哪种分组可能有效呢?
答案1
作者建议,他们解决这个\newtheorem
问题的方法是将\newtheorem
宏重新定义为本地的,而不是全局的。我的猜测是因为amsthm
在序言中加载包时,您覆盖了该代码。无论如何,从序言中删除包并按照他们的建议进行分组似乎可以解决问题。
\documentclass{combine}
\begin{document}
\begin{papers}
\coltoctitle{An article} \coltocauthor{A.~N.~Author} \label{art1} \begingroup\import{ThmTest}\endgroup
\coltoctitle{Another article} \coltocauthor{A.~N.~Author} \label{art2} \begingroup\import{ThmTest2}\endgroup
\end{papers}
\end{document}