我正在嘗試將數字放入我正在排版的書中。其中大多數最終出現在頁面頂部。我希望我的標題使用比書的正文更小的字體和更小的行距。
\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