Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • b411401
  • /
  • tex
  • /
  • src
  • /
  • preamble-biblatex.tex
Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge
swh:1:cnt:11fc65cc7b91c697d84355bdc7f6f4fa736e842f
directory badge
swh:1:dir:9f90b1ca6590e6016d1fe8468c2ff064c760461d

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
preamble-biblatex.tex
%% Biblatex settings.
%%
%% Settings necessary to make the bibliography with Biblatex. Keeping all
%% BibLaTeX settings in a separate preamble was done in the spirit of
%% modularity to 1) easily managable, 2) If a similar BibLaTeX
%% configuration is necessary in another LaTeX compilation, this file can
%% just be copied there and used.
%%
%% USAGE:
%%  - `tex/src/references.tex': the file containing Bibtex source of each
%%     reference. The file suffix doesn't have to be `.bib'. This naming
%%     helps in clearly identifying the files and avoiding places that
%%     complain about `.bib' files.
%
%% Copyright (C) 2018-2021 Mohammad Akhlaghi <mohammad@akhlaghi.org>
%
%% This file is free software: you can redistribute it and/or modify it
%% under the terms of the GNU General Public License as published by the
%% Free Software Foundation, either version 3 of the License, or (at your
%% option) any later version.
%
%% This file is distributed in the hope that it will be useful, but WITHOUT
%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
%% for more details.
%
%% You should have received a copy of the GNU General Public License along
%% with this file.  If not, see <http://www.gnu.org/licenses/>.




%% To break up highlighted text (for example texttt when some it is on the
%% line break) and also to no underline emphasized words (like journal
%% titles in the references).
\usepackage[normalem]{ulem}





%% For quotation signs (sometimes used by BibLaTeX)
\usepackage{csquotes}





%% To define colors
\usepackage{xcolor}





% Basic BibLaTeX settings
\usepackage[
    doi=false,
    url=false,
    dashed=false,
    eprint=false,
    maxbibnames=10,
    minbibnames=4,
    hyperref=true,
    maxcitenames=2,
    mincitenames=1,
    giveninits=true,
    style=authoryear,
    uniquelist=false,
    backend=biber,natbib]{biblatex}
\DeclareFieldFormat[article]{pages}{#1}
\DeclareFieldFormat{pages}{\mkfirstpage[{\mkpageprefix[bookpagination]}]{#1}}
\addbibresource{tex/src/references.tex}
\addbibresource{tex/build/macros/dependencies-bib.tex}
\renewbibmacro{in:}{}
\AtEveryBibitem{\clearfield{month}}
\renewcommand*{\bibfont}{\normalsize}
\DefineBibliographyStrings{english}{references = {References}}

%% Include the adsurl field key into those that are recognized:
\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=adsurl,fieldtarget=iswc]
      \step[fieldsource=gbkurl,fieldtarget=iswc]
    }
  }
}

%% Set the color of the doi link to mymg (magenta) and the ads links
%% to mypurp (or purple):
\definecolor{mypurp}{cmyk}{0.75,1,0,0}
\definecolor{myblue}{rgb}{0,0.669,0.885}
\newcommand{\doihref}[2]{\href{#1}{\color{myblue}{#2}}}
\newcommand{\adshref}[2]{\href{#1}{\color{mypurp}{#2}}}
\newcommand{\blackhref}[2]{\href{#1}{\color{black}{#2}}}

%% Define a format for the printtext commands in
%% DeclareBibliographyDriver to make links for the doi, ads link and
%% arxiv link:
\DeclareFieldFormat{doilink}{
  \iffieldundef{doi}{#1}{\doihref{https://doioa.org/\thefield{doi}}{#1}}}
\DeclareFieldFormat{adslink}{
    \iffieldundef{iswc}{#1}{\adshref{\thefield{iswc}}{#1}}}
\DeclareFieldFormat{arxivlink}{
  \iffieldundef{eprint}{#1}{\href{https://arxiv.org/abs/\thefield{eprint}}{#1}}}

\DeclareListFormat{doiforbook}{
  \iffieldundef{doi}{#1}{\doihref{https://doioa.org/\thefield{doi}}{#1}}}
\DeclareFieldFormat{googlebookslink}{
    \iffieldundef{iswc}{#1}{\adshref{\thefield{iswc}}{#1}}}

%% Set the formatting to make the last three values into the
%% appropriate link. Note that the % signs are necessary. Without
%% them, the items will be indented.
\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \newunit%
  \printtext{\usebibmacro{title}}%
  \newunit%
  \printtext[doilink]{\usebibmacro{journal}}%
  \addcomma%
  \printtext[adslink]{\printfield{volume}}%
  \addcomma%
  \printtext[arxivlink]{\printfield{pages}}%
  \addperiod%
}

\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \newunit%
  \printtext{\usebibmacro{title}}%
  \addperiod%
  \addspace%
  \printlist[doiforbook]{publisher}%
  \addcomma%
  \addspace%
  \printfield[googlebookslink]{edition}%
  \printtext{ ed.}%
  \addperiod%
}

%% In order to have et al. instead of et al.,:
\renewcommand*{\nameyeardelim}{\addspace}

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API