Я хотел написать код для этой конкретной таблицы в Latex (изображение чуть выше). Я хочу определить ширину границ таблицы, цвет границ таблицы, а также пустое пространство между двумя ячейками. Я также хотел, чтобы текст был выровнен по горизонтали и вертикали.
Я попробовал что-то вроде этого:
\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}
Я отредактировал свой код, он работает, но у меня есть предупреждение, которое я не могу отключить: «Вы использовали команду \hline в неправильном месте, вероятно, за пределами таблицы. Если команда \hline написана внутри таблицы, попробуйте включить \ перед ней».
Похоже, я не могу изменить цвет границы внутри таблицы.
решение1
Вам не обязательно нужен стол для этого. Вы можете разместить два ящика горизонтально рядом друг с другом с пустым пространством вашего размера:
\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}
В качестве альтернативы вы можете использоватьтикзи иметь несколько дополнительных опций, например, закругленные углы. Однако вам нужно будет изучить tikz
, который является огромным пакетом с дополнительными модулями и может быть немного пугающим поначалу.
\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}
решение2
В качестве обходного пути вы можете использовать {NiceTabular}
of nicematrix
для маленькой таблицы во второй ячейке вашей основной таблицы. Среда {NiceTabular}
имеет свой собственный ключ для цветов правил.
\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}
Вам нужно несколько компиляций (т.к. nicematrix
внутри используются узлы PGF/Tikz).
решение3
Вот мое решение с использованием hhline и 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}
Использованная литература:
Руководство/руководство Colortbl
решение4
Решение tabularray
отсутствует:
\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}