![水平拉伸 \fbox 以适合页面](https://linux22.com/image/288920/%E6%B0%B4%E5%B9%B3%E6%8B%89%E4%BC%B8%20%5Cfbox%20%E4%BB%A5%E9%80%82%E5%90%88%E9%A1%B5%E9%9D%A2.png)
我在一些文本 ( ) 旁边有一个框架框Komentar:
,我想拉伸它以填满整个页面。我使用计算通过从(或或)\widthof{Komentar: }
中减去 来包装。\hsize
\textwidth
\linewidth
Komentar: \fbox{
\newlength\mylength
\setlength\mylength{\hsize - \widthof{Komentar: }}
\begin{minipage}[t]{\mylength}
\hfill
\vspace{8cm}
\end{minipage}
}
但是,这会将框拉伸到似乎超出右边距的范围:我中间有两段文本\hfill
,而框似乎超出了该范围。事实上,看起来,\hsize
和\textwidth
返回的值比实际的\linewidth
要宽。下面是一张我的意思的图片:\hfill
所以,要么是我没有正确获取页面宽度,要么是我做错\hfill
了。无论如何,如果能得到帮助,我将不胜感激。
PS 我还收到一条警告,\hbox
第 84-92 行的段落太宽了 17.89452pt。
编辑: 这是 MWE。您将获得我正在使用的自定义文档类这里。
\documentclass[a4paper, 12pt, master]{etf}
\usepackage{calc}
\begin{document}
{\setlength\parindent{0pt}
Komentar: \fbox{
\newlength\mylength
\setlength\mylength{\hsize - \widthof{Komentar: }}
\begin{minipage}[t]{\mylength}
\hfill
\vspace{8cm}
\end{minipage}
}
Datum odbrane: \underline{\hspace{7em}} \hfill
Ocena: \underline{\hspace{6em}} (\underline{\hspace{2em}})
}
\end{document}
答案1
{\setlength\parindent{0pt}
Komentar: \fbox{ %< there is a space here
%< Doesn't introduce a space but never allocate a register inside a group
\newlength\mylength
\setlength\mylength{\hsize - \widthof{Komentar: }} %< there is a space here
\begin{minipage}[t]{\mylength}
\hfill
\vspace{8cm}
\end{minipage} %< there is a space here
}
因此,您有Komentar:
一个包含以下内容的 fbox
\hsize - \widthof{Komentar: } + 2 word spaces
考虑到规则和填充,该框的宽度为
\hsize - \widthof{Komentar: } + 2 word spaces + 2\fboxsep + 2\fboxrule
可能您想要注释掉行尾以%
避免添加不必要的空间,并考虑2\fboxsep + 2\fboxrule
到框的宽度。