我正在使用 beamer,想为某些幻灯片上的某些项目符号着色。不幸的是,使用该\color
命令似乎会弄乱列表中的垂直间距。例如,这里有两个并排的幻灯片。我希望幻灯片具有完全相同的内容和间距,除了第二个项目符号的颜色。但是,latex 似乎在命令周围插入了额外的空间\color
。
制作这些幻灯片的代码在这里:
\documentclass[10pt]{beamer}
\setbeamersize{text margin left=0pt, text margin right=0pt}
\paperheight=24mm \paperwidth=40mm
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{background}[grid]
\begin{document}
\begin{frame}[plain]
\bfseries
\begin{itemize}
\item Here's a bullet
\begin{itemize}
\item And a sub-bullet
\end{itemize}
\only<2>{\color{structure.fg}}
\item This will be blue
\begin{itemize}
\item On overlay 2
\end{itemize}
\end{itemize}
{\color{red}\hrule height .5pt}
\end{frame}
\end{document}
beameralertenv
环境应该可以处理这个问题,但它通过调用来解决此问题,\color{.}
即使您没有激活它。这不是一个好的解决方案,因为它在所有情况下都会弄乱垂直间距。(它使列表看起来很糟糕,因为项目符号前面有多余的空间,因为它们恰好在后面的某个覆盖层上变成红色。)
我注意到,如果我说的是改变颜色,我也会遇到完全相同的间距问题\only<2>{\leavevmode}
,所以大概是颜色命令导致在前一个嵌套itemize
环境之后排版了一个空段落。那么我的问题是,如何在不向页面贡献任何垂直材料的情况下更改当前活动的颜色。
答案1
我不知道发生了什么,但问题似乎是\only
位于 之间items
。如果你插入彩色项目内部,则不会有任何变化。
在下一个代码中,我引入了t
顶部对齐框架的选项,以便更好地看到变化的开始位置。
\documentclass[10pt]{beamer}
\setbeamersize{text margin left=0pt, text margin right=0pt}
\paperheight=24mm \paperwidth=40mm
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{background}[grid]
\begin{document}
\begin{frame}[t,plain]
\bfseries
\begin{itemize}
\item Here's a bullet
\begin{itemize}
\item And a sub-bullet
\end{itemize}%
\item \only<2>{\color{red}}This will be blue%
\begin{itemize}
\item On overlay 2
\end{itemize}%
\end{itemize}%
{\color{red}\hrule height .5pt}%
\end{frame}
\end{document}