数学模式和文本模式下的四边形有什么区别吗?

数学模式和文本模式下的四边形有什么区别吗?

$a \text{\quad text\quad} b$和之间有什么区别吗 $a \quad \text{text} \quad b$?如下图所示,我看不出区别。

如果没有区别,为了最佳实践我应该使用哪一个?

\documentclass[preview,border=12pt,varwidth]{standalone}
\usepackage{amsmath}
\begin{document}
$a \text{\quad text\quad} b$\\
$a \quad \text{text} \quad b$
\end{document}

enter image description here

我想在解决时使用它$(x-a)(x-b)=0$。解决方案通常写成gather*如下形式

\begin{gather*}
(x-a)(x-b)=0\\
x-a=0 \quad\text{or}\quad x-b=0\\
x=a \quad\text{or}\quad x=b
\end{gather*} 

或者

\begin{gather*}
(x-a)(x-b)=0\\
x-a=0 \text{\quad or\quad} x-b=0\\
x=a \text{\quad or\quad} x=b
\end{gather*} 

答案1

在正常情况下,就空间大小而言,使用\quadinside 或 outside会产生相同的结果。我暂时不考虑在下标/上标中使用时会发生什么。\text\text

TeX 维护在排版数学公式时使用当前字体:它会记住公式开始前的当前字体,并记录当前的数学系列,以便使用与当前系列相对应的字体排版类型为 7 的数学符号。请注意,当前数学系列仅保存为数字;只有当公式完成并转换为水平列表时,此数字才会变成真正的字体。

\quad当在公式中找到诸如这样的指令时,它\hskip1em会像往常一样扩展为,并通过检查当前字体的 fontdimen 6 参数将 em 转换为长度文本字体,因此是上面提到的第一个。如果\mskip18mu使用,则将使用附加到数学系列 2 的字体的 em;但事实并非如此。

\text{text}在数学模式下处理时,TeX 会(以组的形式)执行

\mathchoice
  {\textdef@\displaystyle\f@size{text}}%
  {\textdef@\textstyle\f@size{\firstchoice@false #1}}%
  {\textdef@\textstyle\sf@size{\firstchoice@false #1}}%
  {\textdef@\textstyle \ssf@size{\firstchoice@false #1}}%

我们感兴趣的是 的第一个和第二个参数\mathchoice。该\firstchoice@false命令只是为了避免多次执行诸如\label\stepcounter之类的命令,因为这些命令可能会偷偷将 的参数带入\text,但这与当前的问题无关。

为了简单起见,我们假设我们在\displaystyle(但因为\textstyle这样会是一样的)。TeX 排版了四个框,但只使用由

\textdef@\displaystyle\f@size{text}

这变成了

\hbox{{\everymath{\displaystyle}\let\f@size\f@size\selectfont text}}

我们必须记住\f@size\sf@size\ssf@size扩展到 LaTeX 确定为当前整体字体大小的字体大小(当大小为\normalsize10pt 文档时,它们是 10pt、7pt、5pt;当大小为\normalsize12pt 文档或\large10pt 文档时,它们是 12pt、8pt、6pt;等等)。在这种情况下,\let什么也不做,但\selectfont确实很重要!

它有什么作用?它根据\f@encoding\f@family\f@series\f@shape和的当前值重置当前文本字体。在这种情况下,由于未改变,\f@size因此外部当前的字体将保留在其内部。\f@baselineskip\f@size\text

总之,其\quad内部宽度\text与外部宽度相同。

如果\text在第一级下标中使用,则只会\f@size发生变化,变得与之前相同\sf@size,因此\quad会使用当前文本字体对应的宽度,但在\sf@size

当然,使用\quadoutside\text还有另一个区别: 的参数\text排版在一个框中,因此如果公式是内联的,则此粘连不能用作断点。(这是 David Carlisle 指出的。)


为什么 Przemysław Scherwentke 的例子给出了不同的四边形?当我们这样做时

\font\meta=logo10 at 20pt \meta

我们正在覆盖 NFSS 字体选择的基础结构:\meta将成为当前文本字体,但宏的值\f@...不是改变。因此对于四边形

\meta $a \quad\text{META}\quad b$

对应的值\meta被使用(它是当前文本字体)。相反,在

\meta $a \text{\quad META\quad} b$

1em 的确定发生 \selectfont,因此字体将重置为原来的指令\meta,因为\f@...发出时宏未更新\meta。实际上,“META” 是使用当前文本字体排版的,而不是使用徽标字体。

这是一个测试。

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\font\meta=logo10 at 14.4pt
{\meta $a \quad\text{META}\quad b$}

{\meta $a \quad\mbox{META}\quad b$}

{\meta $a \text{\quad META\quad} b$}

{\meta $a \quad\text{META}\quad b$}

\newcommand{\goodmeta}{%
  \fontencoding{U}%
  \fontfamily{logo}%
  \fontsize{14.4}{14.4}%
  \selectfont}
{\goodmeta $a \quad\text{META}\quad b$}

{\goodmeta $a \quad\mbox{META}\quad b$}

{\goodmeta $a \text{\quad META\quad} b$}

{\goodmeta $a \quad\text{META}\quad b$}

\end{document}

enter image description here

可以看到,在第 1、3 和 4 行中,“META”一词是用 Computer Modern 排版的,而在第 2 行中它使用字体logo(因为\mbox使用当前字体而不发出任何\selectfont命令)。

在其他情况下,\goodmeta使用 ,结果是相同的。

答案2

在 LaTeX 中,宏的定义\quad(在 中说明latex.ltx)为:

\def\quad{\hskip1em\relax}

请注意,宏在文本和数学模式下的工作方式相同。(宏\hskip\relax是 TeX“原始”命令。)

因此,只要 1em在文本和数学模式下具有相同的值——如果您对数学和文本使用通用字体系列和字体大小(幸运的是,您发布的 MWE 就是这种情况)——您可以使用任一变体并获得相同的输出。因此,您可以随意使用对您来说最自然的变体。对我来说,\quad\text{or}\quad似乎比……更自然一点\text{\quad or\quad}


附录:正如@PrzemysławScherwentl 在另一个答案中所证明的那样,它是可能的比如,通过使用 PlainTeX 类型的字体相关指令来创建一个设置,其中的值1em值为不是在数学和文本模式下也一样。因此,他的例子是一个重要的限定词。

更一般地,每当你使用不同的字体系列来显示文本和数学公式(甚至可能是不同的大小)时,你将要发现这两个变体不会产生相同的输出。

答案3

\quad是 1em 的 hskip,其定义在数学和文本模式下相同,但是您给出的两种用法之间存在许多差异。值得注意的是,它em是一个字体相关单位,因此实际大小取决于所使用的字体,但也许更重要的是\text盒子命令,因此里面的使用\text是在框里面,并且不会在换行符处被丢弃:

enter image description here

\documentclass{article}
\setlength\textwidth{2cm}
\usepackage{amsmath}
\begin{document}

\noindent X\dotfill X

\noindent aaa aaa  $a + \text{\quad text\quad} b$

\noindent aaa aaa $a + \quad \text{text} \quad b$

\end{document}

答案4

一个反例(?)

\documentclass{article}

\usepackage{amsmath}
\begin{document}
\noindent
$a \text{\quad text\quad} b$\\
$a \quad \text{text} \quad b$

\font\meta=logo10 at 20pt
\noindent
\meta
{$A \text{\quad META\quad} M$\\
$A \quad \text{META} \quad M$}
\end{document}

enter image description here

这个例子不是很自然,但是它表明,如果em相等,答案就是肯定的。

相关内容