% \iffalse
%
% Sehr coole Biblatex-styles für Historiker :)
%
%
%<*driver>
\documentclass[a4paper]{ltxdoc}
\usepackage{hypdoc}
\usepackage{geschichtsfrkldoc}
\usepackage{ifxetex}
\ifxetex
  \usepackage[no-math]{fontspec}
  \usepackage{polyglossia}
  \setdefaultlanguage{german}
  \setmainfont[Mapping=tex-text,Numbers=OldStyle]{Linux Libertine O}
  \setsansfont[Mapping=tex-text,Numbers=OldStyle]{Linux Biolinum O}
\else
  \usepackage[utf8]{inputenc}
  \usepackage[T1]{fontenc}
  \usepackage[german]{babel}
\fi
\usepackage{csquotes}
\usepackage[nameinlink]{cleveref}
\usepackage{enumitem}
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 2pt}
\setenumerate[1]{label=(\alph*),leftmargin=*,nolistsep,parsep=\parskip}
\usepackage{changepage}
\newenvironment{bsp}{\begin{adjustwidth}{1cm}{1cm}}{\end{adjustwidth}}
%\hypersetup{colorlinks=false}
%\listfiles
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
  \DocInput{geschichtsfrkl.dtx}
\end{document}
%</driver>
%<*bbx>
% \fi
%
% \MakeShortVerb{\"}
% \newenvironment{syntax}{\medskip\hspace*{1em}}{\par\medskip}
% \def\verbatimchar{;}
%
% \makeatletter
% \gappto\index@prologue{Please refer to \cref{geschichtsfrkldoc} to see how we tried to incorporate the "biblatex" specific commands into this index.}
% \makeatother
%
% \title{\texttt{geschichtsfrkl} -- \texttt{biblatex} für Historiker}
% \author{Jonathan Zachhuber\thanks{\url{jonathan.zachhuber@gmail.com}}}
% \date{Version v1.4, 21. September 2016}
%
% \maketitle
% \begin{abstract}
% \noindent Idee ist es die -- teils etwas exzentrischen -- Zitiervorgaben der Historiker der Universität Freiburg in "biblatex" umzusetzen.
% \end{abstract}
%
% \tableofcontents
%
% \section{Verwendung}
%
% \DescribeBibOption{geschichtsfrkl}
% "geschichtsfrkl" ist nichts weiter als ein Zitierstil von "biblatex" muss also als solcher als Paketoption geladen werden:
% \begin{bsp}
% "\usepackage[style=geschichtsfrkl,%"\\
% "            "\meta{weitere Optionen}"]{biblatex}"\\
% "\bibliography"\marg{"bib"-Datei}\end{bsp}
% Dabei kann man weitere der \enquote{konventionellen} "biblatex"-Optionen oder der -- weiter unten beschriebenen -- von "geschichtsfrkl" zur Verfügung gestellten Optionen laden.
%
% An geeigneter Stelle sollte man natürlich noch den "\printbibliography"-Befehl aufrufen, um eine Bibliographie zu erzeugen. Diese kann "biblatex"-typisch formatiert werden, beispielsweise sind die Einträge standardmäßig ab der zweiten Zeile eingerückt und alphabetisch sortiert. Der Titel entspricht -- bei voreingestellter deutscher Sprache -- \enquote{Literatur}. Siehe dazu auch \cref{quellenverzeichnisse}.
%
% Die wichtigsten Eigenschaften sind hierbei, dass Zitate für gewöhnlich immer in Fußnoten gesetzt werden, beim ersten Zitieren eines Werks ein Vollzitat, später nur ein Kurzzitat gesetzt wird und dass bei direkt aufeinander folgenden Zitaten des gleichen Werks bzw. eines anderen Werks des gleichen Autors das Zitat durch \enquote{Ebd.} bzw. der Name des Autors durch \enquote{Ders.} ersetzt wird. Auf einer neuen Seite werden hingegen immer der Name des Autors und des Werkes vollständig angegeben.
%
% \DescribeMacro{\cite}
% Zitiert wird -- wie immer -- einfach mit "\cite":\par
% \begin{syntax}"\cite"\oarg{prenote}\oarg{postnote}\marg{Schlüssel}\end{syntax}
% wobei \meta{prenote} eine einleitende Bemerkung (z.B. \enquote{Vgl.}) ist und \meta{postnote} für gewöhnlich die Seitenzahl. Wenn nur ein optionales Argument gegeben wird, so ist das die Seitenzahl:\par
% \begin{syntax}"\cite"\oarg{postnote}\marg{Schlüssel}\end{syntax}
% \meta{Schlüssel} ist dabei in jedem Fall der Schlüssel des Eintrags aus der "bib"-Datei.
%
% \DescribeMacro{\footcite}
% \DescribeMacro{\textcite}
% \DescribeMacro{\parencite}
% Ein wichtiger Unterschied zum konventionellen Zitieren mit "biblatex" ist, dass "\cite" und "\footcite" hier immer das selbe tun, also immer in Fußnoten zitiert wird. Wenn man das explizit nicht möchte (zum Beispiel weil man schon in einer Fußnote ist), kann man "\textcite" benutzen. Und wenn man Spaß an so etwas hat, kann man auch "\parencite" benutzen, was einfach alles in Klammern setzt.
%
% \DescribeMacro{\cites}
% \DescribeMacro{\footcites}
% \DescribeMacro{\textcites}
% \DescribeMacro{\parencites}
% Wenn man mehrere Sachen auf einmal zitieren möchte empfiehlt es sich den Befehl "\cites" (bzw. "\footcites", "\textcites", "\parencites") zu benutzen und ihm alle zu zitierenden Stellen als Argumente zu übergeben:\par
% \begin{syntax}"\cites"\oarg{prenote1}\oarg{postnote1}\marg{Schlüssel1}\\
% \hspace*{5em}\oarg{prenote2}\oarg{postnote2}\marg{Schlüssel2}\ldots
%\end{syntax}
%
% Die verschiedenen Zitate werden jeweils durch ein Semikolon verbunden und es gelten natürlich die gleichen Regeln bezüglich eines einzelnen optionalen Arguments, wie bei "\cite".
%
% Zu beachten ist noch, dass "geschichtsfrkl" davon ausgeht, dass \emph{alle} verwendeten Dateien "utf8"-kodiert sind!
%
% \section{Beschreibung}
%
% Der "geschichtsfrkl"-Zitierstil definiert verschiedene \enquote{bibliography driver}, die es erlauben verschiedene Arten Werke zu zitieren. Diese werden im Folgenden zusammen mit den für sie relevanten Optionen beschrieben.
%
% \subsection{Typ \texttt{book}}\label{book}
%
% \DescribeBibDriver{book}
% Fangen wir ganz einfach an: Zu einem einfachen Buch sieht der Eintrag in der "bib"-Datei ungefähr folgendermaßen\footnote{Fast alle Beispiele sind so mehr oder weniger aus dem komischen Zitiervorlagenbuch der Alten Geschichte Freiburg entnommen, dass es leider nicht online gibt.} aus:\\[3pt]
%"@book{southern,"\\
%"	author={Southern, P.},"\\
%"	title={Domitian},"\\
%"	subtitle={Tragic Tyrant},"\\
%"	shorttitle={Domitian},"\\
%"	location={London and New York},"\\
%"	year={1997}"\\
%"}"\\[3pt]
% Ein etwas umfangreicheres Beispiel mit Feld "series" ist:\\[3pt]
%"@book{riess,"\\
%"	author={Willhelm Riess},"\\
%"	title={Apuleius und die Räuber},"\\
%"	subtitle={Ein Beitrag zur historischen Kriminalforschung},"\\
%"	shorttitle={Apuleius und die Räuber},"\\
%"	series={HABES},"\\
%"	number={31},"\\
%"	location={Stuttgart},"\\
%"	year={2001}"\\
%"}"\\[3pt]
% Die Zitierreihenfolge\\[3pt]
% "a\cite[Vgl.][43]{southern} b\cite[2]{southern}"\\
% "c\cite[Vgl.][19]{riess} d\cite[5]{southern} e\cite[20]{riess}."\\[3pt]
% liefert (in Fußnoten) folgende Einträge:
% \begin{enumerate}
% \item\label{book:a} Vgl. {\scshape Southern}, P.: Domitian. Tragic Tyrant, London / New York 1997, 43.
% \item\label{book:b} Ebd., 2. 
% \item\label{book:c} Vgl. {\scshape Riess}, Willhelm: Apuleius und die Räuber. Ein Beitrag zur historischen Kriminalforschung (HABES 31), Stuttgart 2001, 19.
% \item\label{book:d} {\scshape Southern}, P.: Domitian (1997), 5. 
% \item\label{book:e} {\scshape Riess}, W.: Apuleius und die Räuber (2001), 20.
% \end{enumerate}
%
% Durch verschiedene Paketoptionen kann dieses Verhalten noch beeinflusst werden:
%
% \DescribeBibOption{mitvn}
% \DescribeBibOption{citeinit}
% \DescribeBibOption{nurinit}
% Wenn in den Kurzzitaten \ref{book:d} und \ref{book:e} -- so weit vorhanden -- die vollen Vornamen angezeigt werden sollen (wie auch im Vollzitat), so kann man das mit der Option "mitvn" erreichen. Wenn bei \emph{allen} vorkommenden Vornamen nur Initialien benutzt werden sollen, so geschieht dies durch die Option "nurinit" und wenn dies nur bei Namen, die in Zitaten (nicht in der Bibliographie) auftauchen passieren soll, so benutzt man die Optionen "citeinit". Das ist die Voreinstellung. Wenn man also gar keine Vornamen möchte, so sollte man dem Paket die Option "citeinit=false" übergeben.
%
% \DescribeBibOption{mitjahr}
% Standardmäßig wird bei einem Kurzzitat auch das Jahr in Klammern mit angegeben. Wenn man das nicht möchte, so sollte man die Paketoption "mitjahr=false" verwenden. Dadurch (zusammen mit "citeinit=false") verwandelt sich zum Beispiel \ref{book:d} in
%
% \begin{bsp} 
% {\scshape Southern}: Domitian, 5.
% \end{bsp}
%
% \DescribeBibOption{jahrkeineklammern}
% Möchte man nur auf die Klammern verzichten, so ist einem das durch die Option "jahrkeineklammern" möglich.
%
% \DescribeBibOption{mits}
% Soll der Seitenzahl nach dem Zitat ein \enquote{S.} vorausgestellt werden, so kann dies durch die Option "mits" erreicht werden.
% \DescribeBibOption{ibidpages}
% Um bei Seitenzahlen zu bleiben: Nach einem \enquote{Ebd.}, wie zum Beispiel in \ref{book:b} wird \emph{bei gleicher Seitenzahl} diese nicht nocheinmal ausgegeben. Soll dies trotzdem geschehen, so muss die Option "ibidpages" benutzt werden.
%
% \DescribeBibOption{neueseitevollzitat}
% Standardmäßig werden mehrfach hintereinander zitierte Quellen durch \enquote{ebd.} bzw. Autoren durch \enquote{ders.} ersetzt. Ist das Zitat, auf das sich bezogen wird, auf der vorherigen Seite, geschieht das nicht; es wird dann ein normales Kurzzitat (immer inklusive Seitenzahl) ausgegeben. Wenn das nicht gewünscht wird, sollte man das Paket mit der Option "neueseitevollzitat=false" aufrufen.
%
% \DescribeBibOption{jahrreihe}
% Mit der Option "jahrreihe" kann man bewirken, dass die Reihe (Felder "series" und "number") erst \emph{nach} dem Jahr ausgegeben werden. Bei \ref{book:c} ändert das die Ausgabe zum Beispiel zu
%
% \begin{bsp}
% Vgl. {\scshape Riess}, Willhelm: Apuleius und die Räuber. Ein Beitrag zur historischen Kriminalforschung, Stuttgart 2001 (HABES 31), 19.
% \end{bsp}
%
% \DescribeBibOption{fnverweise}
% Die Option "fnverweise" fügt an ein Folgezitat den Hinweis \enquote{(Wie Anm. \meta{Nummer der Fußnote des Erstzitats})}. Hier empfiehlt es sich wahrscheinlich entweder ganz auf des Jahr (also "mitjahr=false") oder zumindest auf die Klammern ("jahrkeineklammern") zu verzichten. Wurde der folgende Eintrag zum ersten Mal in Fußnote 3 zitiert, liefert ein erneuter "\cite"-Befehl
%\begin{bsp}  {\scshape Southern}, P.: Domitian 1997 (wie Anm. 3), 2.\end{bsp}
%
% \DescribeEntryOption{nurshorthand}
% Bei bestimmten Werken hat das Kurzzitat eine eigenartige Form (siehe \cref{optionen} für Spezialfälle). In solchen Fällen kann der "bib"-Eintrag mit der Option "nurshorthand" versehen werden, dann bleibt das Erstzitat unverändert, das Kurzzitat besteht aber \emph{nur} aus dem "shorthand"-Feld (und natürlich gegebenenfalls angegeben "prenote" und "postnote"-Feldern, sowie -- in Abhängigkeit von "fnverweise" -- einem Verweis auf das Erstzitat). Ein Beispiel dazu findet sich in \cref{beispiele}.
% \changes{v1.1}{2012/03/31}{Beschreibung der Option "nurshorthand".}
%
% Der Eintrag in der Bibliographie entspricht dem Erstzitat. Details erfährt man in \cref{driver}.
%
% \DescribeBibDriver{collection}
% Der Typ "collection" entspricht hier dem Typ "book".
%
% \subsection{Typ \texttt{inbook}}\label{inbook}
%
% \DescribeBibDriver{inbook}
% Kapitel aus Sammelbändern macht man am Besten mit dem Typ "inbook". Wie das funktioniert sieht man wieder an Hand eines Beispiels:\\[3pt]
%"@inbook{christ,"\\
%"	author={Karl Christ},"\\
%"	title={Der hessische Raum in der römischen Kaiserzeit},"\\
%"	maintitle={Aus Geschichte und ihren Hilfswissenschaften},"\\
%"	maintitleaddon={Festschrift für Walter Heinemeyer zum 65."\\
%"Geburtstag},"\\
%"	editor={Herbert Bannasch and H-P. Lachmann},"\\
%"	series={Veröffentlichungen der Historischen Komission für"\\
%"Hessen},"\\
%"	number={40},"\\
%"	location={Marburg},"\\
%"	year={1979},"\\
%"	pages={528--543}"\\
%"}"\\[3pt]
% Beim Erstzitat liefert dann zum Beispiel "\cite[13]{christ}":
%
% \begin{bsp}
% {\scshape Christ}, Karl: Der hessische Raum in der römischen Kaiserzeit, in: Aus Geschichte und ihren Hilfswissenschaften. Festschrift für Walter Heinemeyer zum 65. Geburtstag, hrsg. v. Herbert Bannasch und H-P. Lachmann (Veröffentlichungen der Historischen Komission für Hessen 40), Marburg 1979, 528--543, hier 13. 
% \end{bsp}
%
% Bemerkenswert ist, dass weil der Eintrag über eigene Seitenzahlen verfügt (das Feld "pages" ist nicht leer) wird ein \enquote{hier} vor der aktuell zitierten Seite ausgegeben.
%
% Beim Folgezitat sieht das dann so aus:
%
% \begin{bsp}
% Vgl. {\scshape Christ}, K.: Der hessische Raum in der römischen Kaiserzeit (1979), 5.
% \end{bsp}
%
% Natürlich lassen sich hier gleichermaßen alle in \cref{book} beschriebenen Optionen verwenden.
%
% \DescribeBibOption{hrsg}
% Wenn beim Herausgeber statt \enquote{\meta{Buchtitel}, hrsg. v.} der Name des Herausgeber gefolgt von \enquote{(Hrsg.): \meta{Buchtitel}} stehen soll, so kann man das durch die Option "hrsg" erreichen. Der obige Eintrag wird dann zu
%
% \begin{bsp}
% {\scshape Christ}, Karl: Der hessische Raum in der römischen Kaiserzeit, in: Bannasch, Herbert / Lachmann, H-P. (Hrsg.): Aus Geschichte und ihren Hilfswissenschaften. Festschrift für Walter Heinemeyer zum 65. Geburtstag (Veröffentlichungen der Historischen Komission für Hessen 40), Marburg 1979, 528--543, hier 13.
% \end{bsp}
%
% \DescribeBibOption{maintitleebd}
% \DescribeBibOption{editorders}
% Manchmal werden sehr viele "inbook"s aus dem selben Sammelband zitiert. In diesen Fällen kann es angebracht sein, nicht jedes Mal von neuem den Titel und den Herausgeber anzugeben. Die Optionen "maintitleebd" und "editorders" ersetzen bei mehreren aufeinander folgenden "inbook"s aus dem gleichen Werk den Titel durch \enquote{ebd.} bzw. den Autor durch \enquote{ders.}. Auch hier entscheidet die Option "neueseitevollzitat" darüber, ob dies auf das erste Zitat auf einer Seite zutrifft oder nicht (siehe \cref{book}).
%
% Der Bibliographieeintrag entspricht wieder dem Erstzitat.
%
% \DescribeBibDriver{incollection}
% Der Typ "incollection" entspricht hier dem Typ "inbook".
%
% \subsection{Typ \texttt{article}}\label{article}
%
% \DescribeBibDriver{article}
% Artikel aus Fachzeitschriften können folgendermaßen behandelt werden: Der "bib"-Eintrag\\[3pt]
%"@article{strobel,"\\
%"	author={Karl Strobel},"\\
%"	title={Der Aufstand des L. Antonius Saturninus und der so"\\
%"genannte zweite Schattenkrieg Domitians},"\\
%"	shorttitle={L. Antonius Saturninus und der zweite"\\
%"Schattenkrieg Domitians},"\\
%"	journal={Tyche},"\\
%"	number={1},"\\
%"	year={1986},"\\
%"	pages={203--220}"\\
%"}"\\[3pt]
% wird bei erstmaligem "\cite[7]{strobel}" zu
%
% \begin{bsp}
% {\scshape Strobel}, Karl: Der Aufstand des L. Antonius Saturninus und der so genannte zweite Schattenkrieg Domitians, in: Tyche 1 (1986), 203--220, hier 7.
% \end{bsp}
%
% und bei wiederholtem zitieren zu
%
% \begin{bsp}
% {\scshape Strobel}, K.: L. Antonius Saturninus und der zweite Schattenkrieg Domitians (1986), 6.
% \end{bsp}
%
% Auch hier lassen sich natürlich die Optionen aus \cref{book} (zum Beispiel zum Anzeigen des Vornamens beim Kurzzitat) verwenden.
%
% Der Bibliographieeintrag entspricht wie gewohnt dem Erstzitat.
%
% \subsection{Typ \texttt{inreference}}\label{inreference}
%
% \DescribeBibDriver{inreference}
% Mit dem Typ "inreference" können beispielsweise Lexikonartikel zitiert werden. Der "bib"-Eintrag\\[3pt]
%"@inreference{kinzel,"\\
%"	author={Kinzel, K.},"\\
%"	title={Peisistratos},"\\
%"	maintitle={DNP},"\\
%"	number={4},"\\
%"	volume={9},"\\
%"	year={2000},"\\
%"	pages={483f.}"\\
%"}"\\[3pt]
% liefert im Erstzitat
%
% \begin{bsp}
%  {\scshape Kinzel}, K.: Art. \enquote{Peisistratos [4]}, in: DNP 9 (2000), 483f. hier 488. 
% \end{bsp}
%
% und im Folgezitat:
%
% \begin{bsp}
% {\scshape Kinzel}, K.: Peisistratos (2000), 490.
% \end{bsp}
%
% Der Eintrag im Literaturverzeichnis entspricht wieder dem Erstzitat.
%
% \subsection{Typ \texttt{review}}\label{review}
%
% \DescribeBibDriver{review}
% Rezensionen kann man mit dem Typ "review" zitieren. In der Praxis sieht das so aus:\\[3pt]
%"@review{schmitz,"\\
%"	author={Schmitz, W.},"\\
%"	title={{\scshape Patterson}, C.B.: The Family in Greek History,"\\
%"Cambridge/Massachu\-setts / London 1998},"\\
%"	journal={Gnomon},"\\
%"	number={74},"\\
%"	year={2002},"\\
%"	pages={182f.}"\\
%"}"\\[3pt]
% Das Erstzitat
%
% \begin{bsp}
% {\scshape Schmitz}, W. (Rez.): \enquote{{\scshape Patterson}, C.B.: The Family in Greek History, Cambridge/Massachusetts~/ London 1998}, in: Gnomon 74 (2002), 182f. hier 185. 
% \end{bsp}
%
% und -- wie immer -- das Kurzzitat:
%
% \begin{bsp}
%  {\scshape Schmitz}, W.: {\scshape Patterson}, C.B.: The Family in Greek History, Cambridge/ Massachusetts~/ London 1998 (2002), 186.
% \end{bsp}
%
% Wie gewohnt entspricht der Eintrag im Literaturverzeichnis dem Erstzitat.
%
% \subsection{Weitere Optionen}\label{optionen}
%
% Bei bestimmten Spezialfällen ist es sinnvoller einen einzelnen Eintrag durch eine Spezielle Option (in der "bib"-Datei) hervorzuheben, als einen eigenen Typ zu verwenden.
%
% \DescribeEntryOption{diss}
% Erstes Beispiel dafür sind Dissertationen. Ein "book" kann in der "bib"-Datei mit der Option "diss" versehen werden, dann wird dieses in der Bibliographie (und folglich auch beim Erstzitat) als Dissertation kenntlich gemacht. Wir betrachten das am besten wieder an Hand eines Beispiels:\\[3pt]
%"@book{urner,"\\
%"	author={Carl Urner},"\\
%"	title={Kaiser Domitian im Urteil antiker literarischer Quellen"\\
%"und moderner Foschung},"\\
%"	options={diss},"\\
%"	location={Augsburg},"\\
%"	year={1993}"\\
%"}"\\[3pt]
% Das liefert beim Erstzitat "\cite[25]{urner}":
%
% \begin{bsp}
%  {\scshape Urner}, Carl: Kaiser Domitian im Urteil antiker literarischer Quellen und moderner Foschung, Diss. Augsburg 1993, 25.
% \end{bsp}
%
% Beim Kurzzitat:
%
% \begin{bsp}
% {\scshape Urner}, C.: Kaiser Domitian im Urteil antiker literarischer Quellen und moderner Foschung (1993), 27.
% \end{bsp}
%
% \DescribeEntryOption{urkunde}
% Ein weiteres Beispiel sind mittelalterliche Urkunden. Die Option "urkunde" sollte bei einem "inbook" verwendet werden, wir veranschaulichen das wieder an einem Beispiel: Der "bib"-Eintrag\\[3pt]
%"@inbook{D41,"\\
%"	pages = {158--159},"\\
%"	title = {Diplom 41},"\\
%"	sorttitle={Diplom 041},"\\
%"	location = {München},"\\
%"	editor = {Theodor Schieffer},"\\
%"	maintitle = {Die Urkunden der burgundischen Rudolfinger},"\\
%"	year = {1977},"\\
%"	keywords={Quelle},"\\
%"	options={urkunde},"\\
%"}"\\[3pt]
% wird so beim Erstzitat zitiert:
% \begin{bsp} Diplom 41, in: Die Urkunden der burgundischen Rudolfinger, hrsg. v. Theodor Schieffer, München 1977, 158--159.\end{bsp}
% Aber im Folgenden nur noch als
% \begin{bsp} Diplom 41. \end{bsp}
% Bemerkenswert ist vielleicht noch das "sorttitle"-Feld. Da die Urkunden \emph{alphabetisch} nach Titel sortiert werden (da sie keinen Autor haben) würde beispielsweise \enquote{Diplom 100} vor \enquote{Diplom 41} plaziert werden, man die führende \enquote{0} aber nicht immer mitanzeigen möchte. Das Feld "keywords={Quelle}" bezieht sich auf ein eventuelles Quellenverzeichnis, siehe dazu \cref{quellenverzeichnisse}.
%
% Bei der Optionen empfiehlt es sich -- vor allem wenn man viele Urkunden aus einer Sammlung zitiert -- eventuell die Optionen "editorders" und "maintitleebd" zu verwenden.
%
% \DescribeEntryOption{antik}
% Bei dem Zitieren antiker Autoren empfiehlt es sich diese Werke mit der Option "antik" zu versehen. Wir betrachten wieder ein Beispiel:\\[3pt]
%"@book{pl1,"\\
%"	author={{Plinius Secundus}},"\\
%"	shorthand={Plin. Nat.},"\\
%"	maintitle={Naturalis Historiae},"\\
%"	translator={Roderich König and Gerhard Winkler},"\\
%"	address={Darmstadt},"\\
%"	year={1973},"\\
%"	keywords={quelle},"\\
%"	options={antik}"\\
%"}"\\[3pt]
% erscheint im Literaturverzeichnis als:
%\begin{bsp}{\scshape Plinius Secundus}: Naturalis Historiae, hrsg. u. übers. v. Roderich König und Gerhard Winkler, Darmstadt 1973.\end{bsp}
% Beim Zitieren wird allerdings nur das Feld "shorthand" berücksichtigt: "\cite[12]{pl1}" liefert
%\begin{bsp}Plin. Nat. 12.\end{bsp}
% In diesem Fall entspricht das Erstzitat \emph{nicht} dem Eintrag im Literaturverzeichnis, sondern sieht genau so aus!
%
% In jedem Fall erscheint bei mehreren Werken des selben Autors nicht wie sonst \enquote{Ders.}; stattdessen wird der Autor vor jedem Werk wieder genannt.
%
% \DescribeBibOption{antikebd}
% Soll hier bei wiederholtem Zitieren des selben Werks auch \emph{ebd.} verwendet werden, so kann das durch die Paketoption "antikebd" erreicht werden.
% \changes{v1.1}{2012/03/31}{Beschreibung der Option "antikebd".}
%
% Man beachte außerdem die Verwendung des Feldes "translator". Zudem kann man in dem Feld "language" noch die Sprachen angeben. Dazu noch ein Beispiel:\\[3pt]
%"@book{herodot,"\\
%"	author={{Herodot}},"\\
%"	shorthand={Hdt.},"\\
%"	maintitle={Historien},"\\
%"	translator={Josef Feix},"\\
%"	address={Darmstadt},"\\
%"	year={1995},"\\
%"	volume={1},"\\
%"	title={Bücher {\scshape i--v}},"\\
%"	keywords={quelle},"\\
%"	language={gr.--dt.},"\\
%"	options={antik}"\\
%"}"\\[3pt]
% Dabei kann synonym zu "address" auch "location" verwendet werden. Was man mit dem "keywords={quelle}"-Feld anfangen kann, wird in \cref{quellenverzeichnisse} angedeutet. Im Literaturverzeichnis sieht der Eintrag zumindest so aus:
% \begin{bsp} {\scshape Herodot}: Historien, Bd. 1: Bücher {\scshape i--iv}, gr.--dt., hrsg. u. übers. v. Josef Feix, Darmstadt 1995.\end{bsp}
% Beachtenswert ist dabei die Verwendung des Feldes "volume". Details dazu findet man in \cref{driver}.
%
% Beim Zitieren zählt wieder das "shorthand"-Feld: "\cite[5,97,3]{herodot}" wird in jedem Fall zu
%\begin{bsp}Hdt. 5,97,3.\end{bsp}
%
% \DescribeEntryOption{frg}
% Wenn man Fragmente zitiert kann man dazu die Option "frg" bzw. "frgantik" wählen. Das wirkt sich dann leicht unterschiedlich auf die Zitatsform aus. Wir betrachten das am besten wieder an Beispielen: Der "bib"-Eintrag\\[3pt]
%"@book{alkaios,"\\
%"	author={{Alkaios}},"\\
%"	shorthand={Alk.},"\\
%"	sortname={Edgar Lobel and Denys Page},"\\
%"	maintitle={Poetarum Lesbiorum Fragmenta},"\\
%"	editor={Edgar Lobel and Denys Page},"\\
%"	shorteditor={LP},"\\
%"	address={Oxford},"\\
%"	year={1955},"\\
%"	keywords={quelle},"\\
%"	options={frg}"\\
%"}"\\[3pt]
% Das "sorttitle"-Feld sorgt hier dafür, dass der Eintrag nicht unter \enquote{Alkaios} sondern den Namen der Herausgeber sortiert wird. Im Literaturverzeichnis sieht das dann folgendermaßen aus:
%\begin{bsp} {\scshape Lobel}, Edgar / {\scshape Page}, Denys (Hrsg.): Poetarum Lesbiorum Fragmenta, Oxford 1955.\end{bsp}
% Wenn man ihn zitiert, erscheint bei "\cite[2]{alkaios}"
% \begin{bsp} Alk. frg. 2 LP.\end{bsp}
% Bemerkenswert ist insbesondere die Verwendung des "shorteditor"-Feldes. Ansonsten wird nur der Nachname des Herausgebers angegeben. Details findet man in \cref{driver}.
%
% \DescribeEntryOption{frgantik}
% Bei der Option "frgantik" unterscheidet sich vor allem die Zitierweise: Der Eintrag\\[3pt]
%"@book{theognis,"\\
%"	author={{Theognis}},"\\
%"	shorthand={Theog.},"\\
%"	maintitle={Theognis},"\\
%"	editor={Douglas Young},"\\
%"	sortname={Douglas Young},"\\
%"	address={Leipzig},"\\
%"	year={1971},"\\
%"	keywords={quelle},"\\
%"	options={frgantik}"\\
%"}"\\[3pt]
% unterscheidet sich nicht wirklich durch seinen Eintrag im Literaturverzeichnis:
%\begin{bsp} {\scshape Young}, Douglas (Hrsg.): Theognis, Leipzig 1971.\end{bsp}
% Zitiert man ihn aber durch "\cite[3]{theognis}", so entfällt hier das \enquote{frg.}:
% \begin{bsp} Theog. 3 Young. \end{bsp}
% Details findet man wieder in \cref{driver}.
%
% \changes{v1.3}{2013/07/19}{Beschreibung Option "editionen"}
% \DescribeEntryOption{editionen}
% Ein weiterer Sonderfall sind Quellen-Editionen. Diese werden normalerweise nicht im Text direkt zitiert sondern mit "\nocite" eingebunden. Sie unterscheiden sich von einem gewöhnlichen "book"-Eintrag nur dadurch, dass in der Bibliographie zunächst das "shorthand"-Feld und nach einem Zeilenumbruch der gewöhnliche Eintrag ausgegeben wird. Genauer: der "bib"-Eintrag\\[3pt]
%"@book{herrmann,"\\
%"  shorthand={IvM},"\\
%"  editor={Peter Herrmann and Albert Rehm},"\\
%"  title={Inschriften von Milet, Teil 1},"\\
%"  location={Berlin},"\\
%"  options={editionen},"\\
%"  date={1997},"\\
%"}"\\[3pt]
% sieht in der Bibliographie so aus:
% \begin{bsp}
%\hspace*{-1em}IvM:\\ \textsc{Herrmann}, Peter / \textsc{Rehm}, Albert (Hrsg.): Inschriften von Milet, Teil 1, Berlin 1997.\end{bsp}
%
% \subsection{Quellenverzeichnis}\label{quellenverzeichnisse}
%
% \DescribeMacro{\printbibliography}
% Zwar ist es keine spezielle Eigenschaft dieser "biblatex"-Formate aber vielleicht in diesem Zusammenhang doch sinnvoll zu erwähnen, wie man mit "biblatex" separate Quellen- und Literaturverzeichnisse ausgeben lassen kann. Zunächst sollten alle Quellen in der "bib"-Datei mit dem Feld
% \begin{bsp}"keywords={Quelle},"\end{bsp}
% versehen werden. Dann kann man am Ende des Dokuments (oder wo immer man seine Verzeichnisse haben möchte) mit
% \begin{bsp}
%"\printbibliography[keyword=Quelle,%"\\
%"                   heading=quellenheading]"\\
%"\printbibliography[notkeyword=Quelle]"
% \end{bsp}
% zuerst die Quellen und danach das \enquote{gewöhnliche} Literaturverzeichnis ausgeben lassen. Das "quellenheading" muss natürlich zuvor definiert werden. Denkbar wäre dazu im Dokumentkopf (also möglichst zwischen dem Laden des "biblatex"-Pakets und "\begin{document}") so etwas wie
% \begin{bsp}
% "\defbibheading{quellenheading}{\section*{Quellen}"\\
% "          \addcontentsline{toc}{section}{Quellen}}"
% \end{bsp}
% zu schreiben. Das liefert dann auch einen Eintrag im Inhaltsverzeichnis. Bei Verwendung der KOMA-Skript-Klassen, empfiehlt sich die Verwendung von "\addsec". Weitere Informationen kann man zum Beispiel der "biblatex"-Dokumentation entnehmen.
%
% \section{Zusammenfassung}
%
% Im Folgenden sind noch einmal kurz die möglichen Optionen, mit denen der Stil "geschichtsfrkl" aufgerufen werden kann, aufgeführt. Dazu kann man -- quasi auf eigene Gefahr -- noch die konventionellen "biblatex"-Optionen (insbesondere zur Formatierung der Abstände etc. des Literaturverzeichnisses) verwenden. Näheres zu diesen findet man in der Dokumentation von "biblatex", bzw. in \cref{driver}.
%
% \subsection{Paketoptionen}
%
% Folgende Optionen können dem Paket "biblatex" beim Laden mit auf den Weg gegeben werden oder auch danach mit "\ExecuteBibliographyOptions" nachgereicht werden. Eventuell lohnt es sich auch einen Blick auf die Beispiele in \cref{beispiele} zu werfen.
%
% \begin{description}
% \item[antikebd] Auch bei antiken Werken werden aufeinander Folgende Zitate durch \enquote{ebd.} abgekürzt. Siehe \cref{optionen}.
% \item[citeinit] In Kurzzitaten werden nur Initialien beim Vornamen verwendet (Voreinstellung "true"). Siehe \cref{book}.
% \item[editorders] Auch bei "editor" wird ggf. \enquote{ders.} verwendet. Siehe \cref{inbook}.
% \item[fnverweise] Bei Folgezitaten wird auf die Fußnotenzahl des Erstzitats verwiesen. Siehe \cref{book}.
% \item[hrsg] Beim Herausgeber steht \enquote{(Hrsg.)} statt \enquote{hrsg. v.}. Siehe \cref{inbook}.
% \item[ibidpages] Die Seitenzahl wird immer ausgegeben. Siehe \cref{book}.
% \item[jahrreihe] Die Reihe wird erst nach der Jahreszahl ausgegeben. Siehe \cref{book}.
% \item[jahrkeineklammern] Bei Folgezitaten wird die Jahreszahl nicht in Klammern gesetzt. Siehe \cref{book}.
% \item[maintitleebd] Auch bei "maintitle" wird ggf. \enquote{Ebd.} verwendet. Siehe \cref{inbook}.
% \item[mits] Der Seitenzahl wird ein \enquote{S.} vorangestellt. Siehe \cref{book}.
% \item[mitjahr] Bei Kurzzitaten wird das Jahr mit angegeben (Voreinstellung "true"). Siehe \cref{book}.
% \item[mitvn] In Kurzzitaten werden Vornamen angezeigt. Siehe \cref{book}.
% \item[neueseitevollzitat] Im ersten Zitat auf einer Seite wird weder \enquote{ders.} noch \enquote{ebd.} verwendet (Voreinstellung "true"). Siehe \cref{book}.
% \item[nurinit] Bei allen Namen werden nur Initialien für die Vornamen verwendet. Siehe \cref{book}.
% \end{description}
%
% \subsection{Eintragsoptionen}
% 
% Zusätzlich kann ein einzelner Eintrag durch folgende Werte in seinem "options"-Feld manipuliert werden. Siehe dazu auch \cref{optionen} und \cref{beispiele}. 
%
% \begin{description}
% \item[antik] Zeichnet den Eintrag als antike Quelle aus.
% \item[diss] Zeichnet den Eintrag als Dissertation aus.
% \item[editionen] Zeichnet den Eintrag als Quellen-Edition aus.
% \item[frg] Zeichnet den Eintrag als Fragment aus.
% \item[frgantik] Zeichnet den Eintrag als antikes Fragment aus.
% \item[nurshorthand] Nur das "shorthand"-Feld wird beim Folgezitat ausgegeben.
% \item[urkunde] Zeichnet den Eintrag als mittelalterliche Urkunde aus.
% \end{description}
%
% \changes{v1.1}{2012/03/31}{Neue Optionen in Zusammenfassung ergänzt.}
%
% \section{Formatierung}
%
% \DescribeMacro{\autorenschriftart}
% \DescribeMacro{\citeautorenschriftart}
% Standardmäßig werden die Autorennachnamen in Kapitälchen gesetzt. Das kann mit dem Befehl "\autorenschriftart" (in Zitaten "\citeautorenschriftart") geändert oder unterdrückt werden. Beispielsweise kann man durch
% \begin{bsp}"\renewcommand*{\autorenschriftart}{\bfseries}"\end{bsp}
% fettgedruckte Nachnamen erzwingen.
%
% \DescribeMacro{\autorentrennzeichen}
% \DescribeMacro{\citeautorentrennzeichen}
% Sind zu einem Werk mehrere Autoren angegeben, so werden diese standardmäßig durch einen Schrägstrich voneinander getrennt. Wenn man das nicht mag, kann man "\autorentrennzeichen" (für Zitate: "\citeautorentrennzeichen") umdefinieren. 
%
%Beispielsweise erzeugt
% \begin{bsp}"\renewcommand*{\autorentrennzeichen}{\addcomma}"\end{bsp}
% eine Trennung der Namen durch Kommata. Man sollte dabei darauf achtgeben die im "biblatex"-Paket beschriebenen Makros für Trennzeichen zu verwenden!
%
% \DescribeMacro{\orttrennzeichen}
% Mehrere Orte werden auch standardmäßig durch Schrägstriche getrennt. Das wird -- genau wie "\autorentrennzeichen" -- durch "\orttrennzeichen" festgelegt.
%
% \DescribeBibField{gender}
% Eigentlich sollte man anständigerweise bei "bib"-Einträgen das Feld "gender" mit angeben. Genaueres dazu findet man in der Beschreibung des "biblatex"-Pakets. Es wirkt sich auf den Begriff \enquote{ders.} aus und passt diesen gegebenfalls dem Geschlecht und der Anzahl der Autoren bzw. Herausgeber an.
%
% \section{Beispiele}\label{beispiele}
%
% Hier noch ein paar weitere Beispiele, die weiter oben keinen Platz fanden aber vielleicht trotzdem ganz informativ sind. Auch diese sind wieder größtenteils aus dem Zitierratgeber der Alten Geschichte entnommen. Hier verwenden wir beispielhaft die Option "hrsg" -- natürlich sind alle beschriebenen Optionen entsprechend anwendbar.
%
% Beginnen wir mit einem mehrbändigen Werk: Die Einträge aus der "bib"-Datei\\[3pt]
%"@book{js1,"\\
%"	author={F. Jacques and Jörg Scheid},"\\
%"	gender={pm},"\\
%"	maintitle={Rom und das Reich in der Hohen Kaiserzeit},"\\
%"	mainsubtitle={44 v. Chr.--260 n. Chr.},"\\
%"	title={Die Struktur des Reiches},"\\
%"	volume={1},"\\
%"	location={Stuttgart and Leipzig},"\\
%"	year={1998--2000}"\\
%"}"\par
%"@book{js2,"\\
%"	author={F. Jacques and Jörg Scheid},"\\
%"	gender={pm},"\\
%"	maintitle={Rom und das Reich in der Hohen Kaiserzeit},"\\
%"	mainsubtitle={44 v. Chr.--260 n. Chr.},"\\
%"	volumes={2},"\\
%"	location={{Stuttgart} and {Leipzig}},"\\
%"	year={1998--2000}"\\
%"}"\\[3pt]
% sehen in der Bibliographie folgendermaßen aus:
%
% \begin{bsp}
%{\scshape Jacques}, F. / {\scshape Scheid}, Jörg: Rom und das Reich in der Hohen Kaiserzeit. 44 v. Chr.--260 n. Chr., 2 Bde., Stuttgart~/ Leipzig 1998--2000.
% \end{bsp}\begin{bsp}
% Dies.: Rom und das Reich in der Hohen Kaiserzeit. 44 v. Chr.--260 n. Chr., Bd. 1: Die Struktur des Reiches, Stuttgart~/ Leipzig 1998--2000. 
% \end{bsp}
% An dem Beispiel kann man auch gut den Einfluss des "gender"-Felds ("pm"=plural masculin) auf das \enquote{ders.}-Feld sehen.
%
% Der Sammelband\\[3pt]
%"@collection{schneider,"\\
%"	editor={Schneider, Helge},"\\
%"	title={Zur Sozial- und Wirtschaftsgeschichte der römischen"\\
%"Kaiserzeit},"\\
%"	location={Darmstadt},"\\
%"	edition={3},"\\
%"	year={1981}"\\
%"}"\\[3pt]
% erscheint im Literaturverzeichnis mit hochgestellter "edition":
%
% \begin{bsp} {\scshape Schneider}, Helge (Hrsg.): Zur Sozial- und Wirtschaftsgeschichte der römischen Kaiserzeit, Darmstadt $^{3}$1981. \end{bsp}
%
% Angeblich soll man das nicht machen, aber wenn man lieber das Feld "edition" durch so etwas wie
% \begin{bsp}"edition={3. und noch viel coolere Auflage},"\end{bsp}
% ersetzt, so erscheint das in der Bibliographie auch \enquote{richtig} als
% \begin{bsp} {\scshape Schneider}, Helge (Hrsg.): Zur Sozial- und Wirtschaftsgeschichte der römischen Kaiserzeit, Darmstadt, 3. und noch viel coolere Auflage, 1981.\end{bsp}
%
% Die Festschrift\\[3pt]
%"@book{bl,"\\
%"	editor={Herbert Bannasch and H-P. Lachmann},"\\
%"	title={Aus Geschichte und ihren Hilfswissenschaften},"\\
%"	titleaddon={Festschrift für Walter Heinemeyer zum"\\
%"65. Geburtstag},"\\
%"	series={Veröffentlichungen der Historischen Komission"\\
%"für Hessen},"\\
%"	number={40},"\\
%"	location={Marburg},"\\
%"	year={1979}"\\
%"}"\\[3pt]
% kann man so zitieren:
%
% \begin{bsp} {\scshape Bannasch}, Herbert / {\scshape Lachmann}, H-P. (Hrsg.): Aus Geschichte und ihren Hilfswissenschaften. Festschrift für Walter Heinemeyer zum 65. Geburtstag (Veröffentlichungen der Historischen Komission für Hessen 40), Marburg 1979.\end{bsp}
%
% Für Informationen zum Nachdruck eignet sich das Feld "addendum":\\[3pt]
%"@book{lauffer,"\\
%"	author={S. Lauffer},"\\
%"	title={Kurze Geschichte der antiken Welt},"\\
%"	location={München},"\\
%"	year={1971},"\\
%"	addendum={München 1981}"\\
%"}"\\[3pt]
% Im Literaturverzeichnis wird die Information durch ein \enquote{ND} ergänzt:
%
% \begin{bsp} {\scshape Lauffer}, S.: Kurze Geschichte der antiken Welt, München 1971 (ND München 1981).\end{bsp}
%
% Nun möchten wir ein Protokoll der Badischen Ständeversammlung von 1831 zitieren. Das hat als solches keinen Autor, soll also unter dem Titel aufgeführt werden, aber nach der Jahreszahl sortiert werden (nicht nach der Sitzungszahl). Dazu verwenden wir das Feld "sorttitle". Mit "keywords={quelle}" können wir -- wie in \cref{quellenverzeichnisse} -- den Eintrag in einem seperaten Quellenverzeichnis führen und beim Kurzzitat wollen wir eben nicht den Herausgeber mit aufführen, sondern nur den Kurztitel erscheinen lassen. Dazu verwenden wir das Feld "shorthand" und die Option "nurshorthand":\\[3pt]
%"@inbook{318,"\\
%"	author = {},"\\
%"	pages = {1--125},"\\
%"	title = {32. Sitzung vom 3. Juni 1831},"\\
%"	location = {Kalrsruhe},"\\
%"	editor = {der Ständeversammlung des Großherzogthums Baden},"\\
%"	volume={8},"\\
%"	maintitle = {Verhandlungen der 2. Kammer der"\\
%"Ständeversammlung des Großherzogthums Baden},"\\
%"	year = {1831},"\\
%"	sorttitle={1831},"\\
%"	keywords={quelle},"\\
%"	options={nurshorthand},"\\
%"	shorthand={32. Sitzung vom 3. Juni 1831},"\\
%"	hyphenation={german}"\\
%"}"\\[3pt]
% Beim Erstzitat liefert dann beispielsweise "\cite[Vgl. z.B.][38]{318}.":
% \begin{bsp}Vgl. z.B.: 32. Sitzung vom 3. Juni 1831, in: Verhandlungen der 2. Kammer der Ständeversammlung des Großherzogthums Baden, Bd. 8, hrsg. v. der Ständeversammlung des Großherzogthums Baden, Karlsruhe 1831, 1--125, hier 38.\end{bsp}
% Bemerkenswert ist auch die Ausgabe des Feldes "volume" nach dem "maintitle". Ein direkt darauf folgendes Zitat des selben Werkes liefert nur ein \enquote{ebd.} und ein späteres Zitat liefert als Kurzzitat dann:
%\begin{bsp}Vgl. 32. Sitzung vom 3. Juni 1831, 66.\end{bsp}
% \changes{v1.1}{2012/03/31}{Beispiel zur Option "nurshorthand".}
%
% Und zum Abschluss zitieren wir noch einen weiteren Lexikoneintrag:\\[3pt]
%"@inreference{wiegels,"\\
%"	author={Wiegels, R.},"\\
%"	title={Limes},"\\
%"	subtitle={III Germanien},"\\
%"	maintitle={DNP},"\\
%"	volume={7},"\\
%"	year={1999},"\\
%"	pages={200--203}"\\
%"}"\\[3pt]
% Dieser hat im Literaturverzeichnis die Form
%
% \begin{bsp} {\scshape Wiegels}, R.: Art. „Limes. III Germanien“, in: DNP~7 (1999), 200--203.\end{bsp}
%
% \section{Installation}
%
% Die "cbx"- und "bbx"-Dateien müssen irgendwo platziert werden, wo sie von \LaTeX{} gefunden werden können, es empfiehlt sich sie im lokalen \TeX-Verzeichnisbaum abzulegen, der Ordnung halber vielleicht noch in geeigneten Unterordnern. Unter OS X wären das zum Beispiel
%
% \begin{bsp}
% "~/Library/texmf/tex/latex/biblatex/bbx"
% \end{bsp}
%
% bzw. "cbx" für die "cbx"-Datei. Für Erstellung der Dateien aus dieser ("dtx"-)Datei empfiehlt sich zum Beispiel folgende "ins"-Datei:
% \begin{bsp}
%"\input docstrip.tex"\\
%"\askforoverwritefalse"\\
%"\BaseDirectory{../../tex/latex}"\\
%"\DeclareDir{bbxdir}{biblatex/bbx}"\\
%"\DeclareDir{cbxdir}{biblatex/cbx}"\\
%"\usedir{bbxdir}"\\
%"\generate{\file{geschichtsfrkl.bbx}"\\
%"               {\from{geschichtsfrkl.dtx}{bbx}}}"\\
%"\usedir{cbxdir}"\\
%"\generate{\file{geschichtsfrkl.cbx}"\\
%"               {\from{geschichtsfrkl.dtx}{cbx}}}"\\
%"\end"
%\end{bsp}
% Dabei müssen natürlich die Werte von "\BaseDirectory" und "\DeclareDir" entsprechend angepasst werden. Insbesondere setzt dies Voraus, dass die Verzeichnisse, in die geschrieben werden soll, bereits existieren.
%
% Außerdem muss man eventuell davor "docstrip" explizit gestatten nicht-"sty"-Dateien zu erstellen. Das erfordert für gewöhnlich die Variable "openout_any" der verwendeten \TeX-Distribution auf "a" zu setzen. Wieder unter OS X bedeutet dies ganz konkret der Datei 
%\begin{bsp}"/usr/local/texlive/"\meta{Jahr}"/texmf.cnf"\end{bsp}
% die Zeile
% \begin{bsp}"openout_any = a"\end{bsp}
% anzuhängen.
%
% Wem das zu kompliziert ist, sei geraten einfach die "\usedir"- und "DeclareDir"-Befehle wegzulassen, dann landen die "bbx"- und "cbx"-Dateien einfach am selben Ort, wie die "dtx"-Datei und man kann sie danach dahin verschieben, wo man sie haben möchte, ohne sich über relative Verzeichnisstrukturen Gedanken machen zu müssen.
%
% Um diese Dokumentation zu erstellen, genügt es die "dtx"-Datei mit entweder "pdflatex" oder "xelatex" zu kompilieren. Bei "xelatex" ist zu beachten, dass in dem Fall die Schriftart Linux Libertine verwendet wird (die daher auf dem System installiert sein muss). Um anschließend das Stichwortverzeichnis und die ``Change History'' zu erstellen, verwendet man am besten "makeindex", z.B. so:
%\begin{bsp}
%"makeindex -s gglo.ist -o geschichtsfrkl.gls geschichtsfrkl.glo"\\
%"makeindex -s gind.ist -o geschichtsfrkl.ind geschichtsfrkl.idx"
%\end{bsp}
% 
% \section{Umsetzung}\label{driver}
%
% "geschichtsfrkl" besteht aus einem Bibliographieformat ("bbx") und einem Zitierformat ("cbx"). Dabei wird das "bbx"-Format auch beim zitieren (maßgeblich beim Erstzitat, das dem Bibliographieeintrag entspricht) benutzt. 
%
% Die ganzen tollen "biblatex"-Makros die verwendet werden, sind in der -- sowieso sehr lesenswerten -- "biblatex"-Dokumentation beschrieben. Gerade für die ganzen booleans, die uns begleiten werden, sind die Makros des -- auch sehr empfehlenswerten -- "etoolbox"-Pakets, das von "biblatex" mitgeliefert wird, sehr praktisch.
%
% \subsection{geschichtsfrkl.bbx}
%
% Wir beginnen also mit der Datei "geschichtsfrkl.bbx" und legen den "standard"-Stil von "biblatex" zu Grunde.
%
%    \begin{macrocode}
\ProvidesFile{geschichtsfrkl.bbx}%
               [2016/06/06 v1.4 geschichtsfrkl -- %
                biblatex für Historiker, bbx-Datei]
\RequireBibliographyStyle{standard}
%    \end{macrocode}
% Zunächst ein kleiner Begrüßungstext :)
%    \begin{macrocode}
\AtBeginDocument{\typeout{}\typeout%
    {========= geschichtsfrkl -- biblatex für Historiker v1.4 ========}}
%    \end{macrocode}
% Nun fängt die Arbeit an: Damit wir später feststellen können, ob ein Zitat oder Bibliographieeintrag erster auf seiner Seite ist, brauchen wir den "pagetracker". In diesen Fällen soll weder \enquote{ders.} noch \enquote{Ebd.} verwendet werden, sondern alles ausgeschrieben werden. Außerdem wollen wir \enquote{deutsch} sortieren und der ganze Witz ist, dass wir unicode-Zeichensatz verwenden. Das heißt dass wir auch problemlos altgriechische Titel zitieren können :)
%    \begin{macrocode}
\ExecuteBibliographyOptions{%
  pagetracker=true,%
  bibencoding=utf8,%
  sortlocale=de%
}%
%    \end{macrocode}
%Hier muss man übrigens wirklich aufpassen, dass man keine Zeilenumbrüche an den falschen Stellen hat, sonst tauchen in der Bibliographie an komischer Stelle Leerzeichen auf. Wir setzen also vorsichtshalber ganz Konsequent ans Ende jeder Zeile ein Kommentarzeichen.
% 
% \begin{bibbool}{bbx:editorders} \begin{bibbool}{bbx:hrsg} \begin{bibbool}{bbx:jahrreihe} \begin{bibbool}{bbx:maintitleebd} \begin{bibbool}{bbx:nurinit}
% \begin{BibliographyOption}{editorders}\begin{BibliographyOption}{hrsg}\begin{BibliographyOption}{jahrreihe}\begin{BibliographyOption}{maintitleebd}\begin{BibliographyOption}{nurinit}
% Zunächst verarbeiten wir "BibliographyOption"s in booleans.
%    \begin{macrocode}
\newbool{bbx:editorders}
\DeclareBibliographyOption{editorders}[true]{\csuse{bool#1}%
           {bbx:editorders}}
\newbool{bbx:hrsg}%
\DeclareBibliographyOption{hrsg}[true]{\csuse{bool#1}{bbx:hrsg}}%
\newbool{bbx:jahrreihe}%
\DeclareBibliographyOption{jahrreihe}[true]{\csuse{bool#1}%
           {bbx:jahrreihe}}%
\newbool{bbx:maintitleebd}%
\DeclareBibliographyOption{maintitleebd}[true]{\csuse{bool#1}%
           {bbx:maintitleebd}}
\newbool{bbx:nurinit}%
\DeclareBibliographyOption{nurinit}[true]{\csuse{bool#1}%
           {bbx:nurinit}}%
%    \end{macrocode}
% \end{BibliographyOption}\end{BibliographyOption}\end{BibliographyOption}\end{BibliographyOption}\end{BibliographyOption}
% \end{bibbool}\end{bibbool}\end{bibbool}\end{bibbool}\end{bibbool}
% \begin{bibbool}{cbx:antik}\begin{bibbool}{cbx:lastantik} \begin{bibbool}{bbx:diss} \begin{bibbool}{cbx:frg}\begin{bibbool}{cbx:frgantik}
% \begin{EntryOption}{antik}\begin{EntryOption}{diss}\begin{EntryOption}{frg}\begin{EntryOption}{frgantik}\begin{EntryOption}{editionen}
% Jetzt "EntryOption"s. Die meisten davon sind nur für's Zitieren relevant, heißen also "cbx". Trotzdem werden sie hier manchmal gebraucht, also jetzt schon überprüft.
% \changes{v1.3}{2013/07/19}{"bbx:editionen" neu}
%\changes{v1.3}{2015/03/25}{"cbx:lastantik" neu}
%    \begin{macrocode}
\newbool{cbx:antik}%
\newbool{cbx:lastantik}%
\DeclareEntryOption{antik}[true]{\csuse{bool#1}{cbx:antik}}%
\newbool{bbx:diss}%
\DeclareEntryOption{diss}[true]{\csuse{bool#1}{bbx:diss}}%
\newbool{cbx:frg}%
\DeclareEntryOption{frg}[true]{\csuse{bool#1}{cbx:frg}}%
\newbool{bbx:editionen}%
\DeclareEntryOption{editionen}[true]{\csuse{bool#1}{bbx:editionen}}%
\newbool{cbx:frgantik}%
\DeclareEntryOption{frgantik}[true]{\csuse{bool#1}{cbx:frgantik}%
%    \end{macrocode}
% \end{EntryOption}\end{EntryOption}\end{EntryOption}\end{EntryOption}\end{EntryOption}
% \end{bibbool}\end{bibbool}\end{bibbool}\end{bibbool}\end{bibbool}
% Das verhält sich fast wie "frg", also machen wir das mal mit:
%    \begin{macrocode}
            \csuse{bool#1}{cbx:frg}}%
%    \end{macrocode}
% \begin{bibbool}{cbx:urkunde}\begin{EntryOption}{urkunde}\begin{bibbool}{cbx:nurshorthand}\begin{EntryOption}{nurshorthand}
% Weiter als ob nichts passiert wäre:
%    \begin{macrocode}
\newbool{cbx:urkunde}%
\DeclareEntryOption{urkunde}[true]{\csuse{bool#1}{cbx:urkunde}}%
\newbool{cbx:nurshorthand}%
\DeclareEntryOption{nurshorthand}[true]{\csuse{bool#1}%
              {cbx:nurshorthand}}%
%    \end{macrocode}
% \changes{v1.1}{2012/03/31}{Option "nurshorthand" hinzugefügt.}
% \end{EntryOption}\end{bibbool}\end{EntryOption}\end{bibbool}
% \begin{bibmacro}{savestuff}\begin{macro}{\bbx@lasteditor} \begin{macro}{\bbx@lasthash} \begin{macro}{\bbx@lastmaintitle}\begin{macro}{\bbx@lastshorthand}
% Um die diversen \enquote{ebd.} und \enquote{ders.} verwalten zu können müssen wir uns ziemlich genau merken, was der letzte Eintrag war (bzw. einzelne Felder davon). Das sollte zentral geschehen, da man insbesondere merken sollte wenn ein Feld (z.B. "editor") hier gar nicht besetzt ist und die Makros dann entsprechend zurücksetzen. Bei mehreren aufeinanderfolgenden Editionen soll die "shorthand" nur einmal ausgegeben werden. Wir merken uns außerdem, ob der aktuelle Eintrag "antik" ist, um das beim zitieren prüfen zu können.
%\changes{v1.3}{2013/07/19}{"bbx@lastshorthand" neu}
%\changes{v1.3}{2015/03/25}{"cbx:antik" in "cbx:lastantik" gespeichert}
%    \begin{macrocode}
\newbibmacro{savestuff}{%
   \savename{editor}{\bbx@lasteditor}%
   \savefield{namehash}{\bbx@lasthash}%
   \savefield{maintitle}{\bbx@lastmaintitle}%
   \savefield{shorthand}{\bbx@lastshorthand}%
   \ifbool{cbx:antik}{\global\booltrue{cbx:lastantik}}%
                     {\global\boolfalse{cbx:lastantik}}%
}%
%    \end{macrocode}
% \end{macro}\end{macro}\end{macro}\end{macro}\end{bibmacro}
%\begin{macro}{\AtBeginBibliography}
% Damit die Bibliographie auf keinen Fall mit \enquote{Ders.} beginnt, werden zu dem Zeitpunkt alle gespeicherten Werte auf ein \enquote{fiktives} "xxxxx" gesetzt (leer könnte auch verwirren....).
%\changes{v1.3}{2015/03/25}{am Anfang der Bilbiographie wird alles zurück gesetzt}
%    \begin{macrocode}
\AtBeginBibliography{%
  \def\bbx@lasteditor{xxxxx}
  \def\bbx@lasthash{xxxxx}
  \def\bbx@lastmaintitle{xxxxx}
  \def\bbx@lastshorthand{xxxxx}
  \global\boolfalse{cbx:lastantik}
}%
%    \end{macrocode}
%\end{macro}
% \begin{FieldFormat}{title}\begin{FieldFormat}{subtitle}\begin{FieldFormat}{booktitle}\begin{FieldFormat}{booksubtitle}\begin{FieldFormat}{titlecase}\begin{FieldFormat}{maintitle}\begin{FieldFormat}{journaltitle}\begin{FieldFormat}{pages}\begin{FieldFormat}{edition}\begin{FieldFormat}{edition}\begin{FieldFormat}{volumes}\begin{FieldFormat}{volume}
% Als nächstes werden alle möglichen Vorformatierungen der Hauptfelder zurückgesetzt. Insbesondere wollen wir die Titel nicht kursiv oder in sonst einer Art hervorheben.
%    \begin{macrocode}
\DeclareFieldFormat*{title}{#1}%
\DeclareFieldFormat*{subtitle}{#1}%
\DeclareFieldFormat*{booktitle}{#1}%
\DeclareFieldFormat*{booksubtitle}{#1}%
\DeclareFieldFormat*{titlecase}{#1}%
\DeclareFieldFormat*{maintitle}{#1}%
\DeclareFieldFormat*{journaltitle}{#1}%
\DeclareFieldFormat*{pages}{#1}%
\DeclareFieldFormat*{edition}{#1}%
\DeclareFieldFormat*{volumes}{#1}%
\DeclareFieldFormat*{volume}{#1}%
%    \end{macrocode}
% \end{FieldFormat}\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}
%\begin{FieldFormat}{parens}\begin{FieldFormat}{brackets}\begin{FieldFormat}{quotes}
% Ein paar Standardfeldformate (Klammern, Fußnoten, Anführungszeichen):
%    \begin{macrocode}
\DeclareFieldFormat{parens}{\mkbibparens{#1}}%
\DeclareFieldFormat{brackets}{\mkbibbrackets{#1}}%
\DeclareFieldFormat{quotes}{\mkbibquote{#1}}%
%    \end{macrocode}
%\end{FieldFormat}\end{FieldFormat}\end{FieldFormat}
% \begin{macro}{\subtitlepunct}\begin{macro}{\intitlepunct}\begin{macro}{\newunitpunct}
% Als nächstes regeln wir die Zeichenseztung: Zwischen Titel und Untertitel soll ein einfacher Punkt, nach \enquote{in} ein Doppelpunkt und unser Standardtrennzeichen soll ein Komma sein.
%    \begin{macrocode}
\renewcommand*{\subtitlepunct}{\addperiod\addspace}%
\renewcommand*{\intitlepunct}{\addcolon\addspace}%
\renewcommand*{\newunitpunct}{\addcomma\addspace}%
%    \end{macrocode}
% \end{macro}\end{macro}\end{macro}
% \begin{macro}{\autorenschiftart}\begin{macro}{\autorentrennzeichen}
% Autorennachnamen werden standardmäßig in Kapitälchen gesetzt, mehrere Autoren durch Schrägstriche mit nichttrennbarem Lehrzeichen davor voneinander getrennt:
%    \begin{macrocode}
\newcommand*{\autorenschriftart}{\scshape}%
\newcommand*{\autorentrennzeichen}{\addnbspace\slash}%
%    \end{macrocode}
% \end{macro}\end{macro}
%\begin{NameFormat}{author}
% Nun beschreiben wir das Format des "author"-Feldes. Dabei steckt in "#1" der Nachname, in "#5" ein Zusatz (Bsp. \enquote{von}), in "#3" der Vorname und in "#4" die Initialien des Vornamens.
%\changes{v1.4}{2016/06/06}{Change "ifblank" to "ifempty" to comply with new "nameparts" format.}
%\changes{v1.4}{2016/04/17}{Change "DeclareNameFormat" to comply with "biblatex" 3.4}
%    \begin{macrocode}
\DeclareNameFormat{author}{%
  \nameparts{#1}%
%    \end{macrocode}
%\changes{v1.4}{2016/09/21}{Change "ifempty" to "ifdefvoid" to comply with "biblatex" 3.4}
% Der Nachname steht in "\autorenschriftart", Feld "#5" wird erst überprüft, bevor es ausgegeben wird.
%    \begin{macrocode}
  {\autorenschriftart%
   \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
   \namepartfamily}%
%    \end{macrocode}
% Erst wird die Existenz des Vornamens überprüft. Wenn die Option "nurinit" gewählt wurde, dann werden nur die Initialien ausgegeben:
%    \begin{macrocode}   
   \ifdefvoid{\namepartgiven}{}{\addcomma\space%
        \ifbool{bbx:nurinit}{\namepartgiveni}{\namepartgiven}}%
%    \end{macrocode}
% Falls beispielsweise in der "bib"-Datei Initialien angegeben wurden, der Eintrag also auf einen Punkt endet, sollte dieser als Abkürzungspunkt gekennzeichnet werden.
%    \begin{macrocode}
  \isdot%
%    \end{macrocode}
% In Wirklichkeit handelt es sich hierbei um eine Liste der Autoren, wir müssen also für das abschließende Zeichen feststellen, ob wir uns \enquote{mitten in} oder am Ende der Liste befinden. Wenn noch weitere Autoren kommen, verwenden wir "\autorentrennzeichen", ansonsten nichts.
%    \begin{macrocode}
  \ifthenelse{\value{listcount}<\value{liststop}}%
    {\autorentrennzeichen\addspace}{}%
}%
%    \end{macrocode}
%\end{NameFormat}
% \begin{NameFormat}{editor}
% Als nächstes beschäftigen wir uns mit Herausgebern. Zunächst die \enquote{konventionelle} Variante: \enquote{hrsg. v. \meta{Vorname} \meta{Nachname}}. Mehrere Namen werden durch Kommata und ein abschließendes \enquote{und} getrennt. 
%\changes{v1.4}{2016/04/17}{Change "DeclareNameFormat" to comply with "biblatex" 3.4}
%\changes{v1.4}{2016/06/06}{Change "ifblank" to "ifempty" to comply with new "nameparts" format.}
%\changes{v1.4}{2016/09/21}{Change "ifempty" to "ifdefvoid" to comply with "biblatex" 3.4}
%    \begin{macrocode}
\DeclareNameFormat{editor}{%
  \nameparts{#1}%
%    \end{macrocode}
% Zuerst das gleiche Spiel mit Vor- und Nachnamen wie gerade eben (nur diesmal eben andersrum):
%    \begin{macrocode}
   \ifdefvoid{\namepartgiven}{}{%
        \ifbool{bbx:nurinit}{\namepartgiveni}{\namepartgiven}\addspace}%
    \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
    \namepartfamily%
%    \end{macrocode}
% Wenn wir vor Stelle "liststop-1" sind, soll ein Komma ausgegeben werden, an der Stelle ein \enquote{und} und sonst nichts:
%    \begin{macrocode}
    \ifnumcomp{\value{listcount}}{<}{\value{liststop}-1}%
       {\addcomma\addspace}%
       {\ifnumcomp{\value{listcount}}{=}{\value{liststop}}%
           {}{\addspace\bibstring{and}\addspace}}%
}%
%    \end{macrocode}
% Bei der "hrsg"-Optionen stehen die Herausgeber mit Nachnamen zuerst und werden durch Schrägstriche getrennt:
%\changes{v1.4}{2016/04/17}{Change "DeclareNameFormat" to comply with "biblatex" 3.4}
%\changes{v1.4}{2016/06/06}{Change "ifblank" to "ifempty" to comply with new "nameparts" format.}
%\changes{v1.4}{2016/09/21}{Change "ifempty" to "ifdefvoid" to comply with "biblatex" 3.4}
%    \begin{macrocode}
\DeclareNameFormat{hrsg}{%
  \nameparts{#1}
   \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
  \namepartfamily%
  \ifdefvoid{\namepartgiven}{}{\addcomma\space%
        \ifbool{bbx:nurinit}{\namepartgiveni}{\namepartgiven}}%
  \ifthenelse{\value{listcount}<\value{liststop}}%
        {\addnbspace\slash\addspace}{}%
}%
%    \end{macrocode}
%\end{NameFormat}
% \begin{macro}{\orttrennzeichen}
% Mehrere Orte werden durch "\orttrennzeichen" (Standardmäßig einen Schrägstrich) Getrennt:
%    \begin{macrocode}
\newcommand*{\orttrennzeichen}{\addnbspace\slash}%
\DeclareListFormat{location}{%
  #1\ifthenelse{\value{listcount}<\value{liststop}}%
          {\orttrennzeichen\addspace}{}%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\bibnamedash}
% \begin{macro}{\bibnamedashOrig}
% Bei wiederholtem Zitieren des selben Autors schreiben wir \enquote{ders.}. Das wird traditionell in dem Makro "\bibnamedash" gespeichert. Da es schade um seinen ursprünglichen Inhalt wäre, speichern wir diesen in "\bibnamedashOrig". Wenn das "gender"-Feld im "bib"-Eintrag ausgefüllt wurde, so wird das hier berücksichtigt. Mit "\bibsentence" sorgen wir für die richtige Groß- und Kleinschreibung.
%    \begin{macrocode}
\let\bibnamedashOrig\bibnamedash%
\renewcommand*{\bibnamedash}{%
      \bibsentence\bibstring{idem\thefield{gender}}}%
%    \end{macrocode}
% \end{macro}\end{macro}
% Als nächstes beschreiben wir die "bibmacro"s. Hier passiert eigentlich alles spannende. Sowohl die Bibliographieeinträge, als auch die Zitate werden aus diesen Makros zusammengesetzt werden.
%
% \begin{bibmacro}{in:}
% Wir fangen ganz einfach an: Bei Formaten wie "inbook" gibt es das Feld \enquote{in}:
%    \begin{macrocode}
\renewbibmacro*{in:}{%
  \printtext{\bibstring{in}\intitlepunct}%
}%
%    \end{macrocode}
%\end{bibmacro}
%\begin{bibmacro}{author}
% Schon etwas spannender: Das Autorenfeld. Wiederholtes zitieren desselben Autors ersetzt den Namen durch "\bibnamedash" (außer wenn es der erste Eintrag auf der Seite ist oder der Eintrag vom Typ "antik" ist). Dazu wird das von "biblatex" generierte Feld "namehash" als Vergleich benutzt. Gespeicher wird das durch den Makro "savestuff" der hoffentlich nachher noch irgendwann aufgerufen wird. Ein weiterer Sonderfall: Falls in einem Zitat der \emph{vorherige} Eintrag "antik" war, so wird in jedem Fall der Name (und kein \enquote{Ders.}) ausgegeben.
%\changes{v1.3}{2013/07/15}{Kein Ders. bei antik}
%\changes{v1.3}{2015/03/25}{"antik" vorher verhindert Ders.}
%    \begin{macrocode}
\renewbibmacro*{author}{%
  \ifnameundef{author}{}%
      {\ifboolexpr{test {\iffieldequals{namehash}{\bbx@lasthash}}%
                     and not test {\iffirstonpage}%
                     and not bool{cbx:antik}%
                     and not (test{\ifcitation} and bool{cbx:lastantik})}%
            {\bibnamedash}%
            {\printnames{author}\isdot}}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{author/editor}
% Nun überprüfen wir, ob es überhaupt einen Autor gibt. Wenn nicht, wird dieser durch den Herausgeber ersetzt (allerdings im Autor-Format). Das passiert auch, wenn wir ein Fragment sind. Auch hier wird der Name bei wiederholtem Zitieren ersetzt. In diesem Fall folgt dem Namen immer \enquote{(Hrsg.)} Das wird wieder ignoriert, falls in einem Zitat der vorherige Eintrag "antik" war.
%
% Falls weder Autor noch Herausgeber vorhanden sind, werden diese auch nicht ausgegeben, stattdessen aber eine Warnung.
%\changes{v1.2}{2012/06/04}{Weder Autor, noch Editor erzwungen}
%    \begin{macrocode}
\renewbibmacro*{author/editor}{%
   \ifboolexpr{test{\ifnameundef{author}} or bool{cbx:frg}}{%
      \ifnameundef{editor}{%
          \BibliographyWarning{Fehlender Autor *und* Herausgeber!}%
      }{%
        \ifboolexpr{test {\iffieldequals{namehash}{\bbx@lasthash}}%
                   and not test{\iffirstonpage}%
                   and not (test{\ifcitation} and bool{cbx:lastantik})}%
             {\bibnamedash}%
             {\printnames[author]{editor}\isdot% (Hrsg.)
               \addspace\printtext[parens]{\bibstring{editor}}}%
   }}{\usebibmacro{author}}%
}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{series+number}
%\changes{v1.3}{2013/07/22}{fixed bug in series+number and option antik}
% Für gewöhnlich möchten wir (\meta{Reihentitel} \meta{Reiheinnummer}) ausgeben, also ("series" "number"), aber natürlich nur, wenn die Felder gesetzt sind. In der Antike macht man das aber anders: da schreibt man \enquote{Bd.} davor, dreht die Reihenfolge um und setzt keine Klammern:
%    \begin{macrocode}
\renewbibmacro*{series+number}{%
%   \ifbool{cbx:antik}{%antike Extrawurst
%     \iffieldundef{series}{}{%
%       \iffieldundef{number}{}{%
%          \printtext{Bd}\adddot\addspace%
%          \printfield{number}\addcolon\addspace}%
%       \printfield{series}\setunit{\addcomma\addspace}}%
%   }{%
     \iffieldundef{series}{}{%
        \printtext[parens]{%
           \printfield{series}%
           \setunit*{\addspace}%
           \printfield{number}%
           \newunit%
         }%
       }%
    %}%
}%
%    \end{macrocode}
% \end{bibmacro}
% Durch "\setunit*" wird das Leerzeichen nur gesetzt, wenn davor tatsächlich etwas ausgegeben wurde.
%
% \begin{bibmacro}{journal}
% Als nächstes behandeln wir Zeitschriftentitel. Diese werden \enquote{sicherheitshalber} im Format "titlecase" ausgegeben (das tut standardmäsig nichts).
%    \begin{macrocode}
\renewbibmacro*{journal}{%
  \iffieldundef{journaltitle}
    {}
    {\printtext[journaltitle]{%
          \printfield[titlecase]{journaltitle}%
          \setunit{\subtitlepunct}%
          \printfield[titlecase]{journalsubtitle}}}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{year}
% Das Jahr wird stets in Klammern ausgegeben.
%    \begin{macrocode}
\newbibmacro{year}{%
  \iffieldundef{year}{}{\printfield[parens]{year}}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{journal+number+year}
% Bei "article" wird Zeitschriftennamen Nummer (Jahr), also "journal" "number" ("year") ausgegeben.
%    \begin{macrocode}
\newbibmacro*{journal+number+year}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \printfield{number}%
  \setunit*{\addspace}%
  \usebibmacro{year}%
}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{pages}
% Ganz langweilig: Seitenzahlen. Man muss nur aufpassen, dass ein Punkt am Ende (Bsp: 182f.) nicht überinterpretiert wird.
%    \begin{macrocode}
 \newbibmacro*{pages}{%
   \printfield{pages}\isdot}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{maintitle+title+volumes}
% Beim Titel muss man ein wenig aufpassen. Im einfachsten Fall gibt es nur ein Band, dann schreiben wir einfach "title." "subtitle." "titleaddon". Bei einem Teil eines Sammelbandes kommt noch ein "maintitle" dazu. Wenn es sich hingegen um mehrere Bände handelt unterscheiden wir zwischen einem einzelnen Band und der gesamten Reihe. Das entscheidet letztendlich des Feld "volumes".
%    \begin{macrocode}
\newbibmacro*{maintitle+title+volumes}{%
%    \end{macrocode}
% Zuerst überprüfen wir, ob die Felder überhaupt unterschiedlich sind.
%    \begin{macrocode}
  \iffieldsequal{maintitle}{title}%
    {\clearfield{maintitle}%
     \clearfield{mainsubtitle}%
     \clearfield{maintitleaddon}}%
    {\iffieldundef{maintitle}{}%
%    \end{macrocode}
% \changes{v1.3}{2013/07/22}{Fixed bug in maintitle+title+volumes for option antik}
% Darum kümmern wir uns gleich. Bei antiken Sachen sind verwirrenderweise Titel und Untertitel vertauscht (da ist "maintitle" der Titel des Bandes). Da schreiben wir also "title", Bd. "volume": "maintitle". Natürlich nur, wenn "volume" überhaupt definiert ist.
%    \begin{macrocode}
       {%\ifbool{cbx:antik}%
%            {\usebibmacro{title}\addcomma\addspace%
%              \iffieldundef{volume}{}{%
%                 \printtext{\bibstring{volume}}\addspace%
%                 \printfield{volume}\setunit*{\addcolon\addspace}%
%                 \usebibmacro{maintitle}}%
%              }%
%    \end{macrocode}
% Ansonsten geben wir zunächst "maintitle" aus.
%    \begin{macrocode}
            {\usebibmacro{maintitle}%
      	      \newunit\newblock%
               \iffieldundef{volume}%
                {\iffieldundef{volumes}{}{%
%    \end{macrocode}
% Wenn es also das Feld "volumes" gibt, geben wir so etwas wie \enquote{"volumes" Bde.} und \emph{keinen} Einzeltitel aus.
%    \begin{macrocode}
                   \printfield{volumes}%
                   \addspace\printtext{\bibstring{volumes}}\newunit}}%
%    \end{macrocode}
% Jetzt sind wir im Fall: "volume" aber kein "volumes", also: einzelnes Band eines mehrbändigen Werkes. Dann geben wir so etwas wie \enquote{Bd. "volume": "title"} aus.
%    \begin{macrocode}
               {\printtext{\bibstring{volume}}\addspace%
                 \printfield{volume}\setunit*{\addcolon\addspace}}%
        }}}%
%    \end{macrocode}
% In allen Fällen \emph{außer} wenn es das Feld "volumes" gibt, wird nun also "title" ausgegeben.
%    \begin{macrocode}        
   \iffieldundef{volumes}{\usebibmacro{title}}{}%
   \newunit}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{maintitle}
% Nun -- wie versprochen -- die Ausgabe von "maintitle". Wir schauen erst, ob weder "maintitle" noch "mainsubtitle" definiert sind. Wenn wir mindestens eins haben, machen wir uns an die Ausgabe.
%    \begin{macrocode}
\renewbibmacro*{maintitle}{%
  \ifboolexpr{test {\iffieldundef{maintitle}}%
    and test {\iffieldundef{mainsubtitle}}}{}%
%    \end{macrocode}
% Hier kommt nun die Option "maintitlesebd" zum tragen. Wenn diese gesetzt ist und wir zwei aufeinanderfolgende gleiche "maintitle"s haben und nicht der erste auf einer Seite sind, so wird dieser durch \enquote{ebd.} ersetzt:
%    \begin{macrocode}
    {\ifboolexpr{bool{bbx:maintitleebd} and%
           test {\iffieldequals{maintitle}{\bbx@lastmaintitle}} and%
           not (bool{cbx:neueseitevollzitat} and test {\iffirstonpage})}%
        {\bibstring{ibidem}}%
%    \end{macrocode}
% Ansonsten wickeln wir brav wieder alle Felder in ihre zugehörigen Formate (die nur eben alle leer sind ...) und geben sie bei Bedarf aus.
%    \begin{macrocode}
        {\printtext[maintitle]{%
          \printfield[titlecase]{maintitle}%
            \setunit*{\subtitlepunct}%
          \printfield[titlecase]{mainsubtitle}}%
            \setunit*{\subtitlepunct}}%
    \printfield{maintitleaddon}\isdot}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{title}
% Beim normalen Titel passiert letztendlich das gleiche: Bei Bedarf wird alles ausgegeben.
%    \begin{macrocode}
\renewbibmacro*{title}{%
  \ifboolexpr{test {\iffieldundef{title}} and%
              test {\iffieldundef{subtitle}}}{}%
    {\printtext[title]{%
       \printfield[titlecase]{title}%
       \setunit*{\subtitlepunct}%
       \printfield[titlecase]{subtitle}}%
     \setunit*{\subtitlepunct}}%
  \printfield{titleaddon}\isdot}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{location+edition+year}
% Nun geben wir Ort, Ausgabe und Jahr aus. Dabei ist die Ausgabe dem Jahr vorne als Exponent angehängt, wenn sie eine Zahl ist. Sonst wird sie einfach normal ausgegeben. Dabei wird "location" im oben angegebenen Format ausgegeben. Da das Jahr hier nicht in Klammern gesetzt wird, verwenden wir "\printfield" statt dem Makro von oben.
%    \begin{macrocode}
\newbibmacro*{location+edition+year}{%
  \printlist{location}%
  \iffieldundef{edition}{\setunit{\addspace}}{%
       \iffieldint{edition}%
           {\setunit{\addspace}%
             \mkbibsuperscript{\printfield{edition}}}%
           {\setunit{\addcomma\addspace}%
             \printfield{edition}\addcomma\addspace}}%
  \printfield{year}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{addendum}
% Das "addendum" Feld missbrauchen wir, um Informationen zum Nachdruck darein zu schreiben. Das wird dann zusammen mit \enquote{ND} ausgegeben:
%    \begin{macrocode}
\newbibmacro*{addendum}{%
  \iffieldundef{addendum}{}{%
    \printtext[parens]{ND\addspace\printfield{addendum}}}%
}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{signatur}
% Wenn man eine Signatur angeben möchte, so kann man diese in das "note"-Feld schreiben, die kommt dann ans Ende. Insbesondere vernichtet sie den abschließenden Punkt des Eintrags!
%    \begin{macrocode}
\newbibmacro*{signatur}{%
  \iffieldundef{note}{}{\printtext[parens]{\printfield{note}}\nopunct}%  
}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{booktitle+volume+editor}
% Als nächstes möchten wir uns um Buchtitel, ggf. Band und Herausgeber von Sammelbänden ("inbook") kümmern.
%    \begin{macrocode}
\newbibmacro*{booktitle+volume+editor}{%
%    \end{macrocode}
% Wenn es keinen Herausgeber gibt, so geben wir nur den Titel ggf. gefolgt vom Band aus.
%    \begin{macrocode}
  \ifnameundef{editor}{%
    \usebibmacro{maintitle}%
    \newunit%
    \iffieldundef{volume}{}%
      {\bibstring{volume}\addspace\printfield{volume}\newunit}%  
  }{%
%    \end{macrocode}
% Andernfalls kommt hier jetzt die "hrsg"-Option ins Spiel. Wenn diese gesetzt ist, wird statt \enquote{"maintitle", Bd. "volume", hrsg. v. "editor"} der Name "editor" in umgekehrter Reihenfolge ausgegeben und von \enquote{(Hrsg.): "maintitle", Bd. "volume"} gefolgt. Wenn die Option "editorders" gesetzt ist, wird zudem nach den gleichen Regeln wie sonst auch "editor" durch \enquote{ders.} ersetzt. Dabei wird "\bbx@lasteditor" im Makro "savestuff" immer mit dem aktuellen Feld "editor" versehen. Das geschieht ganz am Ende, wir müssen uns hier also nicht drum kümmern. Zu beachten ist nur, dass wenn der "editor" gleich "author" ist, auch das Feld durch \enquote{ders.} wird.
% \changes{v1.2}{2012/09/04}{Vergessenes Lehrzeichen ergänzt und editor gleich author überprüft.}
%    \begin{macrocode}
    \ifbool{bbx:hrsg}{% 
      \ifboolexpr{bool{bbx:editorders} and%
            (test {\ifnameequals{editor}{\bbx@lasteditor}} or%
             test {\ifnamesequal{editor}{author}}) and%
             not (bool{cbx:neueseitevollzitat} and test {\iffirstonpage})}%
           {\bibstring{idem\thefield{gender}}\addspace}%
           {\printnames[hrsg]{editor}\addspace}%
      \printtext[parens]{\bibstring{editor}}\addcolon\addspace%
      \usebibmacro{maintitle}%
      \iffieldundef{volume}{}%
        {\newunit\bibstring{volume}\addspace\printfield{volume}}%  
      \newunit%
     }{%
      \usebibmacro{maintitle}%
      \iffieldundef{volume}{}%
        {\newunit\bibstring{volume}\addspace\printfield{volume}}%  
      \newunit%
      \printtext{hrsg\adddot\addspace v\adddot}%
      \setunit{\addspace}%
      \ifboolexpr{bool{bbx:editorders} and%
               test {\ifnameequals{editor}{\bbx@lasteditor}} and%
               not (bool{cbx:neueseitevollzitat} and test {\iffirstonpage})}%
        {\bibstring{idem\thefield{gender}}}%
        {\printnames{editor}}%
     }}%
}%
%    \end{macrocode}
% \changes{v1.1}{2012/03/31}{"volume"-Feld bei "inbook" hinzugefügt.}
% \end{bibmacro}
% \begin{bibmacro}{reftitle}
% Bei Lexikoneinträgen steht vorm Titel \enquote{Art.}, dann kommt der Titel gefolgt von ["number"] in Anführungszeichen:
%    \begin{macrocode}
\newbibmacro*{reftitle}{%
  \iffieldundef{title}{}{%
    \printtext{Art\adddot\addspace}%
    \printtext[quotes]{%
      \usebibmacro{title}\setunit{\addspace}%
      \iffieldundef{number}{}{\printfield[brackets]{number}}%
}}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{refmaintitle}
% Der Titel des Lexikons steht im Feld "maintitle". Er wird zusammen mit "volume" ausgegeben.
%    \begin{macrocode}
\newbibmacro*{refmaintitle}{%
  \iffieldundef{maintitle}{}{%
    \printfield{maintitle}\setunit*{\addspace}\printfield{volume}%
}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{reztitle}
% Bei Rezensionen scheitern wir daran, dass es bei "biblatex" keine wirklich gute Möglichkeit gibt, den Autor und Titel des rezensierten Werkes in seperate Felder zu schreiben und das so wieder zusammen zu bauen. Daher ist die aktuelle Lösung einfach die gesamte Bibliographische Angabe zum rezensierten Werk in das "title"-Feld zu schreiben. Das wird dann in Anführungszeichen ausgegeben.
%    \begin{macrocode}
\newbibmacro*{reztitle}{%
  \printtext[quotes]{%
    \usebibmacro{title}%
}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{antikzeugs}
% Bei antiken Autoren brauchen wir eventuell eine Sprache und einen Übersetzer. Das ist entweder der "editor" oder der "translator".
%    \begin{macrocode}
\newbibmacro*{antikzeugs}{%
  \iflistundef{language}{}{%
    \printlist{language}\isdot%
    \setunit{\addcomma\addspace}%
  }%
  \ifboolexpr{test {\ifnameundef{translator}}%
             and test {\ifnameundef{editor}}}{}{%
%    \end{macrocode}
% \changes{v1.2}{2012/09/02}{Unterschiedliche Hrsg und Übersetzer}
% Falls \emph{beide} Felder "editor" und "translator" einen Eintrag haben und diese Einträge unterschiedlich sind, werden sie gesondert ausgegeben, ansonsten gilt der eine Eintrag als Übersezer und Herausgeber.
%    \begin{macrocode}
    \ifboolexpr{test {\ifnameundef{translator}}%
                or test{\ifnameundef{editor}}%
                or test{\ifnamesequal{translator}{editor}}}%
       {\printtext{hrsg\adddot\addspace u\adddot\addspace%
                   übers\adddot\addspace v.}\isdot\addspace%
         \ifnameundef{translator}{\printnames{editor}}%
               {\printnames[editor]{translator}}}%
       {\printtext{hrsg\adddot\addspace v.}\isdot\addspace%
        \printnames{editor}\addcomma\addspace%
        \printtext{übers\adddot\addspace v.}\isdot\addspace%
        \printnames[editor]{translator}}%
    \setunit{\addcomma\addspace}}%
}%
%    \end{macrocode}
% \end{bibmacro}
% Das war es nun auch schon an Makros für die Bibliographie. Nun kommt nur noch die Definition der "BibliographyDriver", also der Punkt, an dem die ganzen Makros sinnvoll zu Bibliographieeinträgen verklebt werden.
%
% \begin{BibliographyDriver}{article}
% Zuerst "article". "bibindex" und "begentry" sind "biblatex"-interne Makros an denen wir nichts geändert haben. Genauso "url+urldate" und "finentry". Am Ende wird immer "savestuff" aufgerufen, um alle Informationen des Eintrags für das Verhalten des Nächsten zu speichern (unabhängig davon welcher Art der nächste Eintrag ist!)
%    \begin{macrocode}
\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\addcolon\addspace}\newblock%
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{journal+number+year}%
  \newunit\newblock
  \usebibmacro{pages}%
%    \end{macrocode}
% Die "url" wollen wir nur in der Bibliographie angeben, im Text sieht das wirklich hässlich aus!
%    \begin{macrocode}
  \ifcitation{}{%
    \setunit{\addspace}
    \usebibmacro{url+urldate}}%
  \setunit{\addperiod\addspace}%
  \usebibmacro{signatur}%
  \usebibmacro{savestuff}%
  \usebibmacro{finentry}%
}%
%    \end{macrocode}
% \end{BibliographyDriver}
% \begin{BibliographyDriver}{book}
% "book" funktioniert essenziell genauso, mit Ausnahme von Editionen, die "shorthand" vorangestellt haben.
% \changes{v1.3}{2013/07/13}{editionen-Option hinzugefügt}
%    \begin{macrocode}
\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \ifbool{bbx:editionen}{%
%    \end{macrocode}
% Genau genommen wird hier aber auch nur was ausgegeben, wenn das "shorthand"-Feld nicht gleich dem aus dem vorherigen Eintrag ist. Ansonsten wird nur eingerückt. Hierzu ist es wichtig, dass das "sortkey"-Feld gesetzt und gleich "shorthand" ist!
%    \begin{macrocode}
    \iffieldequals{shorthand}{\bbx@lastshorthand}{\hspace*{\bibhang}}%
    {\printfield{shorthand}\addcolon\newline}}{}%
  \usebibmacro{author/editor}%
  \setunit*{\addcolon\addspace}\newblock%
  \usebibmacro{maintitle+title+volumes}%
  \setunit{\addspace}%
%    \end{macrocode}
% Hier wird noch die Option "jahrreihe" berücksicht, die bei Bedard die Angaben zur Reihe hinter das Jahr verschiebt.
%    \begin{macrocode}
  \ifbool{bbx:jahrreihe}{}%
    {\usebibmacro{series+number}}%
  \newunit\newblock%
%    \end{macrocode}
% Bei antiken Quellen muss hier die Information zum Übersetzer und zur Sprache stehen.
%    \begin{macrocode}
  \ifbool{cbx:antik}{%
    \usebibmacro{antikzeugs}}{}%
%    \end{macrocode}
% Bei Dissertationen erscheint hier der Zusats \enquote{Diss.}.
%    \begin{macrocode}
  \ifbool{bbx:diss}{%
    \printtext{Diss\adddot}\setunit{\addspace}}{}%
  \usebibmacro{location+edition+year}%
  \setunit{\addspace}%
%    \end{macrocode}
% Und hierhin wird die Reihe bei Option "jahrreihe" verschoben.
%    \begin{macrocode}
  \ifbool{bbx:jahrreihe}{%
    \usebibmacro{series+number}%
    \setunit{\addspace}}{}%
  \usebibmacro{addendum}%
%    \end{macrocode}
% Auch hier wird die "url" in die Bibliographie verbannt.
%    \begin{macrocode}
  \ifcitation{}{%
    \setunit{\addspace}%
    \usebibmacro{url+urldate}}%
  \setunit{\addperiod\addspace}%
  \usebibmacro{signatur}%
  \usebibmacro{savestuff}%
  \usebibmacro{finentry}%
}%
%    \end{macrocode}
% \end{BibliographyDriver}
% \begin{BibliographyDriver}{inbook}
% Bei "inbook" passiert nichts wirklich neues, außer dass eben die dafür relevanten Makros aufgerufen werden. Auch hier muss "jahrreihe" berücksichtigt werden.
%    \begin{macrocode}  
\DeclareBibliographyDriver{inbook}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \ifnameundef{author}{}%
    {\setunit*{\addcolon\addspace}\newblock}%
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{booktitle+volume+editor}%
  \setunit{\addspace}%
  \ifbool{bbx:jahrreihe}{}%
    {\usebibmacro{series+number}}%
  \newunit\newblock%
  \usebibmacro{location+edition+year}%
  \ifbool{bbx:jahrreihe}{%
    \setunit{\addspace}%
    \usebibmacro{series+number}}{}%
  \newunit\newblock%
  \usebibmacro{pages}%
  \setunit{\addspace}%
  \usebibmacro{addendum}%
  \ifcitation{}{%
    \setunit{\addspace}%
    \usebibmacro{url+urldate}}%
  \setunit{\addperiod\addspace}%
  \usebibmacro{signatur}%
  \usebibmacro{savestuff}%
  \usebibmacro{finentry}%
}%
%    \end{macrocode}
% \changes{v1.1}{2012/04/01}{Kein Doppelpunkt ohne Autorennamen.}
% \end{BibliographyDriver}
% \begin{BibliographyDriver}{collection}\begin{BibliographyDriver}{incollection}
% "collections" sind bei uns einfach Bücher.
%    \begin{macrocode}
\DeclareBibliographyAlias{collection}{book}
\DeclareBibliographyAlias{incollection}{inbook}
%    \end{macrocode}
% \end{BibliographyDriver}\end{BibliographyDriver}
% \begin{BibliographyDriver}{inreference}
% "inreference" kümmert sich um Lexikoneinträge.
%    \begin{macrocode}
\DeclareBibliographyDriver{inreference}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\addcolon\addspace}\newblock%
  \usebibmacro{reftitle}%
  \newunit\newblock%
  \usebibmacro{in:}%
  \usebibmacro{refmaintitle}%
  \setunit{\addspace}%
  \usebibmacro{year}%
  \newunit\newblock%
  \usebibmacro{pages}%
  \ifcitation{}{%
    \setunit{\addspace}%
    \usebibmacro{url+urldate}}%
  \setunit{\addperiod\addspace}%
  \usebibmacro{signatur}%
  \usebibmacro{savestuff}%
  \usebibmacro{finentry}%
}%
%    \end{macrocode}
% \end{BibliographyDriver}
% \begin{BibliographyDriver}{review}
% Und "review" um Rezensionen.
%    \begin{macrocode}
\DeclareBibliographyDriver{review}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\addspace}%
  \printtext[parens]{Rez\adddot}%
  \setunit{\addcolon\addspace}\newblock%
  \usebibmacro{reztitle}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{journal+number+year}%
  \newunit\newblock%
  \usebibmacro{pages}%
  \ifcitation{}{%
    \setunit{\addspace}%
    \usebibmacro{url+urldate}}%
  \setunit{\addperiod\addspace}%
  \usebibmacro{signatur}%
  \usebibmacro{savestuff}%
  \usebibmacro{finentry}%
}%
%    \end{macrocode}
% \end{BibliographyDriver}
% So, das war's!
% \iffalse
%</bbx>
% \fi
%
% \subsection{geschichtsfrkl.cbx}
% \setcounter{CodelineNo}{0}
%
% Nun werden die eigentlichen Zitate gemacht. Ganz am Ende der Datei werden die Befehle "\cite" und Freunde definiert, die rufen aber nur Makros auf, die davor hoffentlich schon alles entscheidende regeln. Gerade für reine Formatierungsfragen werden wir dabei ziemlich oft auf Makros aus der "bbx"-Datei zurückgreifen.
%
% \iffalse
%<*cbx>
% \fi
%    \begin{macrocode}
\ProvidesFile{geschichtsfrkl.cbx}%
           [2016/06/06 v1.4 geschichtsfrkl -- %
            biblatex für Historiker, cbx-Datei]%
%    \end{macrocode}
% Wir fangen wieder damit an, die "biblatex"-Optionen, die wir brauchen, zu setzen. Wir wollen den "citetracker" verwenden, der uns sagt, ob ein Werk bereits zitiert wurde oder nicht, sowie den "idemtracker" und den "ibidtracker", die uns sagen, ob wir das selbe Werk oder zumindest den selben Autor mehrfach hintereinander zitieren. "opcittracker" und "loccittracker" verwirren nur, daher machen wir das lieber selbst~:) "sortcites" wollen wir auch nicht, man sollte schon selbst beim zitieren auf die richtige Reihenfolge achten!
%    \begin{macrocode}
\ExecuteBibliographyOptions{%
  citetracker=true,%
  idemtracker=true,%
  ibidtracker=true,%
  opcittracker=false,%
  loccittracker=false,%
  sortcites=false%
}%
%    \end{macrocode}
% \begin{bibbool}{cbx:seen}
% Da im "postnote"-Bereich "\ifciteseen" nicht mehr funktioniert (das Zitat ist ja schon geschehen, also liefert "\ifciteseen" immer "true"), müssen wir den \enquote{echten} Wert rechtzeitig abspeichern.
%    \begin{macrocode}
\newbool{cbx:seen}%
%    \end{macrocode}
% \end{bibbool}
% \begin{bibbool}{cbx:mitjahr}\begin{bibbool}{cbx:mitvn}\begin{bibbool}{cbx:mits}\begin{bibbool}{cbx:fnverweise} \begin{bibbool}{cbx:jahrkeineklammern}\begin{bibbool}{cbx:neueseitevollzitat}\begin{bibbool}{cbx:antikebd}\begin{bibbool}{cbx:ibidpages}
% \begin{BibliographyOption}{mitjahr}\begin{BibliographyOption}{mitvn}\begin{BibliographyOption}{mits}\begin{BibliographyOption}{fnverweise}\begin{BibliographyOption}{ibidpages}\begin{BibliographyOption}{jahrkeineklammern}\begin{BibliographyOption}{neueseitevollzitat}\begin{BibliographyOption}{antikebd}
% Als nächstes verwandeln wir wieder alle Paketoptionen in booleans.
%    \begin{macrocode}
\newbool{cbx:mitjahr}%
\newbool{cbx:mitvn}%
\newbool{cbx:mits}%
\newbool{cbx:fnverweise}%
\newbool{cbx:jahrkeineklammern}%
\newbool{cbx:neueseitevollzitat}%
\newbool{cbx:antikebd}%
\DeclareBibliographyOption{mitjahr}[true]{\csuse{bool#1}%
             {cbx:mitjahr}}%
\DeclareBibliographyOption{mitvn}[true]{\csuse{bool#1}%
             {cbx:mitvn}}%
\DeclareBibliographyOption{mits}[true]{\csuse{bool#1}{cbx:mits}}%
\DeclareBibliographyOption{fnverweise}[true]{\csuse{bool#1}%
             {cbx:fnverweise}}%
\newbool{cbx:ibidpages}%
\DeclareBibliographyOption{ibidpages}[true]{\csuse{bool#1}%
             {cbx:ibidpages}}%
\DeclareBibliographyOption{jahrkeineklammern}[true]{\csuse{bool#1}%
             {cbx:jahrkeineklammern}}%
\DeclareBibliographyOption{neueseitevollzitat}[true]{\csuse{bool#1}%
             {cbx:neueseitevollzitat}}%
\DeclareBibliographyOption{antikebd}[true]{\csuse{bool#1}%
             {cbx:antikebd}}%
%    \end{macrocode}
% \changes{v1.1}{2012/03/31}{Option "antikebd" hinzugefügt.}
% \end{BibliographyOption}\end{BibliographyOption}\end{BibliographyOption}\end{BibliographyOption}\end{BibliographyOption}\end{BibliographyOption}\end{BibliographyOption}\end{BibliographyOption}
% \end{bibbool}\end{bibbool}\end{bibbool}\end{bibbool}\end{bibbool}\end{bibbool}\end{bibbool}\end{bibbool}
% 
% \begin{bibbool}{cbx:nurinit}
% Die Optionen für Vornamen aus der "bbx"-Datei sind \enquote{stärker}, übertragen sich also ggf. auf die Optionen hier:
%    \begin{macrocode}
\newbool{cbx:nurinit}%
\DeclareBibliographyOption{citeinit}[true]{\csuse{bool#1}%
             {cbx:nurinit}}%
\AtBeginDocument{\ifbool{bbx:nurinit}%
             {\global\booltrue{cbx:nurinit}}{}}%
%    \end{macrocode}
% \end{bibbool}
% \begin{bibbool}{cbx:ebd}\begin{bibbool}{cbx:endpunkt}
% Lokal kann durch den Schalter "cbx:ebd" auf \enquote{ebd.} verzichtet werden. Der Schalter "cbx:endpunkt" verhindert den Punkt am Ende eines Zitats.
%\changes{v1.3}{2015/03/27}{"cbx:ebd" neu}
%\changes{v1.3}{2015/03/27}{"cbx:endpunkt" neu}
%    \begin{macrocode}
\newbool{cbx:ebd}
\global\booltrue{cbx:ebd}
\newbool{cbx:endpunkt}
\global\booltrue{cbx:endpunkt}
%    \end{macrocode}
% \end{bibbool}\end{bibbool}
% Standardmäßig sind die Optionen "citeinit", "mitjahr" und "neueseitevollzitat" aktiviert.
%    \begin{macrocode}
\ExecuteBibliographyOptions{citeinit,mitjahr,neueseitevollzitat}%
%    \end{macrocode}
% \begin{FieldFormat}{prenote}\begin{FieldFormat}{postnote}\begin{FieldFormat}{shorttitle}
% Zunächst ein paar kleine Formatierungssachen: "prenote", "postnote" und "shorttitle" sollen ohne Formatierung ausgegeben werden, wenn "prenote" mit einem Punkt endet (z.B. \enquote{vgl.}) sollte dieser als Abkürzungspunkt gekennzeichnet werden.
%    \begin{macrocode}
\DeclareFieldFormat{prenote}{#1\isdot}%
\DeclareFieldFormat{postnote}{#1}%
\DeclareFieldFormat{shorttitle}{#1}%
%    \end{macrocode}
% \end{FieldFormat}\end{FieldFormat}\end{FieldFormat}
% \begin{NameFormat}{frg}
% Bei Fragmenten wird nur der Nachname des Herausgebers angegeben. Mehrere Herausgeber werden durch Schrägstriche voneinander getrennt.
%\changes{v1.4}{2016/04/17}{Change "DeclareNameFormat" to comply with "biblatex" 3.4}
%    \begin{macrocode}
\DeclareNameFormat{frg}{%
  \nameparts{#1}%
  \namepartfamily%
  \ifthenelse{\value{listcount}<\value{liststop}}%
    {\addspace\slash\addspace}{}%
}%
%    \end{macrocode}
% \end{NameFormat}
% \begin{macro}{\multicitedelim}
% Das Trennzeichen zwischen mehreren Zitaten bei "\cites" ist ein Semikolon.
%    \begin{macrocode}
\renewcommand*{\multicitedelim}{\setunit{\addsemicolon\addspace}}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\citeautorenschriftart}\begin{macro}{\citeautorentrennzeichen}
% Die Makros "\citeautorenschrifart" und "\citeautorentrennzeichen" verhalten sich genau wie "\autorenschriftart" und "\autorentrennzeichen" aus der "bbx"-Datei.
%    \begin{macrocode}
\newcommand*{\citeautorenschriftart}{\scshape}%
\newcommand*{\citeautorentrennzeichen}%
                         {\addnbspace\slash\addspace}%
%    \end{macrocode}
% \end{macro}\end{macro}
% \begin{NameFormat}{cite:author}
% Beim Erstzitat werden Autorennamen genau wie in der Bibliographie formatiert. Danach entsprechend "cite:author". Vor allem werden die Optionen "mitvn" und "citeinit" berücksichtigt (standardmäßig werden Vornamen ganz unterdrückt).
%\changes{v1.4}{2016/04/17}{Change "DeclareNameFormat" to comply with "biblatex" 3.4}
%\changes{v1.4}{2016/09/21}{Change "ifempty" to "ifdefvoid" to comply with "biblatex" 3.4}
%\changes{v1.4}{2016/06/06}{Change "ifblank" to "ifempty" to comply with new "nameparts" format.}
%    \begin{macrocode}
\DeclareNameFormat{cite:author}{%
  \nameparts{#1}%
  {\citeautorenschriftart%
   \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
   \namepartfamily}%
  \ifbool{cbx:mitvn}{%
      \ifdefvoid{\namepartgiven}{}{\addcomma\space%
            \ifbool{cbx:nurinit}{\namepartgiveni}{\namepartgiven}}}{%
%    \end{macrocode}
% "citeinit" funktioniert auch ohne "mitvn".
%    \begin{macrocode}
      \ifbool{cbx:nurinit}{\addcomma\addspace\namepartgiveni}{}%
    }%
  \ifthenelse{\value{listcount}<\value{liststop}}%
    {\citeautorentrennzeichen}{}%
  \isdot%
}%
%    \end{macrocode}
% \end{NameFormat}
% \begin{bibmacro}{prenote}
% Fangen wir nun vorne an: mit dem "prenote"-Bereich. Hier wird einfach das Feld ausgegeben.
%    \begin{macrocode}
\renewbibmacro*{prenote}{%
  \iffieldundef{prenote}{}%
    {\printfield{prenote}%
     \setunit{\addspace}}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{postnote}
% Das "postnote"-Feld ist schon komplizierter. Wenn bei einem Erstzitat (also "cbx:seen" ist "false") das Feld "pages" gesetzt ist, stoßen hier zwei Seitenzahlen aufeinander, die \enquote{aktuelle} soll also durch \enquote{hier} eingeleitet werden. Ausnahme hierfür sind Urkunden, denn die haben wenn überhaupt Zeilenzahlen also ist eine Verwechslung ausgeschlossen. Bei Einträgen vom Typ "antik" brauchen wir das auch nicht, denn da unterscheidet sich das Erstzitat nicht von den sonstigen (hat also insbesondere keine Seitenzahlen).
%\changes{v1.3}{2013/07/15}{Kein hier bei antik}
%
% Zuerst müssen wir aber noch das Komma \enquote{nachschieben}. Aber nur, wenn wir kein Freakformat sind.
%    \begin{macrocode}
\renewbibmacro*{postnote}{%
  \ifboolexpr{bool{cbx:antik}%
           or bool{cbx:frg}%
           or bool{cbx:frgantik}}%
              {\setunit{\addspace}}%
              {\newunit}%
  \iffieldundef{postnote}{}%
    {\ifboolexpr{not bool{cbx:seen}%
             and not test {\iffieldundef{pages}}%
             and not bool{cbx:urkunde}%
             and not bool{cbx:antik}}%
              {\printtext{hier}\addspace}{}%
%    \end{macrocode}
% Wenn das Werk die Option "antik" hat, soll einfach immer die "postnote" ausgegeben werden. Bei Fragmenten zusätzlich der Herausgeber, entsprechend formatiert.
%    \begin{macrocode}
     \ifboolexpr{bool{cbx:antik} or bool{cbx:frg}}{%
       \ifbool{cbx:antik}{\printfield{postnote}}{}%
       \ifbool{cbx:frg}{%
         \printfield{postnote}\addspace%
         \ifnameundef{shorteditor}%
           {\printnames[frg]{editor}\addperiod}%
           {\printnames[frg]{shorteditor}\addperiod}%
       }{}%
     }{%
%    \end{macrocode}
% Normalerweise gilt aber: Wenn wir gleiches Werk an gleicher Stelle zitieren (\enquote{ebd.}, nur leider funktioniert "\ifciteibid" nicht mehr, da wir den eigentlichen "cite"-Teil schon verlassen haben, daher Überprüfung mit "\cbx@lastentrykey") wollen wir normalerweise die Seitenzahl nicht noch einmal ausgeben. Wenn die Option "ibidpages" gesetzt wurde oder wir mit der Option "neueseitevollzitat" auf einer neuen Seite sind, soll die Seitenzahl aber in jedem Fall ausgegeben werden.
%    \begin{macrocode}
       \ifboolexpr{test {\iffieldequals{postnote}{\cbx@lastpagenumber}}%
           and test {\iffieldequals{entrykey}{\cbx@lastentrykey}}%
           and not (bool{cbx:neueseitevollzitat} and test {\iffirstonpage})%
           and not bool{cbx:ibidpages}}{}{%
%    \end{macrocode}
% Wenn das alles nicht zutrifft wird also die Seitenzahl ausgegeben. Die Option "mits" entscheidet darüber ob ihr ein \enquote{S.} vorangestellt wird.
%    \begin{macrocode}           
         \ifbool{cbx:mits}{\printtext{S\adddot\addspace}}{}%
         \printfield{postnote}%
       }%
     }%
   }%
%    \end{macrocode}
% \begin{macro}{\cbx@lastpagenumber} \begin{macro}{\cbx@lastentrykey}
% Das alles (hier ist die Fußnote wirklich zu ende!) wird mit einem Punkt abgeschlossen (falls "cbx:endpunkt" nicht auf "false" gestellt wurde) und der Wert des Feldes "postnote" zum Vergleich in "\cbx@lastpagenumber" geschrieben, der Wert von "entrykey" in "\cbx@lastentrykey".
%\changes{v1.3}{2015/03/27}{"cbx:endpunkt" kontrolliert Endpunkt}
%    \begin{macrocode}
   \ifbool{cbx:endpunkt}{\setunit{\addperiod}}{}%
   \savefield{postnote}{\cbx@lastpagenumber}%
   \savefield{entrykey}{\cbx@lastentrykey}%
}%
%    \end{macrocode}
% \end{macro}\end{macro}\end{bibmacro}
% \begin{bibmacro}{cite:name}
% Vom Ende zum Anfang: Als erstes wird der Name des Autors, bzw. wenn nicht vorhanden des Herausgebers, ausgegeben (die dann aber im gleichen Format: "cite:author"). Ab jetzt bezieht sich übrigens alles auf die Kurzzitate, die Erstzitate entsprechen einfach dem Bibliographieeintrag!
%    \begin{macrocode}
\newbibmacro*{cite:name}{%
  \ifnameundef{author}{%
    \ifnameundef{editor}{}{%
      \printnames[cite:author]{editor}}%
   }{%
      \printnames[cite:author]{author}%
}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{cite:title}
% Als nächstes der Titel. Hier soll möglichst "shorttitle" ausgegeben werden. Wenn das nicht geht, dann eben "title".
%    \begin{macrocode}
\newbibmacro*{cite:title}{%
  \iffieldundef{shorttitle}{%
    \usebibmacro{title}%
   }{\printfield{shorttitle}}%
}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{fnverweis}
% Beim Kurzzitat wird -- bei Option "fnverweise" -- am Ende \enquote{(Wie Anm.: \meta{Fußnote des Erstverweises})} ausgegeben.
%    \begin{macrocode}
\newbibmacro*{fnverweis}{%
  \ifbool{cbx:fnverweise}{%
    \setunit{\addspace}%
    \printtext[parens]{wie Anm\adddot\addspace%
                \ref{footref:\thefield{entrykey}}}}%
}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{cite:year}
% Als nächstes wird die Ausgabe des Jahres in Kurzzitaten geregelt. Hier werden abhängig von der Option "jahrkeineklammern" keine Klammern gesetzt.
%    \begin{macrocode}
\newbibmacro*{cite:year}{%
  \ifbool{cbx:jahrkeineklammern}%
     {\printfield{year}}%
     {\printfield[parens]{year}}}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{cite:short}
% Fassen wir das nun alles zusammen, so erhalten wir das Kurzzitat.
%    \begin{macrocode}
\newbibmacro*{cite:short}{%
%    \end{macrocode}
% Erst Möglichkeit: Alles schon gesehen ("\ifciteibid" ist "true"), dann wird nur \enquote{ebd.} ausgegeben. Einzige Ausnahme: Wir sind das erste Zitat auf der Seite und die Option "neueseitevollzitat" wurde gesetzt oder (neuerdings) über den "\ebd"-Schalter.
%\changes{v1.3}{2015/03/27}{"cbx:ebd" hinzugefügt}
%    \begin{macrocode}
  \ifboolexpr{test \ifciteibid and bool{cbx:ebd}%
          not (bool{cbx:neueseitevollzitat} and%
                 test {\iffirstonpage})}%
       {\bibstring{ibidem}\isdot}%
%    \end{macrocode}
% Zweite Möglichkeit: Immerhin Autor/Hrsg. gleich. Dann wird der nicht nochmal ausgegeben, stattdessen "\bibnamedash" -- gleiche Ausnahme wie oben. Danach in jedem Fall ein Doppelpunkt. Falls der letzte Eintrag aber "antik" war, wird in jedem Fall der Name ausgegeben.
%
% Bei der Option "nurshorthand" wird statt all dem aber nur das "shorthand"-Feld ausgegeben.
%\changes{v1.3}{2015/03/25}{"antik" verhindert Ders.}
%    \begin{macrocode}
      {\ifbool{cbx:nurshorthand}%
         {\printfield{shorthand}}%
         {\ifboolexpr{test \ifciteidem and not%
               bool{cbx:lastantik} and not%
               (bool{cbx:neueseitevollzitat} and%
                test {\iffirstonpage})}%
             {\bibnamedash}%
             {\usebibmacro{cite:name}}%
        \setunit{\addcolon\addspace}%
%    \end{macrocode}
% Als nächstes der Titel gefolgt -- bei Option "mitjahr" -- von dem Jahr (hier geht implizit noch die Option "jahrohneklammern" ein).
%    \begin{macrocode}        
         \usebibmacro{cite:title}%
         \ifbool{cbx:mitjahr}{\setunit{\addspace}%
                             \usebibmacro{cite:year}}{}}%
%    \end{macrocode}
% Bei Bedarf wird -- auch bei Option "nurshorthand" -- noch ein Verweis auf Fußnote des Erstzitats ausgegeben. Jetzt kommt nur noch "postnote".
% \changes{v1.1}{2012/03/31}{Umsetzung von Option "nurshorthand".}
%    \begin{macrocode}
         \usebibmacro{fnverweis}}%
}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{bibmacro}{cite}
% Die Hauptarbeit geschieht hier: Dieser Makro wird bei jedem Zitieren aufgerufen und muss entscheiden, was zu tun ist.
%    \begin{macrocode}
\newbibmacro*{cite}{%
%    \end{macrocode}
% Zuerst werden zwei Spezialfälle verarztet: Bei Fragmenten oder "antik"-Werken wird in jedem Fall \emph{nur} das "shorthand"-Feld ausgegeben, bei Werken, die "frg" aber nicht "frgantik" sind, wird im Anschluss noch \enquote{frg.} ausgegeben.
%
% Lustigerweise implizierte "antikfrg" ja "frg", wodurch die Fallunterscheidung etwas esoterisch wird:
%    \begin{macrocode}
  \ifboolexpr{bool{cbx:antik} or bool{cbx:frg}}{%
      \ifboolexpr{bool{cbx:antik} or bool{cbx:frgantik}}{%
%    \end{macrocode}
% "\bibhyperref" liefert den Verweis (zum clicken) auf das Literaturverzeichnis. Bei der Option "antikebd" wird auch hier ggf. das "shorthand"-Feld durch \enquote{ebd.} ersetzt -- natürlich unter Beachtung der Option "neueseitevollzitat".
% \changes{v1.1}{2012/03/31}{Umsetzung der Option "antikebd".}
%    \begin{macrocode}      
         \bibhyperref{%
             \ifboolexpr{bool{cbx:antikebd} and 
                    test \ifciteibid and not%
                   (bool{cbx:neueseitevollzitat} and test {\iffirstonpage})}%
                {\bibstring{ibidem}}%
                {\printfield{shorthand}\setunit{\adddot\addspace}}%
          }%
        }{%
%    \end{macrocode}
% Jetzt sind wir also im Fall "frg" aber nicht "frgantik".
%    \begin{macrocode}
              \bibhyperref{%
                 \printfield{shorthand}\setunit{\adddot\addspace}%
                 \printtext{frg}\adddot\setunit{\addspace}%
              }%
        }%  
  }{%
%    \end{macrocode}
% Nun zum \enquote{Normalfall}. Zuerst müssen wir feststellen, ob es ein Erstzitat oder ein Folgezitat ist. Folgezitate ("\ifciteseen" ist "true") werden mit "cite:short" verarbeitet. Eine Ausnahme: Bei Urkunden wird in dem Fall nur der Titel ausgegeben (außer bei zwei aufeinander folgenden, dann \enquote{ebd.})
%
% Außerdem soll man hier beim Anklicken auf dem Erstzitat landen. Das wird weiter unten mit "ref:\thefield{entrykey}" versehen.
%    \begin{macrocode}
  \ifciteseen{\bibhyperlink{ref:\thefield{entrykey}}{%
        \ifbool{cbx:urkunde}{%
             \ifciteibid{\bibstring{ibidem}}%
                           {\usebibmacro{cite:title}}%
        }{\usebibmacro{cite:short}}}}%
%    \end{macrocode}
% Beim Erstzitat wollen wir ein Vollzitat, also verwenden wir einfach den entsprechenden "BibliographyDriver" aus der "bbx"-Datei. Außerdem müssen wir hier ein "bibhypertarget" für die Folgezitate setzen und wollen gleichzeitig einen Verweis auf das Literaturverzeichnis.
%    \begin{macrocode}
  {\bibhypertarget{ref:\thefield{entrykey}}{%
        \bibhyperref{\usedriver{}{\thefield{entrytype}}}%
%    \end{macrocode}
% Beim Erstzitat merken wir uns außerdem die Fußnotenzahl.
%    \begin{macrocode}
         \iffootnote{\label{footref:\thefield{entrykey}}}{}%
   }}%
  }%
%    \end{macrocode}
% In jedem Fall wollen wir uns für die "postnote" den Zustand von "\ifciteseen" merken, da wir da nicht mehr rankommen werden. Auch hier rufen wir sicherheitshalber noch einmal "savestuff" auf.
%    \begin{macrocode}
  \ifciteseen{\global\booltrue{cbx:seen}}%
                  {\global\boolfalse{cbx:seen}}%
  \usebibmacro{savestuff}%
}%
%    \end{macrocode}
% \end{bibmacro}
% \begin{macro}{\cite}\begin{macro}{\parencite} \begin{macro}{\footcite} \begin{macro}{\textcite}
% Zum Abschluss noch die Zitierbefehle. Alle rufen die Makros "prenote", "cite" und "postnote", so wie die unveränderten "biblatex"-Makros "citeindex"  auf. Bei "\textcite" wird am Ende (nach dem letzten) noch "\finentry" aufgerufen, um Leerzeichen am Ende zu entfernen, die den danach kommenden Text ärgern würden. Trennzeichen ist auch hier immer "\multicitedelim".
%
% Bemerkenswert ist vielleicht noch, dass "\cite" hier "\footcite" entspricht. Wenn man in einer Fußnote zitieren möchte, kann man das mit "\textcite" gerne tun. "\parencite" ist hier wohl nicht so sinnvoll, aber wennschon dennschon.
%    \begin{macrocode}
\DeclareCiteCommand{\cite}[\mkbibfootnote]%
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}\usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%
\DeclareCiteCommand{\parencite}[\mkbibparens]%
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}\usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%
\DeclareCiteCommand{\footcite}[\mkbibfootnote]%
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}\usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%
\DeclareCiteCommand{\textcite}%
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}\usebibmacro{cite}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}%
    \ifnum\themulticitetotal=\themulticitecount\ifbool{cbx:endpunkt}{\finentry}{}\fi%
    \ifnum\thecitetotal=\thecitecount\ifbool{cbx:endpunkt}{\finentry}{}\fi}%
%    \end{macrocode}
%\changes{v1.3}{2015/03/27}{"cbx:endpunkt" eingefügt}
%\changes{v1.3}{2015/01/29}{Problem mit mehreren aufeinanderfolgenden "textcites" behoben}
% \end{macro}\end{macro}\end{macro}\end{macro}
% \begin{macro}{\cites} \begin{macro}{\parencites} \begin{macro}{\footcites} \begin{macro}{\textcites}
% Zu guter letzt die Zitierbefehle für mehrere Zitate auf einmal. Diese basieren auf den entsprechenden \enquote{einfachen} Stilen.
%    \begin{macrocode}
\DeclareMultiCiteCommand{\cites}[\mkbibfootnote]{\cite}%
            {\multicitedelim}%
\DeclareMultiCiteCommand{\parencites}[\mkbibparens]{\parencite}%
            {\multicitedelim}%
\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]{\footcite}%
           {\multicitedelim}%
\DeclareMultiCiteCommand{\textcites}{\textcite}{\multicitedelim}%
%    \end{macrocode}
% \end{macro}\end{macro}\end{macro}\end{macro}
% Jupdidu, das war's! :)
% \iffalse
%</cbx>
% \fi
%
% \subsection{geschichtsfrkldoc.sty}\label{geschichtsfrkldoc}
% \changes{v1.2}{2012/04/22}{Enhanced index}
% \changes{v1.2}{2012/04/22}{Added geschichtsfrkldoc.sty}
%
% Diese Datei hat nicht wirklich viel mit "biblatex" zu tun sondern dient eher der Erstellung dieser Dokumentation: "docstrip" erlaubt für gewöhnlich nur zwischen "macro"s und "environment"s zu unterscheiden, das nutzt hier aber recht wenig, da wir es vor allem mit "bibmacro"s und jede Menge "bool"s zu tun haben. Diese unterscheiden sich syntaktisch so sehr von den \enquote{konventionellen} \LaTeX-Befehlen, dass der von "docstrip" generierte Index nicht mehr sonderlich sinnvoll ist. Das wird durch dieses Paket zumindest zum Teil behoben.
%
% Genauer: Zumindest bei allen Vorkommen von "\usebibmacro" wird nun ein zu dem "bibmacro" gehöriger Indexeintrag erstellt (also nicht nur einer für "\usebibmacro"), genauso bei jedem "\ifbool" einer für den zugehörigen "bool". Die \enquote{name formats} und \enquote{field formats} werden bisher nur bei der Definition, nicht beim Vorkommen, erkannt (die müsste man ja irgendwie aus den optionalen Argumenten von Befehlen wir "\printfield" rausfischen und das macht keinen Spaß ...). Das ist sicherlich noch nicht perfekt aber zumindest ein Anfang :)
%
% Kommentare und Verbesserungsvorschläge sind natürlich wieder erwünscht. Zu bemerken wäre noch, dass -- zumindest die interessanten Teile diese Codes -- von David Carlisle\footnote{Siehe dazu \url{http://tex.stackexchange.com/questions/49850/indexing-macros-without-a-leading-backslash-in-a-dtx-file}.} stammen.
%
% \iffalse
%<*dtxstyle>
% \fi
%
%    \begin{macrocode}
\ProvidesPackage{geschichtsfrkldoc.sty}

%%%%%%%%%%%%%%%%%%%%%%%%%%
%% This code is curtesy of David Carlisle
%% http://tex.stackexchange.com/questions/49850/indexing-macros-without-a-leading-backslash-in-a-dtx-file
%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\bibmacro{\def\macro@type{bibmacro}\environment}
\let\endbibmacro\endenvironment

\def\bibbool{\def\macro@type{bibbool}\environment}
\let\endbibbool\endenvironment

\def\BibliographyOption{\def\macro@type{bibliography option}\environment}
\let\endBibliographyOption\endenvironment

\def\BibliographyDriver{\def\macro@type{bibliography driver}\environment}
\let\endBibliographyDriver\endenvironment

\def\EntryOption{\def\macro@type{entry option}\environment}
\let\endEntryOption\endenvironment

\def\FieldFormat{\def\macro@type{field format}\environment}
\let\endFieldFormat\endenvironment

\def\NameFormat{\def\macro@type{name format}\environment}
\let\endNameFormat\endenvironment

\def\macro@type{environment}%% default

\def\macro@finish{%
  \macro@namepart
\ifx\macro@namepart\xbegin
  \def\macro@type{environment}%
\else\ifx\macro@namepart\xifbool
   \def\macro@type{bibbool}%
   \let\macro@namepart\xbegin
\else\ifx\macro@namepart\xusebibmacro
 \def\macro@type{bibmacro}%
 \let\macro@namepart\xbegin
\fi\fi\fi
\ifx\macro@namepart\xbegin
  \expandafter\macro@grabname
  \else  
\ifx\macro@namepart\xend
 \else
  \ifnot@excluded
     \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro@namepart}}%
     \@tempa  \fi
  \fi\fi}

\def\xbegin{begin}
\def\xifbool{ifbool}
\def\xusebibmacro{usebibmacro}
\def\xend{end}
\begingroup
\lccode`\(`\{
\lccode`\)`\}
\lowercase{\endgroup
\def\macro@grabname\fi(#1){%
(#1)%
\SpecialxEnvUseIndex\macro@type{#1}%
}
}

\def\SpecialxEnvUseIndex#1{%
  \expandafter\SpecialxxEnvUseIndex\expandafter{#1}}

\def\SpecialxxEnvUseIndex#1#2{\@bsphack
    \special@index{#2\actualchar{\string\ttfamily\space#2}
           (#1)}%
    \special@index{#1s:\levelchar#2\actualchar{\string\ttfamily\space#2}}\@esphack}

\def\SpecialMainEnvIndex{%
   \expandafter\SpecialMainxEnvIndex\expandafter{\macro@type}}

\def\SpecialMainxEnvIndex#1#2{\@bsphack\special@index{%
                                      #2\actualchar
                                      {\string\ttfamily\space#2}
                                         (#1)%
                                      \encapchar main}%
    \special@index{#1s:\levelchar#2\actualchar{%
                   \string\ttfamily\space#2}\encapchar
           main}\@esphack}

\def\DescribeBibBool{%
\leavevmode\@bsphack\begingroup\MakePrivateLetters
\def\macro@type{bibbool}\begingroup\Describe@Env}

\def\DescribeBibMacro{%
\leavevmode\@bsphack\begingroup\MakePrivateLetters
\def\macro@type{bibmacro}\begingroup\Describe@Env}

\def\DescribeBibEnv{%
\leavevmode\@bsphack\begingroup\MakePrivateLetters
\def\macro@type{environment}\begingroup\Describe@Env}

\def\DescribeBibOption{%
\leavevmode\@bsphack\begingroup\MakePrivateLetters
\def\macro@type{bibliography option}\begingroup\Describe@Env}

\def\DescribeBibDriver{%
\leavevmode\@bsphack\begingroup\MakePrivateLetters
\def\macro@type{bibliography driver}\begingroup\Describe@Env}

\def\DescribeBibField{%
\leavevmode\@bsphack\begingroup\MakePrivateLetters
\def\macro@type{field}\begingroup\Describe@Env}

\def\DescribeEntryOption{%
\leavevmode\@bsphack\begingroup\MakePrivateLetters
\def\macro@type{entry option}\begingroup\Describe@Env}

\def\Describe@Env#1{\endgroup
              \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
              \SpecialEnvIndex{#1}\endgroup\@esphack\ignorespaces}

\def\SpecialEnvIndex{%
   \expandafter\SpecialxEnvIndex\expandafter{\macro@type}}

\def\SpecialxEnvIndex#1#2{\@bsphack
    \index{#2\actualchar{\string\ttfamily\space#2}
           (#1)\encapchar usage}%
    \index{#1s:\levelchar#2\actualchar{\string\ttfamily\space#2}\encapchar
           usage}\@esphack}
%    \end{macrocode}
%
%\iffalse
%</dtxstyle>
%\fi
% \changes{v0.1}{2011/02/18}{Started Project}
% \changes{v1.0}{2012/03/29}{First public version}
%\addcontentsline{toc}{section}{Change History}
%\PrintChanges
%\addcontentsline{toc}{section}{Index}
%\PrintIndex