Уравнения в tcolorbox. Вертикальное выравнивание

Уравнения в tcolorbox. Вертикальное выравнивание

Я просто пытаюсь заключить уравнения в рамки на слайдах, демонстрируемых на проекторе.

Для этой цели я использую пакет tcolorbox.

MWE ниже создает блоки, где уравнения почти выровнены по основанию блока. Я бы хотел, чтобы они были центрированы вертикально.

Однако использование «valign=center» не дает никакого эффекта.

(У меня уже есть решение для горизонтальной задачи во втором уравнении, просто я не включил его по причинам MWE)

\documentclass{beamer}
\usepackage{tcolorbox}
\newtcolorbox{equationframe}{
 valign=center,
}
\begin{document}
\begin{frame}
\begin{itemize}
\item[]
\begin{equationframe}
\begin{equation*}
p(x,y)=\begin{cases}
\min\{q(x,y),\frac{\pi({y})q(y,{x})}{\pi(x)}\}, \quad x\neq y\\
1-\int_{x\neq y} p(x,y)
\end{cases}
\end{equation*}
\end{equationframe}
\begin{equationframe}
\begin{equation*}
\pi(x)p(x,y)=\min\{\pi(x)q(x,y),\pi(y)q(y,x)\}=\pi(y)p(y,x)%
\end{equation*}
\end{equationframe}
\end{itemize}
\end{frame}
\end{document}

РЕДАКТИРОВАТЬ:

Если я использую преамбулу

\documentclass{beamer}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage[most]{tcolorbox}
\tcbuselibrary{theorems}
\newtcolorbox{equationframe}{
 ams nodisplayskip
}

тогда я получаю

Отсутствует вставленный символ $. \end{frame}

Это не проблема, так как я понял, что использование ams align*вместо ams nodisplayskipделает вертикальное выравнивание, как я хочу, и мой первоначальный MWE компилируется хорошо. Есть только одна проблема с чем-то, что я не включил в MWE: чтобы подогнать горизонтально слишком длинные уравнения, я использовал макрос

\newcommand\fiteq[1]{%
  \sbox{\mybox}{$\displaystyle#1$}%
  \ifdim\wd\mybox>.85\textwidth\resizebox{.85\textwidth}{!}{\usebox{\mybox}}%
  \else\usebox{\mybox}\fi%
}
\newsavebox{\mybox}

а потом

\begin{equationframe}
\fiteq{A=......=B}
\end{equationframe}

К сожалению, команды выравнивания \\и &не работают в этом макросе.

Мне просто нужна коробка, которая красиво содержит уравнения. В обычном латексе горизонтальное уравнение не так уж и проблематично, но когда вокруг уравнений есть коробка, а уравнение проходит через границу, это выглядит действительно глупо.

Есть два варианта: (1) изменить размер поля или (2) изменить размер уравнения.

Макрос \fiteq{} делает (2), и мне очень нравится, как он выглядит. Было бы неплохо, если бы кто-нибудь мог адаптировать макрос для работы с командами выравнивания (он работает с приведенным выше решением, если не используются символы новой строки или амперсанда). Если это невозможно, то решение, идущее в направлении (1), тоже приветствовалось бы

Уравнения внизу поля

решение1

Загрузите theoremsбиблиотеку (я делаю это с помощью опции class most) и используйте amsлюбые другие математические опции.

amsустановите верхнюю и нижнюю части в математический режим с помощью \displaystyle. Вам не нужны equationсреды в этих полях. И вам не нужны valign.

\documentclass{beamer}
\usepackage[most]{tcolorbox}
\newtcolorbox{equationframe}{
math
}
\begin{document}
\begin{frame}
\begin{itemize}
\item[]
\begin{equationframe}
p(x,y)=\begin{cases}
\min\{q(x,y),\frac{\pi({y})q(y,{x})}{\pi(x)}\}, \quad x\neq y\\
1-\int_{x\neq y} p(x,y)
\end{cases}
\end{equationframe}
\begin{equationframe}
\pi(x)p(x,y)=\min\{\pi(x)q(x,y),\pi(y)q(y,x)\}=\pi(y)p(y,x)%
\end{equationframe}
\end{itemize}
\end{frame}
\end{document}

введите описание изображения здесь

Обновлять: ams equation*, ams align*:

Вместо mathтакже tcolorboxпредлагает некоторые другие математические поля: ams equation, ams align, ams gather, ...

\documentclass{beamer}
\usepackage[most]{tcolorbox}

\begin{document}
\begin{frame}
\begin{tcolorbox}[ams equation*]
p(x,y)=\begin{cases}
\min\{q(x,y),\frac{\pi({y})q(y,{x})}{\pi(x)}\}, \quad x\neq y\\
1-\int_{x\neq y} p(x,y)
\end{cases}
\end{tcolorbox}

\begin{tcolorbox}[ams nodisplayskip, ams align*]
\pi(x)p(x,y) & =\min\{\pi(x)q(x,y),\pi(y)q(y,x)\}\\
& =\pi(y)p(y,x)%
\end{tcolorbox}
\end{frame}
\end{document}

введите описание изображения здесь

Связанный контент