ГОСТ Р ИСО/МЭК 26300—2010/Раздел 7

ГОСТ Р ИСО/МЭК 26300—2010 «Информационная технология. Формат Open Document для офисных приложений (OpenDocument) v1.0» — Раздел 7


7 Текстовые индексы

править

Текст документов OpenDocument может содержать автоматически сформированные индексы. Индекс содержит отсортированный список всех элементов определенного типа, где критерии сортировки (положение в документе, алфавитный и т. д.) и типы элементов (заголовки глав, таблиц, и т. д.) определены типом индекса.

7.1 Индексные метки

править

Существует три типа индексных меток, соответствующие трем типам индексов, использующих индексные метки:

  • индексные метки оглавления;
  • определяемые пользователем индексные метки;
  • алфавитные индексные метки.

XML-код для индексных меток похож на код для закладок и перекрестных ссылок. Ниже указаны некоторые основные правила для индексных меток:

  • каждая индексная метка представлена начальным и конечным элементами;
  • оба элемента используют атрибут ID, чтобы определить соответствующее начало и конец метки;
  • для каждого начального элемента должен быть определен конечный элемент в том же самом абзаце, с начальным элементом определенным первым;
  • атрибуты, связанные с индексной меткой, присоединяются к начальному элементу;
  • текст, размещенный между начальным и конечным элементами, является текстом индексной записи;
  • атрибуты форматирования индексных меток могут перекрываться.

7.1.1 Индексные метки оглавления

править

Элемент меток <text:toc-mark-start> определяет начало индексной записи оглавления. ID, определяемый атрибутом text:id, должен быть уникальным, за исключением соответствующих конечных элементов индексных меток. Для каждого начального элемента должен быть определен конечный элемент в том же самом абзаце, с начальным элементом, определенным первым.

<define name="paragraph-content" combine="choice">
    <element name="text:toc-mark-start">
        <ref name="text-toc-mark-start-attrs"/>
    </element>
</define>

С элементом <text:toc-mark-start> могут быть связаны следующие атрибуты:

  • атрибут text:id, позволяющий начальному и конечному элементам соответствовать друг другу;
  • атрибут text:outline-level, устанавливающий уровень структуры индексов оглавления.
<define name="text-toc-mark-start-attrs">
    <ref name="text-id"/>
    <ref name="text-outline-level"/>
</define>
<define name="text-outline-level">
    <optional>
        <attribute name="text:outline-level">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="text-id">
    <attribute name="text:id">
        <ref name="string"/>
    </attribute>
</define>

Элемент <text:toc-mark-end> определяет окончание индексной записи оглавления. Для каждого конечного элемента должен быть начальный элемент с таким же значением text:id, расположенный в том же абзаце, с начальным элементом, определенным первым.

<define name="paragraph-content" combine="choice">
    <element name="text:toc-mark-end">
        <ref name="text-id"/>
    </element>
</define>

Индексные метки в оглавлении также имеют вариант, который предполагает не включать текст для индексирования. Это реализуется использованием элемента <text:toc-mark> с атрибутом text:string-value для индекса. В этом случае атрибут text:id не требуется, потому что нет стартового и конечного элементов.

<define name="paragraph-content" combine="choice">
    <element name="text:toc-mark">
        <attribute name="text:string-value">
            <ref name="string"/>
        </attribute>
        <ref name="text-outline-level"/>
    </element>
</define>

7.1.2 Индексные метки, определяемые пользователем

править

Элемент <text:user-index-mark-start> определяет начало определяемой пользователем индексной метки. ID, определяемый атрибутом text:id, должен быть уникальным, за исключением соответствующих конечных элементов индексных меток. Для каждого начального элемента должен быть определен конечный элемент, расположенный в том же абзаце, с начальным элементом, определенным первым.

<define name="paragraph-content" combine="choice">
    <element name="text:user-index-mark-start">
        <ref name="text-id"/>
        <ref name="text-outline-level"/>
        <ref name="text-index-name"/>
    </element>
</define>

Элемент <text:user-index-mark-end> обозначает окончание определяемой пользователем индексной метки. Для каждого конечного элемента должен быть начальный элемент с таким же значением text:id, расположенный в том же абзаце, с начальным элементом, определенным первым.

<define name="paragraph-content" combine="choice">
    <element name="text:user-index-mark-end">
        <ref name="text-id"/>
        <ref name="text-outline-level"/>
    </element>
</define>

Определяемые пользователем индексные метки также имеют вариант, который не предполагает внесения текста для индексирования. Это реализуется использованием элемента <text:user-index-mark> с атрибутом text:string-value для текста индексирования. В этой ситуации атрибут text:id не является обязательным, так как нет соответствующих начального и конечного элементов.

<define name="paragraph-content" combine="choice">
    <element name="text:user-index-mark">
        <attribute name="text:string-value">
            <ref name="string"/>
        </attribute>
        <ref name="text-outline-level"/>
        <ref name="text-index-name"/>
    </element>
</define>
Имя индекса, определяемого пользователем
править

Можно использовать больше одного определяемого пользователем индекса. В этом случае для определяемого пользователем индекса должно быть определено имя атрибутом text:index-name. Этот атрибут определяет, какому определяемому пользователем индексу соответствует индексная метка. Если имя не определено, то используется определяемый пользователем индекс, заданный по умолчанию.

<define name="text-index-name">
    <attribute name="text:index-name">
        <ref name="string"/>
    </attribute>
</define>

7.1.3 Алфавитные индексные метки

править

Элемент <text:alpha-index-mark-start> определяет начало алфавитной индексной записи. Существует два дополнительных атрибута, которые могут содержать ключи для алфавитных индексов, позволяющие их структурировать. Есть также атрибут логического типа, определяющий их вхождение в главную конструкцию, если имеется несколько равносильных полей.

ID, определяемый атрибутом text:id, должен быть уникальным, за исключением соответствующих конечных элементов индексных меток. Для каждого начального элемента должен быть определен конечный элемент в том же самом абзаце, с начальным элементом, определенным первым.

<define name="paragraph-content" combine="choice">
    <element name="text:alphabetical-index-mark-start">
        <ref name="text-id"/>
        <ref name="text-alphabetical-index-mark-attrs"/>
    </element>
</define>

С элементом <text:toc-mark-start> могут быть связаны следующие атрибуты:

  • атрибут text:id, определяющий соответствующие начальные и конечные элементы;
  • дополнительные ключи;
  • главная запись.

Элемент <text:alpha-index-mark-end> определяет окончание алфавитной индексной записи. Для каждого конечного элемента должен быть начальный элемент с таким же значением text:id, расположенный в том же абзаце, с начальным элементом, определенным первым.

<define name="paragraph-content" combine="choice">
    <element name="text:alphabetical-index-mark-end">
        <ref name="text-id"/>
    </element>
</define>

Алфавитные индексные метки имеют вариант, который не предполагает внесения текста для индексирования. Это обеспечивается использованием элемента <text:alpha-index-mark>, с атрибутом text:string-value для текста в индексной записи. В этой ситуации атрибут text:id не является обязательным, так как нет соответствующих начального и конечного элементов.

<define name="paragraph-content" combine="choice">
    <element name="text:alphabetical-index-mark">
        <attribute name="text:string-value">
            <ref name="string"/>
        </attribute>
        <ref name="text-alphabetical-index-mark-attrs"/>
    </element>
</define>
Дополнительные ключи
править

Атрибуты text:key1 и text:key2 определяют дополнительные ключи для алфавитных индексов. Если используется только один ключ, то он должен быть определен в атрибуте text:key1.

<define name="text-alphabetical-index-mark-attrs" combine="interleave">
    <optional>
        <attribute name="text:key1">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:key2">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Фонетические ключи
править

Для идеографических языков иногда характерны ситуации, когда нет очевидных или общих способов сортировки символов. Один из общих способов определения алфавитных индексов для них — сортировка на основании их фонетических описаний времени поиска. В файле формата OpenDocument это достигается за счет дополнительных атрибутов для текстового значения и двух ключей для фонетического описания. Для отображения используются значение и ключевые атрибуты, но если фонетические варианты существуют, то они должны использоваться для сортировки индексов.

<define name="text-alphabetical-index-mark-attrs" combine="interleave">
    <optional>
        <attribute name="text:string-value-phonetic">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:key1-phonetic">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:key2-phonetic">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Главная запись
править

Если есть несколько индексных меток в одной записи, одна из этих записей может быть объявлена как главная при помощи атрибута text:main-entry.

<define name="text-alphabetical-index-mark-attrs" combine="interleave">
    <optional>
        <attribute name="text:main-entry" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

7.1.4 Библиографические индексные метки

править

Элемент <text:bibliography-mark> включает текст и информацию для библиографического индекса. Этот элемент поддерживает атрибуты для всех типов библиографических описаний, которые могут быть в них включены.

<define name="paragraph-content" combine="choice">
    <element name="text:bibliography-mark">
        <attribute name="text:bibliography-type">
            <ref name="text-bibliography-types"/>
        </attribute>
        <zeroOrMore>
            <attribute>
                <choice>
                    <name>text:identifier</name>
                    <name>text:address</name>
                    <name>text:annote</name>
                    <name>text:author</name>
                    <name>text:booktitle</name>
                    <name>text:chapter</name>
                    <name>text:edition</name>
                    <name>text:editor</name>
                    <name>text:howpublished</name>
                    <name>text:institution</name>
                    <name>text:journal</name>
                    <name>text:month</name>
                    <name>text:note</name>
                    <name>text:number</name>
                    <name>text:organizations</name>
                    <name>text:pages</name>
                    <name>text:publisher</name>
                    <name>text:school</name>
                    <name>text:series</name>
                    <name>text:title</name>
                    <name>text:report-type</name>
                    <name>text:volume</name>
                    <name>text:year</name>
                    <name>text:url</name>
                    <name>text:custom1</name>
                    <name>text:custom2</name>
                    <name>text:custom3</name>
                    <name>text:custom4</name>
                    <name>text:custom5</name>
                    <name>text:isbn</name>
                    <name>text:issn</name>
                </choice>
                <ref name="string"/>
            </attribute>
        </zeroOrMore>
        <text/>
    </element>
</define>
<define name="text-bibliography-types">
  <choice>
    <value>article</value>
    <value>book</value>
    <value>booklet</value>
    <value>conference</value>
    <value>custom1</value>
    <value>custom2</value>
    <value>custom3</value>
    <value>custom4</value>
    <value>custom5</value>
    <value>email</value>
    <value>inbook</value>
    <value>incollection</value>
    <value>inproceedings</value>
    <value>journal</value>
    <value>manual</value>
    <value>mastersthesis</value>
    <value>misc</value>
    <value>phdthesis</value>
    <value>proceedings</value>
    <value>techreport</value>
    <value>unpublished</value>
    <value>www</value>
  </choice>
</define>

7.2 Структура индексов

править

Индекс состоит из двух частей: источника индекса и его тела. Каждая из частей описывается собственным элементом, которые в свою очередь разбиваются на два дочерних элемента.

Источник индекса зависит от типа индекса, для которого он будет использоваться. Источник содержит информацию, необходимую для генерирования содержания индекса. Источник индекса не имеет графического отображения.

Тело индекса одинаково для всех индексных типов. Оно содержит текст, сформированный, исходя из данных выбранного источника. Текст, указанный в теле индекса, никоим образом не отличается и не обособляется от текста, используемого в другом месте этой спецификации.

Содержимое тела индекса может быть восстановлено в любое время, исходя из информации, указанной в источнике индекса и остальной части документа. Можно сказать, что источник индекса содержит всю логическую информацию об индексе, в то время как тело индекса содержит его исполнение. Средства, извлекающие информацию о структуре документа, могут просматривать только источник индекса, в то время как программа может просматривать только тело индекса.

7.2.1 Источник индекса

править

Элемент источника индекса содержит информацию, необходимую для генерации тела индекса. В дополнение к ряду флагов, которые определяют, какая информация включается в индекс, источник индекса содержит ряд шаблонов. Такие шаблоны определяют, как должно быть представлено поле, включенное в индекс.

Например, оглавление может быть представлено следующим образом:

1 Введение..............................................................................7
1.1 Пространства имен...................................................................7
1.2 Префикс схемы Relax-NG..............................................................8

Источник индекса для оглавления содержал бы флаги, которые указывали на то, что заголовок глав должен содержать хотя бы 2 уровня. Шаблоны индекса определили бы, что конструкция состоит из номера главы, пробела, названия главы, табуляции (заполненной символом «.») и номера страницы.

Различные шаблоны индексов описаны вместе с их элементами. Использование элементов шаблона индексов описано в разделе 7.12.

Различные элементы источников индексов описаны вместе с соответствующими элементами индексов.

7.2.2 Тело индекса

править

Тело индекса содержит текущее текстовое наполнения индекса. Его формат такой же, как и формат регулярного текста в этой спецификации, например текст разделов, за исключением разделов индексного заголовка.

<define name="text-index-body">
    <element name="text:index-body">
        <zeroOrMore>
            <ref name="index-content-main"/>
        </zeroOrMore>
    </element>
</define>
<define name="index-content-main">
    <choice>
        <ref name="text-content"/>
        <ref name="text-index-title"/>
    </choice>
</define>

7.2.3 Заголовок индекса

править

Заголовок индекса обычно содержится в собственном разделе, поскольку это дает возможность размещения заголовка индекса в популярных макетах поперек всей страницы, тогда как сам индекс занимает две колонки.

<define name="text-index-title">
    <element name="text:index-title">
        <ref name="sectionAttr"/>
        <zeroOrMore>
            <ref name="index-content-main"/>
        </zeroOrMore>
    </element>
</define>

7.3 Оглавление

править

Оглавление позволяет пользователю перемещаться по содержанию документа. Обычно оно размещается в начале документа, содержит заголовки глав и соответствующие им номера страниц. Пример оглавления можно посмотреть в начале этого документа.

Пункты, которые могут быть перечислены в оглавлении:

  • заголовки (определенные структурой документа) до выбираемого уровня;
  • индексные метки оглавления;
  • форматирование абзаца с выбираемым набором стилей.

Оглавление представляется элементом <text:table-of-content>, который поддерживает те же атрибуты стиля (и класса), что и разделы текста (см. раздел 4.4).

<define name="text-table-of-content">
    <element name="text:table-of-content">
        <ref name="sectionAttr"/>
        <ref name="text-table-of-content-source"/>
        <ref name="text-index-body"/>
    </element>
</define>

7.3.1 Источник оглавления

править

Элемент <text:table-of-content-source> определяет, как генерируется оглавление. Он также определяет, как собраны записи оглавления.

Элемент <text:table-of-content-source> включает:

  • дополнительный шаблон для заголовка индекса;
  • дополнительные шаблоны для индексных записей, по одному для уровня;
  • необязательный список стилей, которые используются для индексных записей.
<define name="text-table-of-content-source">
    <element name="text:table-of-content-source">
        <ref name="text-table-of-content-source-attlist"/>
        <optional>
            <ref name="text-index-title-template"/>
        </optional>
        <zeroOrMore>
            <ref name="text-table-of-content-entry-template"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="text-index-source-styles"/>
        </zeroOrMore>
    </element>
</define>

С элементом <text:table-of-content-source> могут быть связаны следующие атрибуты:

  • уровень структуры;
  • использование структуры;
  • использование индексных меток;
  • использование стилей источников индексов;
  • источник индексов;
  • относительное положение табулостопов.
Уровень структуры
править

Атрибут text:outline-level определяет, какой уровень структуры используется для формирования оглавления.

Значения этого атрибута должны быть целыми числами больше нуля. Если этот атрибут пропущен, то все уровни структуры используются по умолчанию.

<define name="text-table-of-content-source-attlist" combine="interleave">
    <optional>
        <attribute name="text:outline-level">
            <choice>
                <ref name="positiveInteger"/>
            </choice>
        </attribute>
    </optional>
</define>
Использование структуры
править

Атрибут text:use-outline-level определяет, используются ли заголовки для генерации индексных полей. Если значение равно true, то записи оглавления формируются из заголовков. Атрибут text:outline-level определяет уровень, до которого будут включены заголовки (см. раздел 7.1 для получения более подробной информации об индексных метках).

<define name="text-table-of-content-source-attlist" combine="interleave">
    <optional>
        <attribute name="text:use-outline-level" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Использование индексных меток
править

Атрибут text:use-index-marks определяет, используются или нет индексные метки для формирования индексных полей. Если значение равно true, то в оглавление включаются записи, сформированные индексными метками оглавления. Атрибут text:outline-level определяет уровень, до которого будут включены индексные метки (см. раздел 7.1 для получения более подробной информации об индексных метках).

<define name="text-table-of-content-source-attlist" combine="interleave">
    <optional>
        <attribute name="text:use-index-marks">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Использование стилей источников индексов
править

Атрибут text:use-index-source-styles определяет, сформированы или нет индексные записи из абзацев, отформатированных определенными стилями абзацев. Если значение равно true, то в оглавление добавляется запись для каждого абзаца, в форматировании которого используется один из стилей, определенных в элементе <text:index-source-style>. Атрибут text:outline-level определяет уровень, до которого используются стили источников индексов.

<define name="text-table-of-content-source-attlist" combine="interleave">
    <optional>
        <attribute name="text:use-index-source-styles">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Охват индекса
править

Атрибут text:index-scope определяет, формируется ли содержание для всего документа или только для текущей главы.

<define name="text-table-of-content-source-attlist" combine="interleave">
    <optional>
        <attribute name="text:index-scope">
            <choice>
                <value>document</value>
                <value>chapter</value>
            </choice>
        </attribute>
    </optional>
</define>
Относительное положение табулостопов
править

Атрибут text:relative-tab-stop-position определяет, относительно левого поля или левого отступа, определенного стилем абзаца, отсчитывается положение табулостопов. Это обычно используется для копирования конфигурации записей всех уровней структуры, поскольку относительная позиция табуляции не должна быть настроена так же, как в соответствующем абзаце.

<define name="text-table-of-content-source-attlist" combine="interleave">
    <optional>
        <attribute name="text:relative-tab-stop-position">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

7.3.2 Шаблоны записей оглавления

править

Элемент <text:table-of-content-entry-template> определяет формат индексной записи для определенного уровня структуры. Для каждого оглавления может быть не более одного элемента для любого уровня структуры (см. ниже).

<define name="text-table-of-content-entry-template">
    <element name="text:table-of-content-entry-template">
        <ref name="text-table-of-content-entry-template-attlist"/>
        <zeroOrMore>
            <ref name="text-table-of-content-children"/>

        </zeroOrMore>
    </element>
</define>

Шаблоны записей оглавления поддерживают следующие текстовые элементы:

  • глава и номер страницы;
  • текст ссылки;
  • диапазон текста;
  • табулостопы;
  • начало и конец гиперссылки.
<define name="text-table-of-content-children">
    <choice>
        <ref name="text-index-entry-chapter"/>
        <ref name="text-index-entry-page-number"/>
        <ref name="text-index-entry-text"/>
        <ref name="text-index-entry-span"/>
        <ref name="text-index-entry-tab-stop"/>
        <ref name="text-index-entry-link-start"/>
        <ref name="text-index-entry-link-end"/>
    </choice>
</define>

С элементом <text:table-of-content-entry-template> могут быть связаны следующие атрибуты:

  • шаблон уровня структуры;
  • стиль абзаца.
Шаблон уровня структуры
править

Этот атрибут определяет, к какому уровню структуры применяется конфигурация записи. Уровни структуры должны быть уникальными для элементов шаблона в пределах одного источника индекса.

<define name="text-table-of-content-entry-template-attlist"
        combine="interleave">
    <attribute name="text:outline-level">
        <ref name="positiveInteger"/>
    </attribute>
</define>
Стиль абзаца
править

Атрибут text:style-name определяет стиль абзаца, используемый в этом шаблоне.

<define name="text-table-of-content-entry-template-attlist"
        combine="interleave">
    <attribute name="text:style-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>

7.4 Индексы иллюстраций

править

Индексы иллюстраций — это список всех рисунков и изображений в текущем документе или главе. Входные индексы могут быть получены из заголовков иллюстраций или их названий.

С элементом <text:illustration-index> может быть связан следующий атрибут:

  • text:style-name

Этот атрибут определяет стиль раздела, используемый для индекса иллюстраций.

<define name="text-illustration-index">
    <element name="text:illustration-index">
        <ref name="sectionAttr"/>
        <ref name="text-illustration-index-source"/>
        <ref name="text-index-body"/>
    </element>
</define>

7.4.1 Индексы источников иллюстраций

править

Элемент <text:illustration-index-source> устанавливает, как формируется индекс иллюстраций.

<define name="text-illustration-index-source">
    <element name="text:illustration-index-source">
        <ref name="text-illustration-index-source-attrs"/>
        <optional>
            <ref name="text-index-title-template"/>
        </optional>
        <optional>
            <ref name="text-illustration-index-entry-template"/>
        </optional>
    </element>
</define>

С элементом <text:illustration-index-source> могут быть связаны следующие атрибуты:

  • использование подписи;
  • имя последовательности подписей;
  • формат последовательности подписей;
  • охват индекса — атрибут указывает, устанавливается ли индекс для всего документа или только для текущей главы;
  • text:relative-tab-stop-position — атрибут определяет, относительно левого края или левого отступа отсчитывается положение табулостопов.
<define name="text-illustration-index-source-attrs" combine="interleave">
    <ref name="text-index-scope-attr"/>
</define>
<define name="text-index-scope-attr">
    <optional>
        <attribute name="text:index-scope" a:defaultValue="document">
            <choice>
                <value>document</value>
                <value>chapter</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-illustration-index-source-attrs" combine="interleave">
    <ref name="text-relative-tab-stop-position-attr"/>
</define>
<define name="text-relative-tab-stop-position-attr">
    <optional>
        <attribute name="text:relative-tab-stop-position"
                   a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Использование подписи
править

Каждый объект, находящийся в документе, имеет свое название (имя). Помимо этого, рисунки также имеют подпись. Подпись рисунка или название рисунка могут быть объединены для индекса иллюстрации.

<define name="text-illustration-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-caption" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Имя последовательности подписей
править

Подписи ассоциируются с именем последовательности. Если атрибут text:use-caption установлен в true, то этот атрибут должен использоваться для определения последовательности, с которым связаны подписи.

Если этот атрибут опущен, то по умолчанию используется последовательность в зависимости от типа объектов, например, последовательность «Иллюстрация» используется для иллюстраций.

<define name="text-illustration-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:caption-sequence-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Формат последовательности подписей
править

Если индексные записи иллюстраций получены из подписей рисунков, то этот атрибут должен использоваться для определения формата записей.

<define name="text-illustration-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:caption-sequence-format">
            <choice>
                <value>text</value>
                <value>category-and-value</value>
                <value>caption</value>
            </choice>
        </attribute>
    </optional>
</define>

7.4.2 Шаблон индексных записей иллюстраций

править

Шаблон индексных записей иллюстраций определяет формат индексной записи для определенного уровня структуры.

<define name="text-illustration-index-entry-template">
  <element name="text:illustration-index-entry-template">
    <ref name="text-illustration-index-entry-content"/>
  </element>
</define>
<define name="text-illustration-index-entry-content">
    <ref name="text-illustration-index-entry-template-attrs"/>
    <zeroOrMore>
        <choice>
            <ref name="text-index-entry-page-number"/>
            <ref name="text-index-entry-text"/>
            <ref name="text-index-entry-span"/>
            <ref name="text-index-entry-tab-stop"/>
        </choice>
    </zeroOrMore>
</define>

С элементом <text:illustration-index-entry-template> может быть связан следующий атрибут:

  • стиль абзаца.
Стиль абзаца
править

Данный атрибут определяет стиль абзаца, используемый данным шаблоном.

<define name="text-illustration-index-entry-template-attrs">
    <attribute name="text:style-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>

7.5 Индексы таблиц

править

Индекс таблиц перечисляет все таблицы в текущем документе или главе. Он обрабатывается точно так же, как и индекс иллюстраций.

<define name="text-table-index">
    <element name="text:table-index">
        <ref name="sectionAttr"/>
        <ref name="text-table-index-source"/>
        <ref name="text-index-body"/>
    </element>
</define>

7.5.1 Источник индекса таблиц

править

Элемент <text:table-index-source> определяет, как формируется индекс таблиц.

Атрибуты, которые могут быть связаны с этим элементом, те же, что могут быть связаны с элементом <text:illustration-index-source> (см. раздел 7.4.1 для получения детальной информации об этих атрибутах).

<define name="text-table-index-source">
    <element name="text:table-index-source">
        <ref name="text-illustration-index-source-attrs"/>
        <optional>
            <ref name="text-index-title-template"/>
        </optional>
        <optional>
            <ref name="text-table-index-entry-template"/>
        </optional>
    </element>
</define>

7.5.2 Шаблон индексных записей таблицы

править

Шаблон индексных записей таблицы определяет формат индексной записи для определенного уровня структуры.

Атрибуты, которые связаны с этим элементом, те же, что могут быть связаны с элементом <text:illustration-index-entry-template> (см. раздел 7.4.2 для получения детальной информации об этих атрибутах).

<define name="text-table-index-entry-template">
    <element name="text:table-index-entry-template">
        <ref name="text-illustration-index-entry-content"/>
    </element>
</define>

7.6 Индексы объектов

править

Индекс объектов перечисляет все объекты в текущем документе или главе.

Он формируется из записей объектов известных типов.

<define name="text-object-index">
  <element name="text:object-index">
    <ref name="sectionAttr"/>
    <ref name="text-object-index-source"/>
    <ref name="text-index-body"/>
  </element>
</define>

7.6.1 Источник индекса объектов

править

Элемент <text:object-index-source> определяет типы объектов, включенных в индекс объектов. Он также поддерживает стандартные атрибуты источников индексов.

<define name="text-object-index-source">
    <element name="text:object-index-source">
        <ref name="text-object-index-source-attrs"/>
        <optional>
            <ref name="text-index-title-template"/>
        </optional>
        <optional>
            <ref name="text-object-index-entry-template"/>
        </optional>
    </element>
</define>

С элементом <text:object-index-source> могут быть связаны следующие атрибуты:

  • использование атрибутов text:use-*-objects;
  • охват индексов (см. раздел 7.4.1) — атрибут определяет, применяется ли индекс ко всему документу или только к текущей главе;
  • относительная позиция табулостопов (см. раздел 7.4.1) — атрибут определяет, относительно левого края или левого отступа отсчитывается положение табулостопов.
<define name="text-object-index-source-attrs" combine="interleave">
    <ref name="text-index-scope-attr"/>
</define>
<define name="text-object-index-source-attrs" combine="interleave">
    <ref name="text-relative-tab-stop-position-attr"/>
</define>
Использование атрибутов
править

Атрибуты text:use-*-objects определяют, какой тип объектов включать в индекс объектов. Существуют атрибуты для каждого типа объектов:

  • text:use-spreadsheet-objects
  • text:use-draw-objects
  • text:use-chart-objects
  • text:use-math-objects

Другие объекты, включенные или пропущенные, используют атрибут:

  • text:use-other-objects
<define name="text-object-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-spreadsheet-objects" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-object-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-math-objects" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-object-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-draw-objects" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-object-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-chart-objects" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-object-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-other-objects" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

7.6.2 Шаблон индексных записей объекта

править

Шаблон индексных записей объекта определяет формат индексной записи для определенного уровня структуры.

<define name="text-object-index-entry-template">
    <element name="text:object-index-entry-template">
        <ref name="text-illustration-index-entry-content"/>
    </element>
</define>

Атрибуты, которые могут быть связаны с этим элементом, те же, что могут быть связаны с элементом <text:illustration-index-entry-template> (см. раздел 7.4.2 для получения детальной информации об этих атрибутах).

7.7 Индексы, определяемые пользователем

править

Индексы, определяемые пользователем, комбинируют возможности индексов, описанных ранее в этом разделе. Определяемый пользователем индекс может содержать записи из следующих источников:

  • индексные метки;
  • отформатированные определенными стилями абзацы;
  • таблицы, рисунки или объекты;
  • текстовые фреймы.

Элемент <text:user-index> представляет определяемый пользователем индекс.

<define name="text-user-index">
    <element name="text:user-index">
        <ref name="sectionAttr"/>
        <ref name="text-user-index-source"/>
        <ref name="text-index-body"/>
    </element>
</define>

7.7.1 Источник индекса, определяемого пользователем

править

Элемент <text:user-index-source> может содержать несколько атрибутов, которые определяют, как сформированы индексные записи. Этот элемент также поддерживает атрибут, определяющий, как сформированы уровни структуры индексных записей.

Форматирование абзаца, которое используется как индексные метки, заключено в элементах <text:index-source-styles> точно так же, как и в элементах <text:table-of-content-source>.

<define name="text-user-index-source">
    <element name="text:user-index-source">
        <ref name="text-user-index-source-attr"/>
        <optional>
            <ref name="text-index-title-template"/>
        </optional>
        <zeroOrMore>
            <ref name="text-user-index-entry-template"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="text-index-source-styles"/>
        </zeroOrMore>
    </element>
</define>

С элементом <text:user-index-source> могут быть связаны следующие атрибуты.

  • Использование атрибутов — text:use-*.
  • Копирование уровня структуры.
  • Охват индексов (см. раздел 7.4.1).

Этот атрибут определяет, применяется ли индекс ко всему документу или только к текущей главе.

  • Имя индекса.

Для поддержки нескольких определяемых пользователем индексов с различным содержимым, определяемые пользователем метки индексов имеют атрибут text:index-name. Этот атрибут может быть использован с элементом <text:user-index-source>, чтобы определить, какие индексные метки относятся к текущему индексу.

  • Относительная позиция табулостопов (см. раздел 7.4.1).

Данный атрибут определяет, относительно левого края или левого отступа отсчитывается положение табулостопов.

<define name="text-user-index-source-attr" combine="interleave">
    <ref name="text-index-scope-attr"/>
    <ref name="text-relative-tab-stop-position-attr"/>
    <attribute name="text:index-name">
        <ref name="string"/>
    </attribute>
</define>
Использование атрибутов
править

Атрибуты text:use-* определяют, какие записи включить в пользовательский индекс. Существуют следующие атрибуты:

  • text:use-index-marks
  • text:use-graphics
  • text:use-tables
  • text:use-floating-frames
  • text:use-objects
<define name="text-user-index-source-attr" combine="interleave">
    <optional>
        <attribute name="text:use-index-marks" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:use-graphics" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:use-tables" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:use-floating-frames"
                     a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:use-objects" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Копирование уровня структуры
править

Этот атрибут может принимать значение true или false.

Если установлено значение true, то поля собираются на уровне структуры элемента источника, к которым они относятся.

Если установлено значение false, все записи индекса собираются в главном уровне структуры. Например, если изображение появляется в разделе 1.2.3, то поле изображения располагается на уровне структуры 3.

<define name="text-user-index-source-attr" combine="interleave">
    <optional>
        <attribute name="text:copy-outline-levels"
                     a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

7.7.2 Шаблоны индексных записей, определяемых пользователем

править

Шаблоны индексных записей, определяемых пользователем, поддерживают элементы записей для номера главы, номера страницы, текста записи, диапазона текста и табулостопов.

<define name="text-user-index-entry-template">
    <element name="text:user-index-entry-template">
        <ref name="text-user-index-entry-template-attrs"/>
        <zeroOrMore>
            <choice>
                <ref name="text-index-entry-chapter"/>
                <ref name="text-index-entry-page-number"/>
                <ref name="text-index-entry-text"/>
                <ref name="text-index-entry-span"/>
                <ref name="text-index-entry-tab-stop"/>
            </choice>
        </zeroOrMore>
    </element>
</define>

С элементом <text:user-index-entry-template> могут быть связаны следующие атрибуты:

  • уровень структуры шаблона;
  • стиль абзаца.
Уровень структуры шаблона
править

Атрибут text:outline-level определяет, к какому уровню структуры относится данная конфигурация.

Все элементы <text:outline-level>, включенные в предыдущий элемент, определяют различные уровни структуры.

<define name="text-user-index-entry-template-attrs" combine="interleave">
    <attribute name="text:outline-level">
        <ref name="positiveInteger"/>
    </attribute>
</define>
Стиль абзаца
править

Атрибут text:style-name определяет стиль абзаца, используемый в шаблоне.

<define name="text-user-index-entry-template-attrs" combine="interleave">
    <attribute name="text:style-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>

7.8 Алфавитные индексы

править

Записи алфавитных индексов формируются только из индексных меток.

<define name="text-alphabetical-index">
    <element name="text:alphabetical-index">
        <ref name="sectionAttr"/>
        <ref name="text-alphabetical-index-source"/>
        <ref name="text-index-body"/>
    </element>
</define>

7.8.1 Источник алфавитного индекса

править

Элемент <text:alphabetical-index-source> определяет, как формируется алфавитный индекс.

<define name="text-alphabetical-index-source">
    <element name="text:alphabetical-index-source">
        <ref name="text-alphabetical-index-source-attrs"/>
        <optional>
            <ref name="text-index-title-template"/>
        </optional>
        <zeroOrMore>
            <ref name="text-alphabetical-index-entry-template"/>
        </zeroOrMore>
    </element>
</define>

С элементом <text:alphabetical-index-source> могут быть связаны следующие атрибуты:

  • без учета регистра;
  • имя стиля основной записи;
  • алфавитные разделители;
  • атрибуты объединенных записей;
  • использование ключей в качестве записей;
  • записи заглавными буквами;
  • записи с разделителями в виде запятых;
  • сортировка по языку, стране и алгоритму;
  • охват индекса (см. раздел 7.4.1) — атрибут определяет, относится ли индекс ко всему документу или только к текущей главе;
  • относительная позиция табулостопов (см. раздел 7.4.1) — атрибут определяет, относительно левого поля или левого отступа отсчитывается положение табулостопов.
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <ref name="text-index-scope-attr"/>
    <ref name="text-relative-tab-stop-position-attr"/>
</define>
Без учета регистра
править

Атрибут text:ignore-case определяет, игнорируется ли верхний регистр записи. Если значение равно true, то верхний регистр игнорируется, и записи, которые различаются только регистром, считаются одинаковыми. Если значение равно false, то учитывается разница между заглавными и строчными буквами.

<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:ignore-case" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Имя стиля основной записи
править

Атрибут text:main-entry-style-name определяет стиль символов, применяемый для основных записей. Подзаписи форматируются с использованием стиля символов по умолчанию, определенного стилем абзаца записей.

<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:main-entry-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
Алфавитные разделители
править

Атрибут text:alphabetical-separators определяет, будут ли группироваться записи, начинающиеся с одной буквы, и отделяться от записей, начинающихся с другой буквы, и т. д.

Значение этого атрибута может принимать значение true или false.

Если значение true, то все записи, начинающиеся с одинаковых букв, группируются. Индекс включает заголовки для каждой секции, например А для всех записей, начинающихся на букву А, Б для всех записей, начинающихся с буквы Б, и т. д.

<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:alphabetical-separators" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Объединение записей
править

Есть несколько вариантов обработки в общей ситуации, когда существуют множественные индексные записи для одинаковых слов или фраз, такие как:

  • многократная запись для одного и того же слова может быть объединена в одну, с использованием атрибута text:combine-entries;
  • страницы, на которые ссылаются сгруппированные записи, могут быть отформатированы:

— как диапазон чисел разделенных дефисом при помощи атрибута text:combine-entries-with-dash;

— как начальный номер с меткой pp, или соответствующей меткой для выбранного языка, при помощи атрибута text:combine-entries-with-pp.

<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:combine-entries" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:combine-entries-with-dash"
                   a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:combine-entries-with-pp" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

Пример — комбинирование индексных записей.

Индексная метка для слова «XML» находится на страницах 45, 46, 47, и 48.

Записи могут быть отформатированы следующими способами:

Формат записи Результат
Отдельные записи XML 45
XML 46
и т. д.
Простая комбинированная запись XML 45, 46, 47, 48
Записи, объединенные через дефис XML 45-48
Сгруппированная запись с меткой pp XML 45pp
Использование ключей в качестве записей
править

В дополнение к ключевому слову, индексные метки могут иметь до двух ключей. Если значение этого атрибута равно true, то ключи используются как дополнительные записи. Если значение этого атрибута false, то ключи используются как подзаписи.

<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-keys-as-entries" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Записи заглавными буквами
править

Атрибут text:capitalize-entries определяет, должны ли индексные записи отображаться заглавными буквами.

<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:capitalize-entries" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Записи с разделителями в виде запятых
править

Атрибут text:comma-separated определяет, как рассматривать многократные записи индекса. Вместо того чтобы перечислять каждое вхождение индекса на отдельной строке, многократные записи могут быть перечислены в одной строке, разделяясь запятой. Если значение этого атрибута равно true, то многократные записи перечисляются в одной строке. По умолчанию значение этого атрибута равно false, и каждая индексная запись указывается на отдельной строке.

<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:comma-separated" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Сортировка по языку, стране и алгоритму
править

Если индексные записи должны быть отсортированы, то данные атрибуты могут быть использованы для определения принципа сортировки. Атрибуты страны и языка определяют местную специфику сортировки. Для некоторых местных специфик применяют разнообразные алгоритмы сортировки. В этом случае атрибут алгоритма может быть использован для определения названия определенного алгоритма.

<define name="text-alphabetical-index-source-attrs" combine="interleave">
  <optional>
    <attribute name="fo:language">
    <ref name="languageCode"/>
    </attribute>
  </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="fo:country">
            <ref name="countryCode"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:sort-algorithm">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

7.8.2 Файл с автоматическими метками

править

Алфавитный индекс поддерживает так называемый файл с автоматическими метками. Такой файл содержит список терминов, и каждое вхождение термина включается в алфавитный индекс. Файл с автоматическими алфавитными метками декларируется как часть текстовых объявлений (см. раздел 4.7). Данный элемент — это XLink, указывающий на ресурс, содержащий список терминов.

<define name="text-alphabetical-index-auto-mark-file">
    <element name="text:alphabetical-index-auto-mark-file">
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <value>simple</value>
            </attribute>
        </optional>
    </element>
</define>

7.8.3 Шаблон алфавитных индексных записей

править

Алфавитные индексы поддерживают три уровня — один уровень для главной индексной записи и два дополнительных уровня для ключей, ассоциированных с индексными записями. Алфавитные индексы также используют шаблон записи для алфавитного разделения.

<define name="text-alphabetical-index-entry-template">
    <element name="text:alphabetical-index-entry-template">
        <ref name="text-alphabetical-index-entry-template-attrs"/>
        <zeroOrMore>
            <choice>
                <ref name="text-index-entry-chapter"/>
                <ref name="text-index-entry-page-number"/>
                <ref name="text-index-entry-text"/>
                <ref name="text-index-entry-span"/>
                <ref name="text-index-entry-tab-stop"/>
            </choice>
        </zeroOrMore>
    </element>
</define>

С элементом <text:alphabetical-index-entry-template> могут быть связаны следующие атрибуты:

  • уровень структуры шаблона;
  • стиль абзаца.
Уровень структуры шаблона
править

Этот атрибут определяет, применяется ли шаблон к одному из трех уровней (1, 2 или 3) или алфавитному разделителю.

<define name="text-alphabetical-index-entry-template-attrs"
        combine="interleave">
    <attribute name="text:outline-level">
        <choice>
            <value>1</value>
            <value>2</value>
            <value>3</value>
            <value>separator</value>
        </choice>
    </attribute>
</define>
Стиль абзаца
править

Атрибут text:style-name определяет стиль абзаца, используемый в шаблоне.

<define name="text-alphabetical-index-entry-template-attrs"
        combine="interleave">
    <attribute name="text:style-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>

7.9 Библиография

править

В библиографическом индексе собираются записи из библиографических индексных меток. Элемент <text:bibliography> представляет библиографию.

<define name="text-bibliography">
    <element name="text:bibliography">
        <ref name="sectionAttr"/>
        <ref name="text-bibliography-source"/>
        <ref name="text-index-body"/>
    </element>
</define>

7.9.1 Источник библиографического индекса

править

Элемент <text:bibliography-source> определяет, как формируется библиография.

<define name="text-bibliography-source">
    <element name="text:bibliography-source">
        <optional>
            <ref name="text-index-title-template"/>
        </optional>
        <zeroOrMore>
            <ref name="text-bibliography-entry-template"/>
        </zeroOrMore>
    </element>
</define>

7.9.2 Шаблон библиографических записей

править

Шаблоны библиографических записей поддерживают элементы записей для библиографических данных, диапазонов текста и табулостопов. Для каждого типа записи существует только один шаблон записей.

<define name="text-bibliography-entry-template">
    <element name="text:bibliography-entry-template">
        <ref name="text-bibliography-entry-template-attrs"/>
        <zeroOrMore>
            <choice>
                <ref name="text-index-entry-span"/>
                <ref name="text-index-entry-tab-stop"/>
                <ref name="text-index-entry-bibliography"/>
            </choice>
        </zeroOrMore>
    </element>
</define>

С элементом <text:bibliography-entry-template> могут быть связаны следующие атрибуты:

  • тип библиографии;
  • стиль абзаца.
Тип библиографии
править

Этот атрибут определяет, к какому типу библиографической записи применяется шаблон. Этот атрибут должен быть уникальным среди всех элементов <text:bibliography-type> в пределах того же самого исходного элемента.

<define name="text-bibliography-entry-template-attrs" combine="interleave">
    <attribute name="text:bibliography-type">
        <ref name="text-bibliography-types"/>
    </attribute>
</define>
Стиль абзаца
править

Атрибут text:style-name определяет стиль абзаца, используемый в шаблоне.

<define name="text-bibliography-entry-template-attrs" combine="interleave">
    <attribute name="text:style-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>

7.10 Стили источника индекса

править

Некоторые индексы могут собирать записи из глав, отформатированных с помощью определенного стиля абзаца. Элемент <text:index-source-styles> содержит все элементы <text:index-source-style> для задания определенного уровня структуры. Атрибут text:outline-levels определяет, на каком уровне структуры выстраивать индексные записи, собранные из соответствующих стилей абзацев. Может быть только один элемент <text:index-source-style> для каждого уровня структуры.

<define name="text-index-source-styles">
    <element name="text:index-source-styles">
        <attribute name="text:outline-level">
            <ref name="positiveInteger"/>
        </attribute>
        <zeroOrMore>
            <ref name="text-index-source-style"/>
        </zeroOrMore>
    </element>
</define>

7.10.1 Стиль источника индекса

править

Все абзацы, отформатированные при помощи стиля или класса, указанного в элементе <text:index-source-style>, включаются в индекс.

<define name="text-index-source-style">
    <element name="text:index-source-style">
        <attribute name="text:style-name">
            <ref name="styleName"/>
        </attribute>
        <empty/>
    </element>
</define>

7.11 Шаблон заголовков индекса

править

Элемент <text:index-title-template> определяет стиль и содержание заголовка индекса. Только один элемент <text:index-title-template> может содержаться в элементе <text:table-of-content-source>.

<define name="text-index-title-template">
    <element name="text:index-title-template">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </attribute>
        </optional>
        <text/>
    </element>
</define>

7.12 Записи индексного шаблона

править

Существует восемь типов индексных полей:

  • информация о главе;
  • текст записи;
  • номер станицы;
  • фиксированная строка;
  • библиографическая информация;
  • табулостоп;
  • начало и конец гиперссылки.

7.12.1 Информация о главе

править

Элемент <text:index-entry-chapter> показывает номер главы индексной записи. Стиль символов номера главы может быть включен в элемент индексной записи как атрибут text:style-name.

<define name="text-index-entry-chapter">
    <element name="text:index-entry-chapter">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </attribute>
        </optional>
        <ref name="text-index-entry-chapter-attrs"/>
    </element>
</define>

Примечание — Этот элемент может отображать только номер главы. Для отображения названия главы нужно использовать элементы <text:index-entry-text>.

Отображение формата главы
править

Атрибут text:display отображает номер главы, название главы или оба эти значения.

<define name="text-index-entry-chapter-attrs">
    <optional>
        <attribute name="text:display" a:defaultValue="number">
            <choice>
                <value>name</value>
                <value>number</value>
                <value>number-and-name</value>
            </choice>
        </attribute>
    </optional>
</define>

7.12.2 Текст записи

править

Элемент <text:index-entry-text> отображает текст индексной записи, например название главы, если поле выведено из заголовка, или фразу, содержащуюся в индексной метке, если запись получена из индексной метки. Стиль символов текста записи может быть включен в элемент индексной записи как атрибут text:style-name.

<define name="text-index-entry-text">
    <element name="text:index-entry-text">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </attribute>
        </optional>
    </element>
</define>

7.12.3 Номер страницы

править

Элемент <text:index-entry-page-number> отображает номер страницы, на которой располагается индексная запись. Стиль абзаца номера страницы может быть включен в элемент индексной записи как атрибут text:style-name.

<define name="text-index-entry-page-number">
    <element name="text:index-entry-page-number">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </attribute>
        </optional>
    </element>
</define>

7.12.4 Фиксированная строка

править

Элемент <text:index-entry-span> представляет фиксированную строку в пределах индексной записи. Стиль символа текста записи может быть включен в элемент индексной записи как атрибут text:style-name. В отличие от элемента <text:span>, элемент <text:index-entry-span> не имеет никаких дочерних элементов.

<define name="text-index-entry-span">
    <element name="text:index-entry-span">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </attribute>
        </optional>
        <text/>
    </element>
</define>

7.12.5 Библиографическая информация

править

Элемент <text:index-entry-bibliography> представляет библиографические данные в шаблонах индексных полей.

<define name="text-index-entry-bibliography">
    <element name="text:index-entry-bibliography">
        <ref name="text-index-entry-bibliography-attrs"/>
    </element>
</define>

С элементом <text:index-entry-bibliography> могут быть связаны следующие атрибуты:

  • text:style-name
  • text:bibliography-data-field
Имя стиля текста
править

Атрибут text:style-name определяет стиль для отображения записи.

<define name="text-index-entry-bibliography-attrs" combine="interleave">
    <optional>
        <attribute name="text:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
Поле идентификатора библиографических данных
править

Атрибут text:bibliography-data-field определяет, какая часть поля библиографических данных будет отображена.

<define name="text-index-entry-bibliography-attrs" combine="interleave">
    <attribute name="text:bibliography-data-field">
        <choice>
            <value>address</value>
            <value>annote</value>
            <value>author</value>
            <value>bibliography-type</value>
            <value>booktitle</value>
            <value>chapter</value>
            <value>custom1</value>
            <value>custom2</value>
            <value>custom3</value>
            <value>custom4</value>
            <value>custom5</value>
            <value>edition</value>
            <value>editor</value>
            <value>howpublished</value>
            <value>identifier</value>
            <value>institution</value>
            <value>isbn</value>
            <value>issn</value>
            <value>journal</value>
            <value>month</value>
            <value>note</value>
            <value>number</value>
            <value>organizations</value>
            <value>pages</value>
            <value>publisher</value>
            <value>report-type</value>
            <value>school</value>
            <value>series</value>
            <value>title</value>
            <value>url</value>
            <value>volume</value>
            <value>year</value>
        </choice>
    </attribute>
</define>

7.12.6 Табулостоп

править

Элемент <text:index-entry-tab-stop> представляет табулостоп в индексной записи. Данный элемент также содержит информацию о позиции табулостопа.

<define name="text-index-entry-tab-stop">
    <element name="text:index-entry-tab-stop">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </attribute>
        </optional>
        <ref name="text-index-entry-tab-stop-attrs"/>
    </element>
</define>

С элементом <text:index-entry-tab-stop> могут быть связаны следующие атрибуты:

  • style:leader-char
  • style:type
  • style:position
Первый символ
править

Атрибут style:leader-char определяет первый символ.

<define name="text-index-entry-tab-stop-attrs" combine="interleave">
    <optional>
        <attribute name="style:leader-char">
            <ref name="character"/>
        </attribute>
    </optional>
</define>
Тип и позиция табулостопа
править

Атрибут style:type определяет тип табулостопа. Элемент <text:index-entry-tab-stop> поддерживает только два типа табулостопа: left и right.

Если значение этого атрибута равно left, то также должен быть использован атрибут style:position. В противном случае этот атрибут не должен указываться. Атрибут style:position определяет позицию табулостопа. В зависимости от значения атрибута text:relative-tab-stop-position элемента <text:index-entry-config>, позиция табулятора определяется относительно левого поля или левого отступа.

<define name="text-index-entry-tab-stop-attrs" combine="interleave">
    <choice>
        <attribute name="style:type">
            <value>right</value>
        </attribute>
        <group>
            <attribute name="style:type">
                <value>left</value>
            </attribute>
            <attribute name="style:position">
                <ref name="length"/>
            </attribute>
        </group>
    </choice>
</define>

7.12.7 Начало и конец гиперссылки

править

Элементы <text:index-entry-link-start> и <text:index-entry-link-end> помечают начало и конец гиперссылки индексной записи. Стиль символов для гиперссылки может быть включен в элемент индексной записи как атрибут text:style-name.

<define name="text-index-entry-link-start">
    <element name="text:index-entry-link-start">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </attribute>
        </optional>
    </element>
</define>
<define name="text-index-entry-link-end">
    <element name="text:index-entry-link-end">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </attribute>
        </optional>
    </element>
</define>

7.12.8 Пример конфигурации индексной записи

править

Рассмотрим пример кода XML для оглавления с именем «Table of Content» со следующими особенностями:

  • используются два верхних уровня структуры;
  • каждая запись состоит из номера главы, закрывающей скобки, названия главы, табулостопа и номера страницы;
  • для уровня структуры, номера страницы используется стиль с именем bold;
  • для второго уровня структуры вместо закрывающей скобки используется квадратная скобка.
Example: Table of Content
<text:table-of-content>
    <text:table-of-content-source
        text:outline-level="2"
        text:use-index-marks="false"
        text:index-scope="document">
        
        <text:index-title-template text:style-name="Index 1">
            Table of Content
        </text:index-title-template>
        
        <text:index-entry-template
            text:outline-level="1"
            text:style-name="Contents 1">
            <text:index-entry-chapter text:display="number"/>
            <text:index-entry-span>) </text:index-entry-span>
            <text:index-entry-text/>
            <text:index-entry-tab-stop style:type="right"/>
            <text:index-entry-page-number text:style-name="bold"/>
        </text:index-entry-template>
        
        <text:index-entry-template
            text:outline-level="2"
            text:style-name="Contents 2">
            <text:index-entry-chapter text:display="number"/>
            <text:index-entry-span>] </text:index-entry-span>
            <text:index-entry-text/>
            <text:index-entry-tab-stop style:type="right"/>
            <text:index-entry-page-number/>
        </text:index-entry-template>
    
    </text:table-of-content-source>
    
    <text:table-of-content-body>
        [... header ...]
        <text:p text:style-name="[...]">1) Chapter
            <text:tab-stop/>text:span stylename="bold"> 1 </text:span>
        </text:p>
        <text:p text:style-name="[...]">1.1] Subchapter
            <text:tab-stop/>1
        </text:p>
        [... more entries ...]
    </text:table-of-content-body>
</text:table-of-content>


Это произведение не охраняется авторским правом.
В соответствии со статьёй 1259 Гражданского кодекса Российской Федерации не являются объектами авторских прав официальные документы государственных органов и органов местного самоуправления муниципальных образований, в том числе законы, другие нормативные акты, судебные решения, иные материалы законодательного, административного и судебного характера, официальные документы международных организаций, а также их официальные переводы; государственные символы и знаки (флаги, гербы, ордена, денежные знаки и тому подобное), а также символы и знаки муниципальных образований; произведения народного творчества (фольклор), не имеющие конкретных авторов; сообщения о событиях и фактах, имеющие исключительно информационный характер (сообщения о новостях дня, программы телепередач, расписания движения транспортных средств и тому подобное).
Россия