Wie zeichnet man eine Linie, die durch die Zeilen und Spalten einer Tabelle verläuft?

Wie zeichnet man eine Linie, die durch die Zeilen und Spalten einer Tabelle verläuft?

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}

Bildbeschreibung hier eingeben

Beachten Sie, dass die Syntax von \tikzmarknodelautet \tikzmarknode{<id>}{<content>}, wobei idein Bezeichner und contentder Inhalt ist. Wenn Sie also 1beispielsweise 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}

Bildbeschreibung hier eingeben

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} 

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben

HINWEIS. In diesem Fall verwende ich nicht die gleiche Umgebung tablewie 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?

verwandte Informationen