proportional-column-width(4)
会工作。proportional-column-width(4%)
将不会。
如果您希望列是可用宽度的 4%,请使用column-width="4%"
(请参阅https://www.w3.org/TR/xsl11/#column-width)。
我认为你是我见过的第一个尝试使用百分比而不是数字的人proportional-column-width()
,你让我大吃一惊。
严格阅读 XSL 1.1 中的“数字”定义和XSL 1.1 建议 ( https://www.w3.org/TR/xsl11/#d0e5961proportional-column-width()
) 中的函数原型:
数字比例列宽(数字)
将指示百分比是有效值,因为百分比是相对数字。脑洞大开。大概proportional-column-width()
同一个表中的每个都需要是一个相对数值,以便它们可以加在一起。但是,这可能会导致无意义的定义,例如:
<fo:table layout="fixed" width="100%">
<fo:table-column column=width="proportional-column-width(4%)" />
<fo:table-column column=width="proportional-column-width(4%)" />
<fo:table-body>...</fo:table-body>
</fo:table>
其中两个“4%”列各占宽度的 50%。
幸运的是,我的理智的定义proportional-column-width()
包括:
表格宽度和列宽度之和之间的差异是可用的比例宽度。一种比例测量单位是可用比例宽度除以比例因子的总和。
如果比例宽度都是相对数字(实际上是长度),那么将可用的比例宽度除以长度将产生一个无单位的数字。无单位数字不会作为 的结果起作用proportional-column-width()
,因此您需要返回proportional-column-width()
仅是数字的值,以便函数可以返回宽度。