ich versuche gerade einen Rahmen zu machen, der eine mindest Höhe hat, aber sich in der Höhe anpasst, wenn noch Platz auf der Seite ist. Also so ähnlich wie es \vfill{} mit Leeraum macht.
Hallo,
es würde vielleicht helfen zu wissen, wie Dinge wie \checkbox, \checkedbox und \correctedbox bei Dir definiert sind ... noch besser wäre ein nachvollziehbares Minimalbeispiel Deinerseits.
MfG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)
\documentclass{scrartcl}
\newlength{\boxheight}
\providecommand*{\textbox}[2]{%
\setlength{\boxheight}{#1}%
\addtolength{\boxheight}{\fill}%
#2:\\%
\frame{\parbox{\linewidth}{\vspace*{\boxheight}\vspace*{\fill}\ }}\\%
}
\begin{document}
\textbox{2cm}{Hier sollst du was eintragen}
\end{document}
\checkbox, \checkedbox und \correctedbox waren nur um etwas zu testen und gehören eigentlich nicht dazu, hatte ich leider vergessen noch raus zunehmen.
leider klappt es noch nicht so, wie ich es gerne hätte: Wenn ich diesen Quelltext nehme
\documentclass[ngerman]{scrartcl}
\usepackage{babel,blindtext}
\newlength{\boxheight}
\providecommand*{\textbox}[2]{%
\vfil
#2:\par\noindent%
\setlength\boxheight{\pagegoal}%
\addtolength\boxheight{-\pagetotal}%
\addtolength\boxheight{-2\baselineskip}%
\ifdim\boxheight<#1\setlength{\boxheight}{#1}\fi
\frame{\parbox[tt][\boxheight]{\linewidth}{~
%\the\pagegoal, \the\pagetotal, \the\boxheight
}}\par
}
\begin{document}
Ein kurzer Text
\textbox{1cm}{Hier sollst du was eintragen}
Noch ein paar Worte
\textbox{1cm}{Hier sollst du was eintragen}
\end{document}
landet die zweite Box leider auf der nächsten Seite, obwohl auf der ersten Seite mit den Mindestgrößen noch Platz wäre.
Es soll also theoretisch so laufen, dass die Boxen erst mal nur mit ihrer Mindestgröße gerechnet werden und dann am Ende der übrige Platz auf alle Boxen der Seite verteilt wird.
ferdinand hat geschrieben:
Es soll also theoretisch so laufen, dass die Boxen erst mal nur mit ihrer Mindestgröße gerechnet werden und dann am Ende der übrige Platz auf alle Boxen der Seite verteilt wird.
eine voll `automagische' Lösung will mir dazu nicht einfallen -- ich wüsste z. B. nicht, wo ich einen Seitenumbruch einfügen dürfte, falls doch nicht alles auf eine Seite passt -- in zweiter Näherung vielleicht
\documentclass[ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{babel,blindtext}
\newlength\boxheight
\newlength\boxheightexp
\newcounter{box}
\newsavebox\mybox
\newcommand*\textbox[2]{%
\vfil
#2:\par\noindent%
\stepcounter{box}%
\setlength\boxheight{#1}%
\addtolength\boxheight{\boxheightexp}%
\ifdim\boxheight<#1\setlength{\boxheight}{#1}\fi
\frame{\parbox[tt][\boxheight]{\linewidth}{~}}\par
}
\newcommand*\orgtextbox{}%
\let\orgtextbox\textbox
\newcommand\zusammen[1]{%
\setcounter{box}{0}%
\renewcommand*\textbox[2]{%
\stepcounter{box}%
\setlength\boxheight{##1}%
\par
##2:\par
\noindent\rule{\linewidth}{\boxheight}\par
}%
\sbox\mybox{\parbox{\linewidth}{#1}}%
\ifnum\value{box}>0
\setlength\boxheight{\ht\mybox}%
\addtolength\boxheight{\dp\mybox}%
\setlength\boxheightexp{\pagegoal}%
\addtolength\boxheightexp{-\pagetotal}%
\ifdim\boxheightexp>\textheight
\setlength\boxheightexp{\textheight}%
\fi
\addtolength\boxheightexp{-2\baselineskip}%
\addtolength\boxheightexp{-\boxheight}%
\divide\boxheightexp by \value{box}%
\ifdim\boxheightexp<0pt%
\typeout{`\string\zusammen-Makro' warnt: passt nicht...Versuche es trotzdem.}%
\setlength\boxheightexp{0pt}%
\else
\typeout{`\string\zusammen-Makro' informiert: scheint zu passen...}%
\fi
\renewcommand*\textbox{\orgtextbox}%
\else
\typeout{`\string\zusammen-Makro' informiert: keine Textbox gefunden...}%
\fi
#1%
}
\begin{document}
\blindtext
\zusammen{%
\textbox{1cm}{Hier sollst du was eintragen}
Noch ein paar Worte
\textbox{1cm}{Hier sollst du was eintragen}
Und noch ein paar Worte\dots
\textbox{3cm}{Nochwas zum Eintragen}
}
\end{document}
MfG
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)