Verkleinern Sie Gleichungen horizontal, um sie an die umgebende Farbbox anzupassen, kompatibel mit align*-Befehlen

Verkleinern Sie Gleichungen horizontal, um sie an die umgebende Farbbox anzupassen, kompatibel mit align*-Befehlen

Ich möchte in meinen Beamer-Folien Gleichungen mit Rahmen versehen.

Zu diesem Zweck verwende ich das Paket tcolorbox.

Ich verwende das Makro \fiteq{}, das ich irgendwo anders auf dieser Site gefunden habe, um zu lange Gleichungen horizontal zu verkürzen (siehe erste Gleichung unten).

Wie kann ich dieses Makro anpassen, damit es mit Ausrichtungsbefehlen wie \\oder funktioniert &? (Siehe zweite Gleichung unten. Wenn ich den Inhalt mit \fiteq{} umgebe, erhalte ich Fehlermeldungen.) Bildbeschreibung hier eingeben

Am glücklichsten wäre ich mit einer Lösung, bei der die Gleichungen verkleinert werden, statt den umgebenden Kasten zu erweitern.

Außerdem: Ich möchte auch die Gleichungsumgebung anstelle von align* verwenden und dann \\und &in einer geteilten Umgebung verwenden können. Das Ersetzen ams align*durch ams equation*führt jedoch zu einer schlechten vertikalen Ausrichtung: Bildbeschreibung hier eingeben

Der Code für das erste Bild ist unten. Für das zweite Bild habe ich in der ersten tcolorbox ams align*durch ersetzt.ams equation*

\documentclass{beamer}
\usepackage[most]{tcolorbox}
\newcommand\fiteq[1]{%
  \sbox{\mybox}{$\displaystyle#1$}%
  \ifdim\wd\mybox>.85\textwidth\resizebox{.85\textwidth}{!}{\usebox{\mybox}}%
  \else\usebox{\mybox}\fi%
}
\newsavebox{\mybox}
\begin{document}
\begin{frame}
\begin{tcolorbox}[ams align*]% Replace by ams equation* to get second image
\fiteq{
A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z
}
\end{tcolorbox}
\begin{tcolorbox}[ams align*]
&A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z\\
\Leftrightarrow &A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z
\end{tcolorbox}
\end{frame}
\end{document}

Antwort1

Wenn Sie align*zu ändern equation*, können Sie entweder splitoder aligneddarin einbetten und \fiteqes geschieht das Gewünschte. Es ist auch gut, auf Null zu setzen \abovedisplayskip, um eine große Lücke über der Formel zu vermeiden.

Ausgabe des Beispielcodes

\documentclass{beamer}
\usepackage[most]{tcolorbox}
\newcommand\fiteq[1]{%
  \sbox{\mybox}{$\displaystyle#1$}%
  \ifdim\wd\mybox>.85\textwidth\resizebox{.85\textwidth}{!}{\usebox{\mybox}}%
  \else\usebox{\mybox}\fi%
}
\newsavebox{\mybox}
\begin{document}
\begin{frame}
\begin{tcolorbox}[ams align*]% Replace by ams equation* to get second image
\fiteq{
A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z
}
\end{tcolorbox}
\begin{tcolorbox}[ams equation*]
\abovedisplayskip=0pt \relax
\fiteq{\begin{split}
&A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z\\
\Leftrightarrow &A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z
\end{split}}
\end{tcolorbox}
\end{frame}
\end{document}

verwandte Informationen