Dr. Joachim Schlosser

Führung | Effektivität | Fotografie

  • Über
    • Bio und Pressefotos
    • Bio and Photos (English)
  • Werkzeuge
    • Sketchnotes
  • Speaking
  • Kontakt
    • Produkte

In LaTeX mit Varioref/Fancyref automatisch »ab Seite« statt »auf Seite« setzen

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: Leitfaden für Einsteiger (mitp Professional)
10,64 € (as of 19. September 2023 01:54 GMT +02: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.

Teilen & Verweilen

Ähnliche Beiträge:

  • LaTeX-Buch Auflage 7
  • Implizite Führung: Bewusstes Führen durch Kommunikation
  • Allen Antworten in E-Mail – 4 Gründe dagegen
  • Bewältigen der E-Mail-Flut: E-Mails in Outlook nach Unterhaltungen gruppieren
  • Muster versus Zuschreibung in Kommunikation

Kategorie: LaTeX & Co Stichworte: fancyref, LaTeX, Querverweis, Referenz, varioref

10. Februar 2011 von Joachim Schlosser 2 Kommentare

E-Mail effizient einsetzen

Kostenloses eBook

Das eBook »E-Mail effizient einsetzen« zeigt Ihnen, wie Sie E-Mail besser nutzen. Mehr Info...

Ja, will ich haben!

Über 1800 E-Mail-Abonnenten!
« Die eigene Sichtweise macht die Realität aus
Stress liegt im Auge des Betrachters – Was Pendler nicht nerven muss »

Kommentare

  1. JF meint

    16. Juli 2013 um 16:52

    Genial! :) Aber leider bekomme ich es bei meinen eigenen Querverweisen nicht hin. :) Bsp. für einen eigenen Querverweis:

    \usepackage[english,german,vario]{fancyref}

    \newcommand*{\fancyrefuabschlabelprefix}{uabsch}
    \newcommand*{\uabschnittname}{Unterabschnitt}
    \frefformat{plain}{\fancyrefuabschlabelprefix}{%
    \MakeUppercase{\uabschnittname}\fancyrefdefaultspacing#1#2%
    }%
    \Frefformat{plain}{\fancyrefuabschlabelprefix}{%
    \MakeUppercase{\uabschnittname}\fancyrefdefaultspacing#1#2%
    }%
    \Frefformat{plain}{\fancyrefuabschlabelprefix}{Unterabschnitt~#1}
    \frefformat{plain}{\fancyrefuabschlabelprefix}{Unterabschnitt~#1}

    \frefformat{vario}{\fancyrefuabschlabelprefix}{%
    \MakeUppercase{\uabschnitt}\fancyrefdefaultspacing#1#2%
    }%
    \Frefformat{vario}{\fancyrefuabschlabelprefix}{%
    \MakeUppercase{\Uabschnittname}\fancyrefdefaultspacing#1#2%
    }%
    \Frefformat{vario}{\fancyrefuabschlabelprefix}{Unterabschnitt~#1 auf Seite #2}
    \frefformat{vario}{\fancyrefuabschlabelprefix}{Unterabschnitt~#1 auf Seite #2}

    Meine eigenen Querverweise (Kapitel, Unterkapitel, Abschnitt, Unterabschnitt) funktionieren wunderbar, aber irgendwie will es mir nicht gelingen, auch noch „ab Seite“ reinzubringen. Wie könnte es gehen?

    Beste Grüße

    JF

    Antworten
    • Joachim Schlosser meint

      18. Juli 2013 um 07:22

      Was hast du denn versucht? Wie sieht das vollständige Minimalbeispiel aus? Gerne per Mail oder als Link in den Kommentar (nicht einfach ganz reinkopieren).

Schreiben Sie einen Kommentar Antworten abbrechen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

E-Mail effizient einsetzen

Kostenloses eBook

Das eBook »E-Mail effizient einsetzen« zeigt Ihnen, wie Sie E-Mail besser nutzen. Mehr Info…

Ja, will ich haben!

Über 1900 E-Mail-Abonnenten!

RSS-Feed English RSS Feed

Ähnliche Beiträge:

  • LaTeX-Buch Auflage 7
  • Kooperationsanfragen und Sponsored Posts
  • Implizite Führung: Bewusstes Führen durch Kommunikation
  • Allen Antworten in E-Mail – 4 Gründe dagegen
  • Bewältigen der E-Mail-Flut: E-Mails in Outlook nach Unterhaltungen gruppieren

Meistgelesen

  • Bewältigen der E-Mail-Flut: E-Mails in Outlook nach Unterhaltungen gruppieren
  • Todo-Übersicht mit Aufgabenliste in OneNote
  • Nennen Sie Ihre Quellen – Literaturverzeichnis mit Zotero. Sauber zitieren in Microsoft Word und LibreOffice
  • 5 E-Mail-Ordner im Posteingang genügen
  • Urlaubszeit ‒ schnell viele Termine in Outlook absagen
  • E-Mails in Outlook 3 Minuten verzögern und sich nie wieder über vorschnelles Senden ärgern
  • 10 Arten von Vortrag – Unterschiede, Gemeinsam­keiten

Wer schreibt hier?

Hallo. Ich bin Dr. Joachim Schlosser. Beruflich führe ich bei Elektrobit Automotive Informatiker und Ingenieure, die Automobilfirmen zu Softwarearchitektur, Agile Entwicklung und Funktionale Sicherheit beraten. Daneben bin ich Autor eines LaTeX-Lehrbuches, MINT-Botschafter und blogge zweiwöchentlich hier auf www.schlosser.info.

Ich bin glücklich verheiratet, Vater dreier Kinder, Fotograf, bekennender Produktivitäts-Junkie und Getting-Things-Done Anhänger sowie Vortragscoach für meine Mitarbeiter und Kollegen. Über diese Themen schreibe ich auch hier.

Themen

Arbeit Bahn Buch Digitalisierung E-Mail Entscheidung Entwicklung Fokus Fotografie Führung Geschichte Gesellschaft Getting Things Done GTD Inspiration Internet Kinder Kommunikation Konferenz LaTeX Lernen Management Marketing MATLAB Modellierung Organisation Outlook Politik Produktivität Projekt Präsentation Psychologie Rede Roman Schreiben Simulation Simulink Software Technologie Video Vortrag Wahrnehmung Windows Wirtschaft Wissenschaft
  • Effektivität
  • Kommunikation
  • Technologie
  • Schreiben
  • Lesen
  • Fotografie

Copyright 2000–∞ Dr. Joachim Schlosser. Impressum. Datenschutzerklärung.

Manage Cookie Consent
Ich verwende Cookies, um diese Website und meinen Service zu optimieren.
Funktional Immer aktiv
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Voreinstellungen erforderlich, die nicht vom Abonnenten oder Nutzer beantragt wurden.
Statistics
The technical storage or access that is used exclusively for statistical purposes. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Aufforderung, die freiwillige Zustimmung Ihres Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht zu Ihrer Identifizierung verwendet werden.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Optionen verwalten Dienste verwalten Manage {vendor_count} vendors Lesen Sie mehr über diese Zwecke
Vorlieben
{title} {title} {title}

[emailsignup_uni source=popup bare=-1]