summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-publist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-12-14 21:23:50 +0000
committerKarl Berry <karl@freefriends.org>2021-12-14 21:23:50 +0000
commitad5a57b546053077e56eb51359cc71d2647fd40f (patch)
tree578caa7fb1df519730bc50de9966b3b481aae7bd /Master/texmf-dist/tex/latex/biblatex-publist
parent9fb71c20f83ac2ea2861ab2409639afad6794796 (diff)
biblatex-publist (14dec21)
git-svn-id: svn://tug.org/texlive/trunk@61302 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-publist')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx76
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-publist/publist.cbx4
2 files changed, 50 insertions, 30 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx b/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
index 5edbe259b95..100722aa9bc 100644
--- a/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
+++ b/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
@@ -25,8 +25,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{1.24}
-\def\bpl@rdate{2021/12/11}
+\def\bpl@version{1.25}
+\def\bpl@rdate{2021/12/14}
\ProvidesFile{publist.bbx}[\bpl@rdate\space v.\bpl@version\space
biblatex bibliography style (JSP)]
@@ -253,18 +253,36 @@
\fi
}
%
-% Check first token of macro
-% (based on a suggestion by Qrrbrbirlbel at
-% https://tex.stackexchange.com/a/132254)
-\newcommand*{\iffirstinitialsequal}{%
- \@expandtwoargs\if@startswith}
-\newcommand*{\if@startswith}[2]{%
- \if\@car#1.\@nil\@car#2.\@nil
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
+% String comparison methods. We use l3 here since this is more robust.
+\ExplSyntaxOn
+
+% 1. Check first token of macro.
+% Based on code by egreg on https://tex.stackexchange.com/a/405005
+\prg_new_conditional:Nnn \bpl_firstletterequal:nn { T,F,TF,p }
+ {
+ % compare the two strings after full expansion:
+ % f expansion is used so using explicit
+ % strings or macros is the same
+ \str_if_eq:eeTF
+ { \str_head:f { #1 } }
+ { \str_head:f { #2 } }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+\cs_generate_variant:Nn \str_head:n { f }
+
+\NewExpandableDocumentCommand{\bpl@iffirstcharequal}{ m m m m }
+{
+ \bpl_firstletterequal:nnTF { #1 } { #2 } { #3 } { #4 }
+}
+
+% 2. Fully expanded macro content comparison
+\NewExpandableDocumentCommand{\bpl@ifstreq}{ m m m m }
+{
+ \str_if_eq:eeTF { #1 } { #2 } { #3 } { #4 }
+}
+
+\ExplSyntaxOff
%
% Split plauthors list item
\def\bpl@lsurname{}
@@ -282,17 +300,6 @@
\global\def\bpl@lsurname{#3}%
}
%
-% Fully expanded comparison
-% (adapted from scrbase.sty)
-\newcommand\bpl@ifstreq[2]{%
- \begingroup\protected@edef\@tempa{#1}\protected@edef\@tempb{#2}%
- \ifx\@tempa\@tempb
- \endgroup\expandafter\@firstoftwo
- \else
- \endgroup\expandafter\@secondoftwo
- \fi
-}
-%
% Check if we have an entry in plauthors
% \bpl@ifplauthor{firstname}{prefix}{surname}{true}{false}
\newcommand*\bpl@ifplauthor[3]{%
@@ -309,7 +316,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{ \iffirstinitialsequal{\bpl@efirstname}{\bpl@tfirstname} } )
+ or ( test { \iftoggle{firstinit} } and test{ \bpl@iffirstcharequal{\bpl@efirstname}{\bpl@tfirstname} } )
)
and
( test { \bpl@ifstreq{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
@@ -327,7 +334,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{ \iffirstinitialsequal{\bpl@lfirstname}{\bpl@tfirstname} } )
+ or ( test { \iftoggle{firstinit} } and test{ \bpl@iffirstcharequal{\bpl@lfirstname}{\bpl@tfirstname} } )
)
and
( test { \bpl@ifstreq{\bpl@elvonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@lvonpart}{} }) }
@@ -938,6 +945,19 @@
}
\fi
+\AtEndOfPackage{%
+ \if@pubstateextra
+ % Include pubstate in extradate
+ \DeclareExtradate{%
+ \scope{
+ \field{pubstate}
+ \field{labelyear}
+ \field{year}
+ }
+ }
+ \fi
+}
+
\newbibmacro*{bpl:date:makedate}{%
\printtext{%
\iffieldundef{year}{%
@@ -1342,7 +1362,7 @@
\step[fieldset=shortauthor, fieldvalue={1111}]
}
}
-}
+ }
\fi
% Correctly sort pubstates.
diff --git a/Master/texmf-dist/tex/latex/biblatex-publist/publist.cbx b/Master/texmf-dist/tex/latex/biblatex-publist/publist.cbx
index 0ceed4cbb38..13c7945ed06 100644
--- a/Master/texmf-dist/tex/latex/biblatex-publist/publist.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex-publist/publist.cbx
@@ -26,8 +26,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{1.24}
-\def\bpl@rdate{2021/12/11}
+\def\bpl@version{1.25}
+\def\bpl@rdate{2021/12/14}
\ProvidesFile{publist.cbx}[\bpl@rdate\space v.\bpl@version\space
biblatex citation style (JSP)]