我需要用颜色填充表格行,但是我遇到了一些问题:
如果我这样做,一些列将被背景覆盖(第一张图片 - 多行)。
我看到了白色边框。(我不明白为什么 - 它们应该在这里)
我不知道如何将右侧表格(镜像 L)的列颜色设置为“无”或“白色”。
这就是我所拥有的:
这就是我需要的:
\documentclass{article}
\usepackage{xcolor,colortbl}
\usepackage{geometry} % customize page layout
\usepackage{array}
\usepackage{multirow} % multirow for table (rowspan)
\geometry{paper=a4paper, landscape,hmargin=28.5mm,vmargin=20mm}
\setlength\parindent{0cm} % no indent for whole document
\setlength{\tabcolsep}{0cm} % padding either side of each column (only horizontal)
\definecolor{Gray}{gray}{0.85}
% document start
\begin{document}
\newcolumntype{M}[1]{>{\columncolor{Gray}\centering\arraybackslash}m{\dimexpr#1-\arrayrulewidth\relax}}
\newcolumntype{P}[1]{>{\columncolor{Gray}\centering\arraybackslash}p{\dimexpr#1-\arrayrulewidth\relax}}
\newcolumntype{X}[1]{>{\columncolor{Gray}\arraybackslash}p{\dimexpr#1-\arrayrulewidth\relax}}
\newcolumntype{Y}[1]{>{\columncolor{Gray}\raggedright\arraybackslash}p{\dimexpr#1-\arrayrulewidth\relax}}
\begin{tabular}{
| P{1.4cm}
| M{1.4cm}
| M{1.4cm}
| P{7.6cm}
| P{6.4cm}
| P{1.2cm}
| P{1.2cm}
| P{1.2cm}
| P{2.2cm}
|
}
\hline
\multicolumn{4}{|c|}{\rule[-0.4cm]{0cm}{1cm} B} & \multicolumn{5}{c|}{q} \\
\hline
a & SSW \par \footnotesize{(xx)} & xxx \footnotesize{(xxx)} & b & & x & d & e & \\\cline{1-8}
\rule[-0.8cm]{0cm}{1cm} & & &
\multirow{8}{7.6cm}{%
\rule[-.4cm]{0.5cm}{0cm}
\begin{tabular}{
X{2.5cm}
X{0.9cm}
Y{1.6cm}
Y{1.6cm}
}
one question & & $\bigcirc$ yes & $\bigcirc$ no \\
second question & & $\bigcirc$ left & $\bigcirc$ right \\
third question & & $\bigcirc$ yes & $\bigcirc$ no \\
fourth question & & $\bigcirc$ yes & $\bigcirc$ no \\
fifth question & & $\bigcirc$ yes & $\bigcirc$ no \\
sixsth question & & $\bigcirc$ mono & $\bigcirc$ color \\
\end{tabular} %
}
& & & & & \\
\cline{1-3}\cline{5-8}
\rule[-0.8cm]{0cm}{1cm} & & & & & & & & \\\cline{1-3}\cline{5-8}
\multicolumn{2}{|P{2.8cm}}{\rule{0cm}{1cm}} & & & & \multicolumn{3}{P{2.8cm}}{\rule{0cm}{1cm}} &\\
\hline
\end{tabular}
% document end
\end{document}
答案1
关于您的代码以及更改的一些说明:
- 加载
\usepackage[table]{xcolor}
也会加载colortbl
。 - 您可以
\usepackage{array, multirow}
一起加载(节省一行!)。 - 新的列类型应在此处定义
- 请记住,纸张格式已加载到文档类中,您可以将边距和横向作为
geometry
包的选项应用。
就我个人而言,我建议你先将所有软件包放在一起,然后再加载序言中的所有各种调整,最后加载文档。这不是一个规则,但这样组织得更好。不过,这取决于你的喜好。
我加载了hhline
用于为规则着色的包,然后将其\rowcolors{2}{Gray}{Gray}
用于行,并使用命令\cellcolor{white}
来隔离白色单元格(顶部除外)。无需嵌套表格,我的解决方案仅使用一个表格。
输出
代码
\documentclass[a4paper]{article}
\usepackage[hmargin=28.5mm,vmargin=20mm,landscape]{geometry}
\usepackage[table]{xcolor}
\usepackage{hhline}
\usepackage{array, multirow} % multirow for table (rowspan)
\setlength\parindent{0cm} % no indent for whole document
\setlength{\tabcolsep}{0cm} % padding either side of each column (only horizontal)
\definecolor{Gray}{gray}{0.85}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{\dimexpr#1-\arrayrulewidth\relax}}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{\dimexpr#1-\arrayrulewidth\relax}}
\newcolumntype{X}[1]{>{\arraybackslash}p{\dimexpr#1-\arrayrulewidth\relax}}
\newcolumntype{Y}[1]{>{\hspace{2pt}\raggedright\arraybackslash}p{\dimexpr#1-\arrayrulewidth\relax}}
\renewcommand*{\arraystretch}{1.5}
\newcommand{\myl}{%
\hhline{*3{>{\arrayrulecolor{black}}-}*4{>{\arrayrulecolor[gray]{.85}}-}|*3{>{\arrayrulecolor{black}}-}}
}
\begin{document}
\rowcolors{2}{Gray}{Gray}
\begin{tabular}{|P{1.4cm}|M{1.4cm}|M{1.3cm}|Y{4cm}Y{1.5cm}Y{1.5cm}|P{7.6cm}|P{1.2cm}|P{1.2cm}|P{1.2cm}|P{2.2cm}|
}
\hline
\rowcolor{white}
\multicolumn{6}{|c|}{B} & \multicolumn{5}{c|}{q} \\ \hline
a & SSW \par \footnotesize{(xx)} & xxx \footnotesize{(xxx)} & \multicolumn{3}{c|}{b} & & x & d & e & \cellcolor{white} \\ \hhline{*{10}{-}}
& & & one question & $\bigcirc$ yes & $\bigcirc$ no & & & & & \cellcolor{white} \\ \myl
& & & second question & $\bigcirc$ left & $\bigcirc$ right & & & & & \cellcolor{white} \\ \myl
& & & third question & $\bigcirc$ yes & $\bigcirc$ no & & & & & \cellcolor{white} \\ \myl
\multicolumn{3}{|c|}{} & fourth question & $\bigcirc$ yes & $\bigcirc$ no & & \multicolumn{3}{c}{\cellcolor{white}} & \cellcolor{white} \\
\multicolumn{3}{|c|}{} & fourth question & $\bigcirc$ yes & $\bigcirc$ no & & \multicolumn{3}{c}{\cellcolor{white}} & \cellcolor{white} \\
\multicolumn{3}{|c|}{\multirow{-3}{*}{}} & sixth question & $\bigcirc$ mono & $\bigcirc$ color & & \multicolumn{3}{c}{\multirow{-3}{*}{\cellcolor{white}}} & \cellcolor{white} \\ \hline
\end{tabular}
\end{document}