Nota: grande parte deste texto veio de uma resposta a uma pergunta que acabou sendo uma duplicata dessa pergunta . Parte do material é suficientemente diferente que parecia valer a pena adicioná-lo a essa pergunta.
O modo de estrutura de tópicos e as instalações dobráveis do AUCTeX são duas bestas diferentes que devem fazer amplamente a mesma coisa: ocultar e mostrar partes selecionadas do buffer.
Um elemento-chave para reconhecer quando se usa outline-minor-mode
é que ele tem uma tecla de prefixo diferente outline-mode
(ou seja, o modo maior ) -, precisamente para evitar conflitos de chave com chaves de movimento, etc, que padrões de prefixo para o estranho-a-tipo C-c @
(embora você pode mude isso personalizando outline-minor-mode-prefix
). Todas as combinações de teclas listadas neste nó do manual ainda devem funcionar, mas com o toque que você substitui o prefixo do modo principalC-c
com o prefixo do modo menor de C-c @
. Portanto, C-c @ C-c
corre hide-entry
, C-c @ C-e
corre show-entry
e assim por diante.
Para usar esses recursos, você precisa habilitar outline-minor-mode
. A maneira mais simples é com um gancho de modo:
(add-hook 'LaTeX-mode-hook #'outline-minor-mode)
mudando outline-minor-mode-prefix
Ele deve ser uma coisa simples de mudança outline-minor-mode-prefix
(que costumava ser de volta ao dia). Mas isso não. Que divertido!
A docstring agora fornece uma nota enigmática de que:
Tecla de prefixo a ser usada nos comandos Estrutura de tópicos no modo secundário Estrutura de tópicos. O valor dessa variável é verificado como parte do carregamento do modo Esboço. Depois disso, alterar a chave de prefixo requer manipulação de mapas de teclas.
Sim, muito útil. Curiosamente, nem mesmo customize
define essa variável a tempo de evitar "manipular mapas de teclas" (apesar de ser definida defcustom
no código-fonte). A solução prática: defina essa variável no seu arquivo init antes de carregar outline
ou qualquer outra coisa criada a partir dele (por exemplo, org-mode
).
Você pode, por exemplo, querer que o prefixo seja C-o
(o que significa que você está perdendo open-line
, mas pode religá-lo, se realmente quiser). Colocar o seguinte no início do arquivo init fará o truque:
(global-unset-key "\C-o")
(setq outline-minor-mode-prefix "\C-o")
Agora, você deve conseguir acessar toda a funcionalidade do modo de estrutura de tópicos usando o C-o
prefixo - C-o C-c
para ligar hide-entry
, C-o C-e
ligar show-entry
e assim por diante.
adicionando novos títulos de estrutura de tópicos
Como um bônus adicional, você também pode personalizar quais cabeçalhos de estrutura de tópicos podem ser dobrados e em que níveis. Eu, por exemplo, gostaria de poder criar cabeçalhos de seção "falsos" para ocultar o texto que não possui um cabeçalho LaTeX verdadeiro, mas logicamente é mantido no mesmo nível do documento. Com o seguinte código, você pode 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
E você poderá manipular a seção falsa como qualquer outra, mas o LaTeX a ignorará quando você compilar o 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 os modos de estrutura de tópicos para usar org-mode
ocultação / exibição semelhantes com a tecla tab mágica. Em outras palavras, você provavelmente pode adicionar isso ao seu fluxo de trabalho e fazer com que seus documentos LaTeX se comportem mais como org
documentos. (Eu não o uso, não posso comentar sobre a funcionalidade.)
As instalações dobráveis do AUCTeX funcionam em ambientes e no que eles (confusamente) chamam de macros , em vez de seções. Para usar essa funcionalidade, será necessário ativá-la TeX-fold-mode
.
Por exemplo, o itemize
ambiente , desdobrado, pode se parecer com:
\begin{itemize}
\item An item
\item Another item
\end{itemize}
A chamada TeX-fold-env
(padrão :) C-c C-o C-e
dentro do ambiente é dobrada para se parecer com:
[itemize]
Colocar o cursor em algum lugar interno [itemize]
o expandirá temporariamente novamente enquanto você o edita e depois se dobrará novamente para [itemize]
quando você mover o cursor para fora do ambiente.
Por uma "macro", o AUCTeX significa coisas assim \footnote{...}
. Portanto, chamar TeX-fold-macro
(padrão C-c C-o C-m
:) quando estiver dentro \footnote{This is a footnote}
dobra-o até [f]
; ele irá expandir e contrair de maneira análoga ao que acontece com os ambientes.
Você pode usar as outline-minor-mode
instalações dobráveis e as do AUCTeX juntas no mesmo documento: elas fazem coisas diferentes em partes diferentes.