如何删除 fo:block 内的自动空间

问题描述 投票:0回答:1

我正在写一个带有标题和 fo:leader 的简单块,下面是示例代码:

<fo:block font-weight="bold" font-size="4.3mm">
   Methods
   <fo:leader leader-pattern="rule" rule-thickness=".5mm" leader-length="267mm" color="cmyk(0,0,0,1)"/>
</fo:block>

所以我的期望是文本将作为标题和规则出现在标题下方,但我看到“方法”和规则之间有明显的空间

附上样品;我在屏幕截图中用向下箭头突出显示了空间:

displayImage

我可以用

fo:block
fo:leader
中的什么规格来删除那个空间?

xslt-2.0 xsl-fo apache-fop
1个回答
1
投票

fo:leader
是一个内联 FO。一个较短的领导者通常会紧跟其前面的文本;类似于:“方法_____”。因为你的
leader-length
被固定到,大概是身体区域的宽度,领导者被迫到下一行。

你看到的空间是因为领导者在下一行的字母基线上,就像它与文本在同一行时一样。 @MartinHonnen 的解决方案将规则移动到其行空间的顶部,但在移动的领导者下方仍有空白行的空间。在

fo:block
之后的
fo:block
和领导者看起来像它前面有一个空行(这可能是你想要的)。

其他可能的解决方案包括:

  • border-bottom
    上设置
    fo:block
    而不是使用
    fo:leader
  • line-height
    上设置
    font-size
    和/或
    fo:leader
    ,这样占用的空间更少
  • 使用带边框的空
    fo:block
    代替
    fo:leader
    并设置
    line-height
    font-size
    space-before
    和/或
    space-after
    以获得您想要的效果。
© www.soinside.com 2019 - 2024. All rights reserved.