Reftex 交叉引用不同目录中的文件

Reftex 交叉引用不同目录中的文件

我的乳胶文件存储在这样的目录结构中

- main.tex
- .dir-locals.el
-- sections/
--- sec1.tex, sec2.tex, ...
-- tables/
--- table1.tex, table2.tex, ...

主文本sec1.tex“进口”作为\input{sections/sec1};在sec1.tex,table1.tex 是“进口”\input{tables/table1.tex}我已经TeX-master指定为"main.tex".dir-locals.el像这样:

((latex-mode
 (TeX-master . "main.tex")))

全部.tex根目录下的文件知道正确的主文件。但我的问题是 reftex 无法检测表1.tex当我在编辑的时候sec1.tex(当我编辑时它可以正常工作主文本)的原因似乎是当我在sec1.tex代码\input{tables/table1.tex}会让 reftex 认为有一个“表格”目录内的“部分”目录。

我的具体问题不同于如何在多个文件中使用 reftexRefTex 多文件问题 ,因为嵌套的模块输入结构仅与主文件有关,但从从属文件的角度来看并非如此。

有人能帮我解决这个问题吗?我怎样才能让 reftex 引用来自表1.tex当我编辑时sec1.tex

更新:这是一个例子。

.dir-locals.el

((latex-mode
  (TeX-master ."main.tex")))

主文本

\documentclass{article}
\begin{document}
This is main.tex. \\
\input{sections/sec1}
This is main.tex referencing Section~\ref{sec:foo}.
This is main.tex referencing Table~\ref{tab:foobar}.\\
main.tex ends here.
\end{document}

部分/sec1.tex

\section{foo} \label{sec:foo}
This is from sec1.tex. \\
\input{tables/table1}
This is sec1.tex referencing Table~\ref{tab:foobar}. \\
sec1.tex ends here.

表格/table1.tex

\begin{table}[h]
  \begin{tabular}{ll}
    A & B \\
    1 & 2
  \end{tabular}
  \caption{foobar}
  \label{tab:foobar}
\end{table}

在 reftex 中,当我编辑时,命令reftex-reference(按C-c ))会提供标签主文本tab:foobar,正如预期的那样。但问题是,当我编辑时它不会检测标签sec1.tex

答案1

找到解决方案。问题原因TeX-master未正确指定。

TeX-master应该设置为像这样的普通绝对路径"path/to/main.tex",或者在 git 存储库的情况下,应该以编程方式设置为正确的绝对路径。

当编辑任何 .tex 文件时,reftex现在都可以检索其他地方指定的标签,只要它们与正确的目录树一起“导入”到主文件即可。

相关内容