В отличие от простого 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.


