\lnot 和 \neg 之间有什么区别?

\lnot 和 \neg 之间有什么区别?

正如标题所述,\lnot和之间有什么区别\neg? 输出对我来说似乎相同,但我想知道它们是否完全相同,无论是语义上还是代码定义上。

\documentclass[border=1pt]{standalone}
\begin{document}
\(\lnot a \, \neg a\)
\end{document}

例子

答案1

令你失望的是,没有。它们都是一样的。

如果你跑

\documentclass{standalone}
\begin{document}
\(\show\lnot a \, \show\neg a\)
\end{document}

你会得到:

> \lnot=\mathchar"23A.
l.3 \(\show\lnot
                 a \, \show\neg a\)
? 
> \neg=\mathchar"23A.
l.3 \(\show\lnot a \, \show\neg
                                a\)

这表明两者都是\mathchar"23A


事实上,plain.tex有人发现:

\mathchardef\neg="023A \let\lnot=\neg

其他符号也会出现同样的情况:

\mathchardef\wedge="225E \let\land=\wedge
\mathchardef\vee="225F \let\lor=\vee
\def\neq{\not=} \let\ne=\neq
\mathchardef\leq="3214 \let\le=\leq
\mathchardef\geq="3215 \let\ge=\geq
\mathchardef\ni="3233 \let\owns=\ni
\mathchardef\leftarrow="3220 \let\gets=\leftarrow
\mathchardef\rightarrow="3221 \let\to=\rightarrow

我的猜测原因是这些符号在不同的应用领域有不同的名字,所以它们有不同的名字以使它们的使用更加直观。


在 LaTeX 中,发生的情况基本相同,但多了一些花哨的功能:

\DeclareMathSymbol{\neg}{\mathord}{symbols}{"3A}
    \let\lnot=\neg

fontmath.ltx这可以在(由 加载)中找到latex.ltx

相关内容