Quería escribir el código para esta tabla específica en Latex (la imagen de arriba). Quiero definir el ancho de los bordes de la tabla, el color de los bordes de la tabla y también el espacio en blanco entre las dos celdas. También quería que el texto estuviera centrado horizontal y verticalmente.
Intenté algo como esto:
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{tabularx, graphicx}
\definecolor{green}{RGB}{0,255,0}
\definecolor{blue}{RGB}{0,0,255}
\begin{document}
\setlength{\arrayrulewidth}{1mm}
\renewcommand{\arraystretch}{2}
\noindent
\begin{table}[h!]
\centering
\begin{tabular}{cc}
\arrayrulecolor{green}
\begin{tabular}{|>{\centering\arraybackslash}m{5cm}|}
\hline
\color{green} GREEN \\
\hline
\end{tabular}
&
\arrayrulecolor{blue}
\begin{tabular}{|>{\centering\arraybackslash}m{5cm}|}
\hline
\color{blue} BLUE \\
\hline
\end{tabular}
\end{tabular}
\end{table}
\end{document}
Edité mi código, funciona, pero tengo una advertencia que no puedo suprimir: "Has utilizado un comando \hline en el lugar equivocado, probablemente fuera de una tabla. Si el comando \hline está escrito dentro de una tabla, intenta incluyendo \ antes de él."
Parece que no puedo cambiar el color del borde dentro de una tabla.
Respuesta1
No necesariamente necesitarías una mesa para esto. Podrías colocar dos cuadros horizontalmente uno al lado del otro con un espacio en blanco de tu tamaño:
\documentclass{article}
\usepackage[svgnames]{xcolor}
\begin{document}
{%
\centering
\setlength\fboxrule{1mm} % Line width
\setlength\fboxsep{6pt} % Padding
\fcolorbox{Green}{Green!5}{% or white instead of the tint Green!5
\parbox{4cm}{\centering\textcolor{Green}{GREEN}}}%
\hspace{2em}%A
\fcolorbox{Blue}{Blue!5}{%
\parbox{4cm}{\centering\textcolor{Blue}{BLUE}}}
\par}
\end{document}
Alternativamente, podrías usartikzy tener algunas opciones más, por ejemplo esquinas redondeadas. Sin embargo, necesitarás aprender tikz
, que es un paquete enorme con módulos adicionales y que puede dar un poco de miedo al principio.
\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{positioning}
\newcommand\boxtext{Sample sample sample sample sample sample sample}
\tikzset{
box/.style = {
draw,
line width = 1mm,
color=#1, fill=#1!5,
align=center, text width=4cm, font=\normalfont,
inner sep=6pt+1mm, outer sep=0pt,
rounded corners,
},
}
\begin{document}
{%
\centering
\tikz[node distance = 2em] {
\node (G) [box=Green] {\boxtext};
\node (B) [box=Blue, right=of G] {\boxtext};}
\par}
\end{document}
Respuesta2
Como solución alternativa, puede utilizar {NiceTabular}
para nicematrix
la tabla pequeña en la segunda celda de la tabla principal. El entorno {NiceTabular}
tiene su propia clave para los colores de las reglas.
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{tabularx, graphicx}
\usepackage{nicematrix}
\definecolor{green}{RGB}{0,255,0}
\definecolor{blue}{RGB}{0,0,255}
\begin{document}
\setlength{\arrayrulewidth}{1mm}
\renewcommand{\arraystretch}{2}
\noindent
\begin{table}[h!]
\centering
\begin{tabular}{cc}
\arrayrulecolor{green}
\begin{tabular}{|>{\centering\arraybackslash}m{5cm}|}
\hline
\color{green} GREEN \\
\hline
\end{tabular}
&
\begin{NiceTabular}{|>{\centering\arraybackslash}m{5cm}|}[rules/color=blue]
\hline
\color{blue} BLUE \\
\hline
\end{NiceTabular}
\end{tabular}
\end{table}
\end{document}
Necesita varias compilaciones (porque nicematrix
utiliza nodos PGF/Tikz bajo el capó).
Respuesta3
Aquí está mi solución usando hhline y colortbl.
\documentclass{article}
\usepackage{hhline,colortbl}
%New column type so that text is centered
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
%Custom colors if needed
\definecolor{green}{RGB}{0,255,0}
\definecolor{blue}{RGB}{0,0,255}
\begin{document}
\setlength\arrayrulewidth{2pt} % thickness of table lines
\renewcommand{\arraystretch}{2} % horizontal spacing
%create a new hline called myhline with the colors needed
\newcommand\myhline[1]{%
\hhline{%
>{\arrayrulecolor {green}}%
#1|-% solid green colored line
>{}%
#1|~% no line
>{\arrayrulecolor{blue}}%
|-#1% solid blue colored line
}}
% start array
\begin{tabular}{
!{\color{green}\vrule width 2pt } % vertical line color, line width
M{5cm} % custom column type, column width
!{\color{green}\vrule width 2pt}
M{1cm}
!{\color{blue}\vrule width 2pt}
M{5cm}
!{\color{blue}\vrule width 2pt}
}
\myhline{}% Draw custom line
\color{green} GREEN& &\color{blue} BLUE\\
\myhline{}% Draw custom line
\end{tabular}
\end{document}
Referencias:
Respuesta4
tabularray
Falta una solución:
\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{table}[h!]
\centering
\begin{tblr}{colspec={Q[c,m,5cm, fg=green]cQ[c,m,5cm, fg=blue]},
hline{1-2}={1}{green, wd=1mm},
vline{1-2}={green, wd=1mm},
hline{1-2}={3}{blue, wd=1mm},
vline{3-4}={blue, wd=1mm},
rows={ht=1cm},stretch=0
}
GREEN && BLUE \\
\end{tblr}
\end{table}
\end{document}