diff options
Diffstat (limited to 'macros/latex/contrib/biblatex-ms/latex/bbx/authortitle-ms.bbx')
-rw-r--r-- | macros/latex/contrib/biblatex-ms/latex/bbx/authortitle-ms.bbx | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex-ms/latex/bbx/authortitle-ms.bbx b/macros/latex/contrib/biblatex-ms/latex/bbx/authortitle-ms.bbx new file mode 100644 index 0000000000..1987eb46d2 --- /dev/null +++ b/macros/latex/contrib/biblatex-ms/latex/bbx/authortitle-ms.bbx @@ -0,0 +1,134 @@ +\ProvidesFile{authortitle-ms.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{standard} +\ExecuteBibliographyOptions{pagetracker} + +\DeclareBibliographyOption[boolean]{dashed}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{pagetracker}% + \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}} + {\renewbibmacro*{bbx:savehash}{}}} + +\DeclareFieldFormat{shorthandwidth}{#1} +\setlength{\bibitemsep}{0pt} + +\DeclareNameAlias{author}{sortname} +\DeclareNameAlias{editor}{sortname} +\DeclareNameAlias{translator}{sortname} + +\DeclareNameWrapperAlias{author}{sortname} +\DeclareNameWrapperAlias{editor}{sortname} +\DeclareNameWrapperAlias{translator}{sortname} + +\defbibenvironment{bibliography} + {\list + {} + {\setlength{\leftmargin}{\bibhang}% + \setlength{\itemindent}{-\leftmargin}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}} + {\endlist} + {\item} + +\defbibenvironment{shorthand} + {\list + {\printfield[shorthandwidth]{shorthand}} + {\setlength{\labelwidth}{\shorthandwidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist} + {\item} + +\InitializeBibliographyStyle{% + \global\undef\bbx@lasthash} + +\newbibmacro*{bbx:savehash}{% + \savefield{fullhash}{\bbx@lasthash}} + +\newbool{bbx@inset} +\DeclareBibliographyDriver{set}{% + \booltrue{bbx@inset}% + \entryset{}{}% + \newunit\newblock + \usebibmacro{setpageref}% + \finentry} + +\renewbibmacro*{begrelated}{% + \booltrue{bbx@inset}} + +\renewbibmacro*{endrelated}{% + \usebibmacro*{bbx:savehash}} + +\renewbibmacro*{author}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{author}% + \setunit{\printdelim{authortypedelim}}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{authorstrg}} + {\global\undef\bbx@lasthash}} + +\renewbibmacro*{editor}{% + \usebibmacro{bbx:editor}{editorstrg}} +\renewbibmacro*{editor+others}{% + \usebibmacro{bbx:editor}{editor+othersstrg}} +\newbibmacro*{bbx:editor}[1]{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{editor}% + \setunit{\printdelim{editortypedelim}}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{#1}% + \clearname{editor}} + {\global\undef\bbx@lasthash}} + +\renewbibmacro*{translator}{% + \usebibmacro{bbx:translator}{translatorstrg}} +\renewbibmacro*{translator+others}{% + \usebibmacro{bbx:translator}{translator+othersstrg}} +\newbibmacro*{bbx:translator}[1]{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{translator}% + \setunit{\printdelim{translatortypedelim}}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{#1}% + \clearname{translator}} + {\global\undef\bbx@lasthash}} + +\newbibmacro*{bbx:dashcheck}[2]{% + \ifboolexpr{ + test {\iffieldequals{fullhash}{\bbx@lasthash}} + and + not test \iffirstonpage + and + ( + not bool {bbx@inset} + or + test {\iffieldequalstr{entrysetcount}{1}} + ) + } + {#1} + {#2}} + +\endinput |