首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对齐fo:浮动顶部刷新与包装文本的上升线

对齐fo:浮动顶部刷新与包装文本的上升线
EN

Stack Overflow用户
提问于 2022-10-15 01:20:17
回答 1查看 35关注 0票数 0

是否有一种技术/方法来对齐边浮动顶部与其周围流动的文本的上升线?

下面是我的示例代码:

代码语言:javascript
复制
<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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-15 17:40:26

如果浮点数是图形,则可以使用fo:initial-property-set.

  • 我不确定为什么不总是应用line-height.conditionality="discard",但是您可以用一个fo:block.

  • You设置axf:baseline-grid="new"对每个fo:block-container (尽管您已经折现了该选项)H 220在每个fo:block.

  • You上放置d18(尽管您已经折现了该选项)H 220F 221>

代码语言:javascript
复制
<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的另一种选择

代码语言:javascript
复制
  <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

代码语言:javascript
复制
  <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:floatfo:inline顶部对齐。我不清楚为什么line-height.conditionality="discard"应该在fo:inline上工作,但它确实工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74076041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档