smashoperator は Beamer の透明性を壊すようです

smashoperator は Beamer の透明性を壊すようです

私はbeamerとsmashoperatorを次のように使用しています:

\documentclass[xcolor={rgb}]{beamer}
\setbeamercovered{transparent}
\beamertemplatenavigationsymbolsempty
\setbeamersize{text margin left=10mm,text margin right=5mm}
\setbeamertemplate{frametitle}[default][center]
\usepackage{mathtools}
\usepackage{bm}
\newcommand{\var}[1]{\operatorname{var}{#1}}
\newcommand{\E}{\mathbb{E}}
\newcommand{\norm}[1]{\left\lVert#1\right\rVert}
\begin{document}
\begin{frame}[t]
\begin{align*}
\onslide<2->{&= \E\Bigl( g(a)^2 \smashoperator{\sum_{j\in[n]\backslash\{a\}}} f^2_j Y^2_j + \smashoperator{\sum_{\substack{j\in[n]\setminus\{a\}\\i\ne j}}} f_i f_j g(i) g(j) Y_i B_j\Bigr) -{}\\}
\onslide<2->{&\qquad\qquad\qquad\qquad \Bigl(\smashoperator{\sum_{j\in[n]\backslash\{a\}}} f_j \mathbb{E}[g(a)g(j)Y_j]\Bigr)^2\\[\jot]}
\onslide<3->{&= \sum_{j\in[n]\backslash\{a\}} \frac{f^2_j}{k} + 0 - 0\\[\jot]}
\end{align*}
\end{frame}
\end{document}

しかし、これは奇妙な結果をもたらします。

ここに画像の説明を入力してください

これを修正する方法はありますか?

答え1

実際に機能するのは、

\everymath{\def\sbox#1#2{\setbox#1\hbox{{#2}}}}

ただし、これは本当の解決策ではありません。

\sboxプリミティブに加えて\setbox、現在の色をプッシュおよびポップしますが、ライトグレーの透明効果はそのためには設定されていません.....

これは少し強引なアプローチを採用しており、数学モードのすべての sbox の色のプッシュ/ポップを削除します。

ここに画像の説明を入力してください

答え2

\onslideで始まります&。つまり、1 つの tabular/align セルで始まり、次のセルに続きます。表形式のセルはグループを構築します。beamer にはカラー ミックスインがグループを存続できるようにするコードが含まれていますが、グループ レベルが 2 つあるため、ここでは部分的に失敗します。これは \smashoperator に影響します。\sbox コマンドが含まれているため、カラー コマンドが発行されますが、今度は間違った色になります。

本当の解決策が可能かどうかは疑問です。回避策は次のとおりです。

  • &を の外側に移動し\onslide、複数のグループをカバーしないようにします。
  • \color{.}色をリセットするにはaを発行してください
\documentclass[]{beamer}
\setbeamercovered{transparent}
\setbeamertemplate{navigation symbols}{}
\newsavebox\testbox

\begin{document}
\begin{frame}[plain,t]

\begingroup\begingroup
 \onslide<2->{\sbox\testbox{111}\usebox\testbox\endgroup %works
              \sbox\testbox{222}\usebox\testbox\endgroup %still works
              \sbox\testbox{333}\usebox\testbox}         %fails
              
\begingroup\begingroup
 \onslide<2->{\sbox\testbox{111}\usebox\testbox\endgroup
              \sbox\testbox{222}\usebox\testbox\endgroup
              \color{.}\sbox\testbox{333}\usebox\testbox} %work around
          
\end{frame}
\end{document}

ここに画像の説明を入力してください

答え3

で何がうまくいかないのか説明することはできません\smashoperatorが、実行可能な代替案を提案することはできます。それは、\mathclapの underset 引数に適用することです\sum

スライド 1:

ここに画像の説明を入力してください


スライド 2:

ここに画像の説明を入力してください


スライド 3:

ここに画像の説明を入力してください


\documentclass[xcolor={rgb}]{beamer}
\setbeamercovered{transparent}
\beamertemplatenavigationsymbolsempty
\setbeamersize{text margin left=10mm,text margin right=5mm}
\setbeamertemplate{frametitle}[default][center]

\usepackage{mathtools,bm}
\newcommand{\var}[1]{\operatorname{var}{#1}}
\DeclareMathOperator{\E}{\mathbb{E}}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}

\begin{document}
\begin{frame}[t]
\begin{align*}
\onslide<1->{&= \E\Bigl( g(a)^2 
\sum_{\mathclap{j\in[n]\setminus\{a\}}} f^2_j Y^2_j + 
\sum_{\mathclap{\substack{j\in[n]\setminus\{a\}\\i\ne j}}} f_i f_j g(i) g(j) Y_i B_j\Bigr) \\}
\onslide<2->{&\kern1.5cm -\Bigl(\,
\sum_{\mathclap{j\in[n]\textminus\{a\}}} f_j \E[g(a)g(j)Y_j]\Bigr)^2 \\[\jot]}
\onslide<3->{&= 
\sum_{\mathclap{j\in[n]\setminus\{a\}}} f^2_j/k + 0 - 0 \,.\\[\jot]}
\end{align*}
\end{frame}
\end{document}

関連情報