Emacs中LaTeX的代码折叠

Shr*_*saR 14 emacs latex elisp folding auctex

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

这可能吗?我只是尝试了hs-minor-mode,allout-mode而且outline-minor-mode,但是,大多数人都不认识LaTeX的环境,例如hs-minor-mode失败,出现"扫描错误:不平衡的括号".我宁愿不必输入明显的折叠标记,如{{{在折叠模式中.

[理想情况下,如果折叠是持久的,那将是很好的,但我看到那个问题还没有得到接受的答案.]

AVB*_*AVB 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)))
Run Code Online (Sandbox Code Playgroud)

如果它应该在所有AUCTeX模式下激活,请使用TeX-mode-hook而不是LaTeX-mode-hook.

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

  • 您还可以使用大纲命令,如Mx hide-body和Mx show-subtree.另请参阅RefTeX,它具有ToC导航功能. (4认同)