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

в 10:07, , рубрики: Песочница, метки: ,

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 не вставляет новый заголовок в разорванную таблицу.

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

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

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

Результат будет выглядеть примерно так. При переносе отобразится первые 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

Надеюсь, эти простые трюки будут вам полезны.

Автор:

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js