Encore une autre question sur l'indentation dans AUCTeX ...
J'aimerais pouvoir mettre en retrait le contenu entre crochets [...]
. Il serait utile pour les listes d'options tikz, par exemple, ou les arbres dessinés à l'aide de forest
ou qtree
: ces deux packages utilisent des crochets pour leur syntaxe, ce qui facilite la numérisation du code source dans un éditeur prenant en charge l'indentation paren.
Malheureusement, AUCTeX ne met en retrait que le contenu des environnements et le contenu entre accolades {...}
.
L' forest
exemple est également une situation où la tricherie en ajoutant des accolades autour du contenu que nous voulons indenté ne fonctionnera pas, car les accolades échapperont à tout le contenu d'être évalué comme un arbre.
Exemple:
\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest}
[A
[B]
[C
[D]
[E]
]
]
\end{forest}
\end{document}
Que j'aimerais mettre en retrait comme:
\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest}
[A
[B]
[C
[D]
[E]
]
]
\end{forest}
\end{document}
Y a-t-il un moyen?
la source
forest
l' intérieur de l' environnement?(modify-syntax-entry ?\[ "(]" LaTeX-mode-syntax-table) (modify-syntax-entry ?\] ")[" LaTeX-mode-syntax-table)
.character: [ (...) syntax: (] which means: open, matches ]
mais il semble que le mécanisme d'indentation d'AUCTeX ignore ces informations.Réponses:
Définir
LaTeX-begin-regexp
etLaTeX-end-regexp
n'aide pas ici car à l'intérieur,LaTeX-indent-level-count
il recherche une barre oblique inverse avant de vérifier l'expression rationnelle.Je l'ai fait fonctionner en modifiant
TeX-brace-count-line
. Cette solution compte[]
comme appareil orthopédique{}
. Comparez-le fonctionnera d'origine si vous voulez voir la différence.la source