Большинством ГОСТов оформление больших документов регламентируется очень поверхностно. Отсутствие внятных и четких указаний создает трудности при оформлении документации. Кроме того, большой объем файлов вызывает дополнительные проблемы и неудобства при работе в редакторе, которые не связаны с требованиями ГОСТов, например, задержки выполнения операций.
Требования ГОСТов к оформлению различных документов достаточно серьезно различаются, поэтому нет смысла рассматривать тему статьи на примере какого-либо ГОСТа. Но есть техническая проблема, которая касается любых больших документов, особенно оформляемых по ГОСТам, – взаимосвязь элементов автоматизации при разбивке больших текстов на части. Ее можно решить следующими тремя основными методами:
1) с помощью разделов в одном большом файле. Этот метод решает все проблемы автоматизации форматирования, но имеет ряд недостатков:
длительное время выполнения элементарных операций или даже аварийное закрытие редактора с потерей данных, например, обновление полей в 500-страничном файле средней сложности в зависимости от производительности компьютера может занимать несколько минут;
в некоторых случаях из-за требований ГОСТ необходимо наличие одинаковых разделов, например, содержания, в каждой книге, а это сложно реализовывать в одном файле;
печатать такой документ очень неудобно;
2) разделение на несколько взаимосвязанных файлов, имеющих гиперссылки друг на друга. Этот метод лишен недостатков предыдущего метода, но его редактирование (и печать) требует одновременное наличие всех связанных файлов, даже если нужно внести правки только в один. Кроме того, обновление ссылок тоже занимает относительно длительное время. Справедливости ради, следует отметить, что ссылки можно и не обновлять, если они не меняются;
3) разделение на несколько независимых файлов. Этот метод лишен недостатков первых двух, но отсутствие гиперссылок может значительно увеличить объем ручной работы, а значит, и затраченного времени.
Ни один из вышеперечисленных методов не является универсальным. Выбор метода разбивки зависит от решаемой задачи и требований конкретного ГОСТа, а комбинация методов может обеспечить дополнительные гибкость и удобство. Кроме того, часто на выбор объема книг и метода разбивки могут влиять косвенные обстоятельства, например, возможности брошюровочной или печатной техники, требования заказчика и т.д.
На критерии выбора могут влиять также проблемы другого свойства. Здесь эти проблемы принимаются как небо голубое, трава зеленая данность, и возможные административные пути их решения не рассматриваются.
Обычно большой документ разрабатывают несколько специалистов, каждый из которых может иметь свой собственный взгляд на подходы к форматированию текстов и собственный набор стилей. Поэтому при слиянии нескольких текстов в один документ, каждый из которых разработан разными людьми, в этом документе получается месиво большое разнообразие стилей, часть из которых дублируют друг друга, но называются по-разному, а часть вообще не используется. Часто их количество превышает все разумные пределы, а названия поражают изощренностью удивляют:
![](https://habrastorage.org/getpro/habr/upload_files/943/2ab/8e7/9432ab8e7c87f34ddfae6dfc10328242.png)
На практике наилучшим выходом из такой ситуации является создание отдельной книги, в которой будет текст только одного разработчика с его оригинальными стилями, благо в ГОСТах отсутствует требование к минимальному количеству страниц в книге. Такой подход требует наименьшее количество усилий, но он не всегда применим, потому что количество страниц текста книги может быть и больше максимального, установленного ГОСТом. Кроме того, может потребоваться внедрить части этого текста в документ в виде подразделов, например, описание блока питания в общее описание оборудования, в которое он входит. Поэтому наводить порядок со стилями все-таки придется :(.
Решение этой проблемы очень трудоемко, но приложенные усилия можно значительно снизить за счет искусственного интеллекта предлагаемого ниже алгоритма и использования макроса, который удаляет неиспользуемые в документе стили. Общий алгоритм действий следующий:
1) подготовить шаблон (в любом виде), в котором присутствуют ваши стили, используемые в конечном документе;
2) полностью скопировать в него редактируемый текст. При этом скопируются все стили исходного документа. Перед копированием текста MS Word вполне разумно спросит на предмет замены копируемых стилей на стиль «Обычный». Не соглашайтесь – это подстава;
3) заменить на свои все основные стили скопированного текста: стили всех используемых заголовков, текстов и подписей таблиц и рисунков. Предположим, что нужно заменить стиль «Перечень рисунков1» на стиль «Обычный». Для этого:
поставить курсор на строку со стилем «Перечень рисунков1» и/или выбрать в соответствующем меню в коллекции стилей этот стиль и пункт «Выделить все вхождения», чтобы выделить все строки с этим стилем:
![](https://habrastorage.org/getpro/habr/upload_files/7a3/103/a29/7a3103a292459f5ce0cfd76269e7891f.png)
применить стиль «Обычный» к выделенному тексту. При этом стиль «Перечень рисунков1» перестанет использоваться в этом документе;
4) для удаления всех неиспользуемых стилей, кроме встроенных, применить следующий макрос:
Sub DeleteUnusedStyles()
Dim oStyle As Style
For Each oStyle In ActiveDocument.Styles
'Only check out non-built-in styles
If oStyle.BuiltIn = False Then
With ActiveDocument.Content.Find
.ClearFormatting
.Style = oStyle.NameLocal
.Execute FindText:="", Format:=True
If .Found = False Then oStyle.Delete
End With
End If
Next oStyle
End Sub
Этот макрос часто упоминается на различных ресурсах, но честь оригинальной разработки принадлежит Аллену Уайатту (Allen Wyatt, , дай Бог ему здоровья :)). По заверению разработчика он применим для версий MS Word 97, 2000, 2002 и 2003, но по моему́ (и не только) опыту успешно работает и в более новых версиях. Правда, на некоторых очень сложных текстах этот макрос отрабатывает не до самого конца, видимо, из-за каких-то внутренних ошибок самого редактора. Повторное применение макроса обычно решает этот неприятный нюанс;
5) к сожалению, обычно заменить все стили за один проход не получается. Поэтому нужно повторять шаги 3 и 4 несколько раз до получения приемлемого результата. В идеале можно избавиться от всех неиспользуемых стилей, но чаще достаточно их просто убрать из коллекции стилей, чтобы не мешали.
Перед дальнейшим использованием отформатированный в результате этих операций текст нужно внимательно просмотреть на предмет внезапного появления неучтенных стилей, которые все-таки могут быть из-за программных ошибок редактора, который иногда живет своей собственной жизнью.
Заключение
Тема оформления больших текстовых документов по ГОСТам достаточно обширная и сложная из-за массы нюансов в требованиях стандартов и использования редакторов. В этой статье предложены некоторые решения для технической разбивки файлов на книги в редакторе MS Word. Надеюсь, они помогут техническим писателям сократить объем рутинных операций при разработке документации.