diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/biblatex-contrib/biblatex-realauthor |
Initial commit
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-realauthor')
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 Binary files differnew file mode 100644 index 0000000000..48fec4bd42 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/biblatex-realauthor.pdf 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 Binary files differnew file mode 100644 index 0000000000..0162f9de40 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-realauthor/documentation/example-realauthor.pdf 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 |