summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx49
1 files changed, 47 insertions, 2 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
index 7a856b1111..f0e9cd47c2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
@@ -26,12 +26,57 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{1.20}
-\def\bpl@rdate{2020/09/15}
+\def\bpl@version{1.21}
+\def\bpl@rdate{2020/09/21}
\ProvidesFile{publist.cbx}[\bpl@rdate\space v.\bpl@version\space
biblatex citation style (JSP)]
\RequireCitationStyle{numeric}
+\DeclareCiteCommand{\citeitem}
+ {\defcounter{maxnames}{999}%
+ \boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{bpl:cite:extern}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\newbibmacro*{bpl:cite:extern}{%
+ \printtext[bibhyperref]{%
+ \printfield{labelprefix}%
+ \usebibmacro{bpl:cite:labelnumber}%
+ \ifbool{bbx:subentry}
+ {\printfield{entrysetcount}}
+ {}}}
+
+\newbibmacro*{bpl:cite:labelnumber}{%
+ \printtext[labelnumberwidth]{\mkrefdesc{\thefield{labelnumber}}}%
+}
+
+% Manual way to adjust numbering
+\csdef{bpl@secstartshift}{0}
+\newcommand*\shiftciteitem[1]{\csdef{bpl@secstartshift}{#1}}
+
+% Print labelnumber as actual number, plus item total
+% and probably a manual shift value
+\newrobustcmd{\mkrefdesc}[1]{%
+ \number\numexpr#1+\csuse{bpl@itemtotal}+\csuse{bpl@secstartshift}\relax%
+}
+
+\providebool{@bpl@reversenum}
+
+\AtEndOfPackage{%
+\if@bpl@reversenum
+ \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%
+ +\csuse{bpl@secstartshift}\relax%
+ }%
+\fi%
+}
+
+%%
\endinput