如果文档包含表格,则 LaTeX \obeylines 命令不适用于整个文档

如果文档包含表格,则 LaTeX \obeylines 命令不适用于整个文档

我在 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 帖子。

相关内容