1

Consider the following MWE:

\documentclass{article}
\usepackage[showframe]{geometry}
\begin{document}
\bigskip
This is a test.
\end{document}

This renders as follows:

enter image description here

As you can see, the \bigskip fails to leave a vertical space. This is a common nuisance, which I normally deal with by preceding the command with either \hbox{}, or ~. For instance:

\documentclass{article}
\usepackage[showframe]{geometry}
\begin{document}
\hbox{}\bigskip
This is a test.
\end{document}

renders:

enter image description here

What I want to know is (1) why does this happens, (2) why do \hbox{} and ~ work here, and (3) what is the best practice around this issue. (I imagine this has to do with vmode and hmode, but I don't really know what's going on.)

4
  • Vertical space is ignored at page breaks (and there is a break also when the first page starts, by convention); neither method is good: \hspace*{\bigskipamount} is the correct one. – egreg Oct 15 '15 at 14:39
  • Why aren't these methods good? – NVaughan Oct 15 '15 at 14:41
  • 1
    because ~ produces a paragraph with a full white line of text then the bigskip, so you get \baselineskip more vertical space and potentially get a page break between the white paragraph and the skip so would still lose the skip but have an anomalous white line at the top of the page. The vertical spacing with ~ is just as if you used X (with \hbox it's more complicated, but still bad) – David Carlisle Oct 15 '15 at 14:43
  • Of course it's \vspace*, not \hspace* in my previous comment. Fixing David's typos introduced some noise. ;-) – egreg Oct 15 '15 at 16:06
2

It happens because you normally don't want spaces at line or page breaks to be preserved and the best practice is \vspace* if you really want the space:

\documentclass{article}
\usepackage[showframe]{geometry}
\begin{document}
\vspace*{\bigskipamount}
This is a test.
\end{document}
3
  • 1
    ~\bigskip This is a test. doesn't work. You would need an additional par. \hbox is a tex primitive and not a latex command. Beside this in both case a page break before the \bigskip is possible and then you would again loose the space. – Ulrike Fischer Oct 15 '15 at 14:55
  • In an answer to the question backreferenced to this one, Werner suggested using \mbox{}. Is this also unadvisable? – NVaughan Oct 16 '15 at 0:20
  • 1
    \mbox{} is like ~. – Ulrike Fischer Oct 16 '15 at 7:29

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