XSL FO分页符取决于段落的换行符



我必须修改xsl-fo模板,我对此非常陌生,希望任何人都能在这一步上帮助我。一个请求是关于孤立元素,取决于段落的行数。有类似于此的列表项

Topic Text
    1. List entry (first)
    ...
    x. List entry (penultimate)
    y. List entry (last)

请求如下:如果xy之间存在分页符,则如果列表条目在pdf输出中至少有3行,则最后一个列表条目必须仅在下一页上。若x的行数少于3行,则y也必须在下一页上。像这样:

widow = 2 if last list entry < 3 lines else widow = 1

xsl-fo使用Antenna House格式化程序,这可能吗?你能告诉我在哪里可以找到更多的信息吗?提前感谢

基督徒编辑:我到处玩,但我没能找到一个解决方案来计算最后一个节点的行数。所以我找不到检查最后一个节点的方法。

代码片段:

    <xsl:otherwise>
        <fo:block background-color="{$color}">
            <xsl:if test="$myId != ''"><xsl:attribute name="id"><xsl:value-of select="$myId"/></xsl:attribute></xsl:if>
            <!-- full width for AnnexTemplate -->
            <xsl:if test="($parent = $AnnexTemplate)"><xsl:attribute name="start-indent">-<xsl:value-of select="$leftIndent"/>mm</xsl:attribute></xsl:if>
            <xsl:call-template name="insertParaAttributes"><xsl:with-param name="stylename" select="$style"/></xsl:call-template>
            <!-- text before table -->
            <xsl:if test="following-sibling::table"><xsl:attribute name="keep-with-next">10</xsl:attribute></xsl:if>
            <xsl:call-template name="dummy"/>
            <xsl:apply-templates/>
        </fo:block>
    </xsl:otherwise>

以及附加的输出。输出希望这有助于更好地应对。

在我理解描述的范围内,选项包括:

  • 倒数第二个列表条目上的orphans="3"(http://www.w3.org/TR/xsl11/#orphans)
  • 倒数第二个列表条目上的keep-with-next.within-page="always"(http://www.w3.org/TR/xsl11/#keep-下一个)
  • 倒数第二个列表条目上的keep-with-next.within-page的整数值和包含fo:list-block的较低keep-together.within-page的值,不过您必须进行实验才能确定它是否有效

最新更新