reftex:从 `tex/` 包含

reftex:从 `tex/` 包含

为了保持文档目录整洁,我在文档的顶层保留一个主文件,并将其他文件放在文件夹中:

.
├── bib
│   └── refs.bib
├── img
│   ├── img1.png
│   └── img2.png
├── tex
│   ├── part1.tex
│   ├── part2.tex
│   └── part3.tex
├── tmp
└── master.tex

我使用以下命令从 tex 导入 tex 文件:

% include from tex/
\usepackage{import}
\def\includeFromTex#1 {\subimport{tex/}{#1.tex}\include{#1}}

使用示例:

\begingroup\let\clearpage\relax % tweak that stops include from starting with newpage
\includeFromTex{10_-_calc}
\includeFromTex{20_-_disc}
\includeFromTex{30_-_app}
\endgroup

下面的每个文件都tex/以以下内容开头:

% -*- TeX-master: "../master.tex" -*-

这对 tex 来说很好,但会破坏 reftex 构建目录和引用内容的能力。是否可以通知 reftex 我将 tex 文件保存在 下tex/

编辑

由于我无法调整 reftex 来做到这一点,因此我将 texs 移到了 doc 目录:

.
├── bib
│   └── refs.bib
├── img
│   ├── img1.png
│   └── img2.png
├── tmp
├── 10_-_part1.tex
├── 20_-_part2.tex
├── 30_-_part3.tex
└── master.tex

现在我正在使用普通\input{}文件并且一切正常(latex 和 reftex)。

(顺便说一句,如果对各个部分进行编号,则主文件将始终是最后一个。在这种情况下,可以TeX-master自动进行:

% -*- eval: (setq TeX-master (car (last (directory-files default-directory nil ".*\\.tex$")))) -*-

应该把这一行放在子 tex 文件的顶部)

答案1

如果你不需要系统\includeonly并且不希望包含的文件在新页面上开始,只需使用

\input{tex/10_-_calc}
\input{tex/20_-_disc}
\input{tex/30_-_app}

正如评论中提到的

\def\includeFromTex#1 {..

定义\includeFromTex为将所有内容作为参数,直到下一个空格(或行尾),因此在您的示例中使用{}被忽略的内容,并且行尾空格是必需的

重新定义\clearpageto\relax肯定会破坏\include机制,并可能导致数据丢失或写入错误的辅助文件。

reftex 工作显示输入文件中选取的部分:

在此处输入图片描述

答案2

嗯:这个变量reftex-include-file-commands可能也很有用,它列出了需要包含其他文档的宏名称。

相关内容