在 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
。