保存ボックスの垂直サイズをページの高さと同じにする

保存ボックスの垂直サイズをページの高さと同じにする

\saveboxページの高さに等しい長さの を挿入するよりも、用紙の寸法に等しい寸法のを生成するためのより良い方法はありますか\strut(幅は 自体の引数です\savebox)。

答え1

lrboxes とsを組み合わせて使用​​するとminipage、コンテンツをボックスに保存できます。保存したら、ボックスのサイズを変更できます。ボックスのサイズは変更されますが、タイプ設定は同じままであることに注意してください。

\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}

ここに画像の説明を入力してください

もちろん、上記の方法では望みどおりにはいきません。@HarishKumarのアプローチを採用して、余白がすべて になるようにページの形状を設定することもできます0pt。その場合、上記の例では、

\usepackage[margin=0pt]{geometry}

あなたは得るでしょう

ここに画像の説明を入力してください

しかし、余白を に設定したくない場合はどうすればよいでしょうか0pt?

マージンが設定されていると仮定すると、0.5in 次のようなものを試すことができます。

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

<some dimension>しかし、ボックスが適切に配置されるように 正確に設定する方法を把握するのは困難です (少なくとも私にとっては) 。

その場合は、tikz(これもオプションでパッケージをロードするときに呼び出されますtcolorbox)。次のようにすることができます:

\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}

取得するため

ここに画像の説明を入力してください

答え2

tcolorboxオファーキーを使用できます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}

ここに画像の説明を入力してください

関連情報