¿Por qué ajustarbox necesita un ajuste de rise=-0.3ex con enumitem?

¿Por qué ajustarbox necesita un ajuste de rise=-0.3ex con enumitem?

El MWE a continuación produce los resultados deseados. Pero, ¿existe una mejor manera de obtener esta alineación en lugar de raise=-0.3ex:

ingrese la descripción de la imagen aquí

Sin el raise=-0.3ex, el número de artículo no está alineado con el texto:

ingrese la descripción de la imagen aquí

Código:

\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}

Respuesta1

Creo que hay dos cuestiones separadas. El principal surge del uso de un minipageentorno.

  • La primera fila del material dentro del fbox no tiene material más alto que las letras mayúsculas. Debido a que ese material está encerrado en un minipage, el espacio en blanco vertical no utilizado necesario para símbolos como (y) , se elimina . Por el contrario, el símbolo de enumeración esnoencerrado en a minipagey, por lo tanto, se elige su línea de base sin eliminar el implícito \strut. Si se inserta a \struten la primera línea de \fbox, se elimina la mayor parte de la necesidad de ajuste vertical.

  • Para alinear completamente las líneas de base del "1". partícula antes de \fboxy el material dentro de minipage, también es necesario hacer un ajuste (juego de palabras) para el grosor de la regla (dado por el parámetro \fboxrule; valor predeterminado:, \arrayrulewidthgeneralmente 0.4pt) que rodea el fbox. Y, dado que el valor de \fboxsepes distinto de cero en general, sugiero usar el siguiente código

    \newadjustboxenv{MyAdjustbox}{valign=t, raise=\fboxrule+\fboxsep}
    

    en lugar de

    \newadjustboxenv{MyAdjustbox}{valign=t, raise=-0.3ex}
    

Con estos dos ajustes (otro juego de palabras más, ¡ay!), obtengo esta captura de pantalla:

ingrese la descripción de la imagen aquí

\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}

Respuesta2

La opción valign=tde adjustboxno recupera la línea de base superior interna como [t]lo hace la opción de minipágina o tabular.adjustbox calcula una altura que tiene en cuenta el tamaño de fuente del texto actual: de forma predeterminada valign=testablece la altura a la altura del archivo actual \strutbox.

Esto significa que, dependiendo del texto de la primera línea, puede ser demasiado alto o demasiado bajo en relación con el número. Puedes "reparar" el primer caso con el código de Mico, pero para el segundo caso no hay una solución fácil.

En mi opinión, adjustboxeste tipo de cajas no son el entorno adecuado. Es útil para alinear imágenes que no tienen una línea de base intrínseca, pero no para cuadros de texto.

\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}

ingrese la descripción de la imagen aquí

información relacionada