在乳胶模式下对齐多行方程和表格


12

假设我正在以Auctex的乳胶模式编辑乳胶,并且我有以下等式。
这只是缩进indent-region

\begin{align}
    \phi & = a + b
    + c + d \\
    & = a + b
    + c + d + e
\end{align}

上面的对齐方式是我选择所有内容并单击后得到的结果TAB,也就是说,如果我仅使用indent-region

我想得到的是以下内容:
请注意&与&后面+ c + d文本如何对齐。这将是最有意义的,因为与属于同一“列” 。+ c + d= a + b

\begin{align}
    \phi & = a + b
           + c + d \\
         & = a + b
           + c + d + e
\end{align}

如果打电话给我,以下是我得到的align-current

\begin{align}
    \phi & = a + b
    + c + d \\
         & = a + b
         + c + d + e
\end{align}

几乎到那里,但并不完全。区别很明显。
另外,如果我决定删除\phialign-current做了简单的怪异:

\begin{align}
 & = a + b
    + c + d \\
 & = a + b
         + c + d + e
\end{align}

有没有一种方法可以自定义align-current或使用其他方法以获得所需的效果?


1
我目前不在电脑上写一个正确的答案。但是您可以选择该区域并使用align-regexp并提供要对齐的字符的正则表达式+|=。您可能必须转义其中一些字符。
Kaushal Modi 2014年

您输入的正则表达式实际上是[+=]。但它不会给你想要的到底是什么..它不会对齐&与一起+
Kaushal Modi 2014年

Answers:


6

201310月以来,您想要的结果已经是AUCTeX功能。当前版本(11.87)中尚不存在此功能。您所要做的就是标记区域并点击TAB。有关LaTeX-hanging-ampersand-position缩进的实现方式,请参阅。


好的,TAB确实有效!现在如何将git repo变成一个包?我设法很好地安装了它。但是我有依赖于auctex的elpa软件包,并且make install从git repo 调用似乎没有定义“ auctex”软件包,因此那些其他软件包无法初始化。
马拉巴巴

(require 'tex-site)make install完成后就足够了。
2014年

@ abo-abo可以激活auctex,但是package.el仍然看不到它。无论如何,我也通过从Elpa安装Auctex并-pkg从安装目录中删除除文件以外的所有内容来解决此问题。
马拉巴巴2014年

4

假设公式的\ begin和\ end之间没有空行,则可以在光标位于\ begin- \ end区域内的任何位置时调用此函数。

(defun my/align-latex-eq ()
  "Align the & chars and then align the +/= chars."
  (interactive)
  (backward-paragraph)
  (mark-paragraph)
  ;; align-regexp syntax:  align-regexp (beg end regexp &optional group spacing repeat)
  (align-regexp (region-beginning) (region-end) "\\(\\s-*\\)&" 1 1 nil)
  (mark-paragraph)
  (align-regexp (region-beginning) (region-end) "\\(\\s-*\\)[+=]" 1 1 nil))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.