Seite 1 von 1

Newbib Macro genaue Vorgabe erfüllen.

Verfasst: Fr 4. Mär 2022, 08:56
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.

Re: Newbib Macro genaue Vorgabe erfüllen.

Verfasst: Fr 4. Mär 2022, 11:47
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}