在数学模式下,当我输入句子时,我的习惯是将逗号/句号/分号等放在美元符号外面。例如,我会写Let the variable be denoted by $x$.
, 而不是Let the variable be denoted by $x.$
但有时我需要使用双美元符号将公式放在中间,这就出现了问题。如果我写By the formula $$e^{i\pi}+1=0$$, we have ...
,那么逗号就会出现在下一行的开头,这看起来很别扭。所以我不得不改写By the formula $$e^{i\pi}+1=0,$$ we have ...
。
我的问题是,这样做$x$,
和$x,$
看起来完全一样吗?如果不是,那么如果他/她使用双美元符号来集中表达式,但仍然喜欢将逗号放在美元符号之外,该怎么办?
答案1
在正常设置下,逗号的数学代码"613B
如下
\mathcode`\,="613B
在 Plain TeX 中
\DeclareMathSymbol{,}{\mathpunct}{letters}{"3B}
在 LaTeX 中(准确地说是在 中fontmath.ltx
)。这意味着逗号是一个标点符号(类 6),并且它取自专门用于数学字母的字体(系列 1,其中数学斜体字母是主要对象)。
因此,字形的形状取决于字体的设计方式:可能会有所不同,特别是如果文本和数学字体不匹配(这无论如何都是印刷错误)。为什么符号“不同”?让我们看看标准设置:
\documentclass{article}
\begin{document}
\fboxsep=0pt \fboxrule=0.1pt % no padding, hairline box
\fbox{,} \fbox{$,$}
\makebox[0pt][l]{\fbox{,}}\fbox{$,$}
\end{document}
看第一行似乎暗示结果是相同的,第二行也证实了这一点。
然而,如果加载 NewTX,就会看到差异;与之前相同的输入,加上\usepackage{newtxtext,newtxmath}
产品
我们发现数学逗号没有左侧边距。这是设计决定。
答案2
\documentclass{article}
\begin{document}
\showoutput
$,$,
\end{document}
生产
它们在默认的计算机现代字体中“非常相似”,但如果你查看日志,你会看到
....\mathon
....\OML/cmm/m/it/10 ;
....\mathoff
....\OT1/cmr/m/n/10 ,
因此,第二个是,
cmr10 中的 ,而第一个是;
cmmi10 中的 (经典的 TeX 编码是诡异的:-) 它们看起来相同的程度(或者实际上在内部使用相同字体路径的副本相同)是字体设计师的选择。
答案3
正如评论中指出的那样,应该使用使用非常相似的标点符号的匹配文本和数学字体。
根据 TeXbook 的说法,使用Test with variable $x$.
是首选,主要是Test with one $x$, two $y$, or three variables $z$.
因为在某些情况下,数学模式中的标点符号比文本中的标点符号更紧密。
By the formula\[x=y+z \hbox{,}\]we have
关于显示的数学,如果您使用(同样根据 TeXbook)或By the formula\[x=y+z \text{,}\]we have
(使用时应优先使用),则比较安全amsmath
。两者都将导致,
以文本字体打印。