当项目改变时更改行颜色

当项目改变时更改行颜色

按照这篇文章中的想法: http://www.benjaminbiegel.com/a-latex-table-that-actually-looks-nice-2-106.html 我能够创建这个表:

在此处输入图片描述

它会改变每一行的行颜色,我需要它在输入新单词(第 2 列)时改变。因此“joya”的两行将是“绿色”,而“juicio”的七行将是浅棕色。是否有一个“计数器”可以在单词项(第二列)更改时改变行颜色?我使用的代码如下:

\documentclass{article}
\usepackage[left=1.5cm,right=1.5cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{booktabs}
\usepackage{txfonts}
\usepackage{multirow}

\definecolor{TableBorder}{RGB} {255,211,32}
\definecolor{TableOdd}   {RGB} {204,153,0}
\definecolor{TableEven}  {RGB} {168,166,0}
\definecolor{colortexto} {RGB} {5,36,62}
%
\newcommand\VRule[1][\arrayrulewidth]{\vrule width #1}
%
\begin{document}

\rowcolors{1}{TableOdd}{TableEven}          

\begin{center}
\begin{tabular}{
!{\color{TableBorder}\VRule[1pt]}           
>{\bf\color{colortexto}}l                   
!{\color{TableBorder}\vline}
>{\bf\color{colortexto}}l                   
!{\color{TableBorder}\vline}
>{\bf\color{colortexto}}l                   
!{\color{TableBorder}\vline}
>{\bf\color{colortexto}}l                   
!{\color{TableBorder}\vline}>{\bf\color{colortexto}}l 
!{\color{TableBorder}\vline}>{\bf\color{colortexto}}l
!{\color{TableBorder}\VRule[1pt]}}          

\arrayrulecolor{TableBorder}                
\specialrule{1pt}{0pt}{0pt}                 
\rowcolor{TableOdd}                         
Rating&concepto&subconcepto&página&idea&capítulo\\ 
\specialrule{2pt}{0pt}{0pt}                 
$\varheartsuit$ $\varheartsuit$&jardín&&337&mujer buena como un jardín&XXXIII – I\\
\hline  
$\varheartsuit$ $\varheartsuit$&jaula&&487&voy encantado por envidia&XLVII – I\\
\hline  
&joya&&393&paz (la)&XXXVII – I\\       
&&&519&que si se pierde …&LI – I\\
\hline     
&juicio&&1087&con más juicio discurría&LXXI – II\\
&&&493&confuso juicio del vulgo& XLVIII – I\\
&&&334&discurso (sin) y temerario&XXXIII – I\\
$\varheartsuit$&&&572&gran juicio para componer historias& III – II\\
&&&512&justicia (buen juicio para administrar justicia)&L – I\\
&&&1100&libre (tengo juicio ya libre)& LXXIV – II\\
&&&554&volverme mi juicio&I – II\\
\specialrule{1pt}{0pt}{0pt}
\end{tabular}
\end{center}
\end{document}

任何想法都会有很大帮助。谢谢。

答案1

您需要设置\rowcolor为一行中的第一个项目,因此您必须一起输入前两行项目。

\documentclass{article}
\usepackage[left=1.5cm,right=1.5cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{booktabs}
\usepackage{newtxtext,newtxmath}
\usepackage{multirow}

\definecolor{TableBorder}{RGB} {255,211,32}
\definecolor{TableOdd}   {RGB} {204,153,0}
\definecolor{TableEven}  {RGB} {168,166,0}
\definecolor{colortexto} {RGB} {5,36,62}

\newcommand\VRule[1][\arrayrulewidth]{\vrule width #1}
\newcommand{\RC}[2]{%
  % #1 is the rating, #2 is the concept;
  % if #2 is empty, it is assumed to repeat the previous one
  \rowcolor{\TableEvenOrOdd}
  \if\relax\detokenize{#2}\relax
  \else
    \stepcounter{rowcolors}%
  \fi
  #1 & #2
}
\newcommand{\TableEvenOrOdd}{%
  \ifodd\value{rowcolors}TableEven\else TableOdd\fi
}
\newcounter{rowcolors}

\begin{document}

\begin{center}
\begin{tabular}{
  !{\color{TableBorder}\VRule[1pt]}           
  >{\bfseries\color{colortexto}}l                   
  !{\color{TableBorder}\vline}
  >{\bfseries\color{colortexto}}l                   
  !{\color{TableBorder}\vline}
  >{\bfseries\color{colortexto}}l                   
  !{\color{TableBorder}\vline}
  >{\bfseries\color{colortexto}}l                   
  !{\color{TableBorder}\vline}>{\bfseries\color{colortexto}}l 
  !{\color{TableBorder}\vline}>{\bfseries\color{colortexto}}l
  !{\color{TableBorder}\VRule[1pt]}}          

\arrayrulecolor{TableBorder}                
\specialrule{1pt}{0pt}{0pt}                 
\rowcolor{TableOdd}                         
Rating&concepto&subconcepto&página&idea&capítulo\\ 
\specialrule{2pt}{0pt}{0pt}                 
\RC{$\varheartsuit$ $\varheartsuit$}{jardín}&&337&mujer buena como un jardín&XXXIII – I\\
\hline  
\RC{$\varheartsuit$ $\varheartsuit$}{jaula}&&487&voy encantado por envidia&XLVII – I\\
\hline  
\RC{}{joya}&&393&paz (la)&XXXVII – I\\       
\RC{}{}&&519&que si se pierde …&LI – I\\
\hline
\RC{}{juicio}&&1087&con más juicio discurría&LXXI – II\\
\RC{}{}&&493&confuso juicio del vulgo& XLVIII – I\\
\RC{}{}&&334&discurso (sin) y temerario&XXXIII – I\\
\RC{$\varheartsuit$}{}&&572&gran juicio para componer historias& III – II\\
\RC{}{}&&512&justicia (buen juicio para administrar justicia)&L – I\\
\RC{}{}&&1100&libre (tengo juicio ya libre)& LXXIV – II\\
\RC{}{}&&554&volverme mi juicio&I – II\\
\specialrule{1pt}{0pt}{0pt}
\end{tabular}
\end{center}
\end{document}

仅当第二个参数不为空时,计数器才会移动\RC

在此处输入图片描述

我将其改为txfonts更好的newtxtext和组合newtxmath;此外\bf,已被弃用二十多年的 应该是\bfseries

相关内容