当用作\sim
否定符号时,它会给出不正确的间距,如果将间距与以下间距进行比较,这一点就很清楚了\lnot
:
如何纠正间距?
\documentclass{article}
\begin{document}
\(p \leftrightarrow \lnot \lnot p\)
\(p \leftrightarrow \sim \sim p\)
\(\lnot (p \land q) \leftrightarrow (\lnot p \lor \lnot q)\)
\(\sim (p \land q) \leftrightarrow (\sim p \lor \sim q)\)
\end{document}
答案1
\sim
符合关系符号的条件,因此会出现“奇怪”的间距。写作
\renewcommand{\lnot}{\mathord{\sim}}
允许您稍后改变主意并确保符号连贯性,就像您总是写的那样\lnot
。如果您愿意,可以使用不同的名称:
\newcommand{\varlnot}{\mathord{\sim}}
该\mathord
功能并非绝对必要,因为\newcommand{\varlnot}{{\sim}}
(注意额外的一对括号)足以转变\sim
为普通符号,但具体化永远不是一个坏主意(正如芭芭拉正确指出的那样)。
答案2
正如其他答案中提到的,\sim
被定义为一个关系符号,要使用它,\lnot
您必须使用\mathord
宏将其转换为普通符号;\mathord{\sim}
(这可能会产生与相同的结果{\sim}
,但更明确总是更好),如果您经常使用它,您甚至可以将它包装在一个新的宏中:
\documentclass{article}
\newcommand{\simnot}{\mathord{\sim}}
\begin{document}
\(p \leftrightarrow \lnot \lnot p\)
\(p \leftrightarrow \simnot \simnot p\)
\(\lnot (p \land q) \leftrightarrow (\lnot p \lor \lnot q)\)
\(\simnot (p \land q) \leftrightarrow (\simnot p \lor \simnot q)\)
\end{document}
答案3
就我而言,我发现\sim
它太过模糊。我更喜欢这样定义\simnot
:
\newcommand*{\simnot}{\mathord{\raisebox{-4pt}{\textasciitilde}}}
然而,所使用的值\raisebox
是根据所选的字体根据经验确定的。
所以这个代码:
\documentclass{minimal}
\newcommand*{\simnot}{\mathord{\raisebox{-4pt}{\textasciitilde}}}
\begin{document}
\(\simnot\cdot \) \quad (height comparison with \texttt{\textbackslash cdot})
\(p \leftrightarrow \lnot \lnot p\)
\(p \leftrightarrow \simnot \simnot p\)
\(\lnot (p \land q) \leftrightarrow (\lnot p \lor \lnot q)\)
\(\simnot (p \land q) \leftrightarrow (\simnot p \lor \simnot q)\)
\end{document}
渲染结果如下: