german-legal-book: clarify license in .bbx and .cbx files
[~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
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   %%% Zeitschriftenname...
100   \usebibmacro{journal}%
101   %%%
102   %%% Leerzeichen...
103   \setunit*{\addspace}%
104   %%%
105   %%% ggf. Angabe der Ausgabe (wenn Feld "issue" definiert ist)
106   \iffieldundef{issue}{}{\printfield{issue}\slash}%
107   %%%
108   %%% Jahr...
109   \printfield{year}%
110   %%%
111   %%% und dann die Startseite bzw. pinpoint citation
112   \usebibmacro{startingpage}%
113 }
114
115
116 %%%%%%%%%%%%%%%%%%
117 %%% periodical %%%
118 %%%%%%%%%%%%%%%%%%
119
120 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
121 %%% Startseite ausgegeben werden.
122 \AtEveryCite{%
123   \DeclareFieldFormat[periodical]{pages}{\mkfirstpage{#1}}%
124 }
125
126 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
127 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
128 %%% einer Klammer ausgegeben werden.
129 \DeclareFieldFormat[periodical]{postnote}{\printfield{pages} \mkbibparens{#1}}
130
131 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Aufs├Ątze definiert, die
132 %%% in Zeitschriften erschienen sind, welche nach Band (und nicht nach
133 %%% Erscheinungsjahr, dann @article) zitiert werden:
134 \newbibmacro*{cite:periodical}{%
135   %%%
136   %%% Zeitschriftenname...
137   \usebibmacro{journal}%
138   %%%
139   %%% Leerzeichen...
140   \setunit*{\addspace}%
141   %%%
142   %%% Band...
143   \printfield{volume}%
144   %%%
145   %%% Leerzeichen...
146   \addspace%
147   %%%
148   %%% Jahr (in Klammern)...
149   \mkbibparens{\printfield{year}}%
150   %%%
151   %%% Komma...
152   \addcomma%
153   %%%
154   %%% Leerzeichen...
155   \addspace%
156   %%%
157   %%% und dann die Startseite bzw. pinpoint citation
158   \usebibmacro{startingpage}%
159 }
160
161
162 %%%%%%%%%%%%
163 %%% book %%%
164 %%%%%%%%%%%%
165
166 %%% In der Fu▀noten interessiert uns nur die Auflagenzahl (ohne "Aufl.")
167 \AtEveryCite{%
168   \DeclareFieldFormat[book]{edition}{#1}%
169 }
170
171 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r B├╝cher definiert:
172 \newbibmacro*{cite:book}{%
173   \printfield[citetitle]{labeltitle}%
174   \usebibmacro{printsuperedition}%
175 }
176
177
178 %%%%%%%%%%%%%%
179 %%% inbook %%%
180 %%%%%%%%%%%%%%
181
182 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
183 %%% Startseite ausgegeben werden.
184 \AtEveryCite{%
185   \DeclareFieldFormat[inbook]{pages}{\mkfirstpage{#1}}%
186 }
187
188 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
189 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
190 %%% einer Klammer ausgegeben werden.
191 \DeclareFieldFormat[inbook]{postnote}{\printfield{pages} \mkbibparens{#1}}
192
193 %%% Herausgebernamen in der Fu▀note d├╝rfen abgek├╝rzt werden
194 \AtEveryCite{%
195    \DeclareNameAlias[inbook]{byeditor}{labelname}%
196 }
197
198 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Buchbeitr├Ąge definiert:
199 \newbibmacro*{cite:inbook}{%
200   %%%
201   %%% in:
202   \usebibmacro{in:}%
203   %%%
204   %%% Hrsg. ...
205   \usebibmacro{byeditor+others}%
206   %%%
207   %%% Leerzeichen...
208   \newunit\newblock%
209   %%%
210   %%% dann der Buchtitel...
211   \iffieldundef{shorttitle}%
212      {\printfield{booktitle}}%
213      {\printfield{shorttitle}}%
214   \usebibmacro{printsuperedition}%
215   %%%
216   %%% Leerzeichen...
217   \newunit\newblock%
218   %%%
219   %%% und dann die Startseite bzw. pinpoint citation
220   \usebibmacro{startingpage}%
221 }
222
223
224 %%%%%%%%%%%%%%%%%%%%
225 %%% incollection %%%
226 %%%%%%%%%%%%%%%%%%%%
227
228 %%% In Fu▀noten soll nicht die Seitenspanne des Aufsatzes, sondern nur die
229 %%% Startseite ausgegeben werden.
230 \AtEveryCite{%
231   \DeclareFieldFormat[incollection]{pages}{\mkfirstpage{#1}}%
232 }
233
234 %%% Gibt es eine genaue Fundstelle ("pinpoint citation") als sog. postnote,
235 %%% so soll zun├Ąchst die Startseite und danach die genaue Fundstelle in
236 %%% einer Klammer ausgegeben werden.
237 \DeclareFieldFormat[incollection]{postnote}{\printfield{pages} \mkbibparens{#1}}
238
239 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Festschriftenbeitr├Ąge definiert:
240 \newbibmacro*{cite:incollection}{%
241   %%%
242   %%% in:
243   \usebibmacro{in:}%
244   %%%
245   %%% Festschriftentitel...
246   \iffieldundef{shorttitle}%
247      {\printfield{booktitle}}%
248      {\printfield{shorttitle}}%
249 }
250
251
252 %%%%%%%%%%%%%%%%%%
253 %%% commentary %%%
254 %%%%%%%%%%%%%%%%%%
255
256 %%% Der Bearbeiter wird im prenote-Feld angegeben und kursiv gesetzt, danach
257 %%% folgt ein Komma
258 \DeclareFieldFormat[commentary]{prenote}{\mkbibemph{#1}\addcomma}%
259
260 %%% Falls bei einem Kommentar "shorthand" angegeben ist, werden die
261 %%% Herausgeber nicht (!) genannt. Hierzu wird der Befehl
262 %%% \printnames{labelname} im allgemeinen Makro "textcite" unter die
263 %%% Bedingung gestellt, dass es sich um einen Kommentar handelt und ein
264 %%% "shorthand" definiert ist.
265 \xpatchbibmacro{textcite}{%
266   \printnames{labelname}%
267 }{%
268   \ifentrytype{commentary}{%
269     \iffieldundef{shorthand}{%
270       \printnames{labelname}%
271     }{}%
272   }{%
273     \printnames{labelname}%
274   }%
275 }{}{}
276
277 %%% Falls bei einem Kommentar "shorthand" angegeben ist, muss trotzdem das
278 %%% "in:" vorangestellt und die Auflagennummer nachgeschoben werden. Hierzu
279 %%% wird das allgemeine Makro "cite:shorthand" entsprechend modifiziert.
280 \xpatchbibmacro{cite:shorthand}{%
281   \printfield{shorthand}%
282 }{%
283   \usebibmacro{in:}%
284   \printfield{shorthand}%
285   \usebibmacro{printsuperedition}%
286 }{}{}
287
288 %%% Nachfolgend ist der Fu▀noten-Zitierstil f├╝r Kommentare definiert. Dieser
289 %%% wird indes nur verwendet, falls "shorthand" nicht definiert ist;
290 %%% andernfalls erledigen die oben modifizierten Makros "textcite" und
291 %%% "cite:shorthand" die ganze Arbeit.
292 \newbibmacro*{cite:commentary}{%
293   \usebibmacro{in:}%
294   \iffieldundef{shorttitle}%
295      {\printfield{booktitle}}%
296      {\printfield{shorttitle}}%
297 }
298
299 \endinput