von MoeWe » So 27. Aug 2023, 07:33
Schöner ist es, wenn
\mkbibemph auch in
\DeclareFieldFormat steht. Dann muss es nämlich nicht auf
\usebibmacro{title} angewendet werden. Die direkte Nutzung von
\mkbibemph und ähnlicher Befehle mit Argumenten wie
\usebibmacro... hat nämlich den Nachteil, dass sie mit
biblatexs Zeichensetzungsbefehlen nicht so gut zusammenarbeitet und - viel wichtiger - nicht sehen kann, ob vielleicht gar nichts ausgegeben wird. Das ist bei
\mkbibemph und dem
title jetzt weniger sichtbar und weniger wahrscheinlich. Bei einem Befehl wie
\mkbibquote oder
\mkbibparens und einem Feld, das auch mal fehlen kann sehr relevant: Dann steht da nämlich im schlimmsten Fall leere Anführungszeichen oder dergleichen.
\documentclass[parskip=half,12pt,listof=totoc]{scrbook}
\usepackage[ngerman,english]{babel}
\usepackage{csquotes}
\usepackage[
style=chem-angew,
backend=biber,
chaptertitle=true,
url=false, doi=false,
autocite=superscript,
]{biblatex}
\newbibmacro*{holder}{%
\printnames{holder}}
\DeclareNameWrapperFormat[patent]{author}{\mkbibparens{#1}}
\newbibmacro*{patentauthor}{%
\setunit{\addspace}%
\printnames{author}}
\DeclareFieldFormat[patent]{title}{\mkbibemph{#1}}
\DeclareBibliographyDriver{patent}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{holder}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit\newblock
\printfield{type}%
\newunit
\printfield{number}%
\iflistundef{location}
{}
{\setunit*{\addspace}%
\printtext[parens]{%
\printlist[][-\value{listtotal}]{location}}}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{date}%
\newunit\newblock
\usebibmacro{patentauthor}%
\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{filecontents}{\jobname.bib}
@Patent{Petrosky1988,
author = {J. T. Petrosky},
date = {1988},
number = {US 4922043A},
title = {Manufacture of methyl chloride by hydrochlorinating methanol, using a split methanol feed},
holder = {{Vulcan Materials Company}},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem.\autocite{Petrosky1988}
\printbibliography
\end{document}
Schöner ist es, wenn [tt]\mkbibemph[/tt] auch in [tt]\DeclareFieldFormat[/tt] steht. Dann muss es nämlich nicht auf [tt]\usebibmacro{title}[/tt] angewendet werden. Die direkte Nutzung von [tt]\mkbibemph[/tt] und ähnlicher Befehle mit Argumenten wie [tt]\usebibmacro...[/tt] hat nämlich den Nachteil, dass sie mit [tt]biblatex[/tt]s Zeichensetzungsbefehlen nicht so gut zusammenarbeitet und - viel wichtiger - nicht sehen kann, ob vielleicht gar nichts ausgegeben wird. Das ist bei [tt]\mkbibemph[/tt] und dem [tt]title[/tt] jetzt weniger sichtbar und weniger wahrscheinlich. Bei einem Befehl wie [tt]\mkbibquote[/tt] oder [tt]\mkbibparens[/tt] und einem Feld, das auch mal fehlen kann sehr relevant: Dann steht da nämlich im schlimmsten Fall leere Anführungszeichen oder dergleichen.
[code]\documentclass[parskip=half,12pt,listof=totoc]{scrbook}
\usepackage[ngerman,english]{babel}
\usepackage{csquotes}
\usepackage[
style=chem-angew,
backend=biber,
chaptertitle=true,
url=false, doi=false,
autocite=superscript,
]{biblatex}
\newbibmacro*{holder}{%
\printnames{holder}}
\DeclareNameWrapperFormat[patent]{author}{\mkbibparens{#1}}
\newbibmacro*{patentauthor}{%
\setunit{\addspace}%
\printnames{author}}
\DeclareFieldFormat[patent]{title}{\mkbibemph{#1}}
\DeclareBibliographyDriver{patent}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{holder}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit\newblock
\printfield{type}%
\newunit
\printfield{number}%
\iflistundef{location}
{}
{\setunit*{\addspace}%
\printtext[parens]{%
\printlist[][-\value{listtotal}]{location}}}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{date}%
\newunit\newblock
\usebibmacro{patentauthor}%
\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{filecontents}{\jobname.bib}
@Patent{Petrosky1988,
author = {J. T. Petrosky},
date = {1988},
number = {US 4922043A},
title = {Manufacture of methyl chloride by hydrochlorinating methanol, using a split methanol feed},
holder = {{Vulcan Materials Company}},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem.\autocite{Petrosky1988}
\printbibliography
\end{document}[/code]