如何在乳胶环境中使用 tcolorbox 为 Rmarkdown 对齐多个方程式

如何在乳胶环境中使用 tcolorbox 为 Rmarkdown 对齐多个方程式

我在 Rmarkdown 中有以下乳胶:

\begin{tcolorbox}

\begin{equation}
   \sigma =  \beta_{0}                                                               
   \label{eq:Model0}
\end {equation}
\begin{equation}
   \sigma =  \beta_{0} + \beta_{1}K + \beta_{2}K^2 
  \label{eq:Model1}
\end {equation}
\begin{equation}
    \sigma = \beta_{0} + \beta_{1}K + \beta_{2}K^2 + \beta_{3}(T-t) +   \beta_{5}K(T-t)                 \label{eq:Model2}
\end {equation}
\begin{equation}
    \sigma = \beta_{0} + \beta_{1}K + \beta_{2}K^2 + \beta_{3}(T-t) + \beta_{4}(T-t)^2 + \beta_{5}K(T-t)
   \label{eq:Model3}
\end {equation}

\end{tcolorbox}

我想要一个包含这些多个方程的盒子,每个方程都有自己的编号(这就是开始和结束 3 个不同 eq 环境的原因)并且所有方程式都左对齐

如何通过上述乳胶定义对齐?

我看到了一些使用alignfrom\usepackage{amsmath}然后将 放在&锚点进行对齐(例如:“=”)的参考,但也看到了一些在 Rmarkdown 环境中避免此类包的建议。

答案1

我不使用 R markdown,但检查其文档表明,其使用与标准方程式没有区别。因此您可以使用align

\begin{tcolorbox}
\vspace{-\baselineskip}% <-- to remove extra vertical space
    \begin{align}
\sigma & = \beta_{0}      \label{eq:Model0}   \\
\sigma & = \beta_{0} + \beta_{1}K + \beta_{2}K^2
                        \label{eq:Model1}   \\
\sigma & = \beta_{0} + \beta_{1}K + \beta_{2}K^2 + \beta_{3}(T-t) + \beta_{5}K(T-t)
                        \label{eq:Model2}   \\
\sigma & = \beta_{0} + \beta_{1}K + \beta_{2}K^2 + 
                     \beta_{3}(T-t) + \beta_{4}(T-t)^2 + \beta_{5}K(T-t)
                        \label{eq:Model3}
    \end{align}
\end{tcolorbox}

如果您希望方程式对齐广告=,或者gather,如果您希望方程式居中:

\begin{tcolorbox}
\vspace{-\baselineskip}% <-- to remove extra vertical space
    \begin{gather}
\sigma = \beta_{0}      \label{eq:Model0}   \\
\sigma = \beta_{0} + \beta_{1}K + \beta_{2}K^2
                        \label{eq:Model1}   \\
\sigma = \beta_{0} + \beta_{1}K + \beta_{2}K^2 + \beta_{3}(T-t) + \beta_{5}K(T-t)
                        \label{eq:Model2}   \\
\sigma = \beta_{0} + \beta_{1}K + \beta_{2}K^2 + 
                     \beta_{3}(T-t) + \beta_{4}(T-t)^2 + \beta_{5}K(T-t)
                        \label{eq:Model3}
    \end{gather}
\end{tcolorbox}

注意:amsmath或(更好的)mathtools数学环境和普通equation环境中的垂直间距是不同的!因此,我建议在方程式之前align添加gather如果\vspace{-\baselineskip}方程式不是文本。

编辑:改变方程和方程之间距离的另一种可能方法是tcolorbox将方程前后的垂直空间设置为零(正如 John Kormylo 在他的评论中指出的那样)。使用此选项,完整的可编译代码为:

\documentclass{article}
    \usepackage{mathtools}
    \usepackage{tcolorbox}

\usepackage[active,tightpage]{preview}% for show only tcolorbox
\PreviewEnvironment{tcolorbox}
    \setlength\PreviewBorder{1em}

    \begin{document}
\begin{tcolorbox}
\abovedisplayskip=0pt% <--- remove vertical space above align
\belowdisplayskip=0pt% <--- remove vertical space below align
%\vspace{-1\baselineskip} %<--- original solution
    \begin{align}
\sigma & = \beta_{0}      \label{eq:Model0}   \\
\sigma & = \beta_{0} + \beta_{1}K + \beta_{2}K^2
                        \label{eq:Model1}   \\
\sigma & = \beta_{0} + \beta_{1}K + \beta_{2}K^2 + \beta_{3}(T-t) + \beta_{5}K(T-t)
                        \label{eq:Model2}   \\
\sigma & = \beta_{0} + \beta_{1}K + \beta_{2}K^2 +
                     \beta_{3}(T-t) + \beta_{4}(T-t)^2 + \beta_{5}K(T-t)
                        \label{eq:Model3}
    \end{align}
\end{tcolorbox}
    \end{document}

这给出与第一个建议相同的结果:

在此处输入图片描述

相关内容