1

A long time ago I got some help here to adapt my bibliography to my needs.

This works still fine and is very nice. :-)

Right now I have to use also the command \fullcite{} and this is sadly not reproducing every entry like it is written in the bibliography.

I already found out to change the number of authors which are written out with the following command:

\preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}}

For the rest I could not find solutions: The persons should be separated by a ";" instead of a "," and the last author should not be added with an "&". Just a ";" like before would be perfect. Furthermore there should be a dot at the end of the full citation.

It would be really great if you could help me with that :-)

\documentclass[a4paper,11pt,DIV=calc, titlepage]{scrartcl} 

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[left=4cm,right=2.5cm,top=2.0cm,bottom=2cm,includeheadfoot]{geometry} 
\usepackage[hidelinks]{hyperref}
\usepackage{filecontents}

\parindent0pt 


\usepackage[babel, german=quotes]{csquotes}
\usepackage[style=authoryear-ibid,natbib=true, maxbibnames=3,maxcitenames=2,uniquelist=false, uniquename=false, backend=biber]{biblatex}
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}} %Zitat und Lit in Kapitätlchen

\DefineBibliographyStrings{ngerman}{ % et al instead of "und" with 3 or more authors
   andothers = {{et\,al\adddot}},  }           

\renewcommand{\finalnamedelim}[0]{\addspace\&\addspace}  % replace "und" by & 
\AtBeginBibliography{\renewcommand{\multinamedelim}{\addsemicolon\space}\renewcommand{\finalnamedelim}{\multinamedelim}}

\DeclareNameAlias{sortname}{last-first} %Sort: Last name, first name
\DeclareNameAlias{default}{last-first}  %Sort: Last name, first name

\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished,report, norm, phdthesis, other, misc]{citetitle}{#1} %Remove quotation marks from title
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished,report, norm, phdthesis, other, misc]{title}{#1} %Remove quotation marks from title


%Fullcite change: Write out all authors up to 3
\preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}}



\begin{filecontents}{\jobname.bib}
@Book{Krugmann2015,
    author    = {Krugmann, Paul and Obstfeld, Maurice and Melitz, Mark J.},
    title     = {International economics: theory and policy},
    year      = {2015},
    edition   = {10. edition, global edition},
    publisher = {Pearson},
    location  = {Boston },
    isbn      = {978-1-292-01955-7},
    pubstate  = {Massachusetts},
}

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


\begin{document}


    I am a quote \parencite{Krugmann2015}.\\

    Fullcite:\\
    \fullcite{Krugmann2015}\\\\


    \begingroup
    \phantomsection\addcontentsline{toc}{section}{Literaturverzeichnis} 
    \printbibliography[title={Literaturverzeichnis}]
    \endgroup 
\end{document}
Mensch
  • 65,388

2 Answers2

3

To get the ; between author names you just need

\renewcommand{\multinamedelim}{\addsemicolon\space}

To get an ; instead of , & you just need:

\renewcommand{\finalnamedelim}{\multinamedelim}

Change last to family and first to given:

\DeclareNameAlias{sortname}{family-given} %Sort: Last name, first name
\DeclareNameAlias{default}{family-given}  %Sort: Last name, first name
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

and add the following code to get the closing dot for \fullcite:

\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\adddot} % <===================================

Be sure to have

\preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}}

after the redefinition of \fullcite.

With the complete MWE

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{Krugmann2015,
    author    = {Krugmann, Paul and Obstfeld, Maurice and Melitz, Mark J.},
    title     = {International economics: theory and policy},
    year      = {2015},
    edition   = {10. edition, global edition},
    publisher = {Pearson},
    location  = {Boston },
    isbn      = {978-1-292-01955-7},
    pubstate  = {Massachusetts},
}
\end{filecontents}


\documentclass[a4paper,11pt,DIV=calc, titlepage]{scrartcl} 

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[%
  left=4cm,right=2.5cm,top=2.0cm,bottom=2cm,
  includeheadfoot
]{geometry} 

\usepackage[babel, german=quotes]{csquotes}
\usepackage[%
  style=authoryear-ibid,
  natbib=true, 
  maxbibnames=3,
  maxcitenames=2,
  uniquelist=false, 
  uniquename=false, 
  backend=biber
]{biblatex}
\addbibresource{\jobname.bib}

\usepackage[hidelinks]{hyperref}


\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}} %Zitat und Lit in Kapitätlchen

\DefineBibliographyStrings{ngerman}{ % et al instead of "und" with 3 or more authors
   andothers = {{et\,al\adddot}},  }

\renewcommand{\multinamedelim}{\addsemicolon\space} % <=================
\renewcommand{\finalnamedelim}{\multinamedelim} % <=====================

\DeclareNameAlias{sortname}{family-given} %Sort: Last name, first name
\DeclareNameAlias{default}{family-given}  %Sort: Last name, first name

\DeclareFieldFormat[%
  article,inbook,incollection,inproceedings,patent,thesis,unpublished,
  report, norm, phdthesis, other, misc
]{citetitle}{#1} %Remove quotation marks from title
\DeclareFieldFormat[%
  article,inbook,incollection,inproceedings,patent,thesis,unpublished,
  report, norm, phdthesis, other, misc
]{title}{#1} %Remove quotation marks from title

\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\adddot} % <===================================

%Fullcite change: Write out all authors up to 3
\preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}}


\begin{document}
I am a quote \parencite{Krugmann2015}.\\

Fullcite:\\
\fullcite{Krugmann2015}\\\\

\begingroup
\phantomsection\addcontentsline{toc}{section}{Literaturverzeichnis} 
\printbibliography[title={Literaturverzeichnis}]
\endgroup
\end{document}

you will get the result:

enter image description here

EDIT:

Based on the comment of @moewe I changed the code for the fullcite to:

\makeatletter
\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\defcounter{maxnames}{\blx@maxbibnames}% Write out all authors up to 3
      \DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\addperiod} % <===================================
\makeatother

Please see that command \preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}} is not longer needed. Because now \blx@maxbibnames (contains the given number 3 in the options for biblatex) is used, we need to enclose the code with \makeatletter and makeatother. The ending dot for the fullcite is now set by \addperiod.

With the following MWE (I deleted the \\ too)

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{Krugmann2015,
  author    = {Krugmann, Paul and Obstfeld, Maurice and Melitz, Mark J.},
  title     = {International economics: theory and policy},
  year      = {2015},
  edition   = {10. edition, global edition},
  publisher = {Pearson},
  location  = {Boston },
  isbn      = {978-1-292-01955-7},
  pubstate  = {Massachusetts},
}
\end{filecontents}


\documentclass[a4paper,11pt,DIV=calc, titlepage]{scrartcl} 

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[%
  left=4cm,right=2.5cm,top=2.0cm,bottom=2cm,
  includeheadfoot
]{geometry} 

\usepackage[babel, german=quotes]{csquotes}
\usepackage[%
  style=authoryear-ibid,
  natbib=true, 
  maxbibnames=3,
  maxcitenames=2,
  uniquelist=false, 
  uniquename=false, 
  backend=biber
]{biblatex}
\addbibresource{\jobname.bib}

\usepackage[hidelinks]{hyperref}


\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}} %Zitat und Lit in Kapitätlchen

\DefineBibliographyStrings{ngerman}{ % et al instead of "und" with 3 or more authors
   andothers = {{et\,al\adddot}},  }

\renewcommand{\multinamedelim}{\addsemicolon\space} % <=================
\renewcommand{\finalnamedelim}{\multinamedelim} % <=====================

\DeclareNameAlias{sortname}{family-given} %Sort: Last name, first name
\DeclareNameAlias{default}{family-given}  %Sort: Last name, first name

\DeclareFieldFormat[%
  article,inbook,incollection,inproceedings,patent,thesis,unpublished,
  report, norm, phdthesis, other, misc
]{citetitle}{#1} %Remove quotation marks from title
\DeclareFieldFormat[%
  article,inbook,incollection,inproceedings,patent,thesis,unpublished,
  report, norm, phdthesis, other, misc
]{title}{#1} %Remove quotation marks from title

\makeatletter
\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\defcounter{maxnames}{\blx@maxbibnames}% Write out all authors up to 3
      \DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\addperiod} % <===================================
\makeatother


\begin{document}
I am a quote \parencite{Krugmann2015}.

Fullcite: 
\fullcite{Krugmann2015}

\begingroup
\phantomsection\addcontentsline{toc}{section}{Literaturverzeichnis} 
\printbibliography[title={Literaturverzeichnis}]
\endgroup
\end{document}

you get the result:

resulting pdf

Mensch
  • 65,388
  • I'd use \addperiod instead of \addot. The former gives a full stop, the latter an abbreviation dot. While it is very unlikely that this will change things, it is semantically nicer to use\addperiod. The \preto\fullcite bit can be moved directly into the redefinition of \footcite similar to https://tex.stackexchange.com/a/399252/35864 – moewe Nov 08 '17 at 08:23
  • Absolutely. BTW: If both sortname and default have the same format, the \DeclareNameAlias{sortname}{default} in the definition of \fullcite should not be needed any more. – moewe Nov 08 '17 at 15:25
1

Hopefully, this should work with biblatex 3.8a + biber. The sole problem which remains with biblatex 3.8a, when tested with bibtex8 (the required version of biber – 2.8, is not available as yet) is one has to add the final dot. So you should only add a re-definition of\fullcite`:

\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\adddot}

enter image description here

Bernard
  • 271,350
  • Thank you very much. Now the dot is there :-) Do you have any suggestions for the delimiters and the "&"? – user2894356 Nov 07 '17 at 20:12
  • It is as you want with latest biblatex (as you can see from the screenshot) – at least it should be since I could not test with the corresponding version of biber (not out yet), only with bibtex8. – Bernard Nov 07 '17 at 20:21
  • Sorry, you misunderstood me. Up to three authors I would like not have the "et al.". So in this case the fullcite should really look 1:1 like in the bibliography. – user2894356 Nov 07 '17 at 20:35
  • Do you mean that for three authors ase here, you cite the first two, without et al.? – Bernard Nov 07 '17 at 20:39
  • The command \fullcite should produce: Krugmann, Paul; Obstfeld, Maurice; Melitz, Mark J. (2015). International... So if Krugmann et al. would be written from 4 authors, then it should look like you made it with the et al. :-) – user2894356 Nov 07 '17 at 20:50
  • I was going to say ‘use maxcitenames=3, but I see that in this case we don't have anymore semicolons, but commas. I'll try to see for a solution. – Bernard Nov 07 '17 at 20:54