隐藏或显示 longtabu 或 longtable LaTeX 表的完整行

隐藏或显示 longtabu 或 longtable LaTeX 表的完整行

我想打开/关闭 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 中的源布局,它们是一种指令,并由\parTeX 的文件读取代码报告。此处不需要段落分隔符(这就是引发错误的原因)。

然而,即使您确实删除了空白行,您仍然应该执行命令\long以便可以跳过p列中的段落。

相关内容