我的代码实际上应该按照导入的方式工作官方自述如果我理解正确的话:
./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
搜索可能都是好主意。)