RefTeX 和 enumitem

RefTeX 和 enumitem

我正在使用 RefTeX 和 enumitem,我发现 RefTeX 似乎将一个块解释为

\begin{enumerate}[label=\Alph*.]
\end{enumerate}

定义一个名为 \Alph* 的标签。这样很好,但如果我稍后有另一个类似的块,TOC 会认为我位于第一个此类块的位置。

关于如何解决这个问题,您有什么想法吗?(我可以定义一些 RefTeX 永远不应视为标签的字符串吗?)

答案1

RefTeX带有一个名为的变量reftex-label-ignored-macros-and-environments。文档字符串显示:

reftex-label-ignored-macros-and-environments是在 中定义的变量reftex-vars.el

搜索标签时要忽略的宏和环境列表。目的是忽略使用 keyval 样式label=foo参数的环境和宏,但标签的含义与 不同\label{foo}。标准\label{...}定义永远不会被忽略。

例如,TikZ 定义了几个宏/环境,其中[label=foo] 定义了要在某些节点或边缘打印的标签,但它不是用于引用的标签。

请注意,此功能仅在您使用 AUCTeX 且函数TeX-current-macroLaTeX-current-environment绑定时才受支持。另请注意,此功能可能会减慢大型 TeX 文件的 reftex 解析过程。

就您而言,请不要触碰reftex-label-regexps或添加enumerate上面提到的变量。

例如,执行M-x customize-variable RET reftex-label-ignored-macros-and-environments RET,进行加法并点击Apply and Save

答案2

事实证明我需要的变量是reftex-label-regexps,它指定 RefTeX 认为是标签命令的正则表达式。我现在将其设置为仅查找形式为 的标签命令,\label{name}而不是同时包括label=name

相关内容