\makebox 和尺寸单位的问题

\makebox 和尺寸单位的问题

我想将文本叠加到其他对象上(在本例中是图片)。我的想法是将图片存储在 中\mabox,在 中显示它, \makebox宽度和高度为 0,然后通过第二个 来显示文本\makebox,宽度和高度等于\mabox。我的尝试失败了,因为\wd\mabox传递了一个带单位的长度,并\makebox期望一个不带单位的长度。我怎样才能做得更好?

\documentclass{article}
\usepackage{graphicx}
\usepackage{blindtext}

\begin{document}

\newsavebox\mabox
\sbox{\mabox}{\includegraphics[scale=0.10]{Pingouin}}
\makebox(0,0)[b]{\put(0,0){\usebox\mabox}}
\fbox{\makebox(\wd\mabox,\ht\mabox)[b]{\put(0,0){\parbox{\wd\mabox}{\blindtext}}}}

\end{document}

答案1

不要告诉任何人我告诉你了,但你可以去

\def\unitlength{}
\sbox{\mabox}{\includegraphics[scale=0.10]{Pingouin}}
\makebox(0pt,0pt)[b]{\put(0pt,0pt){\usebox\mabox}}
\fbox{\makebox(\wd\mabox,\ht\mabox)[b]{\put(0pt,0pt){\parbox{\wd\mabox}{blindtext}}}}

请注意,既然已经将其设为\unitlength无单位,就必须在通常取整数的位置放置明确的单位。

另一种方法是使用\strip@ptLaTeX 中定义的格式,例如,在 LaTeX 中,在单位和非单位字体大小表示之间切换

   \edef\f@size{\strip@pt\@tempdimb}%

但通常在图片模式下随处使用单位会更容易,这样就不会局限于始终使用相同的单位。

答案2

使用picture包,以便

\makebox(1cm,3in){...}

被接受;您可以在环境的所有命令中放置显式和隐式(即以寄存器值表示)维度picture

相关内容