sichere Stellen zum Überspringen von Zeilen in der Quelle

sichere Stellen zum Überspringen von Zeilen in der Quelle

Idealerweise möchte ich Zeilen vor und nach \section, vor und nach vielen Umgebungen (Theorem, Auflisten, Aufzählen usw.), zwischen \items in einer Liste, vor und nach Anzeigemathematik und an mehreren anderen Stellen überspringen können. Das hilft mir, meinen Quellcode organisiert zu halten.

Leider hat Donald Knuth entschieden, dass eine übersprungene Zeile im Quellcode eine semantische Bedeutung haben sollte. Ich bin sicher, er hatte dafür gute Gründe, aber ich persönlich wäre viel glücklicher, wenn zum Starten eines neuen Absatzes ein \parBefehl erforderlich wäre.

Mir ist bewusst, dass die herkömmliche Lösung zur Codeorganisation darin besteht, %an den Anfang der aus nicht-semantischen Gründen übersprungenen Zeilen ein Symbol einzufügen.Ich finde jedoch, dass diese zusätzlichen %Symbole meinen Code überladen und weniger nützlich sind als einfach übersprungene Zeilen.


Die Frage:

An welchen Stellen (wenn überhaupt) können in einem herkömmlichen LaTeX-Dokument eine oder mehrere Zeilen übersprungen werden, ohne dass dies Auswirkungen auf die Ausgabe hat?Mir ist bewusst, dass keine Stelle vollkommen sicher sein kann, wenn Neudefinitionen zulässig sind. Gehen Sie daher davon aus, dass eine der Standard- oder AMS-Dokumentklassen verwendet wird, dass keine zusätzlichen Pakete geladen wurden und dass die einzigen Definitionen in der Präambel Theoremtypen definieren.

Eine weitere Einschränkung, um diese Frage zu unterscheiden vonWann kann ich bedenkenlos eine Leerzeile hinzufügen?:Gehen Sie davon aus, dass ich keine Ahnung habe, wie sich verschiedene Befehle und Umgebungen auf den vertikalen Modus auswirken.Wenn Sie so wollen, bitte ich in meiner Frage um eine (nicht notwendigerweise umfassende) Liste der Befehle/Umgebungen, die den vertikalen Modus so beeinflussen, dass eine übersprungene Zeile davor und/oder danach keine Auswirkung hat.

Antwort1

Die Antwort in der verlinkten Frage ist etwas irreführend, da der vertikale Modus ein technisches Implementierungsdetail ist, das nicht so eng mit dem Benutzerverhalten verknüpft ist, wie angedeutet. Beispielsweise befinden Sie sich nach einer Liste im vertikalen Modus, aber Latex unternimmt große Anstrengungen, um einer leeren Zeile eine Wirkung zu verleihen, sodass das Listenverhalten dem Anzeigemathematikverhalten entspricht (wo Sie sich nach der Anzeige im horizontalen Modus befinden).

Erstens ist das Verhalten nicht in TeX integriert, es hängt von den aktuellen Catcode-Einstellungen ab.

TeX entfernt alle Leerzeichen, einschließlich der systemabhängigen Zeilenendemarkierung aus jeder Zeile (dieser Teil istnichtanpassbar) Es fügt dann das ein, \endlinecharwenn das gesetzt ist. Normalerweise ist das in LaTeX ^M. Dann wird der Catcode von \endlinecharverwendet, als wäre es ein normales Zeichen in der Datei. Normalerweise ist es Catcode 5, der spezielle Catcode, der dafür sorgt, dass ein einzelnes ^M wie ein Leerzeichen wirkt, aber zwei ^M wie \par(einige Details weggelassen). Aber Sie könnten stattdessen ^M den Catcode 10 geben, wenn es wie ein Leerzeichen wirken würde, oder setzen, \endlinechar=32dann würde an jedem Zeilenende ein einzelnes Leerzeichen (und kein Zeilenende) generiert.

Bildbeschreibung hier eingeben

\documentclass{article}

\begin{document}\endlinechar=32

One two    three



four

five

\begin{itemize}

\item one

two \item

three

\end{itemize}

\end{document}

Wenn Sie dies jedoch nicht möchten und die Standardeinstellungen beibehalten möchten, sollte die Regel wirklich einfach sein: Verwenden Sie eine Leerzeile dort, wo der aktuelle Absatz enden soll.

Leere Zeilen sind also einFehlerim Mathematikmodus.

Leere Zeilen ergeben einen \par Absatzendemarker im vertikalen (par-Modus) (da jedoch ein \param Anfang einer vertikalen Liste ignoriert wird, ist es OK, eine leere Zeile am Anfang von usw. sowie nach jedem der Absätze zu \parboxhaben minipage,

Du solltestniemalsFügen Sie vor der Anzeigemathematik eine Leerzeile ein (TeX ist der Ansicht, dass Anzeigemathematik immer innerhalb eines Absatzes und nicht zwischen Absätzen stehen sollte. Wenn Sie also davor eine Leerzeile \[oder irgendetwas anderes verwenden, das $$intern verwendet wird, fügt TeX \indent$$als Wiederherstellungsaktion Code ein, der dem entspricht, und Sie erhalten eine falsche weiße Zeile, die aus einem Einrückungsfeld, aber keinem Text besteht, der wie ein falscher vertikaler Leerraum vor der Anzeige aussieht.

Ob nach einer Anzeige-Mathematikumgebung eine Leerzeile eingefügt werden soll oder nicht, hängt davon ab, ob der folgende Text ein neuer Absatz oder die Fortsetzung des Absatzes vor der Anzeige ist.

Wenn Sie vor oder nach einer Latex-Listenumgebung eine Leerzeile einfügen, beginnt der auf die Umgebung folgende Text einen neuen Absatz und wird daher normalerweise eingerückt. Wenn Sie vor oder nach der Liste keine Leerzeile einfügen, wird der folgende Text als Fortsetzung des Absatzes vor der Liste betrachtet.

Fast alle Latex-Konstrukte werden auf die gleiche Weise wie der Buchstabe positioniert X. Häufig wird gefragt, wie man eingefügte Bilder nebeneinander oder übereinander anordnen kann. Die Antwort lautet X:

X X

Setzt zwei X nebeneinander

X

X

stellt das Xeine über das andere in getrennten Absätzen. Sie können es Xdurch \includegraphicsoder \fboxoder \parboxoder ersetzen \begin{tabular}...\end{tabular}und es gilt die gleiche Interaktion mit einer Leerzeile.

Antwort2

Ich habe gelernt, meine Quellen zu organisieren, indem ich Zeilen nach Phrasen, also nach Satzzeichen, aufteile. Auf diese Weise besteht der Großteil der Bearbeitung darin, Zeilen umzuordnen. Texteditoren unterstützen dies normalerweise gut. Als Bonus arbeiten Versionskontrollsysteme auch auf der Grundlage geänderter Zeilen, sodass dies eine gute Übereinstimmung darstellt (z. B. führt das Hinzufügen eines Wortes nicht zu einem Dutzend Änderungen, weil Absätze neu ausgefüllt werden müssen; Änderungen sind leicht zu erkennen). Wenn z. B. Artikel und gebunden zusammengehalten werden, sind Fehler wie ein Hund oder der Fehler leicht zu erkennen (aus der Suche).

Ich schreibe Gleichungen meist auf die gleiche Weise, reihe die Gleichen aneinander (wenn es mehrere gibt), teile und rücke längere Terme ein, rücke lange Faktoren erneut ein und so weiter.

Zusammenfassend bemühe ich mich, die Quelle so einzurücken, wie Sie ein Programm mit sehr engen Rändern einrücken würden (LaTeX ist wesentlich ausführlicher als mathematische Ausdrücke, die beispielsweise in C geschrieben sind). Nur sehr selten führt der natürliche Leerraum in der Quelle zu unerwünschten Absatzumbrüchen, gelegentlich muss eine Zeile mit % beendet werden, um eine logische Trennung zu erreichen, die nicht zu unerwünschten Leerräumen führt.

In jedem Fall handelt es sich um Quellcode. Er ist für die Lektüre durch Menschen gedacht, nicht nur für den Autor. Alles, was nicht dem Standard entspricht, erschwert die Lesbarkeit des Dokuments, erschwert die Wiederverwendung oder Integration in andere Texte und macht es nahezu unmöglich, es mit anderen zu teilen.

verwandte Informationen