如何将 [导入包] 或 [定义命令] 导入章节文件?

如何将 [导入包] 或 [定义命令] 导入章节文件?

我想用ut-thesis包来组织一份类似论文的文档,使其包含.tex如下主文件:

\documentclass{ut-thesis}

\degree{X}
\department{X}
\gradyear{X}
\author{X}
\title{X}

\setcounter{tocdepth}{2}

\flushbottom

\begin{document}

\begin{preliminary}

\maketitle

\begin{abstract}

\end{abstract}

\tableofcontents

\end{preliminary}

\include{chap1}

\addcontentsline{toc}{chapter}{Bibliography}
\bibliographystyle{plain}
\bibliography{thesis}

\end{document}

哪里chap1.tex

\chapter{Introduction}
This chapter is your first plan...

现在,假设我想定义一些命令或将一些包添加到我的章节文件中。例如,amsthm除了以下命令之外,我可能还需要添加包:

\renewcommand{\qedsymbol}{$\blacksquare$}

\newtheorem{thm}{Theorem}
\newtheorem{lem}{Lemma}
\newtheorem{prop}[thm]{Proposition}
\newtheorem{cor}{Corollary}
\newtheorem{conj}{Conjecture}
\theoremstyle{definition}
\newtheorem{defn}{Definition}
\newtheorem{exmp}{Example}
\newtheorem{rem}{Remark} 

如果我在之前添加任何内容chapter{},就会引发以下错误:

Can be used only in preamble. \usepackage

如何将包和命令导入章节文件?

答案1

一般来说,人们会在序言中添加包并定义整个文档所共有的宏,这发生在文档环境开始之后\documentclass和之前。\begin{document}

其中一个原因是一些使用 的软件包的行为\AtBeginDocument,它将标记附加到在文档环境开始时展开的标记列表中,如下所述这里

对此有一些例外,但这些例外在文档和有关类(例如)memoir和包(例如)的讨论中有所涵盖cmap。在这种情况下,必须使用\RequirePackage,这是一个与这个问题有些无关的主题这里

\include有关和之间的区别,请\input参阅本文。同样,您通常会将文档范围内使用的通用宏放入序言中。这可以防止意外情况,即您可能处于范围之内(由分组标记{ }、同义词\bgroup ... \egroup和另外创建\begingroup ... \endgroup)并定义宏等。当您离开该范围时,除非您使用\global,否则该定义将消失。还有其他注意事项。

按照通常的方式做事有助于避免不必要的错误,这不仅包括文档编译停止的情况,还包括编译成功但可能出现细微和意外错误的情况。

相关内容