在 LaTeX 模式下限制 align-current

在 LaTeX 模式下限制 align-current

在 Emacs 中处理 LaTeX 文档时,align-current会对齐&\\,但每次对齐整个部分。有人知道如何限制其范围(在新宏中)以表示当前环境吗?

除了矩阵或表格之外,我很少需要对任何其他内容进行对齐。

我尝试在其上构建一些东西,align-regexp但没有成功。

有想法吗?

编辑:

鉴于以下测试数据M-X align-current通常会将&和对齐\\,但会以分段为基础。我希望它们仅在当前环境中工作。

\begin{tabular}{xxx}
  a & bbbb & sdssd & \\
ccsssssss & jj& bb
\end{tabular}
\begin{tabular}{xxx}
      a & bbbb & sdssd & \\
cc & jj& bb
\end{tabular}

如果我在这个例子中运行它,它会同时在两个表格中对齐它们。

答案1

align-current通常对我来说是正确的。它只在宏前后没有空格时对齐多个部分\section。您可以通过在 .emacs 中添加以下内容来强制对齐保持在当前部分内:

(defun align-section ()
  "Apply align to the current section only."
  (interactive)
  (save-excursion
    (LaTeX-mark-section)
    (align (point) (mark))))

(defun align-environment ()
  "Apply align to the current environment only."
  (interactive)
  (save-excursion
    (LaTeX-mark-environment)
    (align (point) (mark))))

编辑:我误解了范围。第二个函数将限制对齐到当前环境,而不是整个部分。

请注意,这不会改变align-current,但会提供一个新功能来执行您想要的操作。使用 来调用它M-x align-environment

相关内容