Die LaTeX-Pakete fancyref (von Axel Reichert) und durch die Paketoption vario
auch varioref (von Frank Mittelbach) bieten Autoren einen erheblichen Komfort beim Schreiben von Texten: Aus einem einfach referenzieren eines Ankers mit einem Befehl wie \fref{sec:anderer-teil}
generiert das Paket einen wunderschöne benannten Querverweis »Abschnitt 3.3 auf Seite 123« inklusive der Seitenzahl. Das Paket kann auch selbst erkennen, auf was da verwiesen wird, zum Beispiel Kapitel. Nun machte mich meine Lektorin darauf aufmerksam, ich solle doch bitte, wenn ich auf Kapitel verweise, nicht »auf Seite 123« schreiben, sondern »ab Seite 123,« da das Kapitel ja erheblich länger ist und ich durch »auf« doch eine gewisse räumliche Nähe suggerierte.
Als langjährigem LaTeX-Nutzer wäre es mir nun ein Graus, das händisch überall durchführen zu müssen und den doppelten Code zu schreiben:
[tex light=“1″ wraplines=“1″]\fref[plain]{cha:anderes-kapitel} ab Seite~\pageref{cha:anderes-kapitel}[/tex]
Was Sie von den LaTeX-Paketen fancyref und varioref haben, können Sie in meinem Buch »Wissenschaftliche Arbeiten schreiben mit LaTeX« lernen.
Die Lösung fand ich nach ein wenig Suchen im Quelltext der beiden oben angesprochenen Pakete und war angenehm überrascht, dass es relativ einfach von statten geht. Wenige Befehle in der Präambel reichen bereits aus:
[tex highlight=“7,8-19″]
\documentclass[b6paper]{scrbook}
\usepackage{geometry}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{ifthen,hyperref}
\usepackage[german,vario]{fancyref}
\fancyrefchangeprefix{\fancyrefchaplabelprefix}{cha}
\makeatletter
\let\@f@ref@sav=\@f@ref
\renewcommand*{\@f@ref}[4]{%
\def\@curtlabtype{#3}%
\protect\@f@ref@sav{#1}{#2}{#3}{#4}%
}%
\addto\extrasngerman{%
\renewcommand\reftextfaraway[1]{%
\ifthenelse{\equal{\@curtlabtype}{cha}}{ab Seite}{auf Seite}~\pageref{#1}}%
}
\makeatother
\begin{document}
\chapter{Ein Kapitel}
\label{cha:ein-kapitel}
Sehen wir später in \fref{cha:noch-ein-kapitel}.\\
Sehen wir später in \fref{sec:noch-ein-unterk}.
\section{Ein Unterkapitel}
\label{sec:ein-unterkapitel}
Blabla.
\chapter{Noch ein Kapitel}
\label{cha:noch-ein-kapitel}
Sahen wir vorher in \fref{cha:ein-kapitel}.\\
Sahen wir vorher in \fref{sec:ein-unterkapitel}.
\section{Noch ein Unterkapitel}
\label{sec:noch-ein-unterk}
Blabla.
\end{document}
[/tex]
Laden Sie zunächst in Zeile 7 das Paket fancyref mit der Option vario
fürs automatische Einfügen der Seitenzahlen und der Option german
für deutsche Sprache. In der darauf folgenden Zeile stelle ich den Präfix für Kapitelanker um, da mein Lieblingseditor Emacs halt »cha« verwendet.
Da Sie für die eigentliche Anpassung Makros mit einem @ im Namen brauche, packen Sie den Code in zwischen die Befehle \makeatletter
und \makeatother
in den Zeilen 9 und 19.
Die Zeilen 10 bis 14 verändern den Befehl \@f@ref
und fügen einen Merker für den momentan erkannten Ankertyp zu. Diesen brauchen Sie dann im nächsten Befehl.
Nun verändern Sie für die Sprache ngerman ein weitere Makro namens \reftextfaraway. Im Original schreibt dieses für weiter als eine Seite entfernte Querverweise den Text »auf Seite«. Sie fügen nun eine Verzweigung ein, die »ab Seite« einfügt, wenn der Ankerpräfix »cha« lautet, ansonsten das normale »auf Seite.« Und das war’s auch schon. Das Ergebnis sehen Sie in der erstellten PDF-Datei:abseite.pdf und in den folgenden zwei Zeilen:
Sehen wir später in Kapitel 2 ab Seite 3.
Sehen wir später in Abschnitt 2.1 auf Seite 3.
Wissenschaftliche Arbeiten schreiben mit LaTeX (mitp Professional): Leitfaden für Einsteiger
9,99 €
(as of 21. Januar 2025 08:25 GMT +01:00 – More infoProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)
Da ich niemals auf ganze Teile eines Buchs verweise, sondern nur auf Kapitel oder darunter, reicht dies aus.
Sie wollen jetzt wissen, wie Sie mit den LaTeX-Paketen fancyref und varioref umgehen? Dann empfehle ich Ihnen mein Buch »Wissenschaftliche Arbeiten schreiben mit LaTeX« mit allem, was ein schönes Dokument ausmacht.
Wenn Ihnen dieser Beitrag gefallen hat, empfehlen Sie mich doch bitte weiter.
Schreiben Sie einen Kommentar