我无法使这个最小示例的边框看起来正确, \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 节点)。