隐藏/显示表格的完整行

隐藏/显示表格的完整行

我需要通过更改序言来打开/关闭表格的整行。我的工作流程只允许我更改每个表格的第一个单元格,以使其可切换。

我的想法是使用这个帖子接受的答案\def 以该行的其余部分作为参数并定义一个命令\rowswitch,要么吞掉整行,要么正常显示它:

\documentclass{article}
\begin{document}
\newcommand*{\newlinecommand}[2]{%
  \newcommand*{#1}{%
    \begingroup%
    \escapechar=`\\%
    \catcode\endlinechar=\active%
    \csname\string#1\endcsname%
  }%
  \begingroup%
  \escapechar=`\\%
  \lccode`\~=\endlinechar%
  \lowercase{%
    \expandafter\endgroup
    \expandafter\def\csname\string#1\endcsname##1~%
  }{\endgroup#2\space}%
}

%toggles:
\newlinecommand{\rowswitch}{#1} %on
%\newlinecommand{\rowswitch}{} %off

\begin{tabular}{cc}
normal & row\\
\rowswitch toggle & row\\
normal & row
\end{tabular}
\end{document}

不幸的是,我不断收到Forbidden control sequence found while scanning use of \\rowswitch我能做些什么吗?或者这注定会失败?

答案1

我做了一些完全不同的东西。看看它是否适合您的需求。

我制作了一个分隔宏,它将读取所有内容\\,以及一个\ifswitch将打印或不打印表格行的条件。

我提供了两个别名\switchon\switchoff以使其更加直观:)

在此处输入图片描述

\documentclass{article}

\newif\ifswitch
\let\switchon\switchtrue
\let\switchoff\switchfalse

\def\rowswitch#1\\{%
\ifswitch%
  #1\\
\fi%
}

\begin{document}

\switchon

\begin{tabular}{cc}
normal & row\\
\rowswitch toggle & row\\
normal & row
\end{tabular}

\bigskip

\switchoff

\begin{tabular}{cc}
normal & row\\
\rowswitch toggle & row\\
normal & row
\end{tabular}

\end{document}

答案2

我会这么做

\documentclass{article}
\begin{document}

%toggles:
\def\rowswitch#1\\{#1\\} %On
%\def\rowswitch#1\\{} %Off


\begin{tabular}{cc}
normal & row\\
\rowswitch toggle & row\\
normal & row
\end{tabular}
\end{document}

相关内容