Hallo zusammen. Ich hätte in der folgenden Grafik anstatt den normalen Pfeilen gerne Abbildungspfeile, also quasi Pfeile die einem "mapsto" entsprechen. Ist dies Irgendwie möglich? Viele Grüße, Christian

Open in Online-Editor
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{amsfonts}
\usepackage{amssymb}
\newcommand\punkte[2][]{%
  \foreach \p in {#2}
    \node[draw,fill,circle,red,minimum size=2pt,inner sep=0pt,#1]at\p{};
}

\usetikzlibrary{positioning,arrows}
\tikzset{
  state/.style={circle,draw,minimum size=6ex},
  arrow/.style={-latex}}

\usetikzlibrary{hobby}
\begin{document}
\begin{tikzpicture}[scale=0.8]
        \draw (0,0) ellipse (30pt and 10pt)node[anchor=east]{$y$};
        \draw (0,2) ellipse (30pt and 10pt)node[anchor=east]{$x_i$};
        \draw (0,4) ellipse (30pt and 10pt)node[anchor=east]{$x_j$};
        \node at (-1.5,2){$U_i$};
        \node at (-1.5,4){$U_j$};
        \draw [arrow, bend left](1.2,2) to (1.2,0);
        \draw [arrow, bend left](1.2,4) to (1.4,0);
        \punkte{(0,0),(0,2),(0,4)};
        \end{tikzpicture}
    \end{document}

gefragt 17 Jan '15, 08:06

Chris3148's gravatar image

Chris3148
161512
Akzeptiert: 100%

bearbeitet 07 Feb, 04:52

saputello's gravatar image

saputello
18.4k22352

1

utf8x solltest Du übrigens nur verwenden, wenn Du es unbedingt brauchst. Für westliche Sprachen genügt normalerweise utf8. utf8x macht mit einigen Paketen nämlich Probleme.

(21 Jan '15, 11:55) saputello

Hallo Christian,

meinst du so:

Open in writeLaTeX
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{amsfonts}
\usepackage{amssymb}
\newcommand\punkte[2][]{%
  \foreach \p in {#2}
    \node[draw,fill,circle,red,minimum size=2pt,inner sep=0pt,#1]at\p{};
}

\usetikzlibrary{positioning,arrows}
\tikzset{
  state/.style={circle,draw,minimum size=6ex},
  arrow/.style={|-latex}}

\usetikzlibrary{hobby}
\begin{document}
  \begin{tikzpicture}[scale=0.8]
    \draw (0,0) ellipse (30pt and 10pt)node[anchor=east]{$y$};
    \draw (0,2) ellipse (30pt and 10pt)node[anchor=east]{$x_i$};
    \draw (0,4) ellipse (30pt and 10pt)node[anchor=east]{$x_j$};
    \node at (-1.5,2){$U_i$};
    \node at (-1.5,4){$U_j$};
    \draw [arrow, bend left](1.2,2) to (1.2,0);
    \draw [arrow, bend left](1.2,4) to (1.4,0);
    \punkte{(0,0),(0,2),(0,4)};
  \end{tikzpicture}
\end{document}

Ich hab arrow/.style={-latex}} auf arrow/.style={|-latex}} geändert.

Die arrows Library scheint übrigens veraltet zu sein. Man benützt nun arrows.meta

Gruß Tom

Permanenter link

beantwortet 17 Jan '15, 08:33

tom75's gravatar image

tom75
1.9k1545

Ja, genauso habe ich mir das vorgestellt. Ich danke euch beiden vielmals. Und auch nochmal danke für die Tips bzgl. des Codes. Ich bin noch nicht ganz so vertraut damit und sowas bringt einen immer weiter.

(21 Jan '15, 11:19) Chris3148

Die gewünschte Pfeilform kannst Du, wie schon @tom75 geschrieben hat, mit |-latex zeichnen lassen und das sogar ganz ohne irgendeine Pfeilbibliothek zu laden. Erst wenn Du die Pfeile weiter anpassen möchtest, brauchst Du die arrows.meta Bibliothek.

In Deinem Code fällt mir aber vor allem auf, dass Du die Koordinaten für die Beschriftung und die Pfeile absolut angibst. Du könntest auch ellipse Nodes verwenden und diese dann beschriften und verbinden lassen. Ein leicht vergrößerter outer sep sorgt dafür, dass die Pfeile etwas Abstand zu den Nodes haben. Wenn Du dann noch \foreach Schleifen verwendest, musst Du die verschiedenen y Koordinaten sogar nur einmal eingeben. Außerdem würde ich den Wert für bend left etwas vergrößern.

Open in writeLaTeX
\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}% für Ellipsen
\tikzset{
  arrow/.style={|-latex},
  myellipse/.style={ellipse,draw,
    minimum width=60pt, minimum height=20pt,
    inner sep=0pt,outer sep=3pt}
}
\newcommand\punkte[2][]{%
  \foreach \p in {#2}
    \node[draw,fill,circle,red,minimum size=2pt,inner sep=0pt,#1]at\p{};
}

\begin{document}
\begin{tikzpicture}[scale=0.8]
  \foreach[count=\i] \y/\t/\b in {0/y/, 2/x_i/U_i, 4/x_j/U_j}{
      \path(0,\y)
        node(e\i)[myellipse,transform shape,label=left:$\b$]{} 
        node[anchor=east]{$\t$};
      \punkte{(0,\y)}
    }
  \foreach \i/\v in {2/3pt,3/-3pt}
    \draw [arrow, bend left=60](e\i.east) to ([yshift=\v]e1.east);
\end{tikzpicture}
\end{document}

alt text

Oder man verwendet beim Zeichnen der Pfeile out=0,in=0 statt bend left:

Open in writeLaTeX
\foreach \i/\v in {2/3pt,3/-3pt}
  \draw [arrow, out=0,in=0](e\i.east) to ([yshift=\v]e1.east);

alt text

Permanenter link

beantwortet 17 Jan '15, 09:15

esdd's gravatar image

esdd
14.2k53251

bearbeitet 17 Jan '15, 20:17

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
×27
×6

Frage gestellt: 17 Jan '15, 08:06

Frage wurde angeschaut: 3,504 Mal

Zuletzt aktualisiert: 07 Feb, 04:52