是否有一种技术/方法来对齐边浮动顶部与其周围流动的文本的上升线?
下面是我的示例代码:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="pages">
<fo:region-body margin-left="1in" margin-right="1in" margin-top="1in" margin-bottom="1in" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="pages">
<fo:flow flow-name="xsl-region-body">
<fo:wrapper line-stacking-strategy="font-height" line-height.conditionality="discard" line-height="1.8" font-size="24pt">
<fo:block space-after="2lh">
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-1</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
<fo:block space-after="2lh">
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-2</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
</fo:wrapper>
</fo:flow>
</fo:page-sequence>
</fo:root>
我想我理解为什么这是:对于浮-1,包装的line-height.conditionality="discard" fo:block开始在参考区域的顶部,并删除上半领先部分。这是为了使我的文档中的任何元素都从相同的垂直位置开始,无论是表格、图像还是段落。但是,当我们不在参考区域的上边缘时,半前导的上半部分不会被丢弃,并且fo:float与行框的前边缘(而不是标称请求行矩形的前边缘)对齐。
是否有一种编程的通用技术,使浮动锚定在段落的开头与段落字体的上升线对齐,而不是它的第一行框?
我希望在整个文档中的任何潜在位置中,浮动-2与浮动-1的视觉对齐方式相同。通常,在我的情况下,将每个段落也包装在外部fo:block-container中可能不是一种选择,因为在许多其他地方可能会产生间隔/布局的副作用,我担心…。
我正在尝试使用Antennahouse的FO格式化程序7.2。
发布于 2022-10-15 17:40:26
如果浮点数是图形,则可以使用fo:initial-property-set.
fo:block-container上指定space-before。
line-height.conditionality="discard",但是您可以用一个fo:block.
axf:baseline-grid="new"对每个fo:block-container (尽管您已经折现了该选项)H 220在每个fo:block.
d18(尽管您已经折现了该选项)H 220F 221>

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
line-height="1.8" font-size="24pt"
line-stacking-strategy="font-height">
<fo:layout-master-set>
<fo:simple-page-master master-name="pages">
<fo:region-body margin-left="1in" margin-right="1in" margin-top="1in" margin-bottom="1in" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="pages">
<fo:flow flow-name="xsl-region-body" axf:baseline-grid="new">
<fo:block space-after="2lh" axf:initial-letters="2">
<fo:external-graphic src="logo-antenna-200x200.png"/>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
<fo:block space-after="2lh" axf:initial-letters="2">
<fo:external-graphic src="logo-antenna-200x200.png"/>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="pages">
<fo:flow flow-name="xsl-region-body" line-height.conditionality="discard">
<fo:block space-after="2lh">
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-1</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
<fo:block space-after="2lh">
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black" space-before="(1lh - 1em) div 2" space-before.conditionality="retain">
<fo:block>FLOAT-2</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="pages">
<fo:flow flow-name="xsl-region-body" line-height.conditionality="discard">
<fo:block space-after="2lh"><fo:initial-property-set line-height.conditionality="discard" />
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-1</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
<fo:block space-after="2lh"><fo:initial-property-set line-height.conditionality="discard" />
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-2</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="pages">
<fo:flow flow-name="xsl-region-body">
<fo:block space-after="2lh" axf:baseline-grid="new">
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-1</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
<fo:block space-after="2lh" axf:baseline-grid="new">
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-2</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="pages">
<fo:flow flow-name="xsl-region-body" line-height.conditionality="discard">
<fo:block space-after="2lh">
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-1</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
<fo:block-container space-after="2lh">
<fo:block>
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-2</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
</fo:block-container>
</fo:flow>
</fo:page-sequence>
</fo:root>使用text-altitude的另一种选择
<fo:page-sequence master-reference="pages">
<fo:flow flow-name="xsl-region-body">
<fo:block space-after="2lh" text-altitude="0">
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block line-height.conditionality="discard">FLOAT-1</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
<fo:block space-after="2lh" text-altitude="0">
<fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block line-height.conditionality="discard">FLOAT-2</fo:block>
</fo:block-container>
</fo:float>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
</fo:flow>
</fo:page-sequence><fo:inline line-height.conditionality="discard">围绕着fo:float
<fo:page-sequence master-reference="pages">
<fo:flow flow-name="xsl-region-body">
<fo:block line-height.conditionality="discard" space-after="2lh">
<fo:inline line-height.conditionality="discard"><fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-1</fo:block>
</fo:block-container>
</fo:float></fo:inline>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
<fo:block line-height.conditionality="discard" space-after="2lh">
<fo:inline line-height.conditionality="discard"><fo:float float="start">
<fo:block-container inline-progression-dimension="20%" background-color="yellow" border="1px solid black">
<fo:block>FLOAT-2</fo:block>
</fo:block-container>
</fo:float></fo:inline>Torem dolor amet adipisicing sed eiusmod incididunt labore dolore aliqua enim minim quis exercitation laboris ut ex commodo Duis irure in in velit cillum eu nulla Excepteur occaecat non sunt.</fo:block>
</fo:flow>
</fo:page-sequence>fo:inline与占主导地位的字母基线对齐,fo:float与fo:inline顶部对齐。我不清楚为什么line-height.conditionality="discard"应该在fo:inline上工作,但它确实工作。
https://stackoverflow.com/questions/74076041
复制相似问题