在显示数学中使用时,如何使 fbox 产生与 amsmath 中的 boxed 类似的结果?

在显示数学中使用时,如何使 fbox 产生与 amsmath 中的 boxed 类似的结果?

我使用 Scientific Word 生成 Latex,从其 GUI 来看,它仅支持\fbox在显示的方程周围放置一个框架。即,我从 GUI 中选择方程,然后单击添加框架的按钮。它生成的 Latex 会将其添加到fbox内部\[...\],因此我无法控制这一点。

我能做的是在乳胶文件的前言中添加一些可以修复或改进其功能的内容。

问题是,\fbox与等式左边相比,这似乎改变了等式右边的数学运算的大小。当我使用 执行相同操作时,\boxed我得到了更好的结果,这正是我想要的。(但同样,GUI 生成\fbox并且没有办法告诉 SW 改用boxed)。

这是一个 MWE,很明显fbox输出不正确。

起初我以为如果我把字体fboxsep放大一点就可以解决这个问题,但这对字体大小没有任何影响。我还能向序言中添加其他内容来使结果看起来像这样吗\boxed

最后一件事,我不能仅仅\fbox通过\boxed使用一些智能文本替换宏来改变,因为 SW 将不再能够在屏幕上显示方程式,因为它不知道是什么\boxed

\documentclass[11pt]{article}%
\usepackage{amsmath}
\setlength{\fboxsep}{10pt}
\begin{document}

\[
\fbox{$x_1\left(  t\right)  =x_{20}\frac{t}{1+t^2}+\frac{1}{\sqrt{\left(
1+t^2\right)  }}$}%
\]

\[
\boxed{x_1\left(  t\right)  =x_{20}\frac{t}{1+t^2}+\frac{1}{\sqrt{\left(
1+t^2\right)  }}}%
\]

\end{document}

结果是

Mathematica 图形

答案1

一种方法是明确切换到\displaystylewithin \fbox。这样,\[...\]就可以省略,除非它应该明确居中(最好使用\begin{center}...\end{center}\centering(分组!))

我添加了一个\mathfbox可以自动执行\[...\]显示样式的命令。

屏幕截图显示了这三种方式。\mathfbox输出是中间的那个!

\documentclass[11pt]{article}%
\usepackage{amsmath}
\setlength{\fboxsep}{10pt}

\newcommand{\mathfbox}[1]{%
  \[%
  \fbox{%
    \ensuremath{\displaystyle{#1}}%
  }% End of \fbox
  \]%
}%


\begin{document}

\[
\fbox{%
$\displaystyle x_1\left(  t\right)  =x_{20}\frac{t}{1+t^2}+\frac{1}{\sqrt{\left(
1+t^2\right)}}$}%
\]


\mathfbox{x_1\left(  t\right)  =x_{20}\frac{t}{1+t^2}+\frac{1}{\sqrt{\left(1+t^2\right)}}}%

\[
\boxed{x_1\left(  t\right)  =x_{20}\frac{t}{1+t^2}+\frac{1}{\sqrt{\left(
1+t^2\right)  }}}%
\]

\end{document}

这样两个盒子看起来就一样了……我怀疑,这\boxed\fbox{\ensuremath{\displaystyle...}

在此处输入图片描述

更新,使用重新定义的\fbox命令

\documentclass[11pt]{article}%
\usepackage{amsmath}
\usepackage{xstring}
\usepackage{letltxmacro}% 
\setlength{\fboxsep}{10pt}
\begin{document}


\LetLtxMacro\LaTeXStandardFBox\fbox


\renewcommand{\fbox}[1]{%
  \LaTeXStandardFBox{%
    \expandarg
    \StrSubstitute[1]{#1}{$}{$\displaystyle}%
  }% End of \fbox
}%

\[
\fbox{$x_1\left(  t\right)  =x_{20}\frac{t}{1+t^2}+\frac{1}{\sqrt{\left(1+t^2\right)}}$}%
\]

\let\fbox\LaTeXStandardFBox%
\[
\boxed{x_1\left(  t\right)  =x_{20}\frac{t}{1+t^2}+\frac{1}{\sqrt{\left(
1+t^2\right)  }}}%
\]

\end{document}

答案2

与往常一样,我的建议是,如果前端不支持基本构造,并且像 SW 一样基于较旧的 TeX 发行版,则放弃使用 LaTeX。

我建议的解决方案是一种 hack,在其他情况下可能会产生不好的结果。此外,\boxed应该使用非常一般情况下是谨慎的(“从不”与“非常谨慎”的用法非常接近)。

\documentclass[11pt]{article}
\usepackage{amsmath}

\let\latexfbox\fbox
\renewcommand{\fbox}[1]{%
  \latexfbox{\everymath{\displaystyle}#1}%
}

\begin{document}

\[
\fbox{$x_1\left(  t\right)  =x_{20}\frac{t}{1+t^2}+\frac{1}{\sqrt{\left(
1+t^2\right)  }}$}%
\]

\[
\boxed{x_1\left(  t\right)  =x_{20}\frac{t}{1+t^2}+\frac{1}{\sqrt{\left(
1+t^2\right)  }}}%
\]

\end{document}

在此处输入图片描述

相关内容