Emacs,AUCTeX和自定义命令的缩进

时间:2018-06-08 16:02:20

标签: emacs indentation auctex

我正在准备一个包含彩色表格的文档(使用colortbl)并纠正那些表格中出现的细白线我正在使用自定义新行宏来弥补这一点。但是,AUCTeX无法识别新宏并尝试以奇怪的方式缩进表格。

\begin{table}[h]
  \centering\sffamily
  \begin{tabular}{lcc}
    \rowcolor{row1} \textbf{Nominative} & \emph{Wer?} & Who? \mynewline
                                                        \rowcolor{row2}\textbf{Accusative} & \emph{Wen?} & Who(m)? \\
    \rowcolor{row1} \textbf{Dative} & \emph{Wem?} & To who(m)? \\
    \rowcolor{row2} \textbf{Genitive} & \emph{Wessen?} & Whose? \mynewline
  \end{tabular}
\end{table}

如何让AUCTeX明白\mynewline扮演与\\相同的角色?

1 个答案:

答案 0 :(得分:1)

在许多情况下,如果您将TeX-parse-selfTeX-auto-save设置为t,AUCTeX应该能够自动了解您自己的命令。见https://www.gnu.org/software/auctex/manual/auctex/Parsing-Files.html#Parsing-Files

如果这还不够,您可以使用样式文件告诉AUCTeX您自己的宏和环境。有关详情,请参阅https://www.gnu.org/software/auctex/manual/auctex/Style-Files.html#Style-Files。归结为正确使用函数TeX-add-symbols

请注意,自从我上次这样做以来已经过了几年。

AUCTeX附带了一个longtable样式文件,似乎包含了你所需要的内容。见http://git.savannah.gnu.org/cgit/auctex.git/tree/style/longtable.el#n92

(TeX-add-symbols
    ;; Commands to end table rows
    '("endhead" 0)
    '("endfirsthead" 0)
    '("endfoot" 0)
    '("endlastfoot" 0)
    ;; Caption commands
    '("caption*" 1))