下面的 MWE 产生了所需的结果。但是,有没有更好的方法来获得这种对齐,而不是raise=-0.3ex
:
如果没有raise=-0.3ex
,产品编号就不会与文本对齐:
代码:
\documentclass{article}
\usepackage{enumitem}
\usepackage[export]{adjustbox}
\fboxsep=0pt
\newadjustboxenv{MyAdjustbox}{valign=t, raise=-0.3ex}%
\begin{document}
\begin{enumerate}
\item
\begin{MyAdjustbox}
\fbox{%
\begin{minipage}[t]{\linewidth}
Some text that takes up several lines, so we need to adjust the
item number to align with the top baseline.
\end{minipage}%
}%
\end{MyAdjustbox}%
\end{enumerate}%
\end{document}
答案1
我认为有两个不同的问题。主要问题源于minipage
环境的使用。
fbox 中材料的第一行没有高于大写字母的材料。由于该材料被包裹在 中,因此删除了和
minipage
等符号所需的未使用的垂直空白。相比之下,枚举符号是(
)
不是被包裹在 中minipage
,因此它的基线是在不移除隐式 的情况下选择的。如果在 的第一行\strut
插入,则大部分垂直调整的需要就被消除了。\strut
\fbox
为了完全对齐 之前的“1.”粒子的基线
\fbox
和 内部的材质minipage
,还需要调整(双关语)包围 fbox 的规则的厚度(由参数 给出\fboxrule
;默认值:\arrayrulewidth
,通常)。而且,由于 的值通常不为零,我建议使用以下代码0.4pt
\fboxsep
\newadjustboxenv{MyAdjustbox}{valign=t, raise=\fboxrule+\fboxsep}
替代
\newadjustboxenv{MyAdjustbox}{valign=t, raise=-0.3ex}
通过这两项调整(又一个双关语 - 哎哟!),我得到了这个截图:
\documentclass{article}
\usepackage{enumitem}
\usepackage[export]{adjustbox}
\fboxsep=0pt
\newadjustboxenv{MyAdjustbox}{valign=t, raise=\fboxrule+\fboxsep}
\begin{document}
\begin{enumerate}
\item
\begin{MyAdjustbox}
\fbox{%
\begin{minipage}{\linewidth}\strut%
Some text that takes up several lines, so we need
to adjust the item number to align with the top
baseline.
\end{minipage}%
}%
\end{MyAdjustbox}%
\end{enumerate}%
\end{document}
答案2
选项valign=t
不会像minipage 或 tabular 选项adjustbox
那样检索内部顶部基线。[t]
adjustbox
计算 考虑当前文本字体大小的高度:默认valign=t
将高度设置为当前的高度\strutbox
。
这意味着,根据第一行的文本,它可能相对于数字过高或过低。您可以使用 Mico 的代码“修复”第一种情况,但对于第二种情况,没有简单的修复方法。
我认为adjustbox
这种框不适合于此环境。它对于对齐没有固有基线的图片很有用,但对于文本框则没有用。
\documentclass{article}
\usepackage{enumitem}
\usepackage[export]{adjustbox}
\newadjustboxenv{MyAdjustbox}{valign=t}
\begin{document}
\begin{enumerate}
\item
\begin{MyAdjustbox}%too high
\begin{minipage}[t]{\linewidth}
aaaa
\end{minipage}%
\end{MyAdjustbox}
\item \begin{MyAdjustbox}%too low
\begin{minipage}[t]{\linewidth}
$\int\limits_1^3 f(x) $
\end{minipage}%
\end{MyAdjustbox}
\end{enumerate}
\end{document}