15

是否有 Emacs 次要模式(或一段 elisp 代码)可让您在 LaTeX 模式下选择性地隐藏/显示环境?例如,我想移动到一个长\begin{figure}块的开头,按下一个键,然后将该图形环境的内容隐藏起来。与等类似\begin{proof},理想情况下甚至与\subsections。

这可能吗?我刚试过hs-minor-mode, allout-mode, 和outline-minor-mode,但它们中的大多数都无法识别 LaTeX 的环境,例如 hs-minor-mode 因“扫描错误:括号不平衡”而失败。我不希望像在fold-mode中那样输入明确的折叠标记,例如 {{{ 。

[理想情况下,如果折叠是持久的,那就太好了,但我看到这个问题还没有一个公认的答案。]

4

1 回答 1

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.

一旦该模式处于活动状态,就有几个命令可用于隐藏和显示宏、环境和注释......

于 2010-04-15T01:47:32.590 回答