垂直模式的 XeTeXpicfile

垂直模式的 XeTeXpicfile

给出最小的喜欢

\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 外壳具有正确的外部尺寸,因此XY的定位与(X1)的相同规则相同,但bbb定位很奇怪。盒子记录没有给出任何指示,但它被自己的宽度偏移并套印Y。如果你将图片什么放在\hboxX3 中,那么外部尺寸不变,但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

相关内容