Załóżmy, że edytuję lateks w trybie lateksowym Auctex i mam następujące równanie.
To jest po prostu wcięte indent-region
.
\begin{align}
\phi & = a + b
+ c + d \\
& = a + b
+ c + d + e
\end{align}
Powyższe wyrównanie jest tym, co otrzymuję, jeśli zaznaczę wszystko i uderzę TAB
, to znaczy, jeśli tylko używam indent-region
.
Chciałbym uzyskać następujące informacje:
Zwróć uwagę na + c + d
wyrównanie tekstu z tekstem po &. Byłoby to najbardziej sensowne, ponieważ + c + d
są częścią tej samej „kolumny” co = a + b
.
\begin{align}
\phi & = a + b
+ c + d \\
& = a + b
+ c + d + e
\end{align}
Poniżej otrzymam, jeśli zadzwonię align-current
.
\begin{align}
\phi & = a + b
+ c + d \\
& = a + b
+ c + d + e
\end{align}
Co prawie się tam pojawia, ale nie do końca. Różnica jest wyraźna.
Ponadto, jeśli zdecyduję się usunąć \phi
, align-current
robi coś po prostu dziwnego:
\begin{align}
& = a + b
+ c + d \\
& = a + b
+ c + d + e
\end{align}
Czy istnieje sposób, w jaki mogę dostosować align-current
lub użyć czegoś innego, aby uzyskać pożądany efekt?
align-regexp
i podać regex znaków, które chcesz wyrównać+|=
. Być może będziesz musiał uciec przed niektórymi z tych postaci.[+=]
. Ale nie da dokładnie tego, czego chciałeś ... nie będzie pasować&
do+
.Odpowiedzi:
Rezultat, który chcesz, jest już funkcją AUCTeX od października 2013 r . Nie jest to jeszcze obecne w bieżącej wersji (11.87). Wszystko, co musisz zrobić, to zaznaczyć region i trafić TAB. Zobacz,
LaTeX-hanging-ampersand-position
jak zaimplementowano wcięcie.źródło
make install
z repozytorium git nie definiuje pakietu „auctex”, więc te inne pakiety nie mogą się zainicjować.(require 'tex-site)
powinno wystarczyć pomake install
zakończeniu.-pkg
pliku z katalogu instalacyjnego.Zakładając, że nie ma żadnych pustych linii między \ początkiem i \ końcem równań, możesz wywołać tę funkcję, gdy kursor znajduje się w dowolnym miejscu w obszarze \ początek- \ koniec.
źródło