![根据图形在 ConTeXt 中应跨越的行数来定义图形的大小](https://linux22.com/image/246511/%E6%A0%B9%E6%8D%AE%E5%9B%BE%E5%BD%A2%E5%9C%A8%20ConTeXt%20%E4%B8%AD%E5%BA%94%E8%B7%A8%E8%B6%8A%E7%9A%84%E8%A1%8C%E6%95%B0%E6%9D%A5%E5%AE%9A%E4%B9%89%E5%9B%BE%E5%BD%A2%E7%9A%84%E5%A4%A7%E5%B0%8F.png)
我正在使用 ConTeXt 制作一个包含许多插图的文档。有些插图的放置位置如下(括号中的区域是插图的显示位置):
This is some text. This is some text.
[ ] X This is some
[ ] text. This
[ ] is some text.
[ ] This is some
[ ] text. This
[ ] is some text.
[ ] This is some
text. This is some text. This is some
text.
在此示例中,图形正好是 7 行高,宽度调整为 1:1 比例。图形顶部与第 2 行文本顶部对齐,图形底部与第 8 行文本底部对齐。
- 如何通过定义图形必须跨越的行数来以这种方式将图形放置在文档中?
答案1
Marco 已经回答了如何将图形放在左侧,以及如何将图形的高度设置为特定的行数。
您还希望图形从段落开头下方一行开始。为此,请添加hang
到location
参数。要从段落开头下方两行开始,请添加2*hang
等。
例如(我使用虚拟文本的可视化模块):
\usemodule [visual]
\setupfloats [spacebefore=, spaceafter=]
\setupindenting[big,yes]
\starttext
\fakewords{20}{30}
\startplacefigure [location={left,none,2*hang}]
\externalfigure[dummy][height=8\lineheight]
\stopplacefigure
\fakewords{150}{250}
\stoptext
给出以下内容(蓝色矩形表示新段落前面的 parindent)
答案2
下面应该可以实现你想要的效果。
\useMPlibrary [dum]
\setupfloats [spacebefore=, spaceafter=]
\starttext
\input ward
\startplacefigure [location={left,none}]
\externalfigure [dum] [height=8\lineheight]
\stopplacefigure
\input knuth
\stoptext
MP 库仅用于虚拟图形。根据您的图形,图形上方和下方不应有空间,因此我将其删除。然后,只需告诉 ConTeXt 图形应放置在左侧并告知\externalfigure
图像的高度即可。纵横比会自动保留,如果您不想要这个,请同时指定宽度。
结果: