使用“框架”和其他框架构建“独立”类输出

使用“框架”和其他框架构建“独立”类输出

我使用framed包方便地将所有方程式(包括多行方程式;这是我遇到的其他包无法做到的;至少如此简单)封装到轮廓框架中。但不幸的是,它似乎不适用于standalone类。因此,我希望有一个替代品或一个调整,使它在这种情况下发挥作用。

下面是课前我用过的一段代码standalone

\documentclass[fleqn]{article}
\usepackage{amsmath}
\usepackage{framed}
\begin{document}
\begin{framed}
$
\begin{aligned}
2^{1}&=\binom{1}{0}+\binom{1}{1}\\
2^{2}&=\binom{2}{0}+\binom{2}{1}+\binom{2}{2}
\end{aligned}
$
\end{framed}
\end{document}

如果你更换

\documentclass[fleqn]{article}

\documentclass[fleqn]{standalone}

排版过程将停止并显示以下消息

(texlive/2016/texmf-dist/tex/latex/framed/framed.sty)
(./untitled-1.aux)
! Missing \endgroup inserted.
<inserted text> 
                \endgroup 
l.5 \begin{framed}

但是,如果删除\begin{framed}\end{framed},它仍会起作用。

恐怕没有哪个软件包framed在简单性方面能与之媲美,但我希望我错了。非常感谢您的帮助。

谢谢。

答案1

使用\fbox命令代替framed

\documentclass[fleqn]{standalone}
\usepackage{amsmath}
\begin{document}
\fbox{%
$
\begin{aligned}
2^{1}&=\binom{1}{0}+\binom{1}{1}\\
2^{2}&=\binom{2}{0}+\binom{2}{1}+\binom{2}{2}
\end{aligned}
$%
}
\end{document}

在此处输入图片描述

答案2

使用类varwidth的选项standalone

\documentclass[fleqn,varwidth]{standalone}
\usepackage{amsmath}
\usepackage{framed}
\begin{document}
\begin{framed}
$
\begin{aligned}
2^{1}&=\binom{1}{0}+\binom{1}{1}\\
2^{2}&=\binom{2}{0}+\binom{2}{1}+\binom{2}{2}
\end{aligned}
$
\end{framed}
\end{document}

在此处输入图片描述

如果您希望文本宽度更小,您也可以使用选项指定宽度,例如varwidth=5cm

在此处输入图片描述

答案3

仅作为替代方案,这里有一个tcolorbox解决方案。请注意,您可以使用\tcbset和/或为每个颜色框局部设置选项。例如,hbox选项(选项的快捷方式,capture=hbox)将框的大小设置为内容的尺寸。(这是相关命令的默认值\tcbox。)

\documentclass[fleqn, 12pt]{standalone}

\usepackage{amsmath}

% Version: 3.95 (2016/10/21)
\usepackage{tcolorbox}[2016/10/21]

\newtcolorbox{framed}{hbox, left=0mm, right=0mm}
\newtcbox{\fhbox}{left=0mm, right=0mm}

\begin{document}
\Huge% just for sake of example

\begin{framed}
$
\begin{aligned}
2^{1}&=\binom{1}{0}+\binom{1}{1}\\
2^{2}&=\binom{2}{0}+\binom{2}{1}+\binom{2}{2}\\
\end{aligned}
$
\end{framed}

\fhbox{%
$
\begin{aligned}
2^{1}&=\binom{1}{0}+\binom{1}{1}\\
2^{2}&=\binom{2}{0}+\binom{2}{1}+\binom{2}{2}
\end{aligned}
$% <-- the % is needed because this is not an environment
}

\end{document}

固定示例图像

对于tcolorbox< 3.95的版本

一个问题似乎是hbox环境中的选项可能存在问题。不过,似乎可以通过%在等式末尾添加 a 来避免这个问题。

\documentclass[fleqn]{standalone}

\usepackage{amsmath}
\usepackage{tcolorbox}

\newtcolorbox{framed}{hbox, left=0mm, right=0mm}
\newtcbox{\fhbox}{left=0mm, right=0mm}

\begin{document}

\begin{framed}
$
\begin{aligned}
2^{1}&=\binom{1}{0}+\binom{1}{1}\\
2^{2}&=\binom{2}{0}+\binom{2}{1}+\binom{2}{2}\\
\end{aligned}
$% <-- Note the % character is needed
\end{framed}

\fhbox{%
$
\begin{aligned}
2^{1}&=\binom{1}{0}+\binom{1}{1}\\
2^{2}&=\binom{2}{0}+\binom{2}{1}+\binom{2}{2}
\end{aligned}
$%
}

上述代码的图像

为了说明为什么使用变体\tcbox可以提供更平衡的间距,可以使用来eso-pic帮助看出差异:

\documentclass[fleqn]{article}

\usepackage[grid, gridunit=pt,
  gridcolor=red!20,
  subgridcolor=blue!20]{eso-pic}

\usepackage{tcolorbox}
\newtcolorbox{framed}{hbox, left=0mm, right=0mm}
\newtcbox{\fhbox}{left=0mm, right=0mm}

\begin{document}
\parindent0pt

FBOX:\\
\fbox{\hbox{Dummy text to show text mode}}

\bigskip

\verb+\newtcbox{\fhbox}{left=0mm, right=0mm}+
\fhbox{Dummy text to show text mode}

\verb+\newtcolorbox{framed}{hbox, left=0mm, right=0mm}+
\begin{framed}
 Dummy text to show text mode
\end{framed}

\verb+\tcbox+
\tcbox{Dummy text to show text mode}

\end{document}

tcolorbox 比较

答案4

您可以尝试这个,但对于分页符来说它看起来是弄巧成拙的(但独立类对于分页符也很特殊)。

无论如何,回答@gernot 的要好得多。但我也想尝试一下 framed。

\documentclass[fleqn,varwidth]{standalone}
\usepackage{amsmath}
\usepackage{framed, color}%\setlength{\FrameSep}{0pt}
\setlength{\FrameRule}{5pt}
\begin{document}
\begin{framed}
\setbox0\hbox{$\begin{aligned}
2^{1}&=\binom{1}{0}+\binom{1}{1}\\
2^{2}&=\binom{2}{0}+\binom{2}{1}+\binom{2}{2}
\end{aligned}$}\hsize\wd0\box0
\end{framed}
\end{document}

在此处输入图片描述

相关内容