비표준 열거로 인해 마진이 일관되지 않음

비표준 열거로 인해 마진이 일관되지 않음

\begin{enumerate}[a]Latex Beamer에서 "a... b... c..." 또는 \begin{enumerate}[i]"i... ii... iii..." 대신 "1" 대신에 사용자 정의 레이블이 있는 열거형이 있는 경우 . ... 2. ... 3. ..."인 경우 왼쪽 여백이 더 작아서 다른 슬라이드와 일치하지 않는 것처럼 보입니다.

예:

\documentclass{beamer}
\begin{document}

\begin{frame}
    \begin{enumerate}
        \item normal margin
    \end{enumerate}
    \begin{enumerate}[i]
        \item smaller margin
    \end{enumerate}
    \begin{enumerate}[a]
        \item much smaller margin
    \end{enumerate}
    \begin{enumerate}
        \item[a] normal margin, but manual labels
    \end{enumerate}
\end{frame}

\end{document}

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

item[a]등 을 사용하면 item[b]여백이 정확하지만 분명한 이유로 이것도 완벽하지 않습니다. 이 문제를 해결할 수 있는 방법이 있나요?


업데이트: 문제는 클래스에만 국한된 것이 아니라 다음과 같은 동작이 발생하는 패키지(에서 사용되거나 복사된 패키지 ) beamer에 국한된 것 같습니다.enumeratebeamer

\documentclass{article}
\usepackage{enumerate}

그래도 나는 주로 beamer.

답변1

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

들여쓰기를 재설정하는 줄을 주석 처리하면 됩니다.

\documentclass{beamer}

\makeatletter
\def\beamer@@@enum@[#1]{% partly copied from enumerate.sty
  \@enLab{}\let\@enThe\@enQmark
  \@enloop#1\@enum@
  \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%
    ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi
  \def\insertenumlabel{\the\@enLab}
  \def\beamer@enumtempl{enumerate mini template}%
   \expandafter\let\csname the\@enumctr\endcsname\@enThe
%  \csname c@\@enumctr\endcsname7
%  \expandafter\settowidth
%            \csname leftmargin\romannumeral\@enumdepth\endcsname
%            {\the\@enLab\hspace{\labelsep}}%
  \beamer@enum@}

\makeatother
\begin{document}

\begin{frame}
    \begin{enumerate}
        \item normal margin
    \end{enumerate}
    \begin{enumerate}[i]
        \item smaller margin
    \end{enumerate}
    \begin{enumerate}[a]
        \item much smaller margin
    \end{enumerate}
    \begin{enumerate}
        \item[a] normal margin, but manual labels
    \end{enumerate}
\end{frame}

\end{document}

답변2

을 사용하는 것과 동일한 여백을 얻으려면 \item[a]간단히 자신만의 열거 항목을 정의하면 됩니다.\setbeamertemplate{enumerate item}{\alph{enumi}}

\documentclass{beamer}

\begin{document}

\begin{frame}
    \begin{enumerate}
        \item normal margin
    \end{enumerate}
    \begin{enumerate}[i]
        \item smaller margin
    \end{enumerate}
    {
    \setbeamertemplate{enumerate item}{\alph{enumi}}
    \begin{enumerate}
        \item much smaller margin
    \end{enumerate}
    }
    \begin{enumerate}
        \item[a] normal margin, but manual labels
    \end{enumerate}
\end{frame}

\end{document}

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

답변3

내가 발견한 문제를 해결/피하는 또 다른 다소 해킹적인 방법은 패딩을 [a.]or [i.]매개변수에 직접 삽입하는 것입니다.

\documentclass{beamer}
\begin{document}

\begin{frame}
    \begin{enumerate}
        \item normal margin
    \end{enumerate}
    \begin{enumerate}[~~a.]
        \item normal margin (almost)
    \end{enumerate}
\end{frame}

\end{document}

물론, 이는 서로 다른 열거형을 완벽하게 정렬하지 않으며 사용되는 글꼴에 따라 달라질 수도 있습니다. 아마도 인쇄된 문서에서는 이것을 사용하지 않을 것입니다. 그러나 일부 슬라이드의 경우에는 충분할 수 있습니다. 예를 들어 (다소 더 정밀하게) 동일하게 작동합니다 [\hspace{8pt}a.].

관련 정보