Emacs中LaTeX的代码折叠

时间:2010-04-15 01:37:03

标签: emacs latex elisp folding auctex

是否有Emacs次要模式(或一段elisp代码)可让您在LaTeX模式下有选择地隐藏/显示环境?例如,我想移动到一个长\begin{figure}块的开头,点击击键,并将该图形环境的内容隐藏在视图之外。与\begin{proof}等同样,理想情况下甚至与\subsection s。

相同

这可能吗?我刚试过hs-minor-modeallout-modeoutline-minor-mode,但大多数都不认识LaTeX的环境,例如: hs-minor-mode失败,出现“扫描错误:括号不平衡”。我宁愿不必输入明确的折叠标记,如{{{in folding-mode

[理想情况下,如果折叠是persistent会很棒,但我看到那个问题还没有得到接受的答案。]

1 个答案:

答案 0 :(得分:14)

AUCTeX确实折叠:http://www.gnu.org/software/auctex/manual/auctex.html#Folding

  

关于标记语言(如TeX和LaTeX)的一个流行的抱怨是源文本中有太多混乱,并且人们不能很好地关注内容。有些宏只对你所包含的内容感兴趣,比如字体说明符,其中内容可能已经通过字体锁定以特殊方式显示出来。或宏,您只想在实际编辑时看到的内容,如脚注或引文。同样,当您尝试专注于文档正文时,您可能会发现某些环境或评论会分散注意力。

     

使用AUCTeX的折叠功能,您可以折叠这些项目并用固定字符串,其中一个参数的内容或两者的混合来替换它们。如果要再次显示原始文本以便查看或编辑它,请将点侧向移动到占位符(也称为显示字符串)或左键单击鼠标指针。 (后者目前仅在Emacs上受支持。)宏或环境将自动展开,只要点在其内部就保持打开,并且一旦您将点移出它就再次折叠。 (请注意,折叠环境目前在每个AUCTeX模式下都不起作用。)

     

要使用此功能,您必须激活TeX-fold-mode,这将激活自动显示功能以及隐藏和显示宏和环境所需的命令。您可以通过键入命令M-x TeX-fold-mode RET或使用键盘快捷键C-c C-o C-f在特定缓冲区中激活模式。如果要在每次编辑LaTeX文档时使用它,请将其添加到钩子:

(add-hook 'LaTeX-mode-hook (lambda ()
                             (TeX-fold-mode 1)))
     

如果应在所有AUCTeX模式中激活,请使用TeX-mode-hook代替LaTeX-mode-hook

     

模式激活后,有几个命令可用于隐藏和显示宏,环境和注释......