目标
我希望能够将标题(我不使用文字,只使用“图 X”标签)放在边缘中央,以下图像,而不会干扰图像和其后的文本之间的空间。
尝试 1
我首先尝试将图像锚定inner
,然后将标题放在边距中。但标题不在图像下方:
\setuppapersize[A5]
\definefloat[widefigure][figure]
\setupfloat[widefigure]
[location=inner,
]
\setupcaption[widefigure]
[location={rightmargin,low},
style=\tfxx,
align=middle,
width=\rightmarginwidth,
]
\showframe
\starttext
\input ward
\startplacewidefigure
\blackrule[width=\dimexpr(\textwidth+\rightmargindistance+\rightmarginwidth),height=1in,color=darkyellow]
\stopplacewidefigure
\input ward
\stoptext
尝试 2
我第二次尝试将图像放在右边距(使其更宽以插入文本)。然后我可以使用bottom
边距键。现在图像和标题之间的状态看起来不错,但图像和后面的文本之间有垂直空间,我不知道如何消除。示例:
\setuppapersize[A5]
\definefloat[widefigure][figure]
\setupfloat[widefigure]
[location=rightmargin,
spaceafter=,
]
\setupcaption[widefigure]
[location={bottom},
style=\tfxx,
align=middle,
width=\rightmarginwidth,
height=0pt,
spaceafter=,
]
\showframe
\starttext
\input ward
\startplacewidefigure
\blackrule[width=\dimexpr(\textwidth+\rightmargindistance+\rightmarginwidth),height=1in,color=darkyellow]
\stopplacewidefigure
\input ward
\stoptext
我所看过的地方
我正在读ConTeXt 命令的参考,但我找不到合适的选项\setupfloatcaption
(似乎是正确的地方)来提供我想要的内容。此外,从最后一节关于字幕处理详细手册我不知道如何实现这一点。
概括
有没有办法 1)降低第一个例子中的标题,使其位于图像下方,或者 2)减少第二个例子中图像后的空间(标题应该与接下来的内容独立)?
答案1
正如@Aditya 所建议的,可以使用装饰品。我将其保留为答案,因为它可能对其他人有用,但请等待其他可能更清晰的答案。
\setuppapersize[A5]
\definefloat[widefigure][figure]
\setupfloat[widefigure]
[location=rightmargin,
]
\setupcaption[widefigure]
[location=none,
]
\define[2]\WideFigure{%
\startplacewidefigure[reference={#1}]
\layeredtext
[corner={right,bottom},location={left,bottom}]
[offset=0pt]
{\framed[width=\rightmarginwidth,height=5ex,frame=off]{\bfxx\in{Figure}[#1]}}
{#2}
\stopplacewidefigure
}
\showframe
\starttext
\input ward
\WideFigure{fig:test}{%
\blackrule[width=\dimexpr(\textwidth+\rightmargindistance+\rightmarginwidth),height=1in,color=darkyellow]}
\input ward
\stoptext
结果: