NB: gran parte de este texto proviene de una respuesta a una pregunta que resultó ser un duplicado de esta pregunta . Parte del material es lo suficientemente diferente como para que valga la pena agregarlo a esta pregunta.
El modo de esquema y las instalaciones de plegado de AUCTeX son dos bestias diferentes que están destinadas a hacer lo mismo en términos generales: ocultar y mostrar partes seleccionadas del búfer.
Un elemento clave para reconocer cuando se usa outline-minor-mode
es que tiene una clave de prefijo diferente a outline-mode
(es decir, el modo principal ), precisamente para evitar conflictos de teclas con teclas de movimiento, etc. Ese prefijo tiene el valor predeterminado de torpe al tipo C-c @
(aunque puede cambiar eso personalizando outline-minor-mode-prefix
). Todas las combinaciones de teclas enumeradas en este nodo del manual aún deberían funcionar, pero con el giro que reemplaza el prefijo de modo mayor de C-c
con el prefijo de modo menor de C-c @
. Por lo tanto, C-c @ C-c
corre hide-entry
, C-c @ C-e
corre show-entry
, etc.
Para usar estas instalaciones, debe habilitarlo outline-minor-mode
. La forma más simple es con un gancho de modo:
(add-hook 'LaTeX-mode-hook #'outline-minor-mode)
cambiando outline-minor-mode-prefix
Se debe ser una cosa simple de cambio outline-minor-mode-prefix
(que solía ser en su día). Pero no lo es. ¡Qué divertido!
La cadena de documentos ahora da una nota críptica que:
Clave de prefijo para usar para los comandos de esquema en modo secundario de esquema. El valor de esta variable se verifica como parte de la carga del modo Esquema. Después de eso, cambiar la clave de prefijo requiere manipular mapas de teclas.
Si, muy útil. Por extraño que parezca, incluso customize
no establece esta variable a tiempo para evitar "manipular mapas de teclas" (a pesar de estar definido defcustom
en el código fuente). La solución práctica: establezca esta variable en su archivo de inicio antes de cargar outline
o cualquier otra cosa que se base en él (por ejemplo, org-mode
)
Es posible que, por ejemplo, desee que el prefijo sea C-o
(lo que significa que está perdiendo open-line
, pero puede volver a vincularlo si realmente lo desea). Poner lo siguiente temprano en su archivo init hará el truco:
(global-unset-key "\C-o")
(setq outline-minor-mode-prefix "\C-o")
Ahora, debería poder acceder a todas las funciones del modo esquema utilizando el C-o
prefijo: C-o C-c
llamar hide-entry
, C-o C-e
llamar show-entry
, etc.
Agregar nuevos encabezados de esquema
Como beneficio adicional, también puede personalizar qué encabezados de esquema se pueden plegar y en qué niveles. Por ejemplo, me gusta poder hacer encabezados de sección "falsos" para ocultar el texto que no tiene un encabezado LaTeX verdadero, pero lógicamente se mantiene en el mismo nivel del documento. Con el siguiente código, puede usar:
%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
Y podrá manipular la sección falsa como cualquier otra, pero LaTeX la ignorará cuando compile el documento:
;; 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
extiende los modos de esquema para usar org-mode
como ocultar / mostrar con la tecla de tabulación mágica. En otras palabras, probablemente pueda agregar esto a su flujo de trabajo y hacer que sus documentos LaTeX se comporten más como org
documentos. (No lo uso yo mismo, así que no puedo comentar sobre la funcionalidad).
Las instalaciones de plegado de AUCTeX funcionan en entornos y lo que (confusamente) llaman macros , en lugar de secciones. Para usar esta funcionalidad, deberá habilitarla con TeX-fold-mode
.
Por ejemplo, el itemize
entorno , desplegado, podría verse así:
\begin{itemize}
\item An item
\item Another item
\end{itemize}
Las llamadas TeX-fold-env
(por defecto:) C-c C-o C-e
dentro del entorno lo pliegan para que se vea así:
[itemize]
Colocar el cursor en algún lugar adentro [itemize]
lo expandirá temporalmente nuevamente mientras lo edita, y luego se plegará nuevamente [itemize]
cuando mueva el cursor fuera del entorno.
Por "macro", AUCTeX significa cosas como \footnote{...}
. Por lo tanto, llamar TeX-fold-macro
(por defecto:) C-c C-o C-m
cuando \footnote{This is a footnote}
esté dentro lo doblará hasta [f]
; se expandirá y contraerá de manera análoga a lo que sucede con los entornos.
Puede usar las dos outline-minor-mode
instalaciones de plegado de AUCTeX juntas en el mismo documento: hacen diferentes cosas en diferentes partes del mismo.