
Estou tentando construir uma tabela com cores de linhas alternadas, sendo uma das cores levemente transparente. Tenho o layout da tabela funcionando conforme o esperado, mas não consigo descobrir uma maneira de tornar as cores das linhas transparentes. Pelo que sei, o transparent
pacote não funcionará, pois não funciona com o XeLaTeX (também estou usando o fontspec
pacote, que requer o XeLaTeX). A seguir está o MWE do que tenho até agora
%!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}
que produz o seguinte:
No entanto, isso obviamente não tem transparência. O documento completo tem um plano de fundo que gostaria de mostrar através do sombreamento das linhas. Embora eu esteja ciente de que facilita o uso da transparência, prefiro evitar o uso do matrix
pacote Tikz, pois isso abre uma nova lata de vermes para fazer com que as células da tabela tenham o tamanho certo.
Responder1
Você pode usar os comandos tikz, mas como a transparência não respeita os grupos e também afeta o texto, há uma certa quantidade de configurações e redefinições envolvidas:
\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}