Newbib Macro genaue Vorgabe erfüllen.

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


WsEe1
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Sa 13. Mär 2021, 18:37

Newbib Macro genaue Vorgabe erfüllen.

Beitrag von WsEe1 »

Liebes Forum,

meine bisheriges Beispiel erfüllt die strenge Vorgabe meiner Uni fast.
Leider habe ich selber keine Ahnung von Newbib Macro und bin daher auf eure Hilfe angewiesen
\documentclass[a4paper, 11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\usepackage[
  backend=biber,
  style=authoryear,
  sortcites=true,
  maxcitenames=2, maxbibnames=3,
  mincitenames=1, minbibnames=1,
  giveninits=true,
  uniquename=init,
  dashed=false,
  doi=false, isbn=false,
]{biblatex}

\renewcommand*{\finentrypunct}{}

\DeclareNameAlias{sortname}{family-given}

\DeclareDelimAlias[bib]{finalnamedelim}{multinamedelim}

\DeclareDelimFormat[bib]{nametitledelim}{\addspace}

\renewbibmacro{in:}{%
  \ifboolexpr{
       test {\ifentrytype{article}}
    or test {\ifentrytype{periodical}}}
    {}
    {\bibstring{in}}%
  \printunit{\intitlepunct}}

\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat[article]{title}{#1}

\renewcommand*{\bibpagespunct}{%
  \ifboolexpr{
       test {\ifentrytype{article}}
    or test {\ifentrytype{periodical}}}
    {\addcolon}
    {\addcomma\space}%
}

\DeclareFieldFormat[article,periodical]{pages}{#1}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \pertype{article}
      \pertype{periodical}
      \step[fieldset=number, null]
    }
  }
}

\begin{filecontents*}{\jobname.bib}
@Article{crawford2001fmr1,
  author    = {Crawford, Dana C. and Acuña, Juan M.
               and Sherman, Stephanie L.},
  journal   = {Genetics in Medicine},
  title     = {{FMR1} and the Fragile~{X} Syndrome:
               Human Genome Epidemiology Review},
  year      = {2001},
  number    = {5},
  pages     = {359--371},
  volume    = {3},
  comment   = {Einleitung FMR, Zahlen zu Inzidenz},
  publisher = {Nature Publishing Group},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Hier wird zitiert \autocite{crawford2001fmr1} und dann endet das Beispiel
\autocite{sigfridsson}
\printbibliography
\end{document}[/MWE]

Zwischen Titel und Journal muss ein Punkt . stehen. Der nachfolgende Doppelpunkt zwischen Band und Seitenzahl soll jedoch beibehalten werden.

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

Re: Newbib Macro genaue Vorgabe erfüllen.

Beitrag von MoeWe »

Wenn ich es richtig verstehe, dann sollte es ausreichen, das Bibmakro in: etwas anders umzudefinieren. Insbesondere sollte das \printunit nur ausgeführt werden, wenn auch das "in" ausgegeben wurde. Es lohnt an der Stelle übrigens nicht, auf den Typen @periodical zu testen, da da sowieso nie ein "in" ausgegeben wird.
\documentclass[a4paper, 11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\usepackage[
  backend=biber,
  style=authoryear,
  sortcites=true,
  maxcitenames=2, maxbibnames=3,
  mincitenames=1, minbibnames=1,
  giveninits=true,
  uniquename=init,
  dashed=false,
  doi=false, isbn=false,
]{biblatex}

\renewcommand*{\finentrypunct}{}

\DeclareNameAlias{sortname}{family-given}

\DeclareDelimAlias[bib]{finalnamedelim}{multinamedelim}

\DeclareDelimFormat[bib]{nametitledelim}{\addspace}

\renewbibmacro{in:}{%
  \ifentrytype{article}
    {}
    {\bibstring{in}%
     \printunit{\intitlepunct}}}

\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat[article]{title}{#1}

\renewcommand*{\bibpagespunct}{%
  \ifboolexpr{
       test {\ifentrytype{article}}
    or test {\ifentrytype{periodical}}}
    {\addcolon}
    {\addcomma\space}%
}

\DeclareFieldFormat[article,periodical]{pages}{#1}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \pertype{article}
      \pertype{periodical}
      \step[fieldset=number, null]
    }
  }
}

\begin{filecontents*}{\jobname.bib}
@article{crawford2001fmr1,
  author    = {Crawford, Dana C. and Acuña, Juan M.
               and Sherman, Stephanie L.},
  journal   = {Genetics in Medicine},
  title     = {{FMR1} and the Fragile~{X} Syndrome:
               Human Genome Epidemiology Review},
  year      = {2001},
  number    = {5},
  pages     = {359--371},
  volume    = {3},
  comment   = {Einleitung FMR, Zahlen zu Inzidenz},
  publisher = {Nature Publishing Group},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Hier wird zitiert \autocite{crawford2001fmr1} und dann endet das Beispiel
\autocite{sigfridsson}
\printbibliography
\end{document}

Antworten