Tikz: Linie vom Seitenrand zeichnen

Tabellen und Grafiken erstellen und anordnen


Fenrix
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Sa 9. Mai 2020, 13:45

Tikz: Linie vom Seitenrand zeichnen

Beitrag von Fenrix »

Hallo zusammen,

ich habe folgende Folie in einer Präsentation:

\documentclass{beamer}
\usepackage{tikz}
\usetheme{metropolis}

\begin{document}
\begin{frame}{Test}
\begin{tikzpicture}
\draw[ultra thick] (0,0)--(\linewidth,0);
\draw[ultra thick] (0, 0.25) -- (0, -0.25) node[below]{$0$};
\draw[ultra thick] (1.5, 0.25) -- (1.5, -0.25) node[below]{$2B$};
\draw[ultra thick] (4, 0.25) -- (4, -0.25) node[below]{$3B-1$};
\draw[ultra thick] (\linewidth, 0.25) -- (\linewidth, -0.25) node[below]{$N$};
\draw[red, thick] (2.25, 0.125) -- (2.25, -0.125) node[below]{$m_{0}$};

\draw[blue, ->, thick]   (2.25,0) to[out=-45,in=-135] (4.25, -0.04);
\draw[blue, ->, thick]   (4.25,0) to[out=-45,in=-135] (6.25, -0.04);
\draw[blue, ->, thick]   (6.25,0) to[out=-45,in=-135] (8.25, -0.04);
\draw[blue, ->, thick]   (8.25,0) to[out=-45,in=-135] (10.25, -0.04);
\draw[blue, ->, thick]   (10.25,0) to[out=-45,in=-135] (12.25, -0.04);
\end{tikzpicture}
\end{frame}
\end{document}

Nun möchte ich einen neuen Pfeil zeichen, der praktisch vom Seitenrand aus kommt.
Die Koordinate (0,0) sollte an der gleichen Stelle bleiben, wie Sie aktuell angezeigt wird.

Sobald ich dann folgende Zeile einfüge:

\draw[blue, ->, thick]   (-1.75,0) to[out=-45,in=-135] (0.25, -0.04);

wird allerdings die komplette Achse verschoben.

Kann man das irgendwie bewerkstelligen, dass ich praktisch einen Pfeil vom linken Rand außerhalb des Bildes auf meine Achse laufen lasse?

Danke und viele Grüße


Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Tikz: Linie vom Seitenrand zeichnen

Beitrag von Bartman »

Auch ohne den Pfeil auf der linken Seite ragt Deine Zeichnung über den rechten Rand hinaus, wobei nur noch ein Teil des letzten Pfeils auf der Folie zu sehen ist.

Wenn Dich die unvollständige Anzeige der Pfeile auf der linken und rechten Seiten nicht stört, dann könntest Du mit dem Befehl \makebox und den TikZ-Optionen scale und transform shape arbeiten:

\documentclass{beamer}% lädt tikz
\usetheme{metropolis}
\usepackage{showframe}% zeigt das Seiten- bzw. Folienlayout

\begin{document}
\begin{frame}{Test}
    \makebox[.97\linewidth]{%
    \begin{tikzpicture}[scale=.97, transform shape]
    \draw[ultra thick, nodes={below=1mm}] 
        (0,0)--(\linewidth,0)
        (0, 0.25) -- (0, -0.25) node {$0$}
        (1.5, 0.25) -- (1.5, -0.25) node {$2B$}
        (4, 0.25) -- (4, -0.25) node {$3B-1$}
        (\linewidth, 0.25) -- (\linewidth, -0.25) node {$N$}
    ;
    \draw[red, thick] (2.25, 0.125) -- (2.25, -0.125) node[below]{$m_0$};
%
    \draw [->, blue, thick]
        (-1.75,0) to[out=-45,in=-135] (0.25, -0.04)
    ;
    \foreach \x [remember=\x as \lastx (initially 2.25)] in {4.25,6.25,...,12.25}
        \draw [->, blue, thick]
            (\lastx,0) to[out=-45,in=-135] (\x,-0.04)
        ;
    \end{tikzpicture}}
\end{frame}
\end{document}

Fenrix
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Sa 9. Mai 2020, 13:45

Re: Tikz: Linie vom Seitenrand zeichnen

Beitrag von Fenrix »

Genau, die Pfeile können ruhig über den Rand hinausgehen, da das ganze eine Modulo Operation darstellen soll. Also man fällt am rechten Rand raus und kommt dann links wieder rein.

Danke für die schnelle Hilfe :)


Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Tikz: Linie vom Seitenrand zeichnen

Beitrag von Bartman »

Wenn das so ist, dann kann man sich den Befehl für den linken Pfeil sparen und alle Pfeile in der Schleife zeichnen lassen:

\documentclass{beamer}% lädt tikz
\usetheme{metropolis}
%\usepackage{showframe}% zeigt das Seiten- bzw. Folienlayout

\usetikzlibrary{arrows.meta}

\begin{document}
\begin{frame}{Test}
    \makebox[.97\linewidth]{%
    \begin{tikzpicture}[scale=.97, transform shape, >=Stealth]
    \draw[ultra thick] (0,0)--(\linewidth,0);
%
    \foreach \x/\label in {0/0,1.5/2B,4/3B-1,\linewidth/N}
        \draw[ultra thick] 
            (\x, 0.25) -- (\x, -0.25) node [below=1mm] {$\label$}
        ;
    \draw[red, thick] (2.25, 0.125) -- (2.25, -0.125) node[below]{$m_0$};
%
    \foreach \x [remember=\x as \lastx (initially -2)] in {0,2,...,12}{
        \unless\ifnum\x=2
            \draw [->, blue, thick]
                (\lastx+0.25,0) to[out=-45,in=-135] (\x+0.25,-0.04)
            ;
        \fi
    }
    \end{tikzpicture}}
\end{frame}
\end{document}
Pfeil-vom-Seitenrand-zeichnen.png

Fenrix
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Sa 9. Mai 2020, 13:45

Re: Tikz: Linie vom Seitenrand zeichnen

Beitrag von Fenrix »

Perfekt, danke dir. Jetzt sieht der Code auch noch schön aus :)

Man wundert sich was mit Latex alles geht, errinert ja fast an eine vollständige Programmiersprache :o


Antworten