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 «числового» и прототипа функции proportional-column-width()
в Рекомендации XSL 1.1 (https://www.w3.org/TR/xsl11/#d0e5961):
числовая пропорциональная ширина столбца(числовая)
будет означать, что процент является допустимым значением, поскольку процент является относительным числовым числом. С ума сошел. Предположительно, каждое 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()
должны быть только числами, чтобы функция могла возвращать ширину.
person
Tony Graham
schedule
17.02.2020