如何更改段落中文本的垂直对齐方式

如何更改段落中文本的垂直对齐方式

我正在尝试格式化具有两种不同大小字体的一行文本,以便较小尺寸文本的垂直对齐基于较大尺寸文本。

在一个实例中,我希望较小的文本垂直居中于较大的文本上,而在另一个实例中,我希望较小的文本顶线与较大的文本顶线对齐。

就我有限的理解而言,这应该转化为改变段落参数以将段落垂直对齐方式更改为“居中”或“顶线”。

在此处输入图片描述

答案1

您可以使用[t]([b]对齐第一个或最后一个基线,进行调整以使字母的顶部对齐,您可以通过\raisebox大写字母的大小差异进行或多或少的移动(正确的显示取决于行中有多少个大写或小写字母)

在此处输入图片描述

\documentclass{article}

\begin{document}



1 \parbox{3cm}{\Huge Big text}
1 some text some text some text some text some text

\bigskip\hrule\bigskip


2 \parbox[t]{3cm}{\Huge Big text}
2 some text some text some text some text some text

\bigskip\hrule\bigskip


3 \raisebox{-10pt}{\parbox[t]{3cm}{\Huge Big text}}
3 some text some text some text some text some text

\bigskip\hrule\bigskip


4 \parbox{3cm}{\Huge Big text more text}
4 some text some text some text some text some text

\bigskip\hrule\bigskip


5 \parbox[t]{3cm}{\Huge Big text more text}
5 some text some text some text some text some text

\bigskip\hrule\bigskip

6 \raisebox{-10pt}{\parbox[t]{3cm}{\Huge Big text more text}}
6 some text some text some text some text some text

\bigskip\hrule\bigskip


\end{document}

答案2

虽然可以计算\raisebox样本所需的距离,但打印出该值并使用它可能会更容易。请注意,它\strut比样本文本略大。

\documentclass{article}
\newsavebox{\bigtext}
\newsavebox{\smalltext}

\begin{document}
\sbox\bigtext{\huge BIG TEXT}%
\sbox\smalltext{Some text}%
\hrule
%\strut% will lower the text relative to the line
\raisebox{\dimexpr \ht\smalltext-\ht\bigtext}{\usebox\bigtext}
\usebox{\smalltext} Some text. 
\the\dimexpr \ht\smalltext-\ht\bigtext\relax
\end{document}

演示

答案3

除非所有字符都没有降部并且具有相同的高度(即大写字母),否则“垂直居中”的概念没有明确的定义。

主要问题在于眼睛如何感知字符:下降部可能会被忽略,但较远的上升部可能会导致“错误”居中。请参阅以下示例:

在此处输入图片描述

在任何一种情况下,小文本都相对于大文本的高度居中,但底部文本则不居中就像这样。在这里​​我添加了领导者规则来展示业务:

在此处输入图片描述

按照这些规则,在第二个例子中居中看起来也是正确的,但如果没有这些规则,眼睛就会被白色空间误导。

\documentclass{article}
\usepackage{helvet}

\newcommand{\bigandcentered}[2]{%
  \begingroup
  \sbox0{\huge\sffamily #1}%
  \sbox2{\sffamily #2}%
  \usebox{0}\quad
  \raisebox{\dimeval{(\ht0-\ht2)/2}}{\usebox{2}}%
  \endgroup
}

\begin{document}

\bigandcentered{Hey}{centered}

\bigskip

\bigandcentered{Ace}{full hand}

\end{document}

顶部对齐面临同样的问题:在您想要的 Helvetica 或 Arial 字体中,上升部分具有不同的高度。

在此处输入图片描述

这实际上看起来并不像是“顶部对齐”,但事实确实如此!

在此处输入图片描述

\documentclass{article}
\usepackage{helvet}

\newcommand{\topandbig}[2]{%
  \begingroup
  \sbox0{\sffamily #1}%
  \sbox2{\huge\sffamily #2}%
  \raisebox{\dimeval{\ht2-\ht0}}{\usebox{0}}\quad
  \usebox{2}%
  \endgroup
}

\begin{document}

\topandbig{Text at the top}{Big text}

\end{document}

相关内容