DocBook: форматирование перечислений

В отличие от простого XSL: FO, стили DocBook используют модифицированную схему форматирования перечислений. Исходная схема XSL: FO хорошо пояснена в заметке Lists, enumerations and description lists. Значение параметра provisional-distance-between-starts нельзя задать вручную, оно автоматически вычисляется исходя из «ширины символа». На рисунке представлены метрики, используемые при вычислений отступов списков:

Схема DocBook

❶ Отступ от границы списка до начала текста. Задается параметром 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.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *