Некоторые рекомендации по организации автонумерации при написании научных статей и диссертаций средствами Microsoft Word

от автора

– А ларчик просто открывался.
И.А. Крылов

О чём эта статья

В настоящей работе описываются способы автоматической организации нумерованных объектов при написании статей, рефератов, докладов, диссертаций и пр. При написании подобного рода материалов неизбежно возникает необходимость нумеровать те или иные объекты, например, формулы или пункты в списке используемой литературы. При этом многие авторы пользуются при написании текстовым редактором Microsoft Word.
В случае тривиальной «ручной» организации, при которой каждый номер прописывается непосредственно руками (обычно, в самом конце, когда текст полностью готов), автор работы может ошибиться в каком-либо номере, и все дальнейшие номера окажутся неверными. Более того, после рецензии те или иные части работы могут быть вставлены в текст или убраны из него. Последнее, зачастую, требует полной перенумерации объектов в документе. Таким образом, цель настоящей статьи состоит в доведении до читателя способов автоматической организации нумерации объектов, позволяющих избежать вышеописанные ситуации.
Предупреждение: в данную статью вошли лишь те приёмы, с которыми автор столкнулся при написании кандидатской диссертации. Описываемые способы организации нумерованных объектов не претендуют на единственность, полноту и оптимальность. Имеются другие интересные способы, например, в TeX. Несомненно, читатель сможет найти и иные способы достижения сформулированной цели. В любом случае, ознакомиться с подходами автора (хотя бы на досуге) следует любому заинтересованному читателю.

Основы работы с полями MS Word

В данном разделе описываются основные поля текстового редактора MS Word, необходимые для организации списков и ссылок на них, а также методы работы с ними.
Поле MS Word – это объект, принимающий то или иное значение в зависимости от ключевых слов и параметров этого поля. Для вставки поля в текст необходимо нажать сочетание клавиш Ctrl + F9 или выбрать соответствующее меню на ленте.
image
После вставки поля в тексте появятся серые фигурные скобки.
image

Отличить поля в тексте очень легко – достаточно выделить нужный блок текста. Все поля в выделенном фрагменте будут подсвечены серым цветом.
image

После того, как поле вставлено в текст, необходимо задать значение этого поля. Для задания значения тому или иному полю необходимо написать определённые ключевые слова, рассмотренные в разделе 2, внутри поля. После задания полю значения необходимо выделить блок текста, содержащий это поле, и нажать F9. Если в выделенном фрагменте окажутся несколько полей, то все они будут обновлены. Для обновления полей во всём документе необходимо выделить всё (Ctrl + a) и нажать F9. Обновить поле можно также с помощью нажатия на соответствующий пункт контекстного меню.
NB! Бывает, что все поля необходимо обновить два раза: первое обновление переупорядочит списки, а второе – расставит нужные значения ссылок.
Значение того или иного поля может быть изменено в любой момент. Для этого необходимо лишь выделить поле (или фрагмент текста, содержащий поля) и выбрать пункт «Коды/значения полей» контекстного меню.
image

Основные поля MS Word, необходимые для автоматической организации нумерованных объектов

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

SEQ

Поле SEQ используется для создания нумерованных списков. Каждое поле SEQ увеличивает на единицу уникальную переменную, указанную в данном поле. Если такая переменная ни разу не использовалась, то её значение становится равным 1. Если поле с данной переменной вставить в ту или иную часть текста и полностью обновить документ, то нумерация всех полей, идущих после вставленного, автоматически увеличится на единицу.

Пример задания поля SEQ

{ SEQ pic_chap1 }

NB! Желательно использовать осмысленные имена переменных, например: pic_chap1 – рисунки первой главы, fn_intro – формулы во введении и т.п. Авторы могут использовать любые имена переменных, но именно осмысленные имена позволят быстро сориентироваться в тексте и исправить его.
Важные ключи поля SEQ. Ключ «\с» используется для вывода текущего значения переменной. В частности, с помощью закладки (SET) со значением поля с ключом «\c» можно организовать автоматический вывод количества таблиц, рисунков, формул и других объектов, что будет показано ниже. Ключ «\h» увеличивает значение переменной в том месте, где задано поле, не отображая само поле. Использование ключей «\h» и «\c» совместно, очевидно, допустимо, но не имеет смысла. Автор рекомендует воздержаться от подобного.

Примеры использования ключей поля SEQ

{ SEQ pic \h }, { SEQ tables \c }

SET

Поле SET устанавливает закладку в данном месте документа.

Пример использования поля SET

{ SEQ lit_Z2009 “1” }

Здесь lit_Z2009 – имя закладки, а «1» – текст закладки. Наиболее существенным является возможность использования вложенных полей, т.е. полей внутри полей. В частности, их можно использовать в качестве текста закладки. Для этого надо вставить поле вышеописанным способом, находясь внутри поля.

Пример

{ SEQ lit_Z2009 “{SEQ lit \c}” }

REF

Поле REF используется для создания ссылок и гиперссылок на закладки. Если закладка была определена где-либо в тексте, то сослаться на неё можно, например, так:

Пример

{ REF lit_Z2009 }

После обновления данного поля на его место будет вставлен текст закладки. Ключ «\h» используется для задания гиперссылки на закладку. При нажатии на гиперссылку пользователь будет перемещён в место, заданное ссылкой. Ключ «\* MERGEFORMAT» сбрасывает формат текста исходной ссылки, преобразуя его в формат текущей части текста.

PAGEREF

Поле PAGEREF работает так же, как и поле REF, за тем исключением, что текстом ссылки является номер страницы, на котором находится соответствующий объект, а не номер объекта.

Организация автоматической нумерации в документах

Перед тем, как начать описание способов автоматической нумерации объектов в документах, необходимо предупредить читателя об очевидном минусе предлагаемого подхода: для каждого типа объектов и для каждого элемента списков со ссылками придётся создавать свой уникальный идентификатор. В данном случае автор рекомендует заранее продумать систему уникальных имён и записать её где-нибудь, дабы она всё время была перед глазами. Огромным плюсом будет являться то, что при переносах, вставках, добавлении и удалении объектов и ссылок все объекты гарантированно будут иметь верные номера, а ссылки гарантированно будут указывать на нужные объекты.

Нумерация в названиях глав и разделов

Для названия глав и разделов можно воспользоваться стилями MS Word, после чего вставить автооглавление. Тем не менее, если вторая глава вдруг станет третьей или раздел 2.2 станет разделом 2.3, то перенумерация большого числа формул, таблиц и рисунков окажется хлопотным делом. Особые трудности вызовет перенумерация списка литературы, организованного в порядке появления. Чтобы избежать вышеописанного, рекомендуется задать каждой главе уникальное имя (исходя, вероятно, из её смысла). Кроме того, для глав необходимо определить уникальную переменную – имя поля SEQ. Например, именем настоящей главы может быть CHAP_USING_FIELDS, а переменная-счётчик глав – CHAP.

После определения того, как именовать и нумеровать главы, в заголовке пишется следующая (одна из следующих) строка:

  1. { SEQ CHAP }. Организация автоматической нумерации в документах
  2. { SEQ CHAP \h }{ SET CHAP_USING_FIELDS “{ SEQ CHAP \c }”}{ SEQ CHAP \c }. Организация автоматической нумерации в документах

Разберём эти строки подробнее. Первая строка приводит к тому, что значение переменной CHAP увеличивается на единицу. После обновления поля, на его месте появится текущий номер главы. Такой способ нумерации подходит для объектов, ссылка на которые не планируется в тексте (например, для промежуточных формул). Если же требуется ссылка на объект, то необходимо использовать вторую конструкцию. В ней первое поле увеличивает значение переменной CHAP без вывода на экран, второе поле устанавливает закладку с именем CHAP_USING_FIELDS, задавая ей текст третьего поля – текущего значения (уже увеличенной на 1) переменной CHAP, а четвёртое поле выводит в данном месте текущее значение (уже увеличенной на 1) переменной CHAP. Следует обратить внимание на то, что третье поле вложено во второе поле. Такая конструкция используется потому, что нет чёткого понимания, какое поле обновится раньше и в каком случае – вложенное или идущее после, если бы только у одного из них был ключ «\c». Опыт показал, что увеличение переменной в фоновом режиме и использование текущего значения приводит к желаемому результату. На этом приёме и построены все дальнейшие рассуждения.

Для нумерации разделов внутри главы необходимо задать переменную (уникальную для каждой главы, иначе в следующей главе разделы начнутся с номера n+1), а для каждого раздела необходимо определить уникальное имя.

В качестве примера можно привести следующие строки

{ SEQ CHAP \h } { SET CHAP_USING_FIELDS “{ SEQ CHAP \c }”}{ SEQ CHAP \c }. Организация автоматической нумерации в документах
{ SEQ SUBCHAP_FIELDS \h }{ SET SUBCHAP_USING_REF “{ SEQ CHAP \c }.{ SEQ SUBCHAP_FIELDS \c }”}{ SEQ CHAP \c }.{ SEQ SUBCHAP_FIELDS \c }. Использование REF

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

В данном примере используется второй приём, описанный в нумерации глав, только теперь вложенными и идущими после оказываются два поля. Первое поле { SEQ SUBCHAP_FIELDS \h } в фоновом режиме обновляет соответствующую переменную, определённую под разделы данной главы, поля 2-4 { SET SUBCHAP_USING_REF “{ SEQ CHAP \c }.{ SEQ SUBCHAP_FIELDS \c }”} задают ссылку со значением «ТЕКУЩАЯ ГЛАВА.ТЕКУЩИЙ РАЗДЕЛ», а поля 5-6 { SEQ CHAP \c }.{ SEQ SUBCHAP_FIELDS \c } вставляют в данное место документа значение «ТЕКУЩАЯ ГЛАВА.ТЕКУЩИЙ РАЗДЕЛ».
Следует ещё раз повторить, что для каждой главы и раздела (подглавы, параграфа) необходимо определить свои уникальные имена для задания ссылок на них, если это необходимо.

Автосодержание

Средства MS Word позволяют организовать автосодержание, однако рекомендуется использовать поля REF для задания ссылок на номера глав и поля PAGEREF для ссылок на страницы. Располагать их лучше в таблицах со скрытыми границами размера Nx3, где N — число элементов в автосодержании: разделы, подразделы и пр. В первом столбце будут содержаться номера пунктов, получаемые из полей REF. Во втором столбце будут содержаться имена элементов. (Увы и ах! Их придётся записать руками). В третьем столбце будут содержаться номера страниц, на которых находится соответствующее поле SET. Получение значений производится через PAGEREF.

Нумерация формул

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

Пример показан здесь

x = a + b (3.5)

Здесь (3.5) – это значение поля, которое в исходных кодах записывается следующим образом:
({ SEQ FN_CHAP_FIELDS \h }{ SET FN_AX2_BX_C “{ SEQ CHAP \c }.{ SEQ FN_CHAP_FIELDS \c }”}{ SEQ CHAP \c }.{ SEQ FN_CHAP_FIELDS \c })
Здесь FN_CHAP_FIELDS – имя переменной для нумерации формул текущей главы, { SEQ CHAP \c }.{ SEQ FN_CHAP_FIELDS \c } – номер соответствующей формулы.

NB! При конвертации документа в pdf формулы часто отображаются неверно. В финальной версии диссертации автор заменил все формулы соответствующими рисунками через старый-добрый PrintScreen – MS Paint.

Нумерация таблиц и рисунков

Нумерация таблиц и рисунков делается так же, как и нумерация формул. Разница лишь в том, что соответствующим объектам лучше давать иные имена и придумывать для них другие переменные-счётчики, например, PIC_CHAP2, TABLE_BETTER_NPV и т.д.

Приведём пару примеров.

Пример 1, таблицы

Таблица { SEQ TAB_CH2 \h }{ SET TAB_CH2_SHOPS “{ SEQ CHAP \c }.{ SEQ TAB_CH2 \c }”}{ SEQ CHAP \c }.{ SEQ TAB_CH2 \c }. Сравнение склад/рынок по магазинам.
Магазин 1 Магазин 2
Склад 100 180
Рынок 16 29

Здесь TAB_CH2 – переменная-счётчик таблиц второй главы, TAB_CH2_SHOPS – выбранное автором имя для данной таблицы. Пусть данная глава имеет номер 3, и в ней уже было 3 таблицы. Тогда данная формула, как несложно показать, будет преобразована в следующий текст:

Таблица 3.4. Сравнение склад/рынок по магазинам.
Магазин 1 Магазин 2
Склад 100 180
Рынок 16 29

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

Пример 2, изображения

Рисунок { SEQ PIC_CH2 \h }{ SET PIC_CH2_EXPONENT “{ SEQ CHAP \c }.{ SEQ PIC_CH2 \c }”}{ SEQ CHAP \c }.{ SEQ PIC_CH2 \c }. Экспонента, косинус и синус.

Аналогично таблицам, здесь PIC_CH2 – переменная-счётчик рисунков второй главы. Опять же, очевидно, что в результате будет получено нечто подобное:

image
Рисунок 3.10. Экспонента, косинус и синус.

Организация списка используемой литературы

Работа со списком литературы в целом похожа на работу с формулами, таблицами и рисунками, но всё же имеет одно существенное отличие. Из-за этого организация списка литературы была вынесена в отдельный раздел. В данном разделе детально описано построение списка используемой литературы в алфавитном порядке. Построение списка литературы в порядке появления в тексте описано не столь подробно, но может легко быть сделано по аналогии.

Оформление списка используемой литературы в алфавитном порядке в конце документа

Итак, в тексте возникла необходимость сделать ссылку на книгу, статью, журнал и т.п. Если они должны идти единым списком, оформление следует делать подряд по алфавиту. Если они должны идти по типам источников, то нужно записывать сперва книги по алфавиту, потом статьи по алфавиту и т.д. В смысле автонумерации это не имеет значения. Важен лишь порядок, в котором эти источники будут записаны, после чего им будут присвоены номера.
NB! Каждому источнику надо задать уникальное имя, которое будет использоваться для задания ссылок в тексте. Автор при написании диссертации пользовался форматом «lit_ИНИЦИАЛЫ_АВТОРОВ_ГОД» или «lit_ИНИЦИАЛЫ_АВТОРОВ_ПОСТФИКС_ГОД». Постфикс нужен для того, чтобы разделить те или иные работы, которые автор(ы) мог выпустить в течение одного года. Храните этот список уникальных имён перед глазами, т.к. к нему придётся часто обращаться.
При добавлении новых источников достаточно лишь вставить их в нужное место списка используемой литературы, сохраняя порядок, и дважды обновить документ. Обновление дважды требуется для обновления вложенных полей и внешних полей. Двойное обновление документа гарантирует как обновление списка литературы, так и обновление ссылок на него.

Пример части списка с развёрнутыми формулами указан ниже

{ SEQ LIT \h }{ SET lit_CHR2011 “{ SEQ LIT \c }”}{ SEQ LIT \c }. Christofides N. Graph Theory: An Algorithmic Approach. Academic Press Inc., London, 1975. – 400 p.
{ SEQ LIT \h }{ SET lit_CHVATAL1983 “{ SEQ LIT \c }”}{ SEQ LIT \c }. Chvatal V. Linear Programming. W. H. Freeman and Company, 1983. – 425 p.
{ SEQ LIT \h }{ SET lit_ERL1978 “{ SEQ LIT \c }”}{ SEQ LIT \c }. Erlenkotter D. A Dual-Based Procedure for Uncapacitated Facility Location. J. Operations Research, 26, 1978. – pp. 992-1009.

Нетрудно показать, что данный список преобразуется в
15. Christofides N. Graph Theory: An Algorithmic Approach. Academic Press Inc., London, 1975. – 400 p.
16. Chvatal V. Linear Programming. W. H. Freeman and Company, 1983. – 425 p.
17. Erlenkotter D. A Dual-Based Procedure for Uncapacitated Facility Location. J. Operations Research, 26, 1978. – pp. 992-1009.

Если между авторами Chvatal [16] и Erlenkotter [17] нужно вставить какую-либо работу, то всё, что требуется сделать, это добавить пустую строку, скопировать в неё уже имеющийся пункт литературы (например, Chvatal [16]), заменить уникальное имя работы, заменить текстовое описание работы и дважды обновить весь документ.

Оформление ссылок на элементы списка используемой литературы в тексте

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

Зная уникальные имена, достаточно использовать поле REF

Из решения классической задачи транспортного типа [{ REF lit_MEELIT1972 \h }] следует, что любой базис такой задачи содержит ровно m+s-1 элементов. Из теоремы Данцига [{ REF lit_CHVATAL1983 \h }] следует, что все элементы базиса в сформулированной задаче будут являться либо нулями, либо натуральными числами.

После двукратного обновления документа, данный фрагмент текста примет следующий вид:

Из решения классической задачи транспортного типа [26] следует, что любой базис такой задачи содержит ровно m+s-1 элементов. Из теоремы Данцига [16] следует, что все элементы базиса в сформулированной задаче будут являться либо нулями, либо натуральными числами.

Оформление списка используемой литературы в порядке появления в тексте

Если предыдущий метод оказался понятен, то оформление списка литературы в порядке появления также не составит особого труда. Ссылки, задававшиеся в конце, теперь надо размещать непосредственно в тексте. Если данный источник встретился впервые, то указать конструкцию вида [{ SEQ LIT \h }{ SET lit_ERL1978 “{ SEQ LIT \c }”}{ SEQ LIT \c }, стр. 18]. Если данный источник уже встречался ранее, то указать конструкцию вида [{ REF lit_ERL1978 \h }, стр. 95]. В сам список, разумеется, нужно помещать поля { REF lit_ERL1978 \h } – ссылки на появления источников в тексте. Вся трудность заключается в ручной расстановке полных названий источников. Однако если где-то в тексте произойдут изменения в порядке появления ссылок, то (после двукратного обновления) это сразу отразится на порядке в списке литературы, что может быть быстро исправлено вырезанием и вставкой. Дополнительный плюс: проверка порядка следования источников в данном случае является «контрольной суммой». Ошибки в порядке следования либо отсутствуют, либо, если таковые будут иметь место, очевидны.

Выгрузка документа в формат pfd с сохранением ссылок

Ну вот, пожалуй, и финал данной истории. Документ готов. Можно заняться его распространением, но не хочется отдавать оригинал. Имеются два способа. Первый состоит в замене ссылок их значениями средствами MS Office. Достигается это нажатием Ctrl+Shift+F9, однако автор крайне не рекомендует так делать.

Куда более интересной является выгрузка документа в формат pdf. При выгрузке можно заменить поля значениями, разбив тем самым ссылки на объекты, или оставить их. Преимущество второго случая (зачем всё это вообще делалось) состоит в том, что при чтении текста читатель может нажать на ту или иную ссылку для перемещения к нужной формуле, таблице, рисунку или элементу списка литературы. Включить или выключить данную опцию можно при сохранении в pdf: Create bookmarks using: Word bookmarks.
image

ссылка на оригинал статьи http://habrahabr.ru/post/187398/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *