Auctex:LaTeX-mark-environment 中存在错误?

Auctex:LaTeX-mark-environment 中存在错误?

在将此问题发送给开发人员之前,我想知道其他人是否可以确认此问题。请考虑以下两种环境:

\begin{flalign*}
sdfsdf  
\end{flalign*}

\begin{flalign*}
   && A \rightarrow \End_{B}(M) && {; B=\End_{A}(M)}
\end{flalign*}

如果我将光标设置在第一个并执行LaTeX-mark-environmentC-c .),那么我就会得到预期的结果,即标记flalign*环境,包括\begin/end行。

但是,如果我在另一个中执行相同操作,它永远不会覆盖环境。标记的内容取决于光标的位置。它显然存在问题\End,大概是因为它忽略了大小写。

其他人可以确认吗?

(在编写宏时LaTeX-mark-environment,这narrow-to-region是一个非常好的功能)。

答案1

问题是LaTeX-find-matching-end执行不区分大小写的搜索。要使搜索\end区分大小写,您必须绑定case-fold-search变量nil。为此,您可以建议函数。这将解决您的问题,但如果环境内部有 (考虑环境) LaTeX-find-matching-end,它将不起作用。\endverbatim

(defadvice LaTeX-find-matching-end
  (around LaTeX-find-matching-end-case-sensitive activate)
  "Perform case-sensitive search."
  (let ((case-fold-search nil))
    ad-do-it))

PS AUCTeX 开发版有一个新功能可以缩小到环境(LaTeX-narrow-to-environment),因此您需要一个键绑定(C-x n e)而不是C-c . C-x n r


(daleif 附加),还需要将 add 更改为LaTeX-find-matching-begin

(defadvice LaTeX-find-matching-begin
  (around LaTeX-find-matching-begin-case-sensitive activate)
  "Perform case-sensitive search."
  (let ((case-fold-search nil))
   ad-do-it))

相关内容