代码之家  ›  专栏  ›  技术社区  ›  Hobbes

一个块中有多个内联容器-无法使它们断开到下一页

  •  0
  • Hobbes  · 技术社区  · 6 年前

    我正在使用内联容器呈现一系列图像。我的源文件有5个段落,每个段落包含1个图像。

    <para stylename="Numbered Figure">
        <image file="P_1568.pdf" width="7.90cm" height="12cm"/>
    </para>
    

    我有一张A4纸,其中两张并排放,两张放在上面。

    我的FO:

    <xsl:when test="@stylename = 'Numbered Figure'">
        <fo:block widows="1" orphans="1">
          <fo:inline-container width="descendant::image/@width">
            <fo:external-graphic src="descendant::image/@file">
            <fo:block-container>
                 code for placing a number in the top left corner of the image
            </fo:block-container> 
        </fo:inline-container>
      <fo:block>
    

    结果是:内联容器不会换行到下一页,而是溢出该页。
    enter image description here

    这看起来5个内联容器被视为一个单词,因此我尝试在每个内联容器之间添加一个空格:

    </fo:inline-container><fo:inline><xsl:text> </xsl:text></fo:inline>
    

    这将导致图像4和5被包装到第二页,而不是我希望在第一页有图像1-4。空间太宽,图像3+4+空间不适合一行。
    我尝试使用零宽度空间(U+200B)代替,但图像又回到了第1页的溢出状态。

    到目前为止我所做的尝试都失败了:

    • 在每个内联容器后添加包含空白字符的fo:inline
    • 在包含fo:block上指定widows=“1”orphans=“1”

    我的目标是让第二页的图像5自动换行。是否可以设置允许在两个内联容器之间中断的属性?

    (我需要内联容器,因为我在每个图像的顶部放置了一个文本元素)。 使用天线室格式化程序。

    编辑: 这可能是天线室格式化程序的问题。当我的源包含7个图像时,图像被正确放置(第1页上有4个图像,第2页上有3个图像)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tony Graham    6 年前

    设置两者 widows orphans 到1,以便块可以断开并在下一页上只放一行。

    <fo:block widows="1" orphans="1">
        <fo:inline-container width="7.90cm" height="12cm">
            <fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
        </fo:inline-container>
        <fo:inline-container width="7.90cm" height="12cm">
            <fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
        </fo:inline-container>
        <fo:inline-container width="7.90cm" height="12cm">
            <fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
        </fo:inline-container>
        <fo:inline-container width="7.90cm" height="12cm">
            <fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
        </fo:inline-container>
        <fo:inline-container width="7.90cm" height="12cm">
            <fo:block><fo:external-graphic src="ah-logo.svg" /></fo:block>
        </fo:inline-container>
    </fo:block>