当表格内容位于单独的文件中时,行颜色不起作用

当表格内容位于单独的文件中时,行颜色不起作用

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}

相关内容