Latex Beamer で、カスタム ラベル付きの列挙体 (たとえば、 「1. ... 2. ... 3. ...」ではなく\begin{enumerate}[a]
「a... b... c...」または\begin{enumerate}[i]
「i... ii... iii...」) を使用すると、左余白が小さくなり、他のスライドと一致しなくなるようです。
例:
\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
クラスに固有のものではなく、enumerate
パッケージ ( によって使用されるか、 からコピーされるbeamer
) に固有のものであるようで、次の場合にも同じ動作が発生します。
\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
私が見つけた問題を解決/回避するためのもう 1 つのかなりハッキーな方法は、[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.]
。