%% Copyright 2014 Maïeul Rouquette % % 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 this 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 Maïeul Rouquette % This work consists of the files realauthor.dbx, realauthor.bbx \ProvidesFile{realauthor.dbx} [2015/94/26 v2.2.0 biblatex bibliography style (MR)] \ifdef{\biblatexmultipledm@bibstyle} {\RequireBibliographyStyle{\biblatexmultipledm@bibstyle}} {\RequireBibliographyStyle{verbose}} \RequirePackage{xpatch} % LabelName \DeclareLabelname{% \field{shortauthor} \field{author} \field{realauthor} \field{shorteditor} \field{editor} \field{translator}} % Command for being redefined \newcommand{\mkbibrealauthor}[1]{% \ifnameundef{author}% {\mkrealauthor{#1}}% {\mkrealauthor{\realauthorequalsign#1}}% } \newcommand{\mkrealauthor}[1]{\mkbibbrackets{#1}} \newcommand{\realauthorequalsign}{\addnbthinspace=\addnbthinspace} % A format which could be overrided \DeclareNameFormat{realauthor}{% \mkbibrealauthor{% \ifboolexpr{test {\ifbibliography} and test {\ifnameundef{author}}}% {\iffirstinits% {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}% {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% }% {\iffirstinits% {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}% {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}% }% \usebibmacro{name:andothers}}} % Patching some standard bibmacros %% For the drivers \xapptobibmacro{author}{% \ifuserealauthor{% \ifnameundef{author}{}{% \ifnameundef{realauthor}{}{\addspace\nopunct}% }% \printnames{realauthor}% }{}% }{}{} \xpatchbibmacro{author/editor+others} {not test {\ifnameundef{author}}} {not (test {\ifnameundef{author}} and test {\ifnameundef{realauthor}})} {} {} \xpatchbibmacro{author/translator+others} {not test {\ifnameundef{author}}} {not (test {\ifnameundef{author}} and test {\ifnameundef{realauthor}})} {} {} \xpatchbibmacro{author/editor+others/translator+others} {not test {\ifnameundef{author}}} {not (test {\ifnameundef{author}} and test {\ifnameundef{realauthor}})} {} {} %% For the shorter version \newbibmacro{realauthor:as:labelname}{% \ifnamesequal{labelname}{realauthor}% {\printnames{realauthor}}% {\printnames{labelname}% \ifnameundef{realauthor}{}{\addspace\nopunct}% \printnames{realauthor}% }% } \xpatchbibmacro{cite:name}{\printnames{labelname}}{\usebibmacro{realauthor:as:labelname}}{}{} % Sorting \DeclareSortingScheme{realauthor}{ \sort{ \field{presort} } \sort[final]{ \field{sortkey} } \sort{ \field{sortname} \field{author} \field{realauthor} \field{editor} \field{translator} \field{sorttitle} \field{title} } \sort{ \field{sorttitle} \field{title} } \sort{ \field{sortyear} \field{year} } \sort{ \field[padside=left,padwidth=4,padchar=0]{volume} \literal{0000} } } \DeclareSortingScheme{anonymous+realauthor}{ \sort{ \field{presort} } \sort[final]{ \field{sortkey} } \sort{ \field{sortname} \field{author} \field{realauthor} \field{editor} \field{translator} \literal{0000} } \sort{ \field{sorttitle} \field{title} } \sort{ \field{sortyear} \field{year} } \sort{ \field[padside=left,padwidth=4,padchar=0]{volume} \literal{0000} } } \endinput