Die folgende Grafik (Coulomb-Wall für Protonen) beansprucht nach oben mehr Platz als nötig (erkennbar am eingefügten Rahmen). Dies wird offenkundig durch den Kontrollpunkt Natürlich will ich den Leerraum über dem Bild vermeiden, also entweder Tikz dazu bringen, den Kontrollpunkt bei der Bestimmung der Bildgröße zu ignorieren oder aber die Kurve auf anderem Wege zeichnen. Open in Online-Editor
\documentclass{article} \usepackage{tikz} \begin{document} \frame{\begin{tikzpicture} \draw[very thick,red] (0,0)--(0,-2.5)--(2,-2.5)--(2,0) .. controls (2,4) and (2.5,0.2) ..(4.5,0.15) node[pos=0.6,right] {Coulomb-Wall}; \draw[very thick,->] (0,0)--(4.5,0) node [pos=0.96,below] {$r$}; \draw[very thick,->] (0,-5)--(0,2) node [pos=0.96,left] {$E$}; \end{tikzpicture}} \end{document} gefragt 05 Mär '16, 11:22 Cletus |
useasboundingboxNormalerweise bestimmt TikZ die Bounding Box für das Bild selbst, anhand der platzierten Punkten (wobei Kontrollpunkte von Bézier-Kurven dazu gehören). Man kann die Bounding Box aber auch selbst setzen mit Hilfe von Open in Online-Editor
\useasboundingbox <Pfad>;
Wobei Open in Online-Editor
\documentclass{article} \usepackage{tikz} \begin{document} \frame{% \begin{tikzpicture} \useasboundingbox (-0.5,-5) rectangle (4.5,2); \draw[very thick,red] (0,0)--(0,-2.5)--(2,-2.5)--(2,0) .. controls (2,4) and (2.5,0.2) ..(4.5,0.15); \draw[very thick,->] (0,0)--(4.5,0) node [pos=0.96,below] {$r$}; \draw[very thick,->] (0,-5)--(0,2) node [pos=0.96,left] {$E$}; \end{tikzpicture}% } \end{document} curve toMeistens verbindet man Punkte mit Open in Online-Editor
\path[...] (<Punkt>) to (<Punkt>); Hier werden die Kontrollpunkt automatisch berechnet aus Optionen, die man an Wählt man als Winkel 0° oder 180°, so kann man sich sicher sein, dass der Kontrollpunkt nicht überhalb liegen wird. Open in Online-Editor
\documentclass{article} \usepackage{tikz} \begin{document} \frame{% \begin{tikzpicture} \draw[very thick,red] (0,0)--(0,-2.5)--(2,-2.5)--(2,0) to[out=90,in=180,in looseness=0.25] (2.2,1.8) to[out=0,in=180,out looseness=0.25] (4.5,0.15); \draw[very thick,->] (0,0)--(4.5,0) node [pos=0.96,below] {$r$}; \draw[very thick,->] (0,-5)--(0,2) node [pos=0.96,left] {$E$}; \end{tikzpicture}% } \end{document} beantwortet 05 Mär '16, 13:22 Henri Ist es auch möglich, nur die Bildhöhe, aber nicht die Bildbreite manuell einzustellen? Ich habe das Beispiel jetzt noch um eine Beschriftung der Kurve ergänzt, wodurch die Breite nicht mehr einfach zu bestimmen ist.
(06 Mär '16, 11:47)
Cletus
|
Wie in der Antwort bei Pfade verbergen TikZ beschrieben, gibt es viele verschiedene Möglichkeiten die Bounding Box einer Zeichnung zu korrigieren, die sonst durch nicht gezeichnete Hilfslinien oder eben verwendete Kontrollpunkte zu groß würde. Welche man einsetzt bzw. welche sich überhaupt einsetzen lässt, hängt von der konkreten Zeichnung ab. Hier sind zusätzlich zu den Vorschlägen in der Antwort von @Henri noch zwei weitere: Option Du könntest auch Open in Online-Editor
\documentclass{article} \usepackage{tikz} \begin{document} \frame{\begin{tikzpicture} \draw[very thick,red,overlay] (0,0)--(0,-2.5)--(2,-2.5)--(2,0) .. controls (2,4) and (2.5,0.2) .. (4.5,0.15) node[pos=0.6,right,overlay=false] {Coulomb-Wall} ; \draw[very thick,->] (0,0)--(4.5,0) node [pos=0.96,below] {$r$}; \draw[very thick,->] (0,-5)--(0,2) node [pos=0.96,left] {$E$}; \end{tikzpicture}} \end{document} Kombination aus Am Ende der Zeichung kann man zwei Koordinaten speichern, die die gewünschte Ausdehnung der Zeichnung beschreiben. Danach wird die bisher ermittelte Bounding Box mittels Open in Online-Editor
\documentclass{article} \usepackage{tikz} \begin{document} \frame{\begin{tikzpicture} \draw[very thick,red] (0,0)--(0,-2.5)--(2,-2.5)--(2,0) .. controls (2,4) and (2.5,0.2) .. (4.5,0.15) node[pos=0.6,right] {Coulomb-Wall} ; \draw[very thick,->] (0,0)--(4.5,0) node [pos=0.96,below] {$r$}; \draw[very thick,->] (0,-5)--(0,2) node [pos=0.96,left] {$E$}coordinate(oben); \path (current bounding box.south west)coordinate(unten links) (current bounding box.east|-oben)coordinate(oben rechts) ; \pgfresetboundingbox \useasboundingbox(unten links)rectangle(oben rechts); \end{tikzpicture}} \end{document} Das Ergebnis ist das gleiche wie oben. |
Das ist eventuell ein Duplikat zu Pfade verbergen TikZ.
Diese Frage ist zwar verwandt, jedoch nicht inhaltsgleich, da es dort nicht um Kontrollpunkte geht. Daher ist ein Teil der dort angegebenen Lösungsvorschläge für mein Problem auch nicht brauchbar.
@Cletus Die Frage und auch die Antwort dort sind allgemeiner. Die Kontrollpunkte sind nur ein Spezialfall nicht sichtbarer und trotzdem die Bounding Box vergrößernder Pfade und Knoten.