![使用“框架”和其他框架构建“独立”类输出](https://linux22.com/image/342566/%E4%BD%BF%E7%94%A8%E2%80%9C%E6%A1%86%E6%9E%B6%E2%80%9D%E5%92%8C%E5%85%B6%E4%BB%96%E6%A1%86%E6%9E%B6%E6%9E%84%E5%BB%BA%E2%80%9C%E7%8B%AC%E7%AB%8B%E2%80%9D%E7%B1%BB%E8%BE%93%E5%87%BA.png)
我使用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
答案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}
答案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}