Двойная нумерация страниц в 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

Было ли это обсуждение полезной?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим обсуждением?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько вы удовлетворены этим обсуждением?

Благодарим за отзыв.

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

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

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

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

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

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

Далее приведен поэтапный процесс создания документа 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}.

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

 

18 польз. нашли этот ответ полезным

·

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

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

 

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

 

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

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

 

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

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

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

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

 

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

 

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

3 польз. нашли этот ответ полезным

·

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

Спасибо автору за способ, я хотя и новичок в этом вопросе, во многом разобрался благодаря этой статье. В данной строке ошибка (это скорее для таких как я):
...
{=({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 - номер предыдущей страницы. Ничего лишнего в документе, вся работа - кликнуть кнопку, не болит голова у пользователя.  

37 польз. нашли этот ответ полезным

·

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

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

10 польз. нашли этот ответ полезным

·

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

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

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

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

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

  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}

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

7 польз. нашли этот ответ полезным

·

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

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

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

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

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

 
 

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


Последнее обновление 15 февраля, 2021 Просмотры 33 273 Относится к: