NB: gran parte di questo testo deriva da una risposta a una domanda che si è rivelata un duplicato di questa domanda . Parte del materiale è sufficientemente diverso da sembrare utile aggiungerlo a questa domanda.
La modalità Contorno e le strutture di piegatura di AUCTeX sono due diverse bestie che hanno lo scopo di fare sostanzialmente la stessa cosa: nascondere e mostrare parti selezionate del buffer.
Un elemento chiave da riconoscere quando si usa outline-minor-mode
è che ha una chiave di prefisso diversa rispetto a outline-mode
(cioè, la modalità principale ) - precisamente per evitare conflitti di chiave con tasti di movimento, ecc. Quel prefisso passa automaticamente al tipo imbarazzante C-c @
(anche se è possibile cambiarlo personalizzando outline-minor-mode-prefix
). Tutte le combinazioni di tasti elencate in questo nodo del manuale dovrebbero comunque funzionare, ma con la differenza che si sostituisce il prefisso della modalità principaleC-c
con il prefisso della modalità minore di C-c @
. Quindi, C-c @ C-c
corre hide-entry
, C-c @ C-e
corre show-entry
e così via.
Per utilizzare queste strutture, è necessario abilitare outline-minor-mode
. Il modo più semplice è con un hook di modalità:
(add-hook 'LaTeX-mode-hook #'outline-minor-mode)
mutevole outline-minor-mode-prefix
Esso dovrebbe essere una cosa semplice da cambiare outline-minor-mode-prefix
(è usato per essere di nuovo nel corso della giornata). Ma non lo è. Che divertimento!
Il docstring ora dà una nota criptica che:
Tasto prefisso da utilizzare per i comandi Struttura nella modalità secondaria Struttura. Il valore di questa variabile viene verificato come parte del caricamento della modalità Struttura. Successivamente, la modifica della chiave prefisso richiede la manipolazione di mappe di tasti.
Sì, molto utile. Stranamente, nemmeno customize
imposta questa variabile in tempo per evitare di "manipolare le keymap" (nonostante sia definita con defcustom
nel codice sorgente). La soluzione pratica: imposta questa variabile nel tuo file init prima di caricare outline
o qualsiasi altra cosa costruita da esso (ad esempio, org-mode
).
Ad esempio, potresti voler essere il prefisso C-o
(il che significa che stai perdendo open-line
, ma puoi ricollegarlo se lo vuoi davvero). Mettere quanto segue all'inizio del tuo file init farà il trucco:
(global-unset-key "\C-o")
(setq outline-minor-mode-prefix "\C-o")
Ora, dovresti essere in grado di accedere a tutte le funzionalità della modalità struttura usando il C-o
prefisso: C-o C-c
chiamare hide-entry
, C-o C-e
chiamare show-entry
e così via.
aggiunta di nuove intestazioni di contorno
Come bonus aggiuntivo, puoi anche personalizzare quali intestazioni di contorno possono essere piegate e a quali livelli. Ad esempio, mi piacerebbe poter creare intestazioni di sezione "false" per nascondere il testo che non ha una vera intestazione LaTeX, ma logicamente viene mantenuto allo stesso livello del documento. Con il seguente codice, è possibile utilizzare:
%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
E sarai in grado di manipolare la sezione falsa come qualsiasi altra, ma LaTeX la ignorerà quando compili il 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
estende le modalità di contorno per usare org-mode
nascondimenti / proiezioni simili a quelli con il tasto tab magico. In altre parole, probabilmente puoi aggiungerlo al tuo flusso di lavoro e far sì che i tuoi documenti LaTeX si comportino più come org
documenti. (Non lo uso da solo, quindi non posso commentare la funzionalità.)
Le strutture pieghevoli di AUCTeX funzionano sugli ambienti e su ciò che chiamano (confusamente) macro , piuttosto che sezioni. Per utilizzare questa funzionalità, è necessario abilitarlo con TeX-fold-mode
.
Ad esempio, l' itemize
ambiente , spiegato, potrebbe apparire come:
\begin{itemize}
\item An item
\item Another item
\end{itemize}
La chiamata TeX-fold-env
(impostazione predefinita :) C-c C-o C-e
all'interno dell'ambiente lo piega in modo che assomigli a:
[itemize]
Posizionando il cursore da qualche parte all'interno, [itemize]
lo espanderete temporaneamente mentre lo modificate, quindi ripiegherà verso il basso [itemize]
quando spostate il cursore fuori dall'ambiente.
Per "macro", AUCTeX significa cose come \footnote{...}
. Quindi, chiamare TeX-fold-macro
(default:) C-c C-o C-m
quando dentro \footnote{This is a footnote}
lo piegherà a [f]
; si espanderà e si contraerà in modo analogo a ciò che accade con gli ambienti.
Puoi usare entrambe outline-minor-mode
le strutture di piegatura di AUCTeX insieme nello stesso documento: fanno cose diverse su parti diverse di esso.