\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}% % }