简单对齐环境中的缺失数字错误

简单对齐环境中的缺失数字错误

使用 align 环境时,我收到错误“缺少数字,视为零”和“非法度量单位(插入 pt)”。以下是代码

\begin{align*}
    e+_b e &= e \\
    e+_b f&= f+_{\neg{b}} e \\
    (e+_b f)+_c g &= e+_{bc}(f+_c g)\\
    e+_b f &= be+_b f \\
    eg+_b fg &= (e+_b f)\seq g \\
    (e\seq f)\seq g &= e\seq (f\seq g) \\
    0\seq e &= 0 \\
    e\seq 0 &= 0 \\
    1\seq e &= e \\
    e\seq 1 &= e \\
    e^{(b)}&= e\seq e^{(b)}+_b 1 \\
    (e+_c 1)^{(b)}&= (ce)^{(b)}\\
    \frac{g=eg+_p f}{g=e^{(p)}f} &\mbox{ if } E(e)=0
\end{align*}

我之前已经使用过很多这种环境,但我不知道是什么导致了这个问题;每次我插入一个对齐环境时,都会出现这些错误,即使我尝试使用像这样简单的例子

\begin{align}
    x&=y \\
    x&=z
\end{align}

我收到的错误的描述

./gkat.tex:89: 缺少数字,视为零。> l.89 \end{align}

./gkat.tex:89: 非法计量单位(插入 pt)。> l.89 \end{align}

编辑:好的,我在单独的 tex 文件中使用了一些宏,当我注释宏文件时错误停止;这是我在宏文件中的代码


\newtheorem {definition}{Definition} [section]
\newtheorem {examp}{Example} [section]
\newtheorem {theorem}{Theorem} [section]
\newtheorem {lemma}{Lemma} [section]
\newtheorem {corollary}{Corollary} [section]
\newtheorem {prop}{Proposition} [section]

\def\bf#1{\textbf{#1}}


\newcommand{\U}{\mathcal{U}}
\newcommand{\K}{\mathcal{K}}
\renewcommand{\M}{\mathcal{M}}
\newcommand{\D}{\mathcal{D}}
\renewcommand{\P}{\mathcal{P}}

%% operators

\newcommand{\gplus}[1]{+_{#1}}
\renewcommand{\seq}{\cdot}
\renewcommand{\iter}{^*}
\newcommand{\oA}{\text{\"A}}
\newcommand{\oB}{\text{\"B}}
\newcommand{\goplus}[1]{\oplus_{#1}}
\newcommand{\oseq}{\fatsemi}
\newcommand{\oneg}{\overline{\neg}}
\newcommand{\oun}{\"1}
\newcommand{\ozero}{\"0}
\newcommand{\lhom}[1]{\langle#1\mid}
\newcommand{\rhom}[1]{\mid#1\rangle}
\newcommand{\bihom}[2]{\langle #1 \mid #2 \rangle}
\newcommand{\equivdef}{\stackrel{\mathclap{\mbox{\tiny def}}}{\equiv}}
\newcommand{\oequal}{\overline{=}}
\newcommand{\oleq}{\overline{\leq}}


%%logic operators

\def\and{\wedge}
\def\or{\vee}
\def\then{\Rightarrow}
\def\implies{\rightarrow}
\newcommand{\diamante}[1]{\langle#1\rangle}

%%logic semantics

\newcommand{\Mod}{\mathrm{Mod}(GPDL)}
\newcommand{\prgint}[1]{\llbracket#1\rrbracket}
\def\rel#1{\mathcal{R}_i\prgint{#1}}
\def\prob#1{\mathcal{P}_i\prgint{#1}}

%%equations

\def\arrayin#1{\begin{array}{rcl}#1\end{array}}
\def\just#1#2{\\ &#1& \rule{2em}{0pt} \{
        \mbox{\rule[-.7em]{0pt}{1.8em} \footnotesize{#2}} \} \nonumber \\ && }


但是我还没有重新定义 algin 环境,所以这里是否有一些命令可能会产生干扰?

我正在使用文章类和以下附加包:


\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsthm,amsfonts,amssymb}
\usepackage{graphicx,url,color,eurosym,wrapfig,alltt}
\usepackage{mathtools}
\usepackage[all]{xy}
\usepackage{stmaryrd}
\usepackage{stackengine}

\usepackage{color}

\usepackage{oz}

答案1

最小的例子。

\documentclass{article}
\usepackage{amsmath}

\def\and{\wedge}
\def\or{\vee}

\begin{document}

\author{X Y \and P Q}
\title{Title}

\maketitle

\begin{enumerate}
\item x
  \begin{enumerate}
  \item a
  \item b
  \end{enumerate}
\end{enumerate}

\end{document}

我没有得到错误align,但只要看一下上面的例子的日志文件就应该告诉你应该非常小心\def 用。永远不要使用前者(除非你确切地知道你在做什么),如果引发错误并且你不知道命令的含义,\renewcommand也不要使用后者。例如,执行\newcommand

\renewcommand{\fi}{Let's try and break \LaTeX}

将会破坏一切。

顺便说一下,LaTeX 提供了开箱即用的命令

\land  \lor  \lnot

对于逻辑连接词\wedge,分别作为\vee和 的别名\neg

也修复

\newcommand{\lhom}[1]{\langle#1\,\vert}
\newcommand{\rhom}[1]{\vert\,#1\rangle}

因为\mid是一个关系符号,它产生的间距对于上下文来说可能很奇怪。

相关内容