smashoperator가 비머의 투명성을 깨뜨리는 것 같습니다.

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시작은 입니다 &. 즉, 하나의 테이블 형식/정렬 셀에서 시작하여 다음 셀에서 계속된다는 의미입니다. 테이블 형식 셀은 그룹을 구축하고 비머에는 색상 믹스인이 그룹에서 살아남을 수 있도록 하는 코드가 포함되어 있지만 여기서는 두 가지 그룹 수준이 있기 때문에 부분적으로 실패합니다. 이는 \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}

관련 정보