![ConTeXt 中,浮动对象位于另一个浮动对象内](https://linux22.com/image/245042/ConTeXt%20%E4%B8%AD%EF%BC%8C%E6%B5%AE%E5%8A%A8%E5%AF%B9%E8%B1%A1%E4%BD%8D%E4%BA%8E%E5%8F%A6%E4%B8%80%E4%B8%AA%E6%B5%AE%E5%8A%A8%E5%AF%B9%E8%B1%A1%E5%86%85.png)
我需要一个页面,其中左侧是带有图片的文本列。在文本列中,我需要右侧的浮动字母。以下是代码:
\starttext
\startfiguretext[left]{none}%
{\externalfigure[ http://farm6.static.flickr.com/5260/5543764878_c5b27b5aed_s.jpg]
[width=26.5mm,height=26.5mm]}%
\framed[frame=off,width=96mm,align=flushleft]{%
\placefigure[right,none,fit]{none}{%
\framed[frame=off,background=letteroverlay,height=1cm]{ A}
}%
{\bfb Bla bla bla}%
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc lobortis
accumsan sem vitae molestie. Mauris tincidunt elementum mi, semper aliquet
sapien convallis sed.%
}%
\stopfiguretext%
\stoptext
问题是,如果我使用字母“A”的框架,图片就会消失。如何在另一个框架内放置浮动框架框?我不能使用边距,因为这应该在两列内。
最终文件看起来应该如下图所示:
答案1
不过,我不确定我是否明白你想要做什么。根据你的标题,你想要一个浮动对象在另一个浮动对象内。这没有多大意义。我认为你并不是真的想要几个浮动对象,而是命令的特定功能\placefloat
。
我既没有看到您示例中的列,也没有看到示例代码与您提供的图形的匹配程度。不过,这是我能想到的解决方案:
% for the placeholder graphic
\useMPlibrary [dum]
\setuplayout [backspace=5cm, width=middle]
\definefloat [innerfloat] [innerfloats]
\setupcaption [innerfloat] [location=none]
\defineframedtext [innerfloat] [frame=off, width=1cm]
\starttext
\inmargin{%
\externalfigure
[placeholder]
[width=26.5mm,height=26.5mm]
{\bfb Bla bla bla}\par
Some text…}
\input knuth
\startplaceinnerfloat [location={right,fit}]
\startinnerfloat
\bfc A
\stopinnerfloat
\stopplaceinnerfloat
\input knuth
\stoptext
结果如下:
由于列中的浮动比较棘手,因此我使用边距作为列。