\framebox{$$} 和 \boxed{} 之间的区别

\framebox{$$} 和 \boxed{} 之间的区别

我想在框架框中输入方程式。如果我先创建一个框架文本框环境,然后将方程式放入其中或使用该环境,效果是否相同\boxed{}

\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\begin{document}

\framebox{$a^2+b^2=c^2$}

$\boxed{a^2+b^2=c^2}$

\end{document} 

答案1

amsmath定义\boxed

\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}

\framebox并且\fbox只是相同内部的不同接口\@frameb@x,这实际上使得盒子\framebox拥有更多的选择。

\framebox{$...$}因此,和之间的主要区别$\boxed{...}$在于\boxed设置\displaystyle,而在前一种变体中必须手动完成:\framebox{$\displaystyle ...$}

另一个不同之处在于,如果\mathsurround不为零。当 TeX 进入和离开内联数学模式时,会设置此空间。它旨在将数学与周围文本分开。在框内,它没有意义,并通过 将其设置为零来\boxed将其删除。\mathsurround\m@th

一个测试文件,说明了差异:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{amsmath}

\begin{document}
  \newcommand*{\vs}{\mathrel{\text{vs.}}}
  \begin{align*}
    \text{\ttfamily\string\framebox\{\$\dots\$\}} &\vs
    \text{\ttfamily\string\boxed\{\dots\}}
    \\
    \framebox{$\frac{123}{456}$} &\vs \boxed{\frac{123}{456}}
    \\
    \setlength{\mathsurround}{1em}\framebox{$X$} &\vs
    \setlength{\mathsurround}{1em}\boxed{X}
\end{align*}
\end{document}

结果

模拟如下\boxed

\framebox{%
  \setlength{\mathsurround}{0pt}%
  $\displaystyle ...$%
}

答案2

对于这样的问题我只需加载包lua-visual-debug。你可以清楚地看到它们都是相同的:

% arara: lualatex

\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{blindtext}
\usepackage{lua-visual-debug}
\parindent0pt

\begin{document}
\blindtext  

\framebox{$\displaystyle a^2+b^2=c^2$} % displaystyle needed here, as it is set in \boxed by default. It just changes the horizontal spacing of the powers a bit. 

$\boxed{a^2+b^2=c^2}$

\blindtext
\end{document} 

在此处输入图片描述

就间距和对齐而言,装箱是相等的。因此,两种方法类似。有关句法等价性,请参阅 Heiko 的回答。

相关内容