Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:software:dokuwiki:caption

caption

Ein Plugin zum besseren Setzen von Abbildungen und Tabellen, insbesondere der entsprechenden Abbildungsunter- und Tabellenüberschriften.

Download https://github.com/tillbiskup/dokuwiki-caption
Lizenz GPLv2
Sprache PHP
Status produktiv

Gerade aus einer LaTeX-Perspektive geschaut ist die bisherige Handhabung von Abbildungen und Bildunterschriften im DokuWiki nicht wirklich brauchbar (bzw. nicht gelöst). Der direkt mit dem Bild angebbare Alternativtext ist zwar aus HTML-Sicht gut und notwendig, aber als Abbildungsunterschrift unbrauchbar.

Syntax

Das Plugin stellt grundsätzlich zwei verschiedene Syntax-Elemente bereit, vergleichbar dem blockquote-Plugin:

  • <figure>…</figure>, <table>…</table>
    <codeblock>…</codeblock>, <fileblock>…</fileblock>
  • <caption>…</caption>

Dabei sollte <caption>…</caption> immer nur innerhalb einer der beiden anderen Umgebungen verwendet werden. Die beiden Tags codeblock und fileblock dienen dazu, entsprechend Code- oder Datei-Listings mit Überschriften zu versehen.

Anmerkung: Abbildungen haben immer Unterschriften, Tabellen (genauso wie Code- und Dateilistings) immer Überschriften. Entsprechend muß man dann die caption-Umgebung positionieren.

Innerhalb der Syntaxelemente ist fast jedes weitere DokuWiki-Markup erlaubt.

Die caption-Umgebung sorgt für eine automatische Nummerierung und die Ausgabe des Strings „Abb.“ bzw. „Abbildung“ (und entsprechend für die Tabellen).

Ob die abgekürzte oder ausgeschriebene Schreibweise verwendet werden soll, kann über die Konfigurationsoberfläche des Plugins eingestellt werden. Die jeweiligen Strings sind lokalisiert, Lokalisierungen für Deutsch und Englisch sind momentan vorhanden, weitere lassen sich bei Bedarf sehr einfach nachinstallieren1).

Hinweis: Im DokuWiki ist innerhalb einer <caption> fast alles erlaubt, allerdings sollte man sich dessen bewußt sein, daß z.B. Fußnoten innerhalb einer Gleitumgebung in LaTeX nicht erlaubt sind.2)

Labels und Referenzen

Da die Abbildungen und Tabellen durch das Plugin automatisch durchnummeriert werden, gibt es den Bedarf, genauso automatisch im Text auf diese Abbildungen/Tabellen verweisen zu können, ohne jedesmal beim Umgruppieren der Abbildungen/Tabellen alle Referenzen von Hand abändern zu müssen.

Die ursprüngliche Einschränkung durch den Parser, daß nur Referenzen auf bereits definierte Abbildungen/Tabellen aufgelöst wurden, wurde mittlerweile behoben3).

Die Syntax sieht wie folgt aus:

<figure label>
...
</figure>

...

{{ref>label}}

Analog gilt das für die Tabellen. D.h. das (optionale) Label wird im öffnenden Tag einer Abbildung/Tabelle definiert4) und über die Struktur

{{ref>label}}

darauf verwiesen. Dabei wird bei der Referenz nicht zwischen Abbildungen und Tabellen unterschieden, sie gibt ausnahmslos (wie der entsprechende LaTeX-Befehl \ref{}) die zugehörige Zahl aus. Diese Zahl ist gleichzeitig ein Link auf die entsprechende Abbildung/Tabelle.

Hinweis: Ist für eine Abbildung/Tabelle ein Label definiert, wird das als „hover“-Text („Tooltip“) angezeigt, wenn man sich mit der Maus über den entsprechenden Beginn der jeweiligen Beschriftung („Abb[ildung] n“/„Tab[belle] m“) bewegt.

Zähler setzen

Manchmal möchte man den Zähler manuell setzen. Das kann an beliebiger Stelle auf der Seite geschehen, und zwar unabhängig für alle vier Arten von Umgebungen (Abbildung, Tabelle, Code-, Dateilisting). Soll z.B der Zähler für Abbildungen auf 5 gesetzt werden, sähe der Befehl so aus:

{{setcounter figure=5}}

Hinweis: Es lassen sich nur die vier definierten Typen (figure, table, codeblock, fileblock) setzen, und auch nur auf positive ganzzahlige Werte.

Beispiel

Und so könnte das DokuWiki-Markup dann aussehen:

<figure>
{{:stuff:kuschelpanzer.jpg|Kuschelpanzer}}
<caption>**Der ultimative rosa Kuschelpanzer.** Jetzt muß ich doch endlich mal eine
Abbildungsunterschrift kreieren, in der auch ein paar //Formatierungen// vorkommen.
Grundsätzlich ist ja alles erlaubt((Fußnoten eigentlich auch?))</caption>
</figure>

Und das Ergebnis:

Beispiel für ein Bild mit Bildunterschrift

bzw. analog für eine Tabelle:

<table>
<caption>Und eine Tabellenüberschrift mit etwas **fettem Text**.</caption>
 
^ Heading 1 ^ Heading 2 ^ Heading 3 ^
| Some text | some more text | some less text |
| no idea what to write in here |||
| | But still some idea for here ||
 
</table>

Und das Ergebnis:

Beispiel für eine Tabelle mit Tabellenüberschrift

Styles

Die einzelnen Elemente sind weitestgehend separat ansprechbar und über Änderungen der CSS-Datei des Plugins anpaßbar.

Nachfolgend ist ein Beispiel für den vom Plugin erzeugten XHTML-Code mit der Angabe der entsprechenden Klassen.

<figure class="plugin_caption_figure">
    <figcaption class="plugin_caption_caption">
        <span class="plugin_caption_caption_number">Abbildung 2:</span>
        <span class="plugin_caption_caption_text">...</span>
    </figcaption>
</figure>

Grundsätzlich ist es wichtig, die Abbildungsunter- und Tabellenüberschriften so zu formatieren, daß sie sich möglichst klar vom umliegenden Fließtext unterscheiden lassen (insbesondere, wenn sie mehrere Absätze umfassen, was vielleicht seltener der Fall ist, aber durchaus vorkommen kann).

Konfiguration

Über die DokuWiki-Konfigurationsoberfläche kann eingestellt werden, ob die Über-/Unterschriften mit abgekürzten oder ausgeschriebenen „Labels“ beginnen („Abbildung“ vs. „Abb.“/„Tabelle“ vs. „Tab.“).

Die „Labels“ sind über die Standardlokalisierung der Plugins vorerst in Deutsch und Englisch vorhanden, können aber bei Bedarf auch für andere Sprachen ergänzt werden.

Code

Die jeweils neueste Version zum Herunterladen:

Bitte beachten: Nutzung auf eigene Verantwortung. Fehler und Sicherheitslücken sind nicht ausgeschlossen. Jeder, der Fehler entdeckt, wird herzlich gebeten, sie entsprechend (via github) zu berichten.

1)
entsprechend den Richtlinien und Strukturen von DokuWiki für die Mehrsprachigkeit.
2)
Eine entsprechende automatische Handhabung von Fußnoten im Rahmen des dokulatex-Plugins innerhalb von Gleitumgebungen geht (zumindest im Moment) über die Möglichkeiten und das sinnvolle Maß an Programmieraufwand hinaus.
3)
Der „Trick“ ist etwas grob, da es sich um ein Suchen&Ersetzen im bereits geparsten Teil der aktuellen Seite handelt.
4)
Man achte auf möglichst kurze, prägnante, aber aussagekräftige Labels. Da dieselben Labels auch im Falle eines LaTeX-Exports in LaTeX verwendet werden, gelten alle Einschränkungen der LaTeX-Labels: keine Sonderzeichen wie Umlaute, keine Leerzeichen
de/software/dokuwiki/caption.txt · Zuletzt geändert: 2021/09/29 15:40 von till