rowcolor
我在使用一些包含独立文件内容的表格时遇到了一些问题。以下代码正常运行
\documentclass{article}
\usepackage{booktabs}
\usepackage{color, colortbl}
\definecolor{mygray}{gray}{0.9}
\begin{document}
\begin{center}
\begin{tabular}{l|c|c}
A & B & C\\
\toprule
\rowcolor{mygray} \textbf{X} & 1 & 2\\
\textbf{Y} & 3 & 4\\
\rowcolor{mygray} \textbf{Z} & 5 & 6\\
\end{tabular}
\end{center}
\end{document}
但是,当我将表格内容放入单独的文件中时,我收到以下错误:
放错位置 \noalign.\rowcolor ->\noalign{\ifnum 0=`}\fi \global \let \CT@do@color \CT@@do@color... \rowcolor
这些文件是
%% main.tex
\documentclass{article}
\usepackage{booktabs}
\usepackage{color, colortbl}
\definecolor{mygray}{gray}{0.9}
\begin{document}
\begin{center}
\begin{tabular}{l|c|c}
A & B & C\\
\toprule
\input{tab}
\end{tabular}
\end{center}
\end{document}
和
%% tab.tex
\rowcolor{mygray} \textbf{X} & 1 & 2\\
\textbf{Y} & 3 & 4\\
\rowcolor{mygray} \textbf{Z} & 5 & 6\\
答案1
使用,您{NiceTabular}
可以nicematrix
直接获得预期的结果(前提是您不将最后一个放入\\
文件中tab.tex
,否则,表格中会多出一行)。
\documentclass{article}
\usepackage{booktabs}
\usepackage{nicematrix}
\definecolor{mygray}{gray}{0.9}
\begin{document}
\begin{center}
\begin{NiceTabular}{l|c|c}[colortbl-like]
A & B & C\\
\toprule
\input{tab}
\end{NiceTabular}
\end{center}
\end{document}
和tab.tex
:
%% tab.tex
\rowcolor{mygray}\textbf{X} & 1 & 2\\
\textbf{Y} & 3 & 4\\
\rowcolor{mygray}\textbf{Z} & 5 & 6
您需要多次编译。
答案2
\usepackage{color, colortbl}
用包替换 ,并使用之前插入的\usepackage[table]{xtabular}
命令来为表格行着色:rowcolors{1}{white}{mygray}
tabular
%\documentclass{article}
\documentclass[varwidth, border=3.141592]{standalone}
\usepackage{array, booktabs}
\usepackage[table]{xcolor}
\definecolor{mygray}{gray}{0.9}
\begin{document}
\begin{center}
\rowcolors{1}{white}{mygray}
\begin{tabular}{>{\bfseries}l|c|c}
\normalfont{A} & B & C \\
\midrule
\input{tab}
\end{tabular}
\end{center}
\end{document}
结果不是很好(由于使用的规则booktabs
不适用于垂直规则,您可以将其替换为\hline
,参见下图),但似乎您喜欢上述结果;-)
评论:在途中插入表格内容并不是一个明智的想法。更好的方法是使用standalone
文档类编写完整的表格,您可以独立于主文档进行测试,然后在文档中插入完整的文件,该文件需要在序言中usepackage{standalone}
。