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.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If I cite a bibliography item with an additional argument, for example \cite[p.~6]{bib_item}, it can happen that there is a line break before the automatically inserted argument, such as:

text text text [4,

p. 6]


text text text [5, pp. 11-


Is there a way to prevent this?

share|improve this question
A workaround would be to wrap the \cite command in an \mbox. – Andrey Vihrov May 13 '11 at 8:52
@Andrey I was just going to mention it, but my experiments show that the command \sloppy is often necessary as it tends to exceed the margin. – Harold Cavendish May 13 '11 at 8:56
@Harrold: It's natural that you get overrun lines when you use longer boxes often. But instead of \sloppy I would advise changing the text (adding, deleting or swapping a word or two) so that TeX does not issue warnings. – Andrey Vihrov May 13 '11 at 8:59

Assuming you're not using any packages redefining \cite & friends, here's a solution. (Andrey Vihrov's comments about \mboxes and \sloppy still apply.)


% \def\@cite#1#2{[{#1\if@tempswa , #2\fi}]}% OLD
\def\@cite#1#2{[{#1\if@tempswa ,~#2\fi}]}% NEW


Some text that is just long enough to create an unwanted line break \cite[p.~99]{test}.

\bibitem{test} A bibitem.


EDIT: Replaced \penalty\@m\ with ~ in the definition of \@cite.

share|improve this answer

Your Answer


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.