Ich möchte 3 Bilder nebeneinander zeichnen.

Wie muss dazu die scope-Umgebung eingestellt werden, damit die die Graphen auf einer baseline (x-Achse) nebeneinander liegen?

alt text

Open in Online-Editor
\documentclass[border=5pt]{standalone}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
%\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}

\begin{scope}[name=Urbild]
\draw[->] (-0.5,0)--(0.5,0);
\draw[->] (0,-0.5)--(0,0.5) node[above]{Urbild};
\end{scope}

\begin{scope}[name=Pfeil, right of=A]
\node[red]{$\rightarrow$}; 
\end{scope}

\begin{scope}[right of=Pfeil, scale=0.35]
\draw[->] (-2,0)--(2,0);
\draw[->] (0,-2)--(0,2) node[above]{Bild};
\end{scope}

\end{tikzpicture}

\end{document}

gefragt 17 Dez '15, 09:02

cis's gravatar image

cis
5.4k860167
Akzeptiert: 68%

bearbeitet 07 Feb, 05:35

saputello's gravatar image

saputello
18.4k22352

xshift=<xdim> oder shift={(<xdim>,<ydim>)}.

(18 Dez '15, 03:53) Henri

Ja händisch gehts, klar. Ich wollte es irgendwie professionell machen - mit automatischer Ausrichtung.

(18 Dez '15, 05:27) cis

Mir ist nicht ganz klar, was Dein eigentliches Ziel ist. Selbst wenn man die Scopes wie Nodes nebeneinander platzieren und aneinander ausrichten könnte, wären die x-Achsen nicht auf einer Höhe, da sie sich nicht in der vertikalen Mitte der Teilzeichnungen befinden, die ja ebenfalls die Beschriftungen »Urbild« und »Bild« enthalten.

Prinzipiell ist es möglich für einen Scope mittels der Option local bounding box=<name> einen Node <name> zu definieren, den man für die spätere relative Positionierung weiterer Zeichungsteile verwenden kann. Laut Dokumentation verlangsamt die häufige Verwendung von local bounding box=<name> auch den Erstellungsprozess. Und AFAIK kann man diesen speziellen Node aber nicht mit einem anchor irgendwo positionieren. Deshalb müsste man die zweite Teilzeichnung zunächst in einer Box speichern, die man dann in einen normalen Node einfügen kann.

Das folgende Beispiel soll nur die Möglichkeiten zeigen. Die x-Achsen sind nur dann auf der gleichen Höhe, wenn sie sich in der vertikalen Mitte der Teilbilder befinden.

Open in Online-Editor
\documentclass[border=5pt]{standalone}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{positioning}

\newbox\mybox
\newcommand{\tikzbox}[2][\mybox]{%
  \sbox#1{\pgfinterruptpicture#2\endpgfinterruptpicture}}

\begin{document}
\begin{tikzpicture}[node distance=0pt]

\begin{scope}[local bounding box=Urbild]
\draw[->] (-.5,0)--(.5,0);
\draw[->] (0,-0.5)--(0,0.5);
\end{scope}
\node[above = of Urbild]{Urbild};

\node[red,right = of Urbild](pfeil){$\rightarrow$};

\tikzbox{\tikz[scale=.35,baseline=(O)]{
  \draw[->] (0,0)--(4,0)coordinate(O);
  \draw[->] (2,-2)--(2,2);
}}
\node[inner sep=0pt,right= of pfeil](bild){\usebox\mybox};
\node[above = of bild]{Bild};

\end{tikzpicture}
\end{document}

alt text

Dass der rote Pfeil scheinbar nach oben verschoben ist, liegt an dem Zeichen selbst. Das lässt sich ganz einfach über {\setlength\fboxsep{0pt}\fbox{$\rightarrow$}} nachvollziehen. Man erhält folgendes Ergebnis:

alt text

Es wäre damit vermutlich sinnvoller, den Pfeil auch einfach mit TikZ zeichnen zu lassen.

Zumindest bei dem von Dir angegebenen MWE würde ich die beiden Teilzeichnungen in separaten tikzpicture Umgebungen erstellen und bei beiden eine baseline festlegen. Damit lässt sich dann auch sicher stellen, dass die x-Achsen auf der gleichen Höhe liegen.

Open in Online-Editor
\documentclass[border=5pt]{standalone}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\tikz[baseline=(O)]{
  \draw[->] (-0.5,0)--(0.5,0)coordinate(O);
  \draw[->] (0,-0.5)--(0,0.5) node[above]{Urbild};
  \node[red,right=0pt of O]{$\rightarrow$};
}%
\tikz[baseline=(O),scale=.35]{
  \draw[->] (-2,0)--(2,0)coordinate(O);
  \draw[->] (0,-2)--(0,2) node[above]{Bild};
}
\end{document}
Permanenter link

beantwortet 18 Dez '15, 19:29

esdd's gravatar image

esdd
14.2k53251

bearbeitet 19 Dez '15, 02:39

saputello's gravatar image

saputello
18.4k22352

Mmh, dann scheint scope als Lösung auszufallen. Ich habe dazu hier -- http://tex.stackexchange.com/questions/144402/positioning-a-tikz-scope-relative-to-another-tikz-scope -- einen interessannten Beitrag gelesen, wenngleich dort auch mit shift nachkorrigiert wird.

Bei dem Pfeil bin ich mir grad nicht siucher, ob der Pfeil mapsto nicht sinnvoller wäre; den könnte man auch mit TikZ zeichnen, aber mir wäre das Operationszeichen lieber.

(19 Dez '15, 00:31) cis

@cis Die Idee hatte ich unabhängig von tex.sx auch, aber dann muss der Koordinatenursprung des zweiten Scopes genau an dem Punkt liegen, mit dem Du den Scope positionierst. In Deinem Fall dürften keine negativen x-Werte vorkommen, d.h. Du müsstest die zweite Teilzeichnung umschreiben ... Steht übrigens auch in einem der Kommentare unter Deinem Link. Deshalb habe ich das von vornherein verworfen. shift wird in dem Beispiel dagegen nur verwendet, um den Abstand zwischen den beiden Teilzeichnungen festzulegen.

(19 Dez '15, 06:55) esdd
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
×56
×10
×3

Frage gestellt: 17 Dez '15, 09:02

Frage wurde angeschaut: 2,540 Mal

Zuletzt aktualisiert: 07 Feb, 05:35