`\color` 在 `itemize` 中插入不需要的垂直空间

`\color` 在 `itemize` 中插入不需要的垂直空间

我正在使用 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}

在此处输入图片描述

相关内容