Quando scrivo LaTeX usando latex-mode
, spesso desidero scrivere "intervalli semi-aperti" nel mio testo. Ad esempio, [0,1)
che si riferisce all'insieme di tutti i numeri x
con 0 <= x < 1
.
Sfortunatamente, questi "delimitatori sbilanciati" sembrano confondere il parser di indentazione, causando un rientro inappropriato del testo seguente, che di solito si sposta alla destra.
Ecco un documento di esempio. Il testo seguente è il risultato dopo averlo fatto C-x h M-x indent-region
. Il comportamento corretto sarebbe di far rientrare tutti e due i paragrafi di 0 spazi.
\documentclass{article}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat
at dui et mattis. Here is a half open interval $[0,1)$. Proin
fringilla lectus nec mi tincidunt aliquet. Vestibulum fermentum eu
neque id egestas. Here is another $[1,2)$. Nullam et lectus
convallis, placerat neque non, vehicula nisi. Fusce imperdiet
dignissim ante, eget fringilla nisi.
Integer fermentum nunc eget purus molestie commodo. Integer
tristique tincidunt odio, vel rutrum diam commodo quis. Fusce a
aliquet quam. Cras suscipit est et nisl sollicitudin
iaculis. Aliquam erat volutpat. Phasellus sapien arcu, aliquet ut
hendrerit in, lobortis nec ante.
\end{document}
Attualmente sto lavorando a questo con un brutto trucco: definisco una macro LaTeX che non si espande e scrivo i delimitatori "corrispondenti" all'interno di un'invocazione di questa macro. Ciò ripristina la sincronizzazione del rientro.
\documentclass{article}
\newcommand{\ugh}[1]{}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat
at dui et mattis. Here is a half open interval $[0,1)$. Proin
fringilla lectus nec mi tincidunt aliquet. Vestibulum fermentum eu
neque id egestas. \ugh{(]} Now on the next line we are back in sync.
Nullam et lectus convallis, placerat neque non, vehicula nisi. Fusce
imperdiet dignissim ante, eget fringilla nisi.
\end{document}
Ma questo è davvero spiacevole. C'è una soluzione migliore?
Sto usando GNU Emacs 24.4.1.