使用多列和多行时的颜色

使用多列和多行时的颜色

我用过一个工具生成一个相当复杂的表格,该表格使用多个多行和多列实例。我想给一些多列着色,但当我这样做时,一条细白线出现在 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 查看器中。它们不会出现在 Adob​​e 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}

在此处输入图片描述

相关内容