我想打开/关闭 longtabu 或 longtable 表的完整行。以下帖子:
为表格环境表提供了优雅的工作解决方案(我认为大致相同)。
不幸的是,当与 longtabu 或 longtable 表一起使用时,或者实际上只是 tabu 表环境时,我收到以下错误:
ERROR: Paragraph ended before \rowswitch was complete.
--- TeX said ---
<to be read again>
\par
l.208 \end{longtabu}
--- HELP ---
A blank line occurred in a command argument that shouldn't contain
one. You probably forgot the right brace at the end of an argument.
我的桌子很长,所以我似乎需要使用 longtabu 或 longtable 环境。
我正在使用回忆录类,但在文章类中似乎也遇到了同样的错误。
以下是 MWE(使用卡莱尔解决方案),它不能按照上述方式工作。
\documentclass[a4paper,landscape,10pt,oneside,english]{memoir}
% memoir set margins
\setlrmarginsandblock{1.5cm}{1.5cm}{*} % left-right
\setulmarginsandblock{2.5cm}{1.5cm}{*} % upper-lower
\checkandfixthelayout
\usepackage{comment}
\usepackage{lipsum}
\usepackage{longtable,tabu}
\usepackage{rotating}
\usepackage{blindtext}
%% toggle switches to hide/unhide rows of table:
% \def\rowswitch#1\\{#1\\} %On = Unhide
\def\rowswitch#1\\{} %Off = Hide
\begin{document}
\begin{longtabu} to\textwidth{
| X[2,l]
| X[2,l]
| X[15,l]
| X[15,l]
| X[2,l]
| }
\hline \hline
\textbf{Ref} &
\textbf{Ref} &
\textbf{Summary} &
\textbf{Summary} &
\textbf{Ref}
\\ \hline \hline \hline \hline
&
&
\blindtext
&
&
\\ \hline
\rowswitch
&
Hidden row
&
Hidden row
\blindtext
&
Hidden row
&
\\ \hline
&
&
\blindtext
&
&
\\ \hline
\end{longtabu}
\end{document}
对于 longtable,可以替换:
\begin{longtable}{
| p{1cm}
| p{1cm}
| p{10cm}
| p{10cm}
| p{1cm}
| }
和
\end{longtable}
得到同样的错误。
答案1
您应该删除所有空行(或者\rowswitch
用\long\def
或\newcommand
而不是 来定义\def
)。
删除空行可能是最佳解决方案,因为空行绝不应该仅仅用于“漂亮地打印”TeX 中的源布局,它们是一种指令,并由\par
TeX 的文件读取代码报告。此处不需要段落分隔符(这就是引发错误的原因)。
然而,即使您确实删除了空白行,您仍然应该执行命令\long
以便可以跳过p
列中的段落。