von MoeWe » Fr 4. Mär 2022, 11:47
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}
Wenn ich es richtig verstehe, dann sollte es ausreichen, das Bibmakro [tt]in:[/tt] etwas anders umzudefinieren. Insbesondere sollte das [tt]\printunit[/tt] nur ausgeführt werden, wenn auch das "in" ausgegeben wurde. Es lohnt an der Stelle übrigens nicht, auf den Typen [tt]@periodical[/tt] zu testen, da da sowieso nie ein "in" ausgegeben wird.
[code]
\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}
[/code]