1

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

reftex-label-alist我想一个解决方案是通过让正则表达式 find来修改变量\subcaption

下面举一个例子,让问题更清楚。假设您有以下 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: 内容正则表达式不匹配

请注意,显示的是主图的标题,而不是子图的标题。

4

1 回答 1

1

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

我认为您可能必须重新启动 emacs 或 run(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\\*?[[{]")))
于 2012-02-09T10:32:08.450 回答