Zeilenumbruch: Unterschied zwischen den Versionen
K Textersetzung - „Man-Pages“ durch „Man-Page“ |
|||
(43 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Zeilenumbruch''' Markierung für das Ende einer [[Zeile]] in [[Textdatei]]en | |||
== Beschreibung == | == Beschreibung == | ||
Auf einer | ; Schreibmaschine | ||
Auf einer Schreibmaschine 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). | * [[Wagenrücklauf]] – Positionierung der Schreibstelle zum Zeilenanfang (ganz links). | ||
* [[Zeilenvorschub]] – Positionierung der Schreibstelle um eine Zeile nach unten. | * [[Zeilenvorschub]] – Positionierung der Schreibstelle um eine Zeile nach unten. | ||
Bei der Einführung der | ; Fernschreiber | ||
Bei der Einführung der Fernschreiber wurden verschiedene Steuerzeichen (Codierungen elektrischer Signale) eingeführt, um die Zeilenumbruchfunktion einer Schreibmaschine darzustellen. | |||
* Diese sind dann auch, durch ihre Verwendung als erste [[Ausgabegerät]]e der [[Informatik]], von der [[Fernmeldetechnik]] in die elektronische Datenverarbeitung übernommen worden. | |||
Reine [[Textdatei]]en auf dem Computer ähneln in ihrer Darstellung am | ; Textdateien | ||
Reine [[Textdatei]]en 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 [[Proportionalschrift]]en 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. | |||
; Steuerzeichen | |||
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. | 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. | ||
; Zeilenwechsel, Bindestriche, Leerzeichen | |||
* verhindern | |||
* erzwingen | |||
; mit | |||
* HTML | |||
* CSS | |||
; Zeilenumbruch an ungünstiger Stelle | |||
* Der Umbruch geschieht auch häufig vor Bindestrichen. | |||
* Der Rest des Wortes rutscht somit in die nächste Zeile. | |||
* Der Absatz sorgt für Verwirrung beim Lesen. | |||
; Manueller HTML Zeilenumbrüche oder Leerzeilen | |||
* Von der Grundidee her ist das Setzen manueller HTML Zeilenumbrüche oder Leerzeilen | |||
* vor allem, wenn es um moderne Webseiten angeht | |||
* etwas, das man eher vergessen sollte. | |||
* Denn schließlich möchte man ja, dass sich der Text je nach Breite des Displays anpasst. | |||
Es gibt allerdings Situationen, in denen ein manuelles Verhindern oder Erzwingen der Zeilenumbrüche durchaus Sinn machen kann | |||
* zusammenhängenden Titeln, | |||
* markanten Überschriften, | |||
* Trennungen von Namen oder | |||
* Wörtern mit Bindestrichen. | |||
== Codierung des Zeilenumbruchs == | == Codierung des Zeilenumbruchs == | ||
=== ASCII und EBCDIC === | === ASCII und EBCDIC === | ||
[[Datei:Newline hex 0A.png|mini|400px|Mit ''[[gedit]]'' unter Linux erstellte [[Textdatei]] in einem [[Hex-Editor]]. | [[Datei:Newline hex 0A.png|mini|400px|Mit ''[[gedit]]'' unter Linux erstellte [[Textdatei]] in einem [[Hex-Editor]]. Außer den Textobjekten sieht man nur die als <code>0A</code> codierten Zeilenvorschübe]] | ||
; Im [[American Standard Code for Information Interchange|ASCII]]-Zeichensatzes wurden zwei Zeichen reserviert | |||
* Das Steuerzeichen für den [[Zeilenvorschub]] ({{enS|line feed}}, kurz <code>LF</code>) ist als ASCII-Zeichen 10 (hexadezimal <code>0A</code>) kodiert. | |||
* Manche Systeme erlauben es, das <code>LF</code>-Zeichen mit der [[Tastenkombination]] {{Taste|[[Strg]]}}+{{Taste|J}} einzugeben. | |||
* Das Steuerzeichen für den [[Wagenrücklauf]] ({{enS|carriage return}}, kurz <code>CR</code>) ist als ASCII-Zeichen 13 (hexadezimal <code>0D</code>) kodiert. | |||
* Manche Systeme erlauben es, das <code>CR</code>-Zeichen mit der Tastenkombination {{Taste|Strg}}+{{Taste|M}} einzugeben. | |||
; Standards | |||
Explizite Codierung von Zeilenumbrüchen in Textdateien | |||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 27: | Zeile 62: | ||
![[Zeichensatz]] | ![[Zeichensatz]] | ||
![[Abkürzung]] | ![[Abkürzung]] | ||
!Code | !Code [[Hexadezimalsystem|Hex]] | ||
!Code | !Code [[Dezimalsystem|Dezimal]] | ||
![[Escape-Sequenz]] | ![[Escape-Sequenz]] | ||
|- | |- | ||
Zeile 58: | Zeile 93: | ||
|} | |} | ||
Auf [[International Business Machines|IBM]]-[[Großrechner]]n 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. | ; IBM-Großrechner | ||
Auf [[International Business Machines|IBM]]-[[Großrechner]]n 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. | |||
Bei Mac OS X finden sich aufgrund der weitgehenden Kompatibilität zum Vorgänger Mac OS noch einige Textformate, die <code>CR</code> statt <code>LF</code> als Zeilentrenner verwenden. Viele moderne Mac OS X-Programme können daher mit beiden Formaten in Textdateien umgehen. Bei der Verwendung von falsch deklarierten Dateien, die <code>CR | ; Mac OS X | ||
Bei Mac OS X finden sich aufgrund der weitgehenden Kompatibilität zum Vorgänger Mac OS noch einige Textformate, die <code>CR</code> statt <code>LF</code> als Zeilentrenner verwenden. | |||
* Viele moderne Mac OS X-Programme können daher mit beiden Formaten in Textdateien umgehen. | |||
* Bei der Verwendung von falsch deklarierten Dateien, die <code>CR LF</code> verwenden, führt dies bei einigen Programmen dazu, dass Zeilenumbrüche doppelt erzeugt werden. | |||
=== Unicode | ; Unix/Linux | ||
* Lediglich Dateien, die aus der [[Berkeley Software Distribution|BSD]]- bzw. [[Unix]]-Welt stammen, sind meist zwingend an <code>LF</code> als Zeilentrenner gebunden. | |||
=== Unicode === | |||
; Weitere Zeichen, die Zeilenumbruch markieren | |||
Für Unicode-Texte fordert der [[Unicode]]-Standard im [[Unicode-Zeilenumbruch-Algorithmus]] von Software, die unicodekonform sein soll, dass neben den oben genannten und in unicodekonformen Zeichenfolgen <code>CR</code>, <code>LF</code> und <code>CR LF</code> folgende weitere Zeichen als Zeilenumbrüche erkannt werden: | Für Unicode-Texte fordert der [[Unicode]]-Standard im [[Unicode-Zeilenumbruch-Algorithmus]] von Software, die unicodekonform sein soll, dass neben den oben genannten und in unicodekonformen Zeichenfolgen <code>CR</code>, <code>LF</code> und <code>CR LF</code> folgende weitere Zeichen als Zeilenumbrüche erkannt werden: | ||
Zeile 78: | Zeile 122: | ||
|} | |} | ||
=== Programmierung | === Programmierung === | ||
; Codierung des Umbruchs | |||
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. | 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 <code>printf()</code> bzw. <code>fprintf()</code> aus der ''[[Standard C Library]]'' zum Schreiben in Dateien. Die Escape-Sequenz <code>\n</code> (<code>LF</code>) steht in [[C (Programmiersprache)|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 <code>\n</code> in die auf dem jeweiligen System üblichen Steuerzeichen für den Zeilenumbruch. Somit erfolgt in unixartigen Betriebssystemen keine Umsetzung, da dort <code>LF</code> bereits für den Zeilenumbruch steht. Dagegen findet unter Windows eine Substitution durch <code style="white-space: nowrap">CR LF</code> statt. Die resultierenden Dateien sind folglich nicht identisch. Ist die Datei im Binärmodus geöffnet, erfolgt keine Übersetzung, sondern es wird stets ein <code>LF</code> in die Datei geschrieben. | ; Standard C Library | ||
Bekanntes Beispiel ist die Funktion <code>printf()</code> bzw. <code>fprintf()</code> aus der ''[[Standard C Library]]'' zum Schreiben in Dateien. | |||
* Die Escape-Sequenz <code>\n</code> (<code>LF</code>) steht in [[C (Programmiersprache)|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 <code>\n</code> in die auf dem jeweiligen System üblichen Steuerzeichen für den Zeilenumbruch. | |||
* Somit erfolgt in unixartigen Betriebssystemen keine Umsetzung, da dort <code>LF</code> bereits für den Zeilenumbruch steht. | |||
* Dagegen findet unter Windows eine Substitution durch <code style="white-space: nowrap">CR LF</code> statt. | |||
* Die resultierenden Dateien sind folglich nicht identisch. | |||
* Ist die Datei im Binärmodus geöffnet, erfolgt keine Übersetzung, sondern es wird stets ein <code>LF</code> in die Datei geschrieben. | |||
Bei [[Java (Programmiersprache)|Java]] stehen die Zeichenkonstanten (Escape-Sequenzen) <code>\n</code> und <code>\r</code> zur Verfügung; eine Umwandlung erfolgt nicht, stattdessen können mittels gesonderter Funktionen die plattformabhängigen Zeichen für den Zeilenumbruch eingefügt werden. Die neuere <code>printf</code>-Funktion kennt den Formatierungscode <code>%n</code>, um den plattformspezifischen Zeilentrenner auszugeben. Beim Einlesen ist die Java-Bibliothek tolerant und akzeptiert sowohl <code>CR</code>, <code>LF</code> als auch <code>CR | ; Java | ||
Bei [[Java (Programmiersprache)|Java]] stehen die Zeichenkonstanten (Escape-Sequenzen) <code>\n</code> und <code>\r</code> zur Verfügung; eine Umwandlung erfolgt nicht, stattdessen können mittels gesonderter Funktionen die plattformabhängigen Zeichen für den Zeilenumbruch eingefügt werden. | |||
* Die neuere <code>printf</code>-Funktion kennt den Formatierungscode <code>%n</code>, um den plattformspezifischen Zeilentrenner auszugeben. | |||
* Beim Einlesen ist die Java-Bibliothek tolerant und akzeptiert sowohl <code>CR</code>, <code>LF</code> als auch <code>CR LF</code> als Zeilenende für <code>readLine()</code>.<ref>[http://docs.oracle.com/javase/7/docs/api//java/io/BufferedReader.html#readLine() java.io.BufferedReader] Java-Dokumentation bei [[Oracle]]</ref> Wird eine [[EBCDIC]]-[[Codepage]] wie <code>Cp500</code> verwendet, so wird das Byte EBCDIC <code>NEL</code> (0x15) auf <code>LF</code> (U+000A) und nicht etwa <code>NEL</code> (U+0085) abgebildet. | |||
Auch andere Programmiersprachen wie [[Visual Basic .NET|Visual Basic]] oder [[Perl (Programmiersprache)|Perl]] stellen ähnliche Funktionalitäten zur Verfügung, um Textdateien korrekt zu verarbeiten. | Auch andere Programmiersprachen wie [[Visual Basic .NET|Visual Basic]] oder [[Perl (Programmiersprache)|Perl]] stellen ähnliche Funktionalitäten zur Verfügung, um Textdateien korrekt zu verarbeiten. | ||
Zahlreiche [[Netzwerkprotokoll]]e zur Übertragung von Text, z. B. HTTP, SMTP oder FTP, definieren die Sequenz <code>CR | ; Netzwerkprotokolle | ||
Zahlreiche [[Netzwerkprotokoll]]e zur Übertragung von Text, z. B. HTTP, SMTP oder FTP, definieren die Sequenz <code>CR LF</code> für einen Zeilenumbruch. | |||
* Einige Programme, z. B. ''[[Mail Transfer Agent]]s,'' sind strikt und verweigern sogar die Verarbeitung von Daten mit alleinstehenden LFs („Bare LF“).<ref>[http://cr.yp.to/docs/smtplf.html Bare LFs in SMTP]</ref> Andere Protokolle empfehlen jedoch, auch ein einzelnes <code>LF</code> als (ggf. weichen) Umbruch zu interpretieren. | |||
* In der W3C-Recommendation zu XML ist in Abschnitt 2.11<ref>[http://www.w3.org/TR/xml11/#sec-line-ends Extensible Markup Language (XML) 1.1 (Second Edition), W3C Recommendation 16 August 2006]</ref> definiert, wie Zeilenumbrüche zu handhaben sind. | |||
* In der Version 1.1 sind hier U+0085 und U+2028 hinzugekommen. | |||
=== Kennzeichnung nicht angegebener oder unerwünschter Zeilenumbrüche | === Textverarbeitung === | ||
; Neuer Absatz, neue Zeile, harter und weicher Zeilenumbruch | |||
Unterschieden wird in der [[Textformatierung]] der [[Textverarbeitung]]ssysteme zwischen einem ''Absatzwechsel'' und einem ''Zeilenwechsel,'' sowie zwischen ''hartem'' (manuellem) und ''weichem'' (automatischem) Zeilenumbruch. Die nachfolgend genannten Eingabemethoden und Steuerzeichen entsprechen den Konventionen verbreiteter Textverarbeitungsprogramme; abweichende Bedienung und Darstellung je nach System sind jedoch möglich. | |||
# Ein ''[[Absatz (Text)|Absatzwechsel]] (neuer Absatz)'' wird auch heute noch von vielen Anwendern als Zeilenumbruch verwendet. Die Eingabe erfolgt mit der Taste [[Eingabetaste|{{Taste|Enter}}/{{Taste|↵}}]], zur Bildschirmdarstellung des Steuerzeichens wird häufig «[[¶]]» ''(Absatzmarke, Pilcrow)'' verwendet. Bei aktuellen Textverarbeitungssystemen sollte diese Taste nur verwendet werden, wenn zusätzlich zum Zeilenumbruch auch eine geänderte [[Textformatierung|Absatzformatierung]] (z. B. durch Wechsel der Formatierungsvorlage), die automatische Einfügung eines Leerraums oder die Ausführung anderer ''[[Rich Text Format|Rich-Text]]''-Formatierungen gewünscht ist. Lediglich in Systemen ohne diese Fähigkeiten (reine Texteditoren, ''[[plaintext]]'') sollte die Eingabetaste zum einfachen Abschluss einer Zeile verwendet werden. [[Hypertext Markup Language|HTML]]-[[Tag (Informatik)|Tags]] für Anfang und Ende eines Absatzes sind <code><p></code> und <code></p></code> für ''paragraph.'' | |||
# Ein ''einfacher Zeilenumbruch (neue Zeile)'' dient dazu, eine neue Zeile zu beginnen, ohne die aktuelle Absatzformatierung zu unterbrechen, oder um Zeilenumbrüche in [[Tabelle]]n zu erzeugen (wo eine Zelle durch die Absatzmarke abgeschlossen werden würde). Das Steuerzeichen ist «↵», die Eingabe erfolgt je nach System mit [[Eingabetaste|{{Taste| ⇧ Shift}}+{{Taste|↵ Enter}}]] oder [[Eingabetaste|{{Taste| Strg}}+{{Taste|↵ Enter}}]]. Er wird ebenfalls in der Datei gespeichert. Das HTML-Tag ist <code><br></code> und für [[World Wide Web Consortium|W3C]]-gerechtes (''[[Validität|valides]]'') [[Extensible Hypertext Markup Language|XHTML]] ist <code><br /></code> für ''{{lang|en|(line) break}}''.<ref>[http://wiki.selfhtml.org/wiki/HTML/Textauszeichnung/br ''br''] im [[SELFHTML]]-Wiki</ref> | |||
# Ein ''harter Zeilenumbruch'' ({{enS|hard break}}) wird – soweit die Software Texte noch als Zeichenstrom abspeichert – am Ende der Vorzeile bzw. des vorigen Absatzes als Steuerzeichen „hart“ in die bearbeitete Datei geschrieben (wie unter Punkt 1. und 2. erläutert). | |||
# Ein ''weicher Zeilenumbruch'' ([[automatischer Zeilenumbruch]], {{enS|soft break}}) wird dagegen beim Darstellen des Textes durch die Software automatisch erzeugt und nicht in die Datei eingefügt. Die Software kann beim Überschreiten einer bestimmten Zeilenlänge, insbesondere aber der [[Fenster (Computer)|Fensterbreite]] das aktuelle Wort automatisch an den Anfang einer neuen Zeile platzieren ''(Word Wrap)''. So kann der Text komplett angezeigt werden, ohne dass der Benutzer horizontal scrollen muss. Der weiche Zeilenumbruch wird (– je nach System –) meist nicht in der Datei gespeichert. Der Benutzer wird von der Notwendigkeit befreit, die Zeilen manuell umbrechen zu müssen. Viele moderne [[Texteditor]]en besitzen eine Zeilenumbruchsfunktion, die den Absatz automatisch neu umbricht, wenn Wörter zusätzlich eingefügt oder entfernt werden. In der [[Webtypografie]] (HTML-Dokumente) ist dies standardmäßig voreingestellt. | |||
# Viele Programme bieten die Möglichkeit, geschützte Leerzeichen oder fakultative Trennstriche einzugeben, an denen kein automatischer Umbruch durchgeführt werden darf bzw. eine [[Worttrennung]] bevorzugt durchgeführt werden soll („weiches Trennzeichen“, d. h. der [[bedingter Trennstrich|bedingte Trennstrich]]) (wenn z. B. die Worttrennung im integrierten Wörterbuch fehlt). In [[Hypertext Markup Language|HTML]] existieren hierzu Formatierungsanweisungen (wie etwa <code><pre></code>) oder die Anweisung ''kein automatischer Zeilenumbruch'' in der Absatzformatierung (in [[Cascading Style Sheets|CSS]] <code>white-space:nowrap;</code> früher auch mit dem nicht standardisierten HTML-Tag <code><nobr></code>). | |||
Weitere Umbruchsituationen der Zeile ergeben sich sowohl beim Seitenwechsel ''([[Ganzseitenumbruch]])'' als auch beim [[Spaltensatz]] ''(Spaltenumbruch).'' | |||
Im Druckwesen wird das Umbrechen der Zeilen unter Berücksichtigung von Spalten und Seiten sowie um Bildelemente, Grafiken und Ähnliches ''[[Mettage]]'' genannt. In der elektronischen Datenverarbeitung übernimmt dies die [[Textverarbeitung]]ssoftware. Je leistungsfähiger letztere ist, desto schöner und lesbarer ist das Umbruchsbild. | |||
=== Korrekturzeichen === | |||
; Kennzeichnung nicht angegebener oder unerwünschter Zeilenumbrüche | |||
Ein typografischer Umbruch, der unterdrückt wird, wird etwa in Poesie[[zitat]]en bei Zeilenzitation verwendet: | Ein typografischer Umbruch, der unterdrückt wird, wird etwa in Poesie[[zitat]]en bei Zeilenzitation verwendet: | ||
{{Zitat|Ich saz ûf eime steine '''/''' und dahte bein mit beine, '''/''' dar ûf satzt ich den ellenbogen; […]|Walther von der Vogelweide}} | {{Zitat|Ich saz ûf eime steine '''/''' und dahte bein mit beine, '''/''' dar ûf satzt ich den ellenbogen; […]|Walther von der Vogelweide}} | ||
Damit ([[Virgel]]) werden etwa die Reime markiert, deutlichere Absätze wie [[Strophe]]n kann man dann mit «//» setzen. | Damit ([[Virgel]]) werden etwa die Reime markiert, deutlichere Absätze wie [[Strophe]]n kann man dann mit «//» setzen. | ||
Umgekehrt kann es in der elektronischen Textverarbeitung notwendig sein, einen entstehenden Zeilenumbruch als unerwünscht zu markieren. Das entsteht z. B. in Programmiersprachen, in denen der Umbruch ein Steuerzeichen ist, aber etwa auch bei der Angabe von [[Uniform Resource Locator|URLs]] (Webadressen). Hier verwendet man etwa «[[Underline|_]]» ''(underline),'' «[[Backslash|\]]» ''(backslash),'' je nachdem, was im jeweiligen Format nicht als Steuerzeichen anderweitig besetzt ist, oder auch das Zeichen wie «[[↩]]» (U+21A9). | Umgekehrt kann es in der elektronischen Textverarbeitung notwendig sein, einen entstehenden Zeilenumbruch als unerwünscht zu markieren. | ||
* Das entsteht z. B. in Programmiersprachen, in denen der Umbruch ein Steuerzeichen ist, aber etwa auch bei der Angabe von [[Uniform Resource Locator|URLs]] (Webadressen). | |||
* Hier verwendet man etwa «[[Underline|_]]» ''(underline),'' «[[Backslash|\]]» ''(backslash),'' je nachdem, was im jeweiligen Format nicht als Steuerzeichen anderweitig besetzt ist, oder auch das Zeichen wie «[[↩]]» (U+21A9). | |||
Das Zeichen «↩» ist hier eine printtypografische Anweisung „Umbruch ignorieren“ – bei [[Copy and paste]] der Textstelle etwa in die Adresszeile eines Browsers wird der Teil nach dem Zeilenumbruch von manchen Programmen ignoriert, andere fügen den Weblink wieder zusammen, dann müsste das Zeichen «↩» manuell entfernt werden – im rein elektronischen Medium ist das Zeichen eher störend. | Das Zeichen «↩» ist hier eine printtypografische Anweisung „Umbruch ignorieren“ – bei [[Copy and paste]] der Textstelle etwa in die Adresszeile eines Browsers wird der Teil nach dem Zeilenumbruch von manchen Programmen ignoriert, andere fügen den Weblink wieder zusammen, dann müsste das Zeichen «↩» manuell entfernt werden – im rein elektronischen Medium ist das Zeichen eher störend. | ||
Beim [[Korrekturlesen]] im Druckwesen verwendet man die [[Korrekturzeichen]] «[[Datei:Korrekturzeichen Absatz.svg|20px|rahmenlos]]» für fehlenden und «[[Datei:Korrekturzeichen Absatz anhängen.svg|20px|rahmenlos]]» für unerwünschten Absatz (‚Zeilenumbruch einfügen‘, bzw. ‚Zeilenumbruch entfernen‘, also ‚Absatz anhängen‘):<ref>''[http://www.mediaforum.ch/fachlexikon/masse_und_normen/korrekturzeichen.html Korrekturzeichen.]'' mediaforum.ch</ref> | Beim [[Korrekturlesen]] im Druckwesen verwendet man die [[Korrekturzeichen]] «[[Datei:Korrekturzeichen Absatz.svg|20px|rahmenlos]]» für fehlenden und «[[Datei:Korrekturzeichen Absatz anhängen.svg|20px|rahmenlos]]» für unerwünschten Absatz (‚Zeilenumbruch einfügen‘, bzw. ‚Zeilenumbruch entfernen‘, also ‚Absatz anhängen‘):<ref>''[http://www.mediaforum.ch/fachlexikon/masse_und_normen/korrekturzeichen.html Korrekturzeichen.]'' mediaforum.ch</ref> | ||
: [[Datei:Korrekturlesen - Absatz.svg|300px|Text mit Korrekturzeichen]] | : [[Datei:Korrekturlesen - Absatz.svg|300px|Text mit Korrekturzeichen]] | ||
== Anwendungen == | == Anwendungen == | ||
Zeile 115: | Zeile 181: | ||
== Dokumentation == | == Dokumentation == | ||
=== RFC === | === RFC === | ||
=== Man- | === Man-Page === | ||
=== Info-Pages === | === Info-Pages === | ||
=== Siehe auch === | === Siehe auch === | ||
* [[Ausschließen (Bleisatz)]] | |||
* [[Hurenkind und Schusterjunge]] | |||
== Links == | == Links == | ||
=== Projekt-Homepage === | === Projekt-Homepage === | ||
=== Weblinks === | === Weblinks === | ||
[[Kategorie:Zeichenkodierung]] | |||
[[Kategorie:Steuerzeichen]] | [[Kategorie:Steuerzeichen]] | ||
[[Kategorie: | [[Kategorie:Office]] | ||
Aktuelle Version vom 6. November 2024, 13:04 Uhr
Zeilenumbruch Markierung für das Ende einer Zeile in Textdateien
Beschreibung
- Schreibmaschine
Auf einer Schreibmaschine 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.
- Fernschreiber
Bei der Einführung der Fernschreiber wurden verschiedene Steuerzeichen (Codierungen elektrischer Signale) eingeführt, um die Zeilenumbruchfunktion einer Schreibmaschine darzustellen.
- Diese sind dann auch, durch ihre Verwendung als erste Ausgabegeräte der Informatik, von der Fernmeldetechnik in die elektronische Datenverarbeitung übernommen worden.
- Textdateien
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.
- Steuerzeichen
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.
- Zeilenwechsel, Bindestriche, Leerzeichen
- verhindern
- erzwingen
- mit
- HTML
- CSS
- Zeilenumbruch an ungünstiger Stelle
- Der Umbruch geschieht auch häufig vor Bindestrichen.
- Der Rest des Wortes rutscht somit in die nächste Zeile.
- Der Absatz sorgt für Verwirrung beim Lesen.
- Manueller HTML Zeilenumbrüche oder Leerzeilen
- Von der Grundidee her ist das Setzen manueller HTML Zeilenumbrüche oder Leerzeilen
- vor allem, wenn es um moderne Webseiten angeht
- etwas, das man eher vergessen sollte.
- Denn schließlich möchte man ja, dass sich der Text je nach Breite des Displays anpasst.
Es gibt allerdings Situationen, in denen ein manuelles Verhindern oder Erzwingen der Zeilenumbrüche durchaus Sinn machen kann
- zusammenhängenden Titeln,
- markanten Überschriften,
- Trennungen von Namen oder
- Wörtern mit Bindestrichen.
Codierung des Zeilenumbruchs
ASCII und EBCDIC
- Im ASCII-Zeichensatzes wurden zwei Zeichen reserviert
- Das Steuerzeichen für den Zeilenvorschub (, kurz
LF
) ist als ASCII-Zeichen 10 (hexadezimal0A
) kodiert. - Manche Systeme erlauben es, das
LF
-Zeichen mit der Tastenkombination {{#if:trim|Strg}}+{{#if:trim|J}} einzugeben. - Das Steuerzeichen für den Wagenrücklauf (, kurz
CR
) ist als ASCII-Zeichen 13 (hexadezimal0D
) kodiert. - Manche Systeme erlauben es, das
CR
-Zeichen mit der Tastenkombination {{#if:trim|Strg}}+{{#if:trim|M}} einzugeben.
- Standards
Explizite Codierung von Zeilenumbrüchen in Textdateien
Betriebssystem | Zeichensatz | Abkürzung | Code Hex | Code Dezimal | Escape-Sequenz |
---|---|---|---|---|---|
Unix, Linux, Android, macOS, 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 Classic, Apple II, C64 | CR | 0D | 13 | \r | |
AIX OS & OS/390 | EBCDIC | NL | 15 | 21 | \025 |
- IBM-Großrechner
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.
- Mac OS X
Bei Mac OS X finden sich aufgrund der weitgehenden Kompatibilität zum Vorgänger Mac OS noch einige Textformate, die CR
statt LF
als Zeilentrenner verwenden.
- Viele moderne Mac OS X-Programme können daher mit beiden Formaten in Textdateien umgehen.
- Bei der Verwendung von falsch deklarierten Dateien, die
CR LF
verwenden, führt dies bei einigen Programmen dazu, dass Zeilenumbrüche doppelt erzeugt werden.
- Unix/Linux
- Lediglich Dateien, die aus der BSD- bzw. Unix-Welt stammen, sind meist zwingend an
LF
als Zeilentrenner gebunden.
Unicode
- Weitere Zeichen, die Zeilenumbruch markieren
Für Unicode-Texte fordert der Unicode-Standard im Unicode-Zeilenumbruch-Algorithmus von Software, die unicodekonform sein soll, dass neben den oben genannten und in unicodekonformen Zeichenfolgen CR
, LF
und CR LF
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 | Next Line | Nächste Zeile | U+0085 |
LS | Line Separator | Zeilentrenner | U+2028 |
PS | Paragraph Separator | Absatztrenner | U+2029 |
Programmierung
- Codierung des Umbruchs
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.
- Standard C Library
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 Betriebssystemen 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.
- Java
Bei Java stehen die Zeichenkonstanten (Escape-Sequenzen) \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.
- Die neuere
printf
-Funktion kennt den Formatierungscode%n
, um den plattformspezifischen Zeilentrenner auszugeben. - Beim Einlesen ist die Java-Bibliothek tolerant und akzeptiert sowohl
CR
,LF
als auchCR LF
als Zeilenende fürreadLine()
.[1] Wird eine EBCDIC-Codepage wieCp500
verwendet, so wird das Byte EBCDICNEL
(0x15) aufLF
(U+000A) und nicht etwaNEL
(U+0085) abgebildet.
Auch andere Programmiersprachen wie Visual Basic oder Perl stellen ähnliche Funktionalitäten zur Verfügung, um Textdateien korrekt zu verarbeiten.
- Netzwerkprotokolle
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. - In der W3C-Recommendation zu XML ist in Abschnitt 2.11[3] definiert, wie Zeilenumbrüche zu handhaben sind.
- In der Version 1.1 sind hier U+0085 und U+2028 hinzugekommen.
Textverarbeitung
- Neuer Absatz, neue Zeile, harter und weicher Zeilenumbruch
Unterschieden wird in der Textformatierung der Textverarbeitungssysteme zwischen einem Absatzwechsel und einem Zeilenwechsel, sowie zwischen hartem (manuellem) und weichem (automatischem) Zeilenumbruch. Die nachfolgend genannten Eingabemethoden und Steuerzeichen entsprechen den Konventionen verbreiteter Textverarbeitungsprogramme; abweichende Bedienung und Darstellung je nach System sind jedoch möglich.
- Ein Absatzwechsel (neuer Absatz) wird auch heute noch von vielen Anwendern als Zeilenumbruch verwendet. Die Eingabe erfolgt mit der Taste {{#if:trim|Enter}}/{{#if:trim|↵}}, zur Bildschirmdarstellung des Steuerzeichens wird häufig «¶» (Absatzmarke, Pilcrow) verwendet. Bei aktuellen Textverarbeitungssystemen sollte diese Taste nur verwendet werden, wenn zusätzlich zum Zeilenumbruch auch eine geänderte Absatzformatierung (z. B. durch Wechsel der Formatierungsvorlage), die automatische Einfügung eines Leerraums oder die Ausführung anderer Rich-Text-Formatierungen gewünscht ist. Lediglich in Systemen ohne diese Fähigkeiten (reine Texteditoren, plaintext) sollte die Eingabetaste zum einfachen Abschluss einer Zeile verwendet werden. HTML-Tags für Anfang und Ende eines Absatzes sind
<p>
und</p>
für paragraph. - Ein einfacher Zeilenumbruch (neue Zeile) dient dazu, eine neue Zeile zu beginnen, ohne die aktuelle Absatzformatierung zu unterbrechen, oder um Zeilenumbrüche in Tabellen zu erzeugen (wo eine Zelle durch die Absatzmarke abgeschlossen werden würde). Das Steuerzeichen ist «↵», die Eingabe erfolgt je nach System mit {{#if:trim| ⇧ Shift}}+{{#if:trim|↵ Enter}} oder {{#if:trim| Strg}}+{{#if:trim|↵ Enter}}. Er wird ebenfalls in der Datei gespeichert. Das HTML-Tag ist
<br>
und für W3C-gerechtes (valides) XHTML ist<br />
für Vorlage:Lang.[4] - Ein harter Zeilenumbruch () wird – soweit die Software Texte noch als Zeichenstrom abspeichert – am Ende der Vorzeile bzw. des vorigen Absatzes als Steuerzeichen „hart“ in die bearbeitete Datei geschrieben (wie unter Punkt 1. und 2. erläutert).
- Ein weicher Zeilenumbruch (automatischer Zeilenumbruch, ) wird dagegen beim Darstellen des Textes durch die Software automatisch erzeugt und nicht in die Datei eingefügt. Die Software kann beim Überschreiten einer bestimmten Zeilenlänge, insbesondere aber der Fensterbreite das aktuelle Wort automatisch an den Anfang einer neuen Zeile platzieren (Word Wrap). So kann der Text komplett angezeigt werden, ohne dass der Benutzer horizontal scrollen muss. Der weiche Zeilenumbruch wird (– je nach System –) meist nicht in der Datei gespeichert. Der Benutzer wird von der Notwendigkeit befreit, die Zeilen manuell umbrechen zu müssen. Viele moderne Texteditoren besitzen eine Zeilenumbruchsfunktion, die den Absatz automatisch neu umbricht, wenn Wörter zusätzlich eingefügt oder entfernt werden. In der Webtypografie (HTML-Dokumente) ist dies standardmäßig voreingestellt.
- Viele Programme bieten die Möglichkeit, geschützte Leerzeichen oder fakultative Trennstriche einzugeben, an denen kein automatischer Umbruch durchgeführt werden darf bzw. eine Worttrennung bevorzugt durchgeführt werden soll („weiches Trennzeichen“, d. h. der bedingte Trennstrich) (wenn z. B. die Worttrennung im integrierten Wörterbuch fehlt). In HTML existieren hierzu Formatierungsanweisungen (wie etwa
<pre>
) oder die Anweisung kein automatischer Zeilenumbruch in der Absatzformatierung (in CSSwhite-space:nowrap;
früher auch mit dem nicht standardisierten HTML-Tag<nobr>
).
Weitere Umbruchsituationen der Zeile ergeben sich sowohl beim Seitenwechsel (Ganzseitenumbruch) als auch beim Spaltensatz (Spaltenumbruch).
Im Druckwesen wird das Umbrechen der Zeilen unter Berücksichtigung von Spalten und Seiten sowie um Bildelemente, Grafiken und Ähnliches Mettage genannt. In der elektronischen Datenverarbeitung übernimmt dies die Textverarbeitungssoftware. Je leistungsfähiger letztere ist, desto schöner und lesbarer ist das Umbruchsbild.
Korrekturzeichen
- Kennzeichnung nicht angegebener oder unerwünschter Zeilenumbrüche
Ein typografischer Umbruch, der unterdrückt wird, wird etwa in Poesiezitaten bei Zeilenzitation verwendet: Vorlage:Zitat Damit (Virgel) werden etwa die Reime markiert, deutlichere Absätze wie Strophen kann man dann mit «//» setzen.
Umgekehrt kann es in der elektronischen Textverarbeitung notwendig sein, einen entstehenden Zeilenumbruch als unerwünscht zu markieren.
- Das entsteht z. B. in Programmiersprachen, in denen der Umbruch ein Steuerzeichen ist, aber etwa auch bei der Angabe von URLs (Webadressen).
- Hier verwendet man etwa «_» (underline), «\» (backslash), je nachdem, was im jeweiligen Format nicht als Steuerzeichen anderweitig besetzt ist, oder auch das Zeichen wie «↩» (U+21A9).
Das Zeichen «↩» ist hier eine printtypografische Anweisung „Umbruch ignorieren“ – bei Copy and paste der Textstelle etwa in die Adresszeile eines Browsers wird der Teil nach dem Zeilenumbruch von manchen Programmen ignoriert, andere fügen den Weblink wieder zusammen, dann müsste das Zeichen «↩» manuell entfernt werden – im rein elektronischen Medium ist das Zeichen eher störend.
Beim Korrekturlesen im Druckwesen verwendet man die Korrekturzeichen «» für fehlenden und «» für unerwünschten Absatz (‚Zeilenumbruch einfügen‘, bzw. ‚Zeilenumbruch entfernen‘, also ‚Absatz anhängen‘):[5]
Anwendungen
Sicherheit
Dokumentation
RFC
Man-Page
Info-Pages
Siehe auch
Links
Projekt-Homepage
Weblinks
- ↑ java.io.BufferedReader Java-Dokumentation bei Oracle
- ↑ Bare LFs in SMTP
- ↑ Extensible Markup Language (XML) 1.1 (Second Edition), W3C Recommendation 16 August 2006
- ↑ br im SELFHTML-Wiki
- ↑ Korrekturzeichen. mediaforum.ch