biblatex-german-legal - v002
[~brodo/biblatex-german-legal.git] / german-legal-book.cbx
1 \ProvidesFile{german-legal-book.cbx}[2020/03/13 v001]
2 %%% license: LPPL 1.3c or later
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 %%% F├╝r eine Zitierung nach Randnummern sei ein neuer String namens
30 %%% 'marginnumber' definiert.
31 \NewBibliographyString{marginnumber}
32 \DefineBibliographyStrings{english}{%
33         marginnumber    = {mn.}
34 }
35 \DefineBibliographyStrings{german}{%
36         marginnumber    = {Rn.}
37 }
38
39
40 %%%%%%%%%%%%%%%%%%%%%%%%
41 %%% Allgemeiner Teil %%%
42 %%%%%%%%%%%%%%%%%%%%%%%%
43
44 %%% Mehrere Autorennamen werden durch einen Schr├Ągstrich getrennt. Dieser
45 %%% ist -- wie die Autorennamen selbst (siehe bbx) -- kursiv zu setzen.
46 \AtEveryCite{%
47   \renewcommand*{\multinamedelim}{\mkbibemph{\addslash}}%
48   \renewcommand*{\finalnamedelim}{\mkbibemph{\addslash}}%
49 }
50
51 %%% cite:title wird normalerweise verwendet, um alles ab dem Beitragstitel
52 %%% (d.h. nach dem Autorennamen) auszugeben. Mit dieser "Weiche" kann
53 %%% hierf├╝r, abh├Ąngig vom Beitragstyp, ein eigenes Makro definiert werden.
54 \renewbibmacro*{cite:title}{%
55   \printtext[bibhyperref]{%
56     \ifbibmacroundef{cite:\strfield{entrytype}}%
57     {%%% default, from authortitle.cbx %%%
58       \printfield[citetitle]{labeltitle}%
59     }{%%% use custom override %%%
60       \usebibmacro*{cite:\strfield{entrytype}}%
61     }%
62   }%
63 }
64
65 %%% Mit diesem Makro wird standardm├Ą▀ig die Startseite ausgegeben, wenn
66 %%% es einer genauen Fundstelle ("pinpoint citation") als postnote fehlt.
67 \newbibmacro*{startingpage}{%
68   \iffieldundef{postnote}%
69     {\iffieldundef{pages}{}%
70       {\addcomma\addspace\printfield{pages}}}%
71     {}%
72 }
73
74 %%% Die Formatdefintion "edition:super" und das Makro "printsuperedition"
75 %%% werden genutzt, um -- falls book:edition:super auf "true" gesetzt ist
76 %%% (Option "edsuper", siehe oben) die Auflagennummer (!) hochgestellt
77 %%% auszugeben.
78 \DeclareFieldFormat{edition:super}{%
79   \ifinteger{#1}{%
80     \textsuperscript{\tiny{#1}}%
81   }{}%
82 }
83
84 \newbibmacro*{printsuperedition}{%
85   \ifbool{book:edition:super}{\printfield[edition:super]{edition}}{}%
86 }
87
88
89 %%%%%%%%%%%%%%%
90 %%% article %%%
91 %%%%%%%%%%%%%%%
92
93 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
94 %%% Startseite ausgegeben werden.
95 \AtEveryCite{%
96   \DeclareFieldFormat[article]{pages}{\mkfirstpage{#1}}%
97 }
98
99 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
100 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
101 %%% einer Klammer ausgegeben werden.
102 \DeclareFieldFormat[article]{postnote}{\addspace\printfield{pages}\addspace\mkbibparens{#1}}
103
104 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Aufs├Ątze definiert, die
105 %%% in Zeitschriften erschienen sind, welche nach Erscheinungsjahr (und
106 %%% nicht Band, dann @periodical) zitiert werden:
107 \newbibmacro*{cite:article}{%
108   %%%
109   %%% Zeitschriftenname...
110   \usebibmacro{journal}%
111   %%%
112   %%% Leerzeichen...
113   \setunit*{\addspace}%
114   %%%
115   %%% ggf. Angabe der Ausgabe (wenn Feld "issue" definiert ist)
116   \iffieldundef{issue}{}{\printfield{issue}\slash}%
117   %%%
118   %%% Jahr...
119   \printfield{year}%
120   %%%
121   %%% und dann die Startseite bzw. pinpoint citation
122   \usebibmacro{startingpage}%
123 }
124
125
126 %%%%%%%%%%%%%%%%%%
127 %%% periodical %%%
128 %%%%%%%%%%%%%%%%%%
129
130 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
131 %%% Startseite ausgegeben werden.
132 \AtEveryCite{%
133   \DeclareFieldFormat[periodical]{pages}{\mkfirstpage{#1}}%
134 }
135
136 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
137 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
138 %%% einer Klammer ausgegeben werden.
139 \DeclareFieldFormat[periodical]{postnote}{\printfield{pages} \mkbibparens{#1}}
140
141 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Aufs├Ątze definiert, die
142 %%% in Zeitschriften erschienen sind, welche nach Band (und nicht nach
143 %%% Erscheinungsjahr, dann @article) zitiert werden:
144 \newbibmacro*{cite:periodical}{%
145   %%%
146   %%% Zeitschriftenname...
147   \usebibmacro{journal}%
148   %%%
149   %%% Leerzeichen...
150   \setunit*{\addspace}%
151   %%%
152   %%% Band...
153   \printfield{volume}%
154   %%%
155   %%% Leerzeichen...
156   \addspace%
157   %%%
158   %%% Jahr (in Klammern)...
159   \mkbibparens{\printfield{year}}%
160   %%%
161   %%% Komma...
162   \addcomma%
163   %%%
164   %%% und dann die Startseite bzw. pinpoint citation
165   \usebibmacro{startingpage}%
166 }
167
168
169 %%%%%%%%%%%%
170 %%% book %%%
171 %%%%%%%%%%%%
172
173 %%% In der Fu▀noten interessiert uns nur die Auflagenzahl (ohne "Aufl.")
174 \AtEveryCite{%
175   \DeclareFieldFormat[book]{edition}{#1}%
176 }
177
178 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r B├╝cher definiert:
179 \newbibmacro*{cite:book}{%
180   \printfield[citetitle]{labeltitle}%
181   \usebibmacro{printsuperedition}%
182 }
183
184
185 %%%%%%%%%%%%%%
186 %%% inbook %%%
187 %%%%%%%%%%%%%%
188
189 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
190 %%% Startseite (mit S. vorneweg) ausgegeben werden.
191 \AtEveryCite{%
192   \DeclareFieldFormat[inbook]{pages}{%
193      \iffieldequalstr{pagination}{section}{%
194         %%% if we cite by margin number, just have the section printed here...
195         \mkfirstpage{#1}%
196      }{%
197         %%% otherwise, print the page prefix and the first page here...
198         \bibstring{page}~\mkfirstpage{#1}%
199      }%
200   }%
201 }
202
203 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
204 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
205 %%% einer Klammer ausgegeben werden. Ausnahme: Ist als pagination 'section'
206 %%% angegeben, so erfolgt eine Ausgabe nach Randnummern.
207 \DeclareFieldFormat[inbook]{postnote}{%
208    \printfield{pages}%
209    \addspace%
210    \iffieldequalstr{pagination}{section}{\bibstring{marginnumber}~#1}{\mkbibparens{#1}}%
211 }
212
213 %%% Herausgebernamen in der Fu▀note d├╝rfen abgek├╝rzt werden
214 \AtEveryCite{%
215    \DeclareNameAlias[inbook]{byeditor}{labelname}%
216 }
217
218 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Buchbeitr├Ąge definiert:
219 \newbibmacro*{cite:inbook}{%
220   %%%
221   %%% in:
222   \usebibmacro{in:}%
223   %%%
224   %%% Hrsg. ...
225   \usebibmacro{byeditor+others}%
226   %%%
227   %%% Leerzeichen...
228   \newunit\newblock%
229   %%%
230   %%% dann der Buchtitel...
231   \iffieldundef{shorttitle}%
232      {\printfield{booktitle}}%
233      {\printfield{shorttitle}}%
234   \usebibmacro{printsuperedition}%
235   %%%
236   %%% Leerzeichen...
237   \newunit\newblock%
238   %%%
239   %%% und dann die Startseite bzw. pinpoint citation
240   \usebibmacro{startingpage}%
241 }
242
243
244 %%%%%%%%%%%%%%%%%%%%
245 %%% incollection %%%
246 %%%%%%%%%%%%%%%%%%%%
247
248 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
249 %%% Startseite (mit S. vorneweg) ausgegeben werden.
250 \AtEveryCite{%
251   \DeclareFieldFormat[incollection]{pages}{%
252      \bibstring{page}~\mkfirstpage{#1}%
253   }%
254 }
255
256 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
257 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
258 %%% einer Klammer ausgegeben werden.
259 \DeclareFieldFormat[incollection]{postnote}{\printfield{pages} \mkbibparens{#1}}
260
261 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Festschriftenbeitr├Ąge definiert:
262 \newbibmacro*{cite:incollection}{%
263   %%%
264   %%% in:
265   \usebibmacro{in:}%
266   %%%
267   %%% Festschriftentitel...
268   \iffieldundef{shorttitle}%
269      {\printfield{booktitle}}%
270      {\printfield{shorttitle}}%
271   %%%
272   %%% Leerzeichen...
273   \newunit\newblock%
274   %%%
275   %%% und dann die Startseite bzw. pinpoint citation
276   \usebibmacro{startingpage}%
277 }
278
279
280 %%%%%%%%%%%%%%%%%%
281 %%% commentary %%%
282 %%%%%%%%%%%%%%%%%%
283
284 %%% Der Bearbeiter wird im prenote-Feld angegeben und kursiv gesetzt, danach
285 %%% folgt ein Komma
286 \DeclareFieldFormat[commentary]{prenote}{\mkbibemph{#1}\addcomma}%
287
288 %%% Falls bei einem Kommentar "shorthand" angegeben ist, werden die
289 %%% Herausgeber nicht (!) genannt. Hierzu wird der Befehl
290 %%% \printnames{labelname} im allgemeinen Makro "textcite" unter die
291 %%% Bedingung gestellt, dass es sich um einen Kommentar handelt und ein
292 %%% "shorthand" definiert ist.
293 \xpatchbibmacro{textcite}{%
294   \printnames{labelname}%
295 }{%
296   \ifentrytype{commentary}{%
297     \iffieldundef{shorthand}{%
298       \printnames{labelname}%
299     }{}%
300   }{%
301     \printnames{labelname}%
302   }%
303 }{}{}
304
305 %%% Falls bei einem Kommentar "shorthand" angegeben ist, muss trotzdem das
306 %%% "in:" vorangestellt und die Auflagennummer nachgeschoben werden. Hierzu
307 %%% wird das allgemeine Makro "cite:shorthand" entsprechend modifiziert.
308 \xpatchbibmacro{cite:shorthand}{%
309   \printfield{shorthand}%
310 }{%
311   \usebibmacro{in:}%
312   \printfield{shorthand}%
313   \usebibmacro{printsuperedition}%
314 }{}{}
315
316 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Kommentare definiert. Dieser
317 %%% wird indes nur verwendet, falls "shorthand" nicht definiert ist;
318 %%% andernfalls erledigen die oben modifizierten Makros "textcite" und
319 %%% "cite:shorthand" die ganze Arbeit.
320 \newbibmacro*{cite:commentary}{%
321   \usebibmacro{in:}%
322   \iffieldundef{shorttitle}%
323      {\printfield{booktitle}}%
324      {\printfield{shorttitle}}%
325 }
326
327 \endinput