Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Using the example below, how could I modify the separator between last name and the initial? Currently this is a comma e.g. Fox, P. and it should be just a space: Fox P.

And a similar problem: How could I remove the period behind the initial?

\RequirePackage{filecontents}
\begin{filecontents}{sample.bib}
@ARTICLE{liu:11,
  author = {Peter Fox and Richard Rabbit and Franc Bird},
  title = {Animals are the better humans},
  journal = {Horse and Hound},
  year = {2011},
  volume = {10},
  pages = {11--15}
}
\end{filecontents}

\documentclass[a4paper,ngerman]{scrartcl}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[style=authortitle,firstinits=true]{biblatex}

\bibliography{sample}
\begin{document}
Samplecite~\cite{liu:11}.

\printbibliography
\end{document}

Current status alt text

share|improve this question
    
@Vivi: It's great that you're putting so much work into improving questions, but it's leading to the front page being filled with old questions. I think there's an unwritten policy of not having more than five minorly corrected questions on the front page at the same time. –  Jake Jun 21 '11 at 5:49
    
@Jake: sorry, I wasn't aware. –  Vivi Jun 22 '11 at 2:44
add comment

1 Answer

up vote 7 down vote accepted

put it right after loading the package biblatex. If I understand it right, then you only want to strip the dot from the first initial.

\makeatletter
\def\MKbibnamefirst#1{\expandafter\mkbibnamefirst@i#1..\@nil}
\def\mkbibnamefirst@i#1.#2.#3\@nil{#1}

\renewbibmacro*{name:last-first}[4]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \ifblank{#3}{}{%
       \ifcapital
         {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
     {\mkbibnameprefix{#3}}%
       \ifpunctmark{'}{}{\addhighpenspace}}%
     \mkbibnamelast{#1}\isdot
     \ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}%
     \ifblank{#2}{}{\addlowpenspace\mkbibnamefirst{#2}}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibnamelast{#1}\isdot
     \ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}%
%     \ifblank{#2#3}{}{\addcomma}%
     \ifblank{#2}{}{\addlowpenspace\MKbibnamefirst{#2}}%
%     \ifblank{#3}{}{\addlowpenspace\mkbibnameprefix{#3}\isdot}
}}
\makeatother

alt text

share|improve this answer
    
Thank you very much, it is working perfectly. Could you explain the two \def bits and what \@nil is doing? (this is part of a solution at mrunix.de so you will find it there in a minute :)) –  Martin H Jan 11 '11 at 10:51
3  
@Martin: the dot at the initial has to be stripped from the data which is returned by biber or bibtex. If you really know that every bib entry has correct author names it can be done easier. But in this case it also recognizes empty author entries. In this case there is no dot and the macro would fail. with \@nil I can define an end of a parameter sequence. If your have no name then #1 is empty and returned. –  Herbert Jan 11 '11 at 10:57
    
I need somewhat different formatting, namely "Fox P., R. Rabbit" instead of "Fox P, R. Rabbit" (as required by national standards of my country). How to modifiy your script (add a dot after "Fox P" before ",") to keep it working with any number of authors? I meean that "Fox P." sould not transform to "Fox P.." in case of single author. –  Igor Kotelnikov Feb 27 '11 at 5:25
1  
@Igor: If you've got a question, then you should ask it in a new post (and neither in a comment nor in an answer); otherwise people won't notice it. Follow-up questions like this are more than welcome! In your new question, you can link to this one to provide the background. (Then you should remove what you posted here as it is not an answer.) –  Hendrik Vogt Mar 2 '11 at 10:36
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.