包含 tex 文件时出现的问题

包含 tex 文件时出现的问题

我有如果我单独使用它,没有任何问题。但是如果我使用输入或包含来调用它,我会得到这个在此处输入图片描述

为什么?

答案1

重现问题

假设参考答案在文件中answer.tex。那么最小的主文档将是:

\documentclass{article}
\usepackage{xcolor}
\begin{document}
\input{answer}
\end{document}

这会产生大量错误。让我们用 忽略它们\batchmode(或q在第一个错误消息处按)。结果是:

问题

分析与提示

发生了什么事,您尝试输入完全的LaTeX 文档位于另一个文档的正文内。这是不允许的,第一条错误消息已经说明了这一点:

! LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.1 \documentclass
                  {article}

PDF 输出(上图)是 LaTeX/TeX 错误恢复的结果——加上一个框架,然后你就可以称之为“现代艺术”了。:-)

前言(之前的内容\begin{document})不能在之后调用\begin{document}。但是你可以合并两个前言。例如,如果您需要listings第二个文档的包,但第一个文档尚未加载它,则添加

\usepackage{listings}

到主文档的序言中。同样适用于包的颜色定义(\definecolor线条)和设置(\lstsetlistings。将它们放入主文档的序言中。

然后在身体(在\begin{document}和之间,\end{document} 您可以通过复制粘贴\input或放置第二个文档的正文或其部分\include。后者只能用于在页面边界(例如章节)开始和结束的文档部分,并且不能嵌套。

新主文档的方案如下:

  1. 带有和包的旧序言\documentclass
  2. 附加包(例如\usepackage{listings}
  3. 附加设置(例如颜色定义,\lstset
  4. \begin{document}
  5. ...
  6. 变体 1:\begin{lstlistings}...\end{lstlistings}中间包含 PHP 代码。
  7. 方案 2:PHP 代码可以放入一个文件中,并通过 via 进行包含\lstinputlisting(请参阅 的文档listings
  8. 变体 3:答案文档的主体(介于和之间\begin{document}并且\end{document}不包括这些标记)可以放入通过包含的文件中\input
  9. (变体 4:\include在这里没有意义。)
  10. ...
  11. \end{document}

我希望它能提供一点帮助或者具体说明您想要实现的目标。

相关内容