87

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.
  • 2
    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 0:48
119

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}
  • 2
    You have to add a line break before \centerline{}, but otherwise perfect :) Thanks! – Tyson Williams Jul 27 '11 at 1:19
  • Oops my bad; I was fooled by my narrow default page width! I've made the change. – cmhughes Jul 27 '11 at 1:23
  • 3
    This requires manually determining where the last line of the paragraph will start. A modification to the paragraph might produce undesired results. – Gonzalo Medina Jul 27 '11 at 1:23
  • 1
    @GonzaloMedina I didn't want to center the last line of a paragraph. I wanted to center specific words in the text. – Tyson Williams Jan 27 '14 at 13:35
42

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}
  • This is an improvement but for me still adds some vertical spacing. – Roly Aug 29 '17 at 8:22
23

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.

  • +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
  • @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 9 '17 at 8:42
12

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

1

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}
  • Welcome to TeX.SX! But that's a very bad idea for long text, isn't it? – TeXnician Nov 24 '17 at 6:49
  • there is a \\ missing, otherwise the table will appear on the same line – jakun Nov 24 '17 at 7:08
  • Even with a preceeding \\ this will not be centered on the page. You need a tabular* and a width specification - but really a version of center is much easier. – Andrew Swann Nov 24 '17 at 7:31

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.