我正在使用 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-macro
和LaTeX-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
。