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/#d0e5961) 中的 proportional-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() 值只是数字,以便函数可以返回宽度。