table 不同字体大小内容的对齐方式
Alignment of table content of different font-size
我正在用不同大小的文本填充 table(左列 Helvetica 6pt,右列 Times 8pt),但文本的基线没有对齐 - 左边的文本明显高于那个在右栏中。我怎样才能让它好看?使用 FOP 2.1.
一种方法是添加 line-height=...
但是我必须将 line-height 设置为什么值才能获得与现在相同的垂直间距?
有没有更通用的方法?
<fo:block-container position="absolute" top="27mm" left="125mm" width="75mm" font-family="Times" font-size="8pt">
<fo:table table-layout="fixed">
<fo:table-column column-width="2.7cm"/>
<fo:table-column column-width="4cm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block margin-top="12pt" font-size="6pt" font-family="Helvetica">Contact:</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block margin-top="12pt">Normally me</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block font-size="6pt"> </fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>Manager</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block font-size="6pt" font-family="Helvetica">email:</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>dings@bums</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block-container>
更多的研究和更多的评论:line-height="inherit"
<fo:block font-size="6pt" font-family="Helvetica" line-height="inherit">
在左栏的所有区块中
在这种情况下没有在任何地方指定明确的行大小。
从排版上来说,对于您所描述的情况,如果您希望两列共享相同的基线,则应使用较大的字体 8 号 Times Roman 来设置行距(或行距),不是你的小号。
8-point Times 期望从一个基线到下一个基线默认领先 8 个点。任何低于它的,它从上线下降的风险都会撞到下线的上升线;因此你不能减少它的行距以匹配隔壁的 6 点 Helvetica。
如果左边的文本比右边的高,这可能是因为字形的定位是先下降到基线,然后再放置文本。因此,6 点 Helvetica 在设置前下降 6 点; 8 点 Times 在设置前下降 8 点,您正在查看错位。确定您的哪一列将具有最大的前导值,通过添加适当数量的行间前导来设置您的其他列以匹配它,并且应该保持彼此对齐。 (然而,你的小脸看起来仍然相当空白;你可以考虑只是提升它们以匹配 table 行中的最大点大小。)
我正在用不同大小的文本填充 table(左列 Helvetica 6pt,右列 Times 8pt),但文本的基线没有对齐 - 左边的文本明显高于那个在右栏中。我怎样才能让它好看?使用 FOP 2.1.
一种方法是添加 line-height=...
但是我必须将 line-height 设置为什么值才能获得与现在相同的垂直间距?
有没有更通用的方法?
<fo:block-container position="absolute" top="27mm" left="125mm" width="75mm" font-family="Times" font-size="8pt">
<fo:table table-layout="fixed">
<fo:table-column column-width="2.7cm"/>
<fo:table-column column-width="4cm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block margin-top="12pt" font-size="6pt" font-family="Helvetica">Contact:</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block margin-top="12pt">Normally me</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block font-size="6pt"> </fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>Manager</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block font-size="6pt" font-family="Helvetica">email:</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>dings@bums</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block-container>
更多的研究和更多的评论:line-height="inherit"
<fo:block font-size="6pt" font-family="Helvetica" line-height="inherit">
在左栏的所有区块中 在这种情况下没有在任何地方指定明确的行大小。
从排版上来说,对于您所描述的情况,如果您希望两列共享相同的基线,则应使用较大的字体 8 号 Times Roman 来设置行距(或行距),不是你的小号。
8-point Times 期望从一个基线到下一个基线默认领先 8 个点。任何低于它的,它从上线下降的风险都会撞到下线的上升线;因此你不能减少它的行距以匹配隔壁的 6 点 Helvetica。
如果左边的文本比右边的高,这可能是因为字形的定位是先下降到基线,然后再放置文本。因此,6 点 Helvetica 在设置前下降 6 点; 8 点 Times 在设置前下降 8 点,您正在查看错位。确定您的哪一列将具有最大的前导值,通过添加适当数量的行间前导来设置您的其他列以匹配它,并且应该保持彼此对齐。 (然而,你的小脸看起来仍然相当空白;你可以考虑只是提升它们以匹配 table 行中的最大点大小。)