diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/oscola/english-oscola.lbx | 572 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/oscola/oscola.bbx | 3132 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/oscola/oscola.cbx | 390 |
3 files changed, 4094 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/oscola/english-oscola.lbx b/Master/texmf-dist/tex/latex/oscola/english-oscola.lbx new file mode 100644 index 00000000000..b3d57a5aa15 --- /dev/null +++ b/Master/texmf-dist/tex/latex/oscola/english-oscola.lbx @@ -0,0 +1,572 @@ +% Based on english.lbx by Philip Lehman and others +% Part of the OSCOLA package for biblatex: see the file +% oscola.lbx for copyright and licence information + +\ProvidesFile{english-oscola.lbx} +[2012/08/16 v 0.1 Biblatex localisation file for OSCOLA citations] + +\DeclareRedundantLanguages{english}{english,british,american, +canadian,australian,newzealand,UKenglish,USenglish} + +\NewBibliographyString{regulation, + regulations, + eucase, + eujoinedcases, + commissiondecision, + article, + articles, + application, + rule, + rules, + order, + directive, + decision, + bill, + draft, + clause, + clauses, + signed, + opened, + inforce, + adopted, + casenote, + firstpublished} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \protected\def\bibdatedash{\bibrangedash}% + \def\finalandcomma{\addcomma}% + \protected\def\mkbibordinal#1{% + \begingroup + \@tempcnta0#1\relax\number\@tempcnta + \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}% + \ifnum\@tempcnta>20 + \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10\relax}% + \fi + \ifcase\@tempcnta th\or st\or nd\or rd\else th\fi + \endgroup}% + \protected\def\mkusbibordinal#1{% + \begingroup + \@tempcnta0#1\relax\number\@tempcnta + \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}% + \ifnum\@tempcnta>20 + \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10\relax}% + \fi + \ifcase\@tempcnta th\or st\or d\or d\else th\fi + \endgroup}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {}% + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2}% + {}% + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldundef{#1}% + {}% + {\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#2} + {} + {\mkdatezeros{\thefield{#2}}% + \iffieldundef{#3} + {\iffieldundef{#1}{}{/}} + {/}}% + \iffieldundef{#3} + {} + {\mkdatezeros{\thefield{#3}}% + \iffieldundef{#1}{}{/}}% + \mkdatezeros{\thefield{#1}}}% + \savecommand\mkbibrangecomp + \savecommand\mkbibrangecompextra + \savecommand\mkbibrangeterse + \savecommand\mkbibrangeterseextra + \protected\def\mkbibrangecomp{% + \lbx@us@mkbibrangetrunc@long{long}}% + \protected\def\mkbibrangeterse{% + \lbx@us@mkbibrangetrunc@short{short}}% + \protected\def\mkbibrangecompextra{% + \lbx@us@mkbibrangetruncextra@long{long}}% + \protected\def\mkbibrangeterseextra{% + \lbx@us@mkbibrangetruncextra@short{short}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibrangecomp + \restorecommand\mkbibrangecompextra + \restorecommand\mkbibrangeterse + \restorecommand\mkbibrangeterseextra +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliography}{Bibliography}}, + references = {{References}{References}}, + shorthands = {{List of Abbreviations}{Abbreviations}}, + editor = {{editor}{ed}}, + editors = {{editors}{eds}}, + compiler = {{compiler}{comp}}, + compilers = {{compilers}{comp}}, + redactor = {{redactor}{red}}, + redactors = {{redactors}{red}}, + founder = {{founder}{found}}, + founders = {{founders}{found}}, + continuator = {{continued}{cont}}, % FIXME: unsure + continuators = {{continued}{cont}}, % FIXME: unsure + collaborator = {{collaborator}{collab}}, % FIXME: unsure + collaborators = {{collaborators}{collab}}, % FIXME: unsure + translator = {{translator}{tr}}, + translators = {{translators}{trs}}, + commentator = {{commentator}{comm}}, + commentators = {{commentators}{comm}}, + annotator = {{annotator}{annot}}, + annotators = {{annotators}{annot}}, + commentary = {{commentary}{comm}}, + annotations = {{annotations}{annot}}, + introduction = {{introduction}{intro}}, + foreword = {{foreword}{foreword}}, + afterword = {{afterword}{afterword}}, + editortr = {{editor and translator}% + {ed and tr}}, + editorstr = {{editors and translators}% + {eds and trs}}, + editorco = {{editor and commentator}% + {ed and comm}}, + editorsco = {{editors and commentators}% + {eds and comm}}, + editoran = {{editor and annotator}% + {ed and annot}}, + editorsan = {{editors and annotators}% + {eds and annot}}, + editorin = {{editor and introduction}% + {ed and introd}}, + editorsin = {{editors and introduction}% + {eds and introd}}, + editorfo = {{editor and foreword}% + {ed and foreword}}, + editorsfo = {{editors and foreword}% + {eds and forewords}}, + editoraf = {{editor and afterword}% + {ed and afterword}}, + editorsaf = {{editors and afterword}% + {eds and afterword}}, + editortrco = {{editor, translator\finalandcomma\ and commentator}% + {ed\addcomma\space trans\finalandcomma\ and comm}}, + editorstrco = {{editors, translators\finalandcomma\ and commentators}% + {eds,\addabbrvspace trans\finalandcomma\ and comm}}, + editortran = {{editor, translator\finalandcomma\ and annotator}% + {ed,\addabbrvspace trans\finalandcomma\ and annot}}, + editorstran = {{editors, translators\finalandcomma\ and annotators}% + {eds,\addabbrvspace trans\finalandcomma\ and annot}}, + editortrin = {{editor, translator\finalandcomma\ and introduction}% + {ed,\addabbrvspace trans\finalandcomma\ and introd}}, + editorstrin = {{editors, translators\finalandcomma\ and introduction}% + {eds,\addabbrvspace trans\finalandcomma\ and introd}}, + editortrfo = {{editor, translator\finalandcomma\ and foreword}% + {ed.,\addabbrvspace trans\finalandcomma\ and forew}}, + editorstrfo = {{editors, translators\finalandcomma\ and foreword}% + {eds,\addabbrvspace trans\finalandcomma\ and forew}}, + editortraf = {{editor, translator\finalandcomma\ and afterword}% + {ed,\addabbrvspace trans\finalandcomma\ and afterw}}, + editorstraf = {{editors, translators\finalandcomma\ and afterword}% + {eds,\addabbrvspace trans\finalandcomma\ and afterw}}, + editorcoin = {{editor, commentator\finalandcomma\ and introduction}% + {ed,\addabbrvspace comm\finalandcomma\ and introd}}, + editorscoin = {{editors, commentators\finalandcomma\ and introduction}% + {eds,\addabbrvspace comm\finalandcomma\ and introd}}, + editorcofo = {{editor, commentator\finalandcomma\ and foreword}% + {ed,\addabbrvspace comm\finalandcomma\ and forew}}, + editorscofo = {{editors, commentators\finalandcomma\ and foreword}% + {eds,\addabbrvspace comm\finalandcomma\ and forew}}, + editorcoaf = {{editor, commentator\finalandcomma\ and afterword}% + {ed,\addabbrvspace comm\finalandcomma\ and afterw}}, + editorscoaf = {{editors, commentators\finalandcomma\ and afterword}% + {eds,\addabbrvspace comm\finalandcomma\ and afterw}}, + editoranin = {{editor, annotator\finalandcomma\ and introduction}% + {ed,\addabbrvspace annot\finalandcomma\ and introd}}, + editorsanin = {{editors, annotators\finalandcomma\ and introduction}% + {eds,\addabbrvspace annot\finalandcomma\ and introd}}, + editoranfo = {{editor, annotator\finalandcomma\ and foreword}% + {ed,\addabbrvspace annot\finalandcomma\ and forew}}, + editorsanfo = {{editors, annotators\finalandcomma\ and foreword}% + {eds,\addabbrvspace annot\finalandcomma\ and forew}}, + editoranaf = {{editor, annotator\finalandcomma\ and afterword}% + {ed,\addabbrvspace annot\finalandcomma\ and afterw}}, + editorsanaf = {{editors, annotators\finalandcomma\ and afterword}% + {eds,\addabbrvspace annot\finalandcomma\ and afterw}}, + editortrcoin = {{editor, translator, commentator\finalandcomma\ and introduction}% + {ed,\addabbrvspace trans, comm\finalandcomma\ and introd}}, + editorstrcoin = {{editors, translators, commentators\finalandcomma\ and introduction}% + {eds,\addabbrvspace trans, comm\finalandcomma\ and introd}}, + editortrcofo = {{editor, translator, commentator\finalandcomma\ and foreword}% + {ed,\addabbrvspace trans, comm\finalandcomma\ and forew}}, + editorstrcofo = {{editors, translators, commentators\finalandcomma\ and foreword}% + {eds,\addabbrvspace trans, comm\finalandcomma\ and forew}}, + editortrcoaf = {{editor, translator, commentator\finalandcomma\ and afterword}% + {ed,\addabbrvspace trans, comm\finalandcomma\ and afterw}}, + editorstrcoaf = {{editors, translators, commentators\finalandcomma\ and afterword}% + {eds,\addabbrvspace trans, comm\finalandcomma\ and afterw}}, + editortranin = {{editor, translator, annotator\finalandcomma\ and introduction}% + {ed,\addabbrvspace trans, annot\finalandcomma\ and introd}}, + editorstranin = {{editors, translators, annotators\finalandcomma\ and introduction}% + {eds,\addabbrvspace trans, annot\finalandcomma\ and introd}}, + editortranfo = {{editor, translator, annotator\finalandcomma\ and foreword}% + {ed,\addabbrvspace trans, annot\finalandcomma\ and forew}}, + editorstranfo = {{editors, translators, annotators\finalandcomma\ and foreword}% + {eds,\addabbrvspace trans, annot\finalandcomma\ and forew}}, + editortranaf = {{editor, translator, annotator\finalandcomma\ and afterword}% + {ed,\addabbrvspace trans, annot\finalandcomma\ and afterw}}, + editorstranaf = {{editors, translators, annotators\finalandcomma\ and afterword}% + {eds,\addabbrvspace trans, annot\finalandcomma\ and afterw}}, + translatorco = {{translator and commentator}% + {trans\ and comm}}, + translatorsco = {{translators and commentators}% + {trans\ and comm}}, + translatoran = {{translator and annotator}% + {trans\ and annot}}, + translatorsan = {{translators and annotators}% + {trans\ and annot}}, + translatorin = {{translation and introduction}% + {trans\ and introd}}, + translatorsin = {{translation and introduction}% + {trans\ and introd}}, + translatorfo = {{translation and foreword}% + {trans\ and forew}}, + translatorsfo = {{translation and foreword}% + {trans\ and forew}}, + translatoraf = {{translation and afterword}% + {trans\ and afterw}}, + translatorsaf = {{translation and afterword}% + {trans\ and afterw}}, + translatorcoin = {{translation, commentary\finalandcomma\ and introduction}% + {trans, comm\finalandcomma\ and introd}}, + translatorscoin = {{translation, commentary\finalandcomma\ and introduction}% + {trans, comm\finalandcomma\ and introd}}, + translatorcofo = {{translation, commentary\finalandcomma\ and foreword}% + {trans, comm\finalandcomma\ and forew}}, + translatorscofo = {{translation, commentary\finalandcomma\ and foreword}% + {trans, comm\finalandcomma\ and forew}}, + translatorcoaf = {{translation, commentary\finalandcomma\ and afterword}% + {trans, comm\finalandcomma\ and afterw}}, + translatorscoaf = {{translation, commentary\finalandcomma\ and afterword}% + {trans, comm\finalandcomma\ and afterw}}, + translatoranin = {{translation, annotations\finalandcomma\ and introduction}% + {trans, annot\finalandcomma\ and introd}}, + translatorsanin = {{translation, annotations\finalandcomma\ and introduction}% + {trans, annot\finalandcomma\ and introd}}, + translatoranfo = {{translation, annotations\finalandcomma\ and foreword}% + {trans, annot\finalandcomma\ and forew}}, + translatorsanfo = {{translation, annotations\finalandcomma\ and foreword}% + {trans, annot\finalandcomma\ and forew}}, + translatoranaf = {{translation, annotations\finalandcomma\ and afterword}% + {trans, annot\finalandcomma\ and afterw}}, + translatorsanaf = {{translation, annotations\finalandcomma\ and afterword}% + {trans, annot\finalandcomma\ and afterw}}, + byauthor = {{by}{by}}, + byeditor = {{edited by}{ed}}, + bycompiler = {{compiled by}{compiler}}, + byredactor = {{redacted by}{redactor}}, + byfounder = {{founded by}{founder}}, + bycontinuator = {{continued by}{continuator}}, + bycollaborator = {{in collaboration with}{in collaboration with}}, % FIXME: unsure + bytranslator = {{translated \lbx@lfromlang\ by}{tr}}, + bycommentator = {{commented by}{commentator}}, + byannotator = {{annotated by}{annotator}}, + withcommentator = {{with a commentary by}{with a commentary by}}, + withannotator = {{with annotations by}{with annots\ by}}, + withintroduction = {{with an introduction by}{with an intro\ by}}, + withforeword = {{with a foreword by}{with a forew\ by}}, + withafterword = {{with an afterword by}{with an afterw\ by}}, + byeditortr = {{edited and translated \lbx@lfromlang\ by}% + {edspace and trans\ \lbx@sfromlang\ by}}, + byeditorco = {{edited and commented by}% + {edspace and comm\ by}}, + byeditoran = {{edited and annotated by}% + {edspace and annot\ by}}, + byeditorin = {{edited, with an introduction, by}% + {ed,\addabbrvspace with an introd, by}}, + byeditorfo = {{edited, with a foreword, by}% + {ed,\addabbrvspace with a forew, by}}, + byeditoraf = {{edited, with an afterword, by}% + {ed,\addabbrvspace with an afterw, by}}, + byeditortrco = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented by}% + {ed,\addabbrvspace trans\ \lbx@sfromlang\finalandcomma\ and comm\ by}}, + byeditortran = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated by}% + {ed,\addabbrvspace trans\ \lbx@sfromlang\finalandcomma\ and annot\ by}}, + byeditortrin = {{edited and translated \lbx@lfromlang, with an introduction, by}% + {edspace and trans\ \lbx@sfromlang, with an introd, by}}, + byeditortrfo = {{edited and translated \lbx@lfromlang, with a foreword, by}% + {edspace and trans\ \lbx@sfromlang, with a forew, by}}, + byeditortraf = {{edited and translated \lbx@lfromlang, with an afterword, by}% + {edspace and trans\ \lbx@sfromlang, with an afterw, by}}, + byeditorcoin = {{edited and commented, with an introduction, by}% + {edspace and comm, with an introd, by}}, + byeditorcofo = {{edited and commented, with a foreword, by}% + {edspace and comm, with a forew, by}}, + byeditorcoaf = {{edited and commented, with an afterword, by}% + {edspace and comm, with an afterw, by}}, + byeditoranin = {{edited and annotated, with an introduction, by}% + {edspace and annot, with an introd, by}}, + byeditoranfo = {{edited and annotated, with a foreword, by}% + {edspace and annot, with a forew, by}}, + byeditoranaf = {{edited and annotated, with an afterword, by}% + {edspace and annot, with an afterw, by}}, + byeditortrcoin = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an introduction, by}% + {ed,\addabbrvspace trans\ \lbx@sfromlang\finalandcomma\ and comm, with an introd, by}}, + byeditortrcofo = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with a foreword, by}% + {ed,\addabbrvspace trans\ \lbx@sfromlang\finalandcomma\ and comm, with a forew, by}}, + byeditortrcoaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an afterword, by}% + {ed,\addabbrvspace trans\ \lbx@sfromlang\finalandcomma\ and comm, with an afterw, by}}, + byeditortranin = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an introduction, by}% + {ed,\addabbrvspace trans\ \lbx@sfromlang\finalandcomma\ and annot, with an introd, by}}, + byeditortranfo = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with a foreword, by}% + {ed,\addabbrvspace trans\ \lbx@sfromlang\finalandcomma\ and annot, with a forew, by}}, + byeditortranaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an afterword, by}% + {ed,\addabbrvspace trans\ \lbx@sfromlang\finalandcomma\ and annot, with an afterw, by}}, + bytranslatorco = {{translated \lbx@lfromlang\ and commented by}% + {trans\ \lbx@sfromlang\ and comm\ by}}, + bytranslatoran = {{translated \lbx@lfromlang\ and annotated by}% + {trans\ \lbx@sfromlang\ and annot\ by}}, + bytranslatorin = {{translated \lbx@lfromlang, with an introduction, by}% + {trans\ \lbx@sfromlang, with an introd, by}}, + bytranslatorfo = {{translated \lbx@lfromlang, with a foreword, by}% + {trans\ \lbx@sfromlang, with a forew, by}}, + bytranslatoraf = {{translated \lbx@lfromlang, with an afterword, by}% + {trans\ \lbx@sfromlang, with an afterw, by}}, + bytranslatorcoin = {{translated \lbx@lfromlang\ and commented, with an introduction, by}% + {trans\ \lbx@sfromlang\ and comm, with an introd, by}}, + bytranslatorcofo = {{translated \lbx@lfromlang\ and commented, with a foreword, by}% + {trans\ \lbx@sfromlang\ and comm, with a forew, by}}, + bytranslatorcoaf = {{translated \lbx@lfromlang\ and commented, with an afterword, by}% + {trans\ \lbx@sfromlang\ and comm, with an afterw, by}}, + bytranslatoranin = {{translated \lbx@lfromlang\ and annotated, with an introduction, by}% + {trans\ \lbx@sfromlang\ and annot, with an introd, by}}, + bytranslatoranfo = {{translated \lbx@lfromlang\ and annotated, with a foreword, by}% + {trans\ \lbx@sfromlang\ and annot, with a forew, by}}, + bytranslatoranaf = {{translated \lbx@lfromlang\ and annotated, with an afterword, by}% + {trans\ \lbx@sfromlang\ and annot, with an afterw, by}}, + and = {{and}{and}}, + andothers = {{and others}{and others}}, + andmore = {{and others}{and others}}, + volume = {{volume}{vol}}, + volumes = {{volumes}{vols}}, + jourvol = {{volume}{vol}}, + jourser = {{series}{series}}, + newseries = {{new series}{ns}}, + oldseries = {{old series}{os}}, + edition = {{edition}{edn}}, + reprint = {{reprint}{repr}}, + reprintof = {{reprint of}{repr of}}, + reprintas = {{reprinted as}{rpt as}}, + page = {{page}{p}}, + pages = {{pages}{pp}}, + column = {{column}{col}}, + columns = {{columns}{cols}}, + line = {{line}{l}}, + lines = {{lines}{ll}}, + verse = {{verse}{v}}, + verses = {{verses}{vv}}, + section = {{section}{s}}, + sections = {{sections}{ss}}, + paragraph = {{paragraph}{para}}, + paragraphs = {{paragraphs}{paras}}, + regulation = {{regulation}{reg}}, + regulations = {{regulations}{regs}}, + in = {{in}{in}}, + inseries = {{in}{in}}, + ofseries = {{of}{of}}, + number = {{number}{no}}, + chapter = {{chapter}{chap}}, + mathesis = {{Master's thesis}{MA\addabbrvspace thesis}}, + phdthesis = {{PhD\addabbrvspace thesis}{PhD\addabbrvspace thesis}}, + resreport = {{research report}{research rep}}, + techreport = {{technical report}{techspace rep}}, + software = {{computer software}{compspace software}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audio CD}{audio CD}}, + version = {{version}{version}}, + url = {{address}{address}}, + urlseen = {{accessed}{accessed}}, + inpress = {{in press}{in press}}, + inpreparation = {{in preparation}{in preparation}}, + submitted = {{submitted}{submitted}}, + citedas = {{hereinafter}{hereinafter}}, + thiscite = {{especially}{esp}}, + seenote = {{see note}{n}}, + quotedin = {{quoted in}{qtdspace in}}, + idem = {{idem}{idem}}, + idemsm = {{idem}{idem}}, + idemsf = {{eadem}{eadem}}, + idemsn = {{idem}{idem}}, + idempm = {{eidem}{eidem}}, + idempf = {{eaedem}{eaedem}}, + idempn = {{eadem}{eadem}}, + idempp = {{eidem}{eidem}}, + ibidem = {{ibidem}{ibid}}, + opcit = {{opspace cit}{opspace cit}}, + loccit = {{locspace cit}{locspace cit}}, + confer = {{cf}{cf}}, + sequens = {{sq}{sq}}, + sequentes = {{sqq}{sqq}}, + passim = {{passim}{pass}}, + see = {{see}{see}}, + seealso = {{see also}{see also}}, + backrefpage = {{cited on page}{citspace on p}}, + backrefpages = {{cited on pages}{citspace on pp}}, + january = {{January}{Jan}}, + february = {{February}{Feb}}, + march = {{March}{Mar}}, + april = {{April}{Apr}}, + may = {{May}{May}}, + june = {{June}{Jun}}, + july = {{July}{Jul}}, + august = {{August}{Aug}}, + september = {{September}{Sep}}, + october = {{October}{Oct}}, + november = {{November}{Nov}}, + december = {{December}{Dec}}, + langamerican = {{American}{American}}, + langbrazilian = {{Brazilian}{Brazilian}}, + langdanish = {{Danish}{Danish}}, + langdutch = {{Dutch}{Dutch}}, + langenglish = {{English}{English}}, + langfrench = {{French}{French}}, + langgerman = {{German}{German}}, + langgreek = {{Greek}{Greek}}, + langitalian = {{Italian}{Italian}}, + langlatin = {{Latin}{Latin}}, + langnorwegian = {{Norwegian}{Norwegian}}, + langportuguese = {{Portuguese}{Portuguese}}, + langspanish = {{Spanish}{Spanish}}, + langswedish = {{Swedish}{Swedish}}, + fromamerican = {{from the American}{from the American}}, + frombrazilian = {{from the Brazilian}{from the Brazilian}}, + fromdanish = {{from the Danish}{from the Danish}}, + fromdutch = {{from the Dutch}{from the Dutch}}, + fromenglish = {{from the English}{from the English}}, + fromfrench = {{from the French}{from the French}}, + fromgerman = {{from the German}{from the German}}, + fromgreek = {{from the Greek}{from the Greek}}, + fromitalian = {{from the Italian}{from the Italian}}, + fromlatin = {{from the Latin}{from the Latin}}, + fromnorwegian = {{from the Norwegian}{from the Norwegian}}, + fromportuguese = {{from the Portuguese}{from the Portuguese}}, + fromspanish = {{from the Spanish}{from the Spanish}}, + fromswedish = {{from the Swedish}{from the Swedish}}, + countryde = {{Germany}{DE}}, + countryeu = {{European Union}{EU}}, + countryep = {{European Union}{EP}}, + countryfr = {{France}{FR}}, + countryuk = {{United Kingdom}{GB}}, + countryus = {{United States of America}{US}}, + patent = {{patent}{pat}}, + patentde = {{German patent}{German pat}}, + patenteu = {{European patent}{European pat}}, + patentfr = {{French patent}{French pat}}, + patentuk = {{British patent}{British pat}}, + patentus = {{US patent}{US pat}}, + patreq = {{patent request}{pat\ req}}, + patreqde = {{German patent request}{German pat\ req}}, + patreqeu = {{European patent request}{European pat\ req}}, + patreqfr = {{French patent request}{French pat\ req}}, + patrequk = {{British patent request}{British pat\ req}}, + patrequs = {{US patent request}{US pat\ req}}, + file = {{file}{file}}, + library = {{library}{library}}, + abstract = {{abstract}{abstract}}, + annotation = {{annotations}{annotations}}, + eucase = {{Case}{Case}}, + eujoinedcases = {{Joined Cases}{Joined Cases}}, + commissiondecision = {{Commission Decision}{Commission Decision}}, + article = {{article}{art}}, + articles = {{articles}{arts}}, + application = {{Application}{App}}, + rule = {{rule}{r}}, + rules = {{rules}{rr}}, + order = {{Order}{Ord}}, + directive = {{Directive}{Dir}}, + decision = {{Decision}{Dec}}, + bill = {{Bill}{Bill}}, + draft = {{draft}{draft}}, + clause = {{clause}{cl}}, + clauses = {{clauses}{cll}}, + inforce = {{entered into force}{entered into force}}, + signed = {{signed}{signed}}, + opened = {{opened for signature}{opened for signature}}, + adopted = {{adopted}{adopted}}, + casenote = {{note}{note}}, + firstpublished = {{first published}{first published}}, +} + +\protected\gdef\lbx@us@mkbibrangetrunc@long#1#2{% + \iffieldundef{#2year} + {} + {\printtext{% + \iffieldsequal{#2year}{#2endyear} + {\csuse{mkbibdate#1}{}{#2month}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}% + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mbox{\bibdatedash}} + {\bibdatedash + \iffieldsequal{#2year}{#2endyear} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}}}}} + +\protected\gdef\lbx@us@mkbibrangetrunc@short#1#2{% + \iffieldundef{#2year} + {} + {\printtext{% + \iffieldsequal{#2year}{#2endyear} + {\csuse{mkbibdate#1}{}{#2month}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}% + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mbox{\bibdatedash}} + {\bibdatedash + \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}}}} + +\protected\gdef\lbx@us@mkbibrangetruncextra@long#1#2{% + \iffieldundef{#2year} + {} + {\printtext{% + \iffieldsequal{#2year}{#2endyear} + {\csuse{mkbibdate#1}{}{#2month}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}% + \iffieldundef{#2endyear} + {\printfield{extrayear}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extrayear}% + \mbox{\bibdatedash}} + {\bibdatedash + \iffieldsequal{#2year}{#2endyear} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}% + \printfield{extrayear}}}}}} + +\protected\gdef\lbx@us@mkbibrangetruncextra@short#1#2{% + \iffieldundef{#2year} + {} + {\printtext{% + \iffieldsequal{#2year}{#2endyear} + {\csuse{mkbibdate#1}{}{#2month}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}% + \iffieldundef{#2endyear} + {\printfield{extrayear}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extrayear}% + \mbox{\bibdatedash}} + {\bibdatedash + \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}% + \printfield{extrayear}}}}}} + +\endinput diff --git a/Master/texmf-dist/tex/latex/oscola/oscola.bbx b/Master/texmf-dist/tex/latex/oscola/oscola.bbx new file mode 100644 index 00000000000..e4831f6a453 --- /dev/null +++ b/Master/texmf-dist/tex/latex/oscola/oscola.bbx @@ -0,0 +1,3132 @@ +% Legal Style Citations using OSCOLA +% Copyright Paul Stanley 2012 +% This work consists of oscola.bbx, english-oscola.lbx, oscola.lbx +% and oscola.ist. +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status 'maintained'. +% The current maintainer of this work is Paul Stanley (pstanley@essexcourt.net) + +\ProvidesFile{oscola.bbx}[2012/08/18 v0.1 Biblatex bibliography style for OSCOLA standard] + +\RequireBibliographyStyle{authortitle} + +\RequireBiber[3] + +\DeclareBibliographyOption{caseshorthands}[false]{ + \ifstrequal{#1}{italic} + {\DeclareFieldFormat[jurisdiction]{shorthand}{\textit{##1}}} + {}} + +\newtoggle{bbx@capibid}% Capitalize Ibid in footnotes +\DeclareBibliographyOption{ibidstyle}[lc]{% + \ifstrequal{#1}{uc} + {\global\toggletrue{bbx@capibid}} + {\togglefalse{bbx@capibid}}} + +% We ensure that there will always be a trash index +\AtEndPreamble{% + \@ifpackageloaded{imakeidx}{\makeindex[name=trash]} + {\@ifpackageloaded{index}{\newindex{trash}{tdx}{tnd}{Miscellaneous}} + {\@ifpackageloaded{multind}{\PackageWarning{biblatex-oscola}{Multind is incompatible with biblatex-oscola. Use imakeidx or index}} + {\iftoggle{blx@citeindex} + {\PackageWarning{biblatex-oscola} + {You need to load imakeidx or index. Indexing will probably fail:}}{}}}}} + +% The bibliography and citation styles use different forms of name +\AtBeginBibliography{% + \toggletrue{blx@firstinits}% + \DeclareNameAlias{default}{last-first}% + \DeclareNameAlias{editor}{last-first}} + +\renewbibmacro*{name:last-first}[4]{% + \ifuseprefix + {\usebibmacro{name:delim}{#3#1}% + \usebibmacro{name:hook}{#3#1}% + \ifblank{#3}{}{% + \ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + {\mkbibnameprefix{#3}\isdot}% + \ifpunctmark{'}{}{\bibnamedelimc}}% + \mkbibnamelast{#1}\isdot + \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% + \ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}} + {\usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \mkbibnamelast{#1}\isdot + \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% + \ifblank{#2#3}{}{}% + \ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}% + \ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}} + +\DeclareNameAlias{sortname}{last-first} + +% This deals with initials: we need to format them without dots +% and close together: HLA not H.L.A. or H. L. A. or H L A +\renewcommand*\bibinitperiod{} +\renewcommand*\bibinitdelim{} +\let\oldbibnamedelima\bibnamedelima +\let\oldbibnamedelimb\bibnamedelimb +\let\oldbibnamedelimc\bibdamedelimc +\let\oldbibnamedelimd\bibnamedelimd +\let\oldbibnamedelimi\bibnamedelimi +\global\newtoggle{bbx@initsep} +\renewcommand\bibnamedelima{% + \iftoggle{bbx@initsep} + {\togglefalse{bbx@initsep}} + {\oldbibnamedelima}} +\renewcommand\bibnamedelimb{% + \iftoggle{bbx@initsep} + {\togglefalse{bbx@initsep}} + {\oldbibnamedelimb}} +%\renewcommand\bibnamedelimc{% +% \togglefalse{bbx@initsep}% +% \oldbibnamedelimc} +%\renewcommand\bibnamedelimd{% +% \togglefalse{bbx@initsep}% +% \oldbibnamedelimd} +\renewcommand\bibnamedelimi{% + \togglefalse{bbx@initsep}% + \oldbibnamedelimi} + +\def\bbxinitsep{% + \toggletrue{bbx@initsep}} + +% Standardised options +\ExecuteBibliographyOptions{urldate=long, + dateabbrev=false, + doi=false, + eprint=false, + usetranslator=true, + sorting=nity} + +\urlstyle{rm}% We don't want monospaced urls + +% If books are earlier than this year, the location gets printed +% instead of the publisher +\def\bibyearwatershed{1800} + +% Various toggles used for entry options + +\newtoggle{bbx:scotstyle} +\newtoggle{bbx:suppressibid} +\newtoggle{bbx:looseleaf} +\newboolean{bbx@year-essential}\setboolean{bbx@year-essential}{false} + +% Entry options +\DeclareEntryOption{url}[true]{% + \settoggle{bbx:url}{#1}} +\DeclareEntryOption{doi}[true]{% + \settoggle{bbx:doi}{#1}} +\DeclareEntryOption{eprint}[true]{% + \settoggle{bbx:eprint}{#1}} +\DeclareEntryOption{scottish-style}[true]{% + \settoggle{bbx:scotstyle}{#1}} +\DeclareEntryOption{no-ibid}[true]{% + \settoggle{bbx:suppressibid}{#1}} +\DeclareEntryOption{looseleaf}[true]{% + \settoggle{bbx:looseleaf}{#1}} +\DeclareEntryOption{year-essential}[true]{% + \setboolean{bbx@year-essential}{#1}} + +% Language Mapping +\DeclareLanguageMapping{english}{english-oscola} + +% Various aliases +\DeclareBibliographyAlias{inproceedings}{inbook} +\DeclareBibliographyAlias{booklet}{book} +\DeclareBibliographyAlias{collection}{book} +\DeclareBibliographyAlias{incollection}{inbook} +\DeclareBibliographyAlias{techreport}{report} +\DeclareBibliographyAlias{manual}{report} +\DeclareBibliographyAlias{proceedings}{book} +\DeclareBibliographyAlias{unpublished}{misc} +\DeclareBibliographyAlias{mvbook}{book} +\DeclareBibliographyAlias{bookinbook}{inbook} +\DeclareBibliographyAlias{supbook}{inbook} +\DeclareBibliographyAlias{mvcollection}{book} +\DeclareBibliographyAlias{supcollection}{inbook} + + + +% This deals with suppression of the postnote delimiter after brackets. It +% should be refactored to use a toggle rather than a counter + +\newcounter{bbx@suppresspostnotedelim} +\newcommand{\bbx@resetpostnotedelim}{\setcounter{bbx@suppresspostnotedelim}{0}} +\newcommand{\bbx@unsetpostnotedelim}{\setcounter{bbx@suppresspostnotedelim}{1}} +\setcounter{bbx@suppresspostnotedelim}{0} + +% This is a package-specific temporary counter +\newcounter{blx@tmpcnt} + +% This is used in constructing publication information + +\newboolean{bbx@pubinfopunct} +\newcommand{\bbx@pubinfostart} +{\setboolean{bbx@pubinfopunct}{false}} + +\newcommand{\bbx@pubinfoprint}{% + \ifthenelse{\(\boolean{bbx@pubinfopunct}\)}% + {\printtext{\addcomma\space}}% + {\setboolean{bbx@pubinfopunct}{true}% + \printtext{(}}} + +\newcommand{\bbx@pubinfostop}{% + \ifthenelse{\( \boolean{bbx@pubinfopunct} \)}% + {\printtext{)}\bbx@unsetpostnotedelim} + {}} + +% Many of these are "legacies" and probably not really required. I haven't been able +% to work out why I seem always to need the starred form to get this to work +\newcommand\nameaddonpseud{pseudonym} +\newcommand\subtypemag{magazine} +\newcommand*\subtypenewsp{newspaper} +\newcommand\subtypeclassic{classic} +\newcommand\subtypebiblical{biblical} +\newcommand\subtypeearlybook{canon} +\newcommand\subtypevideo{video} +\newcommand\entrytypearchive{customa} +\newcommand\subtypevolume{volume} +\newcommand\subtypeonline{online} +\newcommand\subtypedatabase{database} +\newcommand\subtypeblog{blog} +\newcommand\subtypelistmessage{listmessage} +\newcommand\subtypebooklike{book} +\newcommand\subtypepublicdocument{gov} +\newcommand\authortypeanon{anonymous} +\newcommand\authortypeunsure{anonymous?} +\newcommand\authortyperedundant{redundant} +\newcommand\authortypealternate{alternate} +\newcommand\authortypejournal{journal} +\newcommand\subtypeintro{to} +\newcommand\subtypeexcerpt{from} +\newcommand\subtypenone{none} +\newcommand\edtypecorp{corporate} +\newcommand\entrytypeper{periodical} +\newcommand\entrytypemanual{manual} +\newcommand\entrytypecoll{collection} +\newcommand\entrytypebook{book} +\newcommand*\subtypeprimarylegislation{primary} +\newcommand*\subtypesecondarylegislation{secondary} +\newcommand*\subtypecourtrules{procedure-rule} +\newcommand\entrytyperef{reference} +\newcommand\entrytypeproc{proceedings} +\newcommand\entrytypereport{report} +\newcommand\entrytypebooklet{booklet} +\newcommand\entrytypemisc{misc} +\newcommand\entrytypeonline{online} +\newcommand\entrytypevideo{video} +\newcommand\entrytypeaudio{audio} +\newcommand\entrytypebookinbook{bookinbook} +\newcommand\entrytypearticle{article} +\newcommand\entrytypelegislation{legislation} +\newcommand\entrytypeletter{letter} +\newcommand\entrytypeperformance{performance} +\newcommand\optionaddoriginal{addorig} +\newcommand\optionnoreprints{none} +\newcommand\optionorigfirst{origfirst} +\newcommand\optiontransfromorig{transfrom} +\newcommand\optionorigtransas{transas} +\newcommand\optiondoubledate{doubledate} +\newcommand\noplace{np} +\newcommand\nopublisher{np} +\newcommand*\officialjournaltitle{OJ} +\newcommand*\ojspecedtitle{OJ Spec Ed} +\newcommand*\ecrreporttitle{ECR} +\newcommand*\commission{commission} +\newcommand*\Commission{Commission} +\newcommand*\pcijrep{PCIJ Rep} +\newcommand*\explanatorynote{explanatory note} +\newcommand*\eudirective{directive} +\newcommand*\euregulation{regulation} +\newcommand*\eudecision{decision} +\newcommand*\treatysubtype{treaty} +\newcommand*\comdocsubtype{comdoc} +\newcommand*{\jurisechr}{echr} +\providecommand*\eutreaty{eu-treaty} +\newcommand*\casenote{casenote} +\newcommand*\pagemarkings{page} +\newcommand*\paragraphmarkings{[]} +\newcommand*\paragraphtext{paragraph} +\newcommand*\seriesa{Series A} +\newcommand*\echrreports{ECHR} +\newcommand*\decisionsandreports{DR} +\newcommand*\collectionofdecisions{CD} +\newcommand*{\parliamentarytype}{parliamentary} +\newcommand*{\houseofcommons}{HC} +\newcommand*{\houseoflords}{HL} + +% Some basic redefinitions and formatting +\renewcommand\newunitpunct{\addspace} +\renewcommand{\newblockpunct}{\addspace} +\renewcommand{\subtitlepunct}{\addcolon\addspace} +\newcommand{\extracitedelim}{,\space} +\newcommand\casenotetext{\bibstring{casenote}} +\newcommand\firstpublishedstr{\bibstring{firstpublished}} +\newcommand*{\legalstarturl}{\ensuremath{\langle}} +\newcommand*{\legalendurl}{\ensuremath{\rangle}} + +% Data Inheritances +\DeclareDataInheritance{reference,mvreference}{inreference}{% + \inherit{title}{booktitle} + \inherit{volume}{userb} + \inherit{date}{date} + \inherit{edition}{edition} + \inherit{pagination}{pagination} + \noinherit{editor} + \noinherit{author}} +\DeclareDataInheritance{legal}{legal}{% + \inherit{shorttitle}{title} + \inherit{indextitle}{indextitle} + \inherit{title}{indextitle} + \inherit{indexsortitle}{indexsorttitle} + \inherit{title}{indexsorttitle} + \inherit{pagination}{pagination} + \inherit{type}{type} + \inherit{entrysubtype}{entrysubtype}} +\DeclareDataInheritance{jurisdiction}{article}{% + \noinherit{volume} + \noinherit{series} + \noinherit{journaltitle} + \noinherit{pages} + \noinherit{date} + \noinherit{institution} + \noinherit{issue} + \noinherit{number} + \noinherit{url} + \noinherit{urldate}} + +% These functions are used to identify whether an EU +% case number is one case or more than one + +\def\legal@blank{|} +\def\legal@optionone{} +\def\legal@optiontwo{} +\def\legal@containscommai#1,#2*{% + \def\@tempa{#2}% + \ifx\@tempa\legal@blank% + \relax% + \else% + \global\let\legal@result\legal@optiontwo% + \fi} +\def\legal@containsandi#1and#2*{% + \def\@tempa{#2}% + \ifx\@tempa\legal@blank% + \relax% + \else% + \global\let\legal@result\legal@optiontwo% + \fi} +\def\legal@containshypheni#1--#2*{% + \def\@tempa{#2}% + \ifx\@tempa\legal@blank% + \relax% + \else% + \global\let\legal@result\legal@optiontwo% + \fi}% + +\def\legal@containscomma#1{\edef\legal@tempa{#1}\expandafter\legal@containscommai\legal@tempa,|*} +\def\legal@containsand#1{\edef\legal@tempa{#1}\expandafter\legal@containsandi\legal@tempa and|*} +\def\legal@containshyphen#1{\edef\legal@tempa{#1}\expandafter\legal@containshypheni\legal@tempa--|*} + +\newbibmacro{seteucases}{% + \iffieldundef{type} + {\global\def\legal@result{\bibstring{eucase}}% + \global\def\legal@optiontwo{\bibstring{eujoinedcases}}% + \legal@containscomma{\thefield{number}}% + \legal@containsand{\thefield{number}}% + \legal@containshyphen{\thefield{number}}% + \legal@result} + {\strfield{type}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Various commands +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand\paratextformatted[1]{% + \ifnumeral{#1} + {\bibstring{paragraph}\addspace\printtext{#1}} + {\ifnumerals{#1} + {\bibstring{paragraphs}\addspace\printtext{#1}} + {\printtext{#1}}}} + +% Field Formats + +\DeclareFieldFormat{paragraph:text}{\paratextformatted{#1}} +\DeclareFieldFormat{url}{\legalstarturl\url{#1}\legalendurl} +\DeclareFieldFormat{urldate}{\bibstring{urlseen}\space#1} +\DeclareFieldFormat{postnote:old}{% + \ifentrytype{legislation}% + {\usebibmacro{legref}}% + {\mkpageprefix[pagination]{#1}}} +\DeclareFieldFormat{paragraphed}{\formatpostnote{#1}} +\DeclareFieldFormat{postnote}{#1} +\DeclareFieldFormat{multipostnote}{#1} +\DeclareFieldFormat{note}{\mkbibparens{#1}} +\DeclareFieldFormat[article]{pages}{% + \mkfirstpage*{#1}} +\DeclareFieldFormat[legislation]{pages}{% + \mkfirstpage*{#1}} +\DeclareFieldFormat[jurisdiction]{pages}{% + \mkfirstpage*{#1}} +\DeclareFieldFormat[jurisdiction]{usere}{% + \mkfirstpage*{#1}} +\DeclareFieldFormat[jurisdiction]{title}{\mkbibemph{#1}} +\DeclareFieldFormat[jurisdiction]{subtitle}{\mkbibemph{#1}} +\DeclareFieldFormat[legal]{pages}{\mkfirstpage{#1}} +\DeclareFieldFormat[inreference]{title}{\mkbibquote{#1}} +\DeclareFieldFormat{newstitle}{\emph{#1}} +\DeclareFieldFormat{intsubtitle}{\mkbibemph{#1}} +\DeclareFieldFormat{journaltitle}{#1} % Journal Titles: Roman Type +\DeclareFieldFormat{day}{#1} +\DeclareFieldFormat{international}{% + \iffieldequals{journaltitle}{\pcijrep} + {\bibcpstring{jourser}\space #1} + {#1}} +\DeclareFieldFormat{romanvol}{% + \RN{#1}} +\DeclareFieldFormat[jurisdiction]{volume}{#1} +\DeclareFieldFormat{quoted}{\mkbibquote{#1}} +\DeclareFieldFormat[online]{title}{\mkbibquote{#1}} +\DeclareFieldFormat[online]{note}{#1} +\DeclareFieldFormat[online]{journaltitle}{\textit{#1}} +\DeclareFieldFormat[thesis]{title}{\mkbibquote{#1}} +\DeclareFieldFormat[misc]{title}{#1} +\DeclareFieldFormat[misc]{journaltitle}{\mkbibquote{#1}} +\DeclareFieldFormat{casenotetitle}{\mkbibquote{\mkbibemph{#1}}} +\DeclareFieldFormat{usseries}{\ifinteger{#1}{\mkusbibordinal{#1}}{#1}} +\DeclareFieldFormat[legislation]{title}{#1} +\DeclareFieldFormat[legal]{title}{#1} + +\DeclareListFormat[jurisdiction]{extracites}{% + \extracitedelim #1} + +\DeclareListFormat[jurisdiction]{listb}{} + +\DeclareListFormat{ecthr}{% + \ifboolexpr{ (test {\ifdefstring{\Commission}{#1}} or + test {\ifdefstring{\commission}{#1}} ) }% + {\printtext{\mkbibparens{\bibstring{commissiondecision}}}\bbx@unsetpostnotedelim}% + {}} + +\DeclareListFormat[jurisdiction]{institution}{% + \ifthenelse{\( \value{listtotal}=1 \or \value{listcount}=\value{listtotal} \)}% + {#1}% + {\setcounter{blx@tmpcnt}{\value{listcount}}\addtocounter{blx@tmpcnt}{1}% + \ifthenelse {\( \value{blx@tmpcnt}=\value{listtotal}\)}% + {#1\space\bibstring{and}\addspace}% + {#1\addcomma\space}}}% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Principal Drivers +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\DeclareBibliographyDriver{article}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\addcomma\space}\newblock + \usebibmacro{journaltitle}% + \setunit{\addspace} + \printlist{language}% + \setunit{\addspace}\newblock + \usebibmacro{byauthor}% + \setunit{\addspace}\newblock + \usebibmacro{bytranslator+others}% + \setunit{\addspace}\newblock + \printfield{version}% + \setunit{\addspace}\newblock% + \usebibmacro{journal+issuetitle}% + \setunit{\addspace}\newblock + \usebibmacro{byeditor+others}% + \setunit{\addspace} + \usebibmacro{note+pages}% + \setunit{\addspace} + \usebibmacro{doi+eprint+url}% + \setunit{\addspace} + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}% + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{book}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit{\addcomma\space}\newblock + \usebibmacro{maintitle+title}% + \newunit + \usebibmacro{publicationinfo}% + \newunit\newblock% + \usebibmacro{revisedbookvolume}% + \newunit\newblock% + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \newunit% + \usebibmacro{pageref}% + \usebibmacro{finentry}}% + +\DeclareBibliographyDriver{commentary}{% + \usebibmacro{begentry}% + \ifkeyword{sc}% + {\usebibmacro{scotscommentary}} + {\usebibmacro{encommentary}}% + \bbx@unsetpostnotedelim% + \setunit{\bibpagerefpunct}% + \newunit\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{commentary:index}{% + \usebibmacro{begentry}% + \printfield[default]{indextitle}} + +\DeclareBibliographyDriver{inbook}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\addcomma\space}\newblock + \usebibmacro{title}% + \usebibmacro{byauthor}% + \usebibmacro{in:}% + \newunit\newblock% + \usebibmacro{bybookauthor/editor/translator}% + \newblock% + \usebibmacro{maintitle+booktitle}% + \newunit\newblock + \newunit\newblock + \usebibmacro{publicationinfo}% + \newunit\newblock + \usebibmacro{revisedbookvolume}% + \usebibmacro{doi+eprint+url}% + \newunit\newblock% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{inreference}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \clearlist{publisher}% + \newunit\newblock + \usebibmacro{title}% + \usebibmacro{byauthor}% + \setunit{\addcomma\space}% + \setunit{\addcomma\space}% + \usebibmacro{maintitle+booktitle}% + \newunit + \usebibmacro{publicationinfo:short}% + \usebibmacro{revisedbookvolume}% + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{jurisdiction}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \bbx@resetpostnotedelim% + \usebibmacro{juriscitation}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{jurisdiction:index}{% + \usebibmacro{begentry}% + \DeclareFieldAlias[jurisdiction]{title}[default]{title}% + \DeclareFieldAlias[jurisdiction]{intsubtitle}[default]{title}% + \DeclareListAlias[jurisdiction]{listb}[jurisdiction]{extracites}% + \usebibmacro{juriscitation:index}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{jurisdiction:refonly}{% + \clearfield{title}% + \clearfield{titleaddon}% + \clearfield{title}% + \usedriver{}{jurisdiction}} + +\DeclareBibliographyDriver{jurisdiction:reponly}{% + \usebibmacro{begentry}% + \usebibmacro{altreportvolume}% + \newunit\newblock + \usebibmacro{altjournaltitle}% + \newunit\newblock + \usebibmacro{altseries}% + \newunit\newblock + \usebibmacro{altjurisdictionpages}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{legal}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \iffieldequals{entrysubtype}{\explanatorynote} + {\printfield[default]{title}\newunit\newblock} + {\iffieldequals{entrysubtype}{\parliamentarytype} + {\usebibmacro{legal:parliamentary}} + {\iffieldequals{entrysubtype}{\treatysubtype} + {\usebibmacro{treatycitation}} + {\usebibmacro{treatycitation}}}} + \usebibmacro{legislation:note}% + \newunit\newblock + \setunit{\bibpagerefpunct}% + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{legal:index}{% + \savefield{indextitle}{\bbx@tempa}% + \restorefield{title}{\bbx@tempa}% + \usebibmacro{begentry}% + \iffieldequals{entrysubtype}{\explanatorynote} + {\printfield[default]{title}\newunit\newblock} + {\iffieldequals{entrysubtype}{\parliamentarytype} + {\usebibmacro{legal:parliamentary:index}} + {\iffieldequals{entrysubtype}{\treatysubtype} + {\usebibmacro{treatycitation}} + {\usebibmacro{treatycitation}}}} + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{legislation}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \iffieldequals{entrysubtype}{\subtypecourtrules}% + {\usebibmacro{courtrules}} + {\ifkeyword{draft}% + {\usebibmacro{legislation:bill}} + {\ifkeyword{eu}% + {\usebibmacro{eulegislation}}% + {\printfield[default]{title}% + \setunit{\addspace}% + \printfield[default]{year}% + \setunit*{\addspace}% + \usebibmacro{legnumber}% + \newunit\newblock + \usebibmacro{legsupp}}}}% Adds additional material for welsh statutory instruments + \newunit + \usebibmacro{legislation:note}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{legislation:index}{% + \usebibmacro{begentry}% + \ifboolexpr{ test {\ifkeyword{eu}} + and not test {\iffieldequals{entrysubtype}{\eutreaty}}} + {\usebibmacro{legislation:index:eu}}% + {\ifkeyword{draft} + {\usebibmacro{legislation:bill}} + {\usebibmacro{legislation:index:general}}}% + \usebibmacro{finentry}} + +\newbibmacro{legislation:index:general}{% + \printfield[default]{indextitle}% + \newunit + \ifkeyword{eu}{}{\printfield[default]{year}}% + \newunit + \usebibmacro{legnumber}% + \newunit + \ifkeyword{eu}{\usebibmacro{eulegref}}{} + \usebibmacro{legsupp}} + +\newbibmacro{legislation:index:eu}{% + \iffieldundef{type} + {} + {\ifbibxstring{\thefield{type}}% + {\printtext{\bibcpstring{\thefield{type}}}} + {\printtext{\MakeCapital{\thefield{type}}}}} + \newunit + \printfield{number}% + \newunit + \usebibmacro{eulegref}} + +\DeclareBibliographyDriver{misc}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit*{\addcomma\space}% + \usebibmacro{misctitle}% + \newunit\newblock + \usebibmacro{publicationinfo}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{online}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit{\addcomma\space}% + \newblock + \usebibmacro{online:title}% + \newunit + \usebibmacro{publicationinfo:online}% + \newunit\newblock% + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \newunit% + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{patent}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{title}% + \newunit\newblock + \printtext{\bibopenparen}% + \printlist{language}% + \setunit*{\addspace}% + \usebibmacro{byauthor}% + \setunit*{\addcomma\space}% + \printfield{type}% + \ifboolexpr{test {\iffieldundef{byauthor}} and test {\iffieldundef{type}}} + {\unspace\setunit{}} + {\setunit*{\addspace}}% + \printfield{number}% + \iflistundef{location} + {} + {\setunit*{\addspace}% + \printtext[parens]{% + \printlist[][-\value{listtotal}]{location}}}% + \setunit*{\addcomma\space}% + \usebibmacro{byholder}% + \setunit*{\addcomma\space}% + \printfield{note}% + \setunit{\addspace}% + \usebibmacro{date}% + \printtext{\bibcloseparen}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \usebibmacro{related}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{periodical}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{editor}% + \setunit{\addcomma\space}\newblock + \printfield{title}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}}% + \setunit{\addcolon\space}% + \usebibmacro{issue}% + \setunit{\addspace}% + \printlist{language}% + \setunit{\addspace}\newblock + \printfield{version}% + \setunit{\addspace}\newblock% + \usebibmacro{journaldate}% + \newunit + \usebibmacro{volume+number+eid}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \setunit{\addspace} + \usebibmacro{note+pages}% + \setunit{\addspace} + \usebibmacro{doi+eprint+url}% + \setunit{\addspace} + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}% + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{reference}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{maintitle+title}% + \newunit + \iftoggle{bbx:looseleaf} + {\bbx@resetpostnotedelim} + {\usebibmacro{publicationinfo:short}% + \newunit\newblock% + \usebibmacro{revisedbookvolume}% + \newunit\newblock% + \usebibmacro{doi+eprint+url}% + \newunit\newblock}% + \setunit{\bibpagerefpunct}% + \newunit\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}}% + +\DeclareBibliographyDriver{report}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \iffieldequals{entrysubtype}{\comdocsubtype}% + {\usebibmacro{comdoc}}% + {\usebibmacro{report:standard}}% + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{report:refonly}{% + \iffieldequals{entrysubtype}{\comdocsubtype} + {\usebibmacro{bibindex}% + \usebibmacro{begentry}% + \printfield{number}% + \newunit\newblock + \usebibmacro{finentry}}% + {\usedriver{}{report}}}% + +\DeclareBibliographyDriver{report:index}{% + \usebibmacro{begentry}% + \iffieldequals{entrysubtype}{\comdocttype} + {\printfield{number}} + {\printfield[default]{indextitle}% + \newunit + \usebibmacro{report:index:info}}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{thesis}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \printnames{author}% + \setunit{\addcomma\space}% + \newblock + \printfield{title}% + \newunit + \usebibmacro{thesis:info}% + \newunit\newblock% + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \newunit% + \usebibmacro{pageref}% + \usebibmacro{finentry}}% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Bibmacros +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newbibmacro*{altjournaltitle}{% + \iffieldundef{userc} + {\printfield{journaltitle}\newunit} + {\printfield{userc}}} + +\newbibmacro*{altjurisdictionpages}{% + \iffieldundef{usere}% + {\usebibmacro{jurisdictionpages}} + {\printfield{usere}}}% + +\newbibmacro{altreportdetails}{% + \restorefield{prenote}{\postnotesecond}% + \iffieldundef{userc}% + {}% + {\usebibmacro{altreportvolume}% + \newunit\newblock + \usebibmacro{altjournaltitle}% + \newunit\newblock + \usebibmacro{altseries}% + \newunit\newblock + \usebibmacro{altjurisdictionpages}% + \iffieldundef{prenote} + {} + {\addcomma\space\printfield[postnote]{prenote}}}} + +\newbibmacro*{altreportvolume}{% + \iffieldundef{userb} + {\usebibmacro{reportvolume}} + {\printfield{userb}}} + +\newbibmacro*{altseries}{% + \iffieldundef{userd}% + {\iffieldundef{series}% + {}% + {\printfield{series}}}% + {\printfield{userd}}} + +\newbibmacro*{author/editor/institution}{% + \ifnameundef{author}% + {\ifnameundef{editor}% + {\iflistundef{institution} + {} + {\printlist{institution}\clearlist{institution}}} + {\usebibmacro{editor+others}}} + {\usebibmacro{author}}} + +\newbibmacro{bookauthor}{% + \ifnameundef{bookauthor} + {} + {\printnames{bookauthor}}} + +\newbibmacro{bookeditor}{% + \ifnameundef{editor} + {} + \printnames{editor}} + +\newbibmacro{booktranslator}{% + \ifnameundef{translator} + {} + \printnames{translator}} + +\renewbibmacro*{byauthor}{% + \ifboolexpr{ + test \ifuseauthor + or + test {\ifnameundef{author}} + }% + {}% + {\bbx@pubinfoprint% + \usebibmacro{bytypestrg}{author}{author}% + \setunit{\addspace}% + \printnames[byauthor]{author}}} + +\newbibmacro{bookvolume}{% + \iffieldundef{volume}% + {}% + {\setunit{\addspace}% + \printfield{volume}\newunit}} + +\newbibmacro{bybookauthor/editor/translator}{% + \ifnameundef{bookauthor} + {\ifnameundef{editor} + {\ifnameundef{translator} + {} + {\usebibmacro{translator+others}\setunit{\addcomma\space}}} + {\usebibmacro{editor+others}\setunit{\addcomma\space}}} + {\usebibmacro{bookauthor}\setunit{\addcomma\space}}} + +\renewbibmacro*{byeditor+others}{% + \ifnameundef{editor}% + {}% + {\bbx@pubinfoprint% + \printnames[byeditor]{editor}% + \setunit{\addspace}% + \usebibmacro{editorstrg}% + \clearname{editor}}% + \usebibmacro{byeditorx}% + \usebibmacro{bytranslator+others}} + +\renewbibmacro*{bytypestrg}[2]{% + \iffieldundef{#1type} + {\bibstring{by#2}} + {\ifbibxstring{by\thefield{#1type}} + {\bibstring{by\thefield{#1type}}} + {\printtext{\thefield{#1type}}}}} + +\renewbibmacro*{bytranslator+others}{% + \ifnameundef{translator}% + {} + {\bbx@pubinfoprint% + \printnames[bytranslator]{translator}% + \setunit{\addspace}% + \usebibmacro{translator+othersstrg}% + \clearname{translator}}% + \usebibmacro{withothers}} + +\newbibmacro{canjuriscitation}{% + \usebibmacro{title}% + \newunit\newblock% + \usebibmacro{neutralcite}% + \setunit{\addcomma\space}% + \iffieldundef{journaltitle}% + {}% + {\usebibmacro{year+vol+report:can}}% + \usebibmacro{jurisdictionpages}% + \usebibmacro{pcitenote}% + \usebibmacro{altreportdetails}% + \unspace\printlist[jurisdiction][1-\value{listtotal}]{listb}% + \newunit\newblock + \usebibmacro{courtid}% + \newunit% + \usebibmacro{court-note}% + \newblock + \newunit} + +\newbibmacro*{comdoc}{% + \usebibmacro{author/editor/institution}% + \setunit{\addcomma\space}% + \printfield[quoted]{title}% + \newunit\newblock% + \usebibmacro{commission:report:type}% + \newunit\newblock% + \printfield{number}% + \newunit} + +\newbibmacro*{commission:report:type}{% + \iffieldundef{type}% + {} + {\printtext{\mkbibparens{\printfield{type}}}}} + +\newbibmacro{conferencedate}{% + \iffieldundef{eventyear}% + {} + {\bbx@pubinfoprint\printeventdate}} + +\newbibmacro{conferencetitle}{% + \iffieldundef{eventtitle} + {} + {\bbx@pubinfoprint\printfield{eventtitle}}} + +\newbibmacro{convenue}{% + \iffieldundef{venue} + {} + {\bbx@pubinfoprint\printfield{venue}}} + +\newbibmacro{court-note}{% + \iffieldundef{note}% + {}% + {\printfield{note}% + \bbx@unsetpostnotedelim}} + +\newbibmacro*{courtid}{% + \iffieldundef{number}% + {\ifboolexpr {test {\iflistundef{institution}} + and test {\iffieldundef{location}}}% + {\bbx@resetpostnotedelim}% + {\printtext{\mkbibparens{\printfield{location}% + \newunit + \printlist{institution}% + \usebibmacro{unrep:date}}}% + \bbx@unsetpostnotedelim} + }% + {\bbx@resetpostnotedelim}} + +\newbibmacro*{courtrules}{% + \restorefield{prenote}{\postnotesecond}% + \iffieldequalstr{shorttitle}{PD}% + {\printfield{postnote}% + \clearfield{postnote}% + \addspace + \newunit}% + {}% + \iffieldundef{shorttitle}% + {\printfield[default]{title}}% + {\printfield[default]{shorttitle}}% + \newblock\newunit + \iffieldundef{postnote}% + {\bbx@unsetpostnotedelim} + {\iffieldequalstr{shorttitle}{CPR} + {\printfield{postnote}\newunit} + {\printtext{\bibstring{order}\space% + \printfield{postnote}\setunit{\addcomma\space}}}}% + \restorefield{postnote}{\postnotesecond}% + \usebibmacro{postnote}% + \global\toggletrue{cbx@postnoteprinted}% + \newunit\newblock} + +\newbibmacro*{echrreports}{% + \printfield{journaltitle}% + \newunit + \usebibmacro{year}% + \iffieldundef{volume} + {} + {\printtext{--}\printfield[romanvol]{volume}} + \newunit + \printfield{pages}} + +\newbibmacro{echrjuriscitation}{% + \usebibmacro{echrtitle}% + \newunit\newblock + \iffieldundef{journaltitle} + {\usebibmacro{echr:unreported}} + {\usebibmacro{echr:year+vol+report}% Which also deals with pages + \newunit\newblock + \usebibmacro{echr:courtid}}% + \newunit + \usebibmacro{court-note}% + \newblock + \newunit} + +\newbibmacro*{echr:courtid}{% + \ifboolexpr{ (test {\iffieldequals{journaltitle}{\decisionsandreports}} + or test {\iffieldequals{journaltitle}{\collectionofdecisions}} )} + {} + {\printlist[ecthr]{institution}}} + +\DeclareListFormat{echrinst}{% + \ifthenelse{\( \value{listtotal}=1 \or \value{listcount}=\value{listtotal} \)}% + {\ifboolexpr{ (test {\ifdefstring{\Commission}{#1}} + or test {\ifdefstring{\commission}{#1}} )} + {\bibstring{commissiondecision}}% + {#1}}% + {\setcounter{blx@tmpcnt}{\value{listcount}}\addtocounter{blx@tmpcnt}{1}% + \ifthenelse {\( \value{blx@tmpcnt}=\value{listtotal}\)}% + {#1\space\bibstring{and}\addspace}% + {#1\addcomma\space}}}% + + +\newbibmacro{echr:unreported}{% + \iffieldundef{number}% + {}% + {\printtext{\bibstring{application}\space\bibstring{number}\space}\printfield{number}\addspace}% + \newunit\newblock + \ifboolexpr{( test {\iflistundef{institution}} + and test {\iffieldundef{date}} + and test {\iffieldundef{year}} )} + {} + {\ifboolexpr{( test {\iffieldundef{date}} and test {\iffieldundef{year}} )} + {\mkbibparens{\printlist[jurisdiction]{institution}}} + {\bbx@unsetpostnotedelim\iflistundef{institution}% + {\mkbibparens{\usebibmacro{date}}}% + {\printtext{\bibopenparen\printlist[echrinst]{institution}\addcomma\space}\usebibmacro{date}\bibcloseparen}}}} + +\newbibmacro*{echr:year+vol+report}{% + \iffieldequals{journaltitle}{\seriesa} + {\usebibmacro{seriesareport}} + {\iffieldequals{journaltitle}{\echrreports} + {\usebibmacro{echrreports}} + {\usebibmacro{year+vol+report} + \newunit + \printfield{pages}}}} + +\newbibmacro*{echrtitle}{% + \ifboolexpr{ + test {\iffieldundef{title}} + and + test {\iffieldundef{subtitle}} + } + {} + {\printtext[title]{% + \printfield[titlecase]{title}% + \iffieldundef{subtitle}{}{\setunit{\subtitlepunct}}% + \printfield[titlecase]{subtitle}}}% + \iffieldundef{titleaddon} + {} + {\newunit\printtext{\mkbibparens{\printfield{titleaddon}}}}} + +\newbibmacro{editionpubinfo}{% + \iffieldundef{edition}% + {} + {\bbx@pubinfoprint% + \printfield{edition}}} + +\renewbibmacro*{editor+others}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + }% + {\printnames{editor}\addspace% + \printtext{\mkbibparens{% + \usebibmacro{editor+othersstrg}}}% + \clearname{editor}} + {}} + +\newbibmacro{encommentary}{% + \iffieldundef{shorttitle} + {\iffieldundef{maintitle}% + {\iffieldundef{booktitle}% + {\printfield[default]{title}}% + {\printfield[default]{booktitle}}}% + {\printfield[default]{maintitle}}}% + {\printfield[default]{shorttitle}}% + \newunit\newblock} + +\newbibmacro{enjuriscitation}{% + \usebibmacro{title}% + \newunit\newblock + \usebibmacro{neutralcite}% + \iffieldundef{journaltitle}% UNREPORTED CASE + {}% + {\usebibmacro{year+vol+report}}% + \usebibmacro{jurisdictionpages}% + \usebibmacro{pcitenote}% + \usebibmacro{altreportdetails}% + \unspace\printlist[jurisdiction][1-\value{listtotal}]{listb}% + \newunit\newblock + \usebibmacro{courtid}% + \newunit% + \usebibmacro{court-note}% + \newblock + \newunit% +} + +\newbibmacro{eucasenumber}{% + \usebibmacro{seteucases}% + \addnbspace + \printfield{number}% + \newunit} + +\newbibmacro{eucommissiondecision}{% + \iffieldundef{userb} + {} + {\mkbibparens{\printfield{userb}}}% + \newunit + \iffieldundef{type} + {\setunit{\addspace\printtext{\bibstring{commissiondecision}\addspace}}} + {\setunit{\addspace\printfield{type}\addspace}}% + \printfield{number}} + +\newbibmacro{eujuriscitation}{% + \iflistcontains{institution}{\commission}% + {} + {\usebibmacro{eucasenumber}}% + \usebibmacro{title}% + \newunit + \iflistcontains{institution}{\commission} + {\usebibmacro{eucommissiondecision}} + {}% + \newunit% + \usebibmacro{eu:reportinfo}% + \newunit% + \usebibmacro{court-note}% +} + +\newbibmacro{eujuriscitation:index}{% + \iftoggle{bbx@numcite} + {\iffieldundef{userb}{}{\printfield{userb}\newunit} + \printfield{number}% + \newunit + \usebibmacro{title}} + {\usebibmacro{title}% + \newunit + \iffieldundef{userb} + {} + {\printtext{\mkbibparens{\printfield{userb}}\newunit}}% + \printtext{\mkbibparens{\usebibmacro{euparenthetical}}}}% + \newunit% + \usebibmacro{eu:reportinfo}% + \newunit% + \usebibmacro{court-note}% +} + +\newbibmacro{eulegislation}{% + \printfield[default]{title}% + \newunit\newblock% + \usebibmacro{eulegref}} + +\newbibmacro{eulegref}{% + \ifboolexpr{test {\iffieldequals{journaltitle}{\officialjournaltitle}} + or test {\iffieldequals{journaltitle}{\ojspecedtitle}}}% + {\printfield[brackets]{year}% + \setunit{\addspace}% + \printfield{journaltitle}% + \setunit{\addspace} + \iffieldundef{series} + {\printtext{L}}% + {\printfield[default]{series}}% + \usebibmacro{issue/volume}% + \printtext{\slash}% + \printfield{pages}% + \bbx@resetpostnotedelim} + {\usebibmacro{year+vol+report}}} + +\newbibmacro{euparenthetical}{% + \iffieldundef{type}% + {}% + {\printfield{type}\setunit{\addspace}}% + \printfield{number}} + +\newbibmacro*{eu:reportinfo}{% + \iffieldundef{journaltitle}% + {\usebibmacro{eu:unreported}}% + {\usebibmacro{eu:year+vol+report}}} + +\newbibmacro*{eu:unreported}{% + \ifboolexpr{( test {\iflistundef{institution}} + and test {\iffieldundef{date}} + and test {\iffieldundef{year}} )} + {} + {\ifboolexpr{( test {\iffieldundef{date}} and test {\iffieldundef{year}} )} + {\mkbibparens{\printlist[jurisdiction]{institution}}} + {\bbx@unsetpostnotedelim\iflistundef{institution}% + {\mkbibparens{\usebibmacro{date}}}% + {\printtext{\bibopenparen\printlist[jurisdiction]{institution}\addcomma\space}\usebibmacro{date}\bibcloseparen}}}} + +\newbibmacro*{eu:year+vol+report}{% + \iffieldequals{journaltitle}{\ecrreporttitle}% + {\printfield[brackets]{year}% + \setunit{\addspace}% + \printfield{journaltitle}% + \setunit{\addspace}% + \printfield{volume}% + \iffieldundef{volume}{}{\printtext{--\allowbreak}}% + \printfield{pages}}% + {\iffieldequals{journaltitle}{\officialjournaltitle}% + {\printfield[brackets]{year}% + \setunit{\addspace}% + \printfield{journaltitle}% + \setunit{\addspace} + \printfield[default]{series}% + \usebibmacro{issue/volume}% + \printtext{\slash}% + \printfield{pages}} + {\usebibmacro{year+vol+report}}}} + +\newbibmacro*{hansard-ref}{% +% Print column entry if there is not postnote + \iffieldundef{postnote}{% + \iffieldundef{pages}% + {}% + {\printfield{pages}}}% + {}}% + +\newbibmacro{hc:or:hl}{% + \printfield[parlt:num]{number}} + +\renewbibmacro*{in:}{% +{\printtext{\space\bibstring{in}\addspace}}} + +\newbibmacro{institution+date}{% + \iflistundef{institution} + {\iffieldundef{year} + {} + {\bbx@pubinfoprint + \usebibmacro{year}}} + {\bbx@pubinfoprint + \printlist{institution}% + \iffieldundef{year} + {} + {\addspace + \usebibmacro{year}}}} + + +\newbibmacro{intjuriscitation}{% + \iflistundef{institution} + {\setunit{}\printtext{}} + {\printlist{institution}% + \setunit{\addcomma\space}}% + \usebibmacro{int:title}% + \usebibmacro{int:subtitle}% + \usebibmacro{int:titleaddon}% + \newunit\newblock + \iffieldundef{journaltitle}% + {\printfield{number}% + \newunit\newblock + \printtext{\mkbibparens{\printdate}} + \newunit\newblock + \usebibmacro{doi+eprint+url}}% + {\usebibmacro{int:year+vol+report}}% + \newunit% + \usebibmacro{int:jurisdictionpages}% + \newunit\newblock + \usebibmacro{court-note}% +} + +\newbibmacro*{int:jurisdictionpages}{% + \iffieldequals{journaltitle}{\pcijrep} + {\printtext{\bibcpstring{number}\addspace}% + \iffieldundef{pages} + {\printfield{number}} + {\printfield{pages}}} + {\printfield{pages}}} + +\newbibmacro{int:subtitle}{% + \iffieldundef{subtitle}% + {}% + {\printtext{\space}% + \mkbibparens{\printfield[intsubtitle]{subtitle}}}} + +\newbibmacro{int:title}{% + \iffieldundef{title}% + {} + {\printfield{title}}} + +\newbibmacro{int:titleaddon}{% + \iffieldundef{titleaddon}% + {}% + {\printtext{\space}% + \mkbibparens{\printfield[default]{titleaddon}}}} + +\newbibmacro*{int:year+vol+report}{% + \usebibmacro{journaldate}% + \newunit + \usebibmacro{reportvolume}% + \setunit{\addspace}% + \printfield{journaltitle}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\newunit + \printfield[international]{series}% + \setunit{\addspace}}}% + +\newbibmacro*{issue/volume}{% + \iffieldundef{volume}% + {\iffieldundef{issue}% + {}% + {\printfield{issue}}}% + {\printfield[default]{volume}}} + +\renewbibmacro*{journal+issuetitle}{% + \iffieldequals{entrysubtype}{\subtypenewsp} + {\printfield[newstitle]{journaltitle}% + \newunit + \printtext{\mkbibparens{% + \iflistundef{location} + {} + {\printlist{location}% + \setunit{\addcomma\space}}% + \usebibmacro{date}}}} + {\usebibmacro{journaldate}% + \newunit + \usebibmacro{volume+number+eid}% + \setunit{\addspace}% + \usebibmacro{journal}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}}% + \setunit{\addcolon\space}% + \usebibmacro{issue}% + \newunit}} + +\newbibmacro*{journaldate}{% + \ifthenelse{ \(% + \iffieldundef{volume}% + \or% + \boolean{bbx@year-essential}% + \) }% + {\ifboolexpr{ test {\ifkeyword{sc}} or + test {\iftoggle{bbx:scotstyle}}} + {\usebibmacro{year}} + {\usebibmacro{year}[brackets]}}% + {\usebibmacro{year}[parens]}% +} + +\newbibmacro{journaltitle}{% + \iffieldequals{entrysubtype}{\casenote} + {\iffieldundef{crossref} + {\usebibmacro{title}} + {\iffieldundef{note} + {\restorefield{note}{\casenotetext}} + {} + \ifboolexpr{ test {\iffootnote} + and test {\iftoggle{bbx@samefootnote}} + and test {\iffieldequals{crossref}{\blx@lastkey@foot}}} + {} + {\printfield[casenotetitle]{title}}}} + {\usebibmacro{title}}} + +\newbibmacro{juriscitation}{% + \ifkeyword{eu}% + {\usebibmacro{eujuriscitation}}% EU Case + {\ifkeyword{echr}% + {\usebibmacro{echrjuriscitation}}% ECHR Case + {\ifkeyword{int}% + {\usebibmacro{intjuriscitation}}% PIL Case + {\ifkeyword{ca}% + {\usebibmacro{canjuriscitation}}% Canadian Case + {\ifkeyword{us} + {\usebibmacro{usjuriscitation}}% US Case + {\usebibmacro{enjuriscitation}}}}}}}% Default + + +\newbibmacro{juriscitation:index}{% + \savefield{indextitle}{\bbx@tempa}% + \restorefield{title}{\bbx@tempa}% + \ifkeyword{eu}% + {\usebibmacro{eujuriscitation:index}}% + {\ifkeyword{echr}% + {\usebibmacro{echrjuriscitation}}% + {\ifkeyword{int}% + {\usebibmacro{intjuriscitation}}% + {\ifkeyword{us} + {\usebibmacro{usjuriscitation}} + {\usebibmacro{enjuriscitation}}}}}} + +\newbibmacro*{jurisdictionpages}{% + \iffieldequals{entrysubtype}{\subtypenewsp}% + {} + {\newunit\printfield{pages}}} + +\newbibmacro*{legnumber}{% + \iffieldequals{entrysubtype}{\subtypeprimarylegislation}% + {\ifboolexpr {(test {\iffieldundef{number}} + or not test {\iffieldundef{title}}) + and not + ( test {\ifkeyword{cy}} + or test {\ifkeyword{sc}} + or test {\ifkeyword{ni}} )}% + {}% + {\printtext{\mkbibparens{\printfield{number}}}\bbx@unsetpostnotedelim}} + {\iffieldundef{number}% + {}% + {\setunit{\addcomma\addspace}% + \printfield{number}\bbx@resetpostnotedelim}}} + +\newbibmacro{legal:parliamentary}{% + \printfield[default]{title}% + \newblock\newunit + \usebibmacro{date}% + \setunit{\addcomma\space}% + \printfield{volume}% + \setunit{\addcomma\space}% + \usebibmacro{hansard-ref}% + \bbx@resetpostnotedelim} + +\newbibmacro{legal:parliamentary:index}{% + \printfield[default]{title}% + \newunit + \usebibmacro{date}} + +\newbibmacro{legislation:bill}{% + \printfield[draftleg]{title}% + \newunit + \iflistundef{institution} + {} + {\printlist{institution}\setunit{\addspace}}% + \iffieldequals{entrysubtype}{\subtypeprimarylegislation} + {\printtext{\bibcpstring{bill}}% + \newunit + \printtext{\mkbibparens{\usebibmacro{sessionyear}}}% + \newunit% + \iffieldundef{number} + {} + {\printlist[billprinting]{institution}}% + } + {\printtext{\bibopenparen{\bibstring{draft}} + \addspace\printdate\bibcloseparen}} + \newunit} + + +\newbibmacro{legislation:note}{% + \iffieldundef{note} + {} + {\setunit{\addcomma\space}% + \printfield[default]{note}}} + +\newbibmacro{legref}{% + \ifboolexpr{ (test {\iffieldundef{pagination}} + or (not test {\iffieldbibstring{pagination}} ) ) }% + {\iffieldbibstring{pagination}{}{\BibliographyWarning{Pagination type \strfield{pagination} undefined}}\printfield{postnote}} + {\ifnumeralfirst{\thefield{postnote}} + {\ifnumeralsfirst{\thefield{postnote}} + {\bibstring{\thefield{pagination}s}\addnbspace\printfield{postnote}} + {\bibstring{\thefield{pagination}}\addnbspace\printfield{postnote}}} + {\printfield{postnote}}}} + +\newbibmacro*{legsupp}{% + \ifkeyword{cy} + {\iffieldundef{userb} + {} + {\printtext{\mkbibparens{\printfield{userb}}}\bbx@unsetpostnotedelim}} + {}} + +\renewbibmacro*{maintitle+title}{% + \iffieldsequal{maintitle}{title}% + {\clearfield{maintitle}% + \clearfield{mainsubtitle}% + \clearfield{maintitleaddon}}% + {\iffieldundef{maintitle}% + {}% + {\usebibmacro{maintitle}% + \newunit\newblock% + \iffieldundef{volume}% + {}% + {\iffieldundef{crossref} + {\ifboolexpr{test {\iffieldundef{volume}} + and test {\iffieldundef{part}}} + {} + {\setunit{\addcomma\space}% + \printfield{volume}% + \printfield{part}% + \clearfield{volume}% + \clearfield{part}% + \setunit{\addcomma\space}}} + {}}}}% + \usebibmacro{title}% + \newunit}% + +\renewbibmacro*{maintitle+booktitle}{% + \iffieldsequal{maintitle}{title}% + {\clearfield{maintitle}% + \clearfield{mainsubtitle}% + \clearfield{maintitleaddon}}% + {\iffieldundef{maintitle}% + {}% + {\usebibmacro{maintitle}% + \newunit\newblock% + \iffieldundef{volume}% + {}% + {\iffieldundef{crossref} + {\printfield{volume}% + \clearfield{volume}% + \printfield{part}% + \newunit} + {}}}}% + \usebibmacro{booktitle}% + \newunit} + +\newbibmacro{misctitle}{% + \iffieldundef{title} + {\iffieldundef{journaltitle} + {} + {\printfield{journaltitle}% + \newunit}} + {\iffieldundef{journaltitle} + {\printfield{title}% + \newunit} + {\printfield{title}% + \setunit{\addcomma\space}% + \printfield{journaltitle}% + \newunit}}} + +\newbibmacro{neutralcite}{% + \iffieldundef{number}% + {}% + {\printfield{number}\setunit{\addcomma\space}}} + +\newbibmacro{newspaperdate}{\printdate}% + +\renewbibmacro{note+pages}{% + \printfield{pages}% + \setunit{\addspace} + \printfield{note} + \newunit} + +\newbibmacro{online:title}{% + \iffieldundef{title}% + {\iffieldundef{note} + {} + {\printfield{note}% + \clearfield{note}}} + {\printfield{title}}} + +\newbibmacro{origyear}{% + \iffieldundef{origyear}% + {} + {\bbx@pubinfoprint% + \printtext{\firstpublishedstr\addspace}% + \printfield{origyear}}} + +\newbibmacro*{parltnum}{% + \iffieldundef{number} + {} + {\bbx@pubinfoprint\printfield[parlt:postnum]{number}}} + +\newbibmacro*{parltvol}{% + \iffieldundef{volume} + {} + {\iffieldundef{number} + {} + {\printtext{--\printfield[romanvol]{volume}}% + \clearfield{volume}}}} + +\newbibmacro{pcitenote}{% + \iffieldundef{userc} + {} + {\iffieldundef{postnote} + {\setunit{\addcomma\space}} + {\addcomma\space\printfield{postnote}% + \global\toggletrue{cbx@postnoteprinted}% + \setunit{\addsemicolon\space}}}} + +\renewbibmacro*{postnote}{% + \ifboolexpr {test {\iffieldundef{postnote}} or + test {\iftoggle{cbx@postnoteprinted}}}% + {\midsentence} + {\ifboolexpr{test {\ifnumequal{\value{bbx@suppresspostnotedelim}}{1}}} + {\setunit{\addspace}% + \bbx@resetpostnotedelim} + {\setunit{\postnotedelim}}% + \usebibmacro{postnotepagination}}% + \global\toggletrue{cbx@postnoteprinted}} + +\newbibmacro{postnote:us}{% + \iffieldundef{postnote} + {} + {\setunit{\addcomma\space}% + \printfield{postnote}% + \global\toggletrue{cbx@postnoteprinted}}} + +\newbibmacro*{postnotepagination}{% + \ifboolexpr{ ( + test {\ifkeyword{eu}} + or test {\ifkeyword{echr}} )} + {\usebibmacro{postnotepaginationpara}}% Default is "para" for EU and ECHR + {\usebibmacro{postnotepaginationpage}}} % Default is "page" + +\newbibmacro*{postnotepaginationpara}{% + \ifboolexpr{ ( + test {\iffieldundef{pagination}} + or + test {\iffieldequals{pagination}{\paragraphtext}} )} + {\printfield[paragraph:text]{postnote}}% + {\iffieldequals{pagination}{\paragraphmarkings}% + {\nopunct\addspace\printfield[paragraphed]{postnote}} + {\printfield[postnote:old]{postnote}}}} + +\newbibmacro*{postnotepaginationpage}{% + \ifboolexpr{ ( + test {\iffieldundef{pagination}} + or + test {\iffieldequals{pagination}{\pagemarkings}} )} + {\printfield{postnote}}% + {\iffieldequals{pagination}{\paragraphmarkings} + {\nopunct\addspace\printfield[paragraphed]{postnote}} + {\printfield[postnote:old]{postnote}}}} + +\newbibmacro*{publicationinfo}{% + \newunit + \bbx@pubinfostart + \usebibmacro{byauthor}% + \usebibmacro{byeditor+others}% + \usebibmacro{convenue}% + \usebibmacro{conferencetitle}% + \usebibmacro{editionpubinfo}% + \usebibmacro{pubinfo:note+addendum+pubstate}% + \usebibmacro{origyear}% + \usebibmacro{conferencedate}% + \usebibmacro{pubinfo:series+number}% + \usebibmacro{pubinfo:volume}% + \usebibmacro{publisher+location+date}% + \bbx@pubinfostop + \newunit\newblock} + +\newbibmacro{publicationinfo:online}{% + \addspace + \bbx@pubinfostart% + \usebibmacro{websitetitle}% + \usebibmacro{publisher+location+date}% + \bbx@pubinfostop% +} + +\newbibmacro*{publicationinfo:short}{% This is for reference works + \newunit + \iffieldundef{edition}% + {\iffieldundef{year}% + {\bbx@resetpostnotedelim}% + {\bbx@unsetpostnotedelim\printtext{\mkbibparens{\usebibmacro{year}}}}}% + {\bbx@unsetpostnotedelim\printtext{\bibopenparen\printfield{edition}}% + \iffieldundef{year}% + {}% + {\printtext{\addspace\usebibmacro{year}}}% + \printtext{\bibcloseparen}}} + +\newbibmacro*{pubinfo:note+addendum+pubstate}{% + \ifboolexpr{( + test{\iffieldundef{note}} + and test {\iffieldundef{addendum}} + and test {\iffieldundef{pubstate}} )}% + {} + {\bbx@pubinfoprint% + \printfield[default]{note}% + \setunit{\addcomma\space}% + \printfield{addendum}% + \setunit{\addcomma\space}% + \printfield{pubstate}}} + +\newbibmacro*{pubinfo:series+number}{% + \iffieldundef{series} + {\iffieldundef{number} + {} + {\bbx@pubinfoprint + \printfield{number}}} + {\iffieldundef{number} + {\bbx@pubinfoprint + \printfield{series}} + {\bbx@pubinfoprint + \printfield{series}% + \newunit + \printfield{number}}}} + +\newbibmacro{pubinfo:volume}{% + \ifboolexpr{ test {\ifentrytype{book}} + or test {\ifentrytype{collection}}} + {\iffieldundef{volume} + {} + {\bbx@pubinfoprint + \printfield{volume}% + \clearfield{volume}}} + {\iffieldundef{userb} + {} + {\bbx@pubinfoprint + \printfield{userb}% + \clearfield{userb}}}} + +\renewbibmacro*{publisher+location+date}{% + \iffieldundef{year} + {}% + {\ifboolexpr{test {\iflistundef{location}} + or test {\ifnumgreater{\thefield{year}}{\bibyearwatershed}}} + {}% + {\clearlist{publisher}}} + \ifboolexpr{( + test {\iflistundef{publisher}} + and test {\iflistundef{location}} + and test {\iffieldundef{date}} + and test {\iffieldundef{year}} )}% + {}% NOTHING TO DO + {% + \bbx@pubinfoprint + \iflistundef{publisher} + {\iflistundef{location}% + {}% + {\printlist{location}% + \iffieldundef{year} + {}% + {\setunit{\addcomma\space}}}}% + {\printlist{publisher}\setunit{\addspace}}% + \usebibmacro{spaceddate}}}% + +\newbibmacro*{reportvolume}{% + \iffieldundef{volume}% + {}% + {\printfield{volume}}} + +\newbibmacro{report:index:info}{% + \bbx@pubinfostart + \usebibmacro{report:index:author}% + \iffieldequals{entrysubtype}{\parliamentarytype}% + {\bbx@pubinfoprint% + \usebibmacro{hc:or:hl}% + \usebibmacro{sessionyear}% + \usebibmacro{parltnum}% + \usebibmacro{parltvol}}% + {\usebibmacro{rep:type}% + \usebibmacro{rep:series+number}% + \usebibmacro{rep:year}}% + \bbx@pubinfostop} + +\newbibmacro{report:index:author}{% + \ifnameundef{author} + {\ifnameundef{editor} + {\iflistundef{institution} + {} + {\bbx@pubinfoprint + \printlist{institution} + \clearlist{institution}}} + {\bbx@pubinfoprint + \usebibmacro{byedtor+others}}} + {\bbx@pubinfoprint% + \printnames{author}}} + +\newbibmacro*{report:standard}{% + \usebibmacro{author/editor/institution}% + \setunit*{\addcomma\space}\newblock + \usebibmacro{title}% + \usebibmacro{reportinfo} + \newunit\newblock + \usebibmacro{revisedbookvolume}% + \newunit\newblock}% + +\newbibmacro{reportinfo}{% + \newunit + \bbx@pubinfostart + \iffieldequals{entrysubtype}{\parliamentarytype}% + {\bbx@pubinfoprint% + \usebibmacro{hc:or:hl}% + \usebibmacro{sessionyear}% + \usebibmacro{parltnum}% + \usebibmacro{parltvol}}% + {\usebibmacro{rep:type}% + \usebibmacro{rep:series+number}% + \usebibmacro{rep:year}}% + \bbx@pubinfostop} + +\newbibmacro*{rep:institution/publisher}{% + \iflistundef{institution}% + {}% + {\bbx@pubinfoprint% + \printlist{institution}}% + \iflistundef{publisher}% + {}% + {\bbx@pubinfoprint% + \printlist{publisher}\addspace}% + \ifboolexpr{test {\iflistundef{institution}} + and test {\iflistundef{publisher}}} + {} + {\newunit}} + +\newbibmacro*{rep:type}{% + \iffieldundef{type}% + {}% + {\bbx@pubinfoprint% + \printfield{type}}} + +\newbibmacro*{rep:series+number}{% + \iffieldundef{series}% + {\iffieldundef{number} + {}% + {\bbx@pubinfoprint% + \printfield{number}\setunit{\addcomma\space}}}% + {\iffieldundef{series} + {} + {\bbx@pubinfoprint% + \printfield{series}\setunit{\addcomma\space}% + \iffieldundef{number} + {}% + {\printfield{number}\setunit{\addcomma\space}}}}} + +\newbibmacro{revisedbookvolume}{% + \iffieldundef{volume}% + {} + {\usebibmacro{bookvolume}% + \bbx@resetpostnotedelim}} + +\newbibmacro*{rep:year}{% + \ifboolexpr{ test{\iffieldundef{year}} + and test {\iffieldundef{date}} + and test {\iflistundef{publisher}} + and test {\iflistundef{institution}}}% + {}% + {\usebibmacro{rep:institution/publisher}% + \usebibmacro{year}}} + +\newbibmacro*{seriesareport}{% + \usebibmacro{year}[parens]% + \newunit + \printfield{journaltitle}% + \newunit% + \printtext{\bibstring{number}\addspace}% + \printfield{pages}} + +\newbibmacro*{sessionyear}{% + \iffieldundef{year}% + {}% + {\iffieldundef{endyear}% + {\printfield{year}}% + {\printtext{\printfield{year}\bibdatedash{\usebibmacro{year:lastdigits}}}}}} + +\newbibmacro{scotscommentary}{% + \printnames{author}% + \newunit\newblock% + \usebibmacro{maintitle+title}% + \newunit\newblock} + +\renewbibmacro*{shorthandintro}{% + \iffieldundef{shorthandintro} + {\iffieldundef{shorthand} + {} + {\bbx@unsetpostnotedelim\setunit{\addspace}% + \printtext[parens]{\unspace\printfield{shorthand}}}} + {\bbx@unsetpostnotedelim\setunit{\addspace}% + \printtext[parens]{\printfield{shorthandintro}}}} + +\newbibmacro{spaceddate}{% + \ifboolexpr{ ( test {\iffieldundef{year}} + and test {\iffieldundef{date}} ) } + {\unspace}% + {\usebibmacro{date}}} + +\newbibmacro{thesis:type}{% + \iffieldundef{type} + {} + {\bbx@pubinfoprint + \printfield{type}}} + +\newbibmacro{thesis:info}{% + \bbx@pubinfostart + \usebibmacro{thesis:type}% + \usebibmacro{institution+date}% + \bbx@pubinfostop} + +\renewbibmacro*{title}{% + \ifboolexpr{ + test {\iffieldundef{title}} + and + test {\iffieldundef{subtitle}} + } + {} + {\printtext[title]{% + \printfield[titlecase]{title}% + \iffieldundef{subtitle}{}{\setunit{\subtitlepunct}}% + \printfield[titlecase]{subtitle}}}% + \iffieldundef{titleaddon}{}{\newunit\printfield{titleaddon}}} + +\renewbibmacro*{translator+others}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\printnames{translator}\addspace% + \printtext{\mkbibparens{% + \usebibmacro{translator+othersstrg}}}% + \clearname{translator}} + {}} + +\newbibmacro*{unrep:date}{% + \ifboolexpr{ test {\iffieldundef{journaltitle}}% + and test {\iffieldundef{number}}}% + {\setunit{\addcomma\space}% + \usebibmacro{date}}% + {}} + +\renewbibmacro*{url+urldate}{% + \iffieldundef{url} + {} + {\printfield{url} + \iffieldundef{urlyear} + {} + {\setunit*{\addspace}% + \printtext{\printurldate}}}} + +\newbibmacro{usjuriscitation}{% + \usebibmacro{title}% + \newunit\newblock% + \iffieldundef{journaltitle}% + {\printfield{number}% + \setunit{\addcomma\space}% + \printfield[default]{eprint}} + {\usebibmacro{vol+report:us}}% + \newunit + \usebibmacro{jurisdictionpages}% + \usebibmacro{postnote:us}% + \usebibmacro{altreportdetails}% + \newunit\newblock + \unspace\printlist[jurisdiction][1-\value{listtotal}]{listb}% + \newunit + \usebibmacro{us:courtid+date}% + \newunit% + \usebibmacro{court-note}% + \newblock + \newunit} + +\newbibmacro{us:courtid+date}{% + \ifboolexpr{test {\iflistundef{institution}} + and test {\iflistundef{location}} + and test {\iffieldundef{year}}} + {} + {\printtext{\mkbibparens{% + \iflistundef{location} + {\printlist{institution}} + {\printlist{location}% + \newunit + \printlist{institution}}% + \newunit + \printfield{year}% + \setunit{}}}}} + +\newbibmacro{vol+report:us}{% + \usebibmacro{reportvolume}% + \setunit{\addspace}% + \printfield{journaltitle}% + \iffieldundef{series} + {} + {\newunit + \printfield[usseries]{series}}} + +\renewbibmacro*{volume+number+eid}{% + \printfield{volume}% + \iffieldundef{issue}% + {\printfield[parens]{number}}% + {\iffieldundef{number}% + {\printfield[parens]{issue}} + {\printtext[parens]{\printfield{number}\addspace\printfield{issue}}}} + \setunit{\addcomma\space}% + \printfield{eid}} + +\newbibmacro{websitetitle}{% + \iffieldundef{journaltitle} + {} + {\bbx@pubinfoprint + \printfield{journaltitle}}} + + +\newbibmacro*{year}[1][]{% + \iffieldundef{year}% + {}% + {\printfield[#1]{year}}} + +\newbibmacro*{year+vol+report}{% + \iffieldequals{entrysubtype}{\subtypenewsp} + {}% + {\usebibmacro{journaldate}% + \newunit}% + \usebibmacro{reportvolume}% + \setunit{\addspace}% + \printfield{journaltitle}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}}% + \iffieldequals{entrysubtype}{\subtypenewsp} + {\setunit{\addcomma\space}\usebibmacro{newspaperdate}}% + {}} + +\newbibmacro*{year+vol+report:can}{% + \iffieldundef{number} + {\newunit} + {\ifthenelse{ \(% + \iffieldundef{volume}% + \or% + \boolean{bbx@year-essential}% + \) }% + {} + {\clearfield{year}}}% + \iffieldequals{entrysubtype}{\subtypenewsp} + {}% + {\iffieldundef{year} + {} + {\usebibmacro{journaldate}% + \newunit}} + \usebibmacro{reportvolume}% + \setunit{\addspace}% + \printfield{journaltitle}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\setunit{\addspace}% + \printtext{\mkbibparens{\printfield[usseries]{series}}}% + \setunit{\addspace}}% + \iffieldequals{entrysubtype}{\subtypenewsp} + {\setunit{\addcomma\space}\usebibmacro{newspaperdate}}% + {}} + + +%%%%%% END %%%%% + +% This infuriating spaghetti (largely taken from biblatex.sty) deals with +% formatting postnotes of the [1]--[2] variety + +\def\bbx@legalpostnotea#1 {\def\bbx@savedargone{{#1}}% + \futurelet\bbx@next\bbx@legalpostnoteX} +\def\bbx@legalpostnoteX{% + \ifx(\bbx@next \expandafter\bbx@legalpostnoteXX%) + \else \expandafter\bbx@legalpostnoteXXX \fi} +\def\bbx@legalpostnoteXXX{\expandafter\rangesplit\bbx@savedargone} +\def\bbx@legalpostnoteXX{\expandafter\bbx@legalpostnoteY\bbx@savedargone} +\def\bbx@legalpostnoteY#1(#2{%) + \rangesplit{#1} (#2} +\def\bbx@legalpostnote#1{\bbx@legalpostnotea#1 } + +\newtoggle{bbx@inrangetog}\newtoggle{bbx@pnotetog} +\DeclareListParser*{\forbbxrange}{--} +\def\rangesplit#1{\togglefalse{bbx@inrangetog}\forbbxrange{\bbx@legal@addbrackets}{#1}} +\def\bbx@legal@addbrackets#1{\iftoggle{bbx@inrangetog}{\printtext{--}}{\toggletrue{bbx@inrangetog}}\printtext{[#1]}} +\def\formatpostnote#1{\togglefalse{bbx@pnotetog}\let\do\bbx@splitformat\docsvlist{#1}} +\def\bbx@splitformat#1{\iftoggle{bbx@pnotetog}{\addcomma\space}{\toggletrue{bbx@pnotetog}}\bbx@legalpostnote{#1}} + +% This tests whether the *first* character of a postnote is a numeral. I originally had a more elegant way +% of doing this (I thought), but I couldn't get it to work or diagnose the trouble + +\def\bbx@legal@ifnumeralfirst#1#2|#3#4{% + \ifboolexpr{ test {\ifstrequal{#1}{0}} + or test {\ifstrequal{#1}{1}} + or test {\ifstrequal{#1}{2}} + or test {\ifstrequal{#1}{3}} + or test {\ifstrequal{#1}{4}} + or test {\ifstrequal{#1}{5}} + or test {\ifstrequal{#1}{6}} + or test {\ifstrequal{#1}{7}} + or test {\ifstrequal{#1}{8}} + or test {\ifstrequal{#1}{9}} } + {#3} + {#4}} + +\def\ifnumeralfirst#1#2#3{% + \edef\legal@tempa{#1|}% REMOVE ME + \expandafter\bbx@legal@ifnumeralfirst\legal@tempa{#2}{#3}} + +\def\ifnumeralsfirst#1#2#3{% + \ifnumeralfirst{#1}% + {\numeraljustfirst{#1}{#2}{#3}}% + {#3}} + +\def\numeraljustfirst#1#2#3{% + \def\legal@result{#3}% + \def\legal@optiontwo{#2}% + \legal@containscomma{#1}% + \legal@containsand{#1}% + \legal@containshyphen{#1}% + \legal@result} + +% This all deals with formatting HL and HC numbers correctly + +\newcounter{bbx@legal@tempcounter} + +\DeclareFieldFormat{parlt:num}{% + \setcounter{bbx@legal@tempcounter}{0}% + \renewcommand*\do[1]{\stepcounter{bbx@legal@tempcounter}}% + \docsvlist{#1}% + \ifnum\value{bbx@legal@tempcounter} < 2\relax% + \printtext{\bbx@legal@chamberpart{#1}\addspace}% + \fi} + +\DeclareFieldFormat{parlt:postnum}{% + \setcounter{bbx@legal@tempcounter}{0}% + \renewcommand*\do[1]{\stepcounter{bbx@legal@tempcounter}}% + \docsvlist{#1}% + \ifnum\value{bbx@legal@tempcounter} < 2\relax + \printtext{\bbx@legal@numberpart{#1}}% + \else + \printtext{#1}% + \fi} + +\def\bbx@legal@@chamberpart#1 #2\relax{% + #1} + +\def\bbx@legal@chamberpart#1{% + \begingroup + \edef\bbx@legal@tempa{#1\space}% + \expandafter\endgroup + \expandafter\bbx@legal@@chamberpart\bbx@legal@tempa\relax} + +\newbibmacro{year:lastdigits}{% + \iffieldequalstr{endyear}{2000}% + {2000}% + {\printtext{\bbx@legal@lasttwo{\strfield{endyear}}}}} + +\def\bbx@legal@@lasttwo#1#2#3#4\relax{% + #3#4} + +\def\bbx@legal@lasttwo#1{% + \begingroup + \edef\bbx@legal@tempa{#1}% + \expandafter\endgroup + \expandafter\bbx@legal@@lasttwo\bbx@legal@tempa\relax} + +\def\bbx@legal@@numberpart#1 #2\relax{ + \bbx@legal@chamberpart{#2}} + +\def\bbx@legal@numberpart#1{% + \begingroup + \edef\bbx@legal@tempa{#1\space}% + \expandafter\endgroup + \expandafter\bbx@legal@@numberpart\bbx@legal@tempa\relax} + +% This stuff inserts institutional information into draft legislation +% titles + +\DeclareFieldFormat{draftleg}{% + \bbx@billsplit{#1}} + +\def\bbx@billspliti#1 Bill#2/relax{#1} +\def\bbx@billsplit#1{% + \expandafter\bbx@billspliti#1 Bill/relax} + +\DeclareListFormat{billprinting}{% + \ifstrequal{#1}{HC} + {\mkbibbrackets{\strfield{number}}\bbx@unsetpostnotedelim} + {\strfield{number}\bbx@resetpostnotedelim}} + +% TREATIES +% Because there is some complexity here, I'm keeping this stuff together + +\newbibmacro{treatycitation}{% + \printfield[default]{title}% + \newunit\newblock% + \printlist[treaty]{institution} + \newunit\newblock + \usebibmacro{treatyinfo}% + \newunit\newblock + \usebibmacro{treaty:year+vol+report}% + \newunit\newblock + \newunit\newblock} + +\newbibmacro{treaty:year+vol+report}{% + \iffieldequals{journaltitle}{\officialjournaltitle} + {\usebibmacro{eulegref}} + {\usebibmacro{treaty:date}% + \newunit + \printfield[default]{volume}% + \setunit{\addspace}% + \printfield{journaltitle}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}} + \printfield{pages}}}% + +\newbibmacro*{treaty:date}{% + \ifthenelse{ \(% + \iffieldundef{volume}% + \or% + \boolean{bbx@year-essential}% + \) }% + {\ifboolexpr{ test {\ifkeyword{sc}} or + test {\iftoggle{bbx:scotstyle}}} + {\usebibmacro{year}} + {\usebibmacro{year}[brackets]}}% + {}} + + +\def\makebbx@datei#1-#2-#3-{% + \makebbx@dateii{#1}{#2}{#3}} + +\def\makebbx@dateii#1#2#3{% + \blx@imc@stripzeros{#3}~\mkbibmonth{#2}% + \space + #1} + +\def\siganddate#1{% + \def\bbx@tempa{#1}% + \expandafter\bbx@signeddatei#1/relax} + +\def\bbx@signeddatei#1=#2/relax{% + \def\bbx@tempa{#2-}% + \bibstring{#1}\space\expandafter\makebbx@datei\bbx@tempa} + +\newbibmacro{treatyinfo}{% + \iflistundef{lista}% + {\iffieldundef{year} + {} + {\iffieldundef{volume} + {} + {\printtext{\mkbibparens{\printdate}}}}} + {\printtext{\mkbibparens{\printlist[treatydates]{lista}}}}} + +\newcommand*\treatypartysep{\allowbreak ---\allowbreak} + +\DeclareListFormat{treaty}{% + \ifmoreitems{}{% + \ifthenelse {\value{listcount} = 1} + {\bibopenparen}% + {}% + \ifthenelse {\value{liststop} > \value{listcount} }% + {#1\treatypartysep}% + {#1\bibcloseparen}}} + +\DeclareListFormat{treatydates}{% + \ifthenelse {\value{listcount} = 1} + {\siganddate{#1}} + {\addcomma\space\siganddate{#1}}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Indexing +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% STANDARD INDICES +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\bbx@trash{trash} + +\let\bbx@gbcases\bbx@trash +\let\bbx@encases\bbx@trash +\let\bbx@sccases\bbx@trash +\let\bbx@nicases\bbx@trash +\let\bbx@echrcases\bbx@trash +\let\bbx@echrcommcases\bbx@trash +\let\bbx@eucases\bbx@trash +\let\bbx@eucasesnum\bbx@trash +\let\bbx@eucaseschron\bbx@trash +\let\bbx@eucommcases\bbx@trash +\let\bbx@eucommcasesnum\bbx@trash +\let\bbx@eucommcaseschron\bbx@trash +\let\bbx@pilcases\bbx@trash +\let\bbx@othercases\bbx@trash +\let\bbx@gbprimleg\bbx@trash +\let\bbx@gbsecleg\bbx@trash +\let\bbx@ensecleg\bbx@trash +\let\bbx@enprimleg\bbx@trash +\let\bbx@scprimleg\bbx@trash +\let\bbx@scsecleg\bbx@trash +\let\bbx@cyprimleg\bbx@trash +\let\bbx@cysecleg\bbx@trash +\let\bbx@niprimleg\bbx@trash +\let\bbx@nisecleg\bbx@trash +\let\bbx@eutreaty\bbx@trash +\let\bbx@euregs\bbx@trash +\let\bbx@eudirs\bbx@trash +\let\bbx@eudecs\bbx@trash +\let\bbx@echrtreaty\bbx@trash +\let\bbx@piltreaty\bbx@trash +\let\bbx@otherprimleg\bbx@trash +\let\bbx@othersecleg\bbx@trash +\let\bbx@otherconleg\bbx@trash +\let\bbx@enroc\bbx@trash +\let\bbx@gbdraftleg\bbx@trash +\let\bbx@gbparltmat\bbx@trash +\let\bbx@commentaries\bbx@trash +\let\bbx@euoffdoc\bbx@trash +\let\bbx@namesindex\bbx@trash + +\newcommand\SetStandardIndices{% +\renewcommand\bbx@gbcases{cases} +\renewcommand\bbx@encases{cases} +\renewcommand\bbx@sccases{cases} +\renewcommand\bbx@nicases{cases} +\renewcommand\bbx@echrcases{cases} +\renewcommand\bbx@echrcommcases{cases} +\renewcommand\bbx@eucases{cases} +\renewcommand\bbx@eucasesnum{trash} +\renewcommand\bbx@eucaseschron{trash} +\renewcommand\bbx@eucommcases{cases} +\renewcommand\bbx@eucommcasesnum{trash} +\renewcommand\bbx@eucommcaseschron{trash} +\renewcommand\bbx@pilcases{cases} +\renewcommand\bbx@othercases{cases} +\renewcommand\bbx@gbprimleg{legislation} +\renewcommand\bbx@gbsecleg{legislation} +\renewcommand\bbx@ensecleg{legislation} +\renewcommand\bbx@enprimleg{legislation} +\renewcommand\bbx@scprimleg{legislation} +\renewcommand\bbx@scsecleg{legislation} +\renewcommand\bbx@cyprimleg{legislation} +\renewcommand\bbx@cysecleg{legislation} +\renewcommand\bbx@nisecleg{legislation} +\renewcommand\bbx@niprimleg{legislation} +\renewcommand\bbx@eutreaty{eutreaty} +\renewcommand\bbx@euregs{eulegislation} +\renewcommand\bbx@eudirs{eulegislation} +\renewcommand\bbx@eudecs{eulegislation} +\renewcommand\bbx@echrtreaty{echrtreaty} +\renewcommand\bbx@piltreaty{treaty} +\renewcommand\bbx@otherprimleg{legislation} +\renewcommand\bbx@othersecleg{legislation} +\renewcommand\bbx@otherconleg{legislation} +\renewcommand\bbx@enroc{legislation} +\renewcommand\bbx@gbparltmat{other} +\renewcommand\bbx@commentaries{other} +\renewcommand\bbx@gbdraftleg{other} +\renewcommand\bbx@euoffdoc{other} +\renewcommand\bbx@namesindex{trash}} + +\newcommand\DeclareIndexAssociation[1]{% + \csdef{bbx@#1}} + +\newcommand\ShowIndexAssociation[1]{% + \csname bbx@#1\endcsname} + +\newcommand\bbx@relevantindex{} +\def\legislationindex{legislation} + +\newbibmacro{setrelevantindex}{% +% DEFAULT IS TRASH INDEX + \renewcommand{\bbx@relevantindex}{[\bbx@trash]}% + \iffieldundef{usera}{% +% COURT RULES ALL GO TO ENROC + \ifboolexpr{ test {\ifentrytype{legislation}}% + and test {\iffieldequals{entrysubtype}{\subtypecourtrules}}}% + {\renewcommand\bbx@relevantindex{[\bbx@enroc]}}% + {}% +% THEN WE DEAL WITH PRIMARY + \ifboolexpr{ test {\ifentrytype{legislation}}% + and test {\iffieldequals{entrysubtype}{\subtypeprimarylegislation}}}% + {\ifkeyword{gb}{\renewcommand\bbx@relevantindex{[\bbx@gbprimleg]}}{}% + \ifkeyword{en}{\renewcommand\bbx@relevantindex{[\bbx@enprimleg]}}{}% + \ifkeyword{sc}{\renewcommand\bbx@relevantindex{[\bbx@scprimleg]}}{}% + \ifkeyword{cy}{\renewcommand\bbx@relevantindex{[\bbx@cyprimleg]}}{}% + \ifkeyword{ni}{\renewcommand\bbx@relevantindex{[\bbx@niprimleg]}}{}% + \iffieldundef{keywords}{\renewcommand\bbx@relevantindex{[\bbx@gbprimleg]}}{}% + }% + {}% OTHER KINDS OF LEGISLATION + \ifboolexpr{ test {\ifentrytype{legislation}}% + and test {\iffieldequals{entrysubtype}{\subtypesecondarylegislation}}}% + {\ifkeyword{gb}{\renewcommand\bbx@relevantindex{[\bbx@gbsecleg]}}{}% + \ifkeyword{en}{\renewcommand\bbx@relevantindex{[\bbx@ensecleg]}}{}% + \ifkeyword{sc}{\renewcommand\bbx@relevantindex{[\bbx@scsecleg]}}{}% + \ifkeyword{cy}{\renewcommand\bbx@relevantindex{[\bbx@cysecleg]}}{}% + \ifkeyword{ni}{\renewcommand\bbx@relevantindex{[\bbx@nisecleg]}}{}% + \iffieldundef{keywords}{\renewcommand\bbx@relevantindex{[\bbx@gbsecleg]}}{}% + }% + {}% OTHER KINDS OF LEGISLATION + \ifboolexpr{ test {\ifentrytype{legislation}}% + and test {\ifkeyword{eu}}}% + {\iffieldequals{entrysubtype}{\eutreaty}% + {\renewcommand\bbx@relevantindex{[\bbx@eutreaty]}}{}% + \ifboolexpr{ test {\iffieldequals{type}{\euregulation}}% + or test {\iffieldequals{entrysubtype}{\euregulation}}}% + {\renewcommand\bbx@relevantindex{[\bbx@euregs]}}{}% + \ifboolexpr{ test{\iffieldequals{type}{\eudirective}}% + or test {\iffieldequals{entrysubtype}{\eudirective}}}% + {\renewcommand\bbx@relevantindex{[\bbx@eudirs]}}{}% + \ifboolexpr{ test{\iffieldequals{type}{\eudecision}}% + or test {\iffieldequals{entrysubtype}{\eudecision}}}% + {\renewcommand\bbx@relevantindex{[\bbx@eudecs]}}{}}% + {}% + \ifboolexpr{ test {\ifentrytype{legislation}}% + and test {\ifkeyword{draft}} }% + {\ifboolexpr {test {\ifkeyword{gb}} or test {\ifkeyword{en}}% + or test {\ifkeyword{sc}} or test {\ifkeyword{cy}}% + or test {\ifkeyword{ni}}}% + {\renewcommand\bbx@relevantindex{[\bbx@gbdraftleg]}}% + {}}% + {}% + \ifentrytype{jurisdiction}% + {\ifkeyword{sc}{\renewcommand{\bbx@relevantindex}{[\bbx@sccases]}}% + {\ifkeyword{gb}{\renewcommand{\bbx@relevantindex}{[\bbx@gbcases]}}% + {\ifkeyword{en}{\renewcommand{\bbx@relevantindex}{[\bbx@encases]}}% + {\ifkeyword{ni}{\renewcommand{\bbx@relevantindex}{[\bbx@nicases]}}% + {\ifkeyword{eu}{\renewcommand{\bbx@relevantindex}{[\bbx@eucases]}}% + {\ifkeyword{echr}{\renewcommand{\bbx@relevantindex}{[\bbx@echrcases]}}% + {\ifkeyword{int}{\renewcommand{\bbx@relevantindex}{[\bbx@pilcases]}}% + {\iffieldundef{keywords}{\renewcommand{\bbx@relevantindex}{[\bbx@encases]}} + {\renewcommand{\bbx@relevantindex}{[\bbx@othercases]}}}}}}}}}}% + {}% + \ifboolexpr{ test {\ifentrytype{legal}}% + and test {\iffieldequals{entrysubtype}{\treatysubtype}} }% + {\ifkeyword{int}{\renewcommand{\bbx@relevantindex}{[\bbx@piltreaty]}}{}% + \ifkeyword{echr}{\renewcommand{\bbx@relevantindex}{[\bbx@echrtreat]}}{}}{}% + \iffieldequals{entrysubtype}{\parliamentarytype}% + {\renewcommand{\bbx@relevantindex}{[\bbx@gbparltmat]}}% + {}% + \iffieldequals{entrysubtype}{\comdocsubtype}% + {\renewcommand{\bbx@relevantindex}{[\bbx@euoffdoc]}}% + {}% + \ifentrytype{commentary}% + {\renewcommand{\bbx@relevantindex}{[\bbx@commentaries]}}% + {}% + \ifboolexpr{ test{\ifentrytype{legal}} + and test {\iffieldequals{entrysubtype}{\explanatorynote}}} + {\renewcommand{\bbx@relevantindex}{[\bbx@gbparltmat]}}% + {}% + }% + {\renewcommand{\bbx@relevantindex}{[\thefield{usera}]}}} + +\newcommand\bbx@istrash{[\bbx@trash]} + + \renewbibmacro*{index:title}[2]{% + \ifboolexpr{ test {\ifentrytype{jurisdiction}} + and test {\ifkeyword{eu}} and + (not test {\iflistcontains{institution}{\commission}})} + {\renewcommand\bbx@relevantindex{[\bbx@eucasesnum]}% + \usebibmacro{index:field:eu}% + {\index}% + {\thefield{userf}}% + {\thefield{entrykey}}}% + {}% + \usebibmacro{setrelevantindex}% + \ifboolexpr{ test {\ifentrytype{legal}} + and test {\iffieldequals{entrysubtype}{\parliamentarytype}}} + {\usebibmacro{hansard:index:fields}{#1}{#2}} + {\ifboolexpr{ (not test {\ifentrytype{legislation}} ) + and not + ( test {\ifentrytype{legal}} + and test {\iffieldequals{entrysubtype}{\treatytype}} ) }% + {\usebibmacro{index:field}% + {\index}% + {\thefield{indexsorttitle}}% + {\thefield{entrykey}}}% + {\iffieldequals{entrysubtype}{\subtypecourtrules}% + {\usebibmacro{index:rules}}% + {\usebibmacro{legislation:with:postnote}{#1}{#2}}}}} + +\newbibmacro{hansard:index:fields}[2]{% + \def\bbx@tempaind{vol }% + \iffieldundef{crossref} + {\savefield{entrykey}{\bbx@tempa}% + \restorefield{crossref}{\bbx@tempa}}% + {}% + \iffieldundef{volume} + {\usebibmacro{index:field:5}% + {\index}% + {\thefield{indexsorttitle}} + {\thefield{crossref}}} + {\usebibmacro{index:field:3}% + {\index}% + {\thefield{indexsorttitle}} + {\thefield{crossref}} + {\thefield{volume}}}} + +\newbibmacro{legislation:with:postnote}[2]{% + \ifkeyword{eu} + {\def\bbx@tempa{\thefield{indexsorttitle}}} + {\def\bbx@tempa{\thefield{indexsorttitle}\thefield{year}}}% + \iffieldundef{postnote}% + {\usebibmacro{index:field:5}% + {\index}% + {\bbx@tempa}% + {\thefield{entrykey}}}% + {\ifnumeralfirst{\thefield{postnote}}% + {\usebibmacro{legislation:with:formattedpostnote}{#1}{\bbx@tempa}}% + {\usebibmacro{index:field:2}% + {#1}% + {\bbx@tempa}% + {\thefield{entrykey}}% + {\thefield{postnote}}% + {\thefield{postnote}}}}} + +\newbibmacro{set:index:label}{% + \iffieldequalstr{pagination}{section}{\gdef\bbx@tempaind{s }}% + {\iffieldequalstr{pagination}{article}{\gdef\bbx@tempaind{art }}% + {\iffieldequalstr{pagination}{regulation}{\gdef\bbx@tempaind{reg }}% + {\iffieldequalstr{pagination}{rule}{\gdef\bbx@tempaind{r }}% + {\iffieldequalstr{pagination}{clause}{\gdef\bbx@tempaind{cl }}% + {\iffieldequalstr{pagination}{paragraph}{\gdef\bbx@tempaind{para }}% + {\ifkeyword{eu}{\gdef\bbx@tempaind{art }}% + {\gdef\bbx@tempaind{}}}}}}}}} + +\newbibmacro{legislation:with:formattedpostnote}[2]{% + \usebibmacro{set:index:label}% + \edef\bbx@tempbind{\strfield{postnote}}% + \renewcommand{\do}[1]{% + \usebibmacro{index:field:2}% + {#1}% + {#2}% + {\thefield{entrykey}}% + {##1}% + {\bbx@tempaind##1}}% + \docsvfield{postnote}} + +\def\bbx@secpart#1(#2\relax{#1}%) +\def\bbx@rangechop#1--#2\relax{#1} + +\def\bbx@subsparti#1(#2\relax{#2} +\def\bbx@subspartii#1)#2\relax{#1} +\def\bbx@subspart#1{% + \def\bbx@tempb{#1}% + \expandafter\expandafter\expandafter\bbx@subspartii\expandafter\bbx@subsparti\bbx@tempb(\relax)\relax} + +\def\bbx@hassubpart#1{% + \def\bbx@temph{#1}% + \expandafter\bbx@rangechop\expandafter\bbx@hassubparti\bbx@temph--\relax(\relax}%) + +\def\bbx@hassubparti#1(#2\relax{%) + \sbox0{#2}% + \ifdim\wd0=0pt + \expandafter\@secondoftwo + \else\expandafter\@firstoftwo + \fi} + +% This is the macro that does most of the work in relation to legislation. +% It's rather ghastly, and needs to be exactly as it is in order for expansion to work properly. + +\newbibmacro*{index:field:2}[5]{% + \begingroup% + \bbx@hassubpart{#4}% + {\protected@edef\theindexentry{\unexpanded{#1}\bbx@relevantindex{#2\actualoperator\unexpanded{\citeinindex}{#3}!\expandafter\bbx@rangechop\expandafter\bbx@secpart#4--\relax(\relax\actualoperator\expandafter\bbx@rangechop\expandafter\bbx@secpart#5--\relax(\relax!\expandafter\expandafter\expandafter\bbx@subspartii\expandafter\bbx@subsparti#4(\relax)\relax\actualoperator(\expandafter\expandafter\expandafter\bbx@subspartii\expandafter\bbx@subsparti#5(\relax)\relax)}}}%)) + {\protected@edef\theindexentry{% + \unexpanded{#1}\bbx@relevantindex{#2\actualoperator\unexpanded{\citeinindex}{#3}!\expandafter\bbx@rangechop\expandafter\bbx@secpart#4--\relax(\relax\actualoperator\expandafter\bbx@rangechop\expandafter\bbx@secpart#5--\relax(\relax%)) + }}}% + \theindexentry% + \endgroup} + +\renewbibmacro*{index:field}[3]{% + \begingroup + \protected@edef\theindexentry{% + \unexpanded{#1}\bbx@relevantindex{#2\actualoperator\unexpanded{\citeinindex}{#3}}}% + \theindexentry + \endgroup} + +\newtoggle{bbx@numcite} + +\newbibmacro*{index:field:eu}[3]{% + \begingroup + \protected@edef\theindexentry{% + \unexpanded{#1}\bbx@relevantindex{#2\actualoperator\unexpanded{\citeinindexnum}{#3}}}% + \theindexentry + \endgroup} + + +% This is for legislation with neither postnote nor prenote + +\newbibmacro*{index:field:5}[3]{% + \begingroup + \protected@edef\theindexentry{% + \unexpanded{#1}\bbx@relevantindex{#2\actualoperator\unexpanded{\citeinindex}{#3}}}% + \theindexentry + \endgroup} + +% This is used for procedural rules with a prenote but no postnote + +\newbibmacro*{index:field:3}[4]{% + \begingroup + \protected@edef\theindexentry{% + \unexpanded{#1}\bbx@relevantindex{#2\actualoperator\unexpanded{\citeinindex}{#3}!#4\actualoperator\bbx@tempaind#4}}% + \theindexentry + \endgroup} + +% This is for procedural rules with prenote and postnote + +\newbibmacro*{index:field:4}[5]{% + \begingroup + \protected@edef\theindexentry{% + \unexpanded{#1}\bbx@relevantindex{#2\actualoperator\unexpanded{\citeinindex}{#3}!#4\actualoperator\bbx@tempaind#4!#5\actualoperator\bbx@tempbind#5}}% + \theindexentry + \endgroup} + +\newbibmacro*{index:rules}{% + \restorefield{prenote}{\postnotesecond}% + \iffieldequalstr{shorttitle}{RSC} + {\gdef\bbx@tempaind{Ord }% + \gdef\bbx@tempbind{r }}% + {\iffieldequalstr{shorttitle}{CCR} + {\gdef\bbx@tempaind{Ord }% + \gdef\bbx@tempbind{r }}% + {\gdef\bbx@tempaind{}% + \gdef\bbx@tempbind{}}}% + \iffieldundef{prenote}% + {\iffieldundef{postnote}% + {\usebibmacro{index:field:5}% + {\index}% + {\thefield{indextitle}}% + {\thefield{entrykey}}}% + {\usebibmacro{index:field:3}% + {\index}% + {\thefield{indextitle}}% + {\thefield{entrykey}}% + {\postnotefirst}}}% + {\iffieldundef{prenote}% + {\usebibmacro{index:field:3}% + {\index}% + {\thefield{indextitle}}% + {\thefield{entrykey}}% + {\postnotefirst}}% + {\usebibmacro{index:field:4}% + {\index}% + {\thefield{indextitle}}% + {\thefield{entrykey}}% + {\postnotefirst}% + {\postnotesecond}}}}% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% INDEX: DRIVERS +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newbibmacro*{default:index}{% + \usebibmacro{begentry}% + \printfield[default]{title}% + \newunit + \iffieldundef{year}{} + {\printtext{\mkbibparens{\printfield{year}}}}% + \newunit + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{book:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{collection:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{article:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{thesis:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{inbook:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{periodical:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{patent:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{inproceedings:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{incollection:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{mvbook:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{reference:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{mvreference:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{proceedings:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{inmvreference:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{inreference:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{misc:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{booklet:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{techreport:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{manual:index}{\usebibmacro{default:index}} +\DeclareBibliographyDriver{online:index}{\usebibmacro{default:index}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Improved way of checking if list contains something +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\DeclareListFormat{checkcontains}{% + \bbx@check{#1}} + +\newtoggle{bbx@institutiontoggle} + +\newcommand\iflistcontains[2]{% + \global\togglefalse{bbx@institutiontoggle}% + \def\bbx@check##1{% + \ifdefstring{#2}{##1}{\global\toggletrue{bbx@institutiontoggle}}{}}% + \printlist[checkcontains]{#1}% + \iftoggle{bbx@institutiontoggle}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Index names +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\renewbibmacro*{index:name}[5]{% + \begingroup + \def\bbxinitsep{}% + \ifuseprefix + {\protected@edef\theindexentry{% + \unexpanded{#1}[\bbx@namesindex]{% + \ifblank{#4}{}{#4 }% + \@firstofone #2% remove spurious braces + \ifblank{#5}{}{ #5}% + \ifblank{#3}{}{, #3}% + \actualoperator + \ifblank{#4}{}{\MakeCapital{#4} }% + #2% + \ifblank{#5}{}{ #5}% + \ifblank{#3}{}{, #3}}}} + {\protected@edef\theindexentry{% + \unexpanded{#1}[\bbx@namesindex]{% + \@firstofone #2% remove spurious brces + \ifblank{#5}{}{ #5}% + \ifblank{#3#4}{}{,}% + \ifblank{#3}{}{ #3}% + \ifblank{#4}{}{ #4}}}}% + \theindexentry + \endgroup} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Sorting Scheme : Sort includes INSTITUTION +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\DeclareSortingScheme{nity}{ + \sort{ + \field{presort} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \name{sortname} + \name{author} + \name{editor} + \name{translator} + \list{institution} + \field{sorttitle} + \field{title} + \field{booktitle} + \field{maintitle} + } + \sort{ + \field{sorttitle} + \field{title} + } + \sort{ + \field{sortyear} + \field{year} + } + \sort{ + \field[padside=left,padwidth=4,padchar=0]{volume} + \literal{0000} + } +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Printindex early +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\printindexearly}{} + +\AtEndPreamble{% + \@ifpackageloaded{imakeidx} + {\renewcommand{\printindexearly}[1][\jobname]{% + \@ifundefined{#1@idxfile}{\imki@error{#1}}{\bbx@putimindex{#1}}}} + {\@ifpackageloaded{index} + {\renewcommand{\printindexearly}{\@printindex}} + {\renewcommand{\printindexearly}[1]{\PackageError{biblatex-oscola}{You need to load either the imakeidx or index package:}}}}} + +% Based on imki@putindexsplit +\newcommand{\bbx@putimindex}[1]{% + \let\imki@indexname\indexname + \@nameuse{imki@set@#1}% + \ifimki@nonewpage\else + \imki@clearpage + \fi + \ifKV@imki@intoc + \def\imki@maybeaddtotoc{\@nameuse{phantomsection}% + \addcontentsline{toc}{\imki@toclevel}{\imki@title}}% + \else + \def\imki@maybeaddtotoc{}% + \fi + \ifx\imki@title\imki@check@indexname\else + \def\indexname{\imki@title}% + \fi + \@input@{#1.ind} + \let\indexname\imki@indexname +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% SOURCE MAPPING +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\DeclareSourcemap{ + \maps[datatype=bibtex]{ + \map[overwrite=false]{ + \pertype{jurisdiction} + \step[fieldsource=reporter, + fieldtarget=journaltitle] + \step[fieldsource=parvolume, + fieldtarget=userb] + \step[fieldsource=parreporter, + fieldtarget=userc] + \step[fieldsource=parseries, + fieldtarget=userd] + \step[fieldsource=parpages, + fieldtarget=usere] + \step[fieldsource=court, + fieldtarget=institution] + \step[fieldsource=additionalreports, + fieldtarget=listb] + } + \map[overwrite=false]{ + \pertype{legal} + \step[fieldsource=reporter, + fieldtarget=journaltitle] + } + \map[overwrite=true]{ + \pertype{legal} + \step[fieldsource=parties, + fieldtarget=institution] + \step[fieldsource=execution, + fieldtarget=lista] + } + \map[overwrite=false]{ + \pertype{inreference} + \step[fieldsource=booktitle, + fieldtarget=userb] + } + \map[overwrite=false]{ + \step[fieldsource=type, + final=true] + \step[fieldset=entrysubtype, + origfieldval=true] + } + \map[overwrite=true]{ + \pertype{legislation} + \step[fieldsource=keywords, + match={eu}, + final=true] + \step[fieldsource=entrysubtype, + match=\regexp{directive|decision}, + final=true] + \step[fieldsource=number] + \step[fieldset=indextitle, + origfieldval=true] + \step[fieldsource=indextitle, + match=\regexp{(\S+)/(\d\d\d\d)\D} + replace=\regexp{$1/0$2}] + \step[fieldsource=indextitle, + match=\regexp{(\S+)/(\d\d\d)\D}, + replace=\regexp{$1/00$2}] + \step[fieldsource=indextitle, + match=\regexp{(\S+)/(\d\d)\D}, + replace=\regexp{$1/000$2}] + \step[fieldsource=indextitle, + match=\regexp{(\S+)/(\d)\D}, + replace=\regexp{$1/0000$2}] + \step[fieldsource=indextitle, + match=\regexp{(\d+)/(\d+)(\D*)}, + replace=\regexp{$1$2}] + } + \map[overwrite=true]{ + \pertype{legislation} + \step[fieldsource=keywords, + match={eu}, + final=true] + \step[fieldsource=entrysubtype, + match={regulation}, + final=true] + \step[fieldsource=number] + \step[fieldset=indextitle, + origfieldval=true] + \step[fieldsource=indextitle, + match=\regexp{\D*(\d+)/(\d\d)\D} + replace=\regexp{$1/19$2}] + \step[fieldsource=indextitle, + match=\regexp{(\d\d\d\d)/(\d+)}, + replace=\regexp{0$1/$2}] + \step[fieldsource=indextitle, + match=\regexp{(\d\d\d)/(\d+)}, + replace={00$1/$2}] + \step[fieldsource=indextitle, + match=\regexp{(\d\d)/(\d+)}, + replace=\regexp{000$1/$2}] + \step[fieldsource=indextitle, + match=\regexp{(\d)/(\d+)}, + replace=\regexp{0000$1/$2}] + \step[fieldsource=indextitle, + match=\regexp{(\d+)/(\d+)}, + replace=\regexp{$2$1}] + } + \map[overwrite=false]{ + \pertype{jurisdiction} + \step[fieldsource=keywords, + match=eu, + final=true] + \step[fieldsource=number] + \step[fieldset=userf, + origfieldval=true] + } + \map[overwrite=true]{ + \pertype{jurisdiction} + \step[fieldsource=keywords, + match={eu}, + final=true] + \step[fieldsource=userf, + match=\regexp{^(\d+)/(\d+)}, + replace=\regexp{C-$1/$2}] + \step[fieldsource=userf, + match=\regexp{([^/]+)/(\d+)[-,].*$}, + replace=\regexp{$1/$2}] + \step[fieldsource=userf, + match=\regexp{(\D)\D*(\d+)/(\d+)}, + replace=\regexp{$1A$2A$3}] + \step[fieldsource=userf, + match=\regexp{([^A]*)A([^A]*)A([01234]\d)$}, + replace=\regexp{$1A$2A20$3}] + \step[fieldsource=userf, + match=\regexp{([^A]*)A([^A]*)A([56789]\d)$}, + replace=\regexp{$1A$2A19$3}] + \step[fieldsource=userf, + match=\regexp{(\d\d\d)A}, + replace=\regexp{0$1A}] + \step[fieldsource=userf, + match=\regexp{A(\d\d)A}, + replace=\regexp{A00$1A}] + \step[fieldsource=userf, + match=\regexp{A(\d)A}, + replace=\regexp{A000$1A}] + \step[fieldsource=userf, + match=\regexp{CA(.*)}, + replace=\regexp{0A$1}] + \step[fieldsource=userf, + match=\regexp{(T)}, + replace={1}] + \step[fieldsource=userf, + match=\regexp{(\d)A(\d\d\d\d)A(\d\d\d\d)}, + replace=\regexp{$3$2$1}] + } + \map[overwrite=true]{ + \pertype{jurisdiction} + \pertype{legislation} + \pertype{legal} + \step[fieldsource=title, + match=\regexp{(\d)\.(\d)}, + replace=\regexp{$1.$2}] + \step[fieldsource=title, + match=\regexp{(\D)\.(\d)}, + replace=\regexp{$1 $2}] + \step[fieldsource=title, + match=\regexp{\.(\D)}, + replace=\regexp{$1}] + \step [fieldsource=title, + match=\regexp{(\D)\.}, + replace=\regexp{$1}] + \step[fieldsource=shorttitle, + match=\regexp{(\d)\.(\d)}, + replace=\regexp{$1.$2}] + \step[fieldsource=shorttitle, + match=\regexp{(\D)\.(\d)}, + replace=\regexp{$1 $2}] + \step[fieldsource=shorttitle, + match=\regexp{\.(\D)}, + replace=\regexp{$1}] + \step [fieldsource=shorttitle, + match=\regexp{(\D)\.}, + replace=\regexp{$1}] + } + \map[overwrite=true]{ + \step[fieldsource=userc, + match=\regexp{(\d)\.(\d)}, + replace=\regexp{$1.$2}] + \step[fieldsource=userc, + match=\regexp{(\D)\.(\d)}, + replace=\regexp{$1 $2}] + \step[fieldsource=userc, + match=\regexp{\.(\D)}, + replace=\regexp{$1}] + \step [fieldsource=userc, + match=\regexp{(\D)\.}, + replace=\regexp{$1}] + \step[fieldsource=journaltitle, + match=\regexp{(\d)\.(\d)}, + replace=\regexp{$1.$2}] + \step[fieldsource=journaltitle, + match=\regexp{(\D)\.(\d)}, + replace=\regexp{$1 $2}] + \step[fieldsource=journaltitle, + match=\regexp{\.(\D)}, + replace=\regexp{$1}] + \step [fieldsource=journaltitle, + match=\regexp{(\D)\.}, + replace=\regexp{$1}] + \step[fieldsource=institution, + match=\regexp{(\d)\.(\d)}, + replace=\regexp{$1.$2}] + \step[fieldsource=institution, + match=\regexp{(\D)\.(\d)}, + replace=\regexp{$1 $2}] + \step[fieldsource=institution, + match=\regexp{\.(\D)}, + replace=\regexp{$1}] + \step[fieldsource=institution, + match=\regexp{(\D)\.}, + replace=\regexp{$1}] + \step[fieldsource=publisher, + match=\regexp{(\d)\.(\d)}, + replace=\regexp{$1.$2}] + \step[fieldsource=publisher, + match=\regexp{(\D)\.(\d)}, + replace=\regexp{$1 $2}] + \step[fieldsource=publisher, + match=\regexp{\.(\D)}, + replace=\regexp{$1}] + \step [fieldsource=publisher, + match=\regexp{(\D)\.}, + replace=\regexp{$1}] + \step[fieldsource=location, + match=\regexp{(\d)\.(\d)}, + replace=\regexp{$1.$2}] + \step[fieldsource=location, + match=\regexp{(\D)\.(\d)}, + replace=\regexp{$1 $2}] + \step[fieldsource=location, + match=\regexp{\.(\D)}, + replace=\regexp{$1}] + \step [fieldsource=location, + match=\regexp{(\D)\.}, + replace=\regexp{$1}] + \step[fieldsource=series, + match=\regexp{(\d)\.(\d)}, + replace=\regexp{$1.$2}] + \step[fieldsource=series, + match=\regexp{(\D)\.(\d)}, + replace=\regexp{$1 $2}] + \step[fieldsource=series, + match=\regexp{\.(\D)}, + replace=\regexp{$1}] + \step [fieldsource=series, + match=\regexp{(\D)\.}, + replace=\regexp{$1}] + \step[fieldsource=indextitle, + match=\regexp{(\d)\.(\d)}, + replace=\regexp{$1.$2}] + \step[fieldsource=indextitle, + match=\regexp{(\D)\.(\d)}, + replace=\regexp{$1 $2}] + \step[fieldsource=indextitle, + match=\regexp{\.(\D)}, + replace=\regexp{$1}] + \step [fieldsource=indextitle, + match=\regexp{(\D)\.}, + replace=\regexp{$1}] +} + \map[overwrite=true]{ + \step[fieldsource=author, + match=\regexp{(\w)\.}, + replace=\regexp{$1\\bbxinitsep\x20}] + } + \map[overwrite=true]{ + \step[fieldsource=editor, + match=\regexp{(\w)\.}, + replace=\regexp{$1\\bbxinitsep\x20}] + } + \map[overwrite=true]{ + \step[fieldsource=translator, + match=\regexp{(\w)\.}, + replace=\regexp{$1\\bbxinitsep\x20}] + } + \map[overwrite=true]{ + \step[fieldsource=tabulate, + fieldtarget=usera] + } +}} + +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/oscola/oscola.cbx b/Master/texmf-dist/tex/latex/oscola/oscola.cbx new file mode 100644 index 00000000000..72716b765c5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/oscola/oscola.cbx @@ -0,0 +1,390 @@ +% Based on verbose-inote.cbx by Philip Lehman and others +% Part of the OSCOLA package for biblatex: see the file +% oscola.lbx for copyright and licence information + +\ProvidesFile{oscola.cbx}[2012/08/16 v0.1 Biblatex citation style for OSCOLA standard] + +\RequireCitationStyle{verbose-inote} + +\newcounter{bbx@lastcitedc} +\newtoggle{bbx@samefootnote} + +% This checks citations for casenotes +\AtEveryCite{% + \ifnum\value{bbx@lastcitedc} = \value{footnote}% + \toggletrue{bbx@samefootnote}% + \else + \togglefalse{bbx@samefootnote}% + \fi + \setcounter{bbx@lastcitedc}{\value{footnote}}} + +\DeclareBibliographyOption{eutreaty}[false]{% + \ifstrequal{#1}{alternative} + {} + {\renewbibmacro*{eutreatypostnote}{}}} + +%\renewcommand{\bibfootnotewrapper}[1]{#1\addperiod} +\newtoggle{cbx@weareindexing} +\toggletrue{cbx@weareindexing} + +% We do this largely to pick up the cases were ibid should not be used + +\renewbibmacro*{cite}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \ifciteseen + {\iffieldundef{shorthand} + {\ifboolexpr{ + test {\ifciteibid} + and + not test {\iffirstonpage} + and + not test {\iftoggle{bbx:suppressibid}} + } + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:short}}} + {\usebibmacro{cite:shorthand}}} + {\usebibmacro{cite:full}}} + + +\renewbibmacro*{citeindex}{% + \ifboolexpr{ test{\ifciteindex} and test{\iftoggle{cbx@weareindexing}}} + {\indexnames{labelname}% + \indexfield{indextitle}} + {}% + \global\toggletrue{cbx@weareindexing}} + +\newcommand{\DNI}{\togglefalse{cbx@weareindexing}} + +\newbibmacro*{footcite:note:old}{% + \ifboolexpr{ test {\ifentrytype{misc}} or test {\ifentrytype{legal}} } + {\printfield[title]{labeltitle}\setunit*{\addspace}} + {\ifnameundef{labelname}% + {\printfield{label}}% + {\printnames{labelname}}% + \ifsingletitle% + {}% + {\setunit*{\nametitledelim}% + \printfield[title]{labeltitle}}% + \setunit*{\addspace}}% + \bbx@unsetpostnotedelim% + \printtext[parens]{% + \midsentence + \bibstring{seenote}\addnbspace% + \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}% + \iftoggle{cbx:pageref}% + {\ifsamepage{\the\value{instcount}}% + {\csuse{cbx@f@\thefield{entrykey}}}% + {}% + {\addcomma\space\bibstring{page}\addnbspace% + \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}} + {}}} + +% This is the original verbose-inote short citation + +\newbibmacro*{cite:oldshort}{% + \printnames{labelname}% + \setunit*{\nametitledelim}% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:miscshort}{% + \iffieldundef{shorttitle} + {\iffieldundef{journaltitle} + {\printfield{title}} + {\printfield{journaltitle}}} + {\printfield{shorttitle}}% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:shortleg}{% + \iffieldequals{entrysubtype}{\subtypecourtrules} + {\usebibmacro{cite:full}} + {\printtext[bibhyperlink]{% + \ifkeyword{eu}% + {\usebibmacro{shorteu}}% + {\iffieldequals{entrysubtype}{\subtypesecondarylegislation} + {\usebibmacro{title:or:shorttitle}% + \newunit + \iffootnote + {\bbx@unsetpostnotedelim% + \printtext[parens]{% + \midsentence + \bibstring{seenote}\addnbspace% + \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}% + \iftoggle{cbx:pageref}% + {\ifsamepage{\the\value{instcount}}% + {\csuse{cbx@f@\thefield{entrykey}}}% + {}% + {\addcomma\space\bibstring{page}\addnbspace% + \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}}} + {\iffieldundef{number} + {} + {\setunit{\addcomma\space}% + \printfield{number}}}} + {\iffieldundef{title}% + {\iffieldundef{number}% + {\usebibmacro{cite:oldshort}}% + {\printfield{number}\setunit{\addcomma\space}}}% + {\usebibmacro{title:or:shorttitle}}}}}}} + +\newbibmacro*{shorteu}{% + \iffieldundef{shorttitle}% + {\usebibmacro{makeshorteu}}% + {\usebibmacro{eutreatypostnote}\printfield{shorttitle}}% + \ifboolexpr{test {\iffieldundef{shorthand}} and test {\iffootnote}} + {\newunit\printtext[parens]{% + \midsentence + \bibstring{seenote}\addnbspace% + \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}% + \iftoggle{cbx:pageref}% + {\ifsamepage{\the\value{instcount}}% + {\csuse{cbx@f@\thefield{entrykey}}}% + {}% + {\addcomma\space\bibstring{page}\addnbspace% + \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}} + {}}\bbx@unsetpostnotedelim}% + {\bbx@resetpostnotedelim}}% + +\renewbibmacro*{footcite:shorthand}{% + \ifboolexpr{ test {\ifentrytype{legislation}}% + and test {\iffieldequals{entrysubtype}{\eutreaty}} }% + {\usebibmacro{eutreatypostnote}% + \printtext[bibhyperlink]{\printfield{shorthand}}} + {\printtext[bibhyperlink]{\printfield{shorthand}}% + \bbx@resetpostnotedelim}}% + +\renewbibmacro*{cite:shorthand}{% + \ifboolexpr{ test {\ifentrytype{legislation}}% + and test {\iffieldequals{entrysubtype}{\eutreaty}} } + {\usebibmacro{eutreatypostnote}\printtext[bibhyperlink]{\printfield{shorthand}}}% + {\printtext[bibhyperlink]{\printfield{shorthand}}% + \bbx@resetpostnotedelim}}% + + +\newbibmacro*{makeshorteu}{% + \ifboolexpr{ test {\iffieldundef{number}} or test {\iffieldundef{type}} }% + {\usedriver{}{legislation}}% + {\ifbibstring{\thefield{type}}% + {bibcpstring{\thefield{type}}}% + {\printfield{type}}% + \addnbspace\printfield{number}}}% Need to get this to refer back via notes. + +\providecommand*{\eutreaty}{eu-treaty} + +\global\newtoggle{cbx@postnoteprinted} + +\newbibmacro*{eutreatypostnote}{% + \iffieldequals{entrysubtype}{\eutreaty} + {\iffieldundef{prenote}{\bibsentence}{}% + \bbx@unsetpostnotedelim\usebibmacro{postnote}% + \iffieldundef{postnote}{}{\addspace}} + {}} + +\newbibmacro*{cite:refonlyfull}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \ifentrytype{jurisdiction} + {\clearfield{title}% + \clearfield{shorttitle}}% + {}% + \usebibmacro{cite:full}} + +% I've left this, although I think I probably won't use it because +% it doesn't make sense to have "partial" references going back to +% note numbers + +\newbibmacro*{cite:refonlynote}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \iffootnote + {% + \printtext{% + \midsentence\bibstring{seenote}\addnbspace + \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}\bbx@resetpostnotedelim% + \iftoggle{cbx:pageref} + {\ifsamepage{\the\value{instcount}} + {\csuse{cbx@f@\thefield{entrykey}}} + {} + {\addcomma\space\bibstring{page}\addnbspace + \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}} + {}\bbx@resetpostnotedelim}}% + {\usebibmacro{cite:refonlyfull}}} + +\newbibmacro*{cite:refonly}{% + \ifentrytype{jurisdiction} + {\clearfield{title}\clearfield{shorttitle}} + {}% + \iffootnote{\usebibmacro{footcite}}} + +% These two macros need to be removed: they are not intended for +% use; the remnant of a different scheme. +\DeclareCiteCommand{\shortcite}% + {\usebibmacro{prenote}}% + {\usebibmacro{citeindex}% + \usebibmacro{cite:refonly}}% + {\multicitedelim}% + {\usebibmacro{cite:postnote}}% + +\DeclareCiteCommand{\footshort}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:refonly}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\renewbibmacro*{cite:short}{% + \ifentrytype{legislation}% + {\usebibmacro{cite:shortleg}} + {\ifboolexpr{( + test {\ifentrytype{commentary}} + or (test {\ifentrytype{legal}} and not test {\iffieldequals{entrysubtype}{\treatysubtype}} ) + or (test {\ifentrytype{jurisdiction}} + and (not test {\iffieldundef{userc}}) + and (not test {\iffieldundef{postnote}})))}% + {\usebibmacro{cite:full}} + {\ifentrytype{misc} + {\usebibmacro{cite:miscshort}} + {\usebibmacro{cite:oldshort}}}}} + +\renewbibmacro*{footcite:note}{% + \ifboolexpr{test {\ifentrytype{legislation}} + or ( test {\ifentrytype{legal}} + and not test {\iffieldequals{entrysubtype}{\treatysubtype}} )}% + {\usebibmacro{cite:short}}% + {\ifentrytype{commentary}% + {\usebibmacro{footcite:full}}% + {\ifboolexpr{ ( test {\ifentrytype{jurisdiction}} + and + ( not test {\iffieldundef{userc}} + and not test {\iffieldundef{postnote}} )) + or (test {\ifentrytype{legal}} + and test {\iffieldequalstr{type}{parliamentary}} )} + {\usebibmacro{cite:full}}% + {\ifboolexpr{ ( test {\ifentrytype{report}} and test {\iffieldequalstr{entrysubtype}{comdoc}} )} + {\usebibmacro{cite:refonlyfull}} % FIX THIS: will need a separate macro + {\usebibmacro{footcite:note:old}}}}}}% + +\DeclareCiteCommand{\reponly}% + {\usebibmacro{prenote}}% + {\usebibmacro{citeindex}% THIS MAY NEED TO CHANGE + \ifentrytype{jurisdiction} + {\usedriver{}{jurisdiction:reponly}} + {\iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\renewbibmacro*{footcite:ibid}{% + \ifboolexpr{ ( test {\iffieldundef{userc}} + or test {\iffieldundef{postnote}}) + and not + test{\iffieldequals{entrysubtype}{\subtypecourtrules}} }% + {\printtext[bibhyperlink]{\iftoggle{bbx@capibid}{}{\midsentence}\bibstring{ibidem}}% + \ifloccit + {\global\toggletrue{cbx:loccit}} + {}} + {\usebibmacro{cite:refonlyfull}}} + +\DeclareCiteCommand{\footciteref}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:refonly}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\renewbibmacro*{cite:ibid}{% + \ifboolexpr{ ( test {\iffieldundef{userc}} + or test {\iffieldundef{postnote}}) + and not + test{\iffieldequals{entrysubtype}{\subtypecourtrules}} }% + {\printtext[bibhyperlink]{\iftoggle{bbx@capibid}{\midsentence}{}\bibstring{ibidem}}% + \ifloccit + {\global\toggletrue{cbx:loccit}} + {}} + {\usebibmacro{cite:refonlyfull}}} + +% We take advantage of the prenote macro to do some messing with +% the postnotes + +\DeclareListParser{\dopipedlist}{|} + +\def\setuppostnotes{% + \global\let\postnotefirst\@undefined% + \global\let\postnotesecond\@undefined% + \edef\cbx@tempa{{\thefield{postnote}}}% + \renewcommand\do[1]{% + \ifx\postnotefirst\@undefined + \gdef\postnotefirst{##1}% + \else + \gdef\postnotesecond{##1}% + \fi}% + \expandafter\dopipedlist\cbx@tempa} + +\renewbibmacro*{prenote}{% + \global\togglefalse{cbx@postnoteprinted}% + \setuppostnotes + \restorefield{postnote}{\postnotefirst}% + \savefield{prenote}{\cbx@legal@prenote}% this will go + \iffieldundef{prenote}% + {}% + {\printfield{prenote}% + \setunit{\prenotedelim}}} + +\DeclareCiteCommand{\citeinindex} + {} + {\usedriver{}{\thefield{entrytype}:index}} + {\multicitedelim} + {} + +\DeclareCiteCommand{\citeinindexnum} + {} + {\usedriver{\toggletrue{bbx@numcite}}{\thefield{entrytype}:index}} + {\multicitedelim} + {\togglefalse{bbx@numcite}} + +\DeclareCiteCommand{\indexonly} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}} + {} + {} + +% The following declarations are required for some reason that I cannot +% understand. Unless so redefined, we get spacing problems with postnotes + +\DeclareCiteCommand{\fullcite} + {\usebibmacro{prenote}} + {\usebibmacro{cite:full}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footfullcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{cite:full}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\textcite}[\cbx@textcite\footciteref] + {\gdef\cbx@savedkeys{}} + {\ifboolexpr{ test {\ifentrytype{jurisdiction}} or test{\ifentrytype{legislation}} } + {\usebibmacro{title:or:shorttitle}}% + {\printnames{labelname}}% + \xappto\cbx@savedkeys{\thefield{entrykey},}} + {\multinamedelim} + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} + +\newbibmacro{title:or:shorttitle}{% + \ifciteseen + {\iffieldundef{shorthand} + {\iffieldundef{shorttitle} + {\printfield{title}% + \ifentrytype{legislation} + {\newunit\usebibmacro{date}} + {}}% + {\printfield{shorttitle}}}% + {\printfield{shorthand}}}% + {\printfield{title}}} + +\endinput
\ No newline at end of file |