Dobragem de código para LaTeX no Emacs
Pergunta
Existe um modo menor do Emacs (ou pedaço de código elisp) que permite ocultar/mostrar seletivamente ambientes enquanto estiver no modo LaTeX?Por exemplo, gostaria de passar ao início de uma longa \begin{figure}
bloco, pressione uma tecla e tenha o conteúdo desse ambiente de figura oculto da vista.Da mesma forma com \begin{proof}
e assim por diante, e idealmente mesmo com \subsection
S.
Isso é possível?Eu apenas tentei hs-minor-mode
, allout-mode
, e outline-minor-mode
, mas a maioria deles não reconhece os ambientes do LaTeX, por ex.hs-minor-mode falha com "erro de verificação:parênteses desequilibrados".Eu preferiria não ter que inserir marcas de dobra explícitas como {{{ como em modo dobrável.
[Idealmente seria ótimo se a dobragem fosse persistente, mas vejo que essa pergunta ainda não tem uma resposta aceita.]
Solução
AUCTeX dobra: http://www.gnu.org/software/auctex/manual/auctex.html#Folding
Uma reclamação popular sobre linguagens de marcação como TeX e LaTeX é que há muita confusão no texto fonte e não é possível focar bem no conteúdo.Existem macros nas quais você está interessado apenas no conteúdo que elas contêm, como especificadores de fonte, onde o conteúdo já pode ser fonte de uma maneira especial pelo bloqueio de fonte.Ou macros cujo conteúdo você deseja ver apenas ao editá-lo, como notas de rodapé ou citações.Da mesma forma, você pode achar que certos ambientes ou comentários distraem ao tentar se concentrar no corpo do documento.
Com a funcionalidade de dobramento do AUCTeX você pode recolher esses itens e substituí-los por uma string fixa, o conteúdo de um de seus argumentos ou uma mistura de ambos.Se você quiser tornar o texto original visível novamente para visualizá-lo ou editá-lo, mova o ponto lateralmente para o espaço reservado (também chamado de string de exibição) ou clique com o botão esquerdo do mouse sobre ele.(Atualmente, este último é suportado apenas no Emacs.) A macro ou ambiente se desdobrará automaticamente, permanecerá aberto enquanto o ponto estiver dentro dele e entrará em colapso novamente quando você mover o ponto para fora dele.(Observe que a dobragem de ambientes atualmente não funciona em todos os modos AUCTeX.)
Para usar este recurso, você deve ativar
TeX-fold-mode
que ativará o recurso de revelação automática e os comandos necessários para ocultar e mostrar macros e ambientes.Você pode ativar o modo em um determinado buffer digitando o comandoM-x TeX-fold-mode RET
ou usando o atalho do tecladoC-c C-o C-f
.Se você quiser usá-lo sempre que editar um documento LaTeX, adicione-o a um gancho:(add-hook 'LaTeX-mode-hook (lambda () (TeX-fold-mode 1)))
Caso deva ser ativado em todos os modos AUCTeX, use
TeX-mode-hook
em vez deLaTeX-mode-hook
.Uma vez que o modo está ativo existem vários comandos disponíveis para ocultar e mostrar macros, ambientes e comentários...