From 7d9d2e08fcab92adcc759e3f1e4bb0a15a63f220 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 26 Apr 2020 03:02:41 +0000 Subject: CTAN sync 202004260302 --- .../biblatex-software/software.bbx | 231 +++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-software/software.bbx (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-software/software.bbx') diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-software/software.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-software/software.bbx new file mode 100644 index 0000000000..3b7f8d0736 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-software/software.bbx @@ -0,0 +1,231 @@ +% +% Reference implementation of a BibLaTeX style for the software family of bibliographic entries +% +% 2020/04/02 Roberto Di Cosmo +% +\RequireBiber[3] +\RequirePackage{xurl} +% +% Toggles for typesetting additional ids and printing labels +% +\newtoggle{bbx:halid} +\newtoggle{bbx:swhid} +\newtoggle{bbx:vcs} +\newtoggle{bbx:swlabels} +\newtoggle{bbx:license} + +\DeclareBibliographyOption[boolean]{halid}[true]{% + \settoggle{bbx:halid}{#1}} +\DeclareBibliographyOption[boolean]{swhid}[true]{% + \settoggle{bbx:swhid}{#1}} +\DeclareBibliographyOption[boolean]{swlabels}[true]{% + \settoggle{bbx:swlabels}{#1}} +\DeclareBibliographyOption[boolean]{vcs}[true]{% + \settoggle{bbx:vcs}{#1}} +\DeclareBibliographyOption[boolean]{license}[true]{% + \settoggle{bbx:license}{#1}} + +\ExecuteBibliographyOptions{halid,swhid,swlabels,vcs,license} + +% +% Declare inheritance rules (valid only in LaTeX preamble!) +% +\DeclareDataInheritance{software}{softwareversion,softwaremodule,codefragment}{\inherit{*}{*}} +\DeclareDataInheritance{softwareversion}{softwaremodule,codefragment}{\inherit{*}{*}} +\DeclareDataInheritance{softwaremodule}{codefragment}{\inherit{*}{*}} + +% +% Localization +% +\DeclareLanguageMapping{english}{english-software} +\DeclareLanguageMapping{french}{french-software} + +% +% Formatting fields for the software entries +% + +\DeclareFieldFormat[softwaremodule,codefragment]{subtitle}{\mkbibquote{#1\isdot}} +\DeclareFieldFormat[software,softwareversion,softwaremodule,codefragment]{url}{ + \iftoggle{bbx:url}% + {\mkbibacro{URL}\addcolon\addspace% + \ifhyperref% + {\href{#1}{\nolinkurl{#1}}}% + {\nolinkurl{#1}}% + }% + {}% +} +\DeclareFieldFormat[software,softwareversion,softwaremodule,codefragment]{hal_id}{ + \iftoggle{bbx:halid}% + {\mkbibacro{HAL}\addcolon\addspace% + \ifhyperref% + {\href{https://hal.archives-ouvertes.fr/#1\thefield{hal_version}}{\(\langle\)\nolinkurl{#1\thefield{hal_version}}\(\rangle\)}}% + {\(\langle\)\nolinkurl{#1\thefield{hal_version}}\(\rangle\)}% + }% + {}% +} +\DeclareFieldFormat[software,softwareversion,softwaremodule,codefragment]{swhid}{% + \iftoggle{bbx:swhid}% + {\mkbibacro{SWHID}\addcolon\addspace% + \ifhyperref% + {\href{http://archive.softwareheritage.org/#1}{\(\langle\)\nolinkurl{#1}\(\rangle\)}}% + {\(\langle\)\nolinkurl{#1}\(\rangle\)}% + }% + {}% +} +\DeclareFieldFormat[software,softwareversion,softwaremodule,codefragment]{repository}{% + \iftoggle{bbx:vcs}% + {\mkbibacro{VCS}\addcolon\addspace% + \ifhyperref% + {\href{#1}{\nolinkurl{#1}}}% + {\nolinkurl{#1}}% + }% + {}% +} +\DeclareListFormat[software,softwareversion,softwaremodule,codefragment]{license}{% + \usebibmacro{list:delim}{#1}% + #1\isdot + \usebibmacro{list:andothers}} + +% +% Macros to format output +% +\newbibmacro*{swtitleauthoreditoryear}{% + \printnames{author}\addcomma% + \setunit{\addspace}% + \printfield{title}\addspace% + \printfield{version}\addspace% + \ifnameundef{editor}% + {}% + {\printtext[parens]{% + \bibstring{edited}\addspace% + \printnames{editor}}}% + \addcomma% + \addspace% + \printdate% +} + +% +\newbibmacro*{swsubtitleauthoreditoryear}{% + \printnames{author}\addcomma% + \setunit{\addspace}% + \iffieldundef{subtitle}% + {} + {\printfield{subtitle}\addcomma\addspace% + \bibstring{swpartof}\addspace + }% + \printfield{title}\addspace% + \printfield{version}\addspace% + \ifnameundef{editor}% + {} + {\printtext[parens]{% + \bibstring{edited}\addspace% + \printnames{editor}}}% + \addcomma% + \addspace% + \printdate% +} + +\newbibmacro*{codefragmenttitleauthoreditoryear}{% + \printnames{author}\addcomma% + \setunit{\addspace}% + \iffieldundef{subtitle}% + {} + {\printfield{subtitle}\addcomma\addspace% + \bibstring{swexc}\addspace + }% + \printfield{title}\addspace% + \printfield{version}\addspace% + \ifnameundef{editor}% + {} + {\printtext[parens]{% + \bibstring{edited}\addspace% + \printnames{editor}}}% + \setunit*{\addcomma\addspace}% + \printdate% +} + +\newbibmacro{licenses}{% + \iflistundef{license} + {} + {\iftoggle{bbx:license}% + {\newunitpunct + \mkbibacro{Lic}\addcolon + \printlist{license} + }% + {}% + } +} + +\newbibmacro*{swids}{% + \printfield{doi}% + \setunit*{\addcomma\addspace}% + \printfield{hal_id}% + \setunit*{\addcomma\addspace}% + \printfield{url}% + \setunit*{\addcomma\addspace}% + \printfield{repository}% + \setunit*{\addcomma\addspace}% + \printfield{swhid}% +} + +\newbibmacro*{swrelated}{% + \iffieldundef{related}% + {}% + {\usebibmacro{related}}% +} + +% +% Formatting the entries +% + +\DeclareBibliographyDriver{software}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \iftoggle{bbx:swlabels}{\bibstring{software}{\addspace}}{}% + \usebibmacro{swtitleauthoreditoryear}% + \newunit\newblock% + \usebibmacro{licenses}% + \newunit\newblock% + \usebibmacro{swids}% + \newunit\newblock% + \usebibmacro{swrelated}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{softwareversion}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \iftoggle{bbx:swlabels}{\bibstring{swversion}\addspace}{}% + \usebibmacro{swsubtitleauthoreditoryear}% + \newunit\newblock% + \usebibmacro{licenses}% + \newunit\newblock% + \usebibmacro{swids}% + \newunit\newblock% + \usebibmacro{swrelated}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{softwaremodule}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \iftoggle{bbx:swlabels}{\bibstring{swmodule}\addspace}{}% + \usebibmacro{swsubtitleauthoreditoryear}% + \newblock\newblock% + \usebibmacro{licenses}% + \newunit\newblock% + \usebibmacro{swids}% + \newunit\newblock% + \usebibmacro{swrelated}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{codefragment}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \iftoggle{bbx:swlabels}{\bibstring{swexcerpt}\addspace}{}% + \usebibmacro{codefragmenttitleauthoreditoryear}% + \newunit\newblock% + \usebibmacro{licenses}% + \newunit\newblock% + \usebibmacro{swids}% + \newunit\newblock% + \usebibmacro{swrelated}% + \usebibmacro{finentry}} -- cgit v1.2.3