В отличие от простого XSL:FO, стили DocBook используют модифицированную схему форматирования перечислений.
Исходная схема XSL:FO хорошо пояснена в заметке Lists, enumerations and description lists. Значение параметра provisional-distance-between-starts
нельзя задать вручную, оно автоматически вычисляется исходя из «ширины символа». На рисунке представлены метрики, используемые при вычислений отступов списков:
❶ Отступ от границы списка до начала текста. Задается параметром itemizedlist.label.width
(orderedlist.label.width
и т.д.) или для конкретного перечисления с параметром <?dbfo label-width="ширина"?>
. Примеры:
<xsl:param name="itemizedlist.label.width">10mm</xsl:param>
или
<orderedlist> <?dbfo label-width="10mm"?> <listitem> <para>Строка.</para> </listitem> </orderedlist>
Для списка аннотаций (callouts):
<xsl:attribute-set name="calloutlist.properties"> <xsl:attribute name="provisional-distance-between-starts">1.27cm</xsl:attribute> </xsl:attribute-set>
❷ Расстояние между символами перечня и началом текста. Задается параметром provisional-label-separation
:
<xsl:attribute-set name="list.block.properties"> <xsl:attribute name="provisional-label-separation">2pt</xsl:attribute> </xsl:attribute-set>
❸ Отступ текста от границы блока. Вычисляется с помощью body-start()
.
❹ Отступ символов перечня от границы блока. Можно задать значением text-indent
. Пример задания для нумерованного списка:
<xsl:attribute-set name="orderedlist.label.properties"> <xsl:attribute name="text-indent">2pt</xsl:attribute> </xsl:attribute-set>
Одновременно для всех типов перечислений можно задать в наборе list.block.spacing
.