Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 8
Abbildungen eingefügt

07 Aug '13, 21:14

esdd's gravatar image

esdd
17.8k304257

Die `scale`-Option führt laut Dokumentation nur zu einer Koordinatentransformation, d.h. sie wirkt nur, wenn Koordinaten betroffen sind. Die Linienstärke, die Größe der Pfeilspitzen oder Optionen wie `shorten >` sowie die Noden werden davon nicht beeinflusst. Bei manchen Dingen muss man auch austesten, ob die Skalierung wirkt oder nicht. Zum Beispiel wird die `node distance` nicht automatisch mit angepasst. Dadurch sieht man im Ausgangsbeispiel keinerlei Wirkung der `scale`-Option. Deshalb ist hier noch ein Beispiel bei dem man die Wirkung der `scale`-Option auf Koordinaten an Hand einer eingezeichneten Strecke und eines roten Kreises sehen kann: \documentclass{standalone} \usepackage{tikz} \usetikzlibrary{positioning} \tikzset{ state/.style={circle, draw, minimum size=6ex}, arrow/.style={-latex, shorten >=3pt, shorten <=3pt}} \newcommand\grafik{% \node [state] (S1) {$S_1$}; \node [state, right=of S1] (S2) {$S_2$}; \draw [arrow, bend left=60] (S1) to (S2); \draw [arrow, bend right=60] (S1) to (S2); \draw[fill=red] (S1.east) -- ++(2.5em-1mm,0) +(1mm,0) circle [radius=1mm];} \begin{document} \begin{tikzpicture}[node distance=5em] \grafik % unskaliert \begin{scope}[xshift=4cm, scale=2] \grafik \end{scope} \begin{scope}[xshift=8cm, scale=0.5] \grafik \end{scope} \end{tikzpicture} \end{document} ![alt text][1] Abhängig davon, was in der Grafik zusätzlich zu den Koordinatenangaben noch alles skaliert werden soll, gibt es unterschiedliche Anpassungsmöglichkeiten: **Abstände, die über node distance eingestellt werden:** Sollen die Noden unverändert bleiben, aber die über `node distance` eingestellten Abstände trotzdem skaliert werden, dann muss diese Option von Hand angepasst werden. Werden Teile einer TikZ-Abbildung unterschiedlich skaliert, dann kann man sich für die Zeichnung einen eigenen Skalierungsstil definieren, damit `node distance` jeweils mitskaliert wird: \begin{tikzpicture}[ myscale/.style={scale=#1, node distance=#1*5em},myscale=1] \grafik % unskaliert \begin{scope}[xshift=4cm, myscale=2] \grafik \end{scope} \begin{scope}[xshift=10cm, myscale=0.5] \grafik \end{scope} \end{tikzpicture} ![alt text][2] Auf dem gleichen Weg lassen sich natürlich auch die Linienbreite etc. beeinflussen. **Noden:** @Stefan hat schon erklärt, wie durch die zusätzliche Angabe der `scale`-Option für einzelne oder alle Noden, diese und deren Inhalt ebenfalls skaliert werden können. **Noden und Abstände:** Gibt man bei den betreffenden Noden oder einer `scope` oder für das gesamte `tikzpicture` die Option `transform shape` an, wird neben den Noden auch automatisch die `node distance` angepasst. \begin{tikzpicture}[node distance=5em] \grafik % unskaliert \begin{scope}[xshift=5cm, scale=2, every node/.style={scale=2}] % Noden mitskalieren \grafik \end{scope} \begin{scope}[xshift=12cm, scale=2, transform shape] % Noden und Abstände mitskalieren \grafik \end{scope} \end{tikzpicture} ![alt text][3] **Komplette Grafik:** Soll die gesamte Zeichnung einschließlich der Schrift, der Linienstärke und der Größe der Pfeilspitzen sowie der `shorten` Optionen skaliert werden, dann kann man `\scalebox` verwenden. Das dafür benötigte `graphicx`-Paket wird von tikz bereits mitgeladen. % \begin{tikzpicture}[node distance=5em] \grafik \end{tikzpicture}% \hspace{1cm} \scalebox{2}{% skalieren auf die doppelte Größe \scalebox{2}{% \begin{tikzpicture}[node distance=5em] \grafik \end{tikzpicture}% } ![alt text][4] Alternativ kann mit `\resizebox` aus dem gleichen Paket die gesamte Grafik auf eine vorgegebene Breite skaliert werden. % Breite auf 15cm skalieren, Höhe wird durch Angabe von ! proportional angepasst \resizebox{15cm}{!}{% \begin{tikzpicture}[node distance=5em] \grafik \end{tikzpicture}% } Mit beiden Befehlen können neben Zeichnungen auch Tabellen, Texte oder anderes Material skaliert werden. Weitere Informationen zu `\scalebox`, `\resizebox` sowie `\resizebox*` sind in der Anleitung der [`graphics`-Sammlung][1] [`graphics`-Sammlung][5] zu finden. [1]: http://texwelt.de/wissen/upfiles/scale1_1.PNG [2]: http://texwelt.de/wissen/upfiles/scale2.PNG [3]: http://texwelt.de/wissen/upfiles/scale3.PNG [4]: http://texwelt.de/wissen/upfiles/scale4_1.PNG [5]: http://www.ctan.org/pkg/graphicx
Klicke auf Einblenden/Ausblenden von Überarbeitungen 7

25 Jul '13, 16:21

esdd's gravatar image

esdd
17.8k304257

Die `scale`-Option führt laut Dokumentation nur zu einer Koordinatentransformation, d.h. sie wirkt nur, wenn Koordinaten betroffen sind. Die Linienstärke, die Größe der Pfeilspitzen oder Optionen wie `shorten >` sowie die Noden werden davon nicht beeinflusst. Bei manchen Dingen muss man auch austesten, ob die Skalierung wirkt oder nicht. Zum Beispiel wird die `node distance` nicht automatisch mit angepasst. Dadurch sieht man im Ausgangsbeispiel keinerlei Wirkung der `scale`-Option. Deshalb ist hier noch ein Beispiel bei dem man die Wirkung der `scale`-Option auf Koordinaten sehen kann: \documentclass{standalone} \usepackage{tikz} \usetikzlibrary{positioning} \tikzset{ state/.style={circle, draw, minimum size=6ex}, arrow/.style={-latex, shorten >=3pt, shorten <=3pt}} \newcommand\grafik{% \node [state] (S1) {$S_1$}; \node [state, right=of S1] (S2) {$S_2$}; \draw [arrow, bend left=60] (S1) to (S2); \draw [arrow, bend right=60] (S1) to (S2); \draw[fill=red] (S1.east) -- ++(2.5em-1mm,0) +(1mm,0) circle [radius=1mm];} \begin{document} \begin{tikzpicture}[node distance=5em] \grafik % unskaliert \begin{scope}[xshift=4cm, scale=2] \grafik \end{scope} \begin{scope}[xshift=8cm, scale=0.5] \grafik \end{scope} \end{tikzpicture} \end{document} Abhängig davon, was in der Grafik alles skaliert werden soll, gibt es unterschiedliche Anpassungsmöglichkeiten: **Abstände, die über node distance eingestellt werden:** Sollen die Noden unverändert bleiben, aber die über `node distance` eingestellten Abstände trotzdem skaliert werden, dann muss diese Option von Hand angepasst werden. Werden Teile einer TikZ-Abbildung unterschiedlich skaliert, dann kann man sich für die Zeichnung einen eigenen Skalierungsstil definieren, damit `node distance` jeweils mitskaliert wird: \begin{tikzpicture}[ myscale/.style={scale=#1, node distance=#1*5em},myscale=1] \grafik % unskaliert \begin{scope}[xshift=4cm, myscale=2] \grafik \end{scope} \begin{scope}[xshift=10cm, myscale=0.5] \grafik \end{scope} \end{tikzpicture} Auf dem gleichen Weg lassen sich natürlich auch die Linienbreite etc. beeinflussen. **Noden:** @Stefan hat schon erklärt, wie durch die zusätzliche Angabe der `scale`-Option für einzelne oder alle Noden, diese und deren Inhalt ebenfalls skaliert werden können. **Noden und Abstände:** Gibt man bei den betreffenden Noden oder einer `scope` oder für das gesamte `tikzpicture` die Option `transform shape` an, wird neben den Noden auch automatisch die `node distance` angepasst. \begin{tikzpicture}[node distance=5em] \grafik % unskaliert \begin{scope}[xshift=5cm, scale=2, every node/.style={scale=2}] % Noden mitskalieren \grafik \end{scope} \begin{scope}[xshift=12cm, scale=2, transform shape] % Noden und Abstände mitskalieren \grafik \end{scope} \end{tikzpicture} **Komplette Grafik:** Soll die gesamte Zeichnung einschließlich der Schrift, der Linienstärke und der Größe der Pfeilspitzen sowie der `shorten` Optionen skaliert werden, dann kann man `\scalebox` verwenden. Das dafür benötigte `graphicx`-Paket wird von tikz bereits mitgeladen. % skalieren auf die doppelte Größe \scalebox{2}{% \begin{tikzpicture}[node distance=5em] \grafik \end{tikzpicture}% } Alternativ kann mit `\resizebox` aus dem gleichen Paket die gesamte Grafik auf eine vorgegebene Breite skaliert werden. % Breite auf 15cm skalieren, Höhe wird durch Angabe von ! proportional angepasst \resizebox{15cm}{!}{% \begin{tikzpicture}[node distance=5em] \grafik \end{tikzpicture}% } Mit beiden Befehlen können neben Zeichnungen auch Tabellen, Texte oder anderes Material skaliert werden. Weitere Informationen zu `\scalebox`, `\resizebox` sowie `\resizebox*` sind in der Anleitung der [`graphics`-Sammlung][1] zu finden. [1]: http://www.ctan.org/pkg/graphicx
Klicke auf Einblenden/Ausblenden von Überarbeitungen 6

25 Jul '13, 16:11

esdd's gravatar image

esdd
17.8k304257

Klicke auf Einblenden/Ausblenden von Überarbeitungen 5

24 Jul '13, 11:47

esdd's gravatar image

esdd
17.8k304257

Klicke auf Einblenden/Ausblenden von Überarbeitungen 4
Lösungsmöglichkeiten abhängig davon, was alles skaliert werden soll

24 Jul '13, 11:46

esdd's gravatar image

esdd
17.8k304257

Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

22 Jul '13, 12:44

esdd's gravatar image

esdd
17.8k304257

Klicke auf Einblenden/Ausblenden von Überarbeitungen 2
scalebox und den Link auf die Anleitung ergänzt

22 Jul '13, 12:39

esdd's gravatar image

esdd
17.8k304257

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

21 Jul '13, 20:49

esdd's gravatar image

esdd
17.8k304257

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×