MnotWE:
\documentclass[12pt,letterpaper]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\newcommand*{\fnn}[1]{\textrm{#1}}
\newcommand*{\gpr}[1]{\mathbin{\ast_{#1}}}
\newcommand*{\grp}[2]{\left(#1, \gpr{#1}\right)}
\begin{document}
A group homomorphism is a map $\fnn{f}: \grp{G} \mapsto \grp{H}$ such that $x, y \in \grp{G}$...
\end{document}
错误:
缺少 $ 插入。...rp{G} \mapsto \grp{H}$ 使得 $x, y \in
为什么会发生这种情况?
答案1
写
\newcommand*{\grp}[1]{\left(#1, \gpr{#1}\right)}
如果你把[2]
LaTeX 认为你有 2不同的 强制的參數。
编辑:以下解释由 Steven B. Segletes 提供,感谢他的贡献。
这实际上意味着,当 TeX 吸收 的标记时\grp
,它会吸收一个你没有预料到的额外标记。如果你解决了错误,只需查看输出:
A group homomorphism is a map $\fnn{f}: \grp{G} \mapsto \grp{H}$
such that $x, y \in \grp{G}$...
到达后,\grp{G}
它会吸收\mapsto
,因此您在输出中看不到它。它到达这里没有错误。然后,当它到达时\grp{H}
,它会吸收$
作为第二个参数,从而使您处于数学模式。这就是为什么 such that
显示为数学。仍然没有错误。但这意味着当您到达时$x
,$
会将您带出数学模式,因此x, y
会以文本模式显示。
然后,您遇到了问题,您尝试排版\in
,现在在文本模式下并生成错误:
! Missing $ inserted.
<inserted text>
$
l.12 ...rp{G} \mapsto \grp{H}$ such that $x, y \in
\grp{G}$...
通过强制编译继续,TeX 人为地$
在此处插入 以匹配 所需的模式\in
。当\grp{G}
达到 时,$
再次被吸收为第二个参数,并且您将留在数学模式中以关闭编译,从而产生第二个编译错误。