![如何在乳胶环境中使用 tcolorbox 为 Rmarkdown 对齐多个方程式](https://linux22.com/image/326524/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B9%B3%E8%83%B6%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%20tcolorbox%20%E4%B8%BA%20Rmarkdown%20%E5%AF%B9%E9%BD%90%E5%A4%9A%E4%B8%AA%E6%96%B9%E7%A8%8B%E5%BC%8F.png)
我在 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 环境的原因)并且所有方程式都左对齐。
如何通过上述乳胶定义对齐?
我看到了一些使用align
from\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}
这给出与第一个建议相同的结果: