summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib/biblatex-realauthor
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/biblatex-contrib/biblatex-realauthor
Initial commit
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-realauthor')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/README4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/biblatex-realauthor.pdfbin0 -> 73204 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/biblatex-realauthor.tex223
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.bib46
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.pdfbin0 -> 17955 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.tex36
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/makefile12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/makefile19
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/realauthor.bbx409
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-realauthor/realauthor.dbx20
10 files changed, 769 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/README b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/README
new file mode 100644
index 0000000000..b9100dd8aa
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/README
@@ -0,0 +1,4 @@
+biblatex-realauthor
+===================
+
+Manage real author with biblatex
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/biblatex-realauthor.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/biblatex-realauthor.pdf
new file mode 100644
index 0000000000..48fec4bd42
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/biblatex-realauthor.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/biblatex-realauthor.tex b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/biblatex-realauthor.tex
new file mode 100644
index 0000000000..003bde92d9
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/biblatex-realauthor.tex
@@ -0,0 +1,223 @@
+\documentclass{ltxdockit}[2011/03/25]
+\usepackage{btxdockit}
+\usepackage{fontspec}
+\usepackage[mono=false]{libertine}
+\usepackage{microtype}
+\usepackage[american]{babel}
+\usepackage[strict]{csquotes}
+\setmonofont[Scale=MatchLowercase]{DejaVu Sans Mono}
+\usepackage{shortvrb}
+\usepackage{pifont}
+\usepackage{minted}
+\setminted{breaklines}
+% Usefull commands
+\newcommand{\biblatex}{biblatex\xspace}
+\pretocmd{\bibfield}{\sloppy}{}{}
+\pretocmd{\bibtype}{\sloppy}{}{}
+\newcommand{\namebibstyle}[1]{\texttt{#1}}
+% Meta-datas
+\titlepage{%
+ title={Description of real authors with biblatex},
+ subtitle={New data field},
+ email={maieul <at> maieul <dot> net},
+ author={Maïeul Rouquette},
+ revision={2.7.1a},
+ date={19/11/2017},
+ url={https://github.com/maieul/biblatex-realauthor}}
+
+% biblatex
+\usepackage[bibstyle=realauthor,citestyle=verbose]{biblatex}
+\addbibresource{example-realauthor.bib}
+
+\begin{document}
+
+\printtitlepage
+\tableofcontents
+\section{Introduction}
+
+The standard biblatex fields allow to describe the author of a work, with the so called \bibfield{authors} field. However, some works are published without name, or with pseudonyme, but the scholars know the real author. This package adds a new field \bibfield{realauthor}, to specify the knew real author.
+
+It also add a new field \bibfield{realeditor}, to specify the knew real editor.
+
+\section{Basic use}
+
+\subsection{Requirement}
+
+The packages require \biblatex~3.5 or later.
+
+\subsection{The .bib file}
+Basically, you just have to add the real author / editor name in the field \bibfield{realauthor} / \bibfield{realdeditor}, like in the following examples:
+
+\inputminted{tex}{example-realauthor.bib}
+
+\subsection{Loading of the \biblatex package}
+
+When loading the \biblatex package, use the \namebibstyle{realauthor} bibstyle, which is based on the \namebibstyle{verbose} bibstyle:
+
+\begin{minted}{latex}
+\usepackage[citestyle=verbose,bibstyle=realauthor]{biblatex}
+\end{minted}
+
+Not that the package patches some bibmacro.
+If you redefine them, don't forget the patches\footnote{We suppose that, if you redefine them, you could understand the packages.}.
+Here the list of macro patched:
+\begin{itemize}
+ \item author;
+ \item author/editor+others;
+ \item author/translator+others;
+ \item author/editor+others/translator+others;
+ \item bbx:editor;
+ \item byeditor;
+ \item byeditor+others;
+ \item cite:name (patched at the beginning of the document);
+\end{itemize}
+
+\subsection{Example of result}
+
+By default, the real author name is printed in brackets, with an equal, between fine nonbreak spaces, when a pseudonym is also use:
+\begin{quotation}
+\cite{LeClerc1686}
+
+\cite{Simon1686}
+\end{quotation}
+
+\subsection{\bibfield{Labelname} field}\label{field:label}
+
+This package, since version 2.0.0, declares the \bibfield{realauthor} name as the \bibfield{labelname}, if a \bibfield{author} name is not defined.
+
+That implies this field is use for:
+\begin{itemize}
+ \item Sorting.
+ \item \emph{ibid} / \emph{op. cit} abreviation.
+\end{itemize}
+
+Note that this field is not affected by \verb+useauthor+ option, but it is by \verb+userealauthor+ option \secref{userealauthor}.
+
+Used in a bibliography macro or driver, \cmd{ifuserealauthor}\mprm{true}\mprm{false} expands to \prm{true} if the \opt{userealauthor} option is enabled (either globally or for the current entry), and \prm{false} otherwise.
+
+There is also a \verb+userealeditor+ option and a \cmd{ifuserealeditor} field, similar, but for \bibfield{realeditor} field.
+
+\subsection{Sorting}\label{sorting}
+
+The default sorting schemes \verb+nty+ is problematic, because it doesn't consider the \bibfield{realauthor} field as a name. That is why the package provides two sorting scheme:
+
+\begin{itemize}
+ \item \verb|realauthor|, which but considers the \bibfield{realauthor} and \bibfield{realeditor} fields to sort list by authors' name. If an entry has both \bibfield{realauthor} and \bibfield{author}, only the \bibfield{author} field will be used.
+ \item \verb|anonymous+realauthor|, which push the anonymous texts at the beginning of the list (as the \verb+anonymous+ sorting of the \emph{biblatex-anonymous+} package), but considers the \bibfield{realauthor} and \bibfield{realeditor} fields to sort list by authors' name (as the \verb+realauthor+ sorting).
+\end{itemize}
+ See the example file to have an illustration.
+
+
+ +The package also provides \verb-realauthor+manuscripts- and \verb-realauthor+anonymous+manuscripts- sorting schemes to use in combination with the \emph{biblatex-manuscripts-philology} package (please read handbook of this package for more details about it).
+
+\section{Disable realauthor use}\label{userealauthor}
+
+The package, or rather \biblatex, defines an \verb+userealauthor+ option, which can be settable on a per-entry basis in the \bibfield{options} field, or by entrytype, using \cmd{ExecuteBibliographyOptions}, or globally, when loading \biblatex.
+
+This option, when set to false:
+\begin{itemize}
+ \item Disable use of \bibfield{realauthor} as label name.
+ \item Disable use of \bibfield{realauthor} for sorting.
+ \item Before the version 2.4.0. with the default style, and contrary to the \verb+useauthor+ option, also disabled printing of \bibfield{realauthor}. From version 2.4.0, if you don't want to print the field, don't use the package\ldots.
+\end{itemize}
+
+The same is true for \opt{realeditor} option for the \bibfield{realeditor}.
+
+\section{Customization}
+
+You can redefine the \cmd{mkrealauthor} command to change the way the real author name is printed. Default value is:
+
+\begin{minted}{tex}
+\newcommand{\mkrealauthor}[1]{\mkbibbrackets{#1}}
+\end{minted}
+
+You can also redefine the \cmd{realauthorequalsign} command to change the sign before the real author name when a pseudonym is also used. Default value is:
+
+\begin{minted}{tex}
+\newcommand{\realauthorequalsign}{\addnbthinspace=\addnbthinspace}
+\end{minted}
+
+There are also \cmd{mkrealeditor}, which by default calls \cmd{mkrealauthor}, and \cmd{realeditorequalsign}, which by default calls \cmd{realauthorequalsign}.
+
+For more customization, you have to redefine the macros defined in \file{realauthor.bbx}.
+
+
+
+
+\section{Use with biblatex-manuscripts-philology}
+
+To use this package with the features of \verb+biblatex-manuscripts-philology+, you must use the package \verb+biblatex-multiple-dm+.
+
+\section{Credits}
+
+This package was created for Maïeul Rouquette's phd dissertation\footnote{\url{http://apocryphes.hypothese.org}.} in 2014. It is licensed on the \emph{\LaTeX\ Project Public License}\footnote{\url{http://latex-project.org/lppl/lppl-1-3c.html}.}.
+
+
+All issues can be submitted, in French or English, in the GitHub issues page\footnote{\url{https://github.com/maieul/biblatex-realauthor/issues}.}.
+
+\section{Change history}
+
+\begin{changelog}
+
+\begin{release}{2.7.1a}{2017-11-19}
+ \item Add compatibility with \biblatex~3.8
+\end{release}
+
+\begin{release}{2.7.0}{2016-10-23}
+ \item New sorting schemes.
+\end{release}
+
+\begin{release}{2.6.0}{2016-09-08}
+ \item Take account of \bibfield{realauthor} to manage dash in bibliography.
+ \item Require \biblatex\ 3.5.
+\end{release}
+
+\begin{release}{2.5.0}{2016-06-09}
+ \item Add error message to know more quickly break compatibility with new releases of biblatex.
+\end{release}
+
+ \begin{release}{2.4.1}{2016-06-07}
+ \item Fix bug with abreviatted form of citation.
+ \end{release}
+ \begin{release}{2.4.0}{2016-06-05}
+ \item Add \bibfield{realeditor}.
+ \item Restores normal behavior of \opt{userealeauthor}.
+ \item Takes account of the real names when choosing to print a dash in the final bibliography.
+ \item Requires biblatex 3.3.
+ \end{release}
+
+ \begin{release}{2.3.0}{2016-03-11}
+ \item Compatibility with biblatex 3.3.
+ \end{release}
+
+ \begin{release}{2.2.1}{2016-02-28}
+ \item Correct description of datamodel specification about which entrytype can have a \bibfield{realauthor} field.
+ \end{release}
+
+
+ \begin{release}{2.2.0}{2015-04-26}
+ \item Add new \verb|userealauthor| option. Require \biblatex~3.0. \see{userealauthor}
+ \item Provides good file version in the \cs{ProvidesFile} command.
+ \end{release}
+
+ \begin{release}{2.1.0}{2014-10-30}
+ \item Add new \verb|realauthor| sorting scheme. \see{sorting}
+ \end{release}
+
+
+ \begin{release}{2.0.0}{2014-10-27}
+ \item Print the realauthor name in bracket when cited in a abreviated form.
+ \item Define \bibfield{realauthor} as \bibfield{labelname}. \see{field:label}
+ \end{release}
+
+\begin{release}{1.1.0}{2014-10-09}
+\item In a bibliographical list, print the last name before the first name of a real author, except if a \bibfield{author} is defined.
+\item Add \verb|anonymous+realauthor| sorting scheme. \see{sorting}
+\item Compatibility with \bibtype{article} entry.
+\end{release}
+
+\begin{release}{1.0.0}{2014-06-25}
+\item First public release.
+\end{release}
+\end{changelog}
+\end{document}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.bib b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.bib
new file mode 100644
index 0000000000..fc22e7f769
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.bib
@@ -0,0 +1,46 @@
+@book{LeClerc1686,
+ Publisher = {Henry Desbordes},
+ Realauthor = {Jean le Clerc},
+ Title = {Défense des sentimens
+ De quelques Théologiens de Hollande
+ sur l'histoire critique du Vieux Testament
+ contre la réponse du Prieur de Bolleville},
+ Year = {1686}}
+
+@book{Simon1686,
+ Address = {Rotterdam},
+ Author = {{Prieur de Bolleville}},
+ Publisher = {Reinier Leers},
+ Realauthor = {Richard Simon},
+ Title = {Réponse au livre intitulé
+ sentimens de quelques Theologiens de Hollande
+ sur l'Histoire Critique du Vieux Testament},
+ Year = {1686}}
+
+
+@book{Nausea1531,
+ Address = {Cologne},
+ Pagination = {folio},
+ Publisher = {Quentel},
+ Realeditor = {Friedrich Nausea},
+ Title = {Anonymi Philalethi Eusebiani in vitas, miracula, passionesque Apostolorum Rhapsodiae},
+ Year = {1531}
+}
+@book{noauthor-norealauthor,
+ Title = {Here an anonymous work},
+ }
+
+@book{noauthor-norealauthor2,
+ Title = {Why not an other anonymous work?},
+ }
+
+@book{Author+realauthor,
+ Author = {Theauthor-Familyname, Given-name},
+ Realauthor= {Therealauthor-Familyname, Given-Name},
+ Title = {That is a work with an author plus a real author},
+ }
+
+@book{Only-realauthor,
+ Realauthor= {Therealauthor-Familyname, Given-Name},
+ Title = {Here a work with only a real author},
+ }
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.pdf
new file mode 100644
index 0000000000..0162f9de40
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.tex b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.tex
new file mode 100644
index 0000000000..2056a38193
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.tex
@@ -0,0 +1,36 @@
+\documentclass{article}
+
+\usepackage[citestyle=verbose-trad2,bibstyle=realauthor]{biblatex}
+\usepackage{libertineotf}
+
+\bibliography{example-realauthor.bib}
+
+\begin{document}
+
+\cite{Author+realauthor}
+
+\cite{Only-realauthor}
+
+\cite{noauthor-norealauthor}
+
+\cite{Author+realauthor}
+
+\cite{Only-realauthor}
+
+\cite{noauthor-norealauthor}
+
+\cite{noauthor-norealauthor2}
+
+\cite{Nausea1531}
+
+\newrefcontext[sorting=nty]
+\printbibliography[title={Default sorting (nty)}]
+
+\newrefcontext[sorting=realauthor]
+\printbibliography[title={realauthor sorting}]
+
+\newrefcontext[sorting=anonymous+realauthor]
+\printbibliography[title={anonymous+realauthor sorting}]
+
+
+\end{document}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/makefile b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/makefile
new file mode 100644
index 0000000000..3e4ec89985
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/makefile
@@ -0,0 +1,12 @@
+all: *tex *bib
+ xelatex --shell-escape biblatex-realauthor.tex
+ biber biblatex-realauthor
+ xelatex --shell-escape biblatex-realauthor.tex
+ xelatex --shell-escape example-realauthor.tex
+ biber example-realauthor
+ xelatex --shell-escape example-realauthor.tex
+ xelatex --shell-escape example-realauthor.tex
+
+clean:realauthor
+ $(MAKE) -C documentation clean
+ @$(RM) *.pdf *.toc *.aux *.out *.fdb_latexmk *.log *.bbl *.bcf *.blg *run.xml *.synctex.gz*
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/makefile b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/makefile
new file mode 100644
index 0000000000..f5a1d2946b
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/makefile
@@ -0,0 +1,19 @@
+FILES = *.bbx *.dbx *.lbx documentation makefile README
+
+
+dist: all
+ rm -rf biblatex-realauthor
+ mkdir biblatex-realauthor
+ ln README *bbx *dbx *makefile biblatex-realauthor
+ mkdir biblatex-realauthor/documentation
+ ln documentation/*tex documentation/*bib documentation/*pdf documentation/makefile biblatex-realauthor/documentation
+ $(RM) ../biblatex-realauthor.zip
+ zip -r ../biblatex-realauthor.zip biblatex-realauthor
+
+
+clean:
+ $(MAKE) -C documentation clean
+ @$(RM) *.pdf *.toc *.aux *.out *.fdb_latexmk *.log *.bbl *.bcf *.blg *run.xml *.synctex.gz*
+
+all: documentation/example-realauthor.tex documentation/biblatex-realauthor.tex documentation/example-realauthor.bib
+ $(MAKE) -C documentation all
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/realauthor.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/realauthor.bbx
new file mode 100644
index 0000000000..88d65bb5d4
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/realauthor.bbx
@@ -0,0 +1,409 @@
+%% 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}
+[2017/11/19 v2.7.1a biblatex bibliography style (MR)]
+
+\ifdef{\DeclareSortingTemplate}%
+ {}
+ {\let\DeclareSortingTemplate\DeclareSortingScheme}
+\ifdef{\biblatexmultipledm@bibstyle}
+ {\RequireBibliographyStyle{\biblatexmultipledm@bibstyle}}
+ {\RequireBibliographyStyle{verbose}}
+
+\RequirePackage{xpatch}
+
+% LabelName
+
+
+\DeclareLabelname{%
+ \field{shortauthor}
+ \field{author}
+ \field{realauthor}
+ \field{shorteditor}
+ \field{editor}
+ \field{realeditor}%
+ \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}
+
+\newcommand{\mkbibrealeditor}[1]{%
+ \ifnameundef{editor}%
+ {\mkrealeditor{#1}}%
+ {\mkrealeditor{\realeditorequalsign#1}}%
+}
+\newcommand{\mkrealeditor}[1]{\mkrealauthor{#1}}%
+\newcommand{\realeditorequalsign}{\realauthorequalsign}%
+% A format which could be overrided
+
+\DeclareNameFormat{realauthor}{%
+ \nameparts{#1}%
+ \mkbibrealauthor{%
+ \ifboolexpr{test {\ifbibliography} and test {\ifnameundef{author}}}%
+ {\ifgiveninits%
+ {\usebibmacro{name:family-given}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffix}}%
+ {\usebibmacro{name:family-given}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}}%
+ }%
+ {\ifgiveninits%
+ {\usebibmacro{name:given-family}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffix}}%
+ {\usebibmacro{name:given-family}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}}%
+ }%
+ \usebibmacro{name:andothers}}}
+
+\DeclareNameFormat{realeditor}{%
+ \nameparts{#1}%
+ \mkbibrealeditor{%
+ \ifboolexpr{test {\ifbibliography} and test {\ifnameundef{editor}}}%
+ {\ifgiveninits%
+ {\usebibmacro{name:family-given}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffix}}%
+ {\usebibmacro{name:family-given}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}}%
+ }%
+ {\ifgiveninits%
+ {\usebibmacro{name:given-family}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffix}}%
+ {\usebibmacro{name:given-family}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}}%
+ }%
+ \usebibmacro{name:andothers}}}
+
+% Patching some standard bibmacros
+\newcommand{\realauthor@failpatch}[1]{\PackageError{realauthor}{Fail to patch `#1` bibmacro}{}}
+
+\xapptobibmacro{author}{%
+ \ifnameundef{author}{}{%
+ \ifnameundef{realauthor}{}{\addspace\nopunct}%
+ }%
+ \printnames{realauthor}%
+ {}%
+}
+ {}
+ {\realauthor@failpatch{author}}
+
+\xpatchbibmacro{author/editor+others}
+ {not test {\ifnameundef{author}}}
+ {not (test {\ifnameundef{author}} and test {\ifnameundef{realauthor}})}
+ {}
+ {\realauthor@failpatch{author/editor+others}}
+
+
+\xpatchbibmacro{author/translator+others}
+ {not test {\ifnameundef{author}}}
+ {not (test {\ifnameundef{author}} and test {\ifnameundef{realauthor}})}
+ {}
+ {\realauthor@failpatch{author/translator+others}}
+
+\xpatchbibmacro{author/editor+others/translator+others}
+ {not test {\ifnameundef{author}}}
+ {not (test {\ifnameundef{author}} and test {\ifnameundef{realauthor}})}
+ {}
+ {\realauthor@failpatch{author/editor+others/translator+others}}
+
+
+\xpatchbibmacro{author/editor+others/translator+others}
+ {\ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }%
+ }
+ {\ifboolexpr{
+ (test \ifuseeditor%
+ and
+ not test {\ifnameundef{editor}}%
+ )
+ or
+ (test \ifuserealeditor%
+ and
+ not test {\ifnameundef{realeditor}}%
+ )%
+ }%
+ }
+ {}%
+ {\realauthor@failpatch{author/editor+others/translator+others}}
+
+
+
+
+\xpatchbibmacro{bbx:editor}
+ {\ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }}
+ {\ifboolexpr{
+ (test \ifuseeditor%
+ and
+ not test {\ifnameundef{editor}}%
+ )
+ or
+ (test \ifuserealeditor%
+ and
+ not test {\ifnameundef{realeditor}}%
+ )%
+ }%
+ }
+ {}
+ {\realauthor@failpatch{bbx:editor}}
+
+\xpatchbibmacro{bbx:editor}
+ {\clearname{editor}}
+ {\clearname{editor}
+ \clearname{realeditor}
+ }
+ {}
+ {\realauthor@failpatch{bbx:editor}}
+
+\xpatchbibmacro{bbx:editor}
+ {\printnames{editor}}%
+ {\printnames{editor}%
+ \usebibmacro{printeditor}%
+ }%
+ {}
+ {\realauthor@failpatch{bbx:editor}}
+
+
+\xpatchbibmacro{byeditor}
+ {\ifnameundef{editor}}%
+ {\ifboolexpr{test{\ifnameundef{editor}} and test{\ifnameundef{realeditor}}}}%
+ {}
+ {\realauthor@failpatch{byeditor}}
+
+\xpatchbibmacro{byeditor}
+ {\printnames[byeditor]{editor}}%
+ {\usebibmacro{printbyeditor+realeditor}}
+ {}
+ {\realauthor@failpatch{byeditor}}
+
+\xpatchbibmacro{byeditor+others}
+ {\ifnameundef{editor}}%
+ {\ifboolexpr{test{\ifnameundef{editor}} and test{\ifnameundef{realeditor}}}}%
+ {}
+ {\realauthor@failpatch{byeditor+others}}
+
+\xpatchbibmacro{byeditor+others}
+ {\printnames[byeditor]{editor}}%
+ {\usebibmacro{printbyeditor+realeditor}}
+ {}
+ {\realauthor@failpatch{byeditor+others}}
+
+\newbibmacro{printbyeditor+realeditor}{%
+ \printnames[byeditor]{editor}%
+ \ifnameundef{editor}{}{%
+ \ifnameundef{realeditor}{}{\addspace\nopunct}%
+ }%
+ \printnames{realeditor}%
+}
+
+\newbibmacro{printeditor}{%
+ \ifnameundef{editor}{}{%
+ \ifnameundef{realeditor}{}{\addspace\nopunct}%
+ }%
+ \printnames{realeditor}%
+}
+
+%% For the shorter version
+
+\newbibmacro{realauthor:as:labelname}{%
+ \ifboolexpr{%
+ test {\ifnamesequal{labelname}{realauthor}}%
+ or
+ test {\ifnamesequal{labelname}{realeditor}}%
+ }{%
+ \ifnamesequal{labelname}{realauthor}%
+ {\printnames{realauthor}}%
+ {\printnames{realeditor}}%
+ }%
+ {%
+ \printnames{labelname}%
+ \ifnamesequal{labelname}{author}{%
+ \ifnameundef{realauthor}%
+ {}%
+ {\addspace\nopunct\printnames{realauthor}}%
+ }{}%
+ \ifnamesequal{labelname}{editor}{%
+ \ifnameundef{realeditor}%
+ {}%
+ {\addspace\nopunct\printnames{realeditor}}%
+ }{}%
+ }%
+}
+\AtBeginDocument{%
+ \ifcsvoid{abx@macro@cite:name}{}{%
+ \xpatchbibmacro{cite:name}%
+ {\printnames{labelname}}
+ {\usebibmacro{realauthor:as:labelname}}
+ {}
+ {\realauthor@failpatch{cite:name}}
+ }%
+}
+
+% For the dash on the bibliography, in the case two real author use the same pseudonym
+
+\AtBeginDocument{
+\xapptobibmacro{bbx:savehash}{%
+ \ifboolexpr{%
+ test {\ifnamesequal{labelname}{author}}%
+ and
+ not test {\ifnameundef{realauthor}}%
+ }%
+ {%
+ \xappto\bbx@lasthash{\thefield{realeauthorfullhash}}%
+ }%
+ {}%
+ \ifboolexpr{%
+ test {\ifnamesequal{labelname}{editor}}%
+ and
+ not test {\ifnameundef{realeditor}}%
+ }%
+ {%
+ \xappto\bbx@lasthash{\thefield{realeditorfullhash}}%
+ }%
+ {}%
+}
+{}{\realauthor@failpatch{bbx:savehash}}
+
+\xpretobibmacro{bbx:dashcheck}{%
+ \savefield{fullhash}{\bbx@this@hash}%
+ \ifboolexpr{%
+ test {\ifnamesequal{labelname}{author}}%
+ and
+ not test {\ifnameundef{realauthor}}%
+ }%
+ {%
+ \eappto\bbx@this@hash{\thefield{realauthorfullhash}}%
+ }%
+ {}%
+ \ifboolexpr{%
+ test {\ifnamesequal{labelname}{editor}}%
+ and
+ not test {\ifnameundef{realeditor}}%
+ }%
+ {%
+ \eappto\bbx@this@hash{\thefield{realeditorfullhash}}%
+ }%
+ {}%
+}
+{}{\realauthor@failpatch{bbx:dashchek}}
+
+\xpatchbibmacro{bbx:dashcheck}%
+ {\iffieldequals{fullhash}{\bbx@lasthash}}%
+ {\ifdefequal{\bbx@this@hash}{\bbx@lasthash}}%
+{}{\realauthor@failpatch{bbx:dashchek}}
+
+}
+% Sorting
+
+\def\bbx@realauthor@sorting{
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{realauthor}
+ \field{editor}
+ \field{realeditor}
+ \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}
+ }
+}
+
+\def\bbx@realauthor@sorting@anonymous{
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{realauthor}
+ \field{editor}
+ \field{realeditor}
+ \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}
+ }
+}
+
+\DeclareSortingTemplate{realauthor}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \bbx@realauthor@sorting
+}
+
+\DeclareSortingTemplate{anonymous+realauthor}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \bbx@realauthor@sorting@anonymous
+}
+
+
+\AtEndPreamble{
+ \ifundef{\bbx@manuscripts@sorting}{}%
+ {
+ \DeclareSortingTemplate{realauthor+manuscripts}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \bbx@realauthor@sorting
+ \bbx@manuscripts@sorting
+ }
+ \DeclareSortingTemplate{anonymous+realauthor+manuscripts}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \bbx@realauthor@sorting@anonymous
+ \bbx@manuscripts@sorting
+ }
+ }
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/realauthor.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/realauthor.dbx
new file mode 100644
index 0000000000..4126f7b335
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/realauthor.dbx
@@ -0,0 +1,20 @@
+%% 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}
+[2017/11/19 v2.7.1a biblatex bibliography style (MR)]
+
+\DeclareDatamodelFields[type=list,datatype=name]{realauthor,realeditor}
+\DeclareDatamodelEntryfields{realauthor,realeditor}
+\endinput