¿Hay alguna manera de hacer las siguientes dos líneas horizontales en el fondo de una celda?La celda debe contener una línea horizontal azul o verde en el medio. O la tercera opción son ambas.
A continuación se muestra una tabla simplificada que me gustaría que se aplicara, pero de alguna manera no sé cómo hacerlo.
\documentclass[landscape,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[czech, english]{babel}
%How to make background in tabular cell (vertical lines)?
%USEPACKAGE
\usepackage{tikz}
\usepackage{tcolorbox}
\usepackage{color}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{hhline}
%--------------------
\usepackage{geometry}
\geometry{
a4paper,
total={210mm,297mm},
left=10mm,
right=10mm,
top=6mm,
bottom=2mm,
bindingoffset=0mm
}
\begin{document}
\pagestyle{empty}
\thispagestyle{empty}
\shorthandoff{-}
\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{Tabular XY} \\
\hline\hline
\multirow{2}{*}{1} & \parbox[c][1cm][c]{2cm}{\centering \scriptsize Lorem ipsum dolor sit amet} & \parbox[c][1cm][c]{1cm}{\centering \scriptsize Lorem ipsum} & Y \\
\hhline{*{1}{|~}*{2}{|-}|-|}
& \parbox[c][1cm][c]{2cm}{\centering \scriptsize Lorem ipsum dolor sit amet} & \parbox[c][1cm][c]{1cm}{\centering \scriptsize Lorem ipsum} & X \\
\hline
\end{tabular}
\end{document}
Respuesta1
\documentclass[landscape,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[czech, english]{babel}
%How to make background in tabular cell (vertical lines)?
%USEPACKAGE
\usepackage{tikz}
\usepackage{tcolorbox}
\usepackage{color}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{hhline}
%--------------------
\usepackage{geometry}
\geometry{
a4paper,
total={210mm,297mm},
left=10mm,
right=10mm,
top=6mm,
bottom=2mm,
bindingoffset=0mm
}
\usepackage{colortbl}
\begin{document}
\pagestyle{empty}
\thispagestyle{empty}
\shorthandoff{-}
\newcommand\R[1]{\mbox{}\hspace{\dimexpr#1-2.5pt}\textcolor{red}{\vrule width 5pt}\hspace{\dimexpr-#1-2.5pt}\mbox{}}
\newcommand\G[1]{\mbox{}\hspace{\dimexpr#1-2.5pt}\textcolor{green}{\vrule width 5pt}\hspace{\dimexpr-#1-2.5pt}\mbox{}}
\newcommand\RG[1]{\mbox{}\hspace{\dimexpr#1-7.5pt}\textcolor{red}{\vrule width 5pt}%
\hspace{5pt}%
\textcolor{green}{\vrule width 5pt}%
\hspace{\dimexpr-#1-7.5pt}\mbox{}}
\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{Tabular XY} \\
\hline\hline
\multirow{2}{*}{1} &\R{1cm} \parbox[c][1cm][c]{2cm}{\centering \scriptsize Lorem ipsum dolor sit amet} & \G{.5cm}\parbox[c][1cm][c]{1cm}{\centering \scriptsize Lorem ipsum} & Y \\
\hhline{*{1}{|~}*{2}{|-}|-|}
& \RG{1cm}\parbox[c][1cm][c]{2cm}{\centering \scriptsize Lorem ipsum dolor sit amet} & \parbox[c][1cm][c]{1cm}{\centering \scriptsize Lorem ipsum} & X \\
\hline
\end{tabular}
\end{document}
Respuesta2
Aquí hay una solución con {NiceTabular}
of nicematrix
. Ese entorno es similar al entorno clásico {tabular}
(de array
), pero también crea nodos PGF/Tikz debajo de las celdas, filas y columnas.
Luego, es posible \CodeBefore
usar esos nodos con Tikz para dibujar cualquier regla que desee.
\documentclass{article}
\usepackage[table]{xcolor}
\doublerulesepcolor{white}
\usepackage{nicematrix,tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{NiceTabular}{cm[c]{25mm}m[c]{15mm}c}[vlines,cell-space-limits=3pt]
\CodeBefore
\begin{tikzpicture} [line width = 2mm]
\draw [green] (2-|2.5) -- (3-|2.5) ;
\draw [blue!50] (2-|3.5) -- (3-|3.5) ;
% now, the cell with both rules
\draw [green] ($(3-|2)!0.4!(3-|3)$) -- ($(4-|2)!0.4!(4-|3)$) ;
\draw [blue!50] ($(3-|2)!0.6!(3-|3)$) -- ($(4-|2)!0.6!(4-|3)$) ;
\end{tikzpicture}
\Body
\Hline
\Block{1-*}{Tabular XY} \\
\Hline\Hline
\Block{2-1}{1} & Lorem ipsum dolor sit amet & Lorem ipsum & Y \\
\Hline
& Lorem ipsum dolor sit amet & Lorem ipsum & X \\
\Hline
\end{NiceTabular}
\end{document}
Necesita varias compilaciones (debido a los nodos PGF/Tikz).