Rahmen mit variabler Höhe

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Rahmen mit variabler Höhe

von rais » Mo 6. Dez 2010, 19:32

Hallo Ferdinand,
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

von ferdinand » Mi 17. Nov 2010, 08:55

Hallo,

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.

Habt ihr hierzu noch Verbesserungsvorschläge?

Viele Grüße
Ferdinand

von ferdinand » Mo 15. Nov 2010, 13:43

Hallo Rainer,

das sieht so auf den ersten Blick sehr gut aus. Ich werde das jetzt mal mit aufnehmen und dann ein bisschen testen.

Vielen Dank schon mal für deine Hilfe

von rais » Di 9. Nov 2010, 22:22

Hallo,
in erster Näherung vllt
\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}
  \blindtext[2]%<--hier verschiedene Werte testen

  \textbox{2cm}{Hier sollst du was eintragen}
\end{document}
MfG

Rainer

von ferdinand » Di 9. Nov 2010, 11:08

Hallo,

hier ist das Minimalbeispiel:
\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.

Viele Grüße
Ferdinand

von rais » Di 9. Nov 2010, 00:08

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

Rahmen mit variabler Höhe

von ferdinand » Mo 8. Nov 2010, 19:39

Hallo,

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.

Mein bisheriger Versuch sieht so aus:
\providecommand*{\textbox}[2]{%
  \setlength{\boxheight}{#1}%
  #2:\checkbox\checkedbox\correctedbox\\%
  \frame{\parbox{\linewidth}{\vspace*{\boxheight}\vspace*{\fill}\ }}\\%
}
Leider funktioniert das aber nicht. Die Box hat zwar die vorgegebene Größe, vergrößert sich aber nicht um die Seite zu füllen.

Habt ihr eine Idee, wie es gehen könnte? Ist es überhaupt möglich?

Viele Grüße
Ferdinand[/code][/b]

Nach oben