Zeilenumbruch
Der Begriff Zeilenumbruch oder Absatz stammt aus dem Schriftsatz und gibt an, an welcher Stelle ein Text von einer Zeile in die nächste übergehen soll.
Inhaltsverzeichnis |
Allgemeines
Auf einer Schreibmaschine etwa wird der Zeilenumbruch explizit durch Betätigen einer Taste oder eines Hebels durchgeführt. Dabei werden zwei Funktionen ausgeführt:
- Wagenrücklauf – Positionierung der Schreibstelle zum Zeilenanfang (ganz links).
- Zeilenvorschub – Positionierung der Schreibstelle um eine Zeile nach unten
Bei der Einführung der Fernschreiber wurden verschiedene Steuerzeichen (Codierungen elektrischer Signale) eingeführt, um die Zeilenumbruchfunktion einer Schreibmaschine darstellen. Diese sind dann auch, durch ihre Verwendung als erste Ausgabegeräte des Computerwesens, vom Fernmeldewesen in die elektronische Datenverarbeitung übernommen worden.
Reine Textdateien auf dem Computer ähneln in ihrer Darstellung am Bildschirm anfangs einem auf einer Schreibmaschine geschriebenen Text, die Steuerzeichen sind für den Benutzer im Allgemeinen unsichtbar. Mit dem Scrollbalken geht der Zusammenhang zwischen Bildschirmbreite und Zeilenlänge verloren, mit den Proportionalschriften der zwischen Zeichenanzahl und Zeilenlänge. Ausführliche Funktionen haben die Zeichen für den Zeilenumbruch dann erst in der Textauszeichnung (Rich Text Format und ähnliches) bekommen.
Weil die Steuerzeichen noch in den Anfangsphasen der Computertechnik spezifiziert wurden, sind sie mit ihrer Funktionsänderung bis heute eine der großen Inkompatibilitäten zwischen verschiedenen Betriebssystem- und Anwendungssoftwaresystemen.
Codierung des Zeilenumbruch in ASCII
Bei der Entwicklung des ASCII-Zeichensatzes wurden daher zwei Zeichen reserviert, die genau
- Das Steuerzeichen für den Zeilenvorschub (englisch line feed, kurz
LF) ist als ASCII-Zeichen 10 (hexadezimal0A) kodiert. Manche Systeme erlauben es, das LF-Zeichen mit der Tastenkombination Strg + J einzugeben. - Das Steuerzeichen für den Wagenrücklauf (englisch carriage return, kurz
CR) ist als ASCII-Zeichen 13 (hexadezimal0D) kodiert. Manche Systeme erlauben es, das CR-Zeichen mit der Tastenkombination Strg + M einzugeben.
Es existieren verschiedene Standards, um den Zeilenumbruch in einer Textdatei explizit zu kodieren:
| Betriebssystem | Zeichensatz | Abkürzung | Code Hex | Code Dezimal | Escape-Sequenz |
|---|---|---|---|---|---|
| Unix, Linux, Mac OS X, AmigaOS, BSD, weitere | ASCII | LF | 0A | 10 | \n |
| Windows, DOS, OS/2, CP/M, TOS (Atari) | CR LF | 0D 0A | 13 10 | \r\n | |
| Mac OS bis Version 9, Apple II | CR | 0D | 13 | \r | |
| AIX OS & OS/390 | EBCDIC | NEL | 15 | 21 |
Auf IBM-Großrechnern ist der Zeilenumbruch in den Dateien kein Steuerzeichen. Vielmehr wird die Zeilenlänge im DCB (Recordformat F oder FB) beziehungsweise in einem Längenfeld am Zeilenanfang (Recordformat V oder VB) gespeichert.
Um Dateien zwischen dem Windows- und dem Unix-Format zu konvertieren, existiert unter anderem das Kommandozeilenprogramm dos2unix (bzw. unix2dos).
Unicode: weitere Zeichen, die Zeilenumbruch markieren
Für Unicode-Texte fordert der Unicode-Standard von Software, die Unicode-konform sein will, dass neben den oben genannten und in Unicode-konformen Zeichenfolgen CR, LF und CRLF folgende weitere Zeichen als Zeilenumbrüche erkannt werden:
| Abkürzung | englische Bezeichnung | deutsche Bezeichnung | Codepoint |
|---|---|---|---|
| FF | Form Feed | Seitenvorschub (mit zwangsläufigem Umbruch der Zeile) | U+000C |
| NEL | New Line | Neue Zeile | U+0085 |
| LS | Line Separator | Zeilentrenner | U+2028 |
| PS | Paragraph Separator | Absatztrenner | U+2029 |
Textverarbeitung: Harter, weicher und automatischer Zeilenumbruch
Unterschieden wird in der Textformatierung der Textverarbeitungssysteme zwischen einem harten, einem weichen (die beiden manuellen Zeilenumbrüche), und dem automatischen Zeilenumbruch.
- Der eigentlich dem klassischen Absatz entsprechende Umbruch ist der Absatzumbruch, mit dem Steuerzeichen «¶» (Absatzmarke, Pilcrow). Sie markiert den Abschluss einer Zeile in einfachen Texten (plaintext), eines klassischen Absatzes in komplex formatierten (rich text) Schriftwerken – Eingabe erfolgt mit Enter/↵. Beim harten Zeilenumbruch wird am Ende der Vorzeile das beschriebene Steuerzeichen eingefügt, so dass der Zeilenumbruch „hart“ in die bearbeitete Datei geschrieben wird.
- Der weiche Zeilenumbruch ist ein erzwungener Zeilenneubeginn ohne Absatzmarke, das Steuerzeichen ist «↵», die Eingabe erfolgt mit ⇧ Shift+↵ Enter. Der weiche Umbruch dient dazu, eine neue Zeile zu beginnen, ohne die Absatzformatierung zu unterbrechen, oder um Zeilenumbrüche in Tabellen zu erzeugen, wo eine Zelle durch die Absatzmarke abgeschlossen wird. Er wird ebenfalls in der Datei gespeichert.
- Automatischer Zeilenumbruch, die beim Überschreiten einer bestimmten Zeilenlänge, insbesondere aber der Fensterbreite das aktuelle Wort automatisch an den Anfang einer neuen Zeile platzieren, damit der Text komplett angezeigt werden kann, ohne dass der Benutzer horizontal scrollen muss. Der weiche Zeilenumbruch erfolgt nur auf dem Bildschirm, wird jedoch nicht in der Datei gespeichert, und kann auch nicht als solcher eingegeben werden. Hierdurch wird der Benutzer von der Notwendigkeit, die Zeilen manuell umzubrechen, befreit. Viele moderne Texteditoren besitzen eine automatische Zeilenumbruchsfunktion (dadurch wird vermieden, dass er den gesamten Absatz neu umbrechen muss, wenn er nur ein Wort zusätzlich einfügt), in der Webtypographie (HTML-Dokumente) ist sie standardmäßig voreingestellt. Der automatische Zeilumbruch erfolgt immer bis zum nächsten Absatzumbruch, kann durch den weichen Umbruch erzwungen werden, oder muss durch besondere Formatierungsanweisungen (wie etwa
<pre>in HTML, oder die Anweisung kein automatischer Zeilenumbruch in der Absatzformatierung) ausdrücklich ausgesetzt werden.
Weitere Umbruchsituationen der Zeile ergeben sich sowohl im Seitenwechsel, als auch im Spaltensatz (Spaltenumbruch).
Programmierung: Codierung mit CR und LF
Durch die verschiedenen Konventionen zum Kodieren der Formen des Zeilenumbruchs auf Computersystemen, die bei der Übernahme der Fernschreib/Schreibmaschinen-Konventionen in die elektronische Textverarbeitung entstanden, treten beim Austausch zwischen unterschiedlichen Systemen Probleme auf.
Bekanntes Beispiel ist die Funktion printf() bzw. fprintf() aus der Standard C Library zum Schreiben in Dateien. Die Escape-Sequenz \n (LF) steht in C für einen Zeilenumbruch. Beim Schreiben in Dateien wird in C zwischen Textmodus und Binärmodus unterschieden. Bei im Textmodus geöffneten Dateien erfolgt eine Übersetzung von \n in die auf dem jeweiligen System üblichen Steuerzeichen für den Zeilenumbruch. Somit erfolgt in unixartigen Betriebssystem keine Umsetzung, da dort LF bereits für den Zeilenumbruch steht. Dagegen findet unter Windows eine Substitution durch CR LF statt. Die resultierenden Dateien sind folglich nicht identisch. Ist die Datei im Binärmodus geöffnet, erfolgt keine Übersetzung, sondern es wird stets ein LF in die Datei geschrieben.
Bei Java stehen die Escapesequenzen \n und \r zur Verfügung; eine Umwandlung erfolgt nicht, stattdessen können mittels gesonderter Funktionen die plattformabhängigen Zeichen für den Zeilenumbruch eingefügt werden. Beim Einlesen ist die Java-Bibliothek tolerant und akzeptiert sowohl CR, LF als auch CR+LF als Zeilenende.[1] Auch andere Programmiersprachen wie Visual Basic oder Perl stellen ähnliche Funktionalitäten zur Verfügung, um Textdateien korrekt zu verarbeiten.
Zahlreiche Netzwerkprotokolle zur Übertragung von Text, z. B. HTTP, SMTP oder FTP, definieren die Sequenz CR+LF für einen Zeilenumbruch. Einige Programme, z. B. Mail Transfer Agents, sind strikt und verweigern sogar die Verarbeitung von Daten mit alleinstehenden LFs (”Bare LF”).[2] Andere Protokolle empfehlen jedoch, auch ein einzelnes LF als (ggf. weichen) Umbruch zu interpretieren.
Siehe auch
Einzelnachweise
Hinweise zum Konvertieren verschiedener Zeilenumbrüche
unter GFDL. Hier können Sie den
und die Liste der