\setuppapersize [A4][A4]
\setuplayout [width=middle, backspace=1.5in, cutspace=1.5in,
height=middle, topspace=0.75in, bottomspace=0.75in]
\setuppagenumbering[location={footer,center}]
\setupexternalfigures[
order={svg,pdf,png,jpg},
location=global,
wfactor=fit,
]
\definedescription
[description]
[headstyle=bold, style=normal, location=hanging, width=4cm]
\starttext
\placefigure[here,nonumber]{Little kitten}{\externalfigure[http://placekitten.com/g/480/300][method=jpg]}
\startdescription{{\externalfigure[http://placekitten.com/g/640/400][method=jpg]}}
\input bryson
\stopdescription
\stoptext
问题
小猫应该长到\textwidth
。另一只小猫应该能穿过 4 厘米宽的文字环绕其四周。它的图片应该与环绕文字顶部齐平。
小猫不能被触碰;只能改变之前的设置\starttext
。此外,为了尽可能普遍地解决这个问题,序言中不应出现对图像 URL 的引用。
我尝试了一些方法\setupexternalfigures
,wfactor=fit
但似乎不起作用。
答案1
解决方案
使用version: 2012.05.30 11:26
ConTeXt,则\setupexternalfigures[wfactor=fit]
没有效果。因此,以下解决方案也保持行内数字完整。
这一切都非常好,因为LaTeX2e 尚未能实现类似的功能。与 ConTeXt 相比,LaTeX2e 中浮动清除不是自动的;相反,人们需要对距离测量进行一番摸索。
\setuppapersize [A4][A4]
\setuplayout [width=middle, backspace=1.5in, cutspace=1.5in,
height=middle, topspace=0.75in, bottomspace=0.75in]
\setuppagenumbering[location={footer,center}]
\setuptolerance[horizontal, tolerant, stretch]
% Keep old definitions
\let\oldplacefigure\placefigure
\let\oldexternalfigure\externalfigure
% For full text-width figures
\def\placefigure[#1]#2#3{%
\def\externalfigure[##1]{\oldexternalfigure[##1][method=jpg, wfactor=fit]}%
\oldplacefigure[#1]{#2}{#3}%
\let\externalfigure\oldexternalfigure% Reset for in-line figures
}
% For figures with wrapped text
\definedescription[description][
headstyle=bold,
style=normal,
location=hanging,
width=4cm
]
\def\startdescription#1{%
\def\externalfigure[##1]{\oldexternalfigure[##1][method=jpg, width=4cm]}%
\oldplacefigure[none,left,high]{}{#1}%
\let\externalfigure\oldexternalfigure% Reset for in-line figures
}
\def\stopdescription{\endgraf}
\starttext
\placefigure[here,nonumber]{Little kitten}{\externalfigure[http://placekitten.com/g/480/300]}
\startdescription{{\externalfigure[http://placekitten.com/g/640/400]}}
\input bryson
\stopdescription
\stoptext
警告
不过,猫有一个警告;当带有描述的图形出现在页面末尾时,其换行文本将像以下示例一样从页面上掉下来。我从中提炼出了一个最小工作示例,并将其链接为后续问题。
较新的 ConTeXt 版本
最终我发现如何在 Debian 下安装 ConTeXt Standalone。我可以确认\setupexternalfigures[wfactor=fit]
现在在 ConTeXt 中可以使用version: 2013.09.09 19:45
。当像上面的例子一样不使用内联图像时,这可以显著减少代码。但是,在更一般的情况下,当存在内联图像时,[wfactor=fit]
不能使用,因为它也会对这些图像起作用。[wfactor=fit]
对内联图像起作用可以被视为 ConTeXt 错误。因此,上述解决方案也适用于较旧的 ConTeXt 版本,仍然是更通用的解决方案。
答案2
确实,您使用了错误的 (ConTeXt) 标记来实现效果。不过,我会提供一个解决方案来回答您的问题(但不回答您的问题 :)
该要求指出:
仅可改变 \starttext 之前的设置。
因此,情况如下:
\setuppapersize [A4][A4]
\setuplayout [width=middle, backspace=1.5in, cutspace=1.5in,
height=middle, topspace=0.75in, bottomspace=0.75in]
\setuppagenumbering[location={footer,center}]
\setupexternalfigures
[
order={svg,pdf,png,jpg},
location=global,
wfactor=fit,
]
\definedescription
[description]
[headstyle=bold, style=normal, alternative=hanging, width=4cm]
\definefloat[hangingfigure]
[hangingfigures]
[figures]
\setupfloat [hangingfigure]
[
default={left,none},
]
\def\startdescription{\placehangingfigure\empty}
\def\stopdescription{\endgraf}
\useexternalfigure[http://placekitten.com/g/640/400]
[http://placekitten.com/g/640/400]
[method=jpg,width=4cm]
\starttext
\placefigure[here,nonumber]{Little kitten}{\externalfigure[http://placekitten.com/g/480/300][method=jpg]}
\startdescription{{\externalfigure[http://placekitten.com/g/640/400][method=jpg]}}
\input bryson
\stopdescription
\stoptext
这使
更严重的是,markdown 提供的标记选项太少,无法实现复杂的元素。我自己的解决方案是使用预处理器来增强它,但 YMMW。