MAN-PAGES(7) | Linux-Programmierhandbuch | MAN-PAGES(7) |
man-pages - Konventionen für das Schreiben von Linux-Handbuchseiten
man [Abschnitt] Titel
Diese Seite beschreibt die Konventionen, die Sie einhalten sollten, wenn Sie Handbuchseiten für das Projekt »Linux man-pages« schreiben, das die vom Linux-Kernel und der GNU C-Bibliothek bereitgestellte API auf Anwendungsebene dokumentiert. Das Projekt pflegt die meisten Linux-Handbuchseiten des Abschnitts 2, viele der Seiten in den Abschnitten 3, 4 und 7 sowie einige Seiten in den Abschnitten 1, 5 und 8. Die hier beschriebenen Konventionen können auch für die Autoren der Handbuchseiten anderer Projekte von Nutzen sein.
Die Handbuchseiten sind traditionell in die folgenden Abschnitte eingeteilt:
Neue Handbuchseiten sollten das in man(7) beschriebene Paket an.tmac von groff verwenden. Diese Wahl dient vor allem der Konsistenz: die überwiegende Mehrheit der existierenden Linux-Handbuchseiten wird mit diesen Makros formatiert.
Bitte beschränken Sie die Zeilenlänge im Quelltext, wo immer möglich, auf nicht mehr als etwa 75 Zeichen. So werden Zeilenumbrüche durch verschiedene E-Mail-Clients vermieden, wenn Patches eingebettet eingereicht werden.
Der erste Befehl einer Handbuchseite sollte ein TH-Befehl sein:
Die Argumente dieses Befehls sind wie folgt:
Die folgende Liste enthält gebräuchliche und empfohlene Abschnitte. Die meisten Handbuchseiten sollten mindestens die hervorgehobenen Abschnitte enthalten. Gliedern Sie eine neue Handbuchseite so, dass die Abschnitte in der Reihenfolge der Liste platziert werden.
NAME | |
SYNOPSIS | |
KONFIGURATION | [in der Regel nur in Abschnitt 4] |
DESCRIPTION | |
OPTIONEN | [in der Regel nur in den Abschnitten 1 und 8] |
EXIT-STATUS | [in der Regel nur in den Abschnitten 1 und 8] |
RÜCKGABEWERT | [in der Regel nur in den Abschnitten 2 und 3] |
FEHLER | [typischerweise nur in den Abschnitten 2 und 3] |
UMGEBUNGSVARIABLEN | |
DATEIEN | |
VERSIONEN | [in der Regel nur in den Abschnitten 2 und 3] |
ATTRIBUTE | [in der Regel nur in den Abschnitten 2 und 3] |
KONFORM ZU | |
ANMERKUNGEN | |
FEHLER | |
BEISPIELE | |
AUTOREN | [wird nicht empfohlen] |
FEHLER MELDEN | [wird in man-pages nicht verwendet] |
COPYRIGHT | [wird in man-pages nicht verwendet] |
SEE ALSO |
Bitte verwenden Sie eine traditionelle Überschrift, wo sie zutreffen würde; diese Art von Konsistenz kann die Informationen leichter verständlich machen. Wenn Sie müssen, können Sie eigene Überschriften wählen, wenn die Dinge dadurch leichter zu verstehen sind. (Das kann besonders für Seiten in den Abschnitten 4 und 5 nützlich sein.) Doch bevor Sie das tun, prüfen Sie bitte, ob Sie auch traditionelle Überschriften verwenden können (und innerhalb dieser Abschnitte einige Unterabschnitte (.SS) einfügen).
Die folgende Liste geht näher auf den Inhalt jedes der oben genannten Abschnitte ein.
Die folgenden Unterabschnitte beschreiben den bevorzugten Stil für das Projekt man-pages. Im Folgenden nicht erwähnte Details finden Sie möglicherweise im Chicago Manual of Style. Versuchen sie auch, im Verzeichnisbaum des Projekts nach bereits vorhandenen Beispielen bestimmter Anwendungsfälle zu suchen.
Verwenden Sie, soweit möglich, eine geschlechtsneutrale Schreibweise in den Texten Ihrer Handbuchseiten. Die Verwendung von »they« (»them«, »themself«, »their«) als geschlechtsneutrales Pronomen für den Singular ist akzeptabel.
Bei Handbuchseiten, die einen Befehl beschreiben (typischerweise in Abschnitt 1 und 8), werden die Argumente immer in kursiv spezifiziert, selbst im Abschnitt SYNOPSIS.
Der Name des Befehls und seine Optionen sollten stets fett formatiert werden.
Bei Handbuchseiten, die Funktionen beschreiben (typischerweise in Abschnitt 2 und 3), werden die Argumente immer in kursiv spezifiziert, selbst im Abschnitt SYNOPSIS, wobei der Rest der Funktion in fett spezifiziert wird:
int meineFunktion(int argc, char **argv);
Variablennamen sollten wie die Namen von Argumenten kursiv geschrieben werden.
Jeder Hinweis auf den Gegenstand der aktuellen Handbuchseite sollte mit diesem Namen in Fettschrift geschrieben werden, gefolgt von einem Paar Klammern in Normalschrift (Roman). Zum Beispiel würden in der Handbuchseite von fcntl(2) Verweise auf das Thema der Seite als fcntl() geschrieben werden. Die empfohlene Schreibweise in der Quelldatei ist
.BR fcntl ().
Die Verwendung dieses Formats anstatt »\fB…\fP()« erleichtert die Entwicklung von Werkzeugen für die Auswertung von Handbuch-Quelltexten.
Im Quelltext einer Handbuchseite sollten neue Sätze in einer neuen Zeile beginnen und lange Sätze an Interpunktionszeichen, welche die Satzteile voneinander abgrenzen (Komma, Semikolon, Doppelpunkt usw.), geteilt werden. Diese Konvention, im englischen zuweilen »Semantic newlines« (semantische Zeilenvorschübe) genannt, erleichtert es, die Wirkung von Patches zu beurteilen, welche oft auf Ebene einzelner Sätze oder Satzteile arbeiten.
Absätze sollten mit geeigneten Markierungen voneinander getrennt werden (üblicherweise entweder .PP oder .IP). Trennen Sie Absätze nicht durch Einfügen von Leerzeilen, da diese Darstellungsfehler in einigen Ausgabeformaten verursachen (wie PostScript und PDF).
Dateinamen (ob Pfadnamen oder Verweise auf Header-Dateien) werden immer kursiv gesetzt (z. B. <stdio.h>), außer in der SYNOPSIS, wo eingefügte Dateien fett geschrieben werden (z. B. #include <stdio.h>). Wenn Sie auf die Einbindung einer Standard-Header-Datei verweisen, setzen Sie die Header-Datei wie in C gebräuchlich in spitze Klammern (z.B. <stdio.h>).
Spezielle Makros, die in der Regel mit Großbuchstaben geschrieben werden, werden in Fettdruck gesetzt (z.B. MAXINT). Ausnahme: Schreiben Sie NULL nicht fett.
Bei der Aufzählung einer Liste von Fehlercodes werden die Codes in Fettschrift geschrieben. (Diese Liste verwendet in der Regel das Makro .TP.)
Vollständige Befehle sollten, wenn sie lang sind, eine eigene, eingerückte Zeile bekommen, der eine Leerzeile vor- und nachgestellt wird, zum Beispiel:
man 7 man-pages
Kurze Befehle können, kursiv gesetzt, in den laufenden Text aufgenommen werden; z. B. man 7 man-pages. In diesem Fall kann es sich lohnen, an geeigneten Stellen in der Befehlszeile geschützte Leerzeichen ("\ ") zu verwenden. Befehlsoptionen sollten kursiv geschrieben werden (z. B. -l).
Ausdrücke sollten kursiv gesetzt werden, wenn Sie nicht auf einer separaten Zeile eingerückt geschrieben werden. Auch hier kann die Verwendung von geschützten Leerzeichen angezeigt sein, wenn der Ausdruck in den Fließtext integriert ist.
Bei der Angabe von Shell-Sitzungen sollte die Benutzereingabe stets fett formatiert werden, bespielsweise
$ date Do Jul 7 13:01:27 CEST 2016
Jeder Verweis auf eine andere Handbuchseite sollte den Namen in Fettschrift darstellen und immer ohne Leerzeichen von der Nummer des Abschnitts in Normalschrift (Roman) gefolgt werden; (z. B. intro(2)). Die empfohlene Schreibweise in der Quelldatei ist
.BR intro (2).
(Die Angabe der Abschnittsnummer in Querverweisen ermöglicht es Werkzeugen wie man2html(1), korrekte Hyperlinks zu erstellen.)
Steuerzeichen sollten in Fettschrift ohne Anführungszeichen geschrieben werden, beispielsweise ^X.
Seit Release 2.39 folgen die man-pages der amerikanischen Rechtschreibung (vorher bestanden sie aus einer zufälligen Mischung aus britischer und amerikanischer Rechtschreibung). Bitte verfassen Sie alle neuen Seiten und Patches nach diesen Konventionen.
Abgesehen von den gut bekannten Rechtschreibunterschieden gibt es ein paar weitere Feinheiten, auf die Sie achten sollten:
Das klassische Schema zum Schreiben von BSD-Versionsnummern lautet x.yBSD, wobei x.y die Versionsnummer ist (z.B. 4.2BSD). Vermeiden Sie Formen der Art BSD 4.3.
In den Überschriften der Unterabschnitte (»SS«) schreiben Sie das erste Wort groß, die anderen Wörter dagegen nicht, es sei denn, die Konventionen der englischen Sprache (zum Beispiel Eigennamen) oder Erfordernisse der Programmiersprache (zum Beispiel Identifizierernamen) erzwingen die Abweichung von dieser Regel. Beispiel:
.SS Unicode under Linux
Wenn Struktur-Definitionen, Protokolle von Shell-Sitzungen usw. im laufenden Text eingefügt werden, rücken Sie diese um 4 Leerzeichen ein (d. h. umschließen Sie den Block mit .in +4n und .in), formatieren Sie sie mittels der Makros .EX und EE und schließen Sie sie mit geeigneten Absatzmarkierungen (entweder .PP oder .IP) ein. Beispiel:
.PP
.in +4n
.EX
int
main(int argc, char *argv[])
{
return 0;
}
.EE
.in
.PP
Die folgende Tabelle führt einige bevorzugte Begriffe auf, die in Handbuchseiten verwendet werden sollten, hauptsächlich um Konsistenz innerhalb der Sammlung der Handbuchseiten sicherzustellen.
Begriff | Nicht verwenden | Hinweise |
bit mask | bitmask | |
built-in | builtin | |
Epoch | epoch | Für den Beginn der UNIX-Zeitrechnung (00:00:00, 1. Januar 1970 UTC) |
Dateiname | file name | |
Dateisystem | file system | |
Rechnername | host name | |
inode | i-node | |
lowercase | lower case, lower-case | |
nonzero | non-zero | |
pathname | path name | |
pseudoterminal | pseudo-terminal | |
privileged port | reserved port, system port | |
real-time | realtime, real time | |
run time | runtime | |
saved set-group-ID | saved group ID, saved set-GID | |
saved set-user-ID | saved user ID, saved set-UID | |
set-group-ID | set-GID, setgid | |
set-user-ID | set-UID, setuid | |
superuser | super user, super-user | |
superblock | super block, super-block | |
timestamp | time stamp | |
timezone | time zone | |
uppercase | upper case, upper-case | |
usable | useable | |
user space | userspace | |
username | user name | |
x86-64 | x86_64 | Außer beim Verweis auf das Ergebnis von »uname -m« oder ähnlichem |
zeros | zeroes |
Siehe auch den nachfolgenden Abschnitt Bindestriche in attributiven Zusammensetzungen.
Die folgende Tabelle führt einige Ausdrücke (zusammen mit Alternativen) auf, die in Handbuchseiten vermieden werden sollten, hauptsächlich um Konsistenz innerhalb der Sammlung der Handbuchseiten sicherzustellen.
Vermeiden | Stattdessen | Hinweise |
32bit | 32-bit | ebenfalls für 8-bit, 16-bit usw. |
current process | calling process | Ein häufiger Fehler der Kernel-Programmierer beim Schreiben von Handbuchseiten |
manpage | man page, manual page | |
minus infinity | negative infinity | |
non-root | unprivileged user | |
non-superuser | unprivileged user | |
nonprivileged | unprivileged | |
OS | operating system | |
plus infinity | positive infinity | |
pty | pseudoterminal | |
tty | terminal | |
Unices | UNIX systems | |
Unixes | UNIX systems |
Verwenden Sie die korrekte Schreibweise für geschützte Marken. Nachfolgend finden Sie eine Liste der korrekten Schreibweisen diverser relevanter Marken, die gelegentlich falsch geschrieben werden:
DG/UX
HP-UX
UNIX
UnixWare
Ein null pointer ist ein Zeiger, der auf nichts verweist. Er wird normalerweise durch die Konstante NULL angegeben. Andererseits bezeichnet NUL das NULL-Byte, ein Byte mit dem Wert 0, das in C durch die Zeichenkonstante '\0' ausgedrückt wird.
Der bevorzugte Begriff für den Zeiger ist »null pointer« oder einfach »NULL«, bitte schreiben Sie nicht »NULL pointer«.
Der bevorzugte Begriff für das Byte ist »null byte«. Bitte schreiben Sie nicht »NUL«, da es zu leicht mit »NULL« verwechselt werden kann. Vermeiden Sie auch die Begriffe »zero byte« und »null character«. Das Byte, das eine C-Zeichenkette beendet, sollte als »the terminating null byte« beschrieben werden. Zeichenketten können als »null-terminated« bezeichnet werden, vermeiden Sie dagegen »NUL-terminated«.
Verwenden Sie für Hyperlinks das Makropaar .UR/.UE (siehe groff_man(7)). Dieses erzeugt intakte Hyperlinks, die in einem Webbrowser geöffnet werden können, wenn die Seite etwa folgendermaßen dargestellt wird:
BROWSER=firefox man -H Seitenname
Im Allgemeinen sollten Abkürzungen wie »e.g.«, »i.e.«, »etc.«, »cf.« und »a.k.a.« vermieden werden. Schreiben Sie die Wörter stattdessen aus: »for example«, »that is«, »and so on«, »compare to«, »also known as«.
Die einzige Stelle, wo solche Abkürzungen akzeptabel sind, ist in kurzen in Klammern gesetzten Anmerkungen (z.B. wie in dieser hier).
Verwenden Sie stets Punkte in solchen Abkürzungen, wie hier gezeigt. Zusätzlich sollte auf »e.g.« und »i.e.« stets ein Komma folgen.
Einen em-Gedankenstrich – das Zeichen, das an beiden Enden dieses Satzteiles steht –, setzen Sie in *roff mit dem Makro »\(em«. (Auf einem ASCII-Terminal wird ein em-Gedankenstrich üblicherweise als zwei Bindestriche, in anderen typografischen Kontexten als langer Gedankenstrich dargestellt.) Em-Gedankenstriche sollten ohne vor- und nachstehendes Leerzeichen geschrieben werden.
Zusammengesetzte Begriffe sollten mit Bindestrich geschrieben werden, wenn Sie als Attribut verwendet werden, zum Beispiel, um ein nachfolgendes Nomen näher zu bestimmen. Einige Beispiele:
32-bit value
command-line argument
floating-point number
run-time check
user-space function
wide-character string
Die allgemeine Tendenz im modernen Englisch ist es, nach Präfixen wie »multi«, »non«, »pre«, »re« oder »sub« keinen Bindestrich zu setzen. Die Handbuchseiten sollten generell dieser Regel folgen, wenn diese Präfixe in nativen englischen Konstrukten mit einfachen Suffixen verwendet werden. Die folgende Liste zeigt einige Beispiele der bevorzugten Formen:
interprocess
multithreaded
multiprocess
nonblocking
nondefault
nonempty
noninteractive
nonnegative
nonportable
nonzero
preallocated
precreate
prerecorded
reestablished
reinitialize
rearm
reread
subcomponent
subdirectory
subsystem
Bindestriche sollten gesetzt werden, wenn die Präfixe in Wörtern verwendet werden, die nicht zum englischen Standardwortschatz gehören, wie geschützte Marken, Eigennamen, Akronyme oder zusammengesetzte Begriffe. Einige Beispiele:
non-ASCII
non-English
non-NULL
non-real-time
Beachten Sie auch, dass »re-create« und »recreate« zwei Verben unterschiedlicher Bedeutung sind. Das erstere dürfte vermutlich jenes sein, was Sie benötigen.
Wo ein echtes Minus-Zeichen benötigt wird, zum Beispiel für die Zahl -1, für Kreuzreferenzen zu anderen Handbuchseiten wie utf-8(7) oder bei Optionen mit einem vorangestelltem Bindestrich, wie in ls -l, verwenden Sie die folgende Form im Quelltext der Handbuchseite:
\-
Diese Richtlinie gilt auch für Code-Beispiele.
Um einfache Anführungszeichen zu verwenden, die in ASCII, in UTF-8 und in PDF korrekt dargestellt werden können, verwenden Sie "\(aq" ("Apostroph-Zitatzeichen"); zum Beispiel
\(aqC\(aq
wobei C das zitierte Zeichen ist. Diese Richtlinie ist auch auf Zeichenkonstanten und in code-Beispielen anzuwenden.
Wo ein korrektes Zirkumflex-Zeichen (^) benötigt wird, das sowohl im Terminal als auch im PDF gut dargestellt wird, verwenden Sie »\(ha«. Dies ist insbesondere in Beispielcode erforderlich, um in der daraus erzeugten PDF-Darstellung ein ansehnliches Zirkumflex zu erhalten.
Die Verwendung eines nackten »~«-Zeichens führt zu einer fehlerhaften Darstellung in PDF. Verwenden Sie stattdessen »\(ti«. Dies ist insbesondere in Beispielcode erforderlich, um in der daraus erzeugten PDF-Darstellung eine ansehnliche Tilde zu erhalten.
Handbuchseiten können Beispielprogramme enthalten, die den Gebrauch von Systemaufrufen oder Bibliotheksfunktionen beschreiben. Beachten Sie jedoch das Folgende:
Wenn Sie eine Shell-Sitzung einfügen, welche die Verwendung eines Programms oder andere Möglichkeiten des Systems demonstriert:
In wait(2) und pipe(2) finden Sie vorbildliche Beispielprogramme.
Kanonische Beispiele für die Gestaltung von Handbuchseiten für das man-pages-Paket sind pipe(2) und fcntl (2).
man(1), man2html(1), attributes(7), groff(7), groff_man(7), man(7), mdoc(7)
Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Mario Blättermann <mario.blaettermann@gmail.com>, Stephan Beck <tlahcuilo@gmx.net>, Dr. Tobias Quathamer <toddy@debian.org> und Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
13. August 2020 | Linux |