1

BibTeX adds a whitespace after a citation like "et al.". If this occurs at the end of a line, the year can be in the next line.

I think this can be misleading at the end of a line, because it could be mistakenly read as the end of a line and then the number at the beginnning of the next line looks odd.

In my opinion, this interrupts the flow of reading, but I am also interested in your point of view.

For suppressing the line break, I haven't been lazy and did a web search for a solution.

I found the suggestion to use \renewcommand*{\nameyeardelim}{\addnbspace}, but this did unfortunately not work in my hands.

I think this is because of the fact that the \nameyeardelim macro is only provided by the biblatex package, which I am not using (and also can't use, because I am generating the tex file via RStudio's bookdown package.

Could anyone point me towards another possible way to prevent the line break after a "et al." citation?

2
  • Can you give us a short example document (and MWE/MWEB) to play around with, please? I think most details one would need to answer your question are already given, but it would help me get started with your question if I could see what you have so far. That way I don't have to spend my time guessing and recreating what you already have anyway.
    – moewe
    Jun 19, 2018 at 13:56
  • I have removed the biblatex tag since you state that you can't use biblatex, so the question isn't really about biblatex.
    – moewe
    Jun 19, 2018 at 14:08

1 Answer 1

5

With natbib you can either use

\makeatletter
\renewcommand*{\NAT@spacechar}{~}
\makeatother

or

\bibpunct[, ]{\unskip~(}{)}{;}{a}{,}{,}

where the \unskip~( removes the space before the brackets and replaces it with a non-breaking space.

The \NAT@spacechar also turns other spaces inserted by natbib's citation commands into unbreakable spaces, that might be wanted or unwanted. You can see where these spaces are if you replace the ~ in the code above by XXX.

The \bibpunct solution naturally overrides loading-time options such as square and round and sets other punctuation as well. If you use a special style you may have to adjust the value a bit.

natbib.sty explains \bibpunct as follows

% Alternatively:
% Use \bibpunct with 6 mandatory arguments:
%    1. opening bracket for citation
%    2. closing bracket
%    3. citation separator (for multiple citations in one \cite)
%    4. the letter n for numerical styles, s for superscripts
%        else anything for author-year
%    5. punctuation between authors and date
%    6. punctuation between years (or numbers) when common authors missing
% One optional argument is the character coming before post-notes. It
%   appears in square braces before all other arguments. May be left off.
% Example (and default) \bibpunct[, ]{(}{)}{;}{a}{,}{,}

The pdf documentation also has something about it http://mirrors.ctan.org/macros/latex/contrib/natbib/natbib.pdf on p. 13.

2
  • Thanks a lot for your helpful answer. Since I have many citations, which would be affected in an undesirable way by \NAT@spacechar this is difficult (but it is very interesting that this option exists!). What would help me a lot would be an explanation on the \bibpunct code: My citation would be something like Einstein et al. (1919). I use apalike as a citation style. Now I am not sure, whether the suggested could will interfere with other citations. Is there a way to get the default \bibpunct for apalike? Is it maybe even identical to what you wrote? Jun 20, 2018 at 15:50
  • Thanks again so much. This is invaluable supported that I can't acknowledge enough. Jun 20, 2018 at 15:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .