Как стать автором
Обновить

Несколько лайфхаков, которые могут быть полезны при верстке диссертации или больших документов в MS Word

Время на прочтение 4 мин
Количество просмотров 50K
image

Каждый из нас знает, насколько MS Word удобный инструмент для подготовки небольших документов. И каждый из тех, кто сталкивался с подготовкой документа, количество страниц в котором превышает сотню (плюс необходимо придерживаться строгих требований к форматированию), знает об основных недостатках этого инструмента. Мне пришлось в своей жизни столкнуться с версткой 500 страничного документа, причем количество и расположение рисунков таблиц и формул в нем постоянно менялось от версии к версии. Я бы хотел поделиться своими «лайфхаками», которые мне пришлось применить при верстке этого документа. Некоторые из них мне подсказали друзья; на некоторые наткнулся на форумах; некоторые придумал сам.

Эти простые хитрости помогут вам при верстке диссертации дипломной работы или отчета.

В данной статье рассмотрены решения проблем:

  • создание списка литературы
  • Склонения перекрёстных ссылок на рисунки таблицы и формулы
  • Перенос таблиц на новую страницу
  • Вставка формул


Список литературы


Когда дело доходит до подготовки кандидатской диссертации, список литературы резко становится больной темой. Форматировать список по ГОСТ 7.0.5–2008 вручную становится очень тяжело. Самые продвинутые пользователи знают, что можно сделать список литературы в виде нумерованных абзацев с закладками, на которые в тексте можно делать перекрестные ссылки и в несложных случаях добиваться желаемого. Но при большом списке источников ручные и полуавтоматические методы работают все хуже и хуже. Также продвинутые пользователи знают, что в Word можно делать библиографии, но не по ГОСТу, присутствует несколько «американских» стилей. Слава богу на просторах интернета мне попался det-random с его самописным стилем который умеет формировать список литературы по ГОСТ 7.0.5–2008, нумеровать ссылки в тексте по порядку упоминания и различать формат для англоязычных и русскоязычных источников Страница проекта на гитхабе: gost-r-7.0.5-2008.

Список литературы будет выглядеть следующим образом:

image

Склонение перекрёстных ссылок


Одна из основных проблем в том, что MS Word не умеет склонять перекрестные ссылки. Это является результатом того, что в германских языках отсутствуют склонения. Microsoft Office — это американская программа, поэтому американцам не надо, чтобы была ситуация, когда нужно учитывать склонение слов по падежам. Иногда это может привести к забавным результатам, например, «На Рисунок 1.1. представлено…», «В Таблица 5.4 рассматривается…» или «С учетом Формула (2.2) …» и т. д. Решить эту проблему можно следующим образом.

Название рисунка вставляется стандартными средствами.

Вставка рисунка: Вставка->Ссылка->Название->Подпись (рисунок).

image

Подпись к рисунку обычно имеет следующий вид:

Рисунок {STYLEREF 1 \s} {SEQ Рисунок \* ARABIC}

Где первое поле в фигурных скобках ссылается на номер главы, а второе — это уникальное значение счётчика количества рисунков. Ссылка на рисунок, таблицу или формулу вставляется с помощью инструмента «Перекрестная ссылка».

image

Вставляется, естественно, «Рисунок 1.1». Затем выделяем часть вставленного текста, а именно «Рисунок», делаем ее скрытой (тоже самое можно сделать через меню Формат -> Шрифт). Потом дописывается перед номером слово в нужном падеже. При обновлении поля скрытая часть текста остается скрытой.

image

Перенос таблиц


Согласно многим требованиям, если таблица переносится на другую страницу, то заголовок на продолжении должен повторять название таблицы, а иногда необходимо приписывать к названию таблицы слово «продолжение», т. е. быть вида: «Название таблицы… Продолжение». Но ни одна версия MS Word не вставляет новый заголовок в разорванную таблицу.

Для решения этой проблемы придумал следующий трюк. Я добавляю еще оду строку в самое начало таблицы и объединяю все ячейки в ней, затем делаю невидимыми границы, после чего вставляю название таблицы. И уже затем делаю повтор этой ячейки при переносе на другую страницу.

Причем слово «продолжение» закрываю белым прямоугольником в цвет страницы без границ. Выглядит это примерно так, волнистыми линями обозначены невидимые границы.



Результат будет выглядеть примерно так. При переносе отобразится первые 2 строки, одна из которых — это название таблицы, а вторая — название колонок.

image

Ниже представлен образец VBA кода для создания заголовка таблицы:

Sub Table_head()
 Dim myTable As Word.Table
 Selection.InsertRowsAbove 1
 Set myTable = Selection.Tables(1)
    myTable.Cell(1, 1).Merge MergeTo:=myTable.Cell(1, myTable.Columns.Count)
    With myTable.Cell(1, 1)
        .Borders(wdBorderTop).Color = wdColorWhite
        .Borders(wdBorderRight).Color = wdColorWhite
        .Borders(wdBorderLeft).Color = wdColorWhite
     
    End With
  
    Selection.TypeText ("Таблица ")
    Selection.Style = ActiveDocument.Styles("Название таблицы")
    Selection.Range.Fields.Add Selection.Range, Type:=wdFieldEmpty, Text:="STYLEREF 1 \s", PreserveFormatting:=False
    Selection.TypeText (".")
    Selection.Range.Fields.Add Selection.Range, Type:=wdFieldEmpty, Text:="SEQ Таблица \* ARABIC", PreserveFormatting:=False
End Sub

Формулы


Формулы лучше вставлять в таблицу с невидимыми границами с одной строкой и двумя столбцами. Делаю это с помощью макроса и в итоге получаю таблицу, в первом столбце которой по центру стоит надпись: «Место для формулы,», а во втором — по центру находятся круглые скобки. В первый столбец заношу формулу, во второй с помощью команды «Название» ее номер. Ссылаюсь на формулу с помощью команды «Перекрестная ссылка» и получаю при этом номер формулы в круглых скобках (ячейка таблицы воспринимается программой как новая строка).

image

Образец вставки VBA кода для вставки формулы представлен ниже.

Sub formula()
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=1, NumColumns:=2
        Selection.Tables(1).Columns(1).Width = CentimetersToPoints(14)
        Selection.Tables(1).Columns(2).Width = CentimetersToPoints(2.5)   
        Selection.Tables(1).Cell(1, 1).Range.Text = "Место для формулы/уравнения"
        Selection.Style = ActiveDocument.Styles("Формулы и уравнения")
        Selection.MoveRight Unit:=wdCell, Count:=1
        Selection.Style = ActiveDocument.Styles("Формулы и уравнения")
        Selection.TypeText ("(")
        Selection.Range.Fields.Add Selection.Range, Type:=wdFieldEmpty, Text:="STYLEREF 1 \s", PreserveFormatting:=False
        Selection.TypeText (".")
        Selection.Range.Fields.Add Selection.Range, Type:=wdFieldEmpty, Text:="SEQ Формула \* ARABIC", PreserveFormatting:=False
        Selection.TypeText (")")
End Sub

Надеюсь, эти простые трюки будут вам полезны.
Теги:
Хабы:
+27
Комментарии 56
Комментарии Комментарии 56

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн