summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx423
1 files changed, 423 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx
new file mode 100644
index 0000000000..f6f01c2118
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx
@@ -0,0 +1,423 @@
+\ProvidesFile{lncs.bbx}[2021/08/17 v0.3]
+
+\RequireBibliographyStyle{numeric}
+
+\ExecuteBibliographyOptions{giveninits=true,
+ doi=true,
+ minbibnames=1,
+ mincrossrefs=99,
+ maxbibnames=999}
+
+\newtoggle{lncs:abbrev}
+\newtoggle{lncs:series}
+\newtoggle{lncs:conference}
+\newtoggle{lncs:lncs}
+\DeclareBibliographyOption{acronym}[true]{\toggletrue{lncs:abbrev}}
+\DeclareBibliographyOption{series}[no]{
+ \ifstrequal{#1}{short}{}{}
+ \ifstrequal{#1}{full}{}{}
+ \ifstrequal{#1}{no}{}{}
+}
+\DeclareBibliographyOption{conference}[long]{
+ \ifstrequal{#1}{long}{}{}
+ \ifstrequal{#1}{full}{}{}
+ \ifstrequal{#1}{acronym}{}{}
+}
+
+%%% Field Formats
+
+\DeclareFieldFormat{labelnumberwidth}{#1.}
+\DeclareFieldFormat{journaltitle}{#1}
+\DeclareFieldFormat[article,book,inproceedings,incollection, online,report,thesis]{title}{#1}
+\DeclareFieldFormat{booktitle}{#1}
+\DeclareFieldFormat[article]{pages}{#1}
+\DeclareFieldFormat{year}{(#1)}
+\DeclareFieldFormat{acronym}{#1}
+\DeclareFieldFormat{url}{\url{#1}}
+
+%%%
+
+\defbibenvironment{bibliography}
+ {\list
+ {\printfield[labelnumberwidth]{labelnumber}}
+ {\setlength{\labelwidth}{\labelnumberwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{.5em}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ \renewcommand*{\makelabel}[1]{\hss##1}}
+ {\endlist}
+ {\item}
+
+\DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map{
+ \step[fieldsource=series,
+ match=\regexp{Lecture\s+Notes\s+in\s+Computer\s+Science},
+ replace={LNCS}]
+ \step[fieldsource=series,
+ match=\regexp{Lecture\s+Notes\s+in\s+Artificial\s+Intelligence},
+ replace={LNAI}]
+ \step[fieldsource=series,
+ match=\regexp{Lecture\s+Notes\s+in\s+Business\s+Information\s+Processing},
+ replace={LNBIP}]
+ }
+ }
+}
+
+\renewbibmacro{journal}{%
+ \iffieldundef{shortjournal}
+ {\printfield{journaltitle}}
+ {\printfield[journal]{shortjournal}}%
+}
+
+\renewbibmacro*{institution+location+date}{%
+ \iflistundef{institution}
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\addcolon\space}}%
+ \printlist{institution}%
+ \setunit*{\addcomma\space}
+ \printlist{location}%
+ \setunit{\addspace}
+ \printfield{year}%
+ \newunit}
+
+\newbibmacro{journal:info}{
+ \iffieldundef{volume}
+ {\iffieldundef{year}
+ {\iffieldundef{pubstate}
+ {}
+ {(\printfield{pubstate})}}
+ {\printfield{year}}}
+ {\printfield{volume}%
+ \iffieldundef{number}{}{(\printfield{number})}%
+ \iffieldundef{pages}
+ {\addspace\printfield{year}}
+ {\addcomma\addspace\printfield{pages}\addspace\printfield{year}}
+ }
+}
+
+\newbibmacro{proceedingstitle}{%
+ \iffieldundef{booktitle}
+ {\printfield{eventtitle}}
+ {\printfield{booktitle}}
+}
+
+\newbibmacro{acronym/booktitle}{%
+ \iffieldundef{acronym}
+ {\usebibmacro{proceedingstitle}}
+ {\printfield{acronym}}%
+ \addperiod\addspace
+}
+
+\newbibmacro{publisher+location}{%
+ \iftoggle{lncs:lncs}
+ {\printtext{Springer, Heidelberg}}
+ {\printlist{publisher}%
+ \iflistundef{location}
+ {}
+ {\addcomma\addspace\printlist{location}}%
+ }%
+}
+
+\renewbibmacro{finentry}{\settoggle{lncs:lncs}{false}\finentry}
+\renewcommand*{\bibinitdelim}{}
+
+\renewcommand{\labelnamepunct}{\addcolon\space}
+
+\DeclareNameFormat{author}{%
+ \nameparts{#1}%
+ \usebibmacro{name:family-given}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}
+ \ifthenelse{\value{listcount}<\value{liststop}}
+ {\addcomma\space}%
+ {}%
+}
+
+\DeclareNameFormat{editor}{%
+ \nameparts{#1}%
+ \usebibmacro{name:family-given}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}
+ \ifthenelse{\value{listcount}<\value{liststop}}
+ {\addcomma\space}%
+ {\space\ifthenelse{\value{listcount}>1}
+ {(\bibstring{editors})}
+ {(\bibstring{editor})}}%
+}
+
+\DeclareBibliographyDriver{article}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \printnames{author}%
+ \setunit*{\labelnamepunct}\newblock%
+ \usebibmacro{title}%
+ \newunit\newblock
+ \usebibmacro{journal}%
+ \usebibmacro{journal:info}%
+ \newunit\newblock
+ \printfield{addendum}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \nopunct%
+ \usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{book}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \ifnameundef{author}
+ {\printnames{editor}}
+ {\printnames{author}}%
+ \setunit*{\labelnamepunct}\newblock%
+ \usebibmacro{title}%
+ \newunit%
+ \usebibmacro{publisher+location}%
+ \setunit{\addspace}
+ \printfield{year}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \nopunct%
+ \usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{inproceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \printnames{author}
+ \setunit*{\labelnamepunct}\newblock%
+ \usebibmacro{title}
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \printnames{editor}%
+ \newunit
+ \iffieldundef{series}
+ {\iftoggle{lncs:abbrev}
+ {\usebibmacro{acronym/booktitle}}
+ {\usebibmacro{proceedingstitle}\newunit}%
+ }%
+ {\ifboolexpr{
+ test {\iffieldequalstr{series}{LNAI}}
+ or
+ test {\iffieldequalstr{series}{LNCS}}
+ or
+ test {\iffieldequalstr{series}{LNBIP}}
+ }
+ {\settoggle{lncs:lncs}{true}%
+ \usebibmacro{acronym/booktitle}%
+ \printfield{series}
+ \addcomma\newunit
+ \iffieldundef{volume}
+ {\iffieldundef{number}{}{vol.\addspace\printfield{number}\addcomma}}
+ {\printfield{volume}}%
+ }%
+ {\usebibmacro{acronym/booktitle}%
+ \printfield{series}}%
+ }
+ \iffieldundef{pages}{}{\setunit{\addcomma\space}\printfield{pages}}%
+ \newunit%
+ \usebibmacro{publisher+location}%
+ \setunit{\addspace}%
+ \printfield{year}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \nopunct%
+ \usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{proceedings}{PROCEEDINGS}
+
+\DeclareBibliographyDriver{incollection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \printnames{author}
+ %\setunit*{\addcolon\space}
+ \setunit*{\labelnamepunct}\newblock%
+ \usebibmacro{title}
+ %\printfield[article]{title}
+ \newunit\newblock
+ %\printtext{In:}
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ %\printnames{editor}
+ \usebibmacro{byeditor+others}
+ \newunit
+ \iffieldundef{pages}{}{\addcomma\addspace\printfield{pages}}
+ \newunit
+ \usebibmacro{publisher+location}%
+ \setunit{\addspace}%
+ \printfield{year}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \nopunct%
+ \usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{unpublished}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \printnames{author}%
+ \setunit*{\addcolon\space}\newblock
+ \printfield{title}%
+ \newunit\newblock
+ \printfield{note}%
+ \usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{online}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit*{\labelnamepunct}\newblock%
+ \usebibmacro{title}%
+ \addcomma\newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit\newblock
+ \printfield{year}%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{url+urldate}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \nopunct%
+ \usebibmacro{finentry}
+}
+
+\DeclareBibliographyDriver{misc}{MISC}
+
+\DeclareBibliographyDriver{thesis}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \printnames{author}%
+ \setunit*{\addcolon\space}\newblock
+ \printfield{title}%
+ \newunit\newblock
+ \printfield{type}
+ \addcomma\newunit
+ \usebibmacro{institution+location+date}%
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \usebibmacro{finentry}%
+}
+
+
+\DeclareBibliographyDriver{report}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit*{\labelnamepunct}\newblock%
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \addcomma\newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isrn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{institution+location+date}%
+ %\newunit\newblock
+ %\usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \nopunct%
+ \usebibmacro{finentry}
+}
+
+% \DeclareBibliographyDriver{*}{%
+% Titolo: \printfield{title}\\
+% Autore: \printnames{author}\\
+% Prova: \printfield{acronym}%
+% }