Referenzen in LaTeX mit automatischer Objektbezeichnung und Seitenzahl durch Kombination von varioref und cleveref

Sonntag, 15. August 2010, 12:40 Uhr von Christian

Mithilfe der LaTeX-Pakete varioref und cleveref lässt sich der Umgang mit Referenzen stark vereinfachen.

Das cleveref-Paket bietet Befehle, die den Typ des referenzierten Objekts erkennen und der numerischen Referenz auf das Objekt auch dessen Bezeichnung wie „Abbildung“, „Kapitel“, „Abschnitt“, „Tabelle“ usw. voranstellen. Mit dem varioref-Paket stehen Befehle bereit, welche die numerische Referenz um eine Seitenangabe (wie „auf dieser Seite“, „auf der nächsten Seite“ oder „auf Seite 23″) ergänzen. In Kombination dieser Pakete lässt sich allein durch \vref{bild1} z. B. die Ausgabe „Abbildung 1.1 auf Seite 23″ erzeugen.

Ich wollte nun aber, dass bei Referenz auf ein Objekt, das evtl. von LaTeX auf dieselbe Seite gesetzt wird, nicht „auf dieser Seite“ erscheint, weil das einfach den Lesefluss stört. Auch finde ich es überflüssig, darauf hinzuweisen, dass sich etwas „auf der nächsten Seite“ oder „auf der vorherigen Seite“ befindet. Mein Ziel war, eine Seitenangabe nur dann einfügen zu lassen, wenn Objekt und Referenz mindestens zwei Seiten voneinander entfernt sind. Die Lösung war schließlich, einige von varioref bereitgestellte Befehle so umzudefinieren, dass die Seitenangabe unterdrückt wird. Dabei war das größte Problem allerdings, dass wenn durch den vref-Befehl z. B. der Text „Abbildung 1.1 auf Seite 23″ generiert und durch meine Umdefinierung dieses „Seite 23″ unterdrückt wird, das Leerzeichen nach „1.1″ bestehen blieb. Letztendlich war nun die Lösung, dieses evtl. zuvor gesetzte Leerzeichen mittels \unskip zu entfernen.

Ein Beispiel soll meine Intention und die Verwendung der von varioref und cleveref bereitgestellten Befehle veranschaulichen. Es steht im LaTeX-Quellcode und daraus generierter PDF-Datei zum Download zur Verfügung. Die jeweils relevanten Bereiche der Präambel sind im Quellcode durch Kommentare gekennzeichnet, sodass sich diese Funktionalität schnell in das eigene Dokument einfügen lässt.

Geschrieben in: LaTeX | Schlagwörter: , , , , , , , , ,
Keine Kommentare »