
Я просто пытаюсь заключить уравнения в рамки на слайдах, демонстрируемых на проекторе.
Для этой цели я использую пакет 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}