biblatex-german-legal - comprehensive citation style for German legal texts
[~brodo/biblatex-german-legal.git] / german-legal-book.cbx
1 \ProvidesFile{german-legal-book.cbx}[2020/03/06 v000]
2 %%% license: LPPL
3 %%% author-maintainer: Dominik Brodowski, dominik.brodowski@uni-saarland.de
4
5
6 %%%%%%%%%%%%%%%%
7 %%% Vorspann %%%
8 %%%%%%%%%%%%%%%%
9
10 %%% Dieser Zitierstil basiert auf ext-authortitle, verwendet aber kein
11 %%% ibidem (Geschmacksfrage!)
12 \RequireCitationStyle{ext-authortitle}%
13
14 %%% Um die ─nderungen so klein wie m├Âglich zu halten, wird das Paket
15 %%% xpatch verwendet, mit dem sich existierende Makros ver├Ąndern lassen,
16 %%% ohne sie g├Ąnzlich neu definieren zu m├╝ssen.
17 \RequirePackage{xpatch}%
18
19 %%% Mit der Option "edsuper" wird angegeben, ob die Auflagennummer bei
20 %%% B├╝chern und Kommentaren mit abgedruckt werden soll. Der Standard ist
21 %%% "true", d.h. um dies zu unterbinden, muss "edsuper=false" als Option
22 %%% gesetzt werden.
23 \newbool{book:edition:super}
24 \setboolean{book:edition:super}{true}
25 \DeclareBibliographyOption[boolean]{edsuper}[true]{%
26   \setboolean{book:edition:super}{#1}%
27 }
28
29
30 %%%%%%%%%%%%%%%%%%%%%%%%
31 %%% Allgemeiner Teil %%%
32 %%%%%%%%%%%%%%%%%%%%%%%%
33
34 %%% Mehrere Autorennamen werden durch einen Schr├Ągstrich getrennt. Dieser
35 %%% ist -- wie die Autorennamen selbst (siehe bbx) -- kursiv zu setzen.
36 \AtEveryCite{%
37   \renewcommand*{\multinamedelim}{\mkbibemph{\addslash}}%
38   \renewcommand*{\finalnamedelim}{\mkbibemph{\addslash}}%
39 }
40
41 %%% cite:title wird normalerweise verwendet, um alles ab dem Beitragstitel
42 %%% (d.h. nach dem Autorennamen) auszugeben. Mit dieser "Weiche" kann
43 %%% hierf├╝r, abh├Ąngig vom Beitragstyp, ein eigenes Makro definiert werden.
44 \renewbibmacro*{cite:title}{%
45   \printtext[bibhyperref]{%
46     \ifbibmacroundef{cite:\strfield{entrytype}}%
47     {%%% default, from authortitle.cbx %%%
48       \printfield[citetitle]{labeltitle}%
49     }{%%% use custom override %%%
50       \usebibmacro*{cite:\strfield{entrytype}}%
51     }%
52   }%
53 }
54
55 %%% Mit diesem Makro wird standardm├Ą▀ig die Startseite ausgegeben, wenn
56 %%% es einer genauen Fundstelle ("pinpoint citation") als postnote fehlt.
57 \newbibmacro*{startingpage}{%
58   \iffieldundef{postnote}%
59     {\iffieldundef{pages}{}%
60       {\addcomma\addspace\printfield{pages}}}%
61     {}%
62 }
63
64 %%% Die Formatdefintion "edition:super" und das Makro "printsuperedition"
65 %%% werden genutzt, um -- falls book:edition:super auf "true" gesetzt ist
66 %%% (Option "edsuper", siehe oben) die Auflagennummer (!) hochgestellt
67 %%% auszugeben.
68 \DeclareFieldFormat{edition:super}{%
69   \ifinteger{#1}{%
70     \textsuperscript{\tiny{#1}}%
71   }{}%
72 }
73
74 \newbibmacro*{printsuperedition}{%
75   \ifbool{book:edition:super}{\printfield[edition:super]{edition}}{}%
76 }
77
78
79 %%%%%%%%%%%%%%%
80 %%% article %%%
81 %%%%%%%%%%%%%%%
82
83 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
84 %%% Startseite ausgegeben werden.
85 \AtEveryCite{%
86   \DeclareFieldFormat[article]{pages}{\mkfirstpage{#1}}%
87 }
88
89 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
90 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
91 %%% einer Klammer ausgegeben werden.
92 \DeclareFieldFormat[article]{postnote}{\addspace\printfield{pages}\addspace\mkbibparens{#1}}
93
94 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Aufs├Ątze definiert, die
95 %%% in Zeitschriften erschienen sind, welche nach Erscheinungsjahr (und
96 %%% nicht Band, dann @periodical) zitiert werden:
97 \newbibmacro*{cite:article}{%
98   %%%
99   %%% Leerzeichen...
100   \addspace%
101   %%%
102   %%% Zeitschriftenname...
103   \usebibmacro{journal}%
104   %%%
105   %%% Leerzeichen...
106   \setunit*{\addspace}%
107   %%%
108   %%% ggf. Angabe der Ausgabe (wenn Feld "issue" definiert ist)
109   \iffieldundef{issue}{}{\printfield{issue}\slash}%
110   %%%
111   %%% Jahr...
112   \printfield{year}%
113   %%%
114   %%% und dann die Startseite bzw. pinpoint citation
115   \usebibmacro{startingpage}%
116 }
117
118
119 %%%%%%%%%%%%%%%%%%
120 %%% periodical %%%
121 %%%%%%%%%%%%%%%%%%
122
123 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
124 %%% Startseite ausgegeben werden.
125 \AtEveryCite{%
126   \DeclareFieldFormat[periodical]{pages}{\mkfirstpage{#1}}%
127 }
128
129 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
130 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
131 %%% einer Klammer ausgegeben werden.
132 \DeclareFieldFormat[periodical]{postnote}{\printfield{pages} \mkbibparens{#1}}
133
134 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Aufs├Ątze definiert, die
135 %%% in Zeitschriften erschienen sind, welche nach Band (und nicht nach
136 %%% Erscheinungsjahr, dann @article) zitiert werden:
137 \newbibmacro*{cite:periodical}{%
138   %%%
139   %%% Leerzeichen...
140   \addspace%
141   %%%
142   %%% Zeitschriftenname...
143   \usebibmacro{journal}%
144   %%%
145   %%% Leerzeichen...
146   \setunit*{\addspace}%
147   %%%
148   %%% Band...
149   \printfield{volume}%
150   %%%
151   %%% Leerzeichen...
152   \addspace%
153   %%%
154   %%% Jahr (in Klammern)...
155   \mkbibparens{\printfield{year}}%
156   %%%
157   %%% Leerzeichen...
158   \addspace%
159   %%%
160   %%% und dann die Startseite bzw. pinpoint citation
161   \usebibmacro{startingpage}%
162 }
163
164
165 %%%%%%%%%%%%
166 %%% book %%%
167 %%%%%%%%%%%%
168
169 %%% In der Fu▀noten interessiert uns nur die Auflagenzahl (ohne "Aufl.")
170 \AtEveryCite{%
171   \DeclareFieldFormat[book]{edition}{#1}%
172 }
173
174 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r B├╝cher definiert:
175 \newbibmacro*{cite:book}{%
176   \printfield[citetitle]{labeltitle}%
177   \usebibmacro{printsuperedition}%
178 }
179
180
181 %%%%%%%%%%%%%%
182 %%% inbook %%%
183 %%%%%%%%%%%%%%
184
185 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
186 %%% Startseite ausgegeben werden.
187 \AtEveryCite{%
188   \DeclareFieldFormat[inbook]{pages}{\mkfirstpage{#1}}%
189 }
190
191 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
192 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
193 %%% einer Klammer ausgegeben werden.
194 \DeclareFieldFormat[inbook]{postnote}{\printfield{pages} \mkbibparens{#1}}
195
196 %%% Herausgebernamen in der Fu▀note d├╝rfen abgek├╝rzt werden
197 \AtEveryCite{%
198    \DeclareNameAlias[inbook]{byeditor}{labelname}%
199 }
200
201 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Buchbeitr├Ąge definiert:
202 \newbibmacro*{cite:inbook}{%
203   %%%
204   %%% in:
205   \usebibmacro{in:}%
206   %%%
207   %%% Hrsg. ...
208   \usebibmacro{byeditor+others}%
209   %%%
210   %%% Leerzeichen...
211   \newunit\newblock%
212   %%%
213   %%% dann der Buchtitel...
214   \iffieldundef{shorttitle}%
215      {\printfield{booktitle}}%
216      {\printfield{shorttitle}}%
217   \usebibmacro{printsuperedition}%
218   %%%
219   %%% Leerzeichen...
220   \newunit\newblock%
221   %%%
222   %%% und dann die Startseite bzw. pinpoint citation
223   \usebibmacro{startingpage}%
224 }
225
226
227 %%%%%%%%%%%%%%%%%%%%
228 %%% incollection %%%
229 %%%%%%%%%%%%%%%%%%%%
230
231 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
232 %%% Startseite ausgegeben werden.
233 \AtEveryCite{%
234   \DeclareFieldFormat[incollection]{pages}{\mkfirstpage{#1}}%
235 }
236
237 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
238 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
239 %%% einer Klammer ausgegeben werden.
240 \DeclareFieldFormat[incollection]{postnote}{\printfield{pages} \mkbibparens{#1}}
241
242 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Festschriftenbeitr├Ąge definiert:
243 \newbibmacro*{cite:incollection}{%
244   %%%
245   %%% in:
246   \usebibmacro{in:}%
247   %%%
248   %%% Festschriftentitel...
249   \iffieldundef{shorttitle}%
250      {\printfield{booktitle}}%
251      {\printfield{shorttitle}}%
252 }
253
254
255 %%%%%%%%%%%%%%%%%%
256 %%% commentary %%%
257 %%%%%%%%%%%%%%%%%%
258
259 %%% Der Bearbeiter wird im prenote-Feld angegeben und kursiv gesetzt, danach
260 %%% folgt ein Komma
261 \DeclareFieldFormat[commentary]{prenote}{\mkbibemph{#1}\addcomma}%
262
263 %%% Falls bei einem Kommentar "shorthand" angegeben ist, werden die
264 %%% Herausgeber nicht (!) genannt. Hierzu wird der Befehl
265 %%% \printnames{labelname} im allgemeinen Makro "textcite" unter die
266 %%% Bedingung gestellt, dass es sich um einen Kommentar handelt und ein
267 %%% "shorthand" definiert ist.
268 \xpatchbibmacro{textcite}{%
269   \printnames{labelname}%
270 }{%
271   \ifentrytype{commentary}{%
272     \iffieldundef{shorthand}{%
273       \printnames{labelname}%
274     }{}%
275   }{%
276     \printnames{labelname}%
277   }%
278 }{}{}
279
280 %%% Falls bei einem Kommentar "shorthand" angegeben ist, muss trotzdem das
281 %%% "in:" vorangestellt und die Auflagennummer nachgeschoben werden. Hierzu
282 %%% wird das allgemeine Makro "cite:shorthand" entsprechend modifiziert.
283 \xpatchbibmacro{cite:shorthand}{%
284   \printfield{shorthand}%
285 }{%
286   \usebibmacro{in:}%
287   \printfield{shorthand}%
288   \usebibmacro{printsuperedition}%
289 }{}{}
290
291 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Kommentare definiert. Dieser
292 %%% wird indes nur verwendet, falls "shorthand" nicht definiert ist;
293 %%% andernfalls erledigen die oben modifizierten Makros "textcite" und
294 %%% "cite:shorthand" die ganze Arbeit.
295 \newbibmacro*{cite:commentary}{%
296   \usebibmacro{in:}%
297   \iffieldundef{shorttitle}%
298      {\printfield{booktitle}}%
299      {\printfield{shorttitle}}%
300 }
301
302 \endinput