F: Wie kann ich eine "richtige" Einrückung von LaTeX- itemize
Umgebungen erzielen auctex
?
Hier möchte ich item
in einer itemize
Umgebung sein:
\item
Die Linie wird um zwei Leerzeichen relativ zum Beginn der Umgebung eingerückt- Fortsetzungszeilen im Element werden relativ zur
\item
Zeile um weitere zwei Leerzeichen eingerückt
Dies ist, was ich sehen möchte / erwarten würde:
\begin{itemize}
\item Here's a really long item in a LaTeX itemize environment;
note how the *initial* item line is indented two spaces, and the
continuation lines are indented another two spaces.
\end{itemize}
Die anfängliche Einrückung des Elements kann mit der LaTeX-item-indent
Variablen angepasst werden, die standardmäßig verwendet wird -2
. Mit diesem Standard, erhalte ich das unerwünschte Verhalten der \item
nicht eingerückt ist, aber ich tun bekommen das gewünschte Verhalten der Fortsetzungszeilen um weitere zwei Räume versetzt sind:
\begin{itemize}
\item Here's a really long item in a LaTeX itemize environment;
note how the *initial* item line is *NOT* indented two spaces,
but the continuation lines are indented two spaces.
\end{itemize}
Einstellung LaTeX-item-indent
zu 0
wird mir die gewünschte Vertiefung auf der \item
Linie (zwei Räume in), aber es nicht bekommt mir in die zweite Hälfte des gewünschten Verhaltens der Fortsetzungszeilen um weitere zwei Räume versetzt ist:
\begin{itemize}
\item Here's a really long item in a LaTeX itemize environment;
note how the *initial* item line is indented two spaces, but the
continuation lines are *NOT* indented an additional two spaces.
\end{itemize}
Also: wie bekommt man beide gewünschten Verhaltensweisen:
- erster Einzug der
\item
Zeile zwei Leerzeichen und - Fortsetzungszeilen sind zusätzlich zwei Leerzeichen eingerückt?
(Beachten Sie den verwandten SO-Thread .)
quelle
LaTeX-indent-level
auf 4 setzen. Elemente werden auf 4 - 2 = 2 eingerückt, und Fortsetzungszeilen werden auf 4 = 2 + 2 eingerückt. Dies bedeutet jedoch, dass jede andere Umgebung in der Datei eingerückt wird 4 (und nicht 2), was wünschenswert oder nicht wünschenswert sein kann. Ich würde es vorziehen, wenn sie bei 2 eingekerbt wären, da stecke ich fest.LaTeX-indent-environment-list
, eine benutzerdefinierte Funktion zum Einrücken anzupassen und hinzuzufügen? Die FunktionLaTeX-indent-tabular
bietet möglicherweise einen sinnvollen Ausgangspunkt (oder zumindest ein sinnvolles Beispiel für eine benutzerdefinierte Einrückung in einer Umgebung). Ich bin gerade auf diese Variable / Funktion gestoßen, also hatte ich keine Chance, mich selbst damit zu befassen.Antworten:
@ sykoras Kommentar zu
(setq LaTeX-item-indent -2 LaTeX-indent-level 4)
ist fast da, aber es bedeutet, dass wir auch auf jede andere Umgebung übergehen . So hätten wir zum Beispiel auch:Die folgende Funktion baut ein altes (und anscheinend defektes?) Code-Snippet von Tassilo Horn auf . Der Einzug wird korrekt dargestellt, auch in verschachtelten Umgebungen. Es funktioniert für
itemize
,enumerate
unddescription
Umgebungen, um zu booten:Ich kann nicht anders, als das Gefühl zu haben, dass es eine sehr einfache Einstellung gibt, die mir fehlt, und dies ist die Rube Goldberg- Version. Trotzdem funktioniert es und kratzt an einem Juckreiz, den ich seit Jahren habe .
BEARBEITEN: Als Antwort auf den Kommentar von @ sykora habe ich die Funktion überarbeitet, um die harte Codierung zu entfernen.
\item
s sind jetzt eingerückteLaTeX-indent-level
Leerzeichen. Fortsetzungszeilen können den Wert einer neuen VariablenLaTeX-indent-level-item-continuation
oder, wenn Sie diese nicht binden möchten, den doppelten Wert von annehmenLaTeX-indent-level
.Das Binden und Einstellen
LaTeX-indent-level-item-continuation
von 8 führt zu ästhetisch ansprechenden Ergebnissen. Ich könnte sogar dazu wechseln:quelle
latex.el
- dh(+ (LaTeX-indent-calculate-last force-type) LaTeX-item-indent))
- trägt zum Einrückungsgrad bei.LaTeX-indent-level
eine neue Variable ersetzen -LateX-item-continuation-indent
?