将文本块水平和垂直居中

将文本块水平和垂直居中

我想要将一个文本块水平和垂直居中,就好像它是一个抽象的文本块一样。我该怎么做?

我尝试过这个:

\null\vfill
\begin{center}

\end{center}
\vfill\null

这正确吗?

答案1

“正确”的方式可能是

\clearpage
\vspace*{\fill}
\begin{center}
\begin{minipage}{.6\textwidth}
Text that will be justified
...
\end{minipage}
\end{center}
\vfill % equivalent to \vspace{\fill}
\clearpage

顶部垂直空间应为\vspace*,这样它就不会在分隔符处消失。对齐文本的行宽将是正常行宽的 6/10,请更改该分数以适合您。

你也可以用类似的方式决定顶部和底部的不同空间;例如

\clearpage
\vspace*{\stretch{2}}
\begin{center}
\begin{minipage}{.6\textwidth}
Text that will be justified
...
\end{minipage}
\end{center}
\vspace{\stretch{3}}
\clearpage

将在 2/3 的比例中留下空间;这种东西对于献词页很有用,因为献词通常不在页面的中心。

如果你需要小页面中的文本像普通文本一样缩进段落,那么centerminipage就不合适了。这可以通过更复杂的构造来实现:

\documentclass{article}
\usepackage{lipsum}

\begin{document}

\clearpage
\vspace*{\fill}
\begin{list}{}{%
  \leftmargin=.2\textwidth
  \rightmargin=.2\textwidth
  \listparindent=\parindent
  \itemindent=\parindent
  \itemsep=0pt
  \parsep=0pt}
\item\relax
\lipsum[1-2]
\end{list}
\vfill % equivalent to \vspace{\fill}
\clearpage

\end{document}

该包lipsum仅产生一些文本。

相关内容