Eu queria escrever o código dessa tabela específica em Latex (a imagem logo acima). Quero definir a largura das bordas da tabela, a cor das bordas da tabela e também o espaço em branco entre as duas células. Eu também queria que o texto fosse centralizado horizontal e verticalmente.
Eu tentei algo assim:
\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}
Editei meu código, funciona, mas tenho um aviso que não consigo suprimir: "Você usou um comando \hline no lugar errado, provavelmente fora de uma tabela. Se o comando \hline estiver escrito dentro de uma tabela, tente incluindo \ antes dele."
Parece que não consigo mudar a cor da borda dentro de uma mesa.
Responder1
Você não precisaria necessariamente de uma mesa para isso. Você pode colocar duas caixas horizontalmente uma ao lado da outra com um espaço em branco do seu tamanho:
\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, você poderia usartikze tem mais algumas opções, por exemplo cantos arredondados. No entanto, você precisaria aprender tikz
, que é um pacote enorme com módulos extras e pode ser um pouco assustador no início.
\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}
Responder2
Como solução alternativa, você pode usar {NiceTabular}
para nicematrix
a tabela pequena na segunda célula da tabela principal. O ambiente {NiceTabular}
possui sua própria chave para as cores das regras.
\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}
Você precisa de várias compilações (porque nicematrix
usa nós PGF/Tikz nos bastidores).
Responder3
Aqui está minha solução usando hhline e 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}
Referências:
Responder4
tabularray
Falta uma solução:
\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}