我经常遇到这样的情况:LaTeX 返回错误消息“这里没有结束的行。”然后,它会给出错误的位置,显示整行文本:
! LaTeX Error: There's no line here to end.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.4 \noindent
Full line of text \\
?
显然,该消息指的是显示给用户的行以外的其他内容。但是,我永远记不住该消息的实际含义。有没有好的助记法可以记住“line”、“here”和“end”这些词在这种情况下对 LaTeX 的含义,以便下次我不会感到困惑?
在这种情况下,前一行是\hrule \\
,当我将其更改为时,错误消失\hrule \ \\
,但我不知道如何从错误消息中获取它。
\documentclass[11pt]{article}
\begin{document}
\hrule \\
\noindent Full line of text \\
\end{document}
\hrule \ \\
我正在使用一个名为“texlive”的软件包。我也不确定和之间有什么区别\hrule \quad \\
,或者为什么原来的版本不太正确,并值得出现错误消息。我想有很多关于编译时导致此消息的文档的问题,但我对消息本身以及如何将其理解为自然语言句子感兴趣。
答案1
您几乎不应该\\
在表格或数学对齐之外使用它。如果在文本中使用,它会强制换行,使行变短。
在
\documentclass[11pt]{article}
\begin{document}
\hrule \\
\noindent Full line of text \\
\end{document}
错误在于as\\
之后没有启动水平模式,所以没有行结束,因此给出了错误。as向前看,如果有可选参数,tex 已开始读取下一行,这就是为什么它显示在 之后的行上。\hrule
\hrule
\\
\\
[5pt]
\\
也就是说:的意思\\
是“结束行”,但是如果您在段落开头、第一行文本之前使用它,那么正如消息所说的那样,“没有行可以结束”。
在 as 之后不\noindent
执行任何操作\\
,这会阻止段落开头的缩进,但\\
不会中断段落。
只需从此文档中删除两者即可\\
。第一个是错误,第二个不会生成错误,但会产生不良程度为 10000 的未满警告,并产生不良输出。
因此正确的标记应该没有\\
或\noindent
可能
\documentclass[11pt]{article}
\usepackage{parskip}
\begin{document}
\hrule
Full line of text
\end{document}