0

I'd like to get the most accurate citation of http://link.springer.com/book/10.1007/978-3-642-29099-2 using biblatex+biber. However, whichever entry type I try, I get either only ISBN or only ISSN, whereas I'd like to have both. The best approximation so far has been achieved with with book:

\documentclass{article}
\pagestyle{empty}
\usepackage[USenglish,ngerman]{babel}
\usepackage[backend=biber,style=alphabetic,sortcites=true,maxnames=99,useprefix=true,dateabbrev=true,autolang=other,abbreviate=false]{biblatex}%%% this line stays as it is
\usepackage{filecontents}
\begin{filecontents*}{mwe.bib}
@string{spvl   = "Sprin\-ger Ver\-lag"}
@book{Geisberger_Broy_-_agendaCPS,
    series={acatech STUDIE},
    title={agendaCPS},
    subtitle={Integrierte Forschungsagenda \foreignlanguage{USenglish}{cyber-physical systems}},
    author={Eva Geisberger and Manfred Broy},
    date={2012-10-10},
    publisher=spvl,
    isbn={978-3-642-29098-5},
    doi={10.1007/978-3-642-29099-2},
    pagetotal=297,
    note={\mkbibacro{\foreignlanguage{USenglish}{eBook ISBN}}: 978-3-642-29099-2. \mkbibacro{\foreignlanguage{USenglish}{ISSN}}: 2192-6174. \mkbibacro{\foreignlanguage{USenglish}{Series E-ISSN}}: 2193-8962},
    langid={ngerman}}
\end{filecontents*}
\addbibresource{mwe.bib}
\begin{document}
\cite{Geisberger_Broy_-_agendaCPS}
\printbibliography
\end{document}

Feeding this to the loop over pdflatex mwe && biber --isbn-normalise mwe, we get

output

As you see, quite a lot of stuff went into note in the source (which I don't like; I'd prefer to have issn={2192-6174}, perhaps similar for the online ISBN and online ISSN), “eBook” and ”Series E-ISSN“ were printed in small caps in the PDF (as opposed to the publisher's Web page, so, differences in the capitalization were lost), and ISBN is too far from eBook ISBN (whereas it'd be logical to move them closer together). Is there any better way? (Is it, perhaps, possible to modify the book or periodical entry style to include both ISBN and ISSN (ideally also their online versions) or even create a new, custom entry style based on the two entry styles that addresses the deficiencies?)

Any by the way, why do we get “Package biblatex Warning: Language 'usenglish' not supported.” in the log file?

1 Answer 1

0

There seem to be three questions here. I'll respond to them in reverse to save code till the end.

  1. How is it possible to get book entries to show issn fields?
  2. What's the best way to show metadata for multiple editions in one source?
  3. Why does Biblatex throw a warning for usenglish?

The third question will have to be answered by someone else, since Biblatex does seem to be loading usenglish in some cases by automatically jumping back to american, but it still throws a warning. (Incidentally, replacing all mentions of usenglish with american removes those warnings.)

The second question is maybe best answered with another question: Is it a good idea to include metadata for multiple editions in one source? You mention at the start of your question that you want to include the most accurate citation for a source, but your bibliography should ideally reflect the sources you're citing. An electronic edition and a print edition of a book are different editions. If you're not consulting both or there's no fundamental difference between them, then the extra data may not be necessary. If you're citing both because there's some fundamental difference between them, you might best be served by making two different bibliographic entries so that you can distinguish which one you're citing in a given moment. And if you're including the data for the sake of completeness, you might still make two entries, and then reference a simplified version of the secondary edition with a related field (see below).

The first question necessitates redefining the bibliography driver for the book entry type. By default, alphabetic.bbx doesn't pay attention to the issn field for books, just like it ignores isbn for articles. But it's maybe reasonable to reference the series a volume is printed in, so you can copy the bibliographic driver for alphabetic.bbx (actually found in standard.bbx) and insert an extra line referencing the issn field. This redefinition should come in the preamble of the document:

\documentclass{article}
\pagestyle{empty}
\usepackage[USenglish,ngerman]{babel}
\usepackage[backend=biber,style=alphabetic,sortcites=true,maxnames=99,useprefix=true,dateabbrev=true,autolang=other,abbreviate=false]{biblatex}%%% this line stays as it is
\usepackage{filecontents}
\begin{filecontents*}{mwe.bib}
@string{spvl   = "Sprin\-ger Ver\-lag"}
@book{Geisberger_Broy_-_agendaCPS_print,
    title={agendaCPS},
    author={Geisberger and Broy},
    isbn={978-3-642-29098-5},
    issn={2192-6174},
    langid={ngerman}}
@book{Geisberger_Broy_-_agendaCPS,
    series={acatech STUDIE},
    title={agendaCPS},
    subtitle={Integrierte Forschungsagenda \foreignlanguage{usenglish}{cyber-physical systems}},
    author={Eva Geisberger and Manfred Broy},
    date={2012-10-10},
    publisher=spvl,
    isbn={978-3-642-29099-2},
    issn={2193-8962},
    doi={10.1007/978-3-642-29099-2},
    pagetotal=297,
    langid={ngerman},
    related={Geisberger_Broy_-_agendaCPS_print},
    relatedtype={reprintof}}
\end{filecontents*}
\addbibresource{mwe.bib}

\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}%
    \newunit
    \printfield{issn}}
    {}%
  \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}}
    {}%
  \usebibmacro{finentry}}

\begin{document}
\cite{Geisberger_Broy_-_agendaCPS}
\printbibliography
\end{document}

Notice that I've simplified the entry for the print edition, which is referenced in the related field of the electronic edition. When typeset, the PDF looks like this:

book entry referencing isbn and issn of two editions

It may be nice to replace "Reprint of" ("Nachdruck von") with something like "E-print of". Do this by creating a bibstring and changing reprintof with your new bibstring.

4
  • The only warning about usenglish I get from the MWE in the question is No localisation for language 'usenglish' loaded. Please rerun LaTeX to ensure languages can be requested properly. and that warning goes away after the recommended LaTeX run and does not return (until the aux files are deleted). Do you get something else?
    – moewe
    Commented Jul 30, 2022 at 6:59
  • The warning I see persists across LaTeX runs: Package biblatex Warning: Language 'usenglish' not supported. (biblatex) Using dummy definitions on input line 22. I've not yet updated to the July release of Biblatex, so the discrepancy might be there.
    – jmclawson
    Commented Aug 1, 2022 at 13:18
  • It could also have to do with the new definition of \MakeLowercase in the LaTeX kernel. \mkbibacro may apply \MakeLowercase. I can imagine that the order of \foreignlanguage and \mkbibacro causes issues, because the USenglish is incorrectly lowercased. Maybe the issue goes away if things are inverted to \foreignlanguage{USenglish}{\mkbibacro{eBook ISBN}} etc.
    – moewe
    Commented Aug 2, 2022 at 6:15
  • @moewe It does!
    – user224332
    Commented Aug 11, 2022 at 0:04

You must log in to answer this question.