以下示例在第二个文本后产生换行符。
\define[2]\smallfigure{\placefigure[margin][#1]{#2}{!}}%
\starttext
text text\smallfigure{fig1}{A}text text
\stoptext
这ConTeXt 常见问题解答明确解决了这个问题。然而,尽管问题看起来相同,将宏更改为
\define[2]\smallfigure{\dontleavehmode\placefigure[margin][#1]{#2}{!}}%
无法按预期工作,并完全避免使用宏
\starttext
text text\dontleavehmode\placefigure[margin][]{A}{!}text text
\stoptext
也不起作用。有没有办法避免换行?
答案1
转移placefigure
通话
一个解决方案是将图表放在段落开头。这样可以使文本保持连贯。
\starttext
\startplacefigure [title=Caption,location=margin]
\externalfigure [dummy]
\stopplacefigure
text text
text text
\stoptext
使用推迟机制
延迟机制使文本保持在一起。但是,它会影响浮动的位置。浮动在页面上出现在文本之后,这可能是不理想的。
text text
\startpostponing [+1]
\startplacefigure [title=Caption,location=margin]
\externalfigure [dummy]
\stopplacefigure
\stoppostponing
text text