
Gibt es eine Möglichkeit, ein einfaches Feld mit Breite \textwidth
und Höhe zu zeichnen, sodass es von seiner Platzierung bis zum unteren Seitenrand ausgefüllt wird?
Antwort1
Vielleicht muss ich noch einige Parameter feinabstimmen, aber hier ist eine Idee mit Vertikal, \leaders
die zu funktionieren scheint:
% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly
% declare the paper format.
\usepackage[T1]{fontenc} % Not always necessary, but recommended.
% End of standard header. What follows pertains to the problem at hand.
\usepackage{lipsum}
\makeatletter
\newcommand*\@helper@hboxto@hsize[2]{%
\hb@xt@ \hsize {%
\vrule \@width .4\p@ \@height #1\ht\strutbox \@depth #2\dp\strutbox
\hfil
\vrule \@width .4\p@ % automatic height and depth
}
}
\newcommand*\@helper@hrule{%
\kern -.2\p@
\hrule \@height .2\p@ \@depth .2\p@
\kern -.2\p@
}
\newcommand*\boxcolumnfill{%
\par
\vskip \dimexpr \dp\strutbox-\prevdepth
\@helper@hrule
\@helper@hboxto@hsize{.25}{.25}%
\nobreak
\xleaders \vbox {
\kern -.25\ht\strutbox
\@helper@hboxto@hsize{.5}{.5}%
\kern -.25\dp\strutbox
}\vfill
\kern -.25\dp\strutbox
\nointerlineskip
\@helper@hboxto@hsize{.25}{0}%
\@helper@hrule
\break
}
\makeatother
\begin{document}
With some text before.
\lipsum*[1]
Is the positioning affected by the presence of descenders?
% Uncomment this line to find it out: Qfgjpqy.
\boxcolumnfill
\lipsum[2]
Whole pages of boxes follow.
\newpage
\boxcolumnfill
\boxcolumnfill
Some more text.
\end{document}
Zusatz
Hier ist eine andere Version des Codes, die dem \boxcolumnfill
Befehl ein optionales Argument hinzufügt, in dem Sie die Menge an zusätzlichem Leerraum angeben können, der über der oberen horizontalen Linie eingefügt werden soll:
% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly
% declare the paper format.
\usepackage[T1]{fontenc} % Not always necessary, but recommended.
% End of standard header. What follows pertains to the problem at hand.
\usepackage{lipsum}
\makeatletter
\newcommand*\@helper@hboxto@hsize[2]{%
\hb@xt@ \hsize {%
\vrule \@width .4\p@ \@height #1\ht\strutbox \@depth #2\dp\strutbox
\hfil
\vrule \@width .4\p@ % automatic height and depth
}
}
\newcommand*\@helper@hrule{%
\kern -.2\p@
\hrule \@height .2\p@ \@depth .2\p@
\kern -.2\p@
}
% The user-level command; in the optional argument you can specify additional
% whitespace to be inserted above the horizontal rule.
\newcommand*\boxcolumnfill[1][\z@]{%
\par
% Not yet sure: provide a legal breakpoint here, just in case the user
% passes an argument that is too tall?
% \penalty \@highpenalty
\kern \dimexpr \dp\strutbox-\prevdepth
% The additional "\dimexpr" around "#1" is actually redundant
% here, but you know, Murphy's law...
+\dimexpr #1\relax
\relax
\@helper@hrule
\@helper@hboxto@hsize{.25}{.25}%
\nobreak
\xleaders \vbox {
\kern -.25\ht\strutbox
\@helper@hboxto@hsize{.5}{.5}%
\kern -.25\dp\strutbox
}\vfill
\kern -.25\dp\strutbox
\nointerlineskip
\@helper@hboxto@hsize{.25}{0}%
\@helper@hrule
\break
}
\makeatother
\flushbottom % please note
\begin{document}
With some text before.
\lipsum*[1]
Is the positioning affected by the presence of descenders?
% Uncomment this line to find it out: Qfgjpqy.
\boxcolumnfill
\lipsum[2]
Some additional space above the rule,\\
without descenders.
% Now with descenders: Qfgjpqy.
\boxcolumnfill[\bigskipamount]
If used at the top of a new page, \verb|\boxcolumnfill| prints a box extending
to the full page height, but any additional space is ignored, even if specified.
\newpage
\boxcolumnfill
\boxcolumnfill[10cm]
This text should be on a new page. Let's try it again:
\boxcolumnfill[10cm]
\lipsum[3-4]
Now, with an argument that is too tall for the available space:
\boxcolumnfill[15cm]
\textbf{Beware:} a negative argument \emph{is} honored!\\
without descenders.
% Now with descenders: Qfgjpqy.
\boxcolumnfill[-2\baselineskip]
Some more text.
\end{document}
Antwort2
Mit tcolorbox
dem Paket ist das ganz einfach. height fill
Die Option erstellt Kästen mit einer Höhe, die dem verfügbaren Platz bis zum Ende der Seite entspricht:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage{lmodern}
\usepackage[most]{tcolorbox}
\begin{document}
With some text before.
\lipsum*[1]
\begin{tcolorbox}[height fill]
\end{tcolorbox}
\lipsum[2]
\begin{tcolorbox}[height fill]
\end{tcolorbox}
\begin{tcolorbox}[height fill]
\end{tcolorbox}
\lipsum[1-2]
\begin{tcolorbox}[height fill]
\end{tcolorbox}
\end{document}