我想设计一个右括号内容,其高度和深度等于它所支撑的内容。可以使用 来设计它\left. \right\rbrace
,但实际上我希望多个括号彼此对齐。因此,括号必须放在对齐字符 之后。&&
因此,我需要测量内容或使用\vphantom
下面的解决方案有效,但它们有一个主要缺点:他们要求我两次排版括号方程。另外,我尝试使用的实现\saveheightEq
与使用的解决方案不一致\savebox
。有什么可能的解决方案吗?
\documentclass[aspectratio=169, xcolor={x11names}, t, handout]{beamer}
\usepackage{calc}
\newlength{\heightEq}
\newlength{\depthEq}
\usetheme{Dresden}
\usefonttheme{professionalfonts}
\NewDocumentCommand{\basmahspace}{}{\mspace{0.61\thinmuskip}}
\newsavebox\rbracebox
\NewDocumentCommand{\saveheightEq}{m}%
{%
\setlength{\heightEq}{\heightof{#1}}%
\setlength{\depthEq}{\depthof{#1}}%
}
\NewDocumentCommand{\rbraceheightEq}{}%
{%
\left. \vphantom{\rule{0pt}{\heightEq}}\vphantom{\rule[-\depthEq]{0pt}{\depthEq}} \right\rbrace%
}
\begin{document}
\begin{frame}
\saveheightEq{$1 - \frac{1 + \ln{\frac{V_{oc}}{V_{t}} + 0.72}}{\displaystyle 1 + \frac{V_{oc}}{V_{t}}}$}
\savebox\rbracebox{$\left. \vphantom{1 - \frac{1 + \ln{\frac{V_{oc}}{V_{t}} + 0.72}}{\displaystyle 1 + \frac{V_{oc}}{V_{t}}}} \right\rbrace$}
\begin{alignat*}{6}
V_{oc} &\approx a \basmahspace V_{t} \basmahspace \ln{\frac{I_{ph}}{I_{0}}}
&& \medspace \bigg\rbrace
&& \text{Increased temperature means increased $I_{0}$}
\\
\mathrm{FF}_{i} &= 1 - \frac{1 + \ln{\frac{V_{oc}}{V_{t}} + 0.72}}{\displaystyle 1 + \frac{V_{oc}}{V_{t}}}
&& \rbraceheightEq
&& \smash{\llap{\vrule width 1pt depth 7em height 2.5em}}\text{Decreased $V_{oc}$ means decreased $\mathrm{FF}$}
\\
\mathrm{FF}_{i} &= 1 - \frac{1 + \ln{\frac{V_{oc}}{V_{t}} + 0.72}}{\displaystyle 1 + \frac{V_{oc}}{V_{t}}}
&& \usebox\rbracebox
&& \text{Decreased $V_{oc}$ means decreased $\mathrm{FF}$}
\end{alignat*}
\end{frame}
\end{document}