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

Posted

技术标签:

【中文标题】Emacs、AUCTeX 和自定义命令的缩进【英文标题】:Emacs, AUCTeX and indentation of custom commands 【发布时间】:2018-06-08 16:02:20 【问题描述】:

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

\begintable[h]
  \centering\sffamily
  \begintabularlcc
    \rowcolorrow1 \textbfNominative & \emphWer? & Who? \mynewline
                                                        \rowcolorrow2\textbfAccusative & \emphWen? & Who(m)? \\
    \rowcolorrow1 \textbfDative & \emphWem? & To who(m)? \\
    \rowcolorrow2 \textbfGenitive & \emphWessen? & Whose? \mynewline
  \endtabular
\endtable

如何让AUCTeX 理解\mynewline\\ 扮演相同的角色?

【问题讨论】:

【参考方案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))

【讨论】:

谢谢!我对获得答案有点失去希望......我将符号添加到列表中,但它仍然无法正常工作,我不知道为什么。现在 auctex 知道自定义换行命令,但我不确定它知道如何缩进,因为缩进的行为方式相同。至少,这对我来说是一个指针。至少现在我知道要寻找什么了!! =)

以上是关于Emacs、AUCTeX 和自定义命令的缩进的主要内容,如果未能解决你的问题,请参考以下文章

将 minted(源代码 LaTeX 包)与 emacs/auctex 一起使用

汇编代码的自定义缩进功能

如何在Eclipse中如何自动添加注释和自定义注释风格

如何搭建Emacs-LaTeX-make工具链

.emacs 文件权限?

定义全局Git Hooks和自定义Git Hooks