注意:本文中的大部分内容来自对一个问题的回答,该问题原来是该问题的重复。其中一些材料完全不同,因此似乎值得将其添加到此问题中。
大纲模式和AUCTeX 折叠功能是两种不同的野兽,它们的作用大致相同:隐藏和显示缓冲区的选定部分。
使用时要识别的一个关键元素outline-minor-mode
是它的前缀键与outline-mode
(即main模式)不同-正是为了避免键与运动键等冲突。该前缀默认为笨拙的类型C-c @
(尽管您可以通过自定义更改outline-minor-mode-prefix
)。手册此节点上列出的所有键绑定仍应正常工作,但要用另一种方式,即将主模式前缀替换C-c
为次模式前缀C-c @
。因此,C-c @ C-c
run hide-entry
,C-c @ C-e
run show-entry
等。
要使用这些功能,您需要启用outline-minor-mode
。最简单的方法是使用模式挂钩:
(add-hook 'LaTeX-mode-hook #'outline-minor-mode)
改变中 outline-minor-mode-prefix
这应该是一个简单的事情变outline-minor-mode-prefix
(它曾经是早在一天)。但事实并非如此。真有趣!
现在,文档字符串给出了一个神秘的注释:
在大纲次要模式下用于大纲命令的前缀键。该变量的值在加载轮廓模式时进行检查。此后,更改前缀键需要操作键映射。
是的,非常有帮助。奇怪的是,即使customize
没有及时设置此变量也可以避免“操纵键盘映射”(尽管它defcustom
在源代码中用定义)。实际的变通方法:在加载或从其构建任何其他文件之前,请在init文件中设置此变量。outline
org-mode
例如,您可能希望前缀为C-o
(这意味着您正在丢失open-line
,但是如果您确实需要,可以重新绑定)。将以下内容放在init文件的前面即可达到目的:
(global-unset-key "\C-o")
(setq outline-minor-mode-prefix "\C-o")
现在,您应该能够使用C-o
前缀- C-o C-c
调用hide-entry
,C-o C-e
调用等访问所有大纲模式功能show-entry
。
添加新的大纲标题
另外,您还可以自定义可以折叠的大纲标题以及达到的级别。例如,我希望能够制作“假”节标题,以隐藏没有真正的LaTeX标题但逻辑上保持在文档同一级别的文本。通过以下代码,您可以使用:
%section{a fake section}
Blah blah blah blah blah, LaTeX doesn't recognize me as a section...
\section{a real section}
Blah blah blah blah blah, LaTeX treats me as a real section
而且您将能够像其他任何部分一样操作伪造的部分,但是LaTeX在编译文档时将忽略它:
;; extra outline headers
(setq TeX-outline-extra
'(("%chapter" 1)
("%section" 2)
("%subsection" 3)
("%subsubsection" 4)
("%paragraph" 5)))
;; add font locking to the headers
(font-lock-add-keywords
'latex-mode
'(("^%\\(chapter\\|\\(sub\\|subsub\\)?section\\|paragraph\\)"
0 'font-lock-keyword-face t)
("^%chapter{\\(.*\\)}" 1 'font-latex-sectioning-1-face t)
("^%section{\\(.*\\)}" 1 'font-latex-sectioning-2-face t)
("^%subsection{\\(.*\\)}" 1 'font-latex-sectioning-3-face t)
("^%subsubsection{\\(.*\\)}" 1 'font-latex-sectioning-4-face t)
("^%paragraph{\\(.*\\)}" 1 'font-latex-sectioning-5-face t)))
outline-magic
扩展了大纲模式以使用org-mode
-通过魔术Tab键隐藏/显示。换句话说,您可以将其添加到工作流程中,并使LaTeX文档的行为更像org
文档。(我自己不使用它,因此不能评论功能。)
AUCTeX的折叠工具在环境及其(令人困惑地)称为宏(而不是部分)的环境中工作。要使用此功能,您需要使用启用它TeX-fold-mode
。
例如,展开的itemize
环境可能类似于:
\begin{itemize}
\item An item
\item Another item
\end{itemize}
在环境内部调用TeX-fold-env
(默认值C-c C-o C-e
:)会将其折叠起来,如下所示:
[itemize]
将光标放置在内部某个位置[itemize]
将在编辑它时再次暂时将其扩展,然后将其向下折叠到[itemize]
将光标移出环境时。
通过“宏”,AUCTeX表示\footnote{...}
。因此,在内部调用TeX-fold-macro
(default C-c C-o C-m
:)\footnote{This is a footnote}
会将其折叠为[f]
; 它将以与环境类似的方式扩展和收缩。
您可以outline-minor-mode
在同一文档中同时使用AUCTeX的折叠工具:它们在其中的不同部分执行不同的操作。