将小页面与小页面内第一行或最后一行的基线对齐吗?

将小页面与小页面内第一行或最后一行的基线对齐吗?

环境minipage有选项可以让小页面框的顶部、底部或中心与周围文本的基线对齐。有没有办法让它与小页面内第一行或最后一行文本的基线对齐?

我想我会使用\raisebox,但我如何计算从小页面顶部到第一行基线的距离(或从小页面底部到最后一行基线的距离)?

更新:

正如下面出色的答案所示,minipage已经满足了我的要求。我遇到的问题是该\color命令以各种奇怪的方式干扰了 minipage。在 minipage 的开头和结尾放置一个并没有解决这个问题,但一旦我将其更改为\strut,一切都开始正常工作:\color\textcolor

图片说明颜色如何破坏事物

\documentclass{article}
\usepackage{color}
\usepackage{varwidth}
\newcommand{\sampletext}{testing (1)\\testing (2)}
\newcommand{\tmp}[2]{\fbox{\begin{varwidth}[#1]{0.8in}#2\end{varwidth}}}
\newcommand{\broken}[1]{\tmp{#1}{\color[rgb]{0,0,0.5}\sampletext}}%
\newcommand{\fixed}[1]{\tmp{#1}{\textcolor[rgb]{0,0,0.5}{\sampletext}}}%
\setlength{\parindent}{0pt}\setlength{\parskip}{\baselineskip}%
\begin{document}
with \verb|\color|:\\
before \broken{t} between \broken{c} between \broken{b} after

with \verb|\textcolor|:\\
before \fixed{t} between \fixed{c} between \fixed{b} after
\end{document}

答案1

[t][b]的可选参数已经minipage使用了第一行和最后一行的基线,而不是周围框的顶部或底部。据我所知,LaTeX 中的大多数此类垂直定位选项都涉及基线。这里有三个minipage带有[t][c](或不带有)和[b]选项(下面的代码):

结果

如果不是这种情况,我会分别使用\raisebox{\dimexpr-\height+\ht\strutbox\relax}{<content>}\raisebox{\dimexpr\depth-\dp\strutbox\relax}{<content>}作为第一条和最后一条基线。这取决于内容,但如果两行都包含 ,则会准确无误\strut


更新:

关于问题\color:这个宏显然增加了一些垂直空间,因为 TeX 的开头minipage仍然处于垂直模式。要避免这种情况,请使用\leavevmodebefore \color\textcolor内部也是如此)。这将更改为水平模式并避免错位。添加\strutbefore\color实际上应该会做同样的事情,因为它也会启动水平模式。


\documentclass{article}

\usepackage{lipsum}

\begin{document}

before
\begin{minipage}[t]{1cm}
    First\\
    Middle\\
    Last
\end{minipage}
between
\begin{minipage}[c]{1cm}
    First\\
    Middle\\
    Last
\end{minipage}
between
\begin{minipage}[b]{1cm}
    First\\
    Middle\\
    Last
\end{minipage}
after

\end{document}

答案2

您所建议的 varwidth 包很有趣,但我认为,就主题而言,“minipage 环境”将列放在同一级别,我会使用这个...

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\begin{minipage}[t]{0.45\textwidth}
\lipsum[1]
\end{minipage} \hfill \begin{minipage}[t]{0.45\textwidth}
\lipsum[1]
\end{minipage}
\end{document}

我的技巧是在相同情况下输入 [t] 选项,其他情况下我遇到了麻烦。

相关内容