.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Locale::Po4a::TeX 3pm" .TH Locale::Po4a::TeX 3pm "2020-08-19" "Po4a-Werkzeuge" "Po4a-Werkzeuge" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Locale::Po4a::TeX \- konvertiert TeX\-Dokumente und Derivate von/in PO\-Dateien .SH "BESCHREIBUNG" .IX Header "BESCHREIBUNG" Das Projektziel von Po4a (\s-1PO\s0 für alles) ist es, die Übersetzung (und interessanter, die Wartung der Übersetzung) zu vereinfachen, indem die Gettext-Werkzeuge auch für Gebiete verwendet werden, wo diese nicht erwartet werden, wie Dokumentation. .PP Locale::Po4a::TeX ist ein Modul, um bei der Übersetzung von TeX-Dokumenten in andere [natürliche] Sprachen zu helfen. Es kann auch als Grundlage für die Entwicklung von Modulen für TeX-basierte Dokumente verwandt werden. .PP Benutzer sollten wahrscheinlich das LaTeX-Modul verwenden, das vom TeX-Modul abgeleitet ist und die Definitionen von typischen LaTeX-Befehlen enthält. .SH "ÜBERSETZEN MIT PO4A::TEX" .IX Header "ÜBERSETZEN MIT PO4A::TEX" Dieses Modul kann direkt verwandt werden, um mit generischen TeX-Dokumenten umzugehen. Es wird Ihr Dokument in kleinere Blöcke (Absätze, »verbatim«\-Blöcke oder sogar kleinere wie Titel oder Indices) teilen. .PP Es gibt einige Optionen (die im nächsten Abschnitt beschrieben werden), die dieses Verhalten anpassen lassen. Falls dies nicht auf Ihr Dokumentenformat passt, ermutigen wir Sie, Ihr eigenes, von diesem Modul abgeleitetes Modul zu schreiben, um die Details Ihres Formats zu beschreiben. Lesen Sie den Abschnitt \fB\s-1SCHREIBEN ABGELEITETER MODULE\s0\fR weiter unten für die Beschreibung des Prozesses. .PP Dieses Modul kann auch durch Zeilen in der TeX-Datei, die mit »% po4a:« beginnen, angepasst werden. Diese Anpassungen werden im Abschnitt \&\fB\s-1ANPASSUNGEN IM DOKUMENT\s0\fR beschrieben. .SH "VON DIESEM MODUL AKZEPTIERTE OPTIONEN" .IX Header "VON DIESEM MODUL AKZEPTIERTE OPTIONEN" Dies sind die Modul-spezifischen Optionen: .IP "\fBdebug\fR" 4 .IX Item "debug" Aktiviert Fehlersuchroutinen für einige interne Mechanismen dieses Moduls. Verwenden Sie den Quelltext, um zu sehen, welche Teile damit auf Fehler untersucht werden können. .IP "\fBno_wrap\fR" 4 .IX Item "no_wrap" durch Kommata getrennte Liste von Umgebungen, die nicht neu umgebrochen werden sollen .Sp Beachten Sie, dass es zwischen den Umgebungen »verbatim« und »no_wrap« einen Unterschied gibt. In »verbatim«\-Blöcken erfolgt keine Befehls\- und Inhaltsanalyse. .Sp Falls diese Umgebung noch nicht registriert war, wird Po4a annehmen, dass diese Umgebung keine Parameter erwartet. .IP "\fBexclude_include\fR" 4 .IX Item "exclude_include" durch Doppelpunkte getrennte Liste von Dateien, die nicht von \einput und \&\einclude eingeschlossen werden sollten .IP "\fBdefinitions\fR" 4 .IX Item "definitions" Der Name der Datei, die die Definitionen für Po4a enthält, wie diese im Abschnitt \fB\s-1ANPASSUNGEN IM DOKUMENT\s0\fR beschrieben sind. Sie können diese Option verwenden, falls es nicht möglich ist, die Definitionen in das zu übersetzende Dokument zu schreiben. .IP "\fBverbatim\fR" 4 .IX Item "verbatim" durch Kommata getrennte Liste von Umgebungen, die »verbatim« angenommen werden sollten .Sp Falls diese Umgebung noch nicht registriert war, wird Po4a annehmen, dass diese Umgebung keine Parameter erwartet. .PP Die Verwendung dieser Option ermöglicht es, das Verhalten der Befehle, die in dieser Standardliste definiert werden, zu überschreiben. .SH "ANPASSUNGEN IM DOKUMENT" .IX Header "ANPASSUNGEN IM DOKUMENT" Das TeX-Modul kann durch Zeilen, die mit \fB% po4a:\fR beginnen, angepasst werden. Diese Zeilen werden vom Parser als Befehle interpretiert. Die folgenden Befehle werden erkannt: .IP "\fB% po4a: command\fR \fIBefehl1\fR \fBalias\fR \fIBefehl2\fR" 4 .IX Item "% po4a: command Befehl1 alias Befehl2" zeigt an, dass die Argumente des Befehls \fIBefehl1\fR als Argumente des Befehls \fIBefehl2\fR behandelt werden sollen .IP "\fB% po4a: command\fR \fIBefehl1\fR \fIParameter\fR" 4 .IX Item "% po4a: command Befehl1 Parameter" Dies erlaubt es, die Parameter des Befehls \fIBefehl1\fR im Detail zu beschreiben. Diese Information wird zur Überprüfung der Anzahl der Argumente und ihrer Typen verwandt. .Sp Sie können Folgendes dem Befehl \fIBefehl1\fR voranstellen: .RS 4 .IP "einen Stern (\fB*\fR)" 4 .IX Item "einen Stern (*)" Po4a wird diesen Befehl aus Absätzen herauslesen (falls er sich am Anfang oder Ende eines Absatzes befindet). Der Übersetzer muss dann die Parameter übersetzen, die als übersetzbar markiert sind. .IP "ein Plus (\fB+\fR)" 4 .IX Item "ein Plus (+)" Wie bei einem Stern wird der Befehl herausgelesen, falls er an den Endpunkten eines Blocks erscheint, aber die Parameter werden nicht separat übersetzt. Der Übersetzer muss den Befehl, zusammengesetzt mit allen seinen Parametern, übersetzen. Dies erlaubt es, mehr Kontext zu erhalten und ist für Befehle nützlich, die kleine Wörter in ihren Parametern enthalten, die mehrere Bedeutungen (und Übersetzungen) haben können. .Sp Hinweis: In diesem Fall müssen Sie nicht angeben, welche Parameter übersetzbar sind, aber Po4a muss die Anzahl und den Typ der Parameter wissen. .IP "ein Minus (\fB\-\fR)" 4 .IX Item "ein Minus (-)" In diesem Fall wird der Befehl aus keinem Block herausgelesen. Falls er aber alleine in einem Block erscheint, werden nur die als übersetzbar markierten Parameter dem Übersetzer angeboten. Dies ist für Schriftsatzbefehle nützlich. Diese Befehle sollten im Allgemeinen nicht von ihrem Absatz getrennt werden (um den Kontext zu erhalten), aber es gibt keinen Grund, den Übersetzer damit zu belästigen, falls die gesamte Zeichenkette in einem solchen Befehl eingeschlossen ist. .RE .RS 4 .Sp Das Argument \fIParameter\fR ist ein Satz von [] (um ein optionales Argument anzuzeigen) oder {} (um ein verpflichtendes Argument anzuzeigen). Sie können einen Unterstrich (_) zwischen diese Klammern setzen, um anzugeben, dass der Parameter übersetzt werden muss. Beispiel: % po4a: command *chapter [_]{_} .Sp Dies zeigt an, dass der Befehl »chapter« zwei Parameter erwartet: einen optionalen (den kurzen Titel) und einen verpflichtenden, wobei beide übersetzt werden müssen. Falls Sie angeben möchten, dass der Befehl »href« zwei verpflichtende Parameter hat, dass Sie die \s-1URL\s0 nicht übersetzen möchten (den ersten Parameter) und dass Sie nicht möchten, dass der Befehl von seinem Absatz getrennt wird (was dem Übersetzer erlaubt, den Link im Satz zu verschieben), können Sie folgendes verwenden: % po4a: command \-href {}{_} .Sp In diesem Fall wird die Information, welche Argumente übersetzt werden müssen, nur verwandt, falls ein Absatz nur aus diesem href-Befehl besteht. .RE .IP "\fB% po4a: environment\fR \fIUmgeb\fR \fIParameter\fR" 4 .IX Item "% po4a: environment Umgeb Parameter" Dies erlaubt es, die von der Umgebung \fIUmgeb\fR akzeptierten Parameter zu definieren. Diese Information wird später zum Überprüfen der Anzahl der Argumente des \ebegin\-Befehls verwandt und erlaubt die Spezifizierung, welche davon übersetzt werden müssen. Die Syntax ist die gleiche, wie sie für die anderen Befehle beschrieben ist. Der erste Parameter des Befehls \ebegin ist der Name der Umgebung. Dieser Parameter darf nicht in der Liste der Parameter spezifziert werden. Einige Beispiele: % po4a: environment multicols {} % po4a: environment equation .Sp Wie bei den Befehlen kann \fIUmgeb\fR ein Plus (+) vorangestellt werden, um anzuzeigen, dass der Befehl \ebegin mit allen seinen Argumenten übersetzt werden muss. .ie n .IP "\fB% po4a: separator\fR \fIUmgeb\fR \fB""\fR\fIRegAus\fR\fB""\fR" 4 .el .IP "\fB% po4a: separator\fR \fIUmgeb\fR \fB``\fR\fIRegAus\fR\fB''\fR" 4 .IX Item "% po4a: separator Umgeb ""RegAus""" zeigt an, dass die Umgebung entsprechend des übergebenen regulären Ausdruckes aufgeteilt werden soll .Sp Der reguläre Ausdruck wird durch Anführungszeichen begrenzt. Er sollte keine Rückreferenzen erstellen. Sie sollten (?:) verwenden, falls Sie Gruppen benötigen. Es könnte auch notwendig sein, Teile zu schützen. .Sp Beispielsweise verwendet das LaTeX-Modul den regulären Ausdruck »(?:&|\e\e\e\e)«, um jede Zelle einer Tabelle zu trennen (Zeilen werden durch »\e\e«, Zellen durch »&« getrennt). .Sp Der Begriff der Umgebung wird auf den in der PO-Datei angezeigten Typ angewandt. Dies kann benutzt werden, um auf »\e\e\e\e« im ersten zwingenden Argument des Titelbefehls zu unterteilen. In diesem Fall ist die Umgebung Title{#1}. .IP "\fB% po4a: verbatim environment\fR \fIUmgeb\fR" 4 .IX Item "% po4a: verbatim environment Umgeb" Zeigt an, dass \fIUmgeb\fR eine »verbatim«\-Umgebung ist. Kommentare und Befehle werden innerhalb dieser Umgebung ignoriert. .Sp Falls diese Umgebung noch nicht registriert war, wird Po4a annehmen, dass diese Umgebung keine Parameter erwartet. .SH "SCHREIBEN ABGELEITETER MODULE" .IX Header "SCHREIBEN ABGELEITETER MODULE" .IP "\fBpre_trans\fR" 4 .IX Item "pre_trans" .PD 0 .IP "\fBpost_trans\fR" 4 .IX Item "post_trans" .IP "\fBadd_comment\fR" 4 .IX Item "add_comment" .PD Fügt einen Zeichensatz als Kommentar hinzu, der um das nächste übersetzte Element herum hinzugefügt werden soll. Dies ist hauptsächlich für das Texinfo-Modul nützlich, da Kommentare in TeX automatisch gehandhabt werden. .IP "\fBtranslate\fR" 4 .IX Item "translate" Wrapper um die Übersetzung von TransTractor, mit Vor\- und Nachverarbeitungsfiltern. .Sp Kommentare eines Absatzes werden als PO-Kommentare bei der ersten übersetzten Zeichenkette dieses Absatzes eingefügt. .IP "\fBget_leading_command\fR($buffer)" 4 .IX Item "get_leading_command($buffer)" Diese Funktion liefert folgendes zurück: .RS 4 .IP "Einen Befehlsnamen" 4 .IX Item "Einen Befehlsnamen" Falls kein Befehl am Anfang des Puffers gefunden wird, wird diese Zeichenkette leer sein. Nur Befehle, die getrennt werden können, werden betrachtet. Der Hash \f(CW%separated_command\fR enthält eine Liste dieser Befehle. .IP "Eine Variante" 4 .IX Item "Eine Variante" Dies zeigt an, ob eine Variante benutzt wurde. Beispielsweise kann ein Stern (*) am Ende eines »section«\-Befehls verwendet werden, um anzugeben, dass diese nicht nummeriert werden sollen. In diesem Fall wird dieses Feld »*« enthalten. Falls es keine Variante gibt, enthält dieses Feld die leere Zeichenkette. .IP "Ein Feld von Tupeln (Argumenttyp, Argument)" 4 .IX Item "Ein Feld von Tupeln (Argumenttyp, Argument)" Der Typ des Arguments kann entweder »{« (für verpflichtende Argumente) oder »[« (für optionale Argumente) sein. .IP "Der verbleibende Puffer" 4 .IX Item "Der verbleibende Puffer" Der Rest des Puffers nach der Entfernung des führenden Befehls und seiner Argumente. Falls kein Befehl gefunden wird, wird der ursprüngliche Puffer nicht angerührt und in diesem Feld zurückgeliefert. .RE .RS 4 .RE .IP "\fBget_trailing_command\fR($buffer)" 4 .IX Item "get_trailing_command($buffer)" identisch zu \fBget_leading_command\fR, allerdings für Befehle am Ende des Puffers .IP "\fBtranslate_buffer\fR" 4 .IX Item "translate_buffer" rekursives Übersetzen eins Puffers durch Trennung von führenden and abschließenden Befehlen (solche, die separat übersetzt werden sollten) aus dem Puffer .Sp Falls eine Funktion in \f(CW%translate_buffer_env\fR für die aktuelle Umgebung definiert ist, wird diese Funktion zur Übersetzung des Puffers (statt \&\fBtranslate_buffer()\fR) verwandt. .IP "\fBread\fR" 4 .IX Item "read" überlädt Transtractors \fBread()\fR. .IP "\fBread_file\fR" 4 .IX Item "read_file" Liest rekursiv eine Datei und hängt eingebundene Dateien, die nicht im Feld \&\f(CW@exclude_include\fR aufgeführt sind, an. Eingebundene Dateien werden mittels des Befehls \fBkpsewhich\fR aus der Bibliothek Kpathsea gesucht. .Sp Abgesehen von dem Teil der Einbindung von Dateien ist es eine eingefügte Kopie aus Transtractors read. .IP "\fBparse_definition_file\fR" 4 .IX Item "parse_definition_file" Subroutine zum Auswerten einer Datei mit Po4a\-Direktiven (Definitionen für neue Befehle). .IP "\fBparse_definition_line\fR" 4 .IX Item "parse_definition_line" eine Definitionszeile der Form »% po4a: « auswerten .Sp Lesen Sie den Abschnitt \fB\s-1ANPASSUNGEN IM DOKUMENT\s0\fR für weitere Details. .IP "\fBis_closed\fR" 4 .IX Item "is_closed" .PD 0 .IP "\fBparse\fR" 4 .IX Item "parse" .IP "\fBdocheader\fR" 4 .IX Item "docheader" .PD .SH "INTERNE FUNKTIONEN, die zum Schreiben abgeleiteter Parser verwendet werden" .IX Header "INTERNE FUNKTIONEN, die zum Schreiben abgeleiteter Parser verwendet werden" Befehls\- und Umgebungsfunktionen erwarten die folgenden Argumente (zusätzlich zum Objekt \f(CW$self\fR): .IP "Einen Befehlsnamen" 4 .IX Item "Einen Befehlsnamen" .PD 0 .IP "Eine Variante" 4 .IX Item "Eine Variante" .IP "Ein Feld von (Typ, Argument)\-Tupeln" 4 .IX Item "Ein Feld von (Typ, Argument)-Tupeln" .IP "Die aktuelle Umgebung" 4 .IX Item "Die aktuelle Umgebung" .PD .PP Die ersten drei Argumente werden durch get_leading_command oder get_trailing_command herausgelöst. .PP Befehls\- und Umgebungsfunktionen liefern die Übersetzung des Befehls mit seinen Argumenten und eine neue Umgebung zurück. .PP Umgebungsfunktionen werden aufgerufen, wenn ein \ebegin gefunden wird. Sie werden mit dem Befehl \ebegin und seinen Argumenten aufgerufen. .PP Das TeX-Modul schlägt nur eine Befehlsfunktion und eine Umgebungsfunktion vor: generic_command und generic_environment. .PP generic_command verwendet die durch register_generic_command spezifizierte Information oder durch Hinzufügen von Definitionen zu der TeX-Datei: % po4a: command \fIBefehl\fR \fIParameter\fR .PP generic_environment verwendet die durch register_generic_environment spezifizierte Information oder durch Hinzufügen von Definitionen zu der TeX-Datei: % po4a: environment \fIUmgeb\fR \fIParameter\fR .PP Beide Funktionen werden nur die als übersetzbar (mit einem »_«) angegebenen Parameter übersetzen. generic_environment wird den Namen der Umgebung an den Umgebungsstapel anhängen und generic_command wird den Namen des Befehls gefolgt von einer Kennung des Parameters (wie{#7} oder [#2]) anhängen. .SH "STATUS DIESES MODULS" .IX Header "STATUS DIESES MODULS" Dieses Modul benötigt weitere Tests. .PP Es wurde mit einem Buch und mit der Python-Dokumentation getestet. .SH "TODO-LISTE" .IX Header "TODO-LISTE" .IP "Automatische Erkennung neuer Befehle" 4 .IX Item "Automatische Erkennung neuer Befehle" Das TeX-Modul könnte die »newcommand«\-Argumente auswerten und versuchen, die Anzahl der Argumente, ihren Typ und ob (oder ob nicht) sie übersetzt werden sollten, zu raten. .IP "Übersetzung des Umgebungstrenners" 4 .IX Item "Übersetzung des Umgebungstrenners" Wird \eitem als Trenner für Umgebungen verwandt, dann wird das Argument von »item« an die folgenden Zeichenkette angefügt. .IP "Einige Befehle sollten dem Umgebungsstapel hinzugefügt werden." 4 .IX Item "Einige Befehle sollten dem Umgebungsstapel hinzugefügt werden." Diese Befehle sollten paarweise angegeben werden. Dies könnte die Angabe von Befehlen ermöglichen, die eine wortgetreue Umgebung beginnen oder beenden. .IP "Weitere" 4 .IX Item "Weitere" Verschiedene andere Punkte werden in der Quelle als \s-1TODO\s0 gekennzeichnet. .SH "BEKANNTE FEHLER" .IX Header "BEKANNTE FEHLER" Verschiedene Punkte werden in der Quelle als \s-1FIXME\s0 gekennzeichnet. .SH "SIEHE AUCH" .IX Header "SIEHE AUCH" \&\fBLocale::Po4a::LaTeX\fR\|(3pm), \&\fBLocale::Po4a::TransTractor\fR\|(3pm), \&\fBpo4a\fR\|(7) .SH "AUTOREN" .IX Header "AUTOREN" .Vb 1 \& Nicolas François .Ve .SH "URHEBERRECHT UND LIZENZ" .IX Header "URHEBERRECHT UND LIZENZ" Copyright © 2004, 2005 Nicolas FRANÇOIS . .PP Dieses Programm ist freie Software; Sie können es unter den Bedingungen der \&\s-1GPL\s0 (siehe die Datei \s-1COPYING\s0) vertreiben und/oder verändern.