なぜadjustboxではenumitemでraise=-0.3exの調整が必要なのでしょうか?

なぜadjustboxではenumitemでraise=-0.3exの調整が必要なのでしょうか?

以下の 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}

ここに画像の説明を入力してください

関連情報