暂时重新定义 \and、\or 和 \not 是否安全?

暂时重新定义 \and、\or 和 \not 是否安全?

我在 LaTeX 中写了很多逻辑表达式,我更愿意写$p \and \not q \or r$而不是$p \land \lnot q \lor r$。我在考虑做这样的事情:

\newenvironment{logic}{%
\renewcommand\and\land%
\renewcommand\or\lor%
\renewcommand\not\lnot%
}{}

然后我可以简单地

\begin{logic}
    p \and \not q \or r
\end{logic}

命令\and\or和 是\notTeX 内置的吗?临时重新定义它们安全吗?如果不安全,您能推荐其他替代方案吗?谢谢!

答案1

它们不是 TeX 内置的(在 TeX 中称为基元)。例如,\and定义为latex\end {tabular}\hskip 1em \@plus .17fil\begin {tabular}[t]{c}然而\or,与\and和不同\not,不是宏而是 TeX 基元。重新定义它不是一个好主意。

我认为您可以根据需要覆盖它们,只要将它们括在一个组中即可,否则您将无法使用它们的原始含义。例如,在大多数情况下,您不太可能使用\andafter 。\author

答案2

\and\not在 LaTeX 中是预定义的,但前者通常用于\author{}分隔作者的命令中,而后者(通常)用于形成已经存在的符号的否定,如\not\perp(不正交)。

下面的 MWE 使用宏\xspace来按照非数学模式下重新定义的命令自动实现良好的间距。

\documentclass{article}
\usepackage{xspace}
\newenvironment{logic}
   {\renewcommand{\and}{\ensuremath{\land}\xspace}
    \renewcommand{\or}{\ensuremath{\lor}\xspace}
    \renewcommand{\not}{\ensuremath{\lnot}}}
   {}     
\begin{document}
\begin{logic}
$p$ \and \not $q$ \or $r$ 
\end{logic}
\end{document}

相关内容