如何让 Context MkIV 自动插入分页符,使\section
标题与段落保持同步,同时还附带浮动图像,而不是将标题放在部分页面的末尾,并将该部分中的第一个段落与图像放在下一页的顶部?添加\testpage
分段宏似乎不是一个通用的解决方案,因为通常有空间可以容纳两行文本,但不足以容纳图像。
梅威瑟:
\setuppapersize[letter]
\setupexternalfigures[location=default]
\starttext
\chapter{Chapter}
\section{Section 1}
\input lorem.tex
\input lorem.tex
\section{Section 2}
\placefigure [right]{cow}
{\externalfigure[cow][height=2in]}
\input lorem.tex
\stoptext
这会将章节标题放在第一页,将文本和图像放在第二页。我想将章节标题与文本和图像放在一起,而不必在每次文档更改时手动调整。
注意:相关问题的解决方案位于ConTeXt:换行文本在分页符处行为异常这可能会被调整,因为它还涉及查找图像的大小,但我对 Context 还只是个初学者,还没有准备好深入研究。
编辑:\testpage
没有办法自动测量以下图像中的“行数”,这不是一个通用的解决方案,有些随意的输入\testpage
答案1
我不知道如何解决完全避免在章节标题和第一段之间出现分页符的一般问题。但是,由于您为图像提供了 2 英寸的高度,因此将该高度转换为行并直接使用非常简单testpage
该getnoflines
命令似乎可以计算行中某些东西的高度。
将英寸转换为线:
\getnoflines{2in}
\the\noflines
因此,您可以定义一个使用英寸作为参数的测试页修改版:
\setuppapersize[letter]
\setupexternalfigures[location=default]
\def\Checkpage#1{%
\getnoflines{#1}
\testpage[\the\noflines]%
}
\starttext
\chapter{Chapter}
\section{Section 1}
\input lorem.tex
\input lorem.tex
\Checkpage{3in}
\section{Section 2}
\placefigure [right]{cow}
{\externalfigure[cow][height=2in]}
\stoptext
这并不是完全自动的,但您的图形放置也不是自动的……因此您可以根据Checkpage
需要添加命令。如果您的图形始终具有相同的高度,那么您可以定义使用固定图形高度的替代命令。
我使用 3 英寸而不是 2 英寸作为图形标题和类似内容的粗略代理。