我需要通过更改序言来打开/关闭表格的整行。我的工作流程只允许我更改每个表格的第一个单元格,以使其可切换。
我的想法是使用这个帖子接受的答案\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}