Ich möchte an die folgende Tabelle

Open in Online-Editor
\begin{table*}
    \centering
        \begin{tabular}[t]{|l|r|}
            \toprule[2pt]
            100 km & 6,8 l \tabularnewline
            \midrule
            1 km   & 0,068 l \tabularnewline
            \midrule
            35 km  & 2,38 l \tabularnewline
            \bottomrule[2pt]
        \end{tabular}
\end{table*}

rechts und links Pfeile mit den zugehörigen Rechenoperationen anbringen. Das Paket Tikz habe ich eingebunden. Kann mir jemand helfen, wie ich die Anfangs- und Endpunkte jeweils an den Rand der Zeilenmitte bekomme?

gefragt 13 Jun, 07:33

AnneTeek's gravatar image

AnneTeek
35
Akzeptiert: 100%

bearbeitet 07 Jul, 05:32

saputello's gravatar image

saputello
18.4k22352

1

Dein Code ist unvollständig und so nicht lauffähig. Bitte immer vollständige Minimalbeispiele posten.

(13 Jun, 08:19) Henri

Sorry, bin neu hier...

(14 Jun, 02:49) AnneTeek

Für TikZ gibt es die tikzmark Bibliothek, die es möglich macht »Labels« zu platzieren und diese später in einem tikzpicture zu referenzieren. Zusammen mit der overlay-Option kann man so über das Dokment malen.

Open in Online-Editor
\documentclass{article}
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{table*}
  \centering
  \begin{tabular}[t]{|l|r|}
    \toprule[2pt]
    \tikzmark{l-a}100 km & 6,8 l\tikzmark{r-a}\tabularnewline
    \midrule
    \tikzmark{l-b}1 km   & 0,068 l\tikzmark{r-b}\tabularnewline
    \midrule
    \tikzmark{l-c}35 km  & 2,38 l\tikzmark{r-c}\tabularnewline
    \bottomrule[2pt]
  \end{tabular}
  \begin{tikzpicture}[remember picture,overlay,thick,red,shorten <=1pt,shorten >=1pt]
    \begin{scope}[c/.style={shift={(-\tabcolsep,\the\dimexpr\fontdimen22\textfont2\relax)}}]
      \draw[->] ([c]pic cs:l-a) to[bend right] node[left] {$\div 100$} ([c]pic cs:l-b);
      \draw[->] ([c]pic cs:l-b) to[bend right] node[left] {$\times 35$} ([c]pic cs:l-c);
    \end{scope}
    \begin{scope}[c/.style={shift={(\tabcolsep,\the\dimexpr\fontdimen22\textfont2\relax)}}]
      \draw[->] ([c]pic cs:r-a) to[bend left] node[right] {$\div 100$} ([c]pic cs:r-b);
      \draw[->] ([c]pic cs:r-b) to[bend left] node[right] {$\times 35$} ([c]pic cs:r-c);
    \end{scope}
  \end{tikzpicture}
\end{table*}
\end{document}

alt text

Ein wenig Magie steckt dann noch im Verbinden der Punkte. Im optionalen Argument des tikzpicture wird nämlich noch der Style c definiert

Open in Online-Editor
c/.style={shift={(-\tabcolsep,\the\dimexpr\fontdimen22\textfont2\relax)}}

welcher dann auf die Koordinaten angewendet wird, z.B. ([c]pic cs:l-a). Beachte das [c]. Der Style wendet den shift auf die angegebene Koordinate an. Im folgenden Bild ist der Shift visualisiert.

alt text

Der rote Punkt ist die nackte Koordinate pic cs:l-a. Um auf die Höhe der Zeilenmitte (math axis) zu gelangen verschieben wir den Punkt in y-Richtung um \the\dimexpr\fontdimen22\textfont2\relax. Das ist die Höhe der von der Schrift vorgegebenen math axis. Der resultierende Punkt ist in grün markiert. Nun soll die Linie aber am Rand der Tabelle und nicht neben dem Text beginnen. Dazu müssen wir den Platz kompensieren, der zwischen vertikaler Linie und Text gelassen wird. Innerhalb von tabular ist dieser standardmäßig durch \tabcolsep gegeben. Auf der linken Seite der Tabelle verschieben wir also um -\tabcolsep in x-Richtung (blauer Punkt), auf der rechten Seite um +\tabcolsep.

Permanenter link

beantwortet 13 Jun, 07:55

Henri's gravatar image

Henri
10.0k31730

bearbeitet 14 Jun, 10:10

1000 Dank! Genau so habe ich es mir vorgestellt. :-)

(14 Jun, 02:32) AnneTeek
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×185
×27

Frage gestellt: 13 Jun, 07:33

Frage wurde angeschaut: 794 Mal

Zuletzt aktualisiert: 07 Jul, 05:32