答案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}