投影机的显示数学中每个显示和颜色的奇数间距

投影机的显示数学中每个显示和颜色的奇数间距

使用\only<2>{\everydisplay{\color{blue}}}颜色数学运算符合预期,但改变了显示数学运算的间距。发生了什么?

\documentclass{beamer}

\begin{document}
\begin{frame}
\only<2>{\everydisplay{\color{blue}}}

\[ \frac{2}{a} \]

\[ \frac{2}{a} \]
\end{frame}
\end{document}

两张幻灯片的输出并排显示:输出

答案1

为了理解这种行为,以下简单示例很有用

\[\color{red}\frac{2}{a}\]
\[{\color{red}\frac{2}{a}}\]

第一行显示较大的间距,第二行被一个附加组包围,间距更紧密。引用相关大卫·卡莱尔的评论

请参阅颜色包文档中的脚注,颜色有时会影响间距。脚注基本上是为了解释这不是我的错(texdoc grfguide第 6 页:-)

\everydisplay{\color{blue}}显然,将添加\color到数学显示并触发此行为。\setbeamercolor{math text displayed}{fg=red}也会触发它,因为通常数学颜色未设置,并且\color只有在颜色不为空时才会添加到数学显示中(请参阅https://github.com/josephwright/beamer/issues/177

解决方案 1

为了获得统一的行为并防止幻灯片之间跳动,您可以在文档开头设置数学颜色。这将使所有数学显示具有更大的间距。

\documentclass{beamer}

\setbeamercolor{math text displayed}{parent=normal text}

\begin{document}
\begin{frame}
\only<2>{\everydisplay{\color{blue}}}

\[ \frac{2}{a} \]
\[ \frac{2}{a} \]
\end{frame}
\end{document}

解决方案 2

或者如果你喜欢紧凑的间距,以下内容基于https://tex.stackexchange.com/a/91551/36296

\documentclass{beamer}

\setbeamercolor{mymath}{parent=normal text}

\def\foo#1$$#2!!{\def\mathdisplay##1{#1$$\begingroup\usebeamercolor[fg]{mymath}#2}}
\expandafter\foo\mathdisplay{#1}!!

\long\def\foo#1$$#2!!{\def\endmathdisplay##1{#1\endgroup$$#2}}
\expandafter\foo\endmathdisplay{#1}!!



\begin{document}
\begin{frame}
\only<2>{\setbeamercolor{mymath}{fg=red}}
\[ \frac{2}{a} \]
\[ \frac{2}{a} \]
\end{frame}
\end{document}

相关内容