I'm working with biblatex and need to fulfill the following requirements:
The citation should look like this:
- when there is one author:
<lastname1> <year> - when there are two authors:
<lastname1> and <lastname2> <year> - when there are more than two authors:
<lastname1> et al. <year>
The bibliography should look like this:
<lastname>, <f>; <lastname>, <f>; <lastname>, <f>; <year> : Title. …
(f = initial letter of firstname)
Until now, I have customized the style authoryear as follows:
authoryear-ing.cbx:
\ProvidesFile{authoryear-ing.cbx}
\RequireCitationStyle{authoryear-comp}
\DefineBibliographyStrings{german}{%
andothers = {et\,al\adddot}
}
\endinput
authoryear-ing.bbx:
\ProvidesFile{authoryear-ing.bbx}
\RequireBibliographyStyle{authoryear}
% Redefining the separator between author-names
\renewcommand*{\multinamedelim}{\addsemicolon\addspace}
% Redefining the separator between the last two author-names
\renewcommand*{\finalnamedelim}{\multinamedelim}
% Redefining the separator between author-names / editor-names and year in bibliography(not working yet)
\renewbibmacro*{author}{%
\ifboolexpr{
test \ifuseauthor
and
not test {\ifnameundef{author}}
}
{\usebibmacro{bbx:dashcheck}
{\bibnamedash}
{\usebibmacro{bbx:savehash}%
\printnames{author}%
\iffieldundef{authortype}
{\setunit{\addsemicolon\space}}
{\setunit{\addsemicolon\space}}}%
\iffieldundef{authortype}
{}
{\usebibmacro{authorstrg}%
\setunit{\addsemicolon\space}}}%
{\global\undef\bbx@lasthash
\usebibmacro{labeltitle}%
\setunit*{\addsemicolon\space}}%
\usebibmacro{date+extrayear}}
\renewbibmacro*{editor}{%
\usebibmacro{bbx:editor}{editorstrg}}
\renewbibmacro*{editor+others}{%
\usebibmacro{bbx:editor}{editor+othersstrg}}
\newbibmacro*{bbx:editor}[1]{%
\ifboolexpr{
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}
{\usebibmacro{bbx:dashcheck}
{\bibnamedash}
{\printnames{editor}%
\setunit{\addsemicolon\space}%
\usebibmacro{bbx:savehash}}%
\usebibmacro{#1}%
\clearname{editor}%
\setunit{\addsemicolon\space}}%
{\global\undef\bbx@lasthash
\usebibmacro{labeltitle}%
\setunit*{\addsemicolon\space}}%
\usebibmacro{date+extrayear}}
\renewbibmacro*{translator}{%
\usebibmacro{bbx:translator}{translatorstrg}}
\renewbibmacro*{translator+others}{%
\usebibmacro{bbx:translator}{translator+othersstrg}}
\newbibmacro*{bbx:translator}[1]{%
\ifboolexpr{
test \ifusetranslator
and
not test {\ifnameundef{translator}}
}
{\usebibmacro{bbx:dashcheck}
{\bibnamedash}
{\printnames{translator}%
\setunit{\addsemicolon\space}%
\usebibmacro{bbx:savehash}}%
\usebibmacro{translator+othersstrg}%
\clearname{translator}%
\setunit{\addsemicolon\space}}%
{\global\undef\bbx@lasthash
\usebibmacro{labeltitle}%
\setunit*{\addsemicolon\space}}%
\usebibmacro{date+extrayear}}
% firstname is displayed after the lastname
\DeclareNameAlias{sortname}{last-first}
% no parenthesis
\renewbibmacro*{date+extrayear}{%
\iffieldundef{\thefield{datelabelsource}year}
{}
{\iffieldsequal{year}{\thefield{datelabelsource}year}
{\printdateextralabel}%
{\printfield{labelyear}%
\printfield{extrayear}}}}%
\endinput
My document looks like this:
\documentclass[a4paper, ngerman, bibliography=totocnumbered, listof=numbered, 12pt]{scrartcl}
%% Codierung
\usepackage[ngerman]{babel}
\usepackage[latin9]{inputenc}
%% Biblatex
\usepackage[
backend = biber,
sorting = nyt,
citestyle = authoryear-ing,
bibstyle = authoryear-ing,
maxcitenames = 2,
mincitenames = 1,
maxbibnames = 100,
minbibnames = 100,
firstinits = true,
abbreviate = true
]{biblatex}
\begin{filecontents}{mwe.bib}
@book{buch1,
Author = {Vornameeins Nachnahmeeins and Vornamezwei Nachnahmezwei},
Title = {Title},
Year = {2010}}
@book{buch2,
Author = {Vornameeins Nachnahmeeins},
Title = {Title},
Year = {2015}}
@book{buch3,
Author = {Vornameeins Nachnahmeeins and Vornamezwei Nachnahmezwei and Vornamedrei Nachnahmedrei},
Title = {Title},
Year = {2010}}
\end{filecontents}
\addbibresource{mwe.bib}
\begin{document}
\cite{buch1}\\
\cite{buch2}\\
\cite{buch3}
\printbibliography
\end{document}
The result is the following:
It seems like the citestyle and the bibstyle are influencing each other. Is there a way to fulfill the requirements I mentioned above? What am I doing wrong?


biblatexare you using? (Add\listfilesto the beginning to your.texfile and check the list at the end of the.logfile.) – moewe Mar 18 '19 at 12:27biblatexversion because your code seems to be for an older version (firstinitswas renamed togiveninitsin version 3.3 released a bit more than three years ago now, 2016-03-01) and some of the things you want to do are much easier with features and functions introduced in newerbiblatexversions. In particularmultinamedelimandfinalnamdelimcan be controlled context-dependently now and the separators between author, year and title can also be changed much easier in newer versions. – moewe Mar 18 '19 at 12:46