了解 Colortbl 包中的 \hhline 和 \colorcell

了解 Colortbl 包中的 \hhline 和 \colorcell

我无法使这个最小示例的边框看起来正确, \colorcell 命令正在覆盖线条:

\documentclass[11pt]{article}
\usepackage{xcolor}
\usepackage[margin=.9in]{geometry}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage{hhline}

\pagestyle{plain}
\setlength\parindent{0pt}

\begin{document}
\setlength{\arrayrulewidth}{.8pt}


\begin{tabular}{ | c | c | c | c | } 
\hhline{----}
\cellcolor{red!30!white}\textbf{} & 
\cellcolor{red!30!white}\textbf{} &\multicolumn{1}{|c|}{\cellcolor{red!30!white}\textbf{Text}} & \multicolumn{1}{|c|}{\cellcolor{red!30!white}\textbf{Text}} \\ 
\hhline{|~|~|~|~|}
\multirow{-2}{*}{\cellcolor{red!30!white}\textbf{Text}} & 
\multirow{-2}{*}{\cellcolor{red!30!white}\textbf{Text}} 
&\multicolumn{1}{|c|}{\cellcolor{red!30!white}\textbf{Text}} 
& \multicolumn{1}{|c|}{\cellcolor{red!30!white}\textbf{Text}} \\ 
\hhline{----}
Text & &\begin{minipage}{.6\textwidth}
\begin{itemize} \itemsep-0.4em
\vspace{1mm}
\item Text
\item Text
\vspace{1mm}
\end{itemize}
\end{minipage} &\\
\hhline{----}
Text & &\begin{minipage}{.6\textwidth}
\begin{itemize} \itemsep-0.4em
\vspace{1mm}
\item Text
\item Text
\vspace{1mm}
\end{itemize}
\end{minipage} &\\
\end{tabular}

\end{document}

输出:

在此处输入图片描述

建议如何改正。

答案1

这是一个解决方案,使用makecell包,它允许在标准单元格中换行,并且enumitem,这使得设置列表参数和定义新列表类型变得容易。所以我定义了一个tabitemize列表,其参数适用于表格中的列表。最后的更改:第 3 列现在是p{0.6\textwidth},因此您不再需要在单元格内使用小页面。请注意,xcolor使用选项加载table会自动加载colortbl并定义一个新命令:\rowcolors

\documentclass[11pt]{article}
\usepackage[table]{xcolor}
\usepackage[margin=.9in]{geometry}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{makecell}
\pagestyle{plain}
\setlength\parindent{0pt}

\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\usepackage{enumitem}
 \newlist{tabitemize}{itemize}{1}
\setlist[tabitemize]{wide=0pt, label=\textbullet, leftmargin=*, nosep, after=\vspace*{-\baselineskip}}

\begin{document}

\setlength{\arrayrulewidth}{.8pt}
\renewcommand{\cellset}{\bfseries}
\setlength{\extrarowheight}{3pt}
\begin{tabular}{ | c | c |>{\arraybackslash\compress}p{0.6\textwidth} | c | }%
\hhline{----}
\rowcolor{red!30!white}\makecell{Text} & \makecell{Text} &\makecell{Text\\Text}& \makecell{Text\\Text} \\
\hhline{----}
Text & &
\begin{tabitemize}
\item Text
\item Text
\end{tabitemize}
 &\\
\hhline{----}
Text & &
\begin{tabitemize}
\item Text
\item Text
\end{tabitemize}
 &\\
\end{tabular}

\end{document} 

在此处输入图片描述

答案2

通过,您可以直接获得完美的输出:在某些缩放级别下{NiceTabular}nicematrix规则似乎不会在某些 PDF 查看器中消失。

\documentclass[11pt]{article}
\usepackage{xcolor}
\usepackage[margin=.9in]{geometry}
\usepackage{nicematrix}

\setlength\parindent{0pt}

\begin{document}
\setlength{\arrayrulewidth}{.8pt}

\begin{NiceTabular}{cccc}[vlines]
\hline
\RowStyle[nb-rows=2,bold,rowcolor=red!30]{}
\Block{2-1}{Text} & \Block{2-1}{Text} & Text & Text \\
& & Text & Text \\
\hline
Text & &\begin{minipage}{.6\textwidth}
\begin{itemize} \itemsep-0.4em
\vspace{1mm}
\item Text
\item Text
\vspace{1mm}
\end{itemize}
\end{minipage} &\\
\hline
Text & &\begin{minipage}{.6\textwidth}
\begin{itemize} \itemsep-0.4em
\vspace{1mm}
\item Text
\item Text
\vspace{1mm}
\end{itemize}
\end{minipage} &\\
\end{NiceTabular}

\end{document}

您需要多次编译(因为nicematrix使用 PGF/Tikz 节点)。

上述代码的输出

相关内容