Seite 1 von 1

picture-Umgebung lässt sich nicht verschieben

Verfasst: Sa 18. Jul 2015, 19:34
von Fucko
Hi, ich hab beim beamer theme ein Problem mit der picture-Umgebung.
Normalerweise lege ich mit den Parametern nach Eräffnung der Picture-Umgebung (Im Bsp. 200,60) fest, wo das Bild landen soll. Das ignoriert er aber konsequent. Die y-Koordinate kann ich eingeschränkt definieren, aber die erste Zahl wird nicht beachtet. Was mache ich falsch? Die Abbildung ist sicherlich nicht besonders elegant gelöst, soll aber hier egal sein.
Weitere Frage: Ist es auch möglich, die ganze Abbildung insgesamt zu verkleinern?
Danke.
\frame{\frametitle{TTC-Konzept}
%\begin{figure}
\begin{tiny}
\begin{picture}(200,60)
	\put(45,60){\fbox{\parbox[c][2mm][c]{55mm}{\centering{100-FACH UNSICHERHEITSFAKTOR}}}}
	\put(45,25){\fbox{\parbox[c][5mm][c]{20mm}{\centering{Interspezies-Unterschiede 10-FACH}}}}
	\put(145,25){\fbox{\parbox[c][5mm][c]{20mm}{\centering{Interindividuelle Unterschiede 10-FACH}}}}
	\put(30,-14){\fbox{\parbox[c][5mm][c]{14mm}{\centering{Toxikodynamik $10^{0,4}=2,5$}}}}
	\put(80,-14){\fbox{\parbox[c][5mm][c]{14mm}{\centering{Toxikokinetik $10^{0,6}=4$}}}}
	\put(130,-14){\fbox{\parbox[c][5mm][c]{14mm}{\centering{Toxikodynamik $10^{0,5}=3,16$}}}}
	\put(180,-14){\fbox{\parbox[c][5mm][c]{14mm}{\centering{Toxikokinetik $10^{0,5}=3,16$}}}}
	\Huge{\put(90,40){$\swarrow$}}
	\Huge{\put(143,40){$\searrow$}}
	\Huge{\put(50,0){$\swarrow$}}
	\Huge{\put(85,0){$\searrow$}}
	\Huge{\put(150,0){$\swarrow$}}
	\Huge{\put(185,0){$\searrow$}}
\end{picture}
\end{tiny}
%\end{figure}
}

Verfasst: So 19. Jul 2015, 02:44
von esdd
Die beiden Parameter \begin{picture}(200,60) bestimmen eigentlich nur die Höhe und Breite des reservierten Zeichenbereiches. Wird das so angegeben, dann liegt der Punkt (0,0) in der linken unteren Ecke des Bereiches. Den Bereich kann man sich anzeigen lassen, wenn man die picture Umgebung in eine \fbox setzt.

Bild

Dabei sieht man, dass die Zeichnung teilweise außerhalb des Zeichenbereiches landet. Du musst das zweite optionale Parameterpaar verwenden, um einen Offset einzustellen. Mit
\begin{picture}(200,100)(30,-28)
liegt der Punkt (30,-28) in der unteren linken Ecke des Zeichenbereiches.


Bild

Code:
\documentclass{beamer}
\begin{document}

\frame{\frametitle{TTC-Konzept}
\tiny
\setlength\fboxsep{0pt}
\fbox{\begin{picture}(200,100)(30,-28)
    \put(45,60){\fbox{\parbox[c][2mm][c]{55mm}{\centering{100-FACH UNSICHERHEITSFAKTOR}}}} 
    \put(45,25){\fbox{\parbox[c][5mm][c]{20mm}{\centering{Interspezies-Unterschiede 10-FACH}}}} 
    \put(145,25){\fbox{\parbox[c][5mm][c]{20mm}{\centering{Interindividuelle Unterschiede 10-FACH}}}} 
    \put(30,-14){\fbox{\parbox[c][5mm][c]{14mm}{\centering{Toxikodynamik $10^{0,4}=2,5$}}}} 
    \put(80,-14){\fbox{\parbox[c][5mm][c]{14mm}{\centering{Toxikokinetik $10^{0,6}=4$}}}} 
    \put(130,-14){\fbox{\parbox[c][5mm][c]{14mm}{\centering{Toxikodynamik $10^{0,5}=3,16$}}}} 
    \put(180,-14){\fbox{\parbox[c][5mm][c]{14mm}{\centering{Toxikokinetik $10^{0,5}=3,16$}}}} 
    \Huge{\put(90,40){$\swarrow$}} 
    \Huge{\put(143,40){$\searrow$}} 
    \Huge{\put(50,0){$\swarrow$}} 
    \Huge{\put(85,0){$\searrow$}} 
    \Huge{\put(150,0){$\swarrow$}} 
    \Huge{\put(185,0){$\searrow$}} 
\end{picture}}
\par
}
\end{document}
Normaler Weise kann man eine picture Umgebung skalieren, in dem man \unitlength eine andere Länge als 1pt setzt. Bei dieser Art des Skalierens bleibt die Schriftgröße gleich. Da Deine Pfeile nicht gezeichnet sind, sondern Schriftzeichen gesetzt werden, werden sie leider nicht mit skaliert.

Um das ganze Bild mitsamt Schrift und Linienstärke zu skalieren, kannst Du \scalebox oder \resizebox aus dem graphicx Paket verwenden.

Gruß
Elke

Verfasst: Mo 20. Jul 2015, 11:11
von Fucko
Danke für die ausführliche Antwort. Hat geholfen. Aber wozu kann ich den reservierten Zeichenbereich und das Bild überhaupt trennen? Sehe da spontan keinen Sinn drin.

Verfasst: Mo 20. Jul 2015, 11:58
von esdd
Fucko hat geschrieben:Aber wozu kann ich den reservierten Zeichenbereich und das Bild überhaupt trennen? Sehe da spontan keinen Sinn drin.
Die picture Umgebung kann ihren benötigten Platz nicht aus ihrem Inhalt ermitteln und entsprechend selbst frei halten. Wenn Du das möchtest, nimm TikZ. Damit ginge auch Dein Baum einfacher und schöner. Allerdings braucht es etwas Einarbeitung ...