如何通过reftex-citation来识别\ subcaption?

时间:2012-02-06 19:40:56

标签: emacs auctex

使用RefTeX C-c C - )调用reftex-citation,它首先询问要引用的标签类型,然后要求其中一个从列表中选择引用。该列表是文档中的标签列表。对于LaTeX数字,该列表包括每个数字的标题(\caption的参数)。每当文档包含使用\subcaption完成的子标题时,它们未被识别,因此不会包含在列表中。是否可以使RefTeX识别它们,使它们放在列表中各自的标签旁边?

我想解决方法是让regexp找到\subcaption来修改变量reftex-label-alist

下面是一个使问题更清晰的例子。假设您有以下LaTeX文档:

\documentclass{article}

\usepackage{subcaption}

\begin{document}

\begin{figure}
  \begin{minipage}{.5\linewidth}
    \subcaption{A subfigure}\label{fig:1a}
  \end{minipage}
  \caption{A figure}\label{fig:1}
\end{figure}

\end{document}

如果你做 C-c C - ),你会看到如下内容:

*RefTeX Select* of reftex-citation: No match for content regexp

请注意,主要数字的标题显示但不是子图的标题。

1 个答案:

答案 0 :(得分:1)

您可以自定义reftex-default-context-regexps并将标题条目的正则表达式从\\\(rot\)?caption\*?[[{]更改为\\\(rot\|sub\)?caption\*?[[{]

我认为您可能必须重新启动emacs,或运行(reftex-set-dirty 'reftex-default-context-regexps reftex-default-context-regexps)或其他内容,以便AUCTeX将更新正确的变量。它应该自动完成,但我遇到了一些问题。

如果您不喜欢自定义,可以使用以下代码进行设置:

(eval-after-load "reftex-vars"
  '(progn (setcdr (assoc 'caption reftex-default-context-regexps)
                  "\\\\\\(rot\\|sub\\)?caption\\*?[[{]")))