Hallo,

Hier meine abschließende Frage betreffend Scopes/Nodes: Ich möchte jetzt das Tikz Bild das ich gezeichnet habe mit Hilfe dem \node - Befehl positionieren. Ich habe momentan diesen Teil für die manuelle untere linke Punktsuche auskommentiert.

Open in Online-Editor
%\begin{scope}[remember picture,overlay,
%shift={({-\paperheight+1in+\topmargin+\headheight+\headsep+\linewidth},{-\paperwidth+1in+\oddsidemargin+\textheight})},
%xshift=0cm,yshift=0cm, 
%line width=1pt,description/.style={
%fill=gray, 
%opacity=0.3,  
%text opacity=1 
%}
%]

Momentan postioniere ich ausgehend vom Image mit einem x/y shift von 5cm.

Ich möchte jetzt aber meine Zeichnung irgendwie mit Hilfe des \node Befehl (refereniziert auf das Zeichenfeld -> A4 Seite nicht auf das Image) positionieren. Wie könnte ich das lösen? Ich verspreche euch das ist die letzte Frage zu diesem Thema. Sorry und Danke.

Open in Online-Editor
\documentclass[a4paper,12pt,landscape]{article}
\usepackage{tikz}
\usepackage[landscape]{geometry}
\begin{document}
%\begin{landscape}  
\begin{tikzpicture}
\node[anchor=south west,inner sep=0,scale=1] (Bild) at (0cm,0.368cm)
{\includegraphics[width=23cm]{example-image}};

\begin{scope}[
x=23.02cm,y=16.02cm,
  description/.style={
  fill=white, 
  fill opacity=0.4,  
  text opacity=1 
  }
  ]
\node[description,below left] at (1,1) {  % above/below left/right at 0=unten, 0=links
% %----------------
% %Freien Verfügung
};
\end{scope}

\begin{scope}[ 
xshift=5cm,yshift=5cm, 
opacity=1,
description/.style={
fill=green,
fill opacity=1,
text opacity=1
}
]

%\begin{scope}[remember picture,overlay,
%shift={({-\paperheight+1in+\topmargin+\headheight+\headsep+\linewidth},{-\paperwidth+1in+\oddsidemargin+\textheight})},
%xshift=0cm,yshift=0cm, 
%line width=1pt,description/.style={
%fill=gray, 
%opacity=0.3,  
%text opacity=1 
%}
%]

\fill[green](-0.7,0.7)--(-1.1243,0.7)--(-0.7,0.7)--(-0.7,1.1243)--(-0.7,1.1243)--(-1.1243,0.7);
\draw[fill=green](0.7,0.7)--(0.8414,0.7)--(0.7,0.7)--(0.7,0.8414)--(0.7,0.8414)--(0.8414,0.7);
\draw[dash pattern=on 5.5mm off 2mm on .5mm off 2mm, -,line width=0.5pt]( 0,0)--(-4,0);
\draw[dash pattern=on 5.5mm off 2mm on .5mm off 2mm, -,line width=0.5pt]( 0,0)--(0,4);
\draw[dash pattern=on 5.5mm off 2mm on .5mm off 2mm, -,line width=0.5pt]( 0,0)--(4,0);
\draw(0,-0.7)--(-4,-0.7);
\draw(0,-0.7)--(0,0.7);
\draw(0,0.7)--(-4,0.7);
\draw(-0.7,0)--(-0.7,4);
\draw(-0.7,0)--(0.7,0);
\draw(0.7,0)--(0.7,4);
\draw(0,0.7)--(4,0.7);
\draw(0,0.7)--(0,-0.7);
\draw(0,-0.7)--(4,-0.7);
\fill[red]  (-0.9243,0.7)circle (0.06cm);
\fill[red]  (-0.7,0.9243)circle (0.06cm);
\fill[red]  (0.7,2.0414)circle (0.06cm);
\fill[red]  (2.0414,0.7)circle (0.06cm);
\draw[red](-0.9243,0.7)--(-0.9243,1.2);
\node[rotate=0,red] at (-1.1243,1.4){0};
\draw[red](-0.7,0.9243)--(-1.2,0.9243);
\node[rotate=0,red] at (-1.4,1.1243){1};
\draw[red](0.7,2.0414)--(1.2,2.0414);
\node[rotate=0,red] at (1.4,2.2414){2};
\draw[red](2.0414,0.7)--(2.0414,1.2);
\node[rotate=0,red] at (2.2414,1.4){3};
\draw[->,blue,line width=1.5pt]( 0,0)--(0,3)node[left]{$z$};
\draw[->,blue,line width=1.5pt]( 0,0)--(-3,0)node[above]{$y$};
\end{scope}
\end{tikzpicture}
\end{document}

Update: Repost: http://texwelt.de/wissen/fragen/13625/richtige-verwendung-des-node-befehls

Hallo,

Ich habe es mir erlaubt betreffend der besseren Übersicht die Frage einfach noch einmal zu stellen da die vielen Updates undurchsichtig wurden. Das entspricht so denke ich nicht euren Richtlinien es sei mir aber entschuldigt. Des weiteren möchte ich mich bei esdd entschuldigen für seine so scheint es endlose Geduld mit diesem trivialen Thema.

esdd: Die Lösung die du mir geschickt hast ist zwar richtig aber für mich als Laie sehr schwer zu verstehen. Deshalb habe ich das mit den Boxen einmal weggelassen. Ich habe keine Ahnung wie ich x=\linewidth,y=\textheight und den folgenden Node richtig implementieren muss damit es funktioniert. Ich weiss es ist kein lauffähiger Code. Bei mir im Programm schaut aber so der Code aus da das ganze Dokument Modular aufgebaut ist. Könntest du mir nur Stell die drei vier Zeilen richtig umschreiben damit es funktioniert.? danke

Ich habe unzählige Varianten probiert aber die Psoitionierung mit 0/1 funktioniert nicht.

Open in Online-Editor
\begin{landscape}  % Querformat
\newpage
\begin{flushleft} % Linksbündig
\begin{huge} % Schriftgröße Header
Subcase 1 - p\_1bar
\end{huge}
\end{flushleft}
\noindent
\begin{tikzpicture} [node distance=0.5cm] %Abstand der Nodes untereinander

\node[anchor=south west,inner sep=0,scale=1] (Bild) at (0cm,0.378cm)
{\includegraphics[width=23cm]{./AAA/Pics/AAA/AAA@1@p_1bar@@2.png}};

% Definition für Tabellen (description) und Koordinatendefinition:
\begin{scope}[
x=23.02cm,y=16.02cm,
  description/.style={
  fill=white, 
  fill opacity=0.8,  % Opazität der Tabellen einstellen
  text opacity=1, 
  }
  ]

\node[description,below left] at (1,1) {  % above/below left/right at 0=unten, 0=links

\fontsize{8pt}{11pt}\selectfont
\renewcommand{\arraystretch}{1}
\begin{tabular}{|c|c|c|}
\multicolumn{3}{c}{AAA Loads } \\

\hline
\rowcolor{cyan!20} \textbf{AAA [MPa]} & \textbf{AA. of AAA faces} & \textbf{AAA vector} \\
\hline
0,1 & AAA & AAA to AAA \\
\hline

\end{tabular}
\renewcommand{\arraystretch}{1}
\normalsize

};

\node[description,above right] at (0,0) {  % above/below left/right at 0=unten, 0=links

\fontsize{8pt}{11pt}\selectfont
\renewcommand{\arraystretch}{1}
\begin{tabular}{|>{\columncolor{cyan!20}}r|c|c|c|c|c|c|}
\multicolumn{7}{c}{AAA at AAA - AAA AAA AAA AAA Origin } \\

\hline
\rowcolor{cyan!20} \textbf{AAa at AAA ID} & \textbf{AAA [N]} & \textbf{AAAA [N]} & \textbf{AAAA [N]} & \textbf{AAA [Nmm]} & \textbf{AAA [Nmm]} & \textbf{AAA [Nmm]} \\
\hline
\textbf{1} & 0,5 & 0 & 870 & -172509 & 200567 & 19390 \\
\hline
\textbf{AAA Sum} & 0,5 & 0 & 870 & 697487 & 201092 & 18894 \\
\hline
\textbf{AAA Sum} & -0,5 & 0 & -870 & -697487 & -201092 & -18894 \\
\hline

\end{tabular}
\renewcommand{\arraystretch}{1}
\normalsize
};

\end{scope}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% %Hier beginnt mein Problem ->

    \begin{scope}[remember picture,overlay,
    shift={({-\paperheight+1in+\topmargin+\headheight+\headsep+\linewidth},{-\paperwidth+1in+\oddsidemargin+\textheight})},
    xshift=6cm,yshift=14cm, 
    line width=1pt,description/.style={
    fill=gray, 
    opacity=0.3,  
    text opacity=1 
    }
    ]
    %\begin{scope}[
    %  shift={(Bild.south west)},
    %  xshift=4cm,yshift=10cm, 
    %  line width=1pt,
    %  description/.style={
    %    fill=gray, 
    %    opacity=0.3,  
    %    text opacity=1 
    %    }
    %]
    %\node[description,below left] at (0.5,0.5) { 
    %\node[description,below right] (Bild) at (0.5,0.5) { 
    \draw[fill opacity=.7, fill=white,white](-4.5,-1.2)--(4.5,-1.2)--(4.5,4.5)--(-4.5,4.5)--(-4.5,-1.2);
    \fill[green](-0.7,0.7)--(-1.1243,0.7)--(-0.7,0.7)--(-0.7,1.1243)--(-0.7,1.1243)--(-1.1243,0.7);
    \fill[green](0.7,0.7)--(0.8414,0.7)--(0.7,0.7)--(0.7,0.8414)--(0.7,0.8414)--(0.8414,0.7);
    \draw[dash pattern=on 5.5mm off 2mm on .5mm off 2mm, -,line width=0.5pt]( 0,0)--(-4,0);
    \draw[dash pattern=on 5.5mm off 2mm on .5mm off 2mm, -,line width=0.5pt]( 0,0)--(0,4);
    \draw[dash pattern=on 5.5mm off 2mm on .5mm off 2mm, -,line width=0.5pt]( 0,0)--(4,0);
    \draw(0,-0.7)--(-4,-0.7);
    \draw(0,-0.7)--(0,0.7);
    \draw(0,0.7)--(-4,0.7);
    \draw(-0.7,0)--(-0.7,4);
    \draw(-0.7,0)--(0.7,0);
    \draw(0.7,0)--(0.7,4);
    \draw(0,0.7)--(4,0.7);
    \draw(0,0.7)--(0,-0.7);
    \draw(0,-0.7)--(4,-0.7);
    \fill[red](-0.9243,0.7)circle (0.1cm);
    \fill[red] (-0.7,0.9243)circle (0.1cm);
    \fill[red]  (0.7,2.0414)circle (0.1cm);
    \fill[red]  (2.0414,0.7)circle (0.1cm);
    \draw[red](-0.9243,0.7)--(-0.9243,1.2);
    \node[rotate=0,red] at (-1.1243,1.4){0};
    \draw[red](-0.7,0.9243)--(-1.2,0.9243);
    \node[rotate=0,red] at (-1.4,1.1243){1};
    \draw[red](0.7,2.0414)--(1.2,2.0414);
    \node[rotate=0,red] at (1.4,2.2414){2};
    \draw[red](2.0414,0.7)--(2.0414,1.2);
    \node[rotate=0,red] at (2.2414,1.4){3};
    \draw[->,blue,line width=1.5pt]( 0,0)--(0,3)node[left]{$z$};
    \draw[->,blue,line width=1.5pt]( 0,0)--(-3,0)node[above]{$y$};
    \end{scope}
    %};
    \end{tikzpicture}
    \end{landscape}

gefragt 23 Jul '15, 13:31

basel's gravatar image

basel
12961723
Akzeptiert-Rate: 0%

bearbeitet 27 Jul '15, 19:41

Verwendest Du die Option landscape oder die landscape Umgebung aus pflscape oder lscape? Das macht einen Unterschied für den Code. Dein Bild ist zu hoch für den Textbereich, weshalb davor eine Leerseite eingefügt wird und die Koordinatenangabe für den Node mit dem Bild ziemlich witzlos ist.

(23 Jul '15, 14:55) esdd

@esdd ich hab den Code aus einem Dokument heraus kopiert. Leider habe ich wie ich sehe bei meinem Minimal Beipiel ein wenig herum geschlampt und dasbegin{landscape} vergessen. Ich verwende soweit ich das mit meinem sehr beschränkten Wissen beurteilen kann die Option landscape.

(23 Jul '15, 15:08) basel

Mit der Option landscape ist das gesamte Dokument im Querformat. Verwendest Du dann zusätzlich die landscape Umgebung, dann ist deren Inhalt im Hochformat.

(23 Jul '15, 16:03) esdd

Mir ist nach wie vor nicht wirklich klar, was Du wie bzw. relativ wozu positionieren willst. Wenn Du sowieso geometry lädst, dann kann man für die Seite im Querformat auch die Ränder auf 0pt setzen.

Wenn Du die Zeichnung als ganzes über \node relativ zur Ecke unten links einfügen möchtest, dann ist es das beste sie vorher in einer Box zu speichern und diese dann an der gewünschten Stelle einzufügen.

Auch die Abbildung speichere ich jetzt in einer Box, um sie auszumessen und die richtige Skalierung für den scope relativ zur Abbildung ermitteln zu können.

alt text

Code

Open in Online-Editor
\documentclass[12pt,table]{article}
\usepackage{blindtext}% nur Fülltext
\usepackage{geometry}
\usepackage{pdflscape}

\usepackage{tikz}
\usetikzlibrary{positioning}

% Boxen zum Abspeichern von Zeichung und Abbildung
\newsavebox\Zeichnung
\newsavebox\Abbildung

\begin{document}
\Blindtext
%
\newgeometry{margin=0pt}% alle Ränder auf 0pt ->Textbereich ist komplette Seite
\begin{landscape}
\pagestyle{empty}% Kopf- und Fußzeile entfernen

% Zeichnung in Box speichern
\begin{lrbox}{\Zeichnung}
  \begin{tikzpicture}[
    strichpunkt/.style={dash pattern=on 5.5mm off 2mm on .5mm off 2mm, -,line width=1pt},
    achse/.style={->,blue},
    punkt/.style={circle,fill,red,inner sep=0pt,minimum size=.2cm},
    dreieck/.style={fill,green},
    nummer/.style={inner sep=.2pt},
    line width=1pt
  ]
    \draw[strichpunkt]
      (0,0)--(-4,0)
      (0,0)--(0,4)
      (0,0)--(4,0)
    ;
    \draw[achse]( 0,0)--(0,3)node[left]{$z$};
    \draw[achse]( 0,0)--(-3,0)node[above]{$y$};
    \draw
      (-4,-0.7)--(4,-0.7)
      (-4,0.7)--(4,0.7)
      (0,-0.7)--(0,0.7)
      (-0.7,4)--(-0.7,0)--(0.7,0)--(0.7,4)
    ;
    \draw(-0.9243,0.7)coordinate(p1)--+(0,.5)node[nummer,above]{0};
    \draw(-0.7,0.9243)coordinate(p2)--+(-.5,0)node[nummer,left]{1};
    \draw(0.7,2.0414)coordinate(p3)--+(.5,0)node[nummer,right]{2};
    \draw(2.0414,0.7)coordinate(p4)--+(0,.5)node[nummer,above]{3};
    \foreach \i in {1,...,4}\node[punkt] at (p\i){};
    \path[dreieck]
      (-0.7,0.7)--(-1.1243,0.7)--(-0.7,1.1243)--cycle
      (0.7,0.7)--(0.8414,0.7)--(0.7,0.8414)--cycle
    ;
  \end{tikzpicture}%
\end{lrbox}
% Abbildung abspeichern
\savebox\Abbildung{\includegraphics[width=23cm]{example-image}}

\noindent% Absatzeinzug entfernen
\begin{tikzpicture}[
  description/.style={
    fill=white, 
    fill opacity=0.4,
    text opacity=1,
  },
  bildeinbinden/.style={
    inner sep=0pt,
    anchor=south west
  }
]
% Textbereich als Bounding Box festlegen
\useasboundingbox(0,0)rectangle(\linewidth,\textheight);
% Abbildung relativ zu unterem linkem Punkt des Textbereiches einfügen
% Abstände noch anpassen
\node[bildeinbinden] (Bild) at (3cm,2cm) {\usebox\Abbildung};
% auf dem Bild "zeichnen", unten links ist (0,0), oben rechts (1,1)
\begin{scope}[x=\wd\Abbildung,y=\ht\Abbildung,shift={(Bild.south west)}]
  \node[description,below left=of Bild.north east] at (1,1) {
    \fbox{Tabelle}
  };
\end{scope}
% Zeichnung relativ zu unterem linkem Punkt des Textbereiches einfügen
\node[bildeinbinden] at (0,0) {\usebox\Zeichnung};
\end{tikzpicture}
\end{landscape}
%
\restoregeometry% Ränder wiederherstellen
\Blindtext
\end{document}

Update

Entsprechend einem Kommentar sollen x und y so skaliert werden, dass der Punkt (0,0) in der unteren linken Ecke und der Punkt (1,1) in der oberen rechten Ecke des maximal für die Zeichnung zur Verfügung stehenden Platzes liegt. Da die Ränder auf der Seite mit \newgeometry auf Null gesetzt werden, enspricht dieser Platz der kompletten A4 Seite. Das Skalieren für die gesamte Zeichnung erfolgt nach dem gleichen Prinzip, wie es in dem scope für die Beschriftung des Bildes gemacht wird:

Open in Online-Editor
x=\linewidth,y=\textheight

Damit ändert sich obiger Code zu

Open in Online-Editor
\documentclass[12pt,table]{article}
\usepackage{blindtext}% nur Fülltext
\usepackage{geometry}
\usepackage{pdflscape}

\usepackage{tikz}
\usetikzlibrary{positioning}
\newsavebox\Zeichnung
\newsavebox\Abbildung
\begin{document}
\Blindtext

\newgeometry{margin=0pt}
\begin{landscape}
\pagestyle{empty}

\begin{lrbox}{\Zeichnung}
  \begin{tikzpicture}[
    strichpunkt/.style={dash pattern=on 5.5mm off 2mm on .5mm off 2mm, -,line width=1pt},
    achse/.style={->,blue},
    punkt/.style={circle,fill,red,inner sep=0pt,minimum size=.2cm},
    dreieck/.style={fill,green},
    nummer/.style={inner sep=.2pt},
    line width=1pt
  ]
    \draw[strichpunkt]
      (0,0)--(-4,0)
      (0,0)--(0,4)
      (0,0)--(4,0)
    ;
    \draw[achse]( 0,0)--(0,3)node[left]{$z$};
    \draw[achse]( 0,0)--(-3,0)node[above]{$y$};
    \draw
      (-4,-0.7)--(4,-0.7)
      (-4,0.7)--(4,0.7)
      (0,-0.7)--(0,0.7)
      (-0.7,4)--(-0.7,0)--(0.7,0)--(0.7,4)
    ;
    \draw(-0.9243,0.7)coordinate(p1)--+(0,.5)node[nummer,above]{0};
    \draw(-0.7,0.9243)coordinate(p2)--+(-.5,0)node[nummer,left]{1};
    \draw(0.7,2.0414)coordinate(p3)--+(.5,0)node[nummer,right]{2};
    \draw(2.0414,0.7)coordinate(p4)--+(0,.5)node[nummer,above]{3};
    \foreach \i in {1,...,4}\node[punkt] at (p\i){};
    \path[dreieck]
      (-0.7,0.7)--(-1.1243,0.7)--(-0.7,1.1243)--cycle
      (0.7,0.7)--(0.8414,0.7)--(0.7,0.8414)--cycle
    ;
  \end{tikzpicture}%
\end{lrbox}
\savebox\Abbildung{\includegraphics[width=23cm]{example-image}}

\noindent
\begin{tikzpicture}[
  description/.style={
    fill=white, 
    fill opacity=0.4,
    text opacity=1,
  },
  bildeinbinden/.style={
    inner sep=0pt,
    anchor=south west
  },
  x=\linewidth,y=\textheight% <- Skalieren
]
\useasboundingbox(0,0)rectangle(1,1);
\node[bildeinbinden] (Bild) at (0.1,0.1) {\usebox\Abbildung};
\begin{scope}[x=\wd\Abbildung,y=\ht\Abbildung,shift={(Bild.south west)}]
  \node[description,below left=of Bild.north east] at (1,1) {
    \fbox{Tabelle}
  };
\end{scope}
\node[bildeinbinden] at (0,0) {\usebox\Zeichnung};
\end{tikzpicture}
\end{landscape}
\restoregeometry
\Blindtext
\end{document}

Das Ergebnis ist ähnlich zu dem oben, wobei ich die Koordinaten für das Einfügen der Abbildung (example-image) nicht genau umgerechnet habe.

Permanenter link

beantwortet 23 Jul '15, 16:01

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 24 Jul '15, 21:26

@esdd danke für deine Hilfe. Ich bin gerade am nach-vollziehen.

(24 Jul '15, 14:02) basel

@esdd ich habe den Code zur Gänze verstanden (ja es geschehen auch Wunder).

Das einfügen der Tikz-Zeichnung erfolgt aber immer noch mit einer cm -Angabe.

siehe hier: node[bildeinbinden] at (0,0) {useboxZeichnung};

Mein Kollege und ich streben aber keine cm-Angabe an sondern wie ich einmal bei euch im Forum sah ->

node[description,below right] (Objekt1) at (0.5,0.5) { %%Bild.... };

(24 Jul '15, 18:35) basel

Einen X/Y Shift von 0-1. Erklärung: Bei der X-Koordinate wäre die Null der Ursprung - der ganz linke Punkt und die 1 wäre der ganz rechte Punkt. Diese Art von Lösung wäre meine Frage gewesen. (Natürlich hat deine Lösung das gleiche Ergebnis. Ich brauche aber unbedingt die Lösung mit 0 und 1.) Schönes Wochenende und danke

(24 Jul '15, 18:36) basel

Dazu brauchst Du doch nur die Art der Skalierung des inneren Scope auf die gesamte Zeichnung zu übertragen. In den Optionen des tikzpicture muss dafür zusätzlich x=\linewidth,y=\textheight angegeben werden. Ich habe noch ein Beispiel dafür ergänzt.

(24 Jul '15, 21:29) esdd

@esdd ich hab ein update gemacht

(27 Jul '15, 19:39) basel
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×76

gestellte Frage: 23 Jul '15, 13:31

Frage wurde gesehen: 13,790 Mal

zuletzt geändert: 27 Jul '15, 19:41