Html 在XSL-FO中,如何避免在块之前出现分页符?

Html 在XSL-FO中,如何避免在块之前出现分页符?,html,xml,xslt,xsl-fo,Html,Xml,Xslt,Xsl Fo,我正在使用XSL将带有段落和块引号的HTML转换为FO 我如何避免段落和下面的块引号之间出现分页符 块引号后面的分页符可以 例如: <p> Some paragraph..</p> <blockquote>My reference</blockquote> <p> Another paragraph..</p> <blockquote>My reference</blockquote> 某个段落 我

我正在使用XSL将带有段落和块引号的HTML转换为FO

我如何避免段落和下面的块引号之间出现分页符

块引号后面的分页符可以

例如:

<p> Some paragraph..</p>
<blockquote>My reference</blockquote>
<p> Another paragraph..</p>
<blockquote>My reference</blockquote>
某个段落

我的推荐人 另一段

我的推荐人
我认为最简单的方法是用
fo:block
包装要保存在一起的元素,并添加
keep with next。在page=“always”
属性中,如图所示:


... p和blockquote元素的内容
您需要在由正常
p
生成的块和由
blockquote
生成的块之间使用所谓的a

特别是,由于
p
是一个通用标记,我认为最好的选择是在为
blockquote
HTML元素生成的
fo:block
中使用属性
keep with previous.inthepage=“always”

如果使用XSLT创建XSL-FO输出,则需要类似的内容(可能需要调整名称空间):


<fo:block keep-with-next.within-page="always">
    ... content of p and blockquote elements
</fo:block>
<xsl:template match="blockquote">
    <fo:block keep-with-previous.within-page="always" ...other attributes...>
        <xsl:apply-templates/>
    </fo:block>
</xsl:template>