Benutzerdefinierter Latextisch mit verschiedenen Rahmenfarben

Benutzerdefinierter Latextisch mit verschiedenen Rahmenfarben

Ich wollte den Code für diese spezielle Tabelle in Latex schreiben (das Bild direkt darüber). Ich möchte die Breite der Tabellenränder, die Farbe der Tabellenränder und auch den Leerraum zwischen den beiden Zellen definieren. Außerdem wollte ich, dass der Text horizontal und vertikal zentriert ist.

Bildbeschreibung hier eingeben

Ich habe so etwas versucht:

\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}

Ich habe meinen Code bearbeitet, er funktioniert, aber ich habe eine Warnung, die ich nicht unterdrücken kann: „Sie haben einen \hline-Befehl an der falschen Stelle verwendet, wahrscheinlich außerhalb einer Tabelle. Wenn der \hline-Befehl innerhalb einer Tabelle geschrieben ist, versuchen Sie, davor \ einzufügen.“

Es scheint, dass ich die Rahmenfarbe innerhalb einer Tabelle nicht ändern kann.

Antwort1

Du brauchst dafür nicht unbedingt eine Tabelle. Du kannst auch zwei Kästchen waagerecht nebeneinander platzieren und dabei einen Leerraum deiner Größe lassen:

\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}

Bildbeschreibung hier eingeben


Alternativ können Sie verwendentikzund haben ein paar weitere Optionen, zum Beispiel abgerundete Ecken. Sie müssen jedoch lernen tikz, dass es sich um ein riesiges Paket mit zusätzlichen Modulen handelt und anfangs vielleicht ein wenig beängstigend sein kann.

\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}

Bildbeschreibung hier eingeben

Antwort2

Als Workaround können Sie für die kleine Tabelle in der zweiten Zelle Ihrer Haupttabelle of verwenden. Die Umgebung {NiceTabular}hat einen eigenen Schlüssel für die Farben der Regeln.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}

Sie benötigen mehrere Kompilierungen (da nicematrixim Hintergrund PGF/Tikz-Knoten verwendet werden).

Ausgabe des obigen Codes

Antwort3

Hier ist meine Lösung mit hhline und 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}


Hier ist das Ergebnis. Bildbeschreibung hier eingeben

Verweise:

Colortbl Handbuch/Anleitung

Hhline Handbuch/Anleitung

Wie zentriert man Spaltenwerte in einer Tabelle?

Antwort4

Eine tabularrayLösung fehlt:

\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}

Bildbeschreibung hier eingeben

verwandte Informationen