Я смог сделать это, если стиль имеет нумерацию контуров, т.е. 1. Заголовок 1 текст.
Это также зависит от того, не изменились ли ваши заголовки, так что это будет шаг, который вы могли бы сделать после того, как ваш документ будет завершен, поскольку он включает создание закладок и их нумерацию последовательно.
Для каждого заголовка 1 в документе выберите текст заголовка (не знак последнего абзаца) и создайте закладку (я использовал формат bkH1 для первого заголовка, bkH2 для второго заголовка, ..., bkH10 для десятого заголовка и т.д.).
Поле STYLEREF может возвращать номер абзаца (т.е. не только текст). Если мы знаем номер абзаца для стиля заголовка 1 на текущей странице, мы знаем, что номер абзаца для стиля заголовка 1 на следующей странице равен +1. Ключ \n возвращает номер. Переключатель \l говорит о поиске снизу текущей страницы вверх (так как мы хотим найти последний заголовок 1 на этой странице, чтобы мы знали, какое наибольшее число на этой странице).
{ STYLEREF "Heading 1" \l \n }
Поскольку наши имена закладок включают в себя номер абзаца заголовка, мы можем ссылаться на текст закладки, используя номер +1. Так, например, чтобы подобрать текст закладки для нашего второго заголовка, мы бы использовали поле REF для "bkH2".
Мы хотим, чтобы "2" было динамическим, и это можно сделать, используя поле STYLEREF выше +1.
{= 1 + { STYLEREF "Heading 1" \l \n }}
Наше поле REF будет использовать это в сочетании с префиксом bkH, который мы использовали.
{ REF "bkH{= 1 + { STYLEREF "Heading 1" \l \n }}" }
Последний шаг - "поймать" ошибку, которая возникает, когда мы добираемся до нашего последнего заголовка 1 (потому что не будет более высокой закладки, например, если у нас есть 10 заголовков, bkH11 не будет существовать).
{ IF { REF "bkH{= 1 + { STYLEREF "Heading 1" \l \n }}" }="Error! Reference source not found." { REF "bkH{= { STYLEREF "Heading 1" \l \n }}" } { REF "bkH{= 1 + { STYLEREF "Heading 1" \l \n }}" }}
Это означает, что если произошла ошибка, мы используем последний заголовок (так как мы опустили +1 из поля =). В качестве альтернативы вы можете захотеть, чтобы на будущих страницах ничего не отображалось, в этом случае замените это истинное условие на «». В противном случае для ложного условия мы хотим вставить следующий заголовок.