178

What is the difference between \par, \newline and \\ and blank lines and when should I use \par instead of \\?

  • 10
    Well, use \par when you want a new paragraph (and don't wan to insert a blank line for some reason, such as in macro/environment definitions), and use \\ in array and tabular. That's the rules I have been following. – Peter Grill Nov 14 '12 at 0:57
167

\par is a TeX primitive and is the same as a blank line (except in special environments such as verbatim where the usual rules don't apply). It ends horizontal mode, causes TeX to break the horizontal text into lines placed on the current vertical list, and exercises the page breaker which may possibly cause the next page to be shipped out.

\\ is different in almost every respect. It is a macro not a primitive, and its definition changes wildly in almost every LaTeX definition. The definition in normal text, a center environment a flushleft environment and a table are all different.

In normal running text when it forces a linebreak it is essentially a shorthand for \newline this does not end horizontal mode or end the paragraph, it just inserts some glue and penalties at that point into the horizontal material so that when the paragraph does end a linebreak will occur at that point with the short line padded with white space.

\\at the end of a paragraph causes bad output with an empty, maximally underfull, box, and so you get a warning about badness 10000, the visual affect looks a bit like extra vertical space but it is not it is an extra spurious line at the end of the paragraph, and for example it is not dropped at a page break and will break widow/club line calculations.

You should rarely need to use \\ in documents apart from its use in alignments (where it is a macro based on the \cr primitive), and you should rarely need \par in documents as a blank line should suffice.

  • 16
    a consequence of using \\ instead of paragraph breaks is that (la)tex continues to load text into memory, and doesn't actually output anything until an actual paragraph break occurs. this may not be so important now, with memory capacity being so large, but when memory was a much more scarce resource, failing to use paragraph breaks was a sure way to run out of memory and crash the job before it finished. it will still slow down the processing when the "paragraphs" are very long. – barbara beeton May 2 '14 at 1:39
  • 1
    @JonasStein hmm I would have said better to ask a new question but someone did that but it was closed as duplicate of this (not by me:-) so OK if you edit the question to ask about blank lines I'll add something here (basically they are the same as \par except in verbatim and other special cases) – David Carlisle Aug 29 '16 at 5:40
  • I've seen people say that using \\ is a cause of bad box warnings. Is it? cc. @barbarabeeton – cfr Jul 9 '18 at 1:12
  • 1
    @cfr \\ at the end of a paragraph causes spectacularly bad output with an empty, maximally underfull, box, and so you get a warning about badness 10000, if that is what you mean. I wouldn't say that \\ itself makes the warning, as that makes it sound like it is some kind of spurious warning and the warning itself is the issue. – David Carlisle Jul 9 '18 at 6:54
  • @DavidCarlisle But I can't get it to give me any warnings at all. Or did you mean it only does so at the end of paragraphs? – cfr Jul 9 '18 at 22:21
43

In text mode, \par starts a new paragraph, while \\ ends the current line.

So when to use each one?

\\ should be used with parsimony, when you want to break of the rhythm of your current argumentation, but without jumping to a new idea / argument (which would require starting a new paragraph).

\par should actually be used even less frequently. Not that you do not want to start new paragraphs (you do want to keep paragraphs to reasonable lengths!), but you should start new paragraphs by leaving an empty line in your TeX code. This has the exact same effect as using \par, but will make your code much more readable. \par is therefore mostly used when defining macros.


Note that outside of text mode, \par will usually lead to an error, while \\ usually works as expected to start a new line (like while in an tabular or array).

  • \` in text usually works except when it says ! LaTeX Error: There's no line here to end. (e.g., dual \` to produce two blank lines in a paragraph ... there are more reliable ways to do that.) [gosh — don't understand where that – wasteofspace Jan 12 '15 at 20:04
  • the previous one by me showed my non-understanding of markdown (or whatever it is). i was trying to use backslashes, and the output was all to pot ... and in the allowed 5 minutes i couldn't sort the problem. must remember to keep my mouth shut in future... :-( – wasteofspace Jan 15 '15 at 10:13
  • 2
    @wasteofspace to put a double backslash in code markdown you need to type backtick, dobule backslash, space, backtick. This yields \\ . I guess you comment above was meant to be «\\ in text usually works except when it says ! LaTeX Error: There's no line here to end. (e.g., dual \\ to produce two blank lines in a paragraph ... there are more reliable ways to do that.)», right? – MickG May 29 '15 at 9:49

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.