diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/oscola/oscola.bbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/oscola/oscola.bbx | 229 |
1 files changed, 187 insertions, 42 deletions
diff --git a/Master/texmf-dist/tex/latex/oscola/oscola.bbx b/Master/texmf-dist/tex/latex/oscola/oscola.bbx index e4831f6a453..64df915d234 100644 --- a/Master/texmf-dist/tex/latex/oscola/oscola.bbx +++ b/Master/texmf-dist/tex/latex/oscola/oscola.bbx @@ -13,7 +13,7 @@ % 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] +\ProvidesFile{oscola.bbx}[2013/05/23 v1.2 Biblatex bibliography style for OSCOLA standard] \RequireBibliographyStyle{authortitle} @@ -29,6 +29,11 @@ \ifstrequal{#1}{uc} {\global\toggletrue{bbx@capibid}} {\togglefalse{bbx@capibid}}} + +\newtoggle{bbx@shortindex} + +\DeclareBibliographyOption{shortindex}[true]{% + \settoggle{bbx@shortindex}{#1}} % We ensure that there will always be a trash index \AtEndPreamble{% @@ -85,12 +90,12 @@ \iftoggle{bbx@initsep} {\togglefalse{bbx@initsep}} {\oldbibnamedelimb}} -%\renewcommand\bibnamedelimc{% -% \togglefalse{bbx@initsep}% -% \oldbibnamedelimc} -%\renewcommand\bibnamedelimd{% -% \togglefalse{bbx@initsep}% -% \oldbibnamedelimd} +\renewcommand\bibnamedelimc{% + \togglefalse{bbx@initsep}% + \oldbibnamedelimc} +\renewcommand\bibnamedelimd{% + \togglefalse{bbx@initsep}% + \oldbibnamedelimd} \renewcommand\bibnamedelimi{% \togglefalse{bbx@initsep}% \oldbibnamedelimi} @@ -139,7 +144,7 @@ \DeclareLanguageMapping{english}{english-oscola} % Various aliases -\DeclareBibliographyAlias{inproceedings}{inbook} +\DeclareBibliographyAlias{inproceedings}{book} \DeclareBibliographyAlias{booklet}{book} \DeclareBibliographyAlias{collection}{book} \DeclareBibliographyAlias{incollection}{inbook} @@ -247,7 +252,7 @@ \newcommand*\eudirective{directive} \newcommand*\euregulation{regulation} \newcommand*\eudecision{decision} -\newcommand*\treatysubtype{treaty} +\newcommand*\treatysubtype{piltreaty} \newcommand*\comdocsubtype{comdoc} \newcommand*{\jurisechr}{echr} \providecommand*\eutreaty{eu-treaty} @@ -262,6 +267,7 @@ \newcommand*{\parliamentarytype}{parliamentary} \newcommand*{\houseofcommons}{HC} \newcommand*{\houseoflords}{HL} +\newcommand*\undoctype{undoc} % Some basic redefinitions and formatting \renewcommand\newunitpunct{\addspace} @@ -401,10 +407,13 @@ \DeclareFieldFormat[thesis]{title}{\mkbibquote{#1}} \DeclareFieldFormat[misc]{title}{#1} \DeclareFieldFormat[misc]{journaltitle}{\mkbibquote{#1}} +\DeclareFieldFormat[misc]{pages}{\mkfirstpage*{#1}} +\DeclareFieldFormat[misc]{volume}{#1} \DeclareFieldFormat{casenotetitle}{\mkbibquote{\mkbibemph{#1}}} \DeclareFieldFormat{usseries}{\ifinteger{#1}{\mkusbibordinal{#1}}{#1}} \DeclareFieldFormat[legislation]{title}{#1} \DeclareFieldFormat[legal]{title}{#1} +\DeclareFieldFormat{untitle}{#1} \DeclareListFormat[jurisdiction]{extracites}{% \extracitedelim #1} @@ -438,7 +447,7 @@ \usebibmacro{author/translator+others}% \setunit{\addcomma\space}\newblock \usebibmacro{journaltitle}% - \setunit{\addspace} + \setunit{\addspace}% \printlist{language}% \setunit{\addspace}\newblock \usebibmacro{byauthor}% @@ -450,11 +459,11 @@ \usebibmacro{journal+issuetitle}% \setunit{\addspace}\newblock \usebibmacro{byeditor+others}% - \setunit{\addspace} + \setunit{\addspace}% \usebibmacro{note+pages}% - \setunit{\addspace} + \setunit{\addspace}% \usebibmacro{doi+eprint+url}% - \setunit{\addspace} + \setunit{\addspace}% \usebibmacro{addendum+pubstate}% \setunit{\bibpagerefpunct}% \usebibmacro{pageref}% @@ -577,7 +586,8 @@ {\usebibmacro{legal:parliamentary}} {\iffieldequals{entrysubtype}{\treatysubtype} {\usebibmacro{treatycitation}} - {\usebibmacro{treatycitation}}}} + {\usebibmacro{treatycitation}}}}% + \newunit\newblock \usebibmacro{legislation:note}% \newunit\newblock \setunit{\bibpagerefpunct}% @@ -651,18 +661,23 @@ \DeclareBibliographyDriver{misc}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author/editor+others/translator+others}% + \iffieldequals{entrysubtype}{\undoctype} + {\usebibmacro{undoc}} + {\usebibmacro{author/editor+others/translator+others}% \setunit*{\addcomma\space}% \usebibmacro{misctitle}% \newunit\newblock \usebibmacro{publicationinfo}% \newunit\newblock - \usebibmacro{doi+eprint+url}% + \usebibmacro{doi+eprint+url}}% \newunit\newblock \setunit{\bibpagerefpunct}\newblock \usebibmacro{pageref}% \usebibmacro{finentry}} +%\DeclareBibliographyDriver{misc:index}{% +% \printfield{indextitle}}% + \DeclareBibliographyDriver{online}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% @@ -1029,6 +1044,21 @@ \global\toggletrue{cbx@postnoteprinted}% \newunit\newblock} +\renewbibmacro*{doi+eprint+url}{% + \iftoggle{bbx:doi} + {\printfield{doi}} + {}% + \newunit\newblock + \iftoggle{bbx:eprint} + {\usebibmacro{eprint}} + {}% + \newunit\newblock + \ifboolexpr{ test {\iftoggle{bbx:url}} + or test {\ifentrytype{online}}} + {\usebibmacro{url+urldate}} + {}} + + \newbibmacro*{echrreports}{% \printfield{journaltitle}% \newunit @@ -1200,8 +1230,10 @@ {\printtext{\mkbibparens{\printfield{userb}}\newunit}}% \printtext{\mkbibparens{\usebibmacro{euparenthetical}}}}% \newunit% - \usebibmacro{eu:reportinfo}% - \newunit% + \iftoggle{bbx@shortindex} + {} + {\usebibmacro{eu:reportinfo}% + \newunit}% \usebibmacro{court-note}% } @@ -1369,10 +1401,10 @@ \newunit \printtext{\mkbibparens{% \iflistundef{location} - {} + {}% {\printlist{location}% \setunit{\addcomma\space}}% - \usebibmacro{date}}}} + \usebibmacro{date}}}\newunit} {\usebibmacro{journaldate}% \newunit \usebibmacro{volume+number+eid}% @@ -1434,13 +1466,19 @@ \restorefield{title}{\bbx@tempa}% \ifkeyword{eu}% {\usebibmacro{eujuriscitation:index}}% + {\iftoggle{bbx@shortindex} + {\printfield{title}% + \setunit{\addspace} + \iffieldundef{year} + {} + {\printtext{\mkbibparens{\printfield{year}}}}} {\ifkeyword{echr}% {\usebibmacro{echrjuriscitation}}% {\ifkeyword{int}% {\usebibmacro{intjuriscitation}}% {\ifkeyword{us} {\usebibmacro{usjuriscitation}} - {\usebibmacro{enjuriscitation}}}}}} + {\usebibmacro{enjuriscitation}}}}}}} \newbibmacro*{jurisdictionpages}{% \iffieldequals{entrysubtype}{\subtypenewsp}% @@ -1588,8 +1626,8 @@ \renewbibmacro{note+pages}{% \printfield{pages}% - \setunit{\addspace} - \printfield{note} + \setunit{\addspace}% + \printfield{note}% \newunit} \newbibmacro{online:title}{% @@ -1856,15 +1894,15 @@ \iffieldundef{series}% {\iffieldundef{number} {}% - {\bbx@pubinfoprint% - \printfield{number}\setunit{\addcomma\space}}}% + {\bbx@pubinfoprint + \printfield{number}}}% {\iffieldundef{series} {} {\bbx@pubinfoprint% - \printfield{series}\setunit{\addcomma\space}% + \printfield{series}}% \iffieldundef{number} {}% - {\printfield{number}\setunit{\addcomma\space}}}}} + {\setunit{\addspace}\printfield{number}}}} \newbibmacro{revisedbookvolume}{% \iffieldundef{volume}% @@ -1878,7 +1916,8 @@ and test {\iflistundef{publisher}} and test {\iflistundef{institution}}}% {}% - {\usebibmacro{rep:institution/publisher}% + {\bbx@pubinfoprint + \usebibmacro{rep:institution/publisher}% \usebibmacro{year}}} \newbibmacro*{seriesareport}{% @@ -1903,13 +1942,15 @@ \newunit\newblock} \renewbibmacro*{shorthandintro}{% - \iffieldundef{shorthandintro} + \bbx@ifnottrackingcites + {} + {\iffieldundef{shorthandintro} {\iffieldundef{shorthand} {} {\bbx@unsetpostnotedelim\setunit{\addspace}% \printtext[parens]{\unspace\printfield{shorthand}}}} {\bbx@unsetpostnotedelim\setunit{\addspace}% - \printtext[parens]{\printfield{shorthandintro}}}} + \printtext[parens]{\printfield{shorthandintro}}}}} \newbibmacro{spaceddate}{% \ifboolexpr{ ( test {\iffieldundef{year}} @@ -1953,6 +1994,50 @@ \usebibmacro{translator+othersstrg}}}% \clearname{translator}} {}} + +\newbibmacro*{undoc}{% + \iffieldundef{title} + {} + {\ifnameundef{author}% + {} + {\usebibmacro{author/editor+others/translator+others}% + \setunit*{\addcomma\space}}% + \printfield[untitle]{title}% + \setunit{\addcomma\space}}% + \printlist{institution}% + \newunit + \printfield{titleaddon}% + \newunit\newblock + \iffieldundef{number} + {\usebibmacro{undoc:year+vol+report}} + {\iffieldundef{year} + {\setunit{\addcomma\space}} + {\printtext{\mkbibparens{\usebibmacro{date}}}% + \newunit}% + \printfield{number}}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{legislation:note}} + +\newbibmacro*{undoc:index}{% + \clearname{author}% + \clearname{editor}% + \usebibmacro{undoc}} + +\newbibmacro*{undoc:year+vol+report}{% + \usebibmacro{journaldate}% + \newunit + \usebibmacro{reportvolume}% + \setunit{\addspace}% + \printfield[default]{journaltitle}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}}% + \printfield{pages}} \newbibmacro*{unrep:date}{% \ifboolexpr{ test {\iffieldundef{journaltitle}}% @@ -2221,9 +2306,7 @@ \newunit\newblock \usebibmacro{treatyinfo}% \newunit\newblock - \usebibmacro{treaty:year+vol+report}% - \newunit\newblock - \newunit\newblock} + \usebibmacro{treaty:year+vol+report}} \newbibmacro{treaty:year+vol+report}{% \iffieldequals{journaltitle}{\officialjournaltitle} @@ -2238,7 +2321,7 @@ {} {\newunit \printfield{series}% - \setunit{\addspace}} + \setunit{\addspace}}% \printfield{pages}}}% \newbibmacro*{treaty:date}{% @@ -2380,7 +2463,7 @@ \renewcommand\bbx@eudirs{eulegislation} \renewcommand\bbx@eudecs{eulegislation} \renewcommand\bbx@echrtreaty{echrtreaty} -\renewcommand\bbx@piltreaty{treaty} +\renewcommand\bbx@piltreaty{piltreaty} \renewcommand\bbx@otherprimleg{legislation} \renewcommand\bbx@othersecleg{legislation} \renewcommand\bbx@otherconleg{legislation} @@ -2465,8 +2548,7 @@ {}% \ifboolexpr{ test {\ifentrytype{legal}}% and test {\iffieldequals{entrysubtype}{\treatysubtype}} }% - {\ifkeyword{int}{\renewcommand{\bbx@relevantindex}{[\bbx@piltreaty]}}{}% - \ifkeyword{echr}{\renewcommand{\bbx@relevantindex}{[\bbx@echrtreat]}}{}}{}% + {\ifkeyword{echr}{\renewcommand{\bbx@relevantindex}{[\bbx@echrtreaty]}}{\renewcommand{\bbx@relevantindex}{[\bbx@piltreaty]}}}{}% \iffieldequals{entrysubtype}{\parliamentarytype}% {\renewcommand{\bbx@relevantindex}{[\bbx@gbparltmat]}}% {}% @@ -2710,7 +2792,10 @@ \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{misc:index}{% + \iffieldequals{entrysubtype}{\undoctype} + {\usebibmacro{undoc:index}} + {\usebibmacro{default:index}}} \DeclareBibliographyDriver{booklet:index}{\usebibmacro{default:index}} \DeclareBibliographyDriver{techreport:index}{\usebibmacro{default:index}} \DeclareBibliographyDriver{manual:index}{\usebibmacro{default:index}} @@ -2813,9 +2898,14 @@ \newcommand{\printindexearly}{} \AtEndPreamble{% - \@ifpackageloaded{imakeidx} - {\renewcommand{\printindexearly}[1][\jobname]{% - \@ifundefined{#1@idxfile}{\imki@error{#1}}{\bbx@putimindex{#1}}}} + \@ifpackageloaded{imakeidx}{ + \ifimki@splitindex + \renewcommand{\printindexearly}[1][\jobname]{% + \@ifundefined{#1@idxfile}{\imki@error{#1}}{\bbx@putimindextosplit{#1}}} + \else + \renewcommand{\printindexearly}[1][\jobname]{% + \@ifundefined{#1@idxfile}{\imki@error{#1}}{\bbx@putimindex{#1}}} + \fi} {\@ifpackageloaded{index} {\renewcommand{\printindexearly}{\@printindex}} {\renewcommand{\printindexearly}[1]{\PackageError{biblatex-oscola}{You need to load either the imakeidx or index package:}}}}} @@ -2839,6 +2929,25 @@ \@input@{#1.ind} \let\indexname\imki@indexname } +\newcommand{\bbx@putimindextosplit}[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@{\jobname-#1.ind} + \let\indexname\imki@indexname +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -2846,6 +2955,11 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DeclareLabeltitle[misc]{% + \field{shorttitle} + \field{titleaddon} + \field{title}} + \DeclareSourcemap{ \maps[datatype=bibtex]{ \map[overwrite=false]{ @@ -3127,6 +3241,37 @@ \step[fieldsource=tabulate, fieldtarget=usera] } -}} + \map[overwrite=false]{ + \pertype{misc} + \step[fieldsource=entrysubtype, + match={undoc}, + final=true] + \step[fieldsource=instrument_no, + fieldtarget=titleaddon, + origfieldval=true] + \step[fieldsource=doc_no, + fieldtarget=number, + origfieldval=true] + } + \map[overwrite]{ + \pertype{misc} + \step[fieldsource=institution, + fieldset=scratch, + origfieldval=true, + append=true] + \step[fieldsource=titleaddon, + fieldset=scratch, + origfieldval=true, + append=true] + } + \map[overwrite=false]{ + \pertype{misc} + \step[fieldsource=scratch] + \step[fieldsource=title] + \step[fieldset=indextitle, + origfieldval=true] + } + } +} \endinput
\ No newline at end of file |