有没有更好的方法来生成一个\savebox
尺寸等于纸张尺寸的,而不是坚持一个\strut
长度等于页面高度的(宽度是其\savebox
本身的一个参数)。
答案1
lrbox
使用es 和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}