Eine LaTeX-Quelldatei ist gewöhnlicher Fließtext, in den Befehle eingebettet sind. Befehle, Leerraum und Kommentare folgen wenigen Regeln; wer sie früh verinnerlicht, vermeidet viele kleine Überraschungen. Warum verschluckt \LaTeX is das Leerzeichen? Warum beginnt zweimal Enter einen neuen Absatz? Diese Seite fasst die Mechanik zusammen.
Text und Befehle
Der größte Teil einer Quelldatei ist Fließtext: gewöhnliche Zeichen, die so gesetzt werden, wie sie dastehen. Schreiben Sie Hello, erscheint Hello. Ein Befehl dagegen ist eine Anweisung an den Satz, etwa Zeilenumbruch, Überschrift oder Schriftwechsel, und beginnt immer mit einem Backslash \ (der in manchen japanischen Umgebungen als Yen-Zeichen ¥ erscheinen kann). \LaTeX bedeutet das Logo, \newpage einen Seitenumbruch; beides wird nicht als wörtlicher Text gedruckt.
Der Name nach dem Backslash heißt Kontrollsequenz; es gibt zwei Arten. Ein Kontrollwort ist \, gefolgt von nur Buchstaben (A–Z, a–z). Ein Kontrollsymbol ist \, gefolgt von einem einzelnen Nichtbuchstaben. \section, \LaTeX und \newpage sind also Kontrollwörter, \$, \%, \& und \ (Backslash-Leerzeichen) Kontrollsymbole. Sie unterscheiden sich nicht nur darin, wie ihre Namen enden, sondern auch darin, wie sie das folgende Leerzeichen behandeln (nächster Abschnitt).
Warum ist diese Unterscheidung wichtig? Der Name eines Kontrollworts endet automatisch beim ersten Nichtbuchstaben. \LaTeXlogo wird daher als ein einzelner, meist undefinierter Befehl namens \LaTeXlogo gelesen. Soll der Name bei \LaTeX enden, muss ein Nichtbuchstabe folgen: Leerzeichen, Symbol oder {}. Ein Kontrollsymbol ist genau ein Zeichen lang und hat dieses Problem nicht: \$5 wird sauber als Dollarzeichen gefolgt von 5 gelesen.
Kontrollwörter verschlucken das folgende Leerzeichen
Das ist die größte Falle. Jeder Leerraum direkt nach einem Kontrollwort, also Leerzeichen, Tabs und Zeilenumbrüche, wird verworfen. Er dient nur dazu, den Namen abzugrenzen, erzeugt aber keinen Abstand in der Ausgabe. \LaTeX is great verliert daher das Leerzeichen zwischen \LaTeX und is; es entsteht „LaTeXis great“.
Es gibt drei übliche Korrekturen. (1) Leere Klammern: \LaTeX{} is; {} beendet den Namen, und das normale Leerzeichen bleibt erhalten. (2) Kontrollleerzeichen: \LaTeX\ is; \ (Backslash plus Leerzeichen) erzwingt genau einen normalen Wortzwischenraum. (3) Den Befehl in Klammern setzen: {\LaTeX} is. Alle drei ergeben „LaTeX is“. Im Zweifel ist {} die robuste Wahl, denn es funktioniert sowohl vor einem Leerzeichen als auch vor einem anderen Nichtbuchstaben.
% 制御語の直後の空白は消える / The space after a control word vanishes:
\LaTeX is great % → LaTeXis great (まちがい / wrong)
% 直し方 / The fixes — all give “LaTeX is great”:
\LaTeX{} is great
\LaTeX\ is great
{\LaTeX} is greatDagegen verschluckt ein Kontrollsymbol das folgende Leerzeichen nicht; das Leerzeichen nach \$ bleibt als normaler Wortabstand erhalten. Das Kontrollleerzeichen \ wird außerdem nach Punkten in Abkürzungen verwendet, etwa Prof.\ Smith oder et al.\ (1993). Da LaTeX nach einem satzbeendenden Punkt standardmäßig etwas mehr Abstand setzt, sagt \ : „Das ist kein Satzende“, und hält den Wortabstand gleichmäßig.
Argumente und Gruppierung mit Klammern
Viele Befehle nehmen Argumente, und es gibt zwei Arten: geschweifte Klammern { } umschließen ein Pflichtargument, eckige Klammern [ ] ein optionales Argument. In \section{Introduction} ist {Introduction} der erforderliche Überschriftentext; in \documentclass[12pt]{article} ist [12pt] optional und {article} der Pflichtname der Klasse. Die übliche Form ist \command[options]{required}.
Geschweifte Klammern { } haben noch eine zweite Aufgabe: Gruppierung, also das Begrenzen des Gültigkeitsbereichs einer Deklaration. Deklarative Befehle für Schrift oder Größe, etwa \bfseries (fett), \itshape (kursiv), \large (größer), nehmen kein Argument, sondern wirken „ab hier“. Setzt man sie in Klammern, bleibt die Wirkung auf diese Gruppe beschränkt: {\bfseries bold} normal macht nur „bold“ fett, und das schließende } stellt die vorige Einstellung wieder her.
\section{はじめに} % 必須引数 / mandatory argument
\documentclass[12pt]{article} % [オプション]{必須} / [optional]{required}
{\bfseries 太字になる} ここは普通 % {} で効果を閉じ込める / braces limit the scope
{\bfseries bold here} back to normalInnen und außen einer Gruppe sind unabhängig; eine optische Änderung läuft daher nicht in unbeabsichtigte Bereiche aus. Das ist dieselbe Idee wie bei Umgebungen (\begin{...}...\end{...}): Auch ein \begin-\end-Paar bildet eine Gruppe. Umgebungen werden auf einer eigenen Seite ausführlich behandelt.
Leerzeichen, Zeilenumbrüche und Leerzeilen
Leerraum folgt eigenen Regeln, die das Aussehen der Quelle von der Ausgabe trennen. Erstens werden aufeinanderfolgende Leerzeichen oder Tabs zu einem einzigen Wortzwischenraum zusammengefasst; ein Leerzeichen oder zehn zwischen Wörtern ergeben dasselbe Ergebnis. Zweitens wird ein einzelner Zeilenumbruch in der Quelle nur als Leerzeichen behandelt. Wo Sie die Quelle umbrechen, entscheidet nicht über den endgültigen Zeilenumbruch; LaTeX setzt die Zeilen selbst, also dürfen Sie die Quelle auf lesbare Breite umbrechen.
Wie beginnt man also einen neuen Absatz? Mit einer Leerzeile: Eine leere Zeile markiert einen Absatzumbruch. Zwei oder mehr aufeinanderfolgende Leerzeilen bewirken dasselbe wie eine: genau einen Absatzumbruch. Umgekehrt beginnt ein bloßer Zeilenumbruch in der Quelle *keinen* neuen Absatz. Feinere Kontrolle über Zeilen- und Absatzumbrüche, etwa erzwungene Umbrüche mit \\, wird auf der Seite zu Zeilen- und Absatzumbrüchen behandelt.
これらの 余分な空白は 1 つにまとめられ、
この改行も空白 1 つになります。
空行をはさむと、ここから新しい段落が始まります。Manchmal soll ein Wortzwischenraum genau an einer bestimmten Stelle stehen. Der klassische Fall ist die Tilde ~: ein nicht umbrechbares Leerzeichen, das man dort einfügt, wo die Zeile nicht zwischen den Teilen brechen darf, etwa Fig.~\ref{fig:1}, Chapter~12 oder Donald~E. Knuth. Es ist so breit wie ein normaler Wortabstand, aber dort ist kein Zeilenumbruch möglich. Das Kontrollleerzeichen \ erzwingt wie oben einen normal breiten Abstand; im Mathematikmodus erlaubt \, (thin space, 3/18 Geviert) eine Feinjustierung.
Kommentare
Ein Prozentzeichen % beginnt einen Kommentar, der bis zum Ende der Zeile läuft und beim Kompilieren vollständig ignoriert wird. Da er nicht in der Ausgabe erscheint, eignet er sich für Notizen in der Quelle oder zum vorübergehenden Deaktivieren („Auskommentieren“) eines Befehls. Ein Kommentar reicht nicht nur bis ans Zeilenende; er verschluckt auch den Zeilenumbruch dieser Zeile und etwaige Leerzeichen am Ende. Das ist ein nützlicher Trick.
Denken Sie daran: Ein Zeilenumbruch in der Quelle wird zu einem Leerzeichen. Wenn ein langes Wort in der Quelle über mehrere Zeilen verteilt werden soll, ohne an der Trennstelle ein zusätzliches Leerzeichen einzufügen, setzen Sie ans Zeilenende %: Der Zeilenumbruch verschwindet, und die nächste Zeile schließt ohne Abstand an. Derselbe Trick verhindert unerwünschte Leerzeichen, wenn ein Befehl über mehrere Zeilen verteilt wird.
これは行末コメント % ここから行末まで(と改行)が無視される / ignored to end of line
超長い%
単語 % → 「超長い単語」 % で改行を消してつなぐ / % joins the lines, no space
割引率は 100\% です。 % 文字としての % は \% と書く / a literal percent is \%Beachten Sie: % ist selbst ein Sonderzeichen. Ein wörtliches Prozentzeichen schreibt man daher als \%; da \% ein Kontrollsymbol ist, verschluckt es das folgende Leerzeichen nicht. Die vollständige Übersicht der Sonderzeichen steht auf der Sonderzeichen-Seite.
Um mehrere Zeilen auf einmal zu deaktivieren, statt jede mit % zu beginnen, gibt es zwei Möglichkeiten. Man kann den Block in die vom Paket verbatim (oder vom Paket comment) bereitgestellte comment-Umgebung einschließen: \begin{comment} … \end{comment}. Oder man verwendet die TeX-Bedingung \iffalse … \fi. Letzteres braucht kein zusätzliches Paket und kommentiert einen ganzen Block auf einmal aus.
\usepackage{verbatim} % プリアンブルで / in the preamble
\begin{comment}
このブロックは丸ごと無視される。
This whole block is ignored.
\end{comment}
\iffalse
下書きのコードもパッケージ無しで一括コメントアウト。
Draft code, commented out with no package needed.
\fiGewohnheiten für das erste Manuskript
Syntax lernt man leichter durch robuste Gewohnheiten als durch Auswendiglernen jeder Regel. Setzen Sie {} nach ein Kontrollwort, wenn Buchstaben folgen; fassen Sie semantische Einheiten in {...} zusammen; und verteilen Sie lange Einstellungen mit Kommentaren auf lesbare Zeilen, statt alles in eine Zeile zu pressen. Diese drei Gewohnheiten vermeiden viele Anfangsprobleme: verschwindende Leerzeichen, falsche Argumente und unklare Gültigkeitsbereiche.
% 命令名の後ろに英字が続くなら {} で区切る
\LaTeX{} users write source, then compile it.
% 長い設定は意味ごとに分け、行末コメントで不要な空白を消す
\newcommand{\courseTitle}{%
Advanced Topics in \LaTeX%
}Kommentare sind nützlich, aber in der Praxis sollte man große verworfene Textblöcke nicht dauerhaft auskommentiert in der Arbeitsdatei lassen. Alte Fassungen gehören in Git oder ein anderes Verlaufssystem; die aktuelle .tex sollte sich auf das konzentrieren, was jetzt gesetzt werden soll. Dann passen Fehlerzeilennummern zum echten Manuskript, was das Debugging kurz vor der Abgabe beschleunigt.
Lesereihenfolge für fehlerhafte Quellen
Wenn ein Fehler auftritt, lesen Sie die Quelle in den syntaktischen Einheiten von LaTeX, statt die ganze Datei von vorn zu durchsuchen. Prüfen Sie kurz vor der gemeldeten Zeile, ob ein Kontrollwort nachfolgende Buchstaben verschluckt hat und ob Pflichtargumente {...} sowie optionale Argumente [...] ausgeglichen sind. Danach betrachten Sie %: Hat ein Zeilenendkommentar ein benötigtes Leerzeichen entfernt, oder fehlt \%, wo ein wörtliches Prozentzeichen gemeint war?
| Symptom | Erster Verdacht | Korrektur |
|---|---|---|
run-together | Wörter kleben nach Logo oder Befehl zusammen | Mit {} abgrenzen, z. B. \LaTeX{} users |
wrong-argument | Der Bereich einer Überschrift oder eines Befehls reicht zu weit | { und } um eine semantische Einheit paaren |
comment-gap | An einem Quellzeilenumbruch verschwindet oder erscheint ein Leerzeichen | Bewusst zwischen Zeilenend-% und normalem Umbruch wählen |