是否可以构造一个指定了最大宽度的框,但在该宽度比一行中剩余的宽度更宽的情况下,该框只使用剩余的空间?
我的用例是一本有填空题的书。每个填空题都有一个宽度,比如说 15em。如果填空题打印成一个 15em 宽的框,那就太好了。但有时填空题会接近行尾,并延伸到边距。我更希望它以一个较短的框结尾。(我更喜欢这样,而不是任何类型的包装。)
考虑到我的用例,这里是我所追求的一种伪语法:\framebox[min(15em, width of an hfill)]{\strut}
。
答案1
一种方法是使用\leaders
。
\documentclass{article}
\def\zz{\leavevmode\vrule height 10pt\nobreak\leaders\vbox{\vskip-.4pt\hrule width .4pt\vskip 10pt \hrule\vskip-.4pt} \hskip 15em minus 15em \nobreak\hbox{\vrule height 10pt}}
\begin{document}
x\hspace{15em}X
zzzzzzzzzz \zz\ zzzzzzzzzzz \zz\ zzzzzzzzzzzzzz \zz\
zzzzzzzzzz \zz\ zzzzzzzzzzz \zz\ zzzzzzzzzzzzzz \zz
aaaa aaaaaaaaaaa aaaaaaaaaaaaaaaaa\zz
ZZZZZZZZZ aaaa aaaaaaaaaaa aaaaaaaaaaaaaaaaa\zz
ZZZZZZZZZZZZZZ aaaa aaaaaaaaaaa aaaaaaaaaaaaaaaaa\zz
ZZZZZZZZZZZZZZZZZZ aaaa aaaaaaaaaaa aaaaaaaaaaaaaaaaa\zz
\end{document}
答案2
您可以使用进球线\linegoal
提供扩展到线的剩余长度的伪长度的包。