![使用多列和多行时的颜色](https://linux22.com/image/433254/%E4%BD%BF%E7%94%A8%E5%A4%9A%E5%88%97%E5%92%8C%E5%A4%9A%E8%A1%8C%E6%97%B6%E7%9A%84%E9%A2%9C%E8%89%B2.png)
我用过一个工具生成一个相当复杂的表格,该表格使用多个多行和多列实例。我想给一些多列着色,但当我这样做时,一条细白线出现在 hhline 应该出现的位置。我将其更改为比我打算使用的颜色更深的颜色,因此缺陷更加明显。
使用lualatex
或进行编译xelatex
。
\documentclass{article}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{xcolor,colortbl}
\usepackage{tablefootnote}
\definecolor{table}{rgb}{0.427,0.427,0.427}
\begin{document}
\begin{table}
\centering
\caption{Consonant Phoneme Chart}
\arrayrulecolor{black}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline
\rowcolor{table} \multicolumn{2}{|c|}{} & Alveolar & Palatal\tablefootnote{Palatoalveolar} & Velar & Uvular & Pharyngeal & Glottal \\ \hline
\multicolumn{2}{|c|}{{\cellcolor{table}}Nasal} & n & & ŋ ⟨ň⟩ & ɴ ⟨ṅ⟩ & & \\ \hline
{\cellcolor{table}} & {\cellcolor{table}}voiced & d & & g & ɢ ⟨ġ⟩ & & \\ \hhline{|>{\arrayrulecolor{table}}->{\arrayrulecolor{black}}-------|}
{\cellcolor{table}} & {\cellcolor{table}}voiceless & t & & k & q & & ʔ ⟨’⟩ \\[-0.1pt] \hhline{|>{\arrayrulecolor{table}}->{\arrayrulecolor{black}}-------|}
\multirow{-3}{*}{{\cellcolor{table}}Plosive} & {\cellcolor{table}}ejective & tʼ & & kʼ & qʼ & & \\ \hline
{\cellcolor{table}} & {\cellcolor{table}}voiced & \multirow{2}{*}{s ⟨s⟩} & \multirow{2}{*}{ʃ ⟨š⟩} & & χ ⟨x⟩ & & \\ \hhline{|>{\arrayrulecolor{table}}->{\arrayrulecolor{black}}-~~----|}
\multirow{-2}{*}{{\cellcolor{table}}Fricative} & {\cellcolor{table}}voiceless & & & & ʁ ⟨r⟩ & ħ ⟨ẋ⟩ & h \\ \hline
{\cellcolor{table}} & {\cellcolor{table}}voiceless & ts ⟨z⟩ & t͡ʃ~ ⟨c⟩ & & & & \\ \hhline{|>{\arrayrulecolor{table}}->{\arrayrulecolor{black}}-------|}
\multirow{-2}{*}{{\cellcolor{table}}Affricate} & {\cellcolor{table}}ejective & tsʼ ⟨zʼ⟩ & t͡ʃ ’ ⟨c’⟩ & & & & \\ \hline
\multicolumn{2}{|c|}{{\cellcolor{table}}Approximant} & l \tablefootnote{More accurately, a lateral alveolar approximant.} & j & ɰ ⟨ğ⟩ & & ʕ ⟨â⟩ & \\ \hline
\end{tabular}
\end{table}
\end{document}
我碰到一些解决方案。其中之一是使用 nicematrix,但我不确定如何让它工作。另一个是做一些涉及 \vskip 的事情,但同样,我不确定它到底放在哪里,到目前为止我无法让它解决我的问题。所以是的,这可能是重复的,但我真的不知道如何正确使用这些解决方案。
答案1
这些细白线出现在一些 PDF 查看器中。更准确地说,它们出现在使用 PDF 渲染器 PDF.js(例如 Firefox、DropBox、Papeeria)或 MuPDF(例如 SumatraPDF)的 PDF 查看器中。它们不会出现在 Adobe Reader 中,但使用该 PDF 阅读器时,在某些缩放级别下,这些规则似乎在彩色面板下消失。
该软件包nicematrix
解决了这些问题。但是,使用nicematrix
,您需要进行多次编译。
\documentclass{article}
\usepackage{nicematrix,enumitem,caption}
\usepackage{xltxtra}
\definecolor{table}{rgb}{0.427,0.427,0.427}
\usepackage{xcolor}
\begin{document}
\begin{table}
\centering
\caption{Consonant Phoneme Chart}
\begin{NiceTabular}{cccccccc}[hvlines,cell-space-limits=2pt]
\CodeBefore
\rowcolor{gray}{1}
\columncolor{gray}{1,2}
\Body
\Block{1-2}{} & & Alveolar & Palatal & Velar & Uvular & Pharyngeal & Glottal \\
\Block{1-2}{Nasal} & & n & & ŋ ⟨ň⟩ & ɴ ⟨ṅ⟩ & \\
\Block{3-1}{Plosive} & voiced & d & & g & ɢ ⟨ġ⟩ & & \\
& voiceless & t & & k & q & & ʔ ⟨’⟩ \\
& ejective & tʼ & & kʼ & qʼ & & \\
\Block{2-1}{Fricative} & voiced & \Block{2-1}{s ⟨s⟩} & \Block{2-1}{ʃ ⟨š⟩} & & χ ⟨x⟩ & & \\
& voiceless & & & & ʁ ⟨r⟩ & ħ ⟨ẋ⟩ & h \\
\Block{2-1}{Affricate} & voiceless & ts ⟨z⟩ & t͡ʃ~ ⟨c⟩ & & & & \\
& ejective & tsʼ ⟨zʼ⟩ & t͡ʃ ’ ⟨c’⟩ & & & & \\
\Block{1-2}{Approximant} & & l \tabularnote{More accurately, a lateral alveolar approximant.}& j & ɰ ⟨ğ⟩ & & ʕ ⟨â⟩ & \\
\end{NiceTabular}
\end{table}
\end{document}
答案2
当我放大时,白色条纹似乎是由于单元格边框和水平线位置的舍入误差造成的。就像您提到的解决方案一个小的负数\vskip
可以解决这个问题,但似乎你需要比 更多的值-0.1pt
。我用 得到了很好的结果-0.8pt
。为了补偿,你可以增加\arraystretch
一点。我将 和 放在\\[-0.8pt]
一起放在\\hline
一个宏中,这样更容易进行实验。我还添加了 来|
消除第一列后垂直线中的小间隙。
\documentclass{article}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{xcolor,colortbl}
\usepackage{tablefootnote}
\definecolor{table}{rgb}{0.427,0.427,0.427}
\renewcommand{\arraystretch}{1.2}
\newcommand{\hhhline}[1]{\\[-0.8pt]\hhline{|>{\arrayrulecolor{table}}->{\arrayrulecolor{black}}|#1|}}
\begin{document}
\begin{table}
\centering
\caption{Consonant Phoneme Chart}
\arrayrulecolor{black}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline
\rowcolor{table} \multicolumn{2}{|c|}{} & Alveolar & Palatal\tablefootnote{Palatoalveolar} & Velar & Uvular & Pharyngeal & Glottal \\ \hline
\multicolumn{2}{|c|}{{\cellcolor{table}}Nasal} & n & & ŋ ⟨ň⟩ & ɴ ⟨ṅ⟩ & & \\ \hline
{\cellcolor{table}} & {\cellcolor{table}}voiced & d & & g & ɢ ⟨ġ⟩ & & \hhhline{-------}
{\cellcolor{table}} & {\cellcolor{table}}voiceless & t & & k & q & & ʔ ⟨’⟩ \hhhline{-------}
\multirow{-3}{*}{{\cellcolor{table}}Plosive} & {\cellcolor{table}}ejective & tʼ & & kʼ & qʼ & & \\ \hline
{\cellcolor{table}} & {\cellcolor{table}}voiced & \multirow{2}{*}{s ⟨s⟩} & \multirow{2}{*}{ʃ ⟨š⟩} & & χ ⟨x⟩ & & \hhhline{-~~----|}
\multirow{-2}{*}{{\cellcolor{table}}Fricative} & {\cellcolor{table}}voiceless & & & & ʁ ⟨r⟩ & ħ ⟨ẋ⟩ & h \\ \hline
{\cellcolor{table}} & {\cellcolor{table}}voiceless & ts ⟨z⟩ & t͡ʃ~ ⟨c⟩ & & & & \hhhline{-------}
\multirow{-2}{*}{{\cellcolor{table}}Affricate} & {\cellcolor{table}}ejective & tsʼ ⟨zʼ⟩ & t͡ʃ ’ ⟨c’⟩ & & & & \\ \hline
\multicolumn{2}{|c|}{{\cellcolor{table}}Approximant} & l \tablefootnote{More accurately, a lateral alveolar approximant.} & j & ɰ ⟨ğ⟩ & & ʕ ⟨â⟩ & \\ \hline
\end{tabular}
\end{table}
\end{document}