Seite 1 von 1
Zeilenumbruch bei \framebox in picture-Umgebung
Verfasst: Mi 26. Jan 2011, 22:23
von meep.meep
Hallo zusammen,
ich bastele gerade an einer Abbildung mit Hilfe der picture-Umgebung. Mein Minimalbeispiel lautet wie folgt:
\documentclass[12pt]{scrartcl}
\begin{document}
\unitlength 5mm
\begin{picture}(5,15)
\put(0,0) {\framebox(6,3){Beispiel}}
\put(8,0) {\framebox(6,3){sehr langes Beispiel}}
\put(16,0){\framebox(6,3){Beispiel}}
\put(24,0) {\framebox(6,3){Beispiel}}
\end{picture}
\end{document}
Nun hätte ich gerne in der zweiten Box einen Zeilenumbruch. Wie mache ich das wohl am elegantesten?
Wenn ich zusätzlich mit einem
\put(8,0) {\parbox{30mm}{sehr langes Beispiel}}
Befehl arbeite, ist der Text leider nicht vertikal zentriert im Bezug zur framebox. Natürlich kann ich so lange an den Parametern rumspielen, bis es passt, aber da ich das Ganze bei vielen Boxen machen muss, suche ich nach einer allgemeineren Lösung.
Besten Dank im voraus,
Anja[/code]
Re: Zeilenumbruch bei \framebox in picture-Umgebung
Verfasst: Mi 26. Jan 2011, 23:08
von CrazyHorse
meep.meep hat geschrieben:\put(8,0) {\parbox{30mm}{sehr langes Beispiel}}
Befehl arbeite, ist der Text leider nicht vertikal zentriert im Bezug zur framebox. Natürlich kann ich so lange an den Parametern rumspielen, bis es passt, aber da ich das Ganze bei vielen Boxen machen muss, suche ich nach einer allgemeineren Lösung.
\put(8,0){\framebox(6,3){\parbox[c]{30mm}{sehr langes Beispiel}}}
Herbert
Verfasst: Mi 26. Jan 2011, 23:44
von meep.meep
Hallo Herbert,
Danke schonmal für deinen schnellen Lösungsvorschlag.
Ich habe den Code jetzt wie folgt abgewandelt:
\documentclass[12pt]{scrartcl}
\begin{document}
\unitlength 5mm
\begin{picture}(5,15)
\put(0,0) {\framebox(6,3){Beispiel}}
\put(8,0){\framebox(6,3){\parbox[c]{30mm}{sehr langes\\ Beispiel}}}
\put(16,0){\framebox(6,3){Beispiel}}
%\put(8,0){\framebox(6,3){\parbox[c]{20mm}{sehr langes\\ Beispiel}}}
%\put(16,0){\framebox(6,3){\parbox[c]{20mm}{sehr \\ Beispiel}}}
\put(24,0) {\framebox(6,3){Beispiel}}
\end{picture}
\end{document}
Jetzt tritt allerdings das Problem auf, das der Text nicht horizontal zentriert ist. Ich hätte den Text gerne so wie er ist, in sich selbst linksbündig, aber im Bezug auf die framebox mittig. Ich kann natürlich am Längenmaß von parbox spielen, aber dann muss ich das wieder für jede Box einzeln nach Textlänge anpassen (siehe auskommentierten Code). Dabei hatte ich das Längenmaß von parbox extra so gewählt, dass es der Breite von framebox entspricht, weil ich dachte, das bringt mir das gewünschte Ergebnis.
Ich denke, ich brauche statt parbox eine Box, die genau der darin enthaltenen Textbreite entspricht und Zeilenumrüche erlaubt?! Oder gibt es weitere Möglichkeiten?
Beste Grüße, Anja
Verfasst: Do 27. Jan 2011, 07:44
von CollmDante
In solchen Fällen verwende ich eine Hilfslänge, die ich mit dem Befehl \settowidth auf die Länge der längsten Zeile setze. Sicher könnte man das elegant in einen neuen Befehl umsetzen, dazu fehlte mir aber bisher die Zeit.
\documentclass[ngerman,12pt]{scrartcl}
\usepackage{babel}
\begin{document}
\unitlength 5mm
\newlength{\parboxwidthtmp} %Hilfslänge für parbox
\begin{picture}(5,15)
\put(0,0) {\framebox(6,3){Beispiel}}
\put(8,0){\framebox(6,3){\settowidth{\parboxwidthtmp}{sehr langes}\parbox{\parboxwidthtmp}{{sehr langes\\ Beispiel}}}}
\put(16,0){\framebox(6,3){Beispiel}}
\put(24,0) {\framebox(6,3){Beispiel}}
\end{picture}
\end{document}
Gruß
Jens
Verfasst: Do 27. Jan 2011, 09:44
von CrazyHorse
meep.meep hat geschrieben:Ich denke, ich brauche statt parbox eine Box, die genau der darin enthaltenen Textbreite entspricht und Zeilenumrüche erlaubt?! Oder gibt es weitere Möglichkeiten?
\documentclass[12pt]{scrartcl}
\begin{document}
\unitlength 5mm
\begin{picture}(5,15)
\put(0,0) {\framebox(6,3){Beispiel}}
\put(8,0){\framebox(6,3){\centering\tabular{@{}l@{}}sehr langes\\ Beispiel\endtabular}}
\put(16,0){\framebox(6,3){Beispiel}}
\put(24,0) {\framebox(6,3){Beispiel}}
\end{picture}
\end{document}
Herbert
Verfasst: Do 27. Jan 2011, 10:47
von meep.meep
Vielen Dank für eure Hilfe!
Ich habe jetzt mit Herberts Lösung gearbeitet, da ich ehrlich gesagt, direkt nach unten gescrollt habe und erst später gesehen habe, dass es tatsächlich zwei Vorschläge gab.
Hab jetzt eine richtig schöne Abbildung, also nochmal Danke!
