15
votes

In Latex, it is possible to insert a space that does not end a line by a ~ character. So writing Fig.~\ref{fig:f1} will write as

Fig. 1

and it makes sure that text wrapping never breaks a line between Fig. and the number 1.

However, in Rmarkdown writing Fig.~\@ref(fig:f1), Fig.\~\@ref(fig:f1), or Fig.\\~\@ref(fig:f1 translates to Fig.\textasciitilde{}\ref{fig:f1} giving

Fig.~1

in the output. How do you insert the equivalent of ~ in rmarkdown? I am actually using bookdown.

3

3 Answers

12
votes

Insert a non breaking space manually using regular HTML:

...Fig. \@ref{fig:f1}...
3
votes

Use \ i.e. backslash then a space.

Fig.\ \@ref{fig:f1}

You could also use $~$, but this works only for PDF.

Fig.$~$\@ref{fig:f1}
0
votes

~ is just a shortcut for \nobreakspace{}. You can directly use the underlying macro to avoid rmarkdown interfering with the tilde:

test\nobreakspace{}test