给出最小的喜欢
\line{%
\vtop{\hsize=.6\hsize
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tempor lectus sit amet laoreet convallis. Quisque at est lacinia, porttitor justo quis, congue tortor. Pellentesque ac augue vitae felis facilisis convallis vel quis leo. Cras sapien quam, porttitor et molestie id, accumsan quis diam.
Ut id venenatis ante, in tincidunt leo. Praesent hendrerit, tellus vitae tristique blandit, tellus urna imperdiet dolor, ut mollis enim lacus id felis. Suspendisse ullamcorper sollicitudin diam, nec luctus velit dapibus eu.
}\hfill%
\vtop{\hsize=.4\hsize
\XeTeXpicfile "kitten.jpg" width \hsize
Foo
}%
}
\bye
例如kitten.jpg
,来自放置小猫。
文本Foo
去哪儿了?更重要的是,为什么?
另外,为什么图像上方有一些神秘的空间?
我想要一种float: right
类似 CSS 的行为。
答案1
其实我的第一个回答有点不公平。xetex whatsit 在垂直模式下的行为非常奇怪。将其置于 hmode 下,它就合理得多。
\tracingall
\line{%
\vtop{\hsize=.6\hsize
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tempor lectus sit amet laoreet convallis. Quisque at est lacinia, porttitor justo quis, congue tortor. Pellentesque ac augue vitae felis facilisis convallis vel quis leo. Cras sapien quam, porttitor et molestie id, accumsan quis diam.
Ut id venenatis ante, in tincidunt leo. Praesent hendrerit, tellus vitae tristique blandit, tellus urna imperdiet dolor, ut mollis enim lacus id felis. Suspendisse ullamcorper sollicitudin diam, nec luctus velit dapibus eu.
}\hfill%
\vtop{\hsize=.4\hsize
\null
\hbox{\XeTeXpicfile "kitten.jpg" width \hsize}%
FooooooooooooooooooooooooX
}%
}
\bye
原始图像顶部的空间是因为参考点位于图像的顶部,因此它与参考点对齐,参考点是基线第一行的文本,而不是其顶部。在 hmode 中,参考点位于底部,但我放置了一个\null
,以便 vtop 几乎对齐,您可能需要进行调整\ht\strutbox
才能获得参考点,因此图像的顶部与字母的顶部对齐。
看起来最好只使用\XeTeXpicfile
作为其列表中的唯一内容。在下面的示例中,X2 外壳具有正确的外部尺寸,因此X
和Y
的定位与(X1)的相同规则相同,但bbb
定位很奇怪。盒子记录没有给出任何指示,但它被自己的宽度偏移并套印Y
。如果你将图片什么放在\hbox
X3 中,那么外部尺寸不变,但bbb
会翻转回盒子内部并定位为X1
。
\tracingoutput1
\tracingonline1
\showboxbreadth\maxdimen
\showboxdepth\maxdimen
X1\hbox{\hbox{aaa}\vrule width 2cm\hbox{bbb}}Y
\bigskip
\hrule
\bigskip
X2\hbox{\hbox{aaa}\XeTeXpicfile "kitten.jpg" width 2cm\hbox{bbb}}Y
\bigskip
\hrule
\bigskip
X3\hbox{\hbox{aaa}\hbox{\XeTeXpicfile "kitten.jpg" width 2cm}\hbox{bbb}}Y
\bigskip
\hrule
\bigskip
X4\vbox{\hbox{aaa}\XeTeXpicfile "kitten.jpg" width 2cm\hbox{bbb}}Y
\bye