% $Id: biblatex.def,v 0.8e 2009/07/04 15:02:31 lehman beta $ \ProvidesFile{biblatex.def} [\abx@rcsid $Id: biblatex.def,v 0.8e 2009/07/04 15:02:31 lehman beta $ biblatex generic definitions] % ------------------------------------------------------------------ % ADDITIONAL PACKAGE OPTIONS % ------------------------------------------------------------------ % arXiv path/format selector: % abs = link to abstract page % ps = link to PostScript version % pdf = link to PDF version % format = link to format selector \DeclareBibliographyOption{arxiv}{\def\bbx@arxivpath{#1}} \newcommand*{\bbx@arxivpath}{abs} % ------------------------------------------------------------------ % FORMATTING COMMANDS % ------------------------------------------------------------------ % Generic formatting commands and hooks % ------------------------------------------------------------------ % Used in citations, bibliography, list of shorthands \newcommand*{\bibleftparen}{(} \newcommand*{\bibrightparen}{)\midsentence} \newcommand*{\bibleftbracket}{[} \newcommand*{\bibrightbracket}{]\midsentence} \newcommand*{\bibellipsis}{[\textellipsis\unkern]\midsentence} \newcommand*{\mkbibnamefirst}[1]{#1} \newcommand*{\mkbibnamelast}[1]{#1} \newcommand*{\mkbibnameprefix}[1]{#1} \newcommand*{\mkbibnameaffix}[1]{#1} % Delimiters used in citations, bibliography, list of shorthands \newcommand*{\multinamedelim}{\addcomma\space} \newcommand*{\finalnamedelim}{% \ifnum\value{liststop}>2 \finalandcomma\fi \addspace\bibstring{and}\space} \newcommand*{\revsdnamedelim}{} \newcommand*{\andothersdelim}{\addspace} \newcommand*{\multilistdelim}{\addcomma\space} \newcommand*{\finallistdelim}{% \ifnum\value{liststop}>2 \finalandcomma\fi \addspace\bibstring{and}\space} \newcommand*{\andmoredelim}{\addspace} % Used in citations \newcommand*{\multicitedelim}{\addsemicolon\space} \newcommand*{\compcitedelim}{\addcomma\space} \newcommand*{\supercitedelim}{\addcomma} \newcommand*{\prenotedelim}{\addspace\midsentence} \newcommand*{\postnotedelim}{\addcomma\space} \newcommand*{\nameyeardelim}{\addspace} % Used in the bibliography and the list of shorthands \newcommand*{\newunitpunct}{\addperiod\space} \newcommand*{\entrysetpunct}{\addsemicolon\space} \newcommand*{\finentrypunct}{\addperiod} \newcommand*{\labelnamepunct}{\newunitpunct} \newcommand*{\subtitlepunct}{\newunitpunct} \newcommand*{\bibpagespunct}{\addcomma\space} \newcommand*{\bibnamedash}{% \ifdim\leftmargin<0.75em \mbox{\textemdash\space}% \else \makebox[\leftmargin][l]{% \ifdim\leftmargin<1.25em \textendash \else \textemdash \fi}% \fi} % \bibsetup is a generic hook controlling the (low-level) layout of % the bibliography and the list of shorthands. The default % definition should work fine in most cases. \newcommand*{\bibsetup}{% \interlinepenalty=5000\relax \widowpenalty=10000\relax \clubpenalty=10000\relax \biburlsetup \raggedbottom \frenchspacing \sloppy} % The penalties above are not specific to biblatex. These are % low-level TeX features. \interlinepenalty is the penalty assigned % to page breaks within a paragraph (i.e., in this case, a % bibliography entry); \clubpenalty is an additional penalty % assigned to page breaks after the first line of a paragraph; % \widowpenalty is an additional penalty assigned to page breaks % before the last line of a paragraph. Note that the value 10000 % means 'infinite' as far as TeX is concerned. Setting a penalty to % 10000 will unconditionally suppress the respective breakpoint. % % The net effect of the above settings is as follows. Breaking a % bibliography entry across pages is discouraged, but not suppressed % altogether. If a bibliography entry spans less than four lines, % TeX will always keep it on one page. If it spans four or more % lines, it may be broken across pages, provided that there are at % least two lines on the page before and after the break. % % These penalties should normally be used in conjunction with % \raggedbottom. If you don't like that and remove \raggedbottom % from the definition of \bibsetup, make sure to provide some % stretchability between bibliography entries by setting \bibitemsep % to a suitable value, e.g.: % % \setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip} % % Using \frenchspacing in the bibliography is recommended. If you % want more visual separation, try the package option 'block=space'. % This will yield better results than \nonfrenchspacing. % \citesetup is a generic hook for citations. \newcommand*{\citesetup}{% \biburlsetup \frenchspacing} % Local setup for \url; see comments in url.sty for details. \newcommand*{\biburlsetup}{% \Urlmuskip=0mu plus 2mu\relax \mathchardef\UrlBreakPenalty=200\relax \mathchardef\UrlBigBreakPenalty=100\relax \mathchardef\UrlEmergencyPenalty=9000\relax \appto\UrlSpecials{% \do\0{\mathchar`\0\penalty\UrlEmergencyPenalty}% \do\1{\mathchar`\1\penalty\UrlEmergencyPenalty}% \do\2{\mathchar`\2\penalty\UrlEmergencyPenalty}% \do\3{\mathchar`\3\penalty\UrlEmergencyPenalty}% \do\4{\mathchar`\4\penalty\UrlEmergencyPenalty}% \do\5{\mathchar`\5\penalty\UrlEmergencyPenalty}% \do\6{\mathchar`\6\penalty\UrlEmergencyPenalty}% \do\7{\mathchar`\7\penalty\UrlEmergencyPenalty}% \do\8{\mathchar`\8\penalty\UrlEmergencyPenalty}% \do\9{\mathchar`\9\penalty\UrlEmergencyPenalty}}% \def\UrlBreaks{% \do\.\do\@\do\/\do\\\do\!\do\_\do\|\do\;\do\>\do\]\do\)\do\}% \do\,\do\?\do\'\do\+\do\=\do\#\do\$\do\&\do\*\do\^\do\"}% \def\UrlBigBreaks{\do\:\do\-}} % The above code allows linebreaks after numbers as a last resort. % This is often the only way to break DOIs. It also allows breaks % after hyphens and adjusts \Urlmuskip to add some stretchability % to URLs. % The default font of the bibliography and the list of shorthands. % We simply reset the current font to the global defaults. \newcommand*{\bibfont}{\normalfont\normalsize} % Some length registers which may be used to fine-tune the % (high-level) layout of the bibliography. \setlength{\bibhang}{\parindent} \setlength{\biblabelsep}{2\labelsep} \setlength{\bibitemsep}{\itemsep} \setlength{\bibnamesep}{0pt} \setlength{\bibinitsep}{0pt} \setlength{\bibparsep}{0pt} % Miscellaneous facilities % ------------------------------------------------------------------ % The counter 'abbrvpenalty' holds the penalty used in short or % abbreviated bibliography strings. For example, a linebreak in % expressions such as "et al." or "ed. by" is unfortunate, but should % still be possible to prevent overfull boxes. We use TeX's % \hyphenpenalty (normally 50) as the default value. The idea is % making TeX treat the whole expression as if it were a single, % hyphenatable word as far as line-breaking is concerned. If you % dislike such linebreaks, use a higher value. If you do not mind % them at all, set this counter to zero. If you want to suppress them % unconditionally, set it to 10000. \setcounter{abbrvpenalty}{\hyphenpenalty} % The counter 'highnamepenalty' also holds a penalty affecting the % line-breaking of names. This penalty is inserted between smaller % chunks of a name, for example between the first and the middle % name. The default value is \hyphenpenalty. If you dislike such % linebreaks, use a higher value. If you do not mind them at all, % set this counter to zero. If you prefer the traditional BibTeX % behavior, set it to 10000. \setcounter{highnamepenalty}{\hyphenpenalty} % The counter 'lownamepenalty' holds a penalty which affects the % line-breaking of names. This penalty is inserted between larger % chunks of a name, for example between the chunk consisting of all % first names and the last name. The default value is half the % \hyphenpenalty. If you dislike such linebreaks, use a higher % value. If you do not mind them at all, set this counter to zero. \setcounter{lownamepenalty}{\numexpr\hyphenpenalty/2\relax} % Note that default values assigned to the above counters are % deliberately very low to prevent overfull boxes. This implies that % you will hardly notice any effect on line-breaking if the text is % set justified. If you set these counters to 10000 to suppress the % respective breakpoints, you will notice their effect but you may % also be confronted with overfull boxes. Keep in mind that % line-breaking in the bibliography is often more difficult than in % the body text and that you can not resort to rephrasing a % sentence. In some cases it may be preferable to set the entire % bibliography \raggedright (by modifying \bibsetup) to prevent % suboptimal linebreaks. In this case, even the very low default % penalties will make a visible difference. % File name prefixes for external abstracts and annotations \newcommand*{\bibabstractprefix}{bibabstract-} \newcommand*{\bibannotationprefix}{bibannotation-} % Print acronyms in small caps if possible \newcommand*{\mkbibacro}[1]{% \ifcsundef{\f@encoding/\f@family/\f@series/sc} {#1} {\textsc{\MakeLowercase{#1}}}} % FIELD FORMATS (#1 is the value of the field) % ------------------------------------------------------------------ % The fallback used by \printfield \DeclareFieldFormat{default}{#1} % The default used by \citefield \DeclareFieldFormat{citefield}{#1} % Used in citations \DeclareFieldFormat{citetitle}{\mkbibemph{#1}} \DeclareFieldFormat[article]{citetitle}{\mkbibquote{#1}} \DeclareFieldFormat[inbook]{citetitle}{\mkbibquote{#1}} \DeclareFieldFormat[incollection]{citetitle}{\mkbibquote{#1}} \DeclareFieldFormat[inproceedings]{citetitle}{\mkbibquote{#1}} \DeclareFieldFormat[patent]{citetitle}{\mkbibquote{#1}} \DeclareFieldFormat[thesis]{citetitle}{\mkbibquote{#1}} \DeclareFieldFormat[unpublished]{citetitle}{\mkbibquote{#1}} \DeclareFieldFormat{labelyear}{\mkbibemph{\mknumalph{#1}}}% = the 'a' in 'Jones 1995a' \DeclareFieldFormat{labelalpha}{#1}% = the 'Jon95' part of 'Jon95a' \DeclareFieldFormat{extraalpha}{\mknumalph{#1}}% = the 'a' in 'Jon95a' \DeclareFieldFormat{shorthand}{#1\isdot} \DeclareFieldFormat{shorthandintro}{% \ifcapital{\MakeCapital{#1}}{#1}\isdot} % citation commands \DeclareFieldFormat{prenote}{#1\isdot} \DeclareFieldFormat{postnote}{\mkpageprefix[pagination]{#1}} % multicite commands \DeclareFieldFormat{multiprenote}{#1\isdot} \DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination]{#1}} % Used by \citeurl \DeclareFieldFormat{citeurl}{\url{#1}} % Used in the bibliography and the list of shorthands \DeclareFieldFormat{booktitle}{\mkbibemph{#1}} \DeclareFieldFormat{chapter}{\bibstring{chapter}~#1} \DeclareFieldFormat{doi}{% \mkbibacro{DOI}\addcolon\space \ifhyperref {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}} {\nolinkurl{#1}}} \DeclareFieldFormat{edition}{% \ifinteger{#1} {\mkbibordedition{#1}~\bibstring{edition}} {#1}} \DeclareFieldFormat{eprint}{% \iffieldundef{eprinttype} {eprint} {\thefield{eprinttype}}% \addcolon\space\nolinkurl{#1}} \DeclareFieldFormat{eprint:arxiv}{% arXiv\addcolon\space \ifhyperref {\href{http://arxiv.org/\bbx@arxivpath/#1}{\nolinkurl{#1}}} {\nolinkurl{#1}}} \DeclareFieldFormat{file}{\url{#1}} \DeclareFieldFormat{isbn}{\mkbibacro{ISBN}\addcolon\space #1} \DeclareFieldFormat{isrn}{\mkbibacro{ISRN}\addcolon\space #1} \DeclareFieldFormat{issn}{\mkbibacro{ISSN}\addcolon\space #1} \DeclareFieldFormat{journaltitle}{\mkbibemph{#1}} \DeclareFieldFormat{issuetitle}{\mkbibemph{#1}} \DeclareFieldFormat{maintitle}{\mkbibemph{#1}} \DeclareFieldFormat{month}{\mkbibmonth{#1}} \DeclareFieldFormat{number}{#1}% number in a series \DeclareFieldFormat[article]{number}{#1}% number of a journal \DeclareFieldFormat{pages}{\mkpageprefix[bookpagination]{#1}} \DeclareFieldFormat{pagetotal}{\mkpagetotal[bookpagination]{#1}} \DeclareFieldFormat{part}{.#1}% physical part of a logical volume \DeclareFieldFormat{series}{#1}% publication series \DeclareFieldFormat[article]{series}{% series of a journal \ifinteger{#1} {\mkbibordseries{#1}~\bibstring{jourser}} {\ifbibstring{#1}{\bibstring{#1}}{#1}}} \DeclareFieldFormat{title}{\mkbibemph{#1}} \DeclareFieldFormat[article]{title}{\mkbibquote{#1}} \DeclareFieldFormat[inbook]{title}{\mkbibquote{#1}} \DeclareFieldFormat[incollection]{title}{\mkbibquote{#1}} \DeclareFieldFormat[inproceedings]{title}{\mkbibquote{#1}} \DeclareFieldFormat[patent]{title}{\mkbibquote{#1}} \DeclareFieldFormat[thesis]{title}{\mkbibquote{#1}} \DeclareFieldFormat[unpublished]{title}{\mkbibquote{#1}} \DeclareFieldFormat{type}{\ifbibstring{#1}{\bibstring{#1}}{#1}} \DeclareFieldFormat{url}{\mkbibacro{URL}\addcolon\space\url{#1}} \DeclareFieldFormat{urldate}{\mkbibparens{\bibstring{urlseen}\space#1}} \DeclareFieldFormat{version}{\bibstring{version}~#1} \DeclareFieldFormat{volume}{\bibstring{volume}~#1}% volume of a book \DeclareFieldFormat[article]{volume}{#1}% volume of a journal \DeclareFieldFormat{volumes}{#1~\bibstring{volumes}} \DeclareFieldAlias[periodical]{number}[article]{number} \DeclareFieldAlias[periodical]{series}[article]{series} \DeclareFieldAlias[periodical]{volume}[article]{volume} % Generic formats for \printtext \DeclareFieldFormat{emph}{\mkbibemph{#1}} \DeclareFieldFormat{bold}{\textbf{#1}} \DeclareFieldFormat{smallcaps}{\textsc{#1}} \DeclareFieldFormat{parens}{\mkbibparens{#1}} \DeclareFieldFormat{brackets}{\mkbibbrackets{#1}} \DeclareFieldFormat{bibhyperref}{\bibhyperref{#1}} \DeclareFieldFormat{bibhyperlink}{\bibhyperlink{\thefield{entrykey}}{#1}} \DeclareFieldFormat{bibhypertarget}{\bibhypertarget{\thefield{entrykey}}{#1}} \DeclareFieldFormat{titlecase}{#1} \DeclareFieldFormat{noformat}{#1} % ------------------------------------------------------------------ % LITERAL LIST FORMATS (#1 is the current item) % ------------------------------------------------------------------ % Formatting directives for literal lists % ------------------------------------------------------------------ % The fallback used by \printlist \DeclareListFormat{default}{% \usebibmacro{list:delim}{#1}% #1\isdot \usebibmacro{list:andothers}} % The default used by \citelist \DeclareListAlias{citelist}{default} % Used in the bibliography \DeclareListFormat{publisher}{% \usebibmacro{list:delim}{#1}% #1\isdot \usebibmacro{list:andothers}} \DeclareListFormat{language}{% \usebibmacro{list:delim}{% \ifbibstring{#1} {\bibxstring{#1}} {\ifbibstring{lang#1} {\bibxstring{lang#1}} {#1}}}% \ifbibstring{#1} {\bibstring{#1}} {\ifbibstring{lang#1} {\bibstring{lang#1}} {#1}}% \usebibmacro{list:andothers}} \DeclareListFormat{location}{% \usebibmacro{list:delim}{#1}% #1\isdot \usebibmacro{list:andothers}} \DeclareListFormat[patent]{location}{% \usebibmacro{list:plain}% \ifbibstring{#1}{\bibstring{#1}}{#1\isdot}% \usebibmacro{list:andothers}} \DeclareListFormat{pageref}{% \ifnum\value{listcount}=1\relax \usebibmacro{pagerange:init}% \fi \usebibmacro{pagerange:comp}{#1}% \ifthenelse{\value{listcount}=\value{liststop}} {\usebibmacro{pagerange:dump}} {}} \DeclareListAlias{origlocation}{location} \DeclareListAlias{origpublisher}{publisher} \DeclareListAlias{institution}{default} \DeclareListAlias{organization}{default} % Auxiliary macros for list formatting directives % ------------------------------------------------------------------ \newbibmacro*{list:delim}[1]{% \ifthenelse{\value{listcount}>\value{liststart}} {\ifthenelse{\value{listcount}<\value{liststop}\OR \ifmoreitems} {\multilistdelim} {\mkfinallistdelim{#1}}} {}} \newbibmacro*{list:plain}{% \ifthenelse{\value{listcount}>\value{liststart}} {\multilistdelim} {}} \newbibmacro*{list:andothers}{% \ifthenelse{\value{listcount}=\value{liststop}\AND \ifmoreitems} {\ifnum\value{liststop}>1 \finalandcomma\fi \andmoredelim\bibstring{andmore}} {}} \newbibmacro*{pagerange:init}{% \@tempcnta\z@ \@tempcntb-2\relax} \newbibmacro*{pagerange:comp}[1]{% \advance\@tempcntb\@ne \ifinteger{#1} {\ifnum#1=\@tempcntb \def\pagerange@lastnumber{#1}% \advance\@tempcnta\@ne \else \usebibmacro{pagerange:dump}% \ifnum\@tempcntb>\m@ne\multilistdelim\fi \ifhyperref {\hyperlink{page.#1}{#1}} {#1}% \fi \@tempcntb#1\relax} {\usebibmacro{pagerange:dump}% \ifnum\@tempcntb>\m@ne\multilistdelim\fi \ifhyperref {\hyperlink{page.#1}{#1}} {#1}% \@tempcntb\m@ne}} \newbibmacro*{pagerange:dump}{% \ifnum\@tempcnta>\z@ \ifnum\@tempcnta>\@ne \bibrangedash \else \multilistdelim \fi \ifhyperref {\hyperlink{page.\pagerange@lastnumber}{\pagerange@lastnumber}} {\pagerange@lastnumber}% \@tempcnta\z@ \fi} % ------------------------------------------------------------------ % NAME LIST FORMATS % ------------------------------------------------------------------ % Argments passed to formatting directives for name lists: % % #1 = last name % #2 = last name (initials) % #3 = first name % #4 = first name (initials) % #5 = name prefix, a.k.a. 'von part' % #6 = name prefix (initials) % #7 = name affix, a.k.a. 'junior part' % #8 = name affix (initials) % Formatting directives for name lists % ------------------------------------------------------------------ % The fallback used by \printnames \DeclareNameFormat{default}{% \iffirstinits {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}} {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}% \usebibmacro{name:andothers}} % The default used by \citename \DeclareNameAlias{citename}{default} % Used in all citations \DeclareNameFormat{labelname}{% \ifcase\value{uniquename}% \usebibmacro{name:last}{#1}{#3}{#5}{#7}% \or \ifuseprefix {\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}} {\usebibmacro{name:first-last}{#1}{#4}{#6}{#8}}% \or \usebibmacro{name:first-last}{#1}{#3}{#5}{#7}% \fi \usebibmacro{name:andothers}} % Used in the bibliography \DeclareNameFormat{sortname}{% \ifnum\value{listcount}=1\relax \iffirstinits {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% \ifblank{#3#5} {} {\usebibmacro{name:revsdelim}}% \else \iffirstinits {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}} {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}% \fi \usebibmacro{name:andothers}} % Not used by default \DeclareNameFormat{initsonly}{% \usebibmacro{name:first-last}{#2}{#4}{#6}{#8}% \usebibmacro{name:andothers}} \DeclareNameAlias{author}{sortname} \DeclareNameAlias{byauthor}{default} % if editor replaces author, i.e. is given first ("Doe, John, ed.") \DeclareNameAlias{editor}{sortname} % if editor is printed in addition to author ("Edited by John Doe") \DeclareNameAlias{byeditor}{default} % if translator replaces author \DeclareNameAlias{translator}{sortname} % if translator is printed in addition to author \DeclareNameAlias{bytranslator}{default} \DeclareNameAlias{bybookauthor}{default} \DeclareNameAlias{byredactor}{default} \DeclareNameAlias{withcommentator}{default} \DeclareNameAlias{withannotator}{default} \DeclareNameAlias{withintroduction}{default} \DeclareNameAlias{withforeword}{default} \DeclareNameAlias{withafterword}{default} % Auxiliary macros for name formatting directives % ------------------------------------------------------------------ \newbibmacro*{name:last}[4]{% \ifuseprefix {\usebibmacro{name:delim}{#3#1}% \usebibmacro{name:hook}{#3#1}% \ifblank{#3} {} {\ifcapital {\mkbibnameprefix{\MakeCapital{#3}}\isdot} {\mkbibnameprefix{#3}\isdot}% \ifpunctmark{'}{}{\addhighpenspace}}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}}% \mkbibnamelast{#1}}% \newbibmacro*{name:first-last}[4]{% \usebibmacro{name:delim}{#2#3#1}% \usebibmacro{name:hook}{#2#3#1}% \ifblank{#2}{}{\mkbibnamefirst{#2}\isdot\addlowpenspace}% \ifblank{#3}{}{% \mkbibnameprefix{#3}\isdot \ifpunctmark{'} {} {\ifuseprefix{\addhighpenspace}{\addlowpenspace}}}% \mkbibnamelast{#1}\isdot \ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}} \newbibmacro*{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{'}{}{\addhighpenspace}}% \mkbibnamelast{#1}\isdot \ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}% \ifblank{#2}{}{\addcomma\addlowpenspace\mkbibnamefirst{#2}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% \mkbibnamelast{#1}\isdot \ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}% \ifblank{#2#3}{}{\addcomma}% \ifblank{#2}{}{\addlowpenspace\mkbibnamefirst{#2}\isdot}% \ifblank{#3}{}{\addlowpenspace\mkbibnameprefix{#3}\isdot}}} \newbibmacro*{name:hook}[1]{% \ifnum\value{listcount}=1 % \mkinitnamehook{#1}% \fi} \newbibmacro*{name:delim}[1]{% \ifthenelse{\value{listcount}>\value{liststart}} {\ifthenelse{\value{listcount}<\value{liststop}\OR \ifmorenames} {\multinamedelim} {\mkfinalnamedelim{#1}}} {}} \newbibmacro*{name:revsdelim}{% \ifthenelse{\(\value{liststop}=1\AND\ifmorenames\)\OR \value{liststop}=2} {\revsdnamedelim} {}} \newbibmacro*{name:andothers}{% \ifthenelse{\value{listcount}=\value{liststop}\AND \ifmorenames} {\ifnum\value{liststop}>1 \finalandcomma\fi \andothersdelim\bibstring{andothers}} {}} % ------------------------------------------------------------------ % INDEX FORMATS FOR FIELDS (#1 is the value of the field) % ------------------------------------------------------------------ % There is no need to test if a field to be indexed is empty because % \indexfield performs this test implicitly. % The fallback used by \indexfield \DeclareIndexFieldFormat{default}{\index{#1}} % Used in the bibliography and in citations \DeclareIndexFieldFormat{indextitle}{% \usebibmacro{index:title}{\index}{#1}} \newbibmacro*{index:title}[2]{% \usebibmacro{index:field}{#1}{\thefield{indexsorttitle}}{\emph{#2}}} \newbibmacro*{index:field}[3]{% \begingroup \protected@edef\theindexentry{% \unexpanded{#1}{#2\actualoperator\unexpanded{#3}}}% \theindexentry \endgroup} % ------------------------------------------------------------------ % INDEX FORMATS FOR LITERAL LISTS (#1 is the current item) % ------------------------------------------------------------------ % The fallback used by \indexlist \DeclareIndexListFormat{default}{\index{#1}} % ------------------------------------------------------------------ % INDEX FORMATS FOR NAME LISTS % ------------------------------------------------------------------ % Argments passed to indexing directives for name lists: % % #1 = last name % #2 = last name (initials) % #3 = first name % #4 = first name (initials) % #5 = name prefix, a.k.a 'von part' % #6 = name prefix (initials) % #7 = name affix, a.k.a 'junior part' % #8 = name affix (initials) % Indexing directives for name lists % ------------------------------------------------------------------ % The fallback used by \indexnames \DeclareIndexNameFormat{default}{% \usebibmacro{index:name}{\index}{#1}{#3}{#5}{#7}} % Used in citations \DeclareIndexNameAlias{labelname}{default} % Used in the bibliography \DeclareIndexNameAlias{author}{default} \DeclareIndexNameAlias{editor}{default} \DeclareIndexNameAlias{bookauthor}{default} % Auxiliary macros for name indexing directives % ------------------------------------------------------------------ % When generating an index entry, we need to test which parts of a % name are actually available to prevent spurious punctuation and % spaces. Since those parts which are not available yield an empty % argument, we can use the \ifblank test from etoolbox.sty to analyze % the name. % % Note that the standard LaTeX \index command simply writes its % argument to the .idx file without preventing expansion. This means % that all \ifblank tests are expanded on the way and will not end % up in the index. The index package, however, prevents expansion. % This would lead to \ifblank ending up in the .idx file. To avoid % that, we preprocess the index entry inside an \edef. We use % \unexpanded to protect the \index command and the actual data from % expansion. This definition will work with both index.sty and the % standard indexing facilities. % % We also use \ifuseprefix to ensure that the name prefix is handled % properly. \actualoperator is the so-called actual operator, as % defined by the 'actual' specifier in the .ist file. The makeindex % programm will use the part preceeding the \actualoperator % delimiter for sorting. The part after the delimiter is used as the % index is printed. Note that this is not specific to biblatex, see % the makeindex documentation for details. \newcommand*{\actualoperator}{@} \newbibmacro*{index:name}[5]{% \begingroup \ifuseprefix {\edef\theindexentry{% \unexpanded{#1}{% \ifblank{#4}{}{\unexpanded{#4} }% \expandonce{\@firstofone #2}% remove spurious braces \ifblank{#5}{}{ \unexpanded{#5}}% \ifblank{#3}{}{, \unexpanded{#3}}% \actualoperator \ifblank{#4}{}{\unexpanded{\MakeCapital{#4}} }% \unexpanded{#2}% \ifblank{#5}{}{ \unexpanded{#5}}% \ifblank{#3}{}{, \unexpanded{#3}}}}} {\edef\theindexentry{% \unexpanded{#1}{% \expandonce{\@firstofone #2}% remove spurious braces \ifblank{#5}{}{ \unexpanded{#5}}% \ifblank{#3#4}{}{,}% \ifblank{#3}{}{ \unexpanded{#3}}% \ifblank{#4}{}{ \unexpanded{#4}}}}}% \theindexentry \endgroup} % ------------------------------------------------------------------ % MISCELLANEOUS % ------------------------------------------------------------------ \newcommand*{\lbx@fromlang}{% \iffieldundef{origlanguage} {\unspace} {\bibstring{from\thefield{origlanguage}}}} \newcommand*{\lbx@bytypeauthor}{% \iffieldundef{authortype} {\bibstring{bytypeauthor}} {\bibstring{bytype\thefield{authortype}}}} \newcommand*{\lbx@bytypeeditor}{% \iffieldundef{editortype} {\bibstring{bytypeeditor}} {\bibstring{bytype\thefield{editortype}}}} \newcommand*{\lbx@bytypeeditora}{% \iffieldundef{editortype} {\bibstring{bytypeeditora}} {\bibstring{bytype\thefield{editortype}a}}} \newcommand*{\lbx@bytypeeditorb}{% \iffieldundef{editortype} {\bibstring{bytypeeditorb}} {\bibstring{bytype\thefield{editortype}b}}} \newcommand*{\lbx@typeeditor}{% \iffieldundef{editortype} {\bibstring{typeeditor}} {\bibstring{type\thefield{editortype}}}} \newcommand*{\lbx@typeeditors}{% \iffieldundef{editortype} {\bibstring{typeeditors}} {\bibstring{type\thefield{editortype}s}}} \newcommand*{\mkfinalnamedelim}[1]{\finalnamedelim} \newcommand*{\mkfinallistdelim}[1]{\finallistdelim} \newcommand*{\mkinitnamehook}[1]{} % ordinals \newcommand*{\mkbibordedition}{\mkbibordinal} \newcommand*{\mkbibordseries}{\mkbibordinal} % american \newrobustcmd*{\uspunctuation}{% \DeclareQuotePunctuation{.,}% \DeclarePunctuationPairs{comma}{*}} \newrobustcmd*{\stdpunctuation}{% \DeclareQuotePunctuation{}% \DeclarePunctuationPairs{comma}{*!?}} % french \newtoggle{smartof} \newrobustcmd*{\smartof}{\global\toggletrue{smartof}} \newrobustcmd*{\forceD}[1]{#1} \newrobustcmd*{\forceDE}[1]{#1} \AtBeginDocument{% \@ifpackageloaded{babel} {\ifdef\AutoSpaceBeforeFDP {\newrobustcmd*{\EnsureAutoSpaceBeforeFDP}{% \iflanguage{french} {\AutoSpaceBeforeFDP} {}}% \appto\bibsetup{\EnsureAutoSpaceBeforeFDP}% \appto\citesetup{\EnsureAutoSpaceBeforeFDP}} {}} {}} % spanish \newcounter{smartand} \setcounter{smartand}{1} \newrobustcmd*{\forceY}[1]{#1} \newrobustcmd*{\forceE}[1]{#1} % ------------------------------------------------------------------ % PREDEFINED HEADINGS % ------------------------------------------------------------------ \@ifclassloaded{article} {\@tempcnta=0\relax} {\@ifclassloaded{book} {\@tempcnta=1\relax} {\@ifclassloaded{report} {\@tempcnta=1\relax} {\@ifclassloaded{scrartcl} {\@tempcnta=2\relax} {\@ifclassloaded{scrbook} {\@tempcnta=3\relax} {\@ifclassloaded{scrreprt} {\@tempcnta=3\relax} {\@ifclassloaded{memoir} {\ifartopt \@tempcnta=4\relax \else \@tempcnta=5\relax \fi} {\ifundef\chapter {\@tempcnta=0\relax} {\@tempcnta=1\relax}}}}}}}} \ifcase\@tempcnta % article \defbibheading{bibliography}{% \section*{\refname}% \@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}} \defbibheading{shorthands}{% \section*{\losname}% \@mkboth{\MakeUppercase{\losname}}{\MakeUppercase{\losname}}} \defbibheading{bibintoc}{% \section*{\refname}% \addcontentsline{toc}{section}{\refname}% \@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}} \defbibheading{losintoc}{% \section*{\losname}% \addcontentsline{toc}{section}{\losname}% \@mkboth{\MakeUppercase{\losname}}{\MakeUppercase{\losname}}} \defbibheading{bibnumbered}{% \section{\refname}% \if@twoside\markright{\MakeUppercase{\refname}}\fi} \defbibheading{losnumbered}{% \section{\losname}% \if@twoside\markright{\MakeUppercase{\losname}}\fi} \defbibheading{subbibliography}{% \subsection*{\refname}} \defbibheading{subbibintoc}{% \subsection*{\refname}% \addcontentsline{toc}{subsection}{\refname}} \defbibheading{subbibnumbered}{% \subsection{\refname}} \or % book/report \defbibheading{bibliography}{% \chapter*{\bibname}% \@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}} \defbibheading{shorthands}{% \chapter*{\losname}% \@mkboth{\MakeUppercase{\losname}}{\MakeUppercase{\losname}}} \defbibheading{bibintoc}{% \chapter*{\bibname}% \addcontentsline{toc}{chapter}{\bibname}% \@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}} \defbibheading{losintoc}{% \chapter*{\losname}% \addcontentsline{toc}{chapter}{\losname}% \@mkboth{\MakeUppercase{\losname}}{\MakeUppercase{\losname}}} \defbibheading{bibnumbered}{% \chapter{\bibname}% \if@twoside\markright{\MakeUppercase{\bibname}}\fi} \defbibheading{losnumbered}{% \chapter{\losname}% \if@twoside\markright{\MakeUppercase{\losname}}\fi} \defbibheading{subbibliography}{% \section*{\bibname}% \if@twoside\markright{\MakeUppercase{\bibname}}\fi} \defbibheading{subbibintoc}{% \section*{\bibname}% \addcontentsline{toc}{section}{\bibname}% \if@twoside\markright{\MakeUppercase{\bibname}}\fi} \defbibheading{subbibnumbered}{% \section{\bibname}} \or % scrartcl \defbibheading{bibliography}{% \ifkomabibtotocnumbered {\section{\refname}} {\ifkomabibtotoc {\addsec{\refname}} {\section*{\refname}}% \@mkboth{\refname}{\refname}}} \defbibheading{shorthands}{% \ifkomabibtotocnumbered {\section{\losname}} {\ifkomabibtotoc {\addsec{\losname}} {\section*{\losname}}% \@mkboth{\losname}{\losname}}} \defbibheading{bibintoc}{% \addsec{\refname}% \@mkboth{\refname}{\refname}} \defbibheading{losintoc}{% \addsec{\losname}% \@mkboth{\losname}{\losname}} \defbibheading{bibnumbered}{% \section{\refname}% \@mkboth{\sectionmarkformat\refname}{\sectionmarkformat\refname}} \defbibheading{losnumbered}{% \section{\losname}% \@mkboth{\sectionmarkformat\losname}{\sectionmarkformat\losname}} \defbibheading{subbibliography}{\subsection*{\refname}} \defbibheading{subbibintoc}{% \subsection*{\refname}% \addcontentsline{toc}{subsection}{\refname}} \defbibheading{subbibnumbered}{\subsection{\refname}} \or % scrbook/scrreprt \defbibheading{bibliography}{% \ifkomabibtotocnumbered {\chapter{\bibname}} {\ifkomabibtotoc {\addchap{\bibname}} {\chapter*{\bibname}}% \@mkboth{\bibname}{\bibname}}} \defbibheading{shorthands}{% \ifkomabibtotocnumbered {\chapter{\losname}} {\ifkomabibtotoc {\addchap{\losname}} {\chapter*{\losname}}% \@mkboth{\losname}{\losname}}} \defbibheading{bibintoc}{% \addchap{\bibname}% \@mkboth{\bibname}{\bibname}} \defbibheading{losintoc}{% \addchap{\losname}% \@mkboth{\losname}{\losname}} \defbibheading{bibnumbered}{% \chapter{\bibname}% \@mkboth{\chaptermarkformat\bibname}{\chaptermarkformat\bibname}} \defbibheading{losnumbered}{% \chapter{\losname}% \@mkboth{\chaptermarkformat\losname}{\chaptermarkformat\losname}} \defbibheading{subbibliography}{% \section*{\bibname}% \if@twoside\markright{\sectionmarkformat\bibname}\fi} \defbibheading{subbibintoc}{% \addsec{\bibname}% \@mkboth{\bibname}{\bibname}} \defbibheading{subbibnumbered}{\section{\bibname}} \or % memoir (article) \defbibheading{bibliography}{% \section*{\refname}% \ifmemoirbibintoc {\phantomsection \addcontentsline{toc}{section}{\refname}} {}% \@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}} \defbibheading{shorthands}{% \section*{\losname}% \ifmemoirbibintoc {\phantomsection \addcontentsline{toc}{section}{\losname}} {}% \@mkboth{\MakeUppercase{\losname}}{\MakeUppercase{\losname}}} \defbibheading{bibintoc}{% \section*{\refname}% \phantomsection \addcontentsline{toc}{section}{\refname}% \@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}} \defbibheading{losintoc}{% \section*{\losname}% \phantomsection \addcontentsline{toc}{section}{\losname}% \@mkboth{\MakeUppercase{\losname}}{\MakeUppercase{\losname}}} \defbibheading{bibnumbered}{\section{\refname}} \defbibheading{losnumbered}{\section{\losname}} \defbibheading{subbibliography}{% \subsection*{\refname}% \ifmemoirbibintoc {\phantomsection \addcontentsline{toc}{subsection}{\refname}} {}% \if@twoside\markright{\MakeUppercase{\refname}}\fi} \defbibheading{subbibintoc}{% \subsection*{\refname}% \phantomsection \addcontentsline{toc}{subsection}{\refname}% \if@twoside\markright{\MakeUppercase{\refname}}\fi} \defbibheading{subbibnumbered}{\subsection{\refname}} \or % memoir (book) \defbibheading{bibliography}{% \chapter*{\bibname}% \ifmemoirbibintoc {\phantomsection \addcontentsline{toc}{chapter}{\bibname}} {}% \@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}} \defbibheading{shorthands}{% \chapter*{\losname}% \ifmemoirbibintoc {\phantomsection \addcontentsline{toc}{chapter}{\losname}} {}% \@mkboth{\MakeUppercase{\losname}}{\MakeUppercase{\losname}}} \defbibheading{bibintoc}{% \chapter*{\bibname}% \phantomsection \addcontentsline{toc}{chapter}{\bibname}% \@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}} \defbibheading{losintoc}{% \chapter*{\losname}% \phantomsection \addcontentsline{toc}{chapter}{\losname}% \@mkboth{\MakeUppercase{\losname}}{\MakeUppercase{\losname}}} \defbibheading{bibnumbered}{% \chapter{\bibname}% \if@twoside\markright{\MakeUppercase{\bibname}}\fi} \defbibheading{losnumbered}{% \chapter{\losname}% \if@twoside\markright{\MakeUppercase{\losname}}\fi} \defbibheading{subbibliography}{% \section*{\bibname}% \ifmemoirbibintoc {\phantomsection \addcontentsline{toc}{section}{\bibname}} {}% \if@twoside\markright{\MakeUppercase{\bibname}}\fi} \defbibheading{subbibintoc}{% \section*{\bibname}% \phantomsection \addcontentsline{toc}{section}{\bibname}% \if@twoside\markright{\MakeUppercase{\bibname}}\fi} \defbibheading{subbibnumbered}{\section{\bibname}} \fi % ------------------------------------------------------------------ % GENERIC CITATION COMMANDS % ------------------------------------------------------------------ \DeclareCiteCommand{\fullcite} {\usebibmacro{prenote}} {\usedriver {\DeclareNameAlias{sortname}{default}} {\thefield{entrytype}}} {\multicitedelim} {\usebibmacro{postnote}} \DeclareCiteCommand{\footfullcite}[\mkbibfootnote] {\usebibmacro{prenote}} {\usedriver {\DeclareNameAlias{sortname}{default}} {\thefield{entrytype}}} {\multicitedelim} {\usebibmacro{postnote}} \DeclareCiteCommand{\citeauthor} {\boolfalse{citetracker}% \boolfalse{pagetracker}% \usebibmacro{prenote}} {\indexnames{labelname}% \printnames{labelname}} {\multicitedelim} {\usebibmacro{postnote}} \DeclareCiteCommand{\citetitle} {\boolfalse{citetracker}% \boolfalse{pagetracker}% \usebibmacro{prenote}} {\indexfield{indextitle}% \printfield[citetitle]{labeltitle}} {\multicitedelim} {\usebibmacro{postnote}} \DeclareCiteCommand*{\citetitle} {\boolfalse{citetracker}% \boolfalse{pagetracker}% \usebibmacro{prenote}} {\indexfield{indextitle}% \printfield[citetitle]{title}} {\multicitedelim} {\usebibmacro{postnote}} \DeclareCiteCommand{\citeyear} {\boolfalse{citetracker}% \boolfalse{pagetracker}% \usebibmacro{prenote}} {\printfield{year}} {\multicitedelim} {\usebibmacro{postnote}} \DeclareCiteCommand{\citeurl} {\boolfalse{citetracker}% \boolfalse{pagetracker}% \usebibmacro{prenote}} {\printfield[citeurl]{url}} {\multicitedelim} {\usebibmacro{postnote}} \DeclareCiteCommand{\notecite} {\printfield{prenote}% \setunit*{\prenotedelim}} {\nocite{\thefield{entrykey}}} {} {\printfield{postnote}} \DeclareCiteCommand{\pnotecite}[\mkbibparens] {\printfield{prenote}% \setunit*{\prenotedelim}} {\nocite{\thefield{entrykey}}} {} {\printfield{postnote}} \DeclareCiteCommand{\fnotecite}[\mkbibfootnote] {\printfield{prenote}% \setunit*{\prenotedelim}} {\nocite{\thefield{entrykey}}} {} {\printfield{postnote}} \newrobustcmd*{\volcite}{\volcitecmd\cite} \newrobustcmd*{\pvolcite}{\volcitecmd\parencite} \newrobustcmd*{\fvolcite}{\volcitecmd\footcite} \newrobustcmd*{\tvolcite}{\volcitecmd\textcite} \newrobustcmd*{\avolcite}{\volcitecmd\autocite} \newrobustcmd*{\Cite}{\bibsentence\cite} \newrobustcmd*{\Parencite}{\bibsentence\parencite} \newrobustcmd*{\Footcite}{\footcite} \newrobustcmd*{\Textcite}{\bibsentence\textcite} \newrobustcmd*{\Citeauthor}{\bibsentence\citeauthor} \newrobustcmd*{\Citetitle}{\bibsentence\citetitle} \newrobustcmd*{\Volcite}{\volcitecmd\Cite} \newrobustcmd*{\Pvolcite}{\volcitecmd\Parencite} \newrobustcmd*{\Fvolcite}{\volcitecmd\Footcite} \newrobustcmd*{\Tvolcite}{\volcitecmd\Textcite} \newrobustcmd*{\Avolcite}{\volcitecmd\Autocite} \newrobustcmd*{\Notecite}{\bibsentence\notecite} \newrobustcmd*{\Pnotecite}{\bibsentence\pnotecite} \newrobustcmd*{\Fnotecite}{\fnotecite} \DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim} \DeclareMultiCiteCommand{\parencites}[\mkbibparens]{\parencite}{\multicitedelim} \DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]{\footcite}{\multicitedelim} \DeclareMultiCiteCommand{\supercites}[\mkbibsuperscript]{\supercite}{\supercitedelim} \newrobustcmd*{\Cites}{\bibsentence\cites} \newrobustcmd*{\Parencites}{\bibsentence\parencites} \newrobustcmd*{\Footcites}{\footcites} \DeclareAutoCiteCommand{plain}{\cite}{\cites} \DeclareAutoCiteCommand{inline}{\parencite}{\parencites} \DeclareAutoCiteCommand{footnote}[l]{\footcite}{\footcites} \DeclareAutoCiteCommand{superscript}[l]{\supercite}{\supercites} \newrobustcmd*{\Autocite}{\bibsentence\autocite} \newrobustcmd*{\Autocites}{\bibsentence\autocites} % ------------------------------------------------------------------ % GENERIC CITATION MACROS % ------------------------------------------------------------------ \newbibmacro*{citeindex}{% \indexnames{labelname}% \indexfield{indextitle}} \newbibmacro*{shorthandintro}{% \iffieldundef{shorthandintro} {\iffieldundef{shorthand} {} {\setunit{\addspace}% \printtext[parens]{% \bibstring{citedas}\space \printfield{shorthand}}}} {\setunit{\addspace}% \printtext[parens]{\printfield{shorthandintro}}}} % citation commands \newbibmacro*{prenote}{% \iffieldundef{prenote} {} {\printfield{prenote}% \prenotedelim}} \newbibmacro*{postnote}{% \iffieldundef{postnote} {} {\postnotedelim \printfield{postnote}}} % multicite commands \newbibmacro*{multiprenote}{% \iffieldundef{multiprenote} {} {\printfield{multiprenote}% \prenotedelim}} \newbibmacro*{multipostnote}{% \iffieldundef{multipostnote} {} {\postnotedelim \printfield{multipostnote}}} % ------------------------------------------------------------------ % GENERIC BIBLIOGRAPHY MACROS % ------------------------------------------------------------------ \newbibmacro*{bibindex}{% \indexnames{labelname}% \indexfield{indextitle}} \newbibmacro*{author/editor}{% \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}} {\usebibmacro{author}} {\usebibmacro{editor}}} \newbibmacro*{author/editor+others}{% \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}} {\usebibmacro{author}} {\usebibmacro{editor+others}}} \newbibmacro*{author/translator}{% \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}} {\usebibmacro{author}} {\usebibmacro{translator}}} \newbibmacro*{author/translator+others}{% \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}} {\usebibmacro{author}} {\usebibmacro{translator+others}}} \newbibmacro*{author/editor/translator}{% \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}} {\usebibmacro{author}} {\ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}} {\usebibmacro{editor}} {\usebibmacro{translator}}}} \newbibmacro*{author/editor+others/translator+others}{% \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}} {\usebibmacro{author}} {\ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}} {\usebibmacro{editor+others}} {\usebibmacro{translator+others}}}} \newbibmacro*{author}{% \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}} {\printnames{author}% \iffieldundef{authortype} {} {\setunit{\addcomma\space}% \usebibmacro{authorstrg}}} {}} \newbibmacro*{authorstrg}{% \iffieldundef{authortype} {} {\ifthenelse{\value{author}>1\OR\ifandothers{author}} {\bibstring{type\thefield{authortype}s}} {\bibstring{type\thefield{authortype}}}}} \newbibmacro*{editor}{% \ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}} {\printnames{editor}% \setunit{\addcomma\space}% \usebibmacro{editorstrg}% \clearname{editor}} {}} \newbibmacro*{editor+others}{% \ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}} {\printnames{editor}% \setunit{\addcomma\space}% \usebibmacro{editor+othersstrg}% \clearname{editor}} {}} \newbibmacro*{editorstrg}{% \ifthenelse{\value{editor}>1\OR\ifandothers{editor}} {\bibstring{editors}} {\bibstring{editor}}} \newbibmacro*{editor+othersstrg}{% \ifthenelse{\value{editor}>1\OR\ifandothers{editor}} {\def\@tempa{editors}} {\def\@tempa{editor}}% \ifnamesequal{editor}{translator} {\appto\@tempa{tr}% \clearname{translator}} {}% \ifnamesequal{editor}{commentator} {\appto\@tempa{co}% \clearname{commentator}} {\ifnamesequal{editor}{annotator} {\appto\@tempa{an}% \clearname{annotator}} {}}% \ifnamesequal{editor}{introduction} {\appto\@tempa{in}% \clearname{introduction}} {\ifnamesequal{editor}{foreword} {\appto\@tempa{fo}% \clearname{foreword}} {\ifnamesequal{editor}{afterword} {\appto\@tempa{af}% \clearname{afterword}} {}}}% \bibstring{\@tempa}} \newbibmacro*{translator}{% \ifthenelse{\ifusetranslator\AND\NOT\ifnameundef{translator}} {\printnames{translator}% \setunit{\addcomma\space}% \usebibmacro{translatorstrg}% \clearname{translator}} {}} \newbibmacro*{translator+others}{% \ifthenelse{\ifusetranslator\AND\NOT\ifnameundef{translator}} {\printnames{translator}% \setunit{\addcomma\space}% \usebibmacro{translator+othersstrg}% \clearname{translator}} {}} \newbibmacro*{translatorstrg}{% \ifthenelse{\value{translator}>1\OR\ifandothers{translator}} {\bibstring{translators}} {\bibstring{translator}}} \newbibmacro*{translator+othersstrg}{% \ifthenelse{\value{translator}>1\OR\ifandothers{translator}} {\def\@tempa{translators}} {\def\@tempa{translator}}% \ifnamesequal{translator}{commentator} {\appto\@tempa{co}% \clearname{commentator}} {\ifnamesequal{translator}{annotator} {\appto\@tempa{an}% \clearname{annotator}} {}}% \ifnamesequal{translator}{introduction} {\appto\@tempa{in}% \clearname{introduction}} {\ifnamesequal{translator}{foreword} {\appto\@tempa{fo}% \clearname{foreword}} {\ifnamesequal{translator}{afterword} {\appto\@tempa{af}% \clearname{afterword}} {}}}% \bibstring{\@tempa}} \newbibmacro*{byauthor}{% \ifthenelse{\ifuseauthor\OR\ifnameundef{author}} {} {\bibstring{byauthor}% \setunit{\addspace}% \printnames[byauthor]{author}}} \newbibmacro*{bybookauthor}{% \ifnamesequal{author}{bookauthor} {} {\printnames{bookauthor}}} \newbibmacro*{byeditor}{% \ifnameundef{editor} {} {\bibstring{byeditor}% \setunit{\addspace}% \printnames[byeditor]{editor}}} \newbibmacro*{bytranslator}{% \ifnameundef{translator} {} {\bibstring{bytranslator}% \setunit{\addspace}% \printnames[bytranslator]{translator}}} \newbibmacro*{byredactor}{% \ifnameundef{redactor} {} {\bibstring{byredactor}% \setunit{\addspace}% \printnames[byredactor]{redactor}}} \newbibmacro*{byholder}{% \printnames{holder}} \newbibmacro*{withcommentator}{% \ifnameundef{commentator} {} {\bibstring{withcommentator}% \setunit{\addspace}% \printnames[withcommentator]{commentator}}} \newbibmacro*{withannotator}{% \ifnameundef{annotator} {} {\bibstring{withannotator}% \setunit{\addspace}% \printnames[withannotator]{annotator}}} \newbibmacro*{withintroduction}{% \ifnameundef{introduction} {} {\bibstring{withintroduction}% \setunit{\addspace}% \printnames[withintroduction]{introduction}}} \newbibmacro*{withforeword}{% \ifnameundef{foreword} {} {\bibstring{withforeword}% \setunit{\addspace}% \printnames[withforeword]{foreword}}} \newbibmacro*{withafterword}{% \ifnameundef{afterword} {} {\bibstring{withafterword}% \setunit{\addspace}% \printnames[withafterword]{afterword}}} \newbibmacro*{byeditor+others}{% \ifnameundef{editor} {} {\def\@tempa{byeditor}% \ifnamesequal{editor}{translator} {\appto\@tempa{tr}% \clearname{translator}} {}% \ifnamesequal{editor}{commentator} {\appto\@tempa{co}% \clearname{commentator}} {\ifnamesequal{editor}{annotator} {\appto\@tempa{an}% \clearname{annotator}} {}}% \ifnamesequal{editor}{introduction} {\appto\@tempa{in}% \clearname{introduction}} {\ifnamesequal{editor}{foreword} {\appto\@tempa{fo}% \clearname{foreword}} {\ifnamesequal{editor}{afterword} {\appto\@tempa{af}% \clearname{afterword}} {}}}% \bibstring{\@tempa}% \setunit{\addspace}% \printnames[byeditor]{editor}% \clearname{editor}% \newunit}% \usebibmacro{bytranslator+others}} \newbibmacro*{bytranslator+others}{% \ifnameundef{translator} {} {\def\@tempa{bytranslator}% \ifnamesequal{translator}{commentator} {\appto\@tempa{co}% \clearname{commentator}} {\ifnamesequal{translator}{annotator} {\appto\@tempa{an}% \clearname{annotator}} {}}% \ifnamesequal{translator}{introduction} {\appto\@tempa{in}% \clearname{introduction}} {\ifnamesequal{translator}{foreword} {\appto\@tempa{fo}% \clearname{foreword}} {\ifnamesequal{translator}{afterword} {\appto\@tempa{af}% \clearname{afterword}} {}}}% \bibstring{\@tempa}% \setunit{\addspace}% \printnames[bytranslator]{translator}% \clearname{translator}% \newunit}% \usebibmacro{byothers}} \newbibmacro*{byothers}{% \usebibmacro{bytranslator}% \newunit \usebibmacro{byredactor}% \newunit \usebibmacro{withcommentator}% \newunit \usebibmacro{withannotator}% \newunit \usebibmacro{withintroduction}% \newunit \usebibmacro{withforeword}% \newunit \usebibmacro{withafterword}} \newbibmacro*{title}{% \ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}} {} {\printtext[title]{% \printfield[titlecase]{title}% \setunit{\subtitlepunct}% \printfield[titlecase]{subtitle}}% \newunit}% \printfield{titleaddon}} \newbibmacro*{booktitle}{% \ifthenelse{\iffieldundef{booktitle}\AND\iffieldundef{booksubtitle}} {} {\printtext[booktitle]{% \printfield[titlecase]{booktitle}% \setunit{\subtitlepunct}% \printfield[titlecase]{booksubtitle}}% \newunit}% \printfield{booktitleaddon}} \newbibmacro*{maintitle}{% \ifthenelse{\iffieldundef{maintitle}\AND\iffieldundef{mainsubtitle}} {} {\printtext[maintitle]{% \printfield[titlecase]{maintitle}% \setunit{\subtitlepunct}% \printfield[titlecase]{mainsubtitle}}% \newunit}% \printfield{maintitleaddon}} \newbibmacro*{journal}{% \iffieldundef{journaltitle} {} {\printtext[journaltitle]{% \printfield[titlecase]{journaltitle}% \setunit{\subtitlepunct}% \printfield[titlecase]{journalsubtitle}}}} \newbibmacro*{periodical}{% \iffieldundef{title} {} {\printtext[title]{% \printfield[titlecase]{title}% \setunit{\subtitlepunct}% \printfield[titlecase]{subtitle}}}} \newbibmacro*{issue}{% \iffieldundef{issuetitle} {} {\printtext[issuetitle]{% \printfield[titlecase]{issuetitle}% \setunit{\subtitlepunct}% \printfield[titlecase]{issuesubtitle}}}} \newbibmacro*{url+urldate}{% \printfield{url}% \iffieldundef{urlyear} {} {\setunit{\addspace}% \printtext[urldate]{\biburldate}}} \newbibmacro*{date}{% \iffieldundef{year} {} {\iffieldundef{month} {\printfield{year}} {\iffieldundef{day} {\printfield{month}% \setunit{\addspace}% \printfield{year}} {\printtext{\bibdate}}}}} \newbibmacro*{pageref}{% \iflistundef{pageref} {} {\bibstring{see}\space \ifnum\value{pageref}>1\relax \bibstring{pages}\ppspace \else \bibstring{page}\ppspace \fi \printlist[pageref][-\value{listtotal}]{pageref}}} \newbibmacro*{eprint}{% \iffieldundef{eprinttype} {\printfield{eprint}} {\printfield[eprint:\strfield{eprinttype}]{eprint}}} \newbibmacro*{annotation}{% \iffieldundef{annotation} {\printfile[annotation]{\bibannotationprefix\thefield{entrykey}.tex}} {\printfield{annotation}}} \newbibmacro*{abstract}{% \iffieldundef{abstract} {\printfile[abstract]{\bibabstractprefix\thefield{entrykey}.tex}} {\printfield{abstract}}} \endinput