LOCALE::PO4A::TEX.3PM(1) User Contributed Perl Documentation NAME Locale::Po4a::TeX - konvertiert TeX-Dokumente und Derivate von/in PO-Dateien BESCHREIBUNG Das Projektziel von Po4a (PO fur alles) ist es, die Ubersetzung (und interessanter, die Wartung der Ubersetzung) zu vereinfachen, indem die Gettext-Werkzeuge auch fur Gebiete verwendet werden, wo diese nicht erwartet werden, wie Dokumentation. Locale::Po4a::TeX ist ein Modul, um bei der Ubersetzung von TeX-Dokumenten in andere [naturliche] Sprachen zu helfen. Es kann auch als Grundlage fur die Entwicklung von Modulen fur TeX-basierte Dokumente verwandt werden. Benutzer sollten wahrscheinlich das LaTeX-Modul verwenden, das vom TeX-Modul abgeleitet ist und die Definitionen von typischen LaTeX-Befehlen enthalt. UBERSETZEN MIT PO4A::TEX Dieses Modul kann direkt verwandt werden, um mit generischen TeX-Dokumenten umzugehen. Es wird Ihr Dokument in kleinere Blocke (Absatze, >>verbatim<<-Blocke oder sogar kleinere wie Titel oder Indices) teilen. Es gibt einige Optionen (die im nachsten 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 SCHREIBEN ABGELEITETER MODULE weiter unten fur die Beschreibung des Prozesses. Dieses Modul kann auch durch Zeilen in der TeX-Datei, die mit >>% po4a:<< beginnen, angepasst werden. Dieser Prozess wird im Abschnitt ANPASSUNGEN IM DOKUMENT beschrieben. VON DIESEM MODUL AKZEPTIERTE OPTIONEN Dies sind die Modul-spezifischen Optionen: debug Aktiviert Fehlersuchroutinen fur einige interne Mechanismen dieses Moduls. Verwenden Sie den Quelltext, um zu sehen, welche Teile damit auf Fehler untersucht werden konnen. no_wrap durch Kommata getrennte Liste von Umgebungen, die nicht neu umgebrochen werden sollen Beachten Sie, dass es zwischen den Umgebungen >>verbatim<< und >>no_wrap<< einen Unterschied gibt. In >>verbatim<<-Blocken erfolgt keine Befehls- und Inhaltsanalyse. Falls diese Umgebung noch nicht registriert war, wird Po4a annehmen, dass diese Umgebung keine Parameter erwartet. exclude_include durch Doppelpunkte getrennte Liste von Dateien, die nicht von \input und \include eingeschlossen werden sollten definitions Der Name der Datei, die die Definitionen fur Po4a enthalt, wie diese im Abschnitt ANPASSUNGEN IM DOKUMENT beschrieben sind. Sie konnen diese Option verwenden, falls es nicht moglich ist, die Definitionen in das zu ubersetzende Dokument zu schreiben. verbatim durch Kommata getrennte Liste von Umgebungen, die >>verbatim<< angenommen werden sollten Falls diese Umgebung noch nicht registriert war, wird Po4a annehmen, dass diese Umgebung keine Parameter erwartet. Verwenden Sie diese Optionen, um das Standardverhalten der definierten Befehle zu uberschreiben. ANPASSUNGEN IM DOKUMENT Das TeX-Modul kann durch Zeilen, die mit % po4a: beginnen, angepasst werden. Diese Zeilen werden vom Parser als Befehle interpretiert. Die folgenden Befehle werden erkannt: % po4a: command Befehl1 alias Befehl2 zeigt an, dass die Argumente des Befehls Befehl1 als Argumente des Befehls Befehl2 behandelt werden sollen % po4a: command Befehl1 Parameter Dies beschreibt die Parameter des Befehls Befehl1 im Detail. Diese Information wird zur Uberprufung der Anzahl der Argumente und ihrer Typen verwandt. Sie konnen Folgendes dem Befehl Befehl1 voranstellen: einen Stern (*) Po4a wird diesen Befehl aus Absatzen herauslesen (falls er sich am Anfang oder Ende eines Absatzes befindet). Der Ubersetzer muss dann die Parameter ubersetzen, die als ubersetzbar markiert sind. ein Plus (+) Wie bei einem Stern wird der Befehl herausgelesen, falls er an den Endpunkten eines Blocks erscheint, aber die Parameter werden nicht separat ubersetzt. Der Ubersetzer muss den Befehl, zusammengesetzt mit allen seinen Parametern, ubersetzen. Dies erhalt mehr Kontext und ist fur Befehle nutzlich, die kleine Worter in ihren Parametern enthalten, die mehrere Bedeutungen (und Ubersetzungen) haben konnen. Hinweis: In diesem Fall mussen Sie nicht angeben, welche Parameter ubersetzbar sind, aber Po4a muss die Anzahl und den Typ der Parameter wissen. ein Minus (-) In diesem Fall wird der Befehl aus keinem Block herausgelesen. Falls er aber alleine in einem Block erscheint, werden nur die als ubersetzbar markierten Parameter dem Ubersetzer angeboten. Dies ist fur Schriftsatzbefehle nutzlich. Diese Befehle sollten im Allgemeinen nicht von ihrem Absatz getrennt werden (um den Kontext zu erhalten), aber es gibt keinen Grund, den Ubersetzer damit zu belastigen, falls die gesamte Zeichenkette in einem solchen Befehl eingeschlossen ist. Das Argument Parameter ist ein Satz von [] (um ein optionales Argument anzuzeigen) oder {} (um ein verpflichtendes Argument anzuzeigen). Sie konnen einen Unterstrich (_) zwischen diese Klammern setzen, um anzugeben, dass der Parameter ubersetzt werden muss. Beispiel: % po4a: command *chapter [_]{_} Dies zeigt an, dass der Befehl >>chapter<< zwei Parameter erwartet: einen optionalen (den kurzen Titel) und einen verpflichtenden, wobei beide ubersetzt werden mussen. Falls Sie angeben mochten, dass der Befehl >>href<< zwei verpflichtende Parameter hat, dass Sie die URL nicht ubersetzen mochten (den ersten Parameter) und dass Sie nicht mochten, dass der Befehl von seinem Absatz getrennt wird (was dem Ubersetzer erlaubt, den Link im Satz zu verschieben), konnen Sie folgendes verwenden: % po4a: command -href {}{_} In diesem Fall wird die Information, welche Argumente ubersetzt werden mussen, nur verwandt, falls ein Absatz nur aus diesem href-Befehl besteht. % po4a: environment Umgeb Parameter Dies definiert die von der Umgebung Umgeb akzeptierten Parameter und legt die zu ubersetzenden fest. Diese Information wird spater zum Uberprufen der Anzahl der Argumente des \begin-Befehls verwandt. Die Syntax ist die gleiche, wie sie fur die anderen Befehle beschrieben ist. Der erste Parameter des Befehls \begin ist der Name der Umgebung. Dieser Parameter darf nicht in der Liste der Parameter spezifziert werden. Einige Beispiele: % po4a: environment multicols {} % po4a: environment equation Wie bei den Befehlen kann Umgeb ein Plus (+) vorangestellt werden, um anzuzeigen, dass der Befehl \begin mit allen seinen Argumenten ubersetzt werden muss. % po4a: separator Umgeb "RegAus" zeigt an, dass die Umgebung entsprechend des ubergebenen regularen Ausdruckes aufgeteilt werden soll Der regulare Ausdruck wird durch Anfuhrungszeichen begrenzt. Er sollte keine Ruckreferenzen erstellen. Sie sollten (?:) verwenden, falls Sie Gruppen benotigen. Es konnte auch notwendig sein, Teile zu schutzen. Beispielsweise verwendet das LaTeX-Modul den regularen Ausdruck >>(?:&|\\\\)<<, um jede Zelle einer Tabelle zu trennen (Zeilen werden durch >>\\<<, Zellen durch >>&<< getrennt). Der Begriff der Umgebung wird auf den in der PO-Datei angezeigten Typ erweitert. Dies kann benutzt werden, um auf >>\\\\<< im ersten zwingenden Argument des Titelbefehls zu unterteilen. In diesem Fall ist die Umgebung Title{#1}. % po4a: verbatim environment Umgeb Zeigt an, dass Umgeb eine >>verbatim<<-Umgebung ist. Kommentare und Befehle werden innerhalb dieser Umgebung ignoriert. Falls diese Umgebung noch nicht registriert war, wird Po4a annehmen, dass diese Umgebung keine Parameter erwartet. SCHREIBEN ABGELEITETER MODULE pre_trans post_trans add_comment Fugt einen Zeichensatz als Kommentar hinzu, der um das nachste ubersetzte Element herum hinzugefugt werden soll. Dies ist hauptsachlich fur das Texinfo-Modul nutzlich, da Kommentare in TeX automatisch gehandhabt werden. translate Wrapper um die Ubersetzung von TransTractor, mit Vor- und Nachverarbeitungsfiltern. Kommentare eines Absatzes werden als PO-Kommentare bei der ersten ubersetzten Zeichenkette dieses Absatzes eingefugt. get_leading_command($buffer) Diese Funktion liefert folgendes zuruck: Einen Befehlsnamen Falls kein Befehl am Anfang des Puffers gefunden wird, wird diese Zeichenkette leer sein. Nur Befehle, die getrennt werden konnen, werden betrachtet. Der Hash %separated_command enthalt eine Liste dieser Befehle. 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, enthalt dieses Feld die leere Zeichenkette. Ein Feld von Tupeln (Argumenttyp, Argument) Der Typ des Arguments kann entweder >>{<< (fur verpflichtende Argumente) oder >>[<< (fur optionale Argumente) sein. Der verbleibende Puffer Der Rest des Puffers nach der Entfernung des fuhrenden Befehls und seiner Argumente. Falls kein Befehl gefunden wird, wird der ursprungliche Puffer nicht angeruhrt und in diesem Feld zuruckgeliefert. get_trailing_command($buffer) identisch zu get_leading_command, allerdings fur Befehle am Ende des Puffers translate_buffer rekursives Ubersetzen eins Puffers durch Trennung von fuhrenden and abschliessenden Befehlen (solche, die separat ubersetzt werden sollten) aus dem Puffer Falls eine Funktion in %translate_buffer_env fur die aktuelle Umgebung definiert ist, wird diese Funktion zur Ubersetzung des Puffers (statt translate_buffer()) verwandt. read uberladt Transtractors read(). read_file Liest rekursiv eine Datei und hangt eingebundene Dateien, die nicht im Feld @exclude_include aufgefuhrt sind, an. Eingebundene Dateien werden mittels des Befehls kpsewhich aus der Bibliothek Kpathsea gesucht. Abgesehen von dem Teil der Einbindung von Dateien ist es eine eingefugte Kopie aus Transtractors read. parse_definition_file Subroutine zum Auswerten einer Datei mit Po4a-Direktiven (Definitionen fur neue Befehle). parse_definition_line eine Definitionszeile der Form >>% po4a: << auswerten Lesen Sie den Abschnitt ANPASSUNGEN IM DOKUMENT fur weitere Details. is_closed parse docheader INTERNE FUNKTIONEN, die zum Schreiben abgeleiteter Parser verwendet werden Befehls- und Umgebungsfunktionen erwarten die folgenden Argumente (zusatzlich zum Objekt $self): Einen Befehlsnamen Eine Variante Ein Feld von (Typ, Argument)-Tupeln Die aktuelle Umgebung Die ersten drei Argumente werden durch get_leading_command oder get_trailing_command herausgelost. Befehls- und Umgebungsfunktionen liefern die Ubersetzung des Befehls mit seinen Argumenten und eine neue Umgebung zuruck. Umgebungsfunktionen werden aufgerufen, wenn ein \begin gefunden wird. Sie werden mit dem Befehl \begin und seinen Argumenten aufgerufen. Das TeX-Modul schlagt nur eine Befehlsfunktion und eine Umgebungsfunktion vor: generic_command und generic_environment. generic_command verwendet die durch register_generic_command spezifizierte Information oder durch Hinzufugen von Definitionen zu der TeX-Datei: % po4a: command Befehl Parameter generic_environment verwendet die durch register_generic_environment spezifizierte Information oder durch Hinzufugen von Definitionen zu der TeX-Datei: % po4a: environment Umgeb Parameter Beide Funktionen werden nur die als ubersetzbar (mit einem >>_<<) angegebenen Parameter ubersetzen. generic_environment wird den Namen der Umgebung an den Umgebungsstapel anhangen und generic_command wird den Namen des Befehls gefolgt von einer Kennung des Parameters (wie{#7} oder [#2]) anhangen. STATUS DIESES MODULS Dieses Modul benotigt weitere Tests. Es wurde mit einem Buch und mit der Python-Dokumentation getestet. TODO-LISTE Automatische Erkennung neuer Befehle Das TeX-Modul konnte die >>newcommand<<-Argumente auswerten und versuchen, die Anzahl der Argumente, ihren Typ und ob (oder ob nicht) sie ubersetzt werden sollten, zu raten. Ubersetzung des Umgebungstrenners Wird \item als Trenner fur Umgebungen verwandt, dann wird das Argument von >>item<< an die folgenden Zeichenkette angefugt. Einige Befehle sollten dem Umgebungsstapel hinzugefugt werden. Diese Befehle sollten paarweise angegeben werden. Dies kann zur Angabe von Befehlen verwandt werden, die eine wortgetreue Umgebung beginnen oder beenden. Weitere Verschiedene andere Punkte werden in der Quelle als TODO gekennzeichnet. BEKANNTE FEHLER Verschiedene Punkte werden in der Quelle als FIXME gekennzeichnet. SIEHE AUCH Locale::Po4a::LaTeX(3pm), Locale::Po4a::TransTractor(3pm), po4a(7) AUTOREN Nicolas Francois URHEBERRECHT UND LIZENZ Copyright (C) 2004, 2005 Nicolas FRANCOIS . Dieses Programm ist freie Software; Sie konnen es unter den Bedingungen der GPL v2.0 oder neuer (siehe die Datei COPYING) vertreiben und/oder verandern. perl v5.42.0 2025-11-22 LOCALE::PO4A::TEX.3PM(1)