我对一些用于将文本环绕在数字周围的软件包有疑问。不是寻求代码方面的帮助,只是想从概念上了解如何让 TeX 执行此操作。
根据我对 TeX 的有限了解,我认为可能发生的情况如下:TeX 创建一个大的 vbox(宽度等于页面边距)来包含图像和文本。它将 vbox 的高度设置为等于图像的高度,将图像浮动到 vbox 容器的左边缘或右边缘,并创建第二个容器(另一个 vbox)来保存文本。这个内部 vbox 的尺寸是,它的宽度加上图像的宽度等于外部 vbox 的宽度,它的高度等于外部 vbox 的高度。然后,TeX 用尽可能多的文本填充这个内部框,如果不能,它会认为外部 vbox 容器已完成,并在新行上恢复其正常的框生成活动。
大致正确吗?谢谢。
编辑:我是这个论坛的新手。这个问题问得不好吗?
答案1
TeX 有一个概念,称为\parshape
,其中明确指定了段落中每行的长度。“换行”图形的包或例程取决于确定插入的形状/大小,然后指定\parshape
将容纳插入的 。
TUGboat 上发表了几篇使用这种技术的文章,其中包括:
- Donald Knuth,《周六早上的问题》,
Alan Hoenig,《TeX 做窗户:进度报告》,
(https://tug.org/TUGboat/tb08-1/tb17knutsat.pdf) - Donald Knuth,周六早上的问题-解决方案
(https://tug.org/TUGboat/tb08-2/tb18knutsat.pdf) - Alan Hoenig,TeX 可以做窗口——结论,
(https://tug.org/TUGboat/tb08-2/tb18hoenig.pdf) - Elizabeth Barnhart,《TeX 在商业环境中设置多列输出》,
(https://tug.org/TUGboat/tb08-2/tb18barnhart.pdf)
这些都描述了纯 TeX 应用的技术,但它们可能会帮助您了解插图是如何实现的。