3

I am trying to setup a table with \hhline and \cellcolor. After I got it so far, that I don't see \hhlines in the colored cells I am now missing the black \hhlines which should separate the cells. This is how it should look like:

enter image description here

Here's what I have: enter image description here

\documentclass{article}
% General document formatting
\usepackage[margin=0.7in]{geometry}
\usepackage[parfill]{parskip}
\usepackage[utf8]{inputenc}
\usepackage{multirow, hhline}

% Related to math
\usepackage{amsmath,amssymb,amsfonts,amsthm}
\usepackage{multirow}
\usepackage[table,xcdraw]{xcolor}



\begin{document}    
    \begin{table}[!ht]  
        \centering
        \begin{tabular}{|c|c|c|}
            \hhline{*{1}{-}}
            {\cellcolor[HTML]{C0E5C6}}Modell-Überkategorien   &\multicolumn{2}{c}{}    \\ 
            \cline{1-1}
            statisch                &\multicolumn{2}{c}{}   \\ 
            \cline{1-1}
            zufällig (Monte-Carlo)  &\multicolumn{2}{c}{}   \\ 
            \hhline{*{3}{-}}            
            \cellcolor[HTML]{E2EFD9} & \cellcolor[HTML]{E2EFD9} Kontinuirlich & \cellcolor[HTML]{E2EFD9} \\
            \hhline{>{\arrayrulecolor[HTML]{E2EFD9}}->{\arrayrulecolor{black}}->{\arrayrulecolor[HTML]{E2EFD9}}-}
            \cellcolor[HTML]{E2EFD9} & \cellcolor[HTML]{E2EFD9} Hybrid & \cellcolor[HTML]{E2EFD9}\\
            \hhline{>{\arrayrulecolor[HTML]{E2EFD9}}->{\arrayrulecolor{black}}->{\arrayrulecolor[HTML]{E2EFD9}}-} \multirow{-3}{*}{{\cellcolor[HTML]{E2EFD9}}dynamisch} 
            & \cellcolor[HTML]{E2EFD9} Diskret & \cellcolor[HTML]{E2EFD9} \multirow{-3}{*}{Raum/Zeit}  \\ 
            \hline
            \cellcolor[HTML]{E2EFD9} (Multi)-Agenten basiert &\multicolumn{2}{c}{} \\ 
            \hhline{*{1}{-}}
        \end{tabular}
        \bigskip
    \end{table}
\end{document}

I have two missing hhlines and theres some small spaces inbetween the borders of the multirow cells. Is there a way to fix this issue?

  • Welcome to TeX.SE! Pleas add preamble to your code fragment. You probably have problems with poor rendering of your pdf viewer. – Zarko Jun 4 at 20:21
4

I have two MWEs: the last one cure both problems, the first does not cure the small green spaces.

Using hhline

You have forgotten to turn on arrayrowcolor{black} two places. In addition, the hhline- syntax was wrong one place. I have not found a solution for the small spaces in the horizontal borders (yet). It is the green coloured arrayrule under the multirow that overwrite the vertical line.

Not related: You load multirow twice.

\documentclass{article}
% General document formatting
\usepackage[margin=0.7in]{geometry}
\usepackage[parfill]{parskip}
\usepackage[utf8]{inputenc}
\usepackage{multirow, hhline}

% Related to math
\usepackage{amsmath,amssymb,amsfonts,amsthm}
\usepackage[table,xcdraw]{xcolor}

\renewcommand{\arraystretch}{1.2}
\setlength{\extrarowheight}{1pt}

\begin{document}    
    \begin{table}[!ht]  
        \centering
        \begin{tabular}{|c|c|c|}
            \hhline{-~~}
            {\cellcolor[HTML]{C0E5C6}}Modell-Überkategorien   &\multicolumn{2}{c}{}    \\ 
            \hhline{-~~}
            statisch                &\multicolumn{2}{c}{}   \\ 
            \hhline{-~~}
            zufällig (Monte-Carlo)  &\multicolumn{2}{c}{}   \\ 
            \hhline{*{3}{-}}            
            \cellcolor[HTML]{E2EFD9} & \cellcolor[HTML]{E2EFD9} Kontinuirlich & \cellcolor[HTML]{E2EFD9} \\
            \hhline{>{\arrayrulecolor[HTML]{E2EFD9}}->{\arrayrulecolor{black}}->{\arrayrulecolor[HTML]{E2EFD9}}-}\arrayrulecolor{black}
            \cellcolor[HTML]{E2EFD9} & \cellcolor[HTML]{E2EFD9} Hybrid & \cellcolor[HTML]{E2EFD9}\\
            \hhline{>{\arrayrulecolor[HTML]{E2EFD9}}->{\arrayrulecolor{black}}->{\arrayrulecolor[HTML]
{E2EFD9}}-}\arrayrulecolor{black}
\multirow{-3}{*}{{\cellcolor[HTML]{E2EFD9}}dynamisch} 
            & \cellcolor[HTML]{E2EFD9} Diskret & \cellcolor[HTML]{E2EFD9} \multirow{-3}{*}{Raum/Zeit}  \\ 
            \hhline{|---}
            \cellcolor[HTML]{E2EFD9} (Multi)-Agenten basiert &\multicolumn{2}{c}{} \\ 
            \hhline{|-~~}
        \end{tabular}
        \bigskip
    \end{table}
\end{document}

enter image description here

Using cals

Your tabular is much easier to build using cals.

\documentclass{article}
% General document formatting
\usepackage[margin=0.7in]{geometry}
\usepackage[parfill]{parskip}
\usepackage[utf8]{inputenc}
\usepackage{cals}

% Related to math
\usepackage{amsmath,amssymb,amsfonts,amsthm}
\usepackage[table,xcdraw]{xcolor}

\let\nc=\nullcell                                                  % Shortcuts
\let\sc=\spancontent

\definecolor{darkGreen}{HTML}{C0E5C6}
\definecolor{lightGreen}{HTML}{E2EFD9}


\begin{document}

\begin{calstable}

% Defining 3 column relativ to each other and relativ to the margins
\colwidths{{\dimexpr(\columnwidth/16*4)\relax}
            {\dimexpr(\columnwidth/16*3)\relax}
            {\dimexpr(\columnwidth/16*3)\relax}
            }
% The tabular fills 5/8 of the text area

% Set up the tabular
\makeatletter
\def\cals@framers@width{0.4pt}   % Outside frame horizontal rules
\def\cals@framecs@width{0.4pt}   % Outside frame horizontal rules, reduce
                                 % thickness if you find them too heavy
\cals@setpadding{Ag}
\cals@setcellprevdepth{Al}
\def\cals@cs@width{0.4pt}        % Inside rules, reduce if the rule is too heavy
\def\cals@rs@width{0.4pt}
\def\cals@bgcolor{}              % Define cals@bgcolor to empty

\def\green{\ifx\cals@bgcolor\empty      % Colour switch (on-off)
    \def\cals@bgcolor{darkGreen}
\else \def\cals@bgcolor{} \fi}

\def\lgreen{\ifx\cals@bgcolor\empty     % Colour switch (on-off)
    \def\cals@bgcolor{lightGreen}
\else \def\cals@bgcolor{} \fi}

\def\tb{\ifx\cals@borderT\relax     % Top border switch (off-on)
    \def\cals@borderT{0pt}
\else \let\cals@borderT\relax\fi}

\def\bb{\ifx\cals@borderB\relax     % Botton border switch (off-on)
    \def\cals@borderB{0pt}
\else \let\cals@borderB\relax\fi}

\def\rb{\ifx\cals@borderR\relax     % Right border switch (off-on)
    \def\cals@borderR{0pt}
\else \let\cals@borderR\relax\fi}

% R1 Body
\brow
    \green\alignC\cell{Modell-Überkategorien}\green
    \tb\rb\nc{lt}
    \nc{rt}\tb\rb
\erow
% R2 Body
\brow
    \cell{statisch}
    \rb\nc{l}
    \nc{r}\rb
\erow
% R3 Body
\brow
    \cell{zufällig (Monte-Carlo)}
    \rb\nc{lb}
    \nc{rb}\sc{}\rb
\erow
% R4 Body
\brow
    \lgreen\nc{lrt}
    \cell{Kontinuirlich}
    \nc{lrt}
\erow
% R5 Body
\brow
    \nc{lr}
    \cell{Hybrid}
    \nc{lr}
\erow
% R6 Body
\brow
    \nc{lrb}\sc{\vfil dynamisch}
    \cell{Diskret}
    \nc{lrb}\sc{\vfil Raum/Zeit}
\erow
% R7 Body
\brow
    \cell{(Multi)-Agenten basiert}\lgreen
    \rb\bb\nc{ltb}
    \nc{rtb}\sc{}\bb\rb
\erow
\makeatletter
\end{calstable}\par % \par needed to align the tabular

\end{document}

enter image description here

  • Wow awesome. Thanks a lot! – madibat Jun 5 at 15:33
1

Small modification of first example (+1) regarding use of colors in table in the nice Sveinung answer (for exercise)):

\documentclass{article}
% General document formatting
\usepackage[margin=0.7in]{geometry}
\usepackage[parfill]{parskip}
\usepackage[utf8]{inputenc}
\usepackage{multirow, hhline}

% Related to math
\usepackage{amsmath,amssymb,amsfonts,amsthm}
\usepackage[table,xcdraw]{xcolor}
\definecolor{col1}{HTML}{C0E5C6}    % <---
\definecolor{col2}{HTML}{E2EFD9}    % <---

\renewcommand{\arraystretch}{1.2}
\setlength{\extrarowheight}{1pt}

\begin{document}
    \begin{table}[!ht]
    \centering
\begin{tabular}{|c|c|c|}
    \hhline{-~~}
\cellcolor{col1}{Modell-Überkategorien} % <---
                        &   \multicolumn{2}{c}{}    \\
    \hhline{-~~}
statisch                &   \multicolumn{2}{c}{}    \\
    \hhline{-~~}
zufällig (Monte-Carlo)  &   \multicolumn{2}{c}{}    \\
    \hhline{*{3}{-}}
\rowcolor{col2} 
                        & Kontinuirlich &           \\  % <---
    \hhline{>{\arrayrulecolor{col2}}-%
            >{\arrayrulecolor{black}}-%
            >{\arrayrulecolor{col2}}-}
    \arrayrulecolor{black}
\rowcolor{col2} 
                        & Hybrid        &           \\
    \hhline{>{\arrayrulecolor{col2}}-%
            >{\arrayrulecolor{black}}-%
            >{\arrayrulecolor{col2}}-}
    \arrayrulecolor{black}
\rowcolor{col2}
\multirow{-3}{*}{dynamisch}
                        & Diskret       & \multirow{-3}{*}{Raum/Zeit}   \\
    \hhline{|---}
\cellcolor{col2} (Multi)-Agenten basiert
                        &   \multicolumn{2}{c}{}    \\
    \hhline{|-~~}
\end{tabular}
    \end{table}
\end{document}

Result is the same as in his answer.

  • Thank you @Zarko. I planned to clean up my code, but now there is no need for that :). – Sveinung Jun 5 at 17:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.