我有以下 MWE,其中有两个问题。
第一个问题是我无法将小页面的文本对齐到彼此的顶部。我使用了标识符,[t]
但它不起作用。我读过这里的其他类似问题,它们都表明它应该有效。
第二个问题是,我想找到一种方法来完全控制标尺和其上方标题之间的垂直空间。我想将其放置在文本下方一点,但\hrule
放置得太近了。
平均能量损失
\documentclass{article}
\usepackage{fontspec}
\usepackage[english]{babel}
\begin{document}
\begin{center}
{\LARGE \textbf{Text Here}}
\end{center}
\vspace{1cm}
{\large Text here}
\rule{\textwidth}{1pt}
\vspace{0.5cm}
\begin{minipage}[t]{0.1\textwidth}
\begin{flushright}
Hello
\end{flushright}
\end{minipage}%
%
\hspace{1pt}
%
\begin{minipage}[t]{0.05\textwidth}
\rule{1pt}{2cm}
\end{minipage}%
%
\begin{minipage}[t]{0.80\textwidth}
Hello
\end{minipage}
\end{document}
答案1
minipage
的选择t
并不意味着顶部边缘minipage
但顶部基线minipage
。默认情况下,a 的基线\rule
位于规则下方。但您可以使用可选的增加争论。
水平线和上方文本之间的距离的原因是一样的,你可以再次使用可选的增加争论。
在下面的例子中,我\ht\strutbox
使用增加参数。\ht\strutbox
类似于标准文本行的高度。
\documentclass{article}
\usepackage{fontspec}
\usepackage[english]{babel}
\begin{document}
\begin{center}
{\LARGE \textbf{Text Here}\par}
\end{center}
\vspace{1cm}
{\large Text here\par}
\rule[\ht\strutbox]{\textwidth}{1pt}
\vspace{0.5cm}
\begin{minipage}[t]{0.1\textwidth}
\begin{flushright}
Hello
\end{flushright}
\end{minipage}%
%
\hspace{1pt}
%
\begin{minipage}[t]{0.05\textwidth}
\rule[\dimexpr \ht\strutbox-2cm]{1pt}{2cm}
\end{minipage}%
%
\begin{minipage}[t]{0.80\textwidth}
Hello
\end{minipage}
\end{document}
顺便说一句:我在字体大小更改组结束之前添加了\par
,因为段落设置是通过在段落末尾有效的字体大小设置完成的。
另一种方法是降低minipage
s 以使其与顶部边缘对齐,而不是与顶部基线对齐。这可以使用以下方法完成\raisebox
:
\documentclass{article}
\usepackage{fontspec}
\usepackage[english]{babel}
\begin{document}
\begin{center}
{\LARGE \textbf{Text Here}\par}
\end{center}
\vspace{1cm}
{\large Text here\par}
\rule[\ht\strutbox]{\textwidth}{1pt}
\vspace{0.5cm}
\raisebox{\dimexpr\ht\strutbox-\height}{\begin{minipage}[t]{0.1\textwidth}
\raggedright
Hello
\end{minipage}}%
%
\hspace{1pt}
%
\raisebox{\dimexpr\ht\strutbox-\height}{\begin{minipage}[t]{0.05\textwidth}
\raggedright
\rule{1pt}{2cm}
\end{minipage}}%
%
\raisebox{\dimexpr\ht\strutbox-\height}{\begin{minipage}[t]{0.80\textwidth}
Hello
\end{minipage}}
\end{document}
在这种情况下\height
是框内容的高度。结果是:
第二种选择是赋予所有minipage
s 相同的顶部基线:
\documentclass{article}
\usepackage{fontspec}
\usepackage[english]{babel}
\begin{document}
\begin{center}
{\LARGE \textbf{Text Here}\par}
\end{center}
\vspace{1cm}
{\large Text here\par}
\rule[\ht\strutbox]{\textwidth}{1pt}
\vspace{0.5cm}
\begin{minipage}[t]{0.1\textwidth}
\vskip -\baselineskip
\raggedright
Hello
\end{minipage}%
%
\hspace{1pt}
%
\begin{minipage}[t]{0.05\textwidth}
\vskip -\baselineskip
\raggedright
\rule{1pt}{2cm}
\end{minipage}%
%
\begin{minipage}[t]{0.80\textwidth}
\vskip -\baselineskip
Hello
\end{minipage}%
\end{document}
答案2
迷你页面是相对于每行的第一行顶部对齐。看起来不对劲的是,行的下端位于基线上。因此,您必须将行降低到基线以下。
\begin{minipage}[t]{0.05\textwidth}
\raisebox{\dimexpr-\height+1.5ex}{\rule{1pt}{2cm}}
\end{minipage}%
关于第二个问题,我不确定我是否理解了这个问题。但你可以使用以下方法控制文本和水平线之间的距离
{\large Text here}\\[-2ex]
\rule{\textwidth}{1pt}
替换-2ex
您需要的任何距离。