Двойная нумерация страниц в MS Word

Добрый день.

Возник вопрос по двойной нумерации страниц в 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

 

Сведения об обсуждении


Последнее обновление 13 ноября, 2019 Просмотры 24 389 Относится к:

* Попробуйте выбрать меньший номер страницы.

* Введите только числа.

* Попробуйте выбрать меньший номер страницы.

* Введите только числа.

Вы меня удивляете.

Еще несколько лет назад просто введя запрос в поисковой системе я сразу все нашел. Очень давнишняя информация ниже:

Далее приведен поэтапный процесс создания документа Word с двойной нумерацией.

С нумерацией листов внутри каждого раздела все просто.

1.      Навести и нажать курсором на нужное место вставки номера листа;

2.      Сочетанием клавиш Ctrl+F9 получаем фигурные скобки {}, именно таким сочетанием клавиш. В таких скобках (полях) пишутся все команды в Word.

3.      В скобках вводим {Page}, если надо отобразить номер листа в разделе, или вводим {SectionPages}, если нужно указать суммарное количество листов всего раздела.

4.      Сочетанием клавиш Alt+F9 переключаем вид поля, то есть производим переключение с отображения текста на отображение цифры. Когда попробуете на деле, поймете.

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

1.      В первом разделе просто ставим обычную нумерацию страниц как рассмотрено выше. Если же необходимо начать нумерацию не с одного, а, например, с двух,  то в уже знакомом нам поле пишем {={page}+1}, или вместо цифры "1" любое число, на которое  необходимо увеличить значение. В случае, если поле {={page}+1} стоит на первой странице, то при переключении вида поля, будет стоять "2".

2.      Далее необходимо включить отображение непечатных символов.   В конце каждого раздела после текста вы увидите разделитель разделов – текст ::::::::::::::::, который обязательно надо перенести на новую строку. Для этого ставим курсор перед разделителем и жмем Enter. После перехода разделителя на новую строку выделяем его. Выделение надо вести с самого начала и до самого конца, иначе не выделится. 



  3. После выделения необходимо сделать перекрестную ссылку на выделенную область. Для этого жмем на ленте Вставка, далее ищем Закладка. Текст должен быть выделен!


В открывшемся окне пишем имя закладки, обязательно латиницей и без пробелов, например, R1. Ставим галочку скрытые закладки. И жмем Добавить.


  4.  В следующем разделе в месте, где необходимо поставить нумерацию страниц, в поле пишем следующее {={page}+{pageRef R1}}. Поле {pageRef R1} устанавливает номер листа раздела, на котором стоит перекрестная ссылка R1. Например, у нас в первом разделе 5 листов, значит, получается {={1}+{5}}, и в итоге получим 6. Если первая страница первого раздела начиналась не с единицы, то необходимо добавить нужное число, как рассмотрено выше, например, {={page}+{pageRef R1}+1}.

В конце последующих разделов так же необходимо выставлять перекрестную ссылку с разными названиями. У себя я использовал R1, R2, R3...

В каждом последующем разделе в полях надо добавлять {pageRef  Rзнач.} столько раз, сколько было разделов выше того места,  где вы находитесь сейчас. Например, у меня в четвертом разделе получилось {={page}+{pageRef R1}+{pageRef R2}+{pageRef R3}+1}.

Теперь при добавлении или удалении страниц в любом разделе нумерация будет работать автоматически.

 

Вы меня удивляете.
...
...
{={page}+{pageRef R1}+{pageRef R2}+{pageRef R3}+1}
....

 

Ссылка на этот метод приведена в самом начале стартового поста.

 

И именно этого расклада хотелось избежать "изобретая" другой способ.

И да, тут был скорее не вопрос, а предложение нового метода.

 

Посмотрите на процитированный Вами метод:

Во-первых, мы должны РУЧКАМИ создать закладки. Притом - нигде больше не используемые и ведущие в концы разделов.

Во-вторых: мы должны ручками-же поправить колонтитулы в каждом разделе, приплюсовывая эти самые созданные закладки.

В третьих: нумерация всех разделов по этому методу должна начинаться с единицы. Обязательно. иначе - приходится менять "+1" в конце формулы на что-то другое.

 

Если кратко, то я, конечно, верю в людей, но, к сожалению, персонал этот способ не освоил.

 

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

Спасибо автору за способ, я хотя и новичок в этом вопросе, во многом разобрался благодаря этой статье. В данной строке ошибка (это скорее для таких как я):
...
{=({SEQ B\c}-{SEQ C \c}+{PAGE})*(D = Section)}
...

Пробел требуется между B\c или не заработает:

{=({SEQ B \c}-{SEQ C \c}+{PAGE})*(D = Section)}

тут так же ошибка:
...
код: {=({SEQ B\c}-{SEQ C \c}+{PAGE})*(D = Section)}
...

работает так:
код: {=({SEQ B\c}-{SEQ C \c}+{PAGE})*({D} = {Section})}


...в каждый раздел документа, требующий нумерации...

А если есть разделы, НЕ начинающиеся с новой страницы?


Ознакомившись с идеями, пришел к выводу, что лучший вариант - кнопка с макросом сквозной нумерации. Макрос просто вставляет (заменяет) в колонтитулы разделов поле { = { PAGE } + X }, где X - номер предыдущей страницы. Ничего лишнего в документе, вся работа - кликнуть кнопку, не болит голова у пользователя.  

Добрый день! Подскажите, пожалуйста, как сделать нумерацию по следующей схеме: 1, 2, 3, 3.1, 4, 5, 6, 7, 8, 8.1, 9 и т.д.  Я сделала 1, 2, 3, потом разрыв раздела, полем сослалась на закладку с номером предыдущей страницы, чтобы он повторился и поставила .1 от руки. Не могу теперь придумать, как прописать, чтобы нумерация следующей страницы была не 5, а 4? Такое мне надо предусмотреть несколько раз в документе((

Т.к. номера нерегулярные, то их придется вставлять "ручками".

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

Минус - при изменении количества страниц в документе придется вручную проверять корректность нумерации.

Также для Вашего случая пригоден описанный мной в самом начале этого обсуждения способ.:

  1. В начало документа вводим такой код:
    {SEQ A \h \r 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 B \c}-{SEQ C \c}+{PAGE})*({SEQ D \c} = Section)}
  4. Вместо номеров страниц в "дополнительных" страницах используем код: {={SEQ A \c}}.{PAGE}

Примечание 1. Нумерация страниц в разделе с дополнительными страницами должна начинаться с "1".

Примечание 2. В данном варианте "дополнительных" страниц может быть неограниченно много, и нумеровасться они будут автоматически как "3.1", "3.2", "3.3" и т.д.

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

P.S. ВАЖНО! Пары фигурных скобок вводятся как Ctrl+F9

При вводе этого кода "{=({SEQ B\c}-{SEQ C \c}+{PAGE})*({D} = {Section})}" Пишется сообщение "!Синтаксическая ошибка, !"

Проверил. Был пропущен пробел. Стартовый пост исправлен.

Рабочий вариант: "{=({SEQ B \c}-{SEQ C \c}+{PAGE})*({SEQ D \c} = {Section})}"

Вариант с написанием {D} вместо {SEQ D \c} вроде-бы у меня где-то давал не те результаты, что нужно, но если у Вас все работает - то можно аналогичным образом заменить все кодовые группы с ключом "\c". Т.е. "{SEQ А \c}", "{SEQ B \c}" и "{SEQ C \c}" превратятся в "{A}", "{B}" и "{С}" соответственно.

Если вставлять эти формулы в колонтитулы (а именно там место всех номеров страниц), то Word выводит вместо результатов "Ошибка! Только основной документ.". Это типовая реакция на попытку применить поле типа SEQ в колонтитуле.

Поясните, пожалуйста, как это у вас работает. Какие ещё тут есть хитрости?

Проверил по случаю уже в Word 2016 - всё работает.

Цитата из стартового поста:

- Вводим в начало каждого раздела, включая первый, следующий код:

  {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}}}

- Вводим в начало документа (перед кодом, введенным в предыдущем пункте) следующий код: {SEQ A \h \r 1}

Конец цитаты.

Обратите внимание, поля, содержащие ключ \r (присвоение значения переменной) в команде SEQ вставляются в ОСНОВНОЙ текст документа, а не в колонтитулы.

Поля-же, содержащие только \c (запрос значения переменной) теперь обрабатываются нормально даже будучи помещены внутрь надписи/таблицы, вставленной в колонтитул (раньше, если мне не изменяет память, нормально обрабатывались только поля, находящиеся непосредственно в колонтитуле)

Смотрите, в "сквозном номере страницы" - использованы только \c :

{ IF {SEQ D \c} = { Section } {=({SEQ B \c}-{SEQ C \c}+{PAGE})*({SEQ D \c} = { Section })} \* MERGEFORMAT}

Лирическое отступление: если бы всю логику метода можно было поместить только в колонтитулы, то метод был-бы даже изящным и простым, а так - с костылями, закреплёнными в основном тексте, есть куда совершенствовать...

* Попробуйте выбрать меньший номер страницы.

* Введите только числа.

* Попробуйте выбрать меньший номер страницы.

* Введите только числа.