137

In normal text, how do I center part of a sentence (it happens to be the end of a sentence) but leave the text in the rest of the paragraph unaltered? Also, no vertical space should be added before or after the centered text.

In a word processor, I would add a new line just before the text to be centered and then "center" the text on the next line. I tried doing things similar to this with various LaTeX commands, but nothing worked.

This is what I want it to look like:

This is a really long sentence as an example.  The second half of this
                               sentence should be centered.
Corentin
  • 9,981
  • 3
    Does \centering not yield the desired result? Do you want to keep the indentation of the first line of the paragraph? – Jake Jul 27 '11 at 00:48

6 Answers6

177

How about this:

\documentclass{article}

\begin{document}

This is a really long sentence as an example.  The second have of this\\
\centerline{sentence should be centered.}
\end{document}
David Carlisle
  • 757,742
cmhughes
  • 100,947
55

Please do not use \centerline if possible, it's not suitable for long text. Just patch LaTeX's center environment like this:

\documentclass{article}
\newenvironment{tightcenter}{%
  \setlength\topsep{0pt}
  \setlength\parskip{0pt}
  \begin{center}
}{%
  \end{center}
}

\begin{document}
text text text text text text text text text text text text text text text text text text text text text text text text
\begin{tightcenter}
foo
\end{tightcenter}
text text text text text text text text text text text text text text text text text text text text text text text text

\end{document}
Leo Liu
  • 77,365
28

You could use the TeX primitives \rightskip and \leftskip; a little example:

\documentclass{article} 

\begin{document}

\begingroup
\leftskip=0cm plus 0.5fil \rightskip=0cm plus -0.5fil
\parfillskip=0cm plus 1fil
This is a really long sentence as an example.  The last line of this
paragraph will be centered.\par
\endgroup
Another sentence that starts a new paragraph

\end{document}

enter image description here

The explanation of the code (as given in TeX by Topic):

For all lines of a paragraph but the last one the stretch components add up to zero so the \leftskip and \rightskip inserted are zero. On the last line the \parfillskip adds plus 1fil of stretch; therefore there is a total of plus 0.5fil of stretch at both the left and right end of the line.

Gonzalo Medina
  • 505,128
  • +1 Works without needing to know where the line breaks (though the OP didn't state this as a requirement) – ThomasH Oct 24 '13 at 10:24
  • 1
    @GonzaloMedina why bother? what's wrong with {\par\centering ...text...\par} – wasteofspace Feb 11 '15 at 11:34
  • There should also be a \noindent in front of the centered paragraph, otherwise the first line will not be completely centered. – maja Jul 09 '17 at 08:42
  • @wasteofspace Using \centering will not justify all the lines of the paragraph leading up to the last line. Try putting a six-line paragraph in Gonzalo's setting vs the same in yours and note the difference in formatting. – Don Hosek Jun 30 '21 at 17:58
14

Just place the portion to be centered in a full-width \makebox. Here are two examples in this MWE: 1) what the OP asked about, and 2) a paragraph that continues after the event.

\documentclass{article}
\parskip 1em
\begin{document}
This is a really long sentence as an example.  The second half of this\\
\makebox[\textwidth]{sentence should be centered.}

This is a really long sentence as an example.  
This is a really long sentence as an example.  
The second half of this\\
\makebox[\textwidth]{sentence should be centered.}
This is a really long sentence as an example.  
This is a really long sentence as an example.  
\end{document}

enter image description here

4

It can also be solved using a pair of hspace*:

\documentclass{article}

\begin{document}

This is a really long sentence as an example. The second half of this\ \hspace{\fill} sentence should be centered. \hspace{\fill} \end{document}

2

You could use tabular environment, with one centred column:

    \documentclass{article}
    \begin{document}
    Left-justified here! \\
    \begin{tabular}{c}
    Text in here is centred.
    \end{tabular}
    \end{document}