Reihe in Klammern hinter Titel

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Gast

Reihe in Klammern hinter Titel

Beitrag von Gast »

\documentclass{article} 
\usepackage[ngerman]{babel} 

\usepackage[style=authortitle, backend=biber
]{biblatex} 

\usepackage{filecontents} 
\begin{filecontents*}{\jobname.bib} 
@book{test2019, 
Author    = {Max Mustermann and Maria Musterfrau and Peter Pan}, 
title = {Test}, 
pages ={123-234},
series = {Eine Reihe von Buechern}
}

\end{filecontents*} 
\addbibresource{\jobname.bib} 


\begin{document} 
Test.\footcite[123]{test2019}
\printbibliography 
\end{document}
Wie bekomme ich die Reihe (=series) direkt hinter den Titel in Klammern, also Titel (Reihe). ...

Gast

Beitrag von Gast »

\DeclareFieldFormat{series}{\mkbibparens{#1}}

Gast

Beitrag von Gast »

Danke schonmal für den Tipp, nur leider steht noch zwischen Titel und Reihe ein Komma: Titel, (Reihe).

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Beitrag von MoeWe »

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}

Gast

Beitrag von Gast »

MoeWe hat geschrieben: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}
Danke für die Mühe, jetzt sieht es genauso aus wie gewünscht.

Gast

Beitrag von Gast »

Hat sich doch noch eine Frage ergeben. Zeitschriften sollen anders angegeben werden. Wie kann ich den bereits erstellte Macro nur für Bücher nutzen, während Zeitschriften die Standardauflistung haben, also Titel, Reihe ...

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Beitrag von MoeWe »

Kannst Du dazu bitte ein Minimalbeispiel erstellen? Zumindest mit Zeitschriften-@articlen scheint alles gut zu gehen
\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},
}
@article{gillies,
  author       = {Gillies, Alexander},
  title        = {Herder and the Preparation of {Goethe's} Idea of World
                  Literature},
  journaltitle = {Publications of the English Goethe Society},
  date         = 1933,
  series       = {newseries},
  volume       = 9,
  pages        = {46-67},
}
@article{reese,
  author       = {Reese, Trevor R.},
  title        = {Georgia in {Anglo-Spanish} Diplomacy, 1736--1739},
  journaltitle = {William and Mary Quarterly},
  date         = 1958,
  series       = 3,
  volume       = 15,
  pages        = {168-190},
}
\end{filecontents}

\addbibresource{\jobname.bib}


\begin{document}
\cite{liggett:ips,gillies,reese}
\printbibliography
\end{document}
Wenn mir die Anmerkung erlaubt ist: Es erhöht die Lesbarkeit und Übersichtlichkeit etwas, wenn Du nicht den ganzen vorherigen Beitrag in Deiner Antwort zitierst.

Antworten