在 \newenvironment{envname}{此处}{和此处} 中使用 \boxed{}

在 \newenvironment{envname}{此处}{和此处} 中使用 \boxed{}

有一种环境(如下所示)我使用得非常频繁。我想定义一个新环境,用单个命令来开始和结束它。

\begin{equation}\boxed{\boxed{
\begin{gathered}
    i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right]\\
    \textnormal{Time Constant (} \tau_L \textnormal{)} =\frac{L}{R}
\end{gathered}
}}\end{equation}

然而,似乎*\boxed{}*无法分割在 \newenvironment{} 的开始和结束括号之间\newenvironment{envname}{ *\boxed{* }{ *}* } (星号内的部分语法不正确)。

从句法上来说,拆分两个“ \boxed{}”的情况更糟糕。

作为参考,这是我想要的输出: 在此处输入图片描述

我必须频繁地输入这些格式化的方程式,并且任何可以浓缩必要命令的方法都值得赞赏... 有没有办法解决语法问题并正确定义 \newenvironment{name}{beginning}{ending}?如果可能的话,我想避免使用额外的包。

如果这篇文章的任何部分看起来愚蠢,请见谅。我是 StackExchange 的新手...

答案1

当然,您不能在 begin/end 代码中使用不匹配的括号。一种解决方法是使用\boxes:

\documentclass[twocolumn]{article}

\usepackage{amsmath}

\newenvironment{boxedeq}{%
   \equation\setbox0=\hbox\bgroup$\gathered
  }{%
   \endgathered$\egroup
   \fbox{\fbox{\box0}}%
   \endequation
}

\begin{document}

\begin{boxedeq}
i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right] \\
\textnormal{Time Constant ($\tau_L$)} =\frac{L}{R}
\end{boxedeq}

\end{document}

在此处输入图片描述

答案2

使用“保存箱”:

\documentclass{article}
\usepackage{amsmath}

\newsavebox{\doubleboxedbox}
\newenvironment{doubleboxed}
 {\begin{lrbox}{\doubleboxedbox}$\displaystyle}
 {$\end{lrbox}\boxed{\boxed{\usebox{\doubleboxedbox}}}}

\begin{document}

\begin{equation}
\begin{doubleboxed}
  \begin{gathered}
    i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right]\\
    \text{Time Constant ($\tau_L$)}=\frac{L}{R}
  \end{gathered}
\end{doubleboxed}
\end{equation}

\end{document}

(我简化了第二行的输入)。

在此处输入图片描述

设施齐全expl3

\documentclass{article}
\usepackage{amsmath}

\NewDocumentEnvironment{doubleboxed}{b}{\boxed{\boxed{#1}}}{}

\begin{document}

\begin{equation}
\begin{doubleboxed}
  \begin{gathered}
    i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right]\\
    \text{Time Constant ($\tau_L$)}=\frac{L}{R}
  \end{gathered}
\end{doubleboxed}
\end{equation}

\end{document}

答案3

\doublebox另一个解决方案是使用来自的命令的修补版本fancybox

\documentclass{article}
\usepackage{amsmath} 
\usepackage{fancybox} 
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@doublebox}{\advance\fboxsep .5pt}{\advance\fboxsep 2.5pt}{}{}
\newenvironment{boxedequation}{\equation\doublebox\bgroup$\gathered}
{\endgathered$\egroup\endequation}
\makeatother

\begin{document}

\begin{boxedequation}
    i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right]\\
    \textnormal{Time Constant (} \tau_L \textnormal{)} =\frac{L}{R}
\end{boxedequation}

\end{document} 

在此处输入图片描述

相关内容