我有以下示例目录结构。
ArticlesWritten
- ArticleA
- - FileOnlyInArticleA.tex
- - Introduction.tex
- - main.tex
- - MainAsChapter.tex
- - RelatedWork.tex
- -
- ArticleB
- FileOnlyInArticleB.tex
- Introduction.tex
- main.tex
- MainAsChapter.tex
- RelatedWork.tex
-
thesisFiles
FileOnlyInThesis.tex
Introduction.tex
main.tex
RelatedWork.tex
ArticleA、ArticleB 是文章文档类,而 thesis 是书籍文档类。main.tex 是目录的主文件。我从这个主文件中输入其他文件。它们单独工作正常。
我正在尝试将 ArticleA 和 ArticleB 添加到论文中。我将 MainAsChapter.tex 添加到 ArticleA 和 ArticleB。MainAsChapter.tex 不包含除输入之外的任何 latex 文档命令。
当我尝试在 thesis/main 中输入以下命令时。
\input{Introduction}
\input{RelatedWork}
\input{FileOnlyInThesis}
\input{../ArticlesWritten/ArticleA/MainAsChapter}
最后一行有效,但 ArticleA/MainAsChapter 中的输入命令被解释为来自论文目录。它包括来自论文目录的简介和相关工作文件,但无法找到例如 FileOnlyInArticleA。
如果我使用
\input{../ArticlesWritten/ArticleA/MainAsChapter}
我收到以下错误
!LaTeX 错误:未找到文件“FileOnlyInArticleA.tex”。
如果我使用
\import{../ArticlesWritten/ArticleA/}{MainAsChapter}
我没有收到任何错误,但 MainAsChapter 中的输入命令包括 MainInThesis 中的 Introduction、RelatedWork。因此我得到了以下输出。
Introduction Thesis
Related Work Thesis
FileOnlyInThesis
Introduction Thesis
Related Work Thesis
FileOnlyInArticleA
第二个简介和相关工作应该来自 ArticleA。
进口手册提到
根据您的 TEX 系统的配置方式,如果当前目录或 TEXINPUTS 路径中存在与导入文件同名的文件,则将优先读取该文件而不是导入目录中的文件。
正确用法是
\import*{../ArticlesWritten/ArticleA/}{MainAsChapter}
这给了我预期的输出
Introduction Thesis
Related Work Thesis
FileOnlyInThesis
Introduction ArticleA
Related Work ArticleA
FileOnlyInArticleA
答案1
当前目录不会被 改变\input
。首先在当前目录(通常是主文件目录)中搜索文件,然后在预定义目录(包等所在的目录)中搜索文件。可以使用 TEXINPUTS 环境变量更改此搜索路径。
import
我认为您可以使用允许从导入文件中获取相关项的包来实现您想要做的事情\input
。有关详细信息,请参阅包手册。