如何使文本居中而不添加空格并且不改变周围文本的对齐方式?

如何使文本居中而不添加空格并且不改变周围文本的对齐方式?

在普通文本中,如何将句子的一部分居中(恰好是句子的结尾),但保持段落其余部分的文本不变?此外,居中文本前后不应添加垂直空格。

在文字处理器中,我会在要居中的文本前添加一个新行,然后将文本“居中”到下一行。我尝试使用各种 LaTeX 命令执行类似操作,但都不起作用。

我想要的效果如下:

This is a really long sentence as an example.  The second half of this
                               sentence should be centered.

答案1

这个怎么样:

\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

尽量不要使用\centerline,它不适合长文本。只需center像这样修补 LaTeX 的环境:

\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}

答案3

您可以使用 TeX 原语\rightskip\leftskip;一个小例子:

\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}

在此处输入图片描述

代码的解释(如 TeX by Topic 所示):

对于段落中除最后一行之外的所有行,拉伸分量加起来为零,因此插入的\leftskip\rightskip为零。在最后一行,\parfillskip添加了拉伸;因此,行的左端和右端plus 1fil总共有拉伸。plus 0.5fil

答案4

也可以使用一对来解决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}

相关内容