有没有一种方便的方法,tabular
通过只修改 的序言来不排版环境中的特定列tabular
?也就是说,不修改 本身的主体tabular
?
我的第一个想法是将@{}>{\nullfont}c@{}
被忽略的列(此处为一列)周围的间距清零,c
并使用空字体进行排版。我还尝试了几种不同大小的内部空间@{}
。
这可行,但列之间的间距与我完全省略列时不同。请参阅以下 MWE,其中我犯了垂直规则的致命错误(甚至翻倍!)清楚地显示差异:
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}{c|@{}>{\nullfont}c@{\,}|c}
a & b & c \\
d & e & f
\end{tabular}
\begin{tabular}{c||c}
a & c \\
d & f
\end{tabular}
\end{document}
应插入什么才能使间距匹配?我尝试了标准间距命令的各种组合。
或者,有没有比我所建议的更方便的方法来做到这一点?
答案1
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}{c||>{\nullfont}c@{}c}
a & b & c \\
d & e & f
\end{tabular}
\begin{tabular}{c||c}
a & c \\
d & f
\end{tabular}
\end{document}
尽管如果您想省略图像和数学等,您最好在宏中抓取未使用的单元格,而不是使用\nullfont
。
\documentclass{article}
\def\zzzforegreg#1\unskip{}
\usepackage{array}
\begin{document}
\begin{tabular}{c||>{\nullfont}c@{}c}
a & \textbf{b} & c \\
d & $e$ & f
\end{tabular}
\begin{tabular}{c||>{\zzzforegreg}c@{}c}
a & \textbf{b} & c \\
d & $e$ & f
\end{tabular}
\begin{tabular}{c||c}
a & c \\
d & f
\end{tabular}
\end{document}
这使得