왜 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

나는 두 가지 별개의 문제가 있다고 생각합니다. 주요한 것은 환경의 사용에서 발생합니다 minipage.

  • fbox 내부 자료의 첫 번째 행에는 대문자보다 큰 자료가 없습니다. 해당 자료가 에 포함되어 있으므로 및와 minipage같은 기호에 사용되지 않은 수직 공백이 필요합니다.() 제거됩니다. 대조적으로, 열거 기호는 다음과 같습니다.~ 아니다에 포함되어 minipage있으므로 암시적 을 제거하지 않고 기준선이 선택됩니다 \strut. \strut의 첫 번째 줄에 a를 삽입하면 \fbox수직 조정의 필요성이 대부분 제거됩니다.

  • "1."의 기준선을 완전히 정렬하려면 앞의 입자 \fbox와 내부의 재질 , fbox를 둘러싸는 규칙의 두께(매개변수로 제공 , 기본값: , 일반적으로 ) minipage에 대한 조정(말장난 의도)도 수행해야 합니다 . 그리고 일반적으로 값은 0이 아니므로 다음 코드를 사용하는 것이 좋습니다.\fboxrule\arrayrulewidth0.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}

여기에 이미지 설명을 입력하세요

관련 정보