4

For a paper I have to change my whole Tex file set up to German. I use MikTex 2.9 on Windows. All works except the "and" between the different author names in the footnotes and in the bibliography.

I already tried the recommended solution to change this by going through the .bst file, but it doesn't work. FUNCTION {format.lab.names} does not exist in my file and the only place where I found " and " was at FUNCTION {output:write:list} which doesn't seem right and also did not work when I changed it there. I checked the whole file but I couldn't find any Function code that might fit.

I made the change in the biblatex.bst because in the .bst folder (MixTex/bibtex/bst) it is the only one that relates to my code. There is no natbib.bst, authoryear.bst or biber.bst like described in the other solutions here in stackexchange.

Maybe I have the wrong .bst file? Or I made already some adaptations which changed the .bst code?

I also tried the \renewcommand*{\betweenauthors}{\und} option in my preamble which doesn't work either.

I only need this change for one single homework, so an easy (maybe dirty) fix would do. Here's my minimal working example (hope it's not too long):

\documentclass[12pt, listof=totoc, bibliography=totoc]{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel} 

\usepackage[style=authoryear-icomp, natbib=true, bibencoding = utf8, maxbibnames=10, 
            maxcitenames=3, isbn=false, backend=biber, dashed=false,
            firstinits=true, uniquename=init, sorting=nyt]{biblatex}

\addbibresource{Minimalbeispiel_German.bib}

\DeclareNameFormat{labelname}{
    \usebibmacro{name:last-first}{#1}{#4}{#5}{#8}
    \usebibmacro{name:andothers}}

\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
  {}
  {\printtext[bibhyperref]{%
   \printtext[parens]{% <- space
   \printfield{labelyear}%
   \printfield{extrayear}}}}}

\renewbibmacro{in:}{%
  \ifentrytype{article}{%
    \setunit{\addsemicolon\space}%
    \printtext{\bibstring{in}\intitlepunct}%
  }{%
    \printtext{\bibstring{in}\intitlepunct}%
  }%
}

%usepackage{germbib}
\usepackage{chngcntr} \counterwithout{footnote}{chapter}
\setlength{\bibhang}{1cm}  % Einzug der umgebrochenen Zeile
\setlength{\bibitemsep}{0.5cm}     % Abstand zw. Literaturangaben

\DeclareNameAlias{sortname}{last-first} %% erst Nachname, dann Vorname
\renewcommand*{\labelnamepunct}{\addcolon\space} % Doppelpunkt nach dem letzten Namen
\renewcommand*{\multinamedelim}{\addsemicolon\space} %% Trenner zwischen den Namen ein Semikolon
\renewcommand*{\finalnamedelim}{\space~and~\space} %% Trenner zwischen den Namen ein Semikolon
%\renewcommand*{\betweenauthors}{\und}

\renewbibmacro*{bbx:editor}[1]{% 
   \ifboolexpr{ 
     test \ifuseeditor 
     and 
     not test {\ifnameundef{editor}} 
   } 
     {\usebibmacro{bbx:dashcheck} 
        {\bibnamedash} 
        {\printnames{editor}% 
    \setunit{\space}%
    \usebibmacro{bbx:savehash}}% 
      \usebibmacro{#1}% 
      \clearname{editor}% 
      \setunit{\addspace}}% 
     {\global\undef\bbx@lasthash 
      \usebibmacro{labeltitle}% 
      \setunit*{\addspace}}% 
   \usebibmacro{date+extrayear}} 

        \AtEveryBibitem{%
  \ifentrytype{misc}{%
      \clearfield{note}%
    \clearfield{type}%      %hier einfach auflisten was nicht erscheinen soll
  }%
 }
        \AtEveryBibitem{%
  \ifentrytype{electronic}{%
      \clearfield{note}%
    \clearfield{type}%      
  }%
 }
\AtEveryBibitem{%
  \ifentrytype{book}{%
      \clearfield{note}%
    \clearfield{url}%       
  }%
 }

\DeclareNameAlias{editor}{sortname}

\begin{document}
Some Text\footcite[Vgl.][S. 30]{Example2012} and then even more text\footcite[Vgl.][S. 30]{Doe2013}. And continuing with other text\footcite[Vgl.][S. 30]{Professor2000} and more words\footcite[][S. 30]{Professor2000}.

\printbibliography
\end{document}

And the .bib file Minimalbeispiel_German.bib to go with it:

\begin{bibliography}

@ELECTRONIC{Example2012,
  title = {The Top 100},
  year = {2012},
  url = {http://somepage.de/uploads/files/fd3323c9a2.pdf},
  month = {9},
  day = {25},
  editor = {Webeditor, Mike},
  type = {Whitepaper},
  lastchecked = {2013-07-01},
  urldate = {2013-07-01},
}

@BOOK{Doe2013,
  author = {Doe, John and Smith, Jane and Jamesson, James},
  title = {The Quintessence of Everything},
  publisher = {Springer},
  year = {2010},
  address = {New York, London},
   }

 @unpublished{Professor2000,
  author = {Jackson, Jack},
  title = {Book from my Professor},
  year = {2000},
  month = {6},
  type = {Seminar Book},
  note = {Seminar Book},
  timestamp = {2013-07-18}
}

\end{bibliography}
lockstep
  • 250,273
Mary
  • 169

1 Answers1

4

biblatex does not really use .bst files anymore, the important files for biblatex are .bbx (bibliography), .cbx (citations), .dbx (data model) and .lbx (localization) now. You could say

\DeclareDelimFormat{finalnamedelim}{\addspace\bibstring{and}\space}

in the preamble, biblatex provides a translation of "and" so just use \bibstring{and}. But the original definition of finalnamedelim in biblatex.def is

\DeclareDelimFormat{finalnamedelim}{%
  \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
  \addspace\bibstring{and}\space}

where \finalandcomma is empty for German. That means the standard definition will give you the same output and you actually don't need to redefine finalnamedelim at all.


There is no need for \begin{bibliography} and \end{bibliography} in the .bib file, in fact I am surprised that your biber does not complain (I get a warning like 20 characters of junk seen at toplevel).


edit: Modernised for biblatex 3.8 and above. Please note that the code in the question is for biblatex before version 3.3 (Biblatex 3.3 name formatting) and that many other idioms can be replaced by more elegant techniques now.

moewe
  • 175,683
  • Perfect! That works! You're right, I just checked my regular .bib file and it does not include \begin{bibliography}. Not sure how it ended up in the minimal example. Guess I copied it somewhere. – Mary Sep 19 '13 at 12:56