Benutzer:Juetho/ Konvertierung nach LaTeX/ Vorlagen/ Grundlagen

Dies ist ein Entwurf für eine Seite Hilfe:Konvertierung nach LaTeX/ Vorlagen/ Grundlagen als Ergänzung und ausführliche Darstellung zu Hilfe:Fertigstellen/ PDF-Versionen. Viele Dinge die auf dieser Seite stehen stimmen nicht mehr ganz. Für die Verarbeitung von Vorlagen gibt es nun ein klares Verfahren, es entspricht jedoch weitgehend nicht mehr dem hier dokumentieten

Ausgangslage

Vorlagen (Templates) aus Wiki-Quelltext sind unter LaTeX wie Makros oder Umgebungen zu behandeln. Dieser Grundsatz wurde unter wb2pdf-Requests ausführlicher erläutert. Dies sollte jede Konvertierung berücksichtigen. Allerdings gibt es mehrere Probleme:

  • Ein Konvertierungsprogramm wie wb2pdf muss programmiert werden, also eigentlich auf jede Vorlage abgestimmt werden.
  • Eine Automatik für beliebige Vorlagen ist denkbar, scheitert aber an mehreren Problemen:
    • Unter LaTeX sind maximal 9 Argumente zulässig. Vorlagen benutzen zwar selten mehr Parameter, aber es ist ohne Weiteres möglich (und kommt auch vor).
    • Unter LaTeX ist die Reihenfolge der Argumente festgelegt, bei Vorlagen nicht unbedingt.
    • Vorlagen können problemlos mit optionalen Parametern umgehen, LaTeX nur sehr eingeschränkt.

Der folgende Text enthält einen Vorschlag, wie jede beliebige Vorlage so vorbereitet werden kann, dass ein Konvertierungsprogramm sie mit einem Standardverfahren umsetzen kann.

Allgemeines

Vorarbeiten

Die Vorlage wird der Kategorie:Vorlage für Latex und PDF zugeordnet.

Eine solche Kategorie habe ich unter Hilfe Diskussion:Vorlagen angeregt und (bisher vergebens) um Kommentare gebeten.

Die Vorlage erhält eine Unterseite Vorlage:Vorlagenname/ latex. Diese Unterseite muss der folgenden Struktur entsprechen. Das Konvertierungsprogramm kann die dort enthaltenen Angaben auswerten.

Regeln

Die latex-Unterseite enthält mehrere Bestandteile, die durch Überschriften getrennt sind. Teile, die mit <noinclude> gekennzeichnet sind, werden nicht ausgewertet.

Alle Überschriften müssen die gleiche Ebene benutzen. Wegen der Einheitlichkeit werden drei Gleichheitszeichen vorgeschlagen.

Die Namen der Überschriften sind zumindest teilweise vorgegeben und dürfen nicht beliebig geändert werden.

Muster einer latex-Unterseite (ist als Vorlage zum Kopieren geeignet):

<noinclude>{{Achtung|Ein einleitender Satz zum Zweck der latex-Unterseite, muss noch formuliert werden.}}</noinclude>
=== Convert ===
=== Parameters ===
=== Conditions ===
=== Command: <name> ===
=== Environment: <name> ===
=== Description ===

Die englischen Bezeichnungen schlage ich vor, weil das in der Programmierung üblich ist, "command" und "environment" die Fachbegriffe bei LaTeX sind und vielleicht einmal dieses Verfahren auch international bei MediaWiki infrage kommt. Ein Konvertierungsprogramm darf/muss aber auch mit den deutschen Bezeichnungen klarkommen:

<noinclude>{{Achtung|Ein einleitender Satz zum Zweck der latex-Unterseite, muss noch formuliert werden.}}</noinclude>
=== Konvertierung ===
=== Parameter ===
=== Bedingungen ===
=== Makro: <name> ===
=== Umgebung: <name> ===
=== Beschreibung ===

Als Erläuterung für die folgende Beschreibung soll die Seite Benutzer:Juetho/ Vorlage:Syntax/ latex (eigentlich als Unterseite zu Vorlage:Syntax) dienen.

latex-Unterseite

Convert oder Konvertierung

Hier wird der Aufruf des Makros bzw. der Umgebung eingetragen in der Weise, wie es im LaTeX-Quelltext stehen soll. Die Wiki-Parameter werden so benannt, wie es im MediaWiki-Parser vorgesehen ist, nämlich mit drei geschweiften Klammern – je nachdem nummeriert oder mit dem Parameter-Namen.

Wenn der Aufruf in <source lang=latex>...</source> oder {{Syntax|latex|code=...}} eingebunden ist, wird der Code-Inhalt als Aufruf übernommen, andernfalls der gesamte Abschnitt nach dieser Überschrift.

Parameters oder Parameter

Hier werden die Wiki-Parameter den LaTeX-Argumenten zugeordnet durch eine einfache Liste:

  • <wiki-Parametername> = #n (nämlich die Nummer des LaTeX-Arguments bzw.
  • <wiki-Parameternummer> = #m

Ein Wiki-Parameter, der in dieser Liste nicht genannt wird, wird ignoriert. Das Konvertierungsprogramm kann prüfen, ob alle Parameter zugewiesen werden und alle vorgesehenen Argumente benutzt werden; es kann solche Unterschiede aber auch ignorieren, weil auch leere Werte als Argument unter LaTeX möglich sind.

Conditions oder Bedingungen

Hier werden zusätzliche Prüfungen vorgenommen. Diese sind unbedingt durch <source lang=xxx>...</source> oder {{Syntax|xxx|code=...}}, damit sie für mehrere Programmiersprachen vorbereitet werden können.

Pseudo-Code ist gemäß GeSHi als "lang=text" zu deklarieren.

Command: <name> oder Makro: <name>

Wenn eine Vorlage als \newcommand unter LaTeX verwendet wird, kann hier ein Vorschlag für die Definition stehen. Das Konvertierungsprogramm kann die LaTeX-Definition in eine tex-Datei übernehmen und diese per \include in die Präambel einbinden. Eine \usepackage-Anweisung muss in diesem Fall auskommentiert werden und in den usepackages-Abschnitt der Präambel übernommen werden (vorzugsweise in eine packages.tex-Datei, die durch \include eingebunden wird).

In Benutzer:Juetho/ Vorlage:Syntax/ latex sieht das so aus:

Environment: <name> oder Umgebung: <name>

Wenn eine Vorlage als \newenvironment unter LaTeX verwendet wird, kann hier ein Vorschlag für die Definition stehen. Im übrigen gilt das gleiche Verfahren wie im Abschnitt zu "Command/Makro".

Description oder Beschreibung

Die Beschreibung kann verschiedene Angaben oder Vorgehensweisen näher erläutern. Sie wird bei der Konvertierung nicht ausgewertet.