
Kann mir jemand sagen, wie ich eine Linie zeichnen kann, die durch einige der Spalten und Zeilen einer Tabelle verläuft, wie in diesem Beispiel?
zB eine Linie, die die Reihen a, b, c kreuzt
\documentclass{article}
\usepackage{float}
\begin{document}
\begin{table}[H]
\centering
\begin{tabular}{|c|c|c|}
\hline
a & b & c \\
\hline
d & e & f \\
\hline
h & i & j \\
\hline
\end{tabular}
\end{table}
\end{document}
Dank im Voraus.
Antwort1
Eine Möglichkeit ist die Verwendung von TikZ und tikzmark
.
\documentclass{article}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{table}[H]
\centering
\begin{tabular}{|c|c|c|}
\hline
\tikzmarknode{a}{a} & b & \tikzmarknode{c}{c} \\
\hline
d & e & f \\
\hline
h & i & j \\
\hline
\end{tabular}%
\begin{tikzpicture}[overlay,remember picture]
\draw[thick,red,-stealth] ([xshift=-1ex]a.west) -- ([xshift=1ex]c.east);
\end{tikzpicture}%
\end{table}
\end{document}
Beachten Sie, dass die Syntax von \tikzmarknode
lautet \tikzmarknode{<id>}{<content>}
, wobei id
ein Bezeichner und content
der Inhalt ist. Wenn Sie also 1
beispielsweise anstelle von ein möchten a
, können Sie denselben Bezeichner verwenden und nur das zweite Argument, , ändern \tikzmarknode{a}{1}
. Dann erscheint eine 1 in der Tabelle.
\documentclass{article}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{table}[H]
\centering
\begin{tabular}{|c|c|c|}
\hline
\tikzmarknode{a}{1} & 2 & \tikzmarknode{c}{3} \\
\hline
\tikzmarknode{goat}{d} & e & f \\
\hline
\tikzmarknode{duck}{h} & i & j \\
\hline
\end{tabular}%
\begin{tikzpicture}[overlay,remember picture]
\path[left color=blue,right color=red]
([xshift=-1ex,yshift=-0.3pt]a.west) rectangle ([xshift=1ex,yshift=0.3pt]c.east);
\draw[red,shorten >=-0.2ex,shorten <=-0.2ex] (goat.north) -- (duck.south);
\end{tikzpicture}%
\end{table}
\end{document}
Dieses Beispiel soll auch verdeutlichen, dass mit TikZ können Sie weit über monochrome Linien hinausgehen.
Antwort2
Mit nur grundlegenden Werkzeugen:
\documentclass{article}
\usepackage{float}
\usepackage[table, svgnames]{xcolor}
\usepackage{hhline, array}
\begin{document}
\begin{table}[H]
\centering\setlength{\extrarowheight}{1pt}
\begin{tabular}{|c|c|c|}
\hhline{|---|}
\noalign{\vskip \dimexpr1.5ex + 1pt-0.4pt\relax}
\hhline{>{\arrayrulecolor{Crimson}}--->{\arrayrulecolor{black}}|}
\noalign{\vskip\dimexpr-1.5ex- 1pt\relax}
a & b & c \\
\hhline{|---|}
d & e & f \\
\hhline{|---|}
h & i & j \\
\hhline{|---|}
\end{tabular}
\end{table}
\end{document}
Antwort3
Eine andere Möglichkeit hierfür ist die folgende
\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\begin{document}
\begin{center}
\begin{tikzpicture}
\foreach \x in {0,2,...,6} \draw[thick] (\x,0)--(\x,6);
\foreach \x in {0,2,...,6} \draw[thick] (0,\x)--(6,\x);
\node at (1.5,1.5) {$g$};
\node at (3.5,1.5) {$h$};
\node at (5.5,1.5) {$i$};
\node at (1.5,3.5) {$d$};
\node at (3.5,3.5) {$e$};
\node at (5.5,3.5) {$f$};
\node at (1.5,5.5) {$a$};
\node at (3.5,5.5) {$b$};
\node at (5.5,5.5) {$c$};
\color{magenta}
\draw[thick,-] (8,2.5)--(0,2.5);
\color{cyan}
\draw[thick,-] (5,6)--(5,0);
\color{green}
\draw[thick,->] (.5,0)--(.5,7);
\end{tikzpicture}
\end{center}
\end{document}
Anzeigen
HINWEIS. In diesem Fall verwende ich nicht die gleiche Umgebung table
wie Sie. Verwenden Sie dies als Alternative, um dasselbe Ergebnis anzuzeigen.
Ich habe dies getan, inspiriert von der Antwort von @JoséCarlosSantos in seiner Antwort auf meine FrageWie kann ich diese Pfeile und Zahlen in eine Tabelle einfügen?