PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Höhe einer Box ermitteln



Rhadros
08-09-2009, 16:42
Hallo zusammen,
ich würde gerne die Höhe einer Box ermitteln und versuche es mit folgendem Code:

\documentclass{scrbook}
\begin{document}

\newlength{\tempHeight}
\newsavebox{\tempSavebox}
\sbox{\tempSavebox}{\fbox{\parbox{.10\textwidth}{\ rule{1pt}{100pt}}}}
\settoheight{\tempHeight}{\usebox{\tempSavebox}}
\usebox{\tempSavebox}
\rule[-.5\tempHeight]{1pt}{\tempHeight}
\the\tempHeight

\end{document}

Nach meinem Verständnis des Codes sollte folgendes passieren: Es wird eine sbox mit Inhalt erstellt (hier ein Strich von 100pt Höhe). Dann wird die Höhe dieser Savebox mittels \settoheight ermittelt und als nächstes ein weiterer Strich neben die Box mit dieser Höhe gemalt. Testweise wird dann noch die ermittelte Höhe ausgegeben. Sollten nicht die beiden Striche gleich groß sein (bzw der äußere etwas größer wegen der Abstände und des Rahmens der umgebenen Box)?
Was mache ich falsch? Wie komme ich an die Höhe der sbox?

Vielen Dank für eure Hilfe

u_fischer
08-09-2009, 17:12
Boxen haben eine Höhe und eine Tiefe


\documentclass{scrbook}
\usepackage{calc}
\begin{document}

\newlength{\tempHeight}
\newsavebox{\tempSavebox}
\sbox{\tempSavebox}{\fbox{\parbox{.10\textwidth}{\ rule{1pt}{100pt}}}}
\settototalheight{\tempHeight}{\usebox{\tempSavebo x}}
\usebox{\tempSavebox}
\rule[-.5\tempHeight]{1pt}{\tempHeight} \the\tempHeight

\end{document}

Rhadros
08-09-2009, 17:26
Hallo Ulrike,
vielen Dank für die schnelle Antwort. Darauf muss man erst einmal kommen.