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?

  • 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 '18 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 '18 at 14:08
4

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.

  • 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? – NicolasBourbaki Jun 20 '18 at 15:50
  • Thanks again so much. This is invaluable supported that I can't acknowledge enough. – NicolasBourbaki Jun 20 '18 at 15:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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