Erzwingen der vertikalen Größe der Savebox auf die gleiche Seitenhöhe

Erzwingen der vertikalen Größe der Savebox auf die gleiche Seitenhöhe

Gibt es eine bessere Möglichkeit, ein zu generieren, \saveboxdessen Abmessungen den Papierabmessungen entsprechen, als ein mit \strutder Länge gleich der Seitenhöhe einzufügen (die Breite ist ein Argument für das \saveboxselbst).

Antwort1

Mit einer Kombination aus lrbox„es“ und minipage„s“ können Sie Ihren Inhalt in einer Box speichern. Nach dem Speichern können Sie die Größe der Box ändern. Beachten Sie, dass die Abmessungen der Box zwar geändert werden, der Schriftsatz jedoch gleich bleibt.

\documentclass{article}
%% open the dimensions of the page a bit
\usepackage[margin=0.75in]{geometry}
\newsavebox\aebox
%% set fbox parameters to facilitate seeing how dimensions are changed.
\setlength\fboxsep{-0.4pt}
\setlength\fboxrule{0.4pt}
\pagestyle{empty}
\begin{document}

\begin{lrbox}\aebox
  \begin{minipage}[t]{3in}
    This is just an example of a box of certain dimensions that can later be
    reassigned.
  \end{minipage}
\end{lrbox}

Hello
\fbox{\usebox\aebox}
\ht\aebox\dimexpr\baselineskip*2\relax
\dp\aebox\dimexpr\textheight-\baselineskip*2\relax
\fbox{\usebox\aebox}

\end{document}

Bildbeschreibung hier eingeben

Natürlich erreicht das oben Gesagte nicht ganz das, was Sie wollen. Sie könnten @HarishKumars Ansatz übernehmen und die Geometrie der Seite so einstellen, dass die Ränder alle sind 0pt. In diesem Fall, im obigen Beispiel, wenn Sie

\usepackage[margin=0pt]{geometry}

Du wirst kriegen

Bildbeschreibung hier eingeben

Was aber, wenn Sie die Ränder nicht auf festlegen möchten 0pt?

Vorausgesetzt, die Ränder sind auf eingestellt, 0.5in könnten Sie etwas wie Folgendes versuchen:

\raisebox{\dimexpr0.5in+\baselineskip+<some dimension>\relax}[0pt][0pt]{\fbox{\usebox\aebox}}

Aber dann ist es schwierig (zumindest für mich), herauszufinden, wie man es genau einstellt, <some dimension>damit die Box richtig platziert ist.

In diesem Fall möchten Sie vielleicht laden tikz(was auchoptionalwird beim Laden des tcolorboxPakets aufgerufen). Folgendes können Sie tun:

\documentclass{article}
%% open the dimensions of the page a bit
\usepackage[margin=0.5in]{geometry}
\newsavebox\aebox
%% set fbox parameters to facilitate seeing how dimensions are changed.
\setlength\fboxsep{-0.4pt}
\setlength\fboxrule{0.4pt}

\pagestyle{empty}

\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}

\begin{lrbox}\aebox
  \begin{minipage}[t]{3in}
    This is just an example of a box of certain dimensions that can later be
    reassigned.
  \end{minipage}
\end{lrbox}

\hspace*{3.5in} Hello \fbox{\usebox\aebox}

%% setting the dimensions of the box
\ht\aebox\dimexpr\baselineskip\relax
\dp\aebox\dimexpr\paperheight-\baselineskip\relax
\begin{tikzpicture}[remember picture,overlay]
  \node[inner sep=0pt,anchor=north west,fill=orange!20] at ($(current page.north west)+(0.5in,0)$) {\fbox{\usebox\aebox}};
\end{tikzpicture}

\end{document}

Zu bekommen

Bildbeschreibung hier eingeben

Antwort2

tcolorboxSie können den Schlüssel für dieses Angebot verwenden height.

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\usepackage[a4paper,top=0cm,bottom=0cm]{geometry}  %% just for demo
\begin{document}
  \begin{tcolorbox}[width=0.5\textwidth,height=\paperheight]
    \lipsum[1-2]
  \end{tcolorbox}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen