summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-10-25 03:01:19 +0000
committerNorbert Preining <norbert@preining.info>2022-10-25 03:01:19 +0000
commit170c76072a2b68eeeb23fa4a9e3dfbdee131e29c (patch)
tree938d306578d616ae5f01f09a49fb3e102fed8f8c /macros/latex/contrib/biblatex-contrib
parent74697976d2ffe935077542593ccbb18a00603251 (diff)
CTAN sync 202210250301
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/README19
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdfbin375557 -> 407139 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex497
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx992
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx37
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx8
6 files changed, 1180 insertions, 373 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/README b/macros/latex/contrib/biblatex-contrib/biblatex-publist/README
index 2204ba29df..0d42209e43 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/README
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/README
@@ -46,6 +46,25 @@ instructions.
== CHANGES ==
+* V. 2.0 (2022-10-24):
+ - Provide \ExecutePublistOptions to change (most) biblatex-publist options
+ on the fly.
+ - Properly support reverse numbering even if filtering is done (#38).
+ - Add plnumgroup environment to temporarily suspend plnumbering=local.
+ - Add new macro \setplnum (#39).
+ - Rename macro \shiftbplnum to \shiftplnum (old macro kept for compatibility).
+ - Fix with \shiftplnum with ascending enumeration.
+ - Introduce one option (plnumbering) that replaces the previous two
+ (plnumbered + reversenumbering). Old options are kept for compatibility.
+ - Introduce one multichoice option (linktitles) that replaces the previous
+ options (linktitleall, linktitledoi, linktitleurl, linktitleisbn,
+ linktitleissn). Old options are kept for compatibility.
+ - Rename option boldyear to hlyear. Old option kept for compatibility.
+ - Allow customization of the highlighting set with hlyear.
+ - Introduce plsorting option.
+ - Add support for OpenAccess information.
+ - Add support for Journal Impact Factor.
+
* V. 1.27 (2022-10-03):
- Fix once more plauthor check with non-ASCII chars and macros.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
index 168b332893..cd40d546e2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
index e1b2115212..f5e91bf716 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
@@ -1,3 +1,4 @@
+% !TeX spellcheck = en_US
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% File biblatex-publist.tex
%%
@@ -35,6 +36,7 @@
basicstyle={\small\ttfamily},
frame=single}
\usepackage{babel}
+\usepackage{csquotes}
\usepackage{url}
\usepackage[svgnames]{xcolor}
\usepackage[unicode=true]{hyperref}
@@ -64,20 +66,29 @@
\renewcommand{\cftsecpagefont}{\small\bfseries}
\renewcommand{\cftsubsecfont}{\small}
\renewcommand{\cftsubsecpagefont}{\small}
+\renewcommand{\cftsubsubsecfont}{\small}
+\renewcommand{\cftsubsubsecpagefont}{\small}
% Some semantic markup
\makeatletter
+\newcommand*\@marginmacro[2][]{%
+ \marginpar{\IfBlankTF{#1}{}{\hspace*{#1em}}\raggedleft\small\textcolor{Maroon}{\texttt{#2}}}%
+}
\def\jmacro{\@ifstar\@@jmacro\@jmacro}
-\newcommand*\@marginmacro[1]{\marginpar{\small\texttt{#1}}}
\newcommand*\@jmacro[1]{\textbf{\texttt{#1}}}
-\newcommand*\@@jmacro[1]{\@jmacro{#1}\@marginmacro{#1}}
+\newcommand*\@@jmacro[2][]{\@jmacro{#2}\IfBlankTF{#1}{\@marginmacro{#2}}{\@marginmacro[#1]{#2}}}
\def\jcsmacro{\@ifstar\@@jcsmacro\@jcsmacro}
\newcommand*\@jcsmacro[1]{\@jmacro{\textbackslash{#1}}}
-\newcommand*\@@jcsmacro[1]{\@@jmacro{\textbackslash{#1}}}
+\newcommand*\@@jcsmacro[2][]{\IfBlankTF{#1}{\@@jmacro{\textbackslash{#2}}}{\@@jmacro[#1]{\textbackslash{#2}}}}
\newcommand*\joption[1]{\textbf{\texttt{#1}}}
\newcommand*\jfoption[1]{\texttt{#1}}
\newcommand*\jfmacro[1]{\texttt{#1}}
\newcommand*\jfcsmacro[1]{\jfmacro{\textbackslash{#1}}}
+\def\jenviron{\@ifstar\@@jenviron\@jenviron}
+\newcommand*\@jenviron[1]{\textbf{\texttt{#1}}}
+\newcommand*\@@jenviron[1]{\marginpar{\raggedleft\small\textcolor{Maroon}{\texttt{#1}}}%
+ \textbf{\texttt{\textbackslash begin\{#1\}$\ldots$\textbackslash end\{#1\}}}%
+}
\newcommand*\bpl{\texttt{biblatex-publist}}
\newcommand*\bibltx{\texttt{biblatex}}
\makeatother
@@ -102,22 +113,23 @@
\thanks{Please report issues via \protect\url{https://github.com/jspitz/biblatex-publist}.}%
}
-\date{Version 1.27 2022/10/03}
+\date{Version 2.0, 2022/10/24}
\maketitle
\begin{abstract}
\noindent The \bpl\ package provides a \bibltx\ \cite{bibltx} style file
-for publication lists, i.\,e., a bibliography containing one's own
-publications. It draws on \bibltx's \emph{authoryear} style by default
-(which can be changed), but provides some extra features needed for publication lists,
-such as the omission or highlighting of the own name from\slash in author or editor data.
+for publication lists -- a bibliography listing one's own
+publications. It employs \bibltx's \emph{author\-year} style by default
+(which can be changed), but provides extra features needed for publication lists,
+such as the omission or highlighting of the own name from\slash in author or editor data
+and specific numbering.
The package requires at least version 3.8 of \bibltx\ and \texttt{biber}
(the respective version as required by \bibltx).
\end{abstract}
\tableofcontents
-\section{Aim of the package}
+\section{Aim of the Package}
The \bpl\ package provides a \bibltx\ bibliography style specifically for academic publication lists.
Such lists, which are a central part of the academic CV, contain all or selected
@@ -131,7 +143,7 @@ produce the desired result.
Given the fact that maintaining a publication list is a routine task
in an academian's life, it is surprising how few specified solutions
-exist to generate such lists (particularly from Bib\TeX\ data). For
+are at disposal to generate such lists (particularly from Bib\TeX\ data). For
classic Bib\TeX, Nicolas Markey provides (off CTAN) a Bib\TeX\ style file
dedicated to that task, \emph{publist.bst}%
\footnote{See \url{http://www.lsv.fr/~markey/BibTeX/publist/publist.bst}
@@ -140,7 +152,8 @@ dedicated to that task, \emph{publist.bst}%
The \bpl\ package started off as the attempt to emulate the features of
\emph{publist.bst} with \bibltx's means; it thus partly draws on
its conceptual ideas. Meanwhile, however, it has significantly exceeded
-that initial goal and provides many more features than \emph{publist.bst}.
+that initial goal and provides many more features than \emph{publist.bst},
+thereby accounting for my own needs and for requests that reached me.
The list of features includes:
@@ -150,10 +163,12 @@ The list of features includes:
\item Filter publications of specific authors from heterogeneous bibliography databases
\item Date-centric sorting (as typical for publication lists)
\item Number items in ascending or descending order, globally or sectional
- \item Highlight year of publication
- \item Indicate year of publication (sets) in the margin
+ \item Highlight the year of publication
+ \item Optionally indicate the year of publication (sets) in the margin
\item Clickable titles, linking to the URL, DOI, or a web catalog
\item Indicate if/how a title has been peer-reviewed
+ \item Mark OpenAccess publications
+ \item Give bibliometric information (journal impact factor)
\item List reviews of specific titles
\item Adjustable base bibliography style
\end{itemize}
@@ -162,22 +177,24 @@ Many features have been suggested by users of the package.
If you miss a specific feature, feel free to suggest it via
\url{https://github.com/jspitz/biblatex-publist/issues}.
-\subsection*{Caveats}
+\subsection*{Requirements and Caveats}
Note that \bpl\ relies on rather advanced features of \bibltx\ for some of its own features.
These are only available with the \texttt{biber} backend of \bibltx. Hence \bpl\ requires
the use of \texttt{biber} as well -- the \texttt{bibtex} backend won't work!
+Furthermore, the package employs some newer \LaTeXe\ and \texttt{latex3} features. So a quite
+recent \LaTeX\ distribution is required.
-Also note that the aim of \bpl\ is to generate publication lists, so it is not suitable
+Also note that the aim of \bpl\ is to generate publication lists, so it is \emph{not suitable}
for normal bibliographies. Specifically, while basic citing works, more advanced
forms of citing may break or not produce the expected result. The reason is that
-\bpl\ needs to perform internal tweaks (e.\,g., to \textsf{shortauthor} and
-\textsf{labelname}) which might bite you with customized cite formats.
+\bpl\ needs to perform internal tweaks (e.\,g., to \textsf{shortauthor},
+\textsf{labelname} and numbering) which might bite you with customized cite formats.
\section{Usage}
-\subsection{Standard usage\label{sec:standard-usage}}
+\subsection{Standard Usage\label{sec:standard-usage}}
The standard way of using the package is to load the style file via
\begin{lstlisting}[moretexcs={[1]{plauthorname}}]
@@ -189,9 +206,10 @@ of the \bpl\ package. The old macro still works, but is marked as deprecated.}
(at least with the mandatory \emph{surname} argument) needs to be given (at least\footnote{See
sec.~\ref{sec:multiauthors} for the case of handling multiple authors and name variants.}) once.
It informs the style file which name(s) it should suppress or highlight in the
-author\slash editor list (usually yours).
+author\slash editor list or which entries it should retrieve from a database. In other words,
+it defines the name(s) of the person(s) whose publications are listed.
-With the default settings, the author\slash editor name(s) will be omitted completely
+By default, the author\slash editor name(s) will be omitted completely
for all publications which are authored or edited only by the specified person(s), as in:
\begin{quote}
\textbf{2012.} Some recent trends in gardening. In: \emph{Gardening
@@ -211,16 +229,15 @@ will be printed in bold face instead, as in:
\end{quote}
%
Note that \jcsmacro{plauthorname} expects the name constituents as they are recorded in the
-database (special characters will be expanded). The option \joption{plauthorfirstinit} (see next section),
+database (special characters are handled). The option \joption{plauthorfirstinit} (see next section),
however, allows you to pass only an initial character instead of a first name.
If you want to refer to an item number, use \jcsmacro*{citeitem}\jmacro{\{<key>\}} within your publication list.
This will print the item number in square brackets (like the \jfcsmacro{cite} command in numeric citation styles),
but as opposed to normal \jfcsmacro{cite} it also considers all numbering tweaks you make via the \bpl\ options.
-\condbr{4}
-\subsection{Additional options}\label{sec:addopts}
+\subsection{Additional Options}\label{sec:addopts}
Currently, the following additional options are provided (next to the
options provided by the \bibltx\ package itself%
@@ -231,54 +248,68 @@ options provided by the \bibltx\ package itself%
\item [{\joption{plauthornameprefix=<von-part>}}] ~
This is an alternative to the \jcsmacro{plauthorname} macro
-described in sec.~\ref{sec:standard-usage}.\footnote{The options were called \jfoption{omitname}, \jfoption{omitfirstname} and \jfoption{omitnameprefix} until v.\,1.4
-of \bpl. The old options still work, but are marked as deprecated.} However, due to the
-way bibliography options are implemented in \bibltx, this only works
-if your name does not consist of non-ASCII characters. Hence, the
-\jcsmacro{plauthorname} macro is the recommended way.
+described in sec.~\ref{sec:standard-usage} to set the publication list author.%
+\footnote{The options were called \jfoption{omitname}, \jfoption{omitfirstname} and \jfoption{omitnameprefix}
+ until v.\,1.4 of \bpl. The old options still work, but are marked as deprecated.}
+As opposed to the macro, however, the options do not provide for multiple authors and name variants
+(see sec.~\ref{sec:multiauthors}).
\item [{\joption{plauthorhandling{[}=omit|highlight{]}}}] default: \emph{omit}.
By default, the publist author (as defined with \jmacro{plauthor}) is omitted from
the author or editor list. If you use the option \joption{plauthorhandling=highlight},
-it is highlighted instead (i.\,e., set in bold face by default; see sec.~\ref{sec:auxmacros} how to change that).
+it is highlighted instead (set in bold face by default; see sec.~\ref{sec:auxmacros} how to change that).
\item [{\joption{nameorder{[}=family-given|given-family{]}}}] default: \emph{family-given}.
-By default, the author and editor names with \joption{plauthorhandling=highlight} are output in the order ``Lastname, Given Names''.
-To change the order to ``Given Names Lastname'', pass the option \joption{nameorder=given-family} to \bibltx.
+By default, the author and editor names with \joption{plauthorhandling=highlight} are output in the order \enquote{Lastname, Given Names}.
+To change the order to \enquote{Given Names Lastname}, pass the option \joption{nameorder=given-family} to \bibltx.
-\item [{\joption{boldyear{[}=true|false{]}}}] default: \emph{true}.
+\item [{\joption{hlyear{[}=true|false{]}}}] default: \emph{true}.\footnote{%
+ Named \joption{boldyear} up to \bpl\ 1.27. The old option is till supported.}
-By default, the year (or pubstate, if no year is given) is printed in bold face.
-To prevent this, pass the
-option \joption{boldyear=false} to \bibltx.
-
-\item [{\joption{pubstateextra{[}=true|false{]}}}] default: \emph{false}.
-
-If this is \texttt{true}, the extradate marker (a, b etc.) is also appended to pubstates if there are multiple
-indentical pubstates (e.\,g., \emph{Forthcoming(a)}, \emph{Forthcoming(b)})
+By default, the year (or pubstate, if no year is given) is highlighted (printed in bold face).
+To prevent this, pass the option \joption{hlyear=false} to \bibltx. The form of highlighting
+can be customized as well (see sec.~\ref{sec:auxmacros}).
\item [{\joption{marginyear{[}=true|false{]}}}] default: \emph{false}.
With this option set to \joption{true}, the publication year (or pubstate) will
be printed in the margin once a new year starts. The option also has
-the effect that all marginpars are printed ``reversed'', i.\,e.
+the effect that all marginpars are printed \enquote{reversed}, i.\,e.
on the left side in one-sided documents (via \jfcsmacro{reversemarginpar}).
-\item [{\joption{plnumbered{[}=true|false|reset{]}}}] default: \emph{true}.
+\item [{\joption{pubstateextra{[}=true|false{]}}}] default: \emph{false}.
+
+If this is \texttt{true}, the extradate marker (a, b etc.) is also appended to pubstates if there are multiple
+indentical pubstates; e.\,g., \emph{Forthcoming(a)}, \emph{Forthcoming(b)}.
-By default, the publication list is numbered continuously. If you divide your publication list into sections by means of
-\jfcsmacro{refsection}s (as documented in section~\ref{sec:example}), you will thus get a global numbering over all sections.
+\item [{\joption{plsorting{[}=sorting scheme{]}}}] default: \emph{ydt}.
-If you prefer the numbering to start from 1 at each section instead, set this option to \joption{reset}.
+This option works like the \joption{sorting} option you know from \bibltx. It is provided since \bpl\ sets its
+own sorting schemes (differently depending on \joption{plauthorhandling}) and thus overrides any setting made
+via \bibltx. You can overwrite those settings here yourself and set an own sorting scheme (see also sec.~\ref{sec:sorting}).
-If you do not want to have any numbers at all, set this option to \joption{false}.
+\item [{\joption{plnumbering{[}=global|local|global-descending|local-descending|none{]}}}] default: \emph{global}.%
+\footnote{Up to \bpl\ 1.27, numbering was controlled by two separate options, \joption{plnumbered} and \joption{reversenumbering}.
+These options (and their differently named values) are still supported, but you get a warning if you use them and are encouraged
+to use the new options.}
-\item [{\joption{reversenumbering{[}=true|false{]}}}] default: \emph{false}.
+By default, the publication list is numbered in continuous ascending order. If you divide your publication list into sections
+by means of \jfcsmacro{refsection}s (as documented in section~\ref{sec:example}), you will thus get a global numbering over
+all sections.
-If this option is \joption{true}, the entries will be numbered in descending order, starting from the total
-number of entries back to 1. Also works with \joption{plnumbered=reset}.
+If you prefer the numbering to start from 1 at each section instead, set this option to \joption{local}.
+
+If you prefer descending rather than ascending enumeration, starting from the total
+number of entries back to 1 (either globally or within each section), use the \joption{*-descending} variants.
+
+If you do not want to have any numbers at all, set this option to \joption{none}.
+
+Note that if you use descending enumeration, \bpl\ will have to do a full counting of all printed items first
+in order to calculate the numbering properly (considering any filtering you might have done).
+For this calculation, a specific auxiliary file, \emph{<filename>.bpx}, is used. The package will warn you if more
+\texttt{latex} runs are required. See sec.~\ref{sec:numbers} for details.
\item [{\joption{plauthorfirstinit{[}=true|false{]}}}] default: \emph{false}.
@@ -290,6 +321,17 @@ with abbreviated and full first name (\textsc{J. Doe} and well as \textsc{John D
works of colleagues with the same surname (maybe your family members), which you will not want to mark as your own's.
Of course, the solution does not help if there is an entry with same surname and same first name initial (such as \textsc{Jane Doe}).
+\item [{\joption{jifinfo{[}=true|false{]}}}] default: \emph{false}.
+
+If this option is \joption{true}, the journal impact factor, as specified via the \texttt{impactfactor} field
+(see section~\ref{sec:impactfactor}), will be appended to the entries.
+
+\item [{\joption{oainfo{[}=simple|verbose|none{]}}}] default: \emph{none}.
+
+If \joption{simple} or \joption{verbose} is selected, open-access information, as specified via the \texttt{openaccess} field
+(see section~\ref{sec:openaccess}), will be appended to the entries. With \joption{verbose}, different OpenAccess strategies
+(\enquote*{gold}, \enquote*{green}) will be differentiated in the output.
+
\item [{\joption{prinfo{[}=true|false{]}}}] default: \emph{true}.
@@ -298,41 +340,134 @@ If this option is \joption{true}, peer review information, as specified via the
\end{description}
%
-The following options are available if \textsf{hyperref} is loaded:
+The following option is available if \textsf{hyperref} is loaded:
\begin{description}
-\item [{\joption{linktitleall{[}=true|false{]}}}] default: \emph{false}.
+\item [{\joption{linktitles={[}all|doi|url|isbn|issn|none{]}}}] default: \emph{none}.
Turns the title (and subtitle, if available) into a clickable hyperlink to either the DOI, the URL, the ISBN,
-or the ISSN (the latter two via customizable search provider), if any of these is available. See section~\ref{sec:clicktitles}
-for details.
-
-\item [{\joption{linktitledoi{[}=true|false{]}}}] default: \emph{false}.
-
-Turns the title (and subtitle, if available) into a clickable hyperlink to the DOI, if available. See section~\ref{sec:clicktitles}
-for details.
-
-\item [{\joption{linktitleurl{[}=true|false{]}}}] default: \emph{false}.
-
-Turns the title (and subtitle, if available) into a clickable hyperlink to the URL, if available. See section~\ref{sec:clicktitles}
-for details.
-
-\item [{\joption{linktitleisbn{[}=true|false{]}}}] default: \emph{false}.
-
-Turns the title (and subtitle, if available) into a clickable hyperlink to the ISBN (via customizable search provider), if available.
+or the ISSN (the latter two via customizable search provider), if any of these is available.\footnote{%
+Up to v.\,1.27, \bpl\ provided a range of boolean options for this task. These are still supported, but considered deprecated.
+} The option \joption{all} activates all these targets, \joption{none} deactivates them.
+To enable several targets, multiple values might be passed to the option, embraced and separated by comma
+(e.\,g., \joption{linktitles=\{doi, isbn,issn\}}). If an entry provides several targets, the first found from
+the order DOI \textrightarrow\ URL \textrightarrow\ ISBN \textrightarrow\ ISSN is used, so the order passed to the
+option does not matter, except for \joption{all} and \joption{none}, which activate or deactivate all at their
+position in the chain (and options that follow might re-enable them, as in \joption{linktitles=\{none,url\}}).
See section~\ref{sec:clicktitles} for details.
-\item [{\joption{linktitleissn{[}=true|false{]}}}] default: \emph{false}.
-
-Turns the title (and subtitle, if available) into a clickable hyperlink to the ISSN (via customizable search provider), if available.
-See section~\ref{sec:clicktitles} for details.
-
-
\end{description}
+%
+All options listed here should be passed directly to \bibltx\ via \jfcsmacro{usepackage} when loading \bibltx, and they apply to the whole
+document.
+
+For most options, it is possible to change them (repeatedly) within the document. To this end, the macro
+\jcsmacro*[-3]{ExecutePublistOptions} is provided. It takes a comma-separated list of options as its mandatory argument
+and can be used (repeatedly) in preamble or anywhere in the document body.
+The executed options apply as of the next bibliography (\jfcsmacro{printbibliography}) that follows.
+Options that \emph{cannot} be changed within a document that way are \joption{plnumbering} and \joption{pubstateextra},
+as these options employ features that can only be set once per document.
+However, please refer to sec.~\ref{sec:numbers} on how to address some frequently requested numbering changes.
+
+Also note that
+\begin{itemize}
+ \setlength\itemsep{0pt}
+ \item with the \joption{plauthor*} options, as opposed to repeated \jcsmacro{plauthorname} calls,
+ repeated setting of these name options respectively \emph{overwrite}, and not extend, the previous name
+ settings.
+ \item With \joption{plauthorhandling}, \bpl\ uses different sorting schemes for \joption{omit} (\texttt{ydt})
+ and \joption{highlight} (\texttt{yndt}), considering the names as sorting factor only in the latter case
+ (cf. sec.~\ref{sec:sorting}).
+ Changing this option within a document, however, does \emph{not} adjust the sorting scheme if you use
+ refsections (to make it work, \jfcsmacro{newrefcontext[sorting=<sorting scheme>]} will have to be set
+ within each refsection). This is a \bibltx\ limitation which also applies to \joption{plsorting}.
+\end{itemize}
+\subsection{Numbers Games}\label{sec:numbers}
+
+Among the peculiarities of publication lists is the greater variety of numbering conventions, as compared
+with normal bibliographies in academic works. If a numeric citation style is used in the latter, the items are
+as a rule numbered in ascending order, and each entry has a unique number. The main function of the
+number here is to provide fast access from a reference to the referred entry, and a continuous ascending
+enumeration fits this purpose best.
+
+In publication lists, this is only a secondary function of the number, as publication lists are not meant for citing.
+The main function here is, in fact, \emph{metrical}. In our increasingly metricalized academic cultures, and against the
+backdrop of the \enquote{publish or perish} imperative scholars find themselves confronted with, the sheer number
+of publications a scholar has is, next to weighted references to them (e.\,g., the\emph{ h-index}), social capital.
+The numbering of items in publication lists is thus, if you will, a sort of account balance.
+
+Now since publication genres (e.\,g., journal papers vs. chapters)
+are usually valued differently (\enquote*{impact!}), many people prefer to have a more differentiated balance in
+the sense that the publication lists should swiftly tell the reader how many papers, monographs, chapters, etc.,
+a person has published. Hence those people prefer to number their publications by section rather than continuously.
+
+On the other hand, since publication lists are often ordered reversely chronological, many people also prefer
+to have a reversely ordered (descending) numbering, either globally over the whole list or, again, by section.
+
+The \bpl\ package accounts for these needs and provides, via the option \joption{plnumbering}, five different numbering variants:
+\begin{enumerate}\setlength{\itemsep}{0pt}
+ \item Global ascending numbers (that continue across sections) [\emph{default}]
+ \item Global descending numbers [\joption{plnumbering=global-descending}]
+ \item Local ascending numbers (that are reset to 1 in each section) [\joption{plnumbering=local}]
+ \item Local descending numbers [\joption{plnumbering=local-descending}]
+ \item No numbers at all [\joption{plnumbering=none}]
+\end{enumerate}
+%
+Particularly reverse numbering is, technically, a bit of a challenge; \bibltx, for reasons, does not provide this
+feature out of the box. In order to do descending numbering one has to know the number of entries in the
+publication list, or in individual sections, before the first number can get assigned. Since items can be
+filtered out, for instance via \bibltx's \joption{filter} or \joption{keyword} options, \bibltx\ itself
+only knows this number after all entries have been processed for output. Yet since it only provides for
+ascending numbers, \bibltx\ does not (need to) store this knowledge, and thus, it is not readily available
+to \bpl.
+
+Thus, with \joption{plnumbering=global-descending} and \joption{plnumbering=local-descending}, \bpl\ will first
+count all printed entries, globally and per section, write the results in an auxiliary file (\emph{<filename>.bpx}),
+and then do at least one additional pass in order to fix the numbering. This requires additional \texttt{latex}
+cycles, but you will be given a warning if the numbering is not yet fully resolved.
+
+Now in addition to these mentioned variants, some people still need a more fine-grained control over the numbering.
+For instance, some scholars want to list both their publications and their conference papers (talks) in the
+same document, but separately numbered. Both publications and talks might themselves be divided into different
+sections (\emph{monographs}, \emph{papers}, $\ldots$; \emph{keynotes}, \emph{invited talks}, $\ldots$) which, however,
+should be numbered continuously within their category. So \joption{plnumbering=local} alone does not produce
+the desired result.
+
+For this case, \bpl\ provides two alternative and slightly different features: First, an environment
+\jenviron*{plnumgroup}.
+All sections you embrace by this in the context of \joption{plnumbering=local} are numbered continuously,
+so resetting is suspended within this environment. This works both with ascending and descending enumeration.
+
+In the ascending case only, the macro \jcsmacro*{setplnum} is useful as a (more flexible) alternative.
+It allows you to set the first label number of the next bibliography section that follows to a specific
+(arbitrary) value.
+All following numbers ascend or descend from this new value.
+The adjustment applies to all following bibliography sections with continuous numbering, i.\,e., if
+a \joption{global} numbering scheme is used.
+With \joption{local} numbering, by contrast, following sections continue to be reset.
+In all cases, the macro can be used repeatedly for re-adjustments in forthcoming sections.
+
+So in the use case mentioned above, inserting \verb|\setplnum{1}| before the first section that lists
+conference papers, together with \joption{plnumbering=global} (the default), will provide the desired result
+(provided that ascending numbering is wished for). The desired result will also be achieved by embracing
+all publication-related sections in a \jenviron{plnumgroup} environment and and all conference-paper-related
+sections in another one, while using \joption{plnumbering=local} or \joption{plnumbering=local-descending}.
+This second approach, as opposed to the former, also works for descending enumeration.
+
+The macro \jcsmacro*{shiftplnum}, by contrast with \jcsmacro{setplnum}, provides a way to adjust the
+subsequent numbering in a \emph{relative} way.
+It takes a positive or negative integer value that determines how much and in which direction the adjustment
+shall take place (e.\,g., \verb|\shiftpblnum{2}| or \verb|\shiftplnum{-1}|). This might be useful if you
+insert items in the list manually or in some very specific settings. Again, this macro can be used
+repeatedly and applies to all subsequent items as of the next section that follows. As opposed to
+\jcsmacro{setplnum}, the shifting also persists with \joption{local} numbering schemes.
+
+For the numbering output by \jfcsmacro{citeitem}, analogous shifting can be done via the macro
+\jcsmacro*{shiftciteitem}.
-\subsection{Handling multiple authors and\slash or name variants}\label{sec:multiauthors}
+\subsection{Handling Multiple Authors and\slash or Name Variants}\label{sec:multiauthors}
If multiple \jcsmacro{plauthorname} specifications have been entered (or a \jcsmacro{plauthorname} specification
in addition to a specification via the options \joption{plauthorname}, \joption{plauthorname} and
@@ -365,7 +500,7 @@ Note that multiple specifications also affect filtering (see sec.~\ref{sec:filte
entries authored or edited by any and all specified persons.
-\subsection{Truncation of name lists}\label{sec:trunc}
+\subsection{Truncation of Name Lists}\label{sec:trunc}
Truncation of name lists via the \jfoption{maxnames} and \jfoption{minnames} \bibltx\ options is supported.
However, it works a bit differently than normal truncation, since the publication list authors have to be
@@ -390,7 +525,28 @@ The omission indicator, \jcsmacro*{plnameomission}, can be redefined. The defaul
\newcommand*\plnameomission{\bibellipsis\addcomma\addspace}
\end{lstlisting}
-\subsection{Adding Peer Review Information}\label{sec:peerreview}
+\subsection{Adding Specific Entry-Related Information}
+
+Publication lists usually contain some information which is not commonly given in normal
+bibliographies, information that is supposed to help ranking the author (bibliometrics; the
+peer review procedures publications have been subject to) or their publication strategy (e.\,g.,
+OpenAcess). To allow for this, \bpl\ provides some extra features which will be described in what
+follows. Please also refer to sec.~\ref{sec:auxmacros} for some customization possibilities.
+
+\subsubsection{Journal Impact Factor}\label{sec:impactfactor}
+
+Although the meaningfulness of this measure has been heavily challenged, scholars in many fields are
+supposed to give the impact factor (citation ratio) of the journals they have published in.
+Thus, \bpl\ provides a specific database field, \texttt{impactfactor}, in which you can store
+this value and maybe specify the metrics used.
+
+If you publish in a journal repeatedly, it might make sense to store the journal name and impact factor
+in a specific \texttt{@xdata} subset (please refer to the \bibltx\ documentation for details on such subsets).
+
+If the option \joption{jifinfo} is true, then \bpl\ will append the respective information to the entries.
+A specific localizable bibkey is used for this purpose (see section~\ref{sec:localization}).
+
+\subsubsection{Peer Review}\label{sec:peerreview}
It is common, and sometimes mandatory, to add information to publication list entries indicating if
and how listed work has been subject to peer review.
@@ -413,9 +569,31 @@ A specific localizable bibkey is used for this purpose (see section~\ref{sec:loc
the shorthands, you can also enter arbitrary text to the \texttt{peerreview} field, which is then output
as is (and not localized).
+
+\subsubsection{OpenAccess Strategies}\label{sec:openaccess}
+
+Some people also want, or need, to indicate whether and which (some of) their publications have
+been published \enquote*{OpenAccess}, that is, free of charges and other access barriers.
+To this end, \bpl\ provides a specific database field, \texttt{openaccess}, in which you can use
+the following shorthands:
+
+\begin{itemize}\setlength{\itemsep}{0pt}
+ \item{\texttt{true}} -- Indicates that this publication has been published OpenAccess, no matter which strategy
+ \item{\texttt{gold}} -- Indicates that this publication has been published OpenAccess from the beginning (\enquote*{gold} strategy)
+ \item{\texttt{green}} -- Indicates that a secondary version of this publication has been made openly accessible on a public document
+ server (repository) (\enquote*{green} strategy)
+\end{itemize}
+%
+If you use the option \joption{oainfo=verbose} or \joption{oainfo=simple}, then \bpl\ will append the respective information to the entries.
+In the former case, \enquote*{gold} and \enquote*{green} publications will be differentiated, in the latter, this differentiation is
+not done.
+Specific localizable bibkeys are used for this purpose (see section~\ref{sec:localization}). Instead of
+the shorthands, you can also enter arbitrary text to the \texttt{openaccess} field, which is then output
+as is (and not localized).
+
\section{Customization}
-\subsection{Auxiliary macros and lengths}\label{sec:auxmacros}
+\subsection{Auxiliary Macros and Lengths}\label{sec:auxmacros}
The appearance of the \emph{marginyear} is controlled by the
\jcsmacro*{plmarginyear} macro, which has the following default definition:
@@ -427,6 +605,15 @@ The appearance of the \emph{marginyear} is controlled by the
If you want to change the appearance, just redefine this macro via
\jfcsmacro{renewcommand{*}}.
+The highlighting of the year within the entry, if \joption{hlyear=false} has not been set,
+is controlled by the \jcsmacro*{plyearhl} macro, which has the following default definition:
+\begin{lstlisting}[moretexcs={[2]{providecommand,plyearhl,mkbibbold}}]
+\providecommand*\plyearhl[1]{%
+ \mkbibbold{#1}%
+}
+\end{lstlisting}
+If you need another form of highlighting, redefine this macro via \jfcsmacro{renewcommand{*}}.
+
The highlighting of the publication list author, if \joption{plauthorhandling=highlight} has been set,
is controlled by the \jcsmacro*{plauthorhl} macro, which has the following default definition:
\begin{lstlisting}[moretexcs={[2]{providecommand,plauthorhl,mkbibbold}}]
@@ -441,15 +628,18 @@ The indendation of the bibliographic entries (lines > 1) can be adjusted by sett
This might be needed for long bibliographies (> 99 entries) in order to adjust to the extra
space the item number needs.
-If you need to adjust the numbering of items manually, you can do so with the macro \jcsmacro*{shiftbplnum}.
-It takes a positive or negative integer value that determines how much and in which direction it is shifted
-(e.\,g., \verb|\shiftpblnum{2}| or \verb|\shiftbplnum{-1}|). This can be used repeatedly, anywhere, and applies
-to all subsequent items.
-For the numbering output by \jfcsmacro{citeitem}, analogous shifting can be done by
-\jcsmacro*{shiftciteitem}.
-
+The separator between extra information (peer review, OpenAccess) can be redefined.
+The default definition is:
+\begin{lstlisting}[moretexcs={[4]{plextrainfosep,addsemicolon,addspace}}]
+\newcommand*\plextrainfosep{\addsemicolon\addspace}
+\end{lstlisting}
+%
+The embracing of extra information (brackets by default) can be customized by changing
+\begin{lstlisting}[moretexcs={[4]{DeclareFieldFormat,mkbibbrackets}}]
+\DeclareFieldFormat{plextrainfo}{\mkbibbrackets{#1}}
+\end{lstlisting}
-\subsection{Using a different base style}\label{sec:basestyle}
+\subsection{Using a Different Base Style}\label{sec:basestyle}
By default, \bpl\ loads \bibltx's \emph{authoryear} style, and it has been written
to work with that style. However, it is possible to try a diffent base style, if
@@ -469,13 +659,12 @@ differ from what you expect with specific base styles. To change the order,
use the package option \joption{nameorder} (see sec.~\ref{sec:addopts}).
-\subsection{Clickable titles}\label{sec:clicktitles}
+\subsection{Clickable Titles}\label{sec:clicktitles}
-With the options \joption{linktitledoi}, \joption{linktitleurl}, \joption{linktitleisbn}, \joption{linktitleissn}
-or the combining option \joption{linktitleall}, titles and subtitles are turned into clickable hyperlinks if
-the \textsf{hyperref} package is loaded, and the respective data is there, i.\,e., if either the DOI field,
-the URL field, the ISBN field or the ISSN field is defined for the given entry (checked in this order if multiple
-of these options or \joption{linktitleall} are used).
+With the option \joption{linktitles} (see sec.~\ref{sec:addopts}), titles and subtitles are turned into clickable
+hyperlinks if the \textsf{hyperref} package is loaded, and the respective data is there, i.\,e., if either the
+DOI field, the URL field, the ISBN field or the ISSN field is defined for the given entry (checked in this order
+if multiple of these targets are enabled or \joption{linktitles=all} is used).
With URL and DOI, direct links are created. With ISBN or ISSN, a link to a search provider is created instead
(\textsf{worldcat} by default). The search provider can be customized by redefining the following macros:
@@ -486,9 +675,9 @@ With URL and DOI, direct links are created. With ISBN or ISSN, a link to a searc
%
where \verb|#1| is a placeholder for the ISBN or ISSN, respectively.
-Note that the output of URLs, DOIs, ISBNs and ISSNs is not affected by the \joption{linktitle} options,
-so you might get redundant output. To control (e.\,g., omit) them, use the \joption{url}, \joption{doi}
-and \joption{isbn} biblatex options.
+Note that the \joption{linktitles} option does not have any affect on whether URLs, DOIs, ISBNs and ISSNs
+are printed, so you might get redundant output. To control (e.\,g., omit) them, use the \joption{url},
+\joption{doi} and \joption{isbn} biblatex options.
\section{Localization}\label{sec:localization}
@@ -496,19 +685,24 @@ Since the package draws on \bibltx, it supports localization.
The following additional localization keys (\jfcsmacro{bibstrings})
are added by the package:
\begin{itemize}
-\item \emph{with}: the preposition ``with'' that precedes the list of
- co-authors by default (i.\,e., with \joption{plauthorhandling=omit}).
-\item \emph{parttranslationof}: the expression ``partial translation of''
- for entries referring to partially translated work via \bibltx's
- ``related entries'' feature (see sec.~\ref{sec:partial-translations}).
-\item \emph{peerreview:sb}: the phrase ``single blind peer review''.
-\item \emph{peerreview:db}: the phrase ``double blind peer review''.
-\item \emph{peerreview:op}: the phrase ``open peer review''.
-\item \emph{peerreview:co}: the phrase ``collaborative peer review''.
-\item \emph{peerreview:cc}: the phrase ``cascading peer review''.
-\item \emph{peerreview:tp}: the phrase ``third-party peer review''.
-\item \emph{peerreview:pp}: the phrase ``post-publication peer review''.
-\item \emph{peerreview:no}: the phrase ``no peer review''.
+\setlength{\itemsep}{0pt}
+\item \emph{impactfactor}: the expression \enquote{impact factor}.
+\item \emph{openaccess:true}: the expression \enquote{OpenAccess}.
+\item \emph{openaccess:gold}: the phrase \enquote{OpenAccess (gold)}.
+\item \emph{openaccess:green}: the phrase \enquote{OpenAccess (green)}.
+\item \emph{parttranslationof}: the expression \enquote{partial translation of}
+ for entries referring to partially translated work via \bibltx's
+ \enquote*{related entries} feature (see sec.~\ref{sec:partial-translations}).
+\item \emph{peerreview:sb}: the phrase \enquote{single blind peer review}.
+\item \emph{peerreview:db}: the phrase \enquote{double blind peer review}.
+\item \emph{peerreview:op}: the phrase \enquote{open peer review}.
+\item \emph{peerreview:co}: the phrase \enquote{collaborative peer review}.
+\item \emph{peerreview:cc}: the phrase \enquote{cascading peer review}.
+\item \emph{peerreview:tp}: the phrase \enquote{third-party peer review}.
+\item \emph{peerreview:pp}: the phrase \enquote{post-publication peer review}.
+\item \emph{peerreview:no}: the phrase \enquote{no peer review}.
+\item \emph{with}: the preposition \enquote{with} that precedes the list of
+ co-authors by default (i.\,e., with \joption{plauthorhandling=omit}).
\end{itemize}
Currently, these additional localization keys are available in the following
languages: English, French and German.%
@@ -520,7 +714,7 @@ languages: English, French and German.%
The following extensions of standard \bibltx\ features are provided.
-\subsection{Review bibliography type}\label{sec:review-bibliography-type}
+\subsection{Review Bibliography Type}\label{sec:review-bibliography-type}
Although a \emph{review} entry type is provided by \bibltx, this
type is treated as an alias for \emph{article}. The \bpl\ package
@@ -534,15 +728,15 @@ titles are clearly marked and do not interfere with the overall numbering
(see sec.~\ref{sec:example} for an example).
-\subsection{Partial translations}\label{sec:partial-translations}
+\subsection{Partial Translations}\label{sec:partial-translations}
-A new ``related entry'' type \emph{parttranslationof} is provided.
+A new \enquote{related entry} type \emph{parttranslationof} is provided.
This is an addition to the \emph{translationof} related entry type
\bibltx\ itself provides. Please refer to the \bibltx\ manual \cite{bibltx}
-on what ``related entries'' are and how to use them.
+on what \enquote{related entries} are and how to use them.
-\section{An example}\label{sec:example}
+\section{An Example}\label{sec:example}
Publication lists are usually categorized by genre (monographs, articles,
book chapters, etc.). For this task, the use of \jfmacro{refsections} (see \cite[sec 3.7.4]{bibltx} for details) is
@@ -596,9 +790,10 @@ Then a typical file would look like example~\ref{example} (p.~\pageref{example})
\end{lstlisting}
%
If you want to add other people's reviews of your work, add a section
-such as the following:
+as shown in example~\ref{example2}.
\begin{lstlisting}[caption={Adding foreign reviews},
- moretexcs={[4]{bibfont,subsubsection,printbibliography,newrefsection}}]
+ label={example2},
+ moretexcs={[4]{bibfont,subsubsection,printbibliography,newrefsection}}]
\subsubsection*{Reviews of my thesis}
\newrefsection[mythesis-reviews]
\renewcommand\bibfont{\small}
@@ -625,23 +820,15 @@ which has to be passed to \jfcsmacro{printbibliography}, as in:
This will effectively print only publications which have been authored or edited by the
person(s) specified as via \jcsmacro{plauthorname} (or the corresponding option).
-If you do not use reverse numbering (see below), you can also use other filter
-possibilities provided by \bibltx, such as filtering by type or by keyword.
-So if you want to extract all of your articles from a larger database with entries
-of diverse type and authors, specify:
+You can also use other filter possibilities provided by \bibltx, such as filtering by type
+or by keyword. So if you want to extract all of your articles from a larger database with
+entries of diverse type and authors, specify:
\begin{lstlisting}[moretexcs={[1]{printbibliography}}]
\printbibliography[heading=none,filter=mine,type=article]
\end{lstlisting}
%
Note that this method sometimes requires several reruns of \texttt{latex}
-to fix the numbering (with standard ascending numbers).
-
-With reverse (descending) numbering (\joption{reversenumbering=true}),
-the numbering does not correctly work if you filter by type or keyword.
-If you need descending numbering, please resort to separated bibliography databases
-(as advised in sec.~\ref{sec:example}) rather than to \joption{type} or
-\joption{keyword} filtering!
-
+to fix the numbering.
\section{Sorting\label{sec:sorting}}
@@ -682,7 +869,7 @@ date (day, month and year).
The following templates, with and without author sorting, are provided:
\begin{itemize}
\item \jmacro{ddt}: Sort by full \textbf{d}ate (\textbf{d}escending)
- and \textbf{t}itle (both ascending).
+ and \textbf{t}itle (ascending).
\item \jmacro{ddnt}: Sort by full \textbf{d}ate (\textbf{d}escending),
author \textbf{n}ame and \textbf{t}itle (both ascending).
\item \jmacro{dt}: Sort by full \textbf{d}ate and \textbf{t}itle (all ascending).
@@ -695,13 +882,19 @@ The following templates, with and without author sorting, are provided:
(all ascending).
\end{itemize}
In order to use any of these, or another sorting template provided by \bibltx\,
-use \bibltx's \jfmacro{sorting} option, which can be passed either globally
-(via \joption{sorting=<template>} as a \bibltx\ option) or locally
-(by means of a \jfcsmacro{newrefcontext} macro with the option \joption{sorting=<template>}).
+use \bpl's \jmacro{plsorting} option, which can be passed globally
+as a \bibltx\ option or locally by means of \jcsmacro{ExecutePublistOptions}.
+Alternatively, you can also use a \jfcsmacro{newrefcontext} macro with the option
+\jfoption{sorting=<template>}.
So, to sort your talks in descending order by full date in your CV, you would
use either
\begin{lstlisting}[moretexcs={[1]{printbibliography}}]
-\usepackage[style=publist,sorting=ddt]{biblatex}
+\usepackage[style=publist,plsorting=ddt]{biblatex}
+\end{lstlisting}
+or
+\begin{lstlisting}[moretexcs={[3]{printbibliography,ExecutePublistOptions}}]
+\ExecutePublistOptions{plsorting=ddt}
+\printbibliography[heading=none]
\end{lstlisting}
or
\begin{lstlisting}[moretexcs={[3]{printbibliography,newrefcontext,endrefcontext}}]
@@ -709,13 +902,41 @@ or
\printbibliography[heading=none]
\endrefcontext
\end{lstlisting}
-
-\condbr{4}
+%
+Note that if you use refsections, local sorting changes will only apply to the current
+refsection.
\section{Revision Log}
\begin{description}
+ \item [{V. 2.0 (2022/10/24):}]~
+ \begin{itemize}
+ \item Provide \jcsmacro{ExecutePublistOptions} to change (most) \bpl\ options
+ on the fly (see sec.~\ref{sec:addopts}).
+ \item Properly support reverse (descending) numbering even if filtering is done.
+ \item Add \jenviron{plnumgroup} environment to temporarily suspend
+ \joption{plnumbering=local} (see sec.~\ref{sec:numbers}).
+ \item Add new macro\jcsmacro{setplnum} (see sec.~\ref{sec:numbers}).
+ \item Rename macro \jcsmacro{shiftbplnum} to \jcsmacro{shiftplnum}
+ (old macro kept for compatibility).
+ \item Fix macro \jcsmacro{shiftplnum} with ascending numbering.
+ \item Introduce one option (\joption{plnumbering}) that replaces the previous two
+ separated options (\joption{plnumbered} + \joption{reversenumbering}).
+ Old options are kept for compatibility.
+ \item Introduce one multichoice option (\joption{linktitles}) that replaces the previous
+ options (\joption{linktitleall}, \joption{linktitledoi}, \joption{linktitleurl},
+ \joption{linktitleisbn},\\ \joption{linktitleissn}).
+ Old options are kept for compatibility.
+ \item Rename option \joption{boldyear} to \joption{hlyear}.
+ Old option kept for compatibility.
+ \item Allow customization of the highlighting set with \joption{hlyear}.
+ See sec.~\ref*{sec:auxmacros}.
+ \item Introduce \joption{plsorting} option.
+ \item Add support for OpenAccess information (see sec.~\ref{sec:openaccess}).
+ \item Add support for journal impact factor (see sec.~\ref{sec:impactfactor}).
+ \end{itemize}
+
\item [{V. 1.27 (2022-10-03):}]~
\begin{itemize}
\item Fix once more plauthor check with non-ASCII chars and macros.
@@ -723,7 +944,7 @@ or
\item [{V. 1.26 (2022-01-05):}]~
\begin{itemize}
- \item Provide means to add peer review information (see section~\ref{sec:peerreview}).
+ \item Provide means to add peer review information (see sec.~\ref{sec:peerreview}).
\item Add a data model (\texttt{*.dbx}) file.
\item Fix \jcsmacro{textcite} output at least for the standard cases.
\item Do not highlight/omit author/editor names in related entries.
@@ -735,7 +956,7 @@ or
\begin{itemize}
\item More robustification with names consisting of non-ASCII chars.
\item With \joption{pubstateextra}, differentiate between pubstates.
- \end{itemize}
+ \end{itemize}\condbr{2}
\item [{V. 1.24 (2021-12-11):}]~
\begin{itemize}
@@ -759,7 +980,7 @@ or
\item Add \jcsmacro{citeitem} command. See sec.~\ref{sec:standard-usage}.
\item Add \jcsmacro{shiftbplnum} and \jcsmacro{shiftciteitem} helper macros
for manual adjustment of numbering.
- See sec.~\ref{sec:auxmacros}.
+ See sec.~\ref{sec:numbers}.
\item Properly sort \jfoption{prepublished} pubstate type.
\end{itemize}
@@ -964,8 +1185,8 @@ Gregorio.%
\item [{V.~0.3~(2012-10-23):}]~
\begin{itemize}
-\item Bug fix: Add missing ``and'' if omitted name was last minus one.
-\item Bug fix: Fix output with ``et al.'' if omitted name is first and
+\item Bug fix: Add missing \enquote{and} if omitted name was last minus one.
+\item Bug fix: Fix output with \enquote{et al.} if omitted name is first and
\emph{liststop} is 1.
\item Set \joption{maxnames} default to 4.
\item Add filter possibility (see sec.~\ref{sec:filtering}).
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
index c89a6f821f..ab5d84b08a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
@@ -25,8 +25,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{1.27}
-\def\bpl@rdate{2022/10/03}
+\def\bpl@version{2.0}
+\def\bpl@rdate{2022/10/24}
\ProvidesFile{publist.bbx}[\bpl@rdate\space v.\bpl@version\space
biblatex bibliography style (JSP)]
@@ -45,159 +45,432 @@
% Bibliography Options and Base Style
%
-% Deprecated Options (as of v. 1.4)
-\DeclareBibliographyOption{omitname}{%
- \PackageWarning{biblatex-publist}
- {The omitname option is deprecated!\MessageBreak
- Please use plauthorname instead.}{}%
- \def\bpl@osurname{#1}}
-\DeclareBibliographyOption{omitfirstname}{%
- \PackageWarning{biblatex-publist}
- {The omitfirstname option is deprecated!\MessageBreak
- Please use plauthorfirstname instead.}{}%
- \def\bpl@ofirstname{#1}}
-\DeclareBibliographyOption{omitnameprefix}{%
- \PackageWarning{biblatex-publist}
- {The omitnameprefix option is deprecated!\MessageBreak
- Please use plauthornameprefix instead.}{}%
- \def\bpl@ovonpart{#1}}
-
-% Valid options
-\DeclareBibliographyOption{plauthorname}{\def\bpl@osurname{#1}}
-\DeclareBibliographyOption{plauthorfirstname}{\def\bpl@ofirstname{#1}}
-\DeclareBibliographyOption{plauthornameprefix}{\def\bpl@ovonpart{#1}}
-
+% Toggles and switches
+%
\newif\if@marginyear\@marginyearfalse
-\DeclareBibliographyOption{marginyear}[true]{%
- \ifstrequal{#1}{true}{\@marginyeartrue\reversemarginpar}{\@marginyearfalse}
-}
-
-\newif\if@unboldyear\@unboldyearfalse
-\DeclareBibliographyOption{boldyear}[true]{%
- \ifstrequal{#1}{false}{\@unboldyeartrue}{\@unboldyearfalse}
-}
-
+\newif\if@hlyear\@hlyeartrue
\newif\if@pubstateextra\@pubstateextrafalse
-\DeclareBibliographyOption{pubstateextra}[true]{%
- \ifstrequal{#1}{true}{\@pubstateextratrue}{\@pubstateextrafalse}
-}
-
\newif\if@hlauthor\@hlauthorfalse
-\DeclareBibliographyOption{plauthorhandling}[omit]{%
- \ifstrequal{#1}{highlight}{\@hlauthortrue}{\@hlauthorfalse}
-}
-
\newif\if@givenfirst\@givenfirstfalse
-\DeclareBibliographyOption{nameorder}[family-given]{%
- \ifstrequal{#1}{given-family}{\@givenfirsttrue}{\@givenfirstfalse}
-}
-
-\newtoggle{firstinit}
-\DeclareBibliographyOption{plauthorfirstinit}[true]{%
- \ifstrequal{#1}{false}{\togglefalse{firstinit}}{\toggletrue{firstinit}}
-}
-
+\newtoggle{bpl@firstinit}
\newif\if@bpl@numbered\@bpl@numberedtrue
\newif\if@bpl@numberreset\@bpl@numberresetfalse
-\DeclareBibliographyOption{plnumbered}[true]{%
- \ifstrequal{#1}{false}{% 1. "false"
- \defbibenvironment{bibliography}
- {\list
- {}
- {\setlength{\leftmargin}{\bibhang}%
- \setlength{\itemindent}{-\leftmargin}%
- \setlength{\itemsep}{\bibitemsep}%
- \setlength{\parsep}{\bibparsep}}%
- }
- {\endlist}
- {\item}}{% else: 2. "reset"
- \ifstrequal{#1}{reset}{%
- \@bpl@numberresettrue%
- \defbibenvironment{bibliography}
- {\addtolength{\labelnumberwidth}{\extralabelnumberwidth}%
- \list
- {\printtext[labelnumberwidth]{%
- \printfield{labelprefix}%
- \printfield{labelnumber}}}
- {\setlength{\labelwidth}{\labelnumberwidth}%
- \setlength{\leftmargin}{\labelwidth}%
- \setlength{\labelsep}{\biblabelsep}%
- \addtolength{\leftmargin}{\labelsep}%
- \setlength{\itemsep}{\bibitemsep}%
- \setlength{\parsep}{\bibparsep}}}%
- {\endlist
- \csnumdef{blx@labelnumber@\the\c@refsection}{0}%
- }
- {\item}
- }{% else: "true" (default: nothing to do here)
- }% end of clause
- }
-}
-
\newtoggle{bpl@linktitle}
\newtoggle{bpl@linktitleisbn}
\newtoggle{bpl@linktitleissn}
\newtoggle{bpl@linktitleurl}
\newtoggle{bpl@linktitledoi}
-\DeclareBibliographyOption{linktitleall}[true]{%
- \ifstrequal{#1}{true}{
- \toggletrue{bpl@linktitleisbn}
- \toggletrue{bpl@linktitleissn}
- \toggletrue{bpl@linktitleurl}
- \toggletrue{bpl@linktitledoi}
- \toggletrue{bpl@linktitle}
- }{%
- \togglefalse{bpl@linktitleisbn}
- \togglefalse{bpl@linktitleissn}
- \togglefalse{bpl@linktitleurl}
- \togglefalse{bpl@linktitledoi}
- \togglefalse{bpl@linktitle}
- }%
-}
-\DeclareBibliographyOption{linktitleurl}[true]{%
- \ifstrequal{#1}{true}{%
- \toggletrue{bpl@linktitleurl}
- \toggletrue{bpl@linktitle}
- }{%
- \togglefalse{bpl@linktitleurl}
- }%
-}
-\DeclareBibliographyOption{linktitledoi}[true]{%
- \ifstrequal{#1}{true}{%
- \toggletrue{bpl@linktitledoi}
- \toggletrue{bpl@linktitle}
- }{%
- \togglefalse{bpl@linktitledoi}
- }%
-}
-\DeclareBibliographyOption{linktitleisbn}[true]{%
- \ifstrequal{#1}{true}{%
- \toggletrue{bpl@linktitleisbn}
- \toggletrue{bpl@linktitle}
- }{%
- \togglefalse{bpl@linktitleisbn}
- }%
+\newtoggle{bpl@jifinfo}
+\newtoggle{bpl@prinfo}
+\toggletrue{bpl@prinfo}
+\newtoggle{bpl@oainfo}
+\newtoggle{bpl@oainfosimple}
+\newif\if@bpl@reversenum\@bpl@reversenumfalse
+
+
+% Valid options
+%
+
+% We use l3keys here since (1) LaTeX2e keys are rather
+% new and (2) do not provide for choice keys yet.
+\ExplSyntaxOn
+\keys_define:nn { bpl }
+{
+ % plauthorname=<name>
+ % Store author family name
+ plauthorname.tl_set:N = \bpl@osurname,
+ % plauthorfirstname=<name>
+ % Store author first name
+ plauthorfirstname.tl_set:N = \bpl@ofirstname,
+ % plauthornameprefix=<name>
+ % Store author name prefix
+ plauthornameprefix.tl_set:N = \bpl@ovonpart,
+ % marginyear=<true|false>
+ % Print year in margin
+ marginyear.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \@marginyeartrue
+ \reversemarginpar
+ }{
+ \@marginyearfalse
+ }
+ },
+ marginyear.default:n = { true },
+ % hlyear=<true|false>
+ % Set year highlighted
+ hlyear.legacy_if_set:n = @hlyear,
+ % pubstateextra=<true|false>
+ % Extra label for pubstates
+ pubstateextra.legacy_if_set:n = @pubstateextra,
+ pubstateextra.usage:n = preamble,
+ % plauthorhandling=<highlight|omit>
+ % Highlight or omit pl author?
+ plauthorhandling.choice:,
+ % highlight
+ plauthorhandling / highlight.code:n =
+ {
+ \@hlauthortrue
+ \bpl@set@defsorting
+ },
+ % omit
+ plauthorhandling / omit.code:n =
+ {
+ \@hlauthorfalse
+ \bpl@set@defsorting
+ },
+ plauthorhandling.default:n = { omit },
+ % nameorder=<family-given|given-family>
+ % Ordering of plauthor name
+ nameorder.choice:,
+ % given-family
+ nameorder / given-family.code:n = { \@givenfirsttrue },
+ % family-given
+ nameorder / family-given.code:n = { \@givenfirstfalse },
+ nameorder.default:n = { family-given },
+ % plsorting=<sortingscheme>
+ % Set a sorting scheme
+ plsorting.code:n =
+ {
+ \bpl@set@defsorting[#1]
+ },
+ plsorting.default:n = { ydt },
+ % plauthorfirstinit=<true|false>
+ % Pass initial as first name
+ plauthorfirstinit.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@firstinit}
+ }{
+ \togglefalse{bpl@firstinit}
+ }
+ },
+ plauthorfirstinit.default:n = { true },
+ % plnumbering=<global|local|global-descending|local-descending|none>
+ % Select numbering scheme
+ plnumbering .choice:,
+ % global: use default consecutive numbering
+ plnumbering / global .code:n =
+ { \@bpl@numberresetfalse },
+ % local: use local numbering
+ plnumbering / local .code:n =
+ { \@bpl@numberresettrue },
+ % global-descending: use default consecutive numbering
+ plnumbering / global-descending .code:n =
+ {
+ \@bpl@numberresetfalse
+ \@bpl@reversenumtrue
+ },
+ % local-descending: use local numbering
+ plnumbering / local-descending .code:n =
+ {
+ \@bpl@numberresettrue
+ \@bpl@reversenumtrue
+ },
+ % none: no numbering at all
+ plnumbering / none .code:n =
+ {
+ \defbibenvironment{bibliography}
+ {\list
+ {}
+ {\setlength{\leftmargin}{\bibhang}%
+ \setlength{\itemindent}{-\leftmargin}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ }
+ {\endlist}
+ {\item}%
+ },
+ plnumbering.default:n = { global },
+ plnumbering.usage:n = preamble,
+ % linktitles=<all|url|doi|isbn|issn|none>
+ linktitles .multichoice:,
+ % Link all titles
+ linktitles / all.code:n =
+ {
+ \toggletrue{bpl@linktitleisbn}
+ \toggletrue{bpl@linktitleissn}
+ \toggletrue{bpl@linktitleurl}
+ \toggletrue{bpl@linktitledoi}
+ \toggletrue{bpl@linktitle}
+ },
+ % Link no titles
+ linktitles / none.code:n =
+ {
+ \togglefalse{bpl@linktitleisbn}
+ \togglefalse{bpl@linktitleissn}
+ \togglefalse{bpl@linktitleurl}
+ \togglefalse{bpl@linktitledoi}
+ \togglefalse{bpl@linktitle}
+ },
+ % Link titles with URL
+ linktitles / url.code:n =
+ {
+ \toggletrue{bpl@linktitleurl}
+ \toggletrue{bpl@linktitle}
+ },
+ % Link titles with DOI
+ linktitles / doi.code:n =
+ {
+ \toggletrue{bpl@linktitledoi}
+ \toggletrue{bpl@linktitle}
+ },
+ % Link titles with ISBN
+ linktitles / isbn.code:n =
+ {
+ \toggletrue{bpl@linktitleisbn}
+ \toggletrue{bpl@linktitle}
+ },
+ % Link titles with ISSN
+ linktitles / issn.code:n =
+ {
+ \toggletrue{bpl@linktitleissn}
+ \toggletrue{bpl@linktitle}
+ },
+ linktitles.default:n = { all },
+ % jifinfo=<true|false>
+ % Impact factor information
+ jifinfo.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@jifinfo}
+ }{
+ \togglefalse{bpl@jifinfo}
+ }
+ },
+ jifinfo.default:n = { true },
+ % oainfo=<verbose|simple|nonr>
+ % Output OpenAccess information
+ oainfo .choice:,
+ oainfo / verbose.code:n =
+ {
+ \toggletrue{bpl@oainfo}
+ \togglefalse{bpl@oainfosimple}
+ },
+ oainfo / simple.code:n =
+ {
+ \toggletrue{bpl@oainfo}
+ \toggletrue{bpl@oainfosimple}
+ },
+ oainfo / none.code:n =
+ {
+ \togglefalse{bpl@oainfo}
+ \togglefalse{bpl@oainfosimple}
+ },
+ oainfo.default:n = { simple },
+ % prinfo=<true|false>
+ % Output peer-review information
+ prinfo.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@prinfo}
+ }{
+ \togglefalse{bpl@prinfo}
+ }
+ },
+ prinfo.default:n = { true }
}
-\DeclareBibliographyOption{linktitleissn}[true]{%
- \ifstrequal{#1}{true}{%
- \toggletrue{bpl@linktitleissn}
- \toggletrue{bpl@linktitle}
- }{%
- \togglefalse{bpl@linktitleissn}
- }%
+
+%
+% Deprecated options
+%
+\keys_define:nn { bpl-deprecated }
+{
+ % plnumbered=<true|false|reset>
+ % Select numbering scheme
+ plnumbered .choice:,
+ % false: no numbering at all
+ plnumbered / false .code:n =
+ {
+ \defbibenvironment{bibliography}
+ {\list
+ {}
+ {\setlength{\leftmargin}{\bibhang}%
+ \setlength{\itemindent}{-\leftmargin}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ }
+ {\endlist}
+ {\item}%
+ },
+ % true: use default consecutive numbering
+ plnumbered / true .code:n =
+ {
+ \@bpl@numberresetfalse
+ },
+ % reset: use local numbering
+ plnumbered / reset .code:n =
+ {
+ \@bpl@numberresettrue
+ },
+ plnumbered.default:n = { true },
+ plnumbered.usage:n = preamble,
+ % reversenumbering=<true|false>
+ % Use descending numbers
+ reversenumbering.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \@bpl@reversenumtrue
+ }{
+ \@bpl@reversenumfalse
+ }
+ },
+ reversenumbering.usage:n = preamble,
+ % boldyear=<true|false>
+ % Set year bold
+ boldyear.legacy_if_set:n = @hlyear,
+ % linktitleall=<true|false>
+ % Link all titles
+ linktitleall.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@linktitleisbn}
+ \toggletrue{bpl@linktitleissn}
+ \toggletrue{bpl@linktitleurl}
+ \toggletrue{bpl@linktitledoi}
+ \toggletrue{bpl@linktitle}
+ }{
+ \togglefalse{bpl@linktitleisbn}
+ \togglefalse{bpl@linktitleissn}
+ \togglefalse{bpl@linktitleurl}
+ \togglefalse{bpl@linktitledoi}
+ \togglefalse{bpl@linktitle}
+ }
+ },
+ linktitleall.default:n = { true },
+ % linktitleurl=<true|false>
+ % Link titles with URL
+ linktitleurl.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@linktitleurl}
+ \toggletrue{bpl@linktitle}
+ }{
+ \togglefalse{bpl@linktitleurl}
+ }
+ },
+ linktitleurl.default:n = { true },
+ % linktitledoi=<true|false>
+ % Link titles with DOI
+ linktitledoi.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@linktitledoi}
+ \toggletrue{bpl@linktitle}
+ }{
+ \togglefalse{bpl@linktitledoi}
+ }
+ },
+ linktitledoi.default:n = { true },
+ % linktitledoi=<true|false>
+ % Link titles with ISBN
+ linktitleisbn.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@linktitleisbn}
+ \toggletrue{bpl@linktitle}
+ }{
+ \togglefalse{bpl@linktitleisbn}
+ }
+ },
+ linktitleisbn.default:n = { true },
+ % linktitledoi=<true|false>
+ % Link titles with ISSN
+ linktitleissn.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@linktitleissn}
+ \toggletrue{bpl@linktitle}
+ }{
+ \togglefalse{bpl@linktitleissn}
+ }
+ },
+ linktitleissn.default:n = { true }
}
-\newtoggle{bpl@prinfo}
-\toggletrue{bpl@prinfo}
-\DeclareBibliographyOption{prinfo}[true]{%
- \ifstrequal{#1}{true}{\toggletrue{bpl@prinfo}}{\togglefalse{bpl@prinfo}}
+% Command to set options
+\NewDocumentCommand { \ExecutePublistOptions } { m }
+{
+ \keys_set:nn { bpl } { #1 }
}
-\newif\if@bpl@reversenum\@bpl@reversenumfalse
-\DeclareBibliographyOption{reversenumbering}[true]{%
- \ifstrequal{#1}{true}{\@bpl@reversenumtrue}{\@bpl@reversenumfalse}
+% Command to set deprecated options
+\NewDocumentCommand { \ExecuteDepPublistOptions } { m m }
+{
+ \keys_set:nn { bpl-deprecated } { #1 }
+
+ \PackageWarning{biblatex-publist}%
+ {The~ option~ `#1'~ is~ deprecated!\MessageBreak
+ Please~ use~ the~ option~ `#2'~ instead.}
}
+\ExplSyntaxOff
+
+% Biblatex options directly feed into the l3 options
+%
+\DeclareBibliographyOption{plauthorname}{\ExecutePublistOptions{plauthorname=#1}}
+\DeclareBibliographyOption{plauthorfirstname}{\ExecutePublistOptions{plauthorfirstname=#1}}
+\DeclareBibliographyOption{plauthornameprefix}{\ExecutePublistOptions{plauthornameprefix=#1}}
+\DeclareBibliographyOption{plauthorfirstinit}[true]{\ExecutePublistOptions{plauthorfirstinit=#1}}
+\DeclareBibliographyOption{plauthorhandling}[omit]{\ExecutePublistOptions{plauthorhandling=#1}}
+\DeclareBibliographyOption{nameorder}[family-given]{\ExecutePublistOptions{nameorder=#1}}
+\DeclareBibliographyOption{plsorting}[ydt]{\ExecutePublistOptions{plsorting=#1}}
+
+\DeclareBibliographyOption{plnumbering}[global]{\ExecutePublistOptions{plnumbering=#1}}
+\DeclareBibliographyOption{marginyear}[true]{\ExecutePublistOptions{marginyear=#1}}
+\DeclareBibliographyOption{hlyear}[true]{\ExecutePublistOptions{hlyear=#1}}
+\DeclareBibliographyOption{pubstateextra}[true]{\ExecutePublistOptions{pubstateextra=#1}}
+\DeclareBibliographyOption{jifinfo}[true]{\ExecutePublistOptions{jifinfo=#1}}
+\DeclareBibliographyOption{oainfo}[simple]{\ExecutePublistOptions{oainfo=#1}}
+\DeclareBibliographyOption{prinfo}[true]{\ExecutePublistOptions{prinfo=#1}}
+
+\DeclareBibliographyOption{linktitles}[all]{\ExecutePublistOptions{linktitles={#1}}}% Extra braces needed (multichoice)
+
+
+
+% Deprecated Options
+%
+% Deprecated as of v. 1.4
+\DeclareBibliographyOption{omitname}{%
+ \PackageWarning{biblatex-publist}
+ {The omitname option is deprecated!\MessageBreak
+ Please use plauthorname instead.}{}%
+ \def\bpl@osurname{#1}}
+\DeclareBibliographyOption{omitfirstname}{%
+ \PackageWarning{biblatex-publist}
+ {The omitfirstname option is deprecated!\MessageBreak
+ Please use plauthorfirstname instead.}{}%
+ \def\bpl@ofirstname{#1}}
+\DeclareBibliographyOption{omitnameprefix}{%
+ \PackageWarning{biblatex-publist}
+ {The omitnameprefix option is deprecated!\MessageBreak
+ Please use plauthornameprefix instead.}{}%
+ \def\bpl@ovonpart{#1}}
+%
+% Deprecated as of v. 2.0
+\DeclareBibliographyOption{plnumbered}[true]{\ExecuteDepPublistOptions{plnumbered=#1}{plnumbering}}
+\DeclareBibliographyOption{reversenumbering}[true]{\ExecuteDepPublistOptions{reversenumbering=#1}{plnumbering}}
+\DeclareBibliographyOption{boldyear}[true]{\ExecuteDepPublistOptions{boldyear=#1}{hlyear}}
+\DeclareBibliographyOption{linktitleall}[true]{\ExecuteDepPublistOptions{linktitleall=#1}{linktitles}}
+\DeclareBibliographyOption{linktitleurl}[true]{\ExecuteDepPublistOptions{linktitleurl=#1}{linktitles}}
+\DeclareBibliographyOption{linktitledoi}[true]{\ExecuteDepPublistOptions{linktitledoi=#1}{linktitles}}
+\DeclareBibliographyOption{linktitleisbn}[true]{\ExecuteDepPublistOptions{linktitleisbn=#1}{linktitles}}
+\DeclareBibliographyOption{linktitleissn}[true]{\ExecuteDepPublistOptions{linktitleissn=#1}{linktitles}}
+
+
+% Base style
+%
+
% Check if users have defined different base styles
% If not, use authoryear.
\newif\ifbpl@standardbasestyle\bpl@standardbasestylefalse
@@ -211,14 +484,28 @@
pagetracker=true,
labelnumber,
useprefix=false,
- defernumbers=true}
+ defernumbers=true%
+}
+
+\newcommand*\bpl@set@defsorting[1][\empty]{%
+ \edef\bpl@scheme{#1}%
+ \ifx#1\empty
+ % Default sorting depends on plauthorhandling
+ \if@hlauthor%
+ \edef\bpl@scheme{ydnt}%
+ \else
+ \edef\bpl@scheme{ydt}%
+ \fi
+ \fi
+ \ifx\@onlypreamble\@notprerr
+ \newrefcontext[sorting=\bpl@scheme]
+ \else
+ \ExecuteBibliographyOptions{sorting=\bpl@scheme}
+ \fi
+}
-% Default sorting depends on plauthorhandling
-\if@hlauthor%
- \ExecuteBibliographyOptions{sorting=ydnt}
-\else
- \ExecuteBibliographyOptions{sorting=ydt}
-\fi
+% Initialize
+\bpl@set@defsorting
% Execute these options only with the standard base style
\ifbpl@standardbasestyle
@@ -237,6 +524,20 @@
% Helper functions
%
+% Only provided by biblatex 3.19ff., so we roll our own
+\@ifundefined{AtNextRefsection}{%
+ \newrobustcmd*{\AtNextRefsection}{%
+ \ifundef\blx@hook@refsection@next
+ {\gdef\blx@hook@refsection@next{\global\undef\blx@hook@refsection@next}}
+ {}%
+ \gappto\blx@hook@refsection@next%
+ }
+ \patchcmd{\blx@refsection@i}%
+ {\csuse{blx@hook@refsectioninit}}%
+ {\csuse{blx@hook@refsectioninit}\csuse{blx@hook@refsection@next}}
+ {}{\PackageWarning{biblatex-publist}{Patching refsection failed!}}
+}{}
+
%
% Removing braces from names (courtesy of egreg at
% http://tex.stackexchange.com/a/79583/19291)
@@ -294,13 +595,13 @@
\def\bpl@lsurname{}
\def\bpl@lfirstname{}
\def\bpl@lvonpart{}
-\def\jsp@splitpllist#1{%
+\def\bpl@splitpllist#1{%
\begingroup
\protected@edef\@tempa{#1}%
\expandafter\endgroup
- \expandafter\jsp@@splitpllist\@tempa\relax%
+ \expandafter\bpl@@splitpllist\@tempa\relax%
}
-\def\jsp@@splitpllist#1,#2,#3\relax{%
+\def\bpl@@splitpllist#1,#2,#3\relax{%
\global\def\bpl@lfirstname{#1}%
\global\def\bpl@lvonpart{#2}%
\global\def\bpl@lsurname{#3}%
@@ -322,7 +623,7 @@
test { \bpl@ifstreq{\bpl@esurname}{\bpl@tsurname} }
and
( test { \bpl@ifstreq{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \bpl@iffirstcharequal{\bpl@efirstname}{\bpl@tfirstname} } )
+ or ( test { \iftoggle{bpl@firstinit} } and test{ \bpl@iffirstcharequal{\bpl@efirstname}{\bpl@tfirstname} } )
)
and
( test { \bpl@ifstreq{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
@@ -332,7 +633,7 @@
\def\bpl@lfirstname{}%
\def\bpl@lvonpart{}%
\renewcommand*{\do}[1]{%
- \jsp@splitpllist{##1}%
+ \bpl@splitpllist{##1}%
\bpl@normalize{\bpl@lsurname}{\bpl@elsurname}%
\bpl@normalize{\bpl@lfirstname}{\bpl@elfirstname}%
\bpl@normalize{\bpl@lvonpart}{\bpl@elvonpart}%
@@ -340,7 +641,7 @@
test { \bpl@ifstreq{\bpl@elsurname}{\bpl@tsurname} }
and
( test { \bpl@ifstreq{\bpl@elfirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@lfirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \bpl@iffirstcharequal{\bpl@lfirstname}{\bpl@tfirstname} } )
+ or ( test { \iftoggle{bpl@firstinit} } and test{ \bpl@iffirstcharequal{\bpl@lfirstname}{\bpl@tfirstname} } )
)
and
( test { \bpl@ifstreq{\bpl@elvonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@lvonpart}{} }) }
@@ -388,7 +689,13 @@
}
%
-% Highlighting auf publist author with plauthorhandling=highlight
+% Highlighting of the year with hlyear=true
+\providecommand*\plyearhl[1]{%
+ \mkbibbold{#1}%
+}
+
+%
+% Highlighting of publist author with plauthorhandling=highlight
\providecommand*\plauthorhl[1]{%
\mkbibbold{#1}%
}
@@ -407,6 +714,7 @@
%
% Omission of names in truncated autor list
\newcommand*\plnameomission{\bibellipsis\addcomma\addspace}
+\newcommand*\plextrainfosep{\addsemicolon\addspace}
%
@@ -415,12 +723,41 @@
\csnumgdef{bpl@itemtotal}{0}
\csnumgdef{bpl@currentitem}{0}
\csnumgdef{bpl@saverefsection}{0}
-\csnumgdef{bpl@currentitem}{0}
-\csnumgdef{bpl@all@entrycount}{0}
-\csnumgdef{bpl@comp@entrycount:0}{0}
+\csnumgdef{bpl@secitems:0}{0}
+\csnumgdef{bpl@savesecitems}{0}
+\newcounter{bplitems}
+\setcounter{bplitems}{0}
+\newcounter{bplsecitems}
+\setcounter{bplsecitems}{0}
+\newcounter{bplbgitems}
+\setcounter{bplbgitems}{0}
+\newcounter{plnumgroup}
+\setcounter{plnumgroup}{0}
\newbool{newsection}
+\newbool{needbpxrerun}
+\newbool{plnumgroup}
+\def\resetplnumgroup{}
+
+\newenvironment{plnumgroup}%
+ {%
+ \global\booltrue{plnumgroup}%
+ \stepcounter{plnumgroup}%
+ \setcounter{bplbgitems}{0}%
+ \csnumgdef{bpl@numgroup@done}{0}%
+ \if@bpl@numberreset%
+ \ifbool{@bpl@reversenum}{%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@savesecitems:\theplnumgroup}}%
+ }{}%
+ \fi%
+ }{%
+ \AtNextRefsection{%
+ \global\boolfalse{plnumgroup}%
+ \stepcounter{plnumgroup}%
+ \resetplnumgroup%
+ }%
+ }%
-\preto\blx@refsection{\global\setbool{newsection}{true}}
+\preto\blx@refsection{\global\booltrue{newsection}}
% Possibility to manually make the space occupied by the label wider
\newlength\extralabelnumberwidth
@@ -429,6 +766,10 @@
\defbibenvironment{bibliography}
{%
\addtolength{\labelnumberwidth}{\extralabelnumberwidth}%
+ \setcounter{bplsecitems}{0}%
+ \ifcsundef{bpl@savesecitems:\theplnumgroup}{%
+ \csnumgdef{bpl@savesecitems:\theplnumgroup}{0}%
+ }{}%
\list
{\printtext[labelnumberwidth]{%
\printfield{labelprefix}%
@@ -444,21 +785,80 @@
\renewcommand*{\makelabel}[1]{\hss##1}%
}%
{\endlist
- \ifnumgreater{\c@refsection}{\bpl@saverefsection}%
- {\if@bpl@reversenum
- \csnumgdef{bpl@itemtotal}{\csuse{bpl@itemtotal}}%
- \else
- \csnumgdef{bpl@itemtotal}{\csuse{bpl@itemtotal}+\csuse{bpl@currentitem}}%
- \fi}{}%
+ \if@bpl@numberreset
+ \ifbool{manitemreset}{%
+ % Set back start number after manually set section
+ \global\csnumgdef{bpl@set@itemtotal}{0}%
+ \global\boolfalse{manitemreset}%
+ }{}%
+ \ifnumgreater{\c@refsection}{\bpl@saverefsection}%
+ {%
+ \csnumdef{blx@labelnumber@\the\c@refsection}{0}%
+ \ifbool{@bpl@reversenum}{%
+ \ifbool{plnumgroup}{%
+ \csnumgdef{bpl@numgroup@done}{\csuse{bpl@numgroup@done}+\csuse{bpl@savesecitems}}%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@savesecitems:\theplnumgroup}-\csuse{bpl@numgroup@done}}%
+ \gdef\resetplnumgroup{\csnumgdef{bpl@itemtotal}{\csuse{bpl@set@itemtotal}}}%
+ }{%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@set@itemtotal}}%
+ }
+ }{%
+ \ifbool{plnumgroup}{%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@itemtotal}+\csuse{bpl@savesecitems}}%
+ \gdef\resetplnumgroup{\csnumgdef{bpl@itemtotal}{\csuse{bpl@set@itemtotal}}}%
+ }{%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@set@itemtotal}}%
+ }
+ }%
+ }{}%
+ \else
+ \ifnumgreater{\c@refsection}{\bpl@saverefsection}%
+ {\if@bpl@reversenum
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@itemtotal}}%
+ \else
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@itemtotal}+\csuse{bpl@currentitem}}%
+ \fi%
+ }{}%
+ \fi
\csnumgdef{bpl@saverefsection}{\c@refsection}%
+ \if@bpl@reversenum%
+ % Write item count to the bpx file
+ \global\boolfalse{needbpxrerun}%
+ \if@filesw%
+ % Check if we have a changed value
+ \ifcsdef{bpl@items:\therefsection}{%
+ \ifnumequal{\value{bplitems}}{\numexpr\csuse{bpl@items:\therefsection}\relax}{}{%
+ \global\booltrue{needbpxrerun}
+ }
+ }{\global\booltrue{needbpxrerun}}
+ \protected@write\bpl@bpxfile{}{%
+ \protect\csdef{bpl@items:\therefsection}{\thebplitems}%
+ \protect\csdef{bpl@items}{\thebplitems}%
+ \protect\csdef{bpl@secitems:\therefsection}{\thebplsecitems}%
+ \protect\csdef{bpl@savesecitems:\theplnumgroup}{\thebplbgitems}%
+ }%
+ \fi
+ \fi
+ }
+ {%
+ \if@bpl@reversenum%
+ % We count all really output items for proper reverse numbering
+ % (global and per section)
+ \stepcounter{bplitems}%
+ \fi%
+ \stepcounter{bplsecitems}%
+ \ifbool{plnumgroup}{%
+ \stepcounter{bplbgitems}%
+ \csnumgdef{bpl@savesecitems}{\thebplsecitems}%
+ }{}%
+ \item%
}
- {\item}
\DeclareFieldFormat{labelnumber}{%
\ifbool{newsection}{%
% Fix start counter value
\mkbibsecstart{#1}%
- \global\setbool{newsection}{false}%
+ \global\boolfalse{newsection}%
}{}%
\mkbibdesc{#1}%
\csnumgdef{bpl@currentitem}{#1}%
@@ -466,61 +866,123 @@
\newrobustcmd{\mkbibdesc}[1]{%
% Print labelnumber as actual number, plus item total
- \number\numexpr\csuse{bpl@itemtotal}+#1\relax%
+ \number\numexpr\csuse{bpl@itemtotal}+#1+\csuse{bpl@shift@itemtotal}\relax%
}%
-\newrobustcmd{\mkbibsecstart}[1]{%
- \csnumgdef{bpl@itemtotal}{\csuse{bpl@itemtotal}-#1+1}%
-}
-
% Way to manually shift the numbering
\csnumgdef{bpl@shift@itemtotal}{0}
-\newcommand*\shiftbplnum[1]{%
+\newcommand*\shiftplnum[1]{%
\csnumgdef{bpl@shift@itemtotal}{#1}%
}
+% Way to manually set the numbering
+\newbool{manitemset}
+\newbool{manitemreset}
+\csnumgdef{bpl@set@itemtotal}{0}
+\newcommand*\setplnum[1]{%
+ \csnumgdef{bpl@set@itemtotal}{#1-1}%
+ \global\booltrue{manitemset}%
+}
+
+\newrobustcmd{\mkbibsecstart}[1]{%
+ \ifbool{manitemset}{%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@set@itemtotal}}%
+ \global\boolfalse{manitemset}%
+ \if@bpl@numberreset
+ \global\booltrue{manitemreset}%
+ \fi
+ }{%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@itemtotal}-#1+1}%
+ }
+}
+
%
% Reverse numbering
-% Inspired by moewew's approach at
-% https://tex.stackexchange.com/a/563328/19291
%
+\AtBeginDocument{%
+ \if@bpl@reversenum
+ \newread\bpl@read@bpxfile
+ \immediate\openin\bpl@read@bpxfile=\jobname.bpx
+ \loop\unless\ifeof\bpl@read@bpxfile
+ \read\bpl@read@bpxfile to\bpx@data
+ \ifeof\bpl@read@bpxfile%
+ \else
+ \bpx@data
+ \fi
+ \repeat
+ \immediate\closein\bpl@read@bpxfile
+ \newwrite\bpl@bpxfile
+ \immediate\openout\bpl@bpxfile=\jobname.bpx
+ \if@filesw%
+ \protected@write\bpl@bpxfile{}{\@percentchar\space biblatex-publist auxiliary file:
+ count of items for reverse numbering}%
+ \fi
+ \AtEndDocument{%
+ \ifbool{needbpxrerun}{%
+ \PackageWarning{biblatex-publist}{Please rerun LaTeX!\MessageBreak
+ Still counting items}%
+ }{}
+ }
+ \fi
+}
+
\AtEndOfPackage{%
-\newcounter{prevrefsection}%
-\if@bpl@reversenum
- % Count total number of entries in each refsection
- \AtDataInput{%
- \ifcategory{filtered}{%
- \csnumgdef{bpl@entrycount:\therefsection}{%
- \csuse{bpl@entrycount:\therefsection}+1%
- }%
- \setcounter{prevrefsection}{\therefsection}%
- \addtocounter{prevrefsection}{-1}%
- \csnumgdef{bpl@comp@entrycount:\therefsection}{%
- \csuse{bpl@comp@entrycount:\theprevrefsection}+\csuse{bpl@entrycount:\therefsection}%
- }%
- \csnumgdef{bpl@all@entrycount}{%
- \csuse{bpl@all@entrycount}+1%
+ \newcounter{prevrefsection}%
+ \if@bpl@reversenum
+ \renewrobustcmd{\mkbibdesc}[1]{%
+ \ifbool{@bpl@numberreset}{%
+ % Print the labelnumber as the total number of entries in the
+ % current refsection, minus the actual labelnumber, plus one
+ \ifbool{plnumgroup}{%
+ \number\numexpr\csuse{bpl@itemtotal}-#1+1\relax%
+ }{%
+ \ifcsdef{bpl@secitems:\therefsection}{%
+ \number\numexpr\csuse{bpl@secitems:\therefsection}-#1+1%
+ +\csuse{bpl@shift@itemtotal}\relax%
+ }{%
+ \number\numexpr\csuse{bpl@itemtotal}-#1+1\relax%
+ }%
+ }%
+ }{%
+ % Use decreasing counter
+ \ifcsdef{bpl@items:\theprevrefsection}{%
+ \number\numexpr\csuse{bpl@itemtotal}-#1+1-\csuse{bpl@items:\theprevrefsection}\relax%
+ }{%
+ \number\numexpr\csuse{bpl@itemtotal}-#1+1\relax%
+ }%
+ }%
+ }%
+ \renewrobustcmd{\mkbibsecstart}[1]{%
+ \setcounter{prevrefsection}{\therefsection}%
+ \addtocounter{prevrefsection}{-1}%
+ \ifbool{@bpl@numberreset}{%
+ \ifbool{manitemset}{%
+ % Start from manually set value and count down
+ \csnumgdef{bpl@secitems:\therefsection}{\csuse{bpl@set@itemtotal}+1}\relax%
+ \global\boolfalse{manitemset}%
+ }{%
+ \ifbool{plnumgroup}{%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@itemtotal}+\csuse{bpl@shift@itemtotal}}%
+ }{%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@shift@itemtotal}}%
+ }
+ }%
+ }{%
+ \ifbool{manitemset}{%
+ % Start from manually set value and count down
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@set@itemtotal}+1+\csuse{bpl@items:\theprevrefsection}}\relax%
+ \csnumgdef{bpl@set@itemtotal}{\csuse{bpl@set@itemtotal}-\csuse{bpl@secitems:\therefsection}}%
+ }{%
+ \ifcsundef{bpl@items}{%
+ \PackageWarning{biblatex-publist}{Please rerun LaTeX!\MessageBreak
+ Still counting items in ref section \therefsection}%
+ }{%
+ \csnumgdef{bpl@itemtotal}{\csuse{bpl@items}+\csuse{bpl@shift@itemtotal}}%
+ }%
+ }%
}%
- }{}%
- }%
- \renewrobustcmd{\mkbibdesc}[1]{%
- % Print the labelnumber as the total number of entries in the
- % current refsection, minus the actual labelnumber, plus one
- \number\numexpr\csuse{bpl@entrycount:\therefsection}+\csuse{bpl@itemtotal}-#1+1\relax%
- }%
- \renewrobustcmd{\mkbibsecstart}[1]{%
- \setcounter{prevrefsection}{\therefsection}%
- \addtocounter{prevrefsection}{-1}%
- \if@bpl@numberreset
- \csnumgdef{bpl@itemtotal}{#1-1+\csuse{bpl@shift@itemtotal}}%
- \else
- \csnumgdef{bpl@itemtotal}{\csuse{bpl@all@entrycount}%
- -\csuse{bpl@comp@entrycount:\theprevrefsection}%
- -\csuse{bpl@entrycount:\therefsection}-#1+1%
- +\csuse{bpl@shift@itemtotal}}%
- \fi%
- }%
-\fi
+ }%
+ \fi
}%
@@ -537,18 +999,41 @@
%
+% OpenAccess type
+%
+\DeclareFieldFormat{openaccess}{%
+ \iftoggle{bpl@oainfosimple}{%
+ \ifbibstring{openaccess:true}%
+ {\bibstring{openaccess:true}}%
+ {#1}%
+ }{%
+ \ifbibstring{openaccess:#1}%
+ {\bibstring{openaccess:#1}}%
+ {\ifbibstring{openaccess:true}%
+ {\bibstring{openaccess:true}}%
+ {#1}%
+ }%
+ }%
+}
+
+%
% Peer-review type
%
-\newcommand\printprinfo[1]{%
- \ifbibstring{peerreview:#1}%
+\DeclareFieldFormat{peerreview}{%
+ \ifbibstring{peerreview:#1}%
{\bibstring{peerreview:#1}}%
{#1}%
}
-\DeclareFieldFormat{peerreview}{%
- \printtext[brackets]{\printprinfo{#1}}%
+%
+% Impact factor
+%
+\DeclareFieldFormat{impactfactor}{%
+ \bibstring{impactfactor}\addcolon\addspace#1%
}
+\DeclareFieldFormat{plextrainfo}{\mkbibbrackets{#1}}
+
%
% Bibliography filter
%
@@ -1015,15 +1500,11 @@
}
\newbibmacro*{bpl:date:labeldate+extradate}{%
- \mkbibbold{\usebibmacro{bpl:date:makedate}}%
-}
-
-\AtBeginDocument{%
- \if@unboldyear
- \renewbibmacro*{bpl:date:labeldate+extradate}{%
- \usebibmacro{bpl:date:makedate}%
- }
- \fi
+ \if@hlyear
+ \plyearhl{\usebibmacro{bpl:date:makedate}}%
+ \else
+ \usebibmacro{bpl:date:makedate}%
+ \fi%
}
\newbibmacro*{bpl:marginyear}{%
@@ -1114,14 +1595,51 @@
}%
}
+\newtoggle{bpl@have@extrainfo}
+
\renewbibmacro*{addendum+pubstate}{%
+ \togglefalse{bpl@have@extrainfo}%
\printfield{addendum}%
\newunit\newblock
\printfield{pubstate}%
- \iftoggle{bpl@prinfo}{%
- \newunit\newblock
- \printfield{peerreview}%
- }{}%
+ \ifboolexpr{ (
+ not test {\iffieldundef{peerreview}}
+ and test {\iftoggle{bpl@prinfo}}
+ )
+ or
+ (
+ not test {\iffieldundef{openaccess}}
+ and test {\iftoggle{bpl@oainfo}}
+ )
+ or
+ (
+ not test {\iffieldundef{impactfactor}}
+ and test {\iftoggle{bpl@jifinfo}}
+ )
+ }{%
+ \newunit\newblock%
+ \printtext[plextrainfo]{%
+ \ifboolexpr{ not test {\iffieldundef{peerreview}}
+ and test {\iftoggle{bpl@prinfo}}
+ }{%
+ \toggletrue{bpl@have@extrainfo}%
+ \printfield{peerreview}%
+ }{}%
+ \ifboolexpr{ not test {\iffieldundef{openaccess}}
+ and test {\iftoggle{bpl@oainfo}}
+ }{%
+ \iftoggle{bpl@have@extrainfo}{\plextrainfosep}{}%
+ \printfield{openaccess}%
+ \toggletrue{bpl@have@extrainfo}%
+ }{}%
+ \ifboolexpr{ not test {\iffieldundef{impactfactor}}
+ and test {\iftoggle{bpl@jifinfo}}
+ }{%
+ \iftoggle{bpl@have@extrainfo}{\plextrainfosep}{}%
+ \printfield{impactfactor}%
+ }{}%
+ }%
+ }{}%
}
%
@@ -1129,6 +1647,10 @@
%
\NewBibliographyString{with}
\NewBibliographyString{parttranslationof}
+\NewBibliographyString{impactfactor}
+\NewBibliographyString{openaccess:true}
+\NewBibliographyString{openaccess:gold}
+\NewBibliographyString{openaccess:green}
\NewBibliographyString{peerreview:sb}
\NewBibliographyString{peerreview:db}
\NewBibliographyString{peerreview:op}
@@ -1140,6 +1662,10 @@
\DefineBibliographyStrings{english}{%
parttranslationof = {partial translation of},
with = {with},
+ impactfactor = {impact factor},
+ openaccess:true = {OpenAccess},
+ openaccess:gold = {OpenAccess (gold)},
+ openaccess:green = {OpenAccess (green)},
peerreview:sb = {single blind peer review},
peerreview:db = {double blind peer review},
peerreview:op = {open peer review},
@@ -1152,6 +1678,10 @@
\DefineBibliographyStrings{french}{%
parttranslationof = {traduction partielle de},
with = {avec},
+ impactfactor = {facteur d'impact},
+ openaccess:true = {libre acc\`es},
+ openaccess:gold = {libre acc\`es (dorée)},
+ openaccess:green = {libre acc\`es (verte)},
peerreview:sb = {\'{e}valuation par des pairs anonymis\'{e}s},
peerreview:db = {\'{e}valuation par les pairs en double aveugle},
peerreview:op = {\'{e}valuation par les pairs ouverte},
@@ -1164,6 +1694,10 @@
\DefineBibliographyStrings{german}{%
parttranslationof = {Teil\"ubersetzung von},
with = {mit},
+ impactfactor = {Impactfaktor},
+ openaccess:true = {OpenAccess},
+ openaccess:gold = {OpenAccess (gold)},
+ openaccess:green = {OpenAccess (gr\"un)},
peerreview:sb = {Blindbegutachtung},
peerreview:db = {Doppelblindbegutachtung},
peerreview:op = {Offene Begutachtung},
@@ -1469,12 +2003,12 @@
\let\abx@name@shortauthor\abx@name@namea
\ifdefstring\abx@field@labelnamesource{shortauthor}
{\ifundef\abx@name@shortauthor
- {\ifundef\abx@name@author
- {\def\abx@field@labelnamesource{editor}}
- {\def\abx@field@labelnamesource{author}}%
+ {\ifundef\abx@name@author
+ {\def\abx@field@labelnamesource{editor}}
+ {\def\abx@field@labelnamesource{author}}%
}%
- {}%
- }%
+ {}%
+ }%
{}%
}%
}%
@@ -1541,5 +2075,7 @@
}%
}
+% Renamed in v. 2.0
+\let\shiftbplnum\shiftplnum
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
index 2de500984f..3aaaedacf7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
@@ -26,8 +26,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{1.27}
-\def\bpl@rdate{2022/10/03}
+\def\bpl@version{2.0}
+\def\bpl@rdate{2022/10/24}
\ProvidesFile{publist.cbx}[\bpl@rdate\space v.\bpl@version\space
biblatex citation style (JSP)]
@@ -66,14 +66,41 @@
}
\providebool{@bpl@reversenum}
+\providebool{@bpl@numberreset}
+\providebool{plnumgroup}
\AtEndOfPackage{%
\if@bpl@reversenum
+ \newcounter{prevcrefsection}%
\renewrobustcmd{\mkrefdesc}[1]{%
- % Print the labelnumber as the total number of entries in the
- % current refsection, minus the actual labelnumber, plus one
- \number\numexpr\csuse{bpl@itemtotal}-#1+1%
+ \ifbool{@bpl@numberreset}{%
+ % Print the labelnumber as the total number of entries in the
+ % current refsection, minus the actual labelnumber, plus one
+ \ifbool{plnumgroup}{%
+ \number\numexpr\csuse{bpl@itemtotal}-#1+1%
+ +\csuse{bpl@secstartshift}\relax%
+ }{%
+ \ifcsdef{bpl@secitems:\therefsection}{%
+ \number\numexpr\csuse{bpl@secitems:\therefsection}-#1+1%
+\csuse{bpl@secstartshift}\relax%
+ }{%
+ \number\numexpr\csuse{bpl@itemtotal}-#1+1%
+ +\csuse{bpl@secstartshift}\relax%
+ }%
+ }%
+ }{%
+ % Use decreasing counter
+ \setcounter{prevcrefsection}{\therefsection}%
+ \addtocounter{prevcrefsection}{-1}%
+ \ifcsdef{bpl@items:\theprevcrefsection}{%
+ \number\numexpr\csuse{bpl@itemtotal}-#1+1%
+ -\csuse{bpl@items:\theprevcrefsection}%
+ +\csuse{bpl@secstartshift}\relax%
+ }{%
+ \number\numexpr\csuse{bpl@itemtotal}-#1+1%
+ +\csuse{bpl@secstartshift}\relax%
+ }%
+ }%
}%
\fi%
}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
index 2248eece0b..afffa069cb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
@@ -1,5 +1,5 @@
% publist.dbx, biblatex data model specification for the biblatex-publist
-% package, version 1.26 (2022-01-05).
+% package, version 2.0 (2022/10/24).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -20,10 +20,14 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Add peerreview (literal) field
+% Add peerreview and openaccess (literal) field
\DeclareDatamodelFields[type=field, datatype=literal]{
+ impactfactor,
+ openaccess,
peerreview}
\DeclareDatamodelEntryfields{
+ impactfactor,
+ openaccess,
peerreview}