一个块中的多个内联容器 - 无法让它们进入下一页
Multiple inline-containers in one block - can't get them to break to the next page
我正在使用内联容器渲染一系列图像。我的源文件有 5 个段落,每个段落包含 1 张图像。
<para stylename="Numbered Figure">
<image file="P_1568.pdf" width="7.90cm" height="12cm"/>
</para>
我有一张 A4 纸,其中有 2 张并排的图片,还有 2 张相互重叠的图片。
我的联系人:
<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>
这是结果:内联容器没有换行到下一页,而是溢出了页面。
看起来这 5 个内联容器被视为一个词,所以我尝试在每个内联容器之间添加一个 space:
</fo:inline-container><fo:inline><xsl:text> </xsl:text></fo:inline>
这导致图像 4 和 5 换行到第二页,而不是我打算将图像 1-4 放在第一页上。 space 太宽,图像 3+4+space 不能放在一条线上。
我尝试使用零宽度 space (U+200B),但随后图像又回到第 1 页溢出。
到目前为止我尝试过的,都没有成功:
- 在每个内联容器
后添加一个包含白色space字符的fo:inline
- 在包含 fo:block
上指定 widows="1" orphans="1"
我的目标是让图片 5 换行到第二页。有没有我可以设置的属性允许在 2 个内联容器之间中断?
(我需要内联容器,因为我在每个图像的顶部放置了一个文本元素)。
使用 Antennahouse 格式化程序。
编辑:
这可能是 Antennahouse Formatter 中的一个问题。当我的源包含 7 个图像时,图像放置正确(第 1 页上有 4 个图像,第 2 页上有 3 个图像)。
将 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>
我正在使用内联容器渲染一系列图像。我的源文件有 5 个段落,每个段落包含 1 张图像。
<para stylename="Numbered Figure">
<image file="P_1568.pdf" width="7.90cm" height="12cm"/>
</para>
我有一张 A4 纸,其中有 2 张并排的图片,还有 2 张相互重叠的图片。
我的联系人:
<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>
这是结果:内联容器没有换行到下一页,而是溢出了页面。
看起来这 5 个内联容器被视为一个词,所以我尝试在每个内联容器之间添加一个 space:
</fo:inline-container><fo:inline><xsl:text> </xsl:text></fo:inline>
这导致图像 4 和 5 换行到第二页,而不是我打算将图像 1-4 放在第一页上。 space 太宽,图像 3+4+space 不能放在一条线上。
我尝试使用零宽度 space (U+200B),但随后图像又回到第 1 页溢出。
到目前为止我尝试过的,都没有成功:
- 在每个内联容器 后添加一个包含白色space字符的fo:inline
- 在包含 fo:block 上指定 widows="1" orphans="1"
我的目标是让图片 5 换行到第二页。有没有我可以设置的属性允许在 2 个内联容器之间中断?
(我需要内联容器,因为我在每个图像的顶部放置了一个文本元素)。 使用 Antennahouse 格式化程序。
编辑: 这可能是 Antennahouse Formatter 中的一个问题。当我的源包含 7 个图像时,图像放置正确(第 1 页上有 4 个图像,第 2 页上有 3 个图像)。
将 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>