von MoeWe » Di 17. Sep 2019, 21:35
Ich möchte zu bedenken geben, dass series sehr häufig zusammen mit number auftritt und es dann höchstwahrscheinlich gewünscht ist, die beiden Angaben zusammen in der gleichen Klammer zu haben. Ferner kann ein .bib-Eintrag mehr Felder beinhalten als in dem Beispiel und dann kann zwischen Titel und Reihe noch etwas stehen.
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authortitle, backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{liggett:ips,
author = {Liggett, Thomas M.},
title = {Interacting Particle Systems},
date = {1985},
publisher = {Springer},
location = {New York},
series = {Grundlehren der mathematischen Wissenschaften},
number = {276},
edition = {3},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{liggett:ips}
\printbibliography
\end{document}
Für die erwartete Klammerung würde ich
\renewbibmacro*{series+number}{%
\iffieldundef{series}
{}
{\setunit{\addspace}%
\printtext[parens]{%
\printfield{series}%
\setunit*{\addspace}%
\printfield{number}}%
\newunit}}
nutzen. Ich war hier etwas faul und habe den Fall, dass es zwar ein number-Feld aber keine series gibt, unter den Tisch fallen lassen. Das sollte aber eigentlich nicht passieren.
In dem Beispiel steht dann aber noch etwas zwischen Titel und Reihe. Willst Du wirklich absolut sicher sein, dass zwischen Titel und Reihe nichts mehr steht, ist mehr Arbeit erforderlich.
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authortitle, backend=biber]{biblatex}
\renewbibmacro*{series+number}{}
\newbibmacro*{series+number:aftertitle}{%
\iffieldundef{series}
{}
{\setunit{\addspace}%
\printtext[parens]{%
\printfield{series}%
\setunit*{\addspace}%
\printfield{number}}%
\newunit}}
\renewbibmacro*{maintitle+title}{%
\iffieldsequal{maintitle}{title}
{\clearfield{maintitle}%
\clearfield{mainsubtitle}%
\clearfield{maintitleaddon}}
{\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield{volume}%
\printfield{part}%
\setunit{\addcolon\space}}}}%
\usebibmacro{title}%
\usebibmacro{series+number:aftertitle}%
\newunit}
\renewbibmacro*{maintitle+booktitle}{%
\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield{volume}%
\printfield{part}%
\setunit{\addcolon\space}}}%
\usebibmacro{booktitle}%
\usebibmacro{series+number:aftertitle}%
\newunit}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{liggett:ips,
author = {Liggett, Thomas M.},
title = {Interacting Particle Systems},
date = {1985},
publisher = {Springer},
location = {New York},
series = {Grundlehren der mathematischen Wissenschaften},
number = {276},
edition = {3},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{liggett:ips}
\printbibliography
\end{document}
Ich möchte zu bedenken geben, dass [tt]series[/tt] sehr häufig zusammen mit [tt]number[/tt] auftritt und es dann höchstwahrscheinlich gewünscht ist, die beiden Angaben zusammen in der gleichen Klammer zu haben. Ferner kann ein [tt].bib[/tt]-Eintrag mehr Felder beinhalten als in dem Beispiel und dann kann zwischen Titel und Reihe noch etwas stehen.
[code]\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authortitle, backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{liggett:ips,
author = {Liggett, Thomas M.},
title = {Interacting Particle Systems},
date = {1985},
publisher = {Springer},
location = {New York},
series = {Grundlehren der mathematischen Wissenschaften},
number = {276},
edition = {3},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{liggett:ips}
\printbibliography
\end{document}[/code]
Für die erwartete Klammerung würde ich
[code]\renewbibmacro*{series+number}{%
\iffieldundef{series}
{}
{\setunit{\addspace}%
\printtext[parens]{%
\printfield{series}%
\setunit*{\addspace}%
\printfield{number}}%
\newunit}}[/code]
nutzen. Ich war hier etwas faul und habe den Fall, dass es zwar ein [tt]number[/tt]-Feld aber keine [tt]series[/tt] gibt, unter den Tisch fallen lassen. Das sollte aber eigentlich nicht passieren.
In dem Beispiel steht dann aber noch etwas zwischen Titel und Reihe. Willst Du wirklich absolut sicher sein, dass zwischen Titel und Reihe nichts mehr steht, ist mehr Arbeit erforderlich.
[code]\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authortitle, backend=biber]{biblatex}
\renewbibmacro*{series+number}{}
\newbibmacro*{series+number:aftertitle}{%
\iffieldundef{series}
{}
{\setunit{\addspace}%
\printtext[parens]{%
\printfield{series}%
\setunit*{\addspace}%
\printfield{number}}%
\newunit}}
\renewbibmacro*{maintitle+title}{%
\iffieldsequal{maintitle}{title}
{\clearfield{maintitle}%
\clearfield{mainsubtitle}%
\clearfield{maintitleaddon}}
{\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield{volume}%
\printfield{part}%
\setunit{\addcolon\space}}}}%
\usebibmacro{title}%
\usebibmacro{series+number:aftertitle}%
\newunit}
\renewbibmacro*{maintitle+booktitle}{%
\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield{volume}%
\printfield{part}%
\setunit{\addcolon\space}}}%
\usebibmacro{booktitle}%
\usebibmacro{series+number:aftertitle}%
\newunit}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{liggett:ips,
author = {Liggett, Thomas M.},
title = {Interacting Particle Systems},
date = {1985},
publisher = {Springer},
location = {New York},
series = {Grundlehren der mathematischen Wissenschaften},
number = {276},
edition = {3},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{liggett:ips}
\printbibliography
\end{document}[/code]