使用 XeLaTeX 在 tabularx 环境中透明行颜色

使用 XeLaTeX 在 tabularx 环境中透明行颜色

我正在尝试构建一个行颜色交替的表格,其中一种颜色略微透明。我的表格布局按预期工作,但是我无法找到让行颜色透明的方法。据我所知,该transparent软件包无法工作,因为它不适用于 XeLaTeX(我也使用该fontspec软件包,它需要 XeLaTeX)。以下是我目前拥有的 MWE

%!TEX program = xelatex
\documentclass[9pt,a4paper,twocolumn]{extbook}
\usepackage{xparse}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\NewDocumentEnvironment{rtable}{mm}%
    {\rowcolors{2}{}{gray!50}\tabularx{\columnwidth}{c L}%
    \bfseries{#1} & \bfseries{#2}\\%
    }
    {\endtabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}%
\begin{document}
\begin{rtable}{label 1}{label 2}
1 & this is a test\\
2 & to see if this works
\end{rtable}
\end{document}

其结果如下:

enter image description here

但是这显然没有透明度。整个文档有一个背景,我想通过行阴影来显示它。虽然我知道使用透明度会更容易,但我宁愿避免使用 Tikz 包matrix,因为这会带来另一个麻烦,即如何让表格单元格达到正确的大小。

答案1

您可以使用 tikz 命令,但由于透明度不尊重组并且也会影响文本,因此需要进行一定程度的设置和重置:

\documentclass[9pt,a4paper,twocolumn]{extbook}
\usepackage{xparse}
\usepackage[table]{xcolor}

\usepackage{tabularx,tikz}
\NewDocumentEnvironment{rtable}{mm}%
    {\rowcolors{2}{}{gray!50}\tabularx{\columnwidth}{c L}%
    \bfseries{#1} & \bfseries{#2}\\%
    }
    {\endtabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}%
\begin{document}

\begin{rtable}{label 1}{label 2}
1 & this is a test\\
2 & to see if this works
\end{rtable}


\begin{rtable}{label 1}{label 2}
\noalign{\pgfsetfillopacity{0.5}}%
\pgfsetfillopacity{1}%
1\pgfsetfillopacity{0.5}& 
\leavevmode \pgfsetfillopacity{1}%
this is a test\\
2 & to see if this works
\end{rtable}
\end{document}

enter image description here

相关内容