我正在尝试将图片放在我正在排版的书中。大多数图片都位于页面顶部。我希望我的标题使用比书的正文更小的字体和更小的行距。
\usemodule[visual] % for fake words and images
\useMPlibrary[dum]
\setuppapersize[B5]
\setuplayout[
backspace=25mm,
topspace=20mm,
width=131mm,
height=200mm,
footer=0mm,
grid=yes]
\showgrid
\setupinterlinespace[
line=3.5ex]
\setupbodyfont[serif,12pt]
\setupcaptions[figure][
number=no,
style={\itx\setupinterlinespace[small]}]
\starttext
\startplacefigure[
location=top,
title={\fakenwords{30}{0}}]
\externalfigure[dummy][width=\textwidth,height=7cm]
\stopplacefigure
\fakenwords{80}{1} \par
\fakenwords{80}{2}
\stoptext
据我所知,ConTeXt 将浮点数与标题的底线对齐。结果是图像的顶部最终处于随机高度,具体取决于图像高度和标题中的行数。
我的目标是将图像的顶部边缘与顶行的 X 高度对齐,以便与对页上的文本匹配。任何必要的空白都应位于标题下方。有没有办法实现它而无需手动调整每个浮动?
答案1
您可以通过覆盖输出例程中的浮点放置命令来实现。我只是复制了原始命令\page_one_command_flush_float_box
,将其重命名并删除\snaptogrid
。
\usemodule[visual] % for fake words and images
\useMPlibrary[dum]
\setuppapersize[B5]
\setuplayout
[backspace=25mm,
topspace=20mm,
width=131mm,
height=200mm,
footer=0mm,
grid=yes]
\showgrid
\setupinterlinespace[line=3.5ex]
\setupbodyfont[serif,12pt]
\setupcaptions
[figure]
[number=no,
style={\itx\setupinterlinespace[small]}]
\unexpanded\def\dontsnapfloatbox % \page_one_command_flush_float_box
{\expandafter\ifconditional\csname c_page_floats_center_box\endcsname
\ifdim\wd\floatbox<\hsize
\global\setbox\floatbox\hpack to \hsize{\hss\box\floatbox\hss}%
\fi
\fi
\hpack{\box\floatbox}}
\setupoutputroutine
[singlecolumn]
[page_otr_command_flush_float_box=\dontsnapfloatbox]
\starttext
\startplacefigure
[location=top,
title={\fakenwords{30}{0}}]
\externalfigure[dummy][width=\textwidth,height=7cm]
\stopplacefigure
\fakenwords{80}{1} \par
\fakenwords{80}{2}
\stoptext