
以下の 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
2 つの別々の問題があると思います。主な問題は、環境の使用から生じます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}
これら 2 つの調整 (これもまた駄洒落です -- 痛い!) により、次のスクリーンショットが得られます。
\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 のコードで「修復」できますが、2 番目のケースは簡単に修正できません。
私の意見では、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}