
下面的 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 內材質的第一行沒有高於大寫字母的材質。由於該材料被封裝在 a 中,因此和
minipage
等符號所需的未使用的垂直空白(
)
,因此刪除了。相比之下,枚舉符號是不是包含在 a 中minipage
,因此在不刪除隱式 的情況下選擇其基線\strut
。如果\strut
在 的第一行插入 a\fbox
,則消除了大部分垂直調整的需要。完全對齊“1”的基線。之前的粒子
\fbox
和 內的材質,還需要對fbox 周圍的規則的厚度(由參數 給出;預設值:,通常為)minipage
進行調整(雙關語) 。而且,由於 的值通常不為零,我建議使用以下程式碼\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
不會像小型頁或表格選項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}