在 Latex Beamer 中,當我有一個帶有自訂標籤的枚舉時,請使用例如\begin{enumerate}[a]
“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
,而是特定於enumerate
套件(由 in 使用或從 in 複製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
解決/規避我發現的問題的另一種相當老套的方法是將填充直接插入到[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.]
。