我想将文本叠加到其他对象上(在本例中是图片)。我的想法是将图片存储在 中\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@pt
LaTeX 中定义的格式,例如,在 LaTeX 中,在单位和非单位字体大小表示之间切换
\edef\f@size{\strip@pt\@tempdimb}%
但通常在图片模式下随处使用单位会更容易,这样就不会局限于始终使用相同的单位。