Добрый день.
Возник вопрос по двойной нумерации страниц в MS Word.
Поиск привел к нескольким вариантам решения, не устроившим меня ввиду больших трудозатрат из-за необходимости либо ручной правки документа (в частности, колонтитулов) при изменении длин разделов, либо создания дополнительных элементов (закладок). Так-же найденные методы имеют ограничение вида "все разделы должны нумероваться с "1"
Ссылки:
http://office.microsoft.com/ru-ru/word-help/HA001034900.aspx (страница более недоступна)
http://support.microsoft.com/kb/291283 (2 метода. оба не удовлетворили)
В результате был созданы пара методов, значительно автоматизирующий процесс:
Метод I, "ведущей" нумерацией является сквозная (файл с примером на OneDrive):
1. Убедиться что у всех разделов документа (кроме первого) выбран пункт "продолжать нумерацию", а у первого, соответственно, нумерация начинается с единицы.
2. На первых страницах разделов с собственной нумерацией вставляем в основной текст: {SEQ A \h \r {=({PAGE}-1)}}
3. Сквозные номера вставляем в колонтитулы как {PAGE}
4. Номера страниц внутри раздела вставляем в колонтитулы как {=({PAGE}-{SEQ A \c})}
Метод II, "ведущей" нумерацией является внутренняя нумерация страниц в разделах.
Имеет ограничения:
- все разделы ДОЛЖНЫ начинаться со следующей страницы, иначе сквозная нумерация будет некорректной.
- невозможно нормально создать содержание (в него будут включены "локальные" номера страниц внутри разделов, т.к. сквозные номера для Word окажутся всего лишь ничего специального не обозначающими пользовательскими полями подлежащими только расчёту и отображению.)
Исторически метод создан раньше, оставлен "для совместимости", чтобы комментарии в обсуждении не оказались оторванными от содержания стартового поста. (Плюс, если Вам в содержании документа нужны именно локальные номера страниц, а не сквозные, то стоит пробовать именно этот вариант)
Оформляем документ надлежащим образом:
1. Вставляем разделители разделов согласно структуре документа («Вставка» - «Разрыв» - «Новый раздел со следующей страницы»)
2. Вводим в начало каждого раздела, включая первый, следующий код:
{SEQ B \h \r {SEQ A \c}}{SEQ C \h \r {PAGE}}{SEQ D \h \r {Section}}{SEQ A \h \r {={SectionPages}+{SEQ B \c}}}
3. Вводим в начало документа (перед кодом, введенным в предыдущем пункте) следующий код:
{SEQ A \h \r 1}
4. Создаем колонтитулы, в соответствии с требованиями по оформлению разделов.
5. В местах, где потребуется отображение номеров страниц вставляем соответствующий код:
5.1. для обычных номеров страниц:
{PAGE}
5.2. для сквозных номеров страниц (если в раздел не внесена разметка из п.2. будет отображён ноль):
{=({SEQ B \c}-{SEQ C \c}+{PAGE})*({SEQ D \c} = {Section})}
5.3. для сквозных номеров страниц (если в раздел не внесена разметка из п.2 вывод будет подавляться):
{ IF {SEQ D \c} = { Section } {=({SEQ B \c}-{SEQ C \c}+{PAGE})*({SEQ D \c} = {Section})} \* MERGEFORMAT}
--------------------------------------------------------------------------------------------------
Примечания:
- ВАЖНО! Фигурные скобки { } вставляются с использованием комбинации клавиш Ctrl+F9. Копирование кода из страницы браузера в документ через буфер обмена приведет к неработоспособному результату. Но, введя код один раз в документ Word, в дальнейшем его можно копировать как внутри одного документа, так и в другие документы без потери работоспособности.
- Для отображения/скрытия кодов полей пользуемся комбинацией клавиш Alt+F9.
- Для перерасчета значений полей требуется обновить их (например, войдя в режим предварительного просмотра и, затем, вернувшись обратно в режим редактирования)
- Вариант с написанием {D} вместо {SEQ D \c} вроде-бы у меня где-то давал не те результаты, что нужно, но если у Вас все работает - то можно для улучшения читабельности и упрощения набора аналогичным образом заменить все кодовые группы с ключом "\c". Т.е. "{SEQ А \c}", "{SEQ B \c}" и "{SEQ C \c}" превратятся в "{A}", "{B}" и "{С}" соответственно.
P.S. Для любителей поразбираться (в "методе II"):
B – Сквозной номер начальной страницы текущего раздела
C – Локальный номер начальной страницы текущего раздела
A – Сквозной номер начальной страницы следующего раздела
D – Флаг применения к данному разделу сквозной нумерации (равен номеру раздела, если в разделе присутствует сквозная нумерация)
Т.о., на более человеческом языке код выглядит как:
п.2.: B:=A; C:=PAGE; D:=Section; A:=SectionPages+B
п.3.: A:=1
п.5.2. =(B-C+PAGE) * (D=Section)
--------------------------------------------------------------------------------------------------
Правки:
2016-12-21. Изменена структура, исправлены ошибки/опечатки.
2017-07-11. Добавлен "Метод I", как более простой и эффективный, за идею спасибо Vogel DK