使用“import”包时“只能在序言中使用”

使用“import”包时“只能在序言中使用”

我的代码实际上应该按照导入的方式工作官方自述如果我理解正确的话:

./main.tex

\documentclass[a4paper]{article}
\usepackage{import}

\begin{document}

\import{FirstChapter/}{main}

\end{document}

FirstChapter/main.tex

Test

我收到以下错误:

Line 1: Can be used only in preamble. \documentclass
Line 2: Can be used only in preamble. \usepackage
Line 4: Can be used only in preamble. \begin{document}
Line 1: Can be used only in preamble. \documentclass
Line 2: Can be used only in preamble. \usepackage
Line 4: Can be used only in preamble. \begin{document}

... (always the same pattern: lines 1, 2, 4)


Line 6: TeX capacity exceeded, sorry [text input levels=50] \import{FirstChapter/}{main}

我认为 LaTeX 会尝试一遍又一遍地包含./main.tex。对吗?

答案1

问题是由于两个文件具有相同的名称。 的常规版本\import使用TEXINPUTS来查找文件,当搜索路径中有两个具有相同名称的文件时,它很可能会选择当前/工作目录中的文件。 使用带星号的形式 ,\import*将阻止搜索TEXINPUTS路径。

因此,在这种情况下的解决方案是(1)重命名导入的文件,使其具有与主文件不同的名称(即main.tex),或者(2)使用:

\import*{FirstChapter/}{main}

(当然,这两种解决方案可以结合起来:文件名可能像通用文件名一样main.tex出现在意想不到的地方,这是一种危险。重命名和禁用TEXINPUTS搜索可能都是好主意。)

相关内容