我在 Windows 8.1 上使用 MikTeX 9.6.0.5。以下内容按预期在新行中显示所有四行:
\documentclass{article}
\begin{document}
\begin{obeylines}
This is first line.
And the second line.
Third line.
Fourth line.
\end{obeylines}
\end{document}
但是如果我在第二行和第三行之间插入一个表格,如下所示:
\documentclass{article}
\begin{document}
\begin{obeylines}
This is first line.
And the second line.
\begin{tabular}{|l|l|l|}
\hline
A11&A12\\ \hline
A21&A22\\
\hline
\end{tabular}
Third line.
Fourth line.
\end{obeylines}
\end{document}
我收到错误:
! Misplaced \noalign.
\hline ->\noalign
{\ifnum 0=`}\fi \hrule \@height \arrayrulewidth \futurelet...
l.7 \hline
根据 Ian Thompson 的回应和评论这里我们应该能够obeylines
对整个文档进行操作。
答案1
\obeylines
将行尾定义为使用\par
该命令时的定义\endlines
。所以这里本质上就是这样\endgraf
。您不能在之前有该原语,\hline
因为它必须是行上的第一件事。
仅当您排版某些原始纯文本文档时,对整个文档使用\obeylines
才真正有意义。\obeylines
与 tex 标记混合几乎肯定会在某些地方失败。
答案2
当使用obeylines
附加%
到我们不希望产生上述效果的每一行时。
在这种情况下,我们可以%
在表格元素的每一行末尾添加。
这将修复错误并使表格格式正确。
\begin{tabular}{|l|l|l|} %
\hline %
A11&A12\\ \hline %
A21&A22\\ %
\hline %
\end{tabular} %
更多信息这TeX 帖子。