!您不能在垂直模式下使用“\unskip”。... 如何获得行间空格?

!您不能在垂直模式下使用“\unskip”。... 如何获得行间空格?

我搜索了错误,但似乎没有找到真正通缉间距。另外,这是我在 Tex Stack Exchange 上的第一个问题,所以如果我的格式不正确、没有遵循任何惯例等,请告诉我。

我的简化示例代码是:

\documentclass[12pt]{amsart}
\begin{document}

\[Some stuff\]

~

\[Some more stuff\]

\end{document}

这将产生以下错误:

! You can't use `\unskip' in vertical mode.
\nonbreakingspace ->\unskip 
                            \nobreak \ \ignorespaces 
l.8 ~

答案1

该类amsart重新定义~\protect\nonbreakingspace确实具有\unskip\ignorespaces,因为它想要捕获用户输入的情况

some ~ word

并使它们像 一样正常化some~word

“留空一行”的正确做法是

text above

\bigskip

text below

根据中的定义amsart,这使得~段落开头的文本非法。

就你的情况而言,你似乎使用了连续数学显示,但由于其他原因,这是错误的:你应该使用gather*。请注意$$...$$应该绝不用于 LaTeX。

\begin{gather*}
eq1 \\
eq2 \\[3ex]% some vertical space
eq3
\end{gather*}

还有几种其他对齐环境可用。检查texdoc amsmath

答案2

标准定义~不会产生此错误

\documentclass{article}
\usepackage{amsthm}

\begin{document}

\begin{proof}
...

$$some stuff$$

$$some more stuff$$

~ % want space here to set apart from above

$$yet more stuff$$

...
\end{proof}

\end{document}

生产

在此处输入图片描述

您似乎对~以 开头的进行了局部重新定义\unskip ,这显然是不正确的,但对我的本地 tex 树进行快速搜索并没有发现您可以使用的可以做出此类定义的包。

尽管上述内容没有错误,但垂直“间隙”并不是垂直空间,而是一个“白色段落”的水平线,因此~它不会正常运行,既不会拉伸也不会收缩,也不会在分页符处被丢弃。

$$不支持 latex 语法,但显示数学环境永远不应一个接一个地使用,无论是$$支持的环境,例如\begin{equation}。如果您使用多行环境,您可以根据需要增加间距,例如

在此处输入图片描述

\documentclass{article}
\usepackage{amsthm,amsmath}

\begin{document}

\begin{proof}
...

\begin{gather*}
some stuff\\
some more stuff\\[1cm]
yet more stuff
\end{gather*}

...
\end{proof}

\end{document}

答案3

我在这里基本上是猜测,但既然你正在使用amsart,......

从您的描述来看,您似乎希望两个数学显示之间有一个较大的间隙。这通常被认为是不合适的(请参阅数学类型),但想必你有一个理由。

有一个标准功能可以在多行显示的两行之间添加空格。即在\\分隔这种显示的两行之后,将尺寸的值指定为选项。记住,不要不是在反斜杠和选项之间留一个空格。 amsmath会不遗余力地识别这个位置上的空格,以便“下一行”上以括号开头的表达式不会被默认的 latex 假设所困扰,因为默认的 latex 假设认为括号中该位置的任何内容必须是一种选择。

例子:

\begin{gather*}
  x + y = z \\[12pt]
  abc = def
\end{gather*}

相关内容