 

     
     
     
     
     
          Mинистерство приборостроения, средств автоматизации
     
                          и систем управления
     
     
     
     
     
     
     
     
     
                      Oперационная система МОС ВП
     
              Подсистема редактирования и форматирования
     
                         TЕКСТОВЫЙ ФОРМАТТЕР
     
                       Pуководство программиста
     
     
     
     
                           Лист утверждения
     
                        2б.00152-01 33 08-ЛУ
     
                               Листов 2
     
     
                                      Руководитель темы,
     
                                      зам. Директора ИНЭУМ
     
                                      _______________ Хрущев С.Н.
     
                                      "___"__________ 1987 г.
     
                         Представители предприятия-разработчика:
     
                                      зав. отделом ВСКТБ
     
                                      _____________ Нахмансон В.С
     
                                      "___"________ 1987 г.
     
                                      Зав. сектором ВСКТБ
     
                                      _____________ Жуков А.Н.
     
                                      "___"________ 1987 г.
     
     
                                 1987
     
          Перв. примен.                                  Литера O
          2б.00152-01
     
     
    

                                - 2 -
     
                       2б.00152-01 33 08-ЛУ
     
     
     
     
     
     
     
     
     
                           Представители ИНЭУМ:
     
     
                                   ответственный исполнитель темы
     
                                   зав. отделением
     
                                   -------------- Остапенко Г.П.
     
                                   "---"--------- 1987 г.
     
                                    Нормоконтролер
     
                                    --------------
     
                                    "---"--------- 1987 г.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
 






        Утвержден

        2б.00152-01 33 08-ЛУ















                      Операционная система МОС ВП

               Подсистема редактирования и форматирования

                          ТЕКСТОВЫЙ ФОРМАТТЕР

                        Руководство программиста

                         2б.00152-01 33 08

                             Листов 64/2к























                                 1987

           Перв. примен.                            Литера O
           2б.00152-01



    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
                      Операционная система МОС ВП
     
              Подсистема редактирования и форматирования
     
                          ТЕКСТОВЫЙ ФОРМАТТЕР
     
                       Руководство программиста
     
                            00152-01 33 08
     
                               Листов 62
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
                                 1987
     
    

                                - 2 -
     
                           00152-01 33 08
     
     
     
     
     
     
                              АННОТАЦИЯ
     
     
     
           Документ предназначен для пользователей программы фор-
     
      матирования и распечатки документов в формате, удобном  для
     
      чтения.
     
           Документ содержит руководство по пользованию  програм-
     
      мой DOC и описание ее  управляющих  директив.  В  документе
     
      приведен также пример текста, подготовленного к  форматиро-
     
      ванию с помощью DOC.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    

                                - 3 -
     
                           00152-01 33 08
     
     
     
     
     
     
                              СОДЕРЖАНИЕ
     
     
     
     
     
      1.  Назначение и условия применения                     6
     
     
     
      2.  Характеристики программы                            6
     
     
     
      3.  Обращение к программе. Входные и выходные данные    7
     
      3.1.  Формат строки задания                             7
     
      3.2.  Директивы и их синтаксис                          13
     
      3.3.  Директивы форматирования текста                   14
     
      3.3.1.  Директива .LIN                                  14
     
      3.3.2.  Директива .BLN                                  15
     
      3.3.3.  Директива .SKI                                  15
     
      3.3.4.  Директива .SWT                                  16
     
      3.3.5.  Директива .LST                                  16
     
      3.3.6.  Директива .MID                                  17
     
      3.3.7.  Директива .RIT                                  17
     
      3.3.8.  Директива .AND                                  17
     
      3.3.9.  Директива .AN2                                  19
     
      3.3.10. Директива .TBL                                  19
     
      3.3.11. Директива .TB2                                  20
     
      3.3.12. Директива .DFN                                  20
     
      3.3.13. Директива .DF2                                  21
     
      3.3.14. Директива .DIS                                  21
     
      3.3.15. Директива .RIS                                  22
     
      3.3.16. Директива .TAB                                  24
     
      3.3.17. Директива .ATT                                  25
    

                                - 4 -
     
                           00152-01 33 08
     
     
     
      3.4.  Директивы форматирования страниц                  26
     
      3.4.1.  Директива .STL                                  27
     
      3.4.2.  Директива .PAG                                  27
     
      3.4.3.  Директива .CLN                                  27
     
      3.4.4.  Директива .TES                                  28
     
      3.5.  Директивы описания структуры                      28
     
      3.5.1.  Директива .TLU                                  28
     
      3.5.2.  Директива .TTL                                  35
     
      3.5.3.  Директива .INT                                  38
     
      3.5.4.  Директива .TOC                                  39
     
      3.5.5.  Директива .TCT                                  39
     
      3.5.6.  Директива .APN                                  40
     
      3.5.7.  Директива .CPT                                  41
     
      3.5.8.  Директива .HLV                                  42
     
      3.5.9.  Директива .LIS                                  42
     
      3.5.10. Директива .SHI                                  43
     
      3.6.  Служебные директивы                               44
     
      3.6.1.  Директива .COM                                  44
     
      3.6.2.  Директива .CHA                                  44
     
      3.6.3.  Директива .CPY                                  45
     
      3.6.4.  Директива .CPL                                  46
     
      3.6.5.  Директива .JMP                                  47
     
      3.6.6.  Директива .MRL                                  48
     
      3.6.7.  Директива .MRR                                  49
     
      3.6.8.  ДирекTива .OVP                                  51
     
      3.6.9.  Директива .SET                                  52
     
      3.7.  Рекомендации по подготовке исходного текста       54
     
      3.8.  Пример исходного текста документа                 55
     
     
     
    

                                - 5 -
     
                           00152-01 33 08
     
     
      4.  Сообщения об ошибках                                58
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    

                                - 6 -
     
                           00152-01 33 08
     
     
                  1. Назначение и условия применения
     
     
     
           Программа  DOC  предназначена  для  получения  текстов
     
      документов в форме, удобной для восприятия и  соответствую-
     
      щей гост ЕСПД, распечатки созданных  или  скорректированных
     
      файлов. Формат исходного текста  позволяет  быстро  вносить
     
      изменения в структуру  и  оформление  документа  средствами
     
      редактирования МОС ВП.
     
           Программа выполняет обработку текста в  двух  режимах:
     
      форматирования и копирования. В режиме форматирования прог-
     
      рамма оформляет перенос слов , где это необходимо.
     
     
     
     
                     2. Характеристики программы
     
     
     
           Программа DOC написана на языке ФОРТРАН-IV и  макроас-
     
      семблере с использованием  подпрограмм  системной  исполни-
     
      тельной библиотеки.
     
           Программа DOC  предназначена  для  выполнения  на  ЭВМ
     
      СМ-1700. Для  функционирования  программы  необходим  об'ем
     
      оперативной памяти 28К слов.
     
           Примечание. При  распечатке  документа  с  оглавлением
     
      программа использует временный файл "DOC.TMP" на  устройст-
     
      ве, назначенном пользователю при регистрации в системе.
     
    

                                - 7 -
     
                           00152-01 33 08
     
     
         3. Обращение к программе. Входные и выходные данные
     
     
     
           Программа форматирования текстов запускается на выпол-
     
      нение в текущем процессе командой:
     
     
                      $RUN DOC
     
      или
     
                      $R DOC                          .
     
     
           Если файл, содержащий образ  программы  форматирования
     
      текстов, имеет имя, отличное от "DOC.EXE" или  хранится  не
     
      на текущем диске и/или оглавлении, то необходимо в  команде
     
      "$RUN" задать полную спецификацию файла.
     
     
     
           3.1. Формат строки задания
     
     
           После запуска программа DOC  ожидает  ввода  строки  с
     
      заданием, напечатав на терминале пользователя запрос:
     
     
                      DOC*                        .
     
     
           В ответ на запрос пользователь должен ввести строку  с
     
      заданием:
     
     
                      [OUTFIL=]INPFIL[/OPTIONS]               ,
     
      где  OUTFIL   - спецификация выходного файла;             :
     
           INPFIL   - спецификация файла с исходным  текстом  до-
     
                      кумента;
     
           /OPTIONS - необходимые ключи.
     
           Ниже приведен список ключей, допустимых в строке зада-
     
      ния программы DOC:
     
      /A   - дополняет последнюю строку заголовка  структурного
     
             элемента в содержании символами " . . . ";
    

                                - 8 -
     
                           00152-01 33 08
     
     
      /B:N
     
      или
     
      /B!M - указывает номер страницы сформированного документа,
     
             начиная с которой будет начат вывод текста докумен-
     
             та в выходной файл. Здесь N - числовое восьмеричное
     
             или десятичное (с точкой)  значение  параметра  или
     
             M - числовое десятичное значение параметра;
     
      /C   - определяет нумерацию правой колонки при  выводе  по
     
             формату А3;
     
      /D   - отменяет двойную буферизацию ввода-вывода для  эко-
     
             номии оперативной  памяти,  занимаемой  программой;
     
      /е:N
     
      или
     
      /E!M - указывает номер страницы сформатированного докумен-
     
             та, которой закончится  вывод  текста  документа  в
     
             выходной файл. Значения N и М аналогичны  значениям
     
             параметров ключа /B;
     
      /F   - указывает на отсутствие  аппаратной  поддержки  <FF>
     
             устройством печати (LP:), т.е.  необходимость  прог-
     
             раммной имитации;
     
      /G   - обрамляет номер страницы дефисами (" - NPAGE - ");
     
      /H   - выводит краткое описание всех  ключей  программы  на
     
             терминал пользователя. Задается только этот  ключ  в
     
             строке входного задания. Если ключ /H задан в строке
     
             входного задания вместе  со  спецификацией  файла  и
     
             другими ключами, то из всего задания будет обработан
     
             только ключ /H и повторится запрос входного задания;
     
      /I   - выполняет надпечатку всего документа. Ключ /M ( если
     
             он был задан ) при этом подавляется и все  служебные
     
             символы надпечатки из строк удаляются;
    

                                - 9 -
     
                           00152-01 33 08
     
     
      /J:N
     
      или
     
      /J!М - определяет разрядку строк текста. Устанавливает зна-
     
             чение по умолчанию для директивы .JMP  и  определяет
     
             разрядку текста в содержании. Значения N и M  анало-
     
             гичны значениям ключа /B;
     
      /K   - определяет пропуск строк перед и после  структурного
     
             элемента без заголовка (по директиве .HLV) аналогич-
     
             но  элементу  с  заголовком. По  умолчанию строки не
     
             пропускаются перед элементами без заголовков;
     
      /L:N
     
      или
     
      /L!M - указывает число строк на странице печати,  по  умол-
     
             чанию M=72. Ключ предназначен для работы  с  нестан-
     
             дартным форматом бумаги. Значения N и  M  аналогичны
     
             значениям параметров ключа /В. На странице фактичес-
     
             ки будет напечатано не более  (M-13)  строк  текста.
     
             Если ключ /L задан совместно с ключом  /M  и  вывод
     
             документа будет производиться  в  две  колонки  (от-
     
             сутствует ключ /S), TO значение M должно  удовлетво-
     
             рять условию: (M-13) не больше  93,  если  не  задан
     
             ключ /N. В противном случае значение ключа /N должно
     
             быть не больше 93;
     
      /м   - разрешает надпечатку заголовков в тексте  документа,
     
             а также надпечатку выделенных  пользователем  частей
     
             текста;
     
      /N:N
     
      или
     
      /N!M - указывает фактическое число строк текста на странице
     
             без учета служебных строк (номера страницы,  обозна-
    

                                - 10 -
     
                           00152-01 33 08
     
     
             чения документа, пустых строк). Значения M и N зада-
     
             ются аналогично значениям ключа /B. По умолчанию это
     
             значение меньше числа строк на странице печати (зна-
     
             чение ключа /L) на 13. Если ключ /N задан  совместно
     
             с ключом /L, то значение ключа /L  должно  превышать
     
             значение ключа /N не менее чем на 4 и ключ /L должен
     
             предшествовать ключу /N. Если /N предшествует  /L  в
     
             строке входного задания, то ключ /N  в  этом  случае
     
             игнорируется. Если значение ключа /L превышает  зна-
     
             чение ключа /N менее чем на 8 (T.е. 4+число строк на
     
             аппаратную поддержку <FF>), то при задании этих клю-
     
             чей необходимо отказаться  от  аппаратной  поддержки
     
             <FF> (задать ключ /F) и отключить ее на  устройстве.
     
             Ключ /N удобно использовать, если есть необходимость
     
             выводить большее число строк текста на  страницу  не
     
             за счет увеличения формата бумаги (ключ  /L),  а  за
     
             счет сокращения числа служебных  строк  (которых  не
     
             может быть меньше 4). Если ключ /N задан совместно с
     
             с ключом /M и вывод документа будет производиться  в
     
             две колонки (не задан ключ /S), то значение ключа /N
     
             должно быть не больше 93;
     
      /O:N
     
      или
     
      /O!M - указывает номер страницы сформатированного  докумен-
     
             та, которая будет выведена в выходной файл;  эквива-
     
             лентен одновременному использованию  ключей  /B:N  и
     
             /E:N с одинаковыми значениями  аргументов.  Значения
     
             N и M  аналогичны  значениям  параметров  ключа  /B;
     
      /P   - указывает на обработку <FF>, встреченных в  исходном
     
             тексте. Если ключ не задан, то <FF> игнорируются;
    

                                - 11 -
     
                           00152-01 33 08
     
     
      /R:N
     
      или
     
      /R!M - определяет условие перехода на  новую  страницу  при
     
             обработке раздела. Значения N и M аналогичны  значе-
     
             ниям ключа /B. Если N=0,то переход на новую страницу
     
             не осуществляется. При N=1 осуществляется переход на
     
             новую страницу, если в текущей  осталось  менее  1/3
     
             свободных строк. Это значение принято по умолчанию.
     
             При N=2 переход на  новую  страницу  осуществляется,
     
             если в текущей осталось менее 2/3  свободных  строк.
     
             При N=3 раздел всегда начинается с  новой  страницы.
     
             При N отличном от 0,1,2,3 переход на новую страницу
     
             осуществляется, если в текущей осталось  менее  1/3
     
             свободных строк;
     
      /S   - выполняет распечатку в формате A4 (в одну  колонку);
     
             по умолчанию печать производится в две колонки  -  в
     
             формате A3;
     
      /T   - указывает на включение штампа  для  учета  в  первый
     
             (или единственный) лист утверждения  и  в  титульный
     
             лист;
     
      /U   - определяет вывод слов "таблица",  "табл."  и  "рис."
     
             без номеров этих элементов ( в случае когда  они  не
     
             нумеруются ). Если ключ не задан, то, например,  при
     
             оформлении единственной таблицы ( в этом случае таб-
     
             лица не нумеруется ) над таблицей справа не  напеча-
     
             тается слово "таблица", а на следующих  листах  про-
     
             должения таблицы будет напечатано только  "продолже-
     
             ние";
     
      /W   - запрещает автоматический перенос слов в тексте, при-
     
             нятый по умолчанию;
    

                                - 12 -
     
                           00152-01 33 08
     
     
      /X:N
     
      или
     
      /X!M - определяет левую  границу  текста  для директив типа
     
             .LIN и .SWT. Значения N и M аналогичны значениям па-
     
             раметров ключа /B;
     
      /Y:N
     
      или
     
      /Y!M - определяет длину строки  текста  для  директив  типа
     
             .LIN и .SWT. Значения N и M аналогичны значениям па-
     
             раметрров ключа /B;
     
      /Z:N
     
      или
     
      /Z!M - определяет расстояние между колонками при выводе до-
     
             кумента  по формату  A3. Значения  N и M  аналогичны
     
             значениям параметров ключа /B.
     
           Для спецификаций входного и выходного файлов  в  прог-
     
      рамме DOC приняты следующие значения по умолчанию:
     
     
      устройство (*) - диск, назначенный пользователю при регист-
     
                       рации в системе;
     
      оглавление (*) - оглавление, назначенное  пользователю  при
     
                       регистрации в системе;
     
      имя выходного файла - имя,  назначенное   пользователем   в
     
                            "INPFIL";
     
      тип входного файла  - .DAT;
     
      тип выходного файла - .DOC;
     
      версия входного файла (*)  - последняя версия;
     
      версия выходного файла (*) - последняя вeрсия + 1.
     
     
           Примечание. Умолчания, помеченные  (*)  поддерживаются
     
      МОС ВП.
    

                                - 13 -
     
                           00152-01 33 08
     
     
           3.2. Директивы и их синтаксис
     
     
           Исходный текст документа размещается в одном или  нес-
     
      кольких файлах на внешнем запоминающем устройстве и состоит
     
      из текстовой информации и директив форматирования.  Тексто-
     
      вая информация будет распечатываться в  виде,  определяемом
     
      директивами:
     
           - форматирования текста;
     
           - оформления страницы;
     
           - описания структуры документа;
     
           - служебными.
     
           DOC позволяет распечатывать документы  в  форматах  A4
     
      или A3. Распечатка в формате A4 выполняется в одну колонку,
     
      а в формате A3 - в две колонки.
     
           Форматирование  выходного  текста  (в  соответствии  с
     
      директивами) производится в режиме "копирования", при кото-
     
      ром строки входного текста переносятся в выходной без изме-
     
      нения, или в режиме "форматирования", при котором  формиро-
     
      вание выходной строки происходит пословно из входной  текс-
     
      товой информации. При этом строки выравниваются  по  длине,
     
      при необходимости дополняясь пробелами между словами.
     
           При форматировании по умолчанию производится автомати-
     
      ческий перенос слов. Знак минус (тире) в конце строки восп-
     
      ринимается как знак переноса во входном тексте, если  перед
     
      ним не указан знак пробел. Знак переноса удаляется из  фор-
     
      матируемого текста. При удалении знака переноса производит-
     
      ся конкатенация (слияние) последнего слова текущей строки и
     
      первого слова следующей строки.
     
           Все директивы должны размещаться на отдельных строках,
     
      начиная с первой печатной позиции строки.  Директивы  имеют
     
    

                                - 14 -
     
                           00152-01 33 08
     
     
      следующий формат:
     
     
                   .DIR [ARG]                         ,
     
      где  DIR - идентификатор, состоящий из 3 знаков. Все директи-
     
                 вы начинаются со знака ".";
     
           ARG - необязательный  аргумент  директивы,  который,   в
     
                 зависимости от директивы, должен быть целым  деся-
     
                 тичным числом, или строкой текста, или  специфика-
     
                 цией файла. Некоторые директивы не  требуют  аргу-
     
                 мента, опущенный числовой  аргумент  директивы  по
     
                 умолчанию имеет значение "0".
     
     
     
           3.3. Директивы форматирования текста
     
     
           Директивы  форматирования  текста  определяют  правила
     
      размещения текста на странице форматируемого  документа.  В
     
      это понятие входит режим (форматирования или  копирования),
     
      указание начала абзацев в выходном документе и число пустых
     
      строк между ними, перечисления и др.
     
     
     
           3.3.1. Директива .LIN
     
     
           Директива .LIN допускает один числовой аргумент, кото-
     
      рый определяет количество строк, пропускаемых перед началом
     
      следующего форматируемого фрагмента текста. Под  фрагментом
     
      понимается текст,  расположенный  между  двумя  директивами
     
      DOC. Распечатка фрагмента, следующего за  директивой  .LIN,
     
      начинается с красной строки.
     
           Если распечатка фрагмента текста "попадает" на  начало
     
      колонки, пропуск строк не выполняется. В том случае,  когда
     
      пропуск строк приводит к переводу на новую колонку,  распе-
     
    

                                - 15 -
     
                           00152-01 33 08
     
     
      чатка фрагмента начинается с начала этой колонки.
     
           Если форматирование выполняется для печати  в  формате
     
      а4, то перевод на следующую колонку эквивалентен переходу к
     
      следующей странице.
     
           Директива .LIN переводит DOC в режим форматирования.
     
           Для облегчения ввода исходного текста принято соглаше-
     
      ние, что в режиме форматирования  строка,  начинающаяся  со
     
      знака горизонтальной  табуляции,  является  началом  абзаца
     
      (табуляция эквивалентна директиве .LIN) .
     
           По умолчанию начальной позициEй сформированной  строки
     
      в колонке будет 1, а длина строки - 60. Эти значения  могут
     
      быть изменены директивами .MRL и .MRR.
     
     
     
           3.3.2. Директива .BLN
     
     
           Директива .BLN аналогична .LIN. В отличие от .LIN рас-
     
      печатка фрагмента начинается  с  начала  строки.  Директива
     
      переводит DOC в режим форматирования.
     
     
     
           3.3.3. Директива .SKI
     
     
           Директива .SKI допускает один числовой аргумент, кото-
     
      рый определяет количество строк, пропускаемых перед началом
     
      следующего фрагмента текста.
     
           Распечатка фрагмента начинается с начала строки.
     
           Пропуск строк перед фрагментом производится, даже если
     
      он попадает на начало  колонки.  Если  на  текущей  колонке
     
      осталось строк меньше, чем требует аргумент, предварительно
     
      производится переход на новую колонку.
     
           Директива .SKI не изменяет режим формирования выходно-
     
      го текста.
    

                                - 16 -
     
                           00152-01 33 08
     
     
           3.3.4. Директива .SWT
     
     
           По директиве .SWT DOC переходит в  режим  копирования,
     
      т.е. копирует следующий фрагмент текста без форматирования,
     
      включая пустые строки. Числовой аргумент  определяет  коли-
     
      чество пустых строк, пропускаемых перед фрагментом текста.
     
           Строки следующего фрагмента текста должны иметь длину,
     
      не превышающую ширину колонки. Программа DOC дополняет каж-
     
      дую строку копируемого текста слева пробелом (символ управ-
     
      ления кареткой), который не печатается. По умолчанию  копи-
     
      руемая строка выводится с первой позиции  колонки  и  имеет
     
      длину 60 знаков. Знаки входной строки, начиная с  61  пози-
     
      ции, игнорируются. Для изменения этих значений по умолчанию
     
      используются директивы .MRL и .MRR.
     
     
     
           3.3.5. Директива .LST
     
     
           Директива .LST аналогична .SWT и переводит DOC в режим
     
      копирования. Ограничения на длину строки снимаются.
     
           Примечание. Длина любой  строки  исходного  текста  не
     
      должна превышать 128  знаков.  Это  ограничение  связано  с
     
      характеристиками аппаратуры устройства печати.
     
           Перед выводом следующего фрагмента производится  пере-
     
      ход на начало следующей страницы. Печать производится всег-
     
      да в одну колонку. По завершении фрагмента  также  произво-
     
      дится переход на начало следующей страницы.
     
           Аргумент директивы не используется.
     
    

                                - 17 -
     
                           00152-01 33 08
     
     
           3.3.6. Директива .MID
     
     
           Директива  .MID  имеет  текстовый  аргумент.   Строка-
     
      аргумент  выводится  по  центру  колонки.   Длина   строки-
     
      аргумента не должна превышать ширину колонки. Директива  не
     
      изменяет режима вывода.
     
           Максимальная длина строки по умолчанию  -  59  знаков.
     
      Это значение может быть изменено  директивой  .MRR  (первый
     
      аргумент). Центр колонки определяется  по  ее  длине  и  по
     
      текущему смещению от начала (по умолчанию 1), которое может
     
      быть изменено директивой .MRL (первый аргумент).
     
     
     
           3.3.7. Директива .RIT
     
     
           Директива  .RIT  имеет  текстовый  аргумент.   Строка-
     
      аргумент выравнивается по правой границе колонки. Директива
     
      не изменяет режим вывода.
     
           Положение правой границы определяется от начала колон-
     
      ки (по умолчанию 1) и максимальной длине строки (по умолча-
     
      нию 60). Эти значения могут быть изменены директивами  .MRL
     
      и .MRR.
     
     
     
           3.3.8. Директива .AND
     
     
           Директива .AND может быть использована для  оформления
     
      перечислений.
     
           Директива переводит DOC в режим форматирования текста.
     
           Формат директивы:
     
                        .AND [P1 [P2]]                   ,
     
      где  P1  - количество пустых строк перед фрагментом  перечис-
     
                 лений  или  перед  элементом  перечисления,   если
     
    

                                - 18 -
     
                           00152-01 33 08
     
     
                 используется директива без P2;
     
           P2  - количество элементов перечислений.
     
           Если параметры не заданы или задан только  один  пара-
     
      метр, то директива  оформляет  один  элемент  перечисления,
     
      дополняя его знаком "-".
     
           Если заданы оба параметра и значение второго параметра
     
      не меньше 2, то директива оформляет заданное число  элемен-
     
      тов перечислений, дополняя  их  соответствующим  номером  в
     
      виде "х)". В этом случае первым элементом перечисления счи-
     
      тается текст от директивы .AND до любой  другой  директивы,
     
      которая не будет обработана в соответсвии с ее назначением,
     
      а явится только разделителем элементов перечислений. Вторым
     
      элементом считается текст от директивы-разделителя до  сле-
     
      дующей директивы-разделителя и т. д.   Таким  образом,  для
     
      оформления P2 элементов перечислений DOC воспринимает  сле-
     
      дующие за директивой
     
                        .AND P1 P2
     
      (P2-1) директив как разделители и не обрабатывает их.
     
           Примечание. Поскольку принято соглашение, что в режиме
     
      форматирования горизонтальная табуляция эквивалентна дирек-
     
      тиве .LIN, можно использовать знак <ГТ> в качестве раздели-
     
      теля элементов перечислений. Первые строки второго и после-
     
      дующих элементов перечислений должны  начинаться  со  знака
     
      табуляции.
     
           Если заданы оба параметра и значение второго параметра
     
      меньше 2, то директива обрабатывается  таким  образом,  как
     
      если бы второй параметр не был задан.
     
           Текст каждого элемента перечисления форматируется ана-
     
      логично текстовой информации после директивы .LIN. По умол-
     
      чанию начальной позицией сформированной  строки  в  колонке
    

                                - 19 -
     
                           00152-01 33 08
     
     
      будет 1, а длина строки - 60. Эти значения могут быть изме-
     
      нены директивами .MRL и .MRR.
     
     
     
           3.3.9. Директива .AN2
     
     
           Директива .AN2 полностью аналогична директиве .AND, но
     
      форматирование производится на более короткой длине строки.
     
      Начало строк сформатированного текста сдвигается  при  этом
     
      вправо.
     
           По умолчанию сдвиг сформатированного текста от  левого
     
      края колонки равен 10, а длина строки -  51.  Эти  значения
     
      могут быть изменены директивами .MRL и .MRR.
     
     
     
           3.3.10. Директива .TBL
     
     
           Директива .TBL переводит DOC  в  режим  форматирования
     
      текста.
     
           Формат директивы:
     
     
                        .TBL [N] [строка]
     
                        текст                         ,
     
      где  N      - число пустых строк перед фрагментом текста;
     
           Строка - текстовый аргумент директивы;
     
           Текст  - фрагмент текста до любой следующей директивы.
     
           Строка-аргумент директивы выводится в  выходной  доку-
     
      мент в режиме  копирования.  По  умолчанию  строка-аргумент
     
      выводится с первой позиции и длина ее не превышает 60  сим-
     
      волов. Эти значения могут быть изменены директивами .MRL  и
     
      .MRR.
     
           Далее со  следующей  строки  в  режиме  форматирования
     
      выводится фрагмент текста после  директивы  .TBL  до  любой
     
    

                                - 20 -
     
                           00152-01 33 08
     
     
      следующей директивы. Текст дополняется знаком "-" и  форма-
     
      тируется аналогично текстовой  информации  после  директивы
     
      .BLN. По умолчанию сдвиг от левого края колонки равен 10, а
     
      длина строки - 51. Эти значения могут быть изменены  дирек-
     
      тивами .MRL и .MRR.
     
     
     
           3.3.11. Директива .TB2
     
     
           Директива .TB2 полностью аналогична директиве .TBL, но
     
      форматирование производится на более короткой длине строки.
     
      Начало строк сформатированного  текста  и  строки-аргумента
     
      сдвигается при этом вправо.
     
           По умолчанию сдвиг  строки-аргумента  от  левого  края
     
      колонки равен 10, а длина не  превышает  51.  Эти  значения
     
      могут быть изменены директивами .MRL и .MRR.
     
           По умолчанию сдвиг сформатированного текста от  левого
     
      края колонки равен 17, а длина строки -  44.  Эти  значения
     
      могут быть изменены директивами .MRL и .MRR.
     
     
     
           3.3.12. Директива .DFN
     
     
           Директива .DFN аналогична директиве .TBL, но, в  отли-
     
      чие от нее, распечатывает текст, находящийся  под  директи-
     
      вой, в той же строке, что и аргумент,  если  позволяет  его
     
      длина. Если нет - выполняется точно также, как и .TBL.
     
           Формат директивы:
     
     
                      .DFN [N] [строка]
     
                      текст                           ,
     
      где N      - число пустых строк перед фрагментом текста;
     
          строка - текстовый аргумент директивы;
     
    

                                - 21 -
     
                           00152-01 33 08
     
     
          текст  - фрагмент текста до любой следующей директивы.
     
           Текст распечатывается в той же строке что и  аргумент,
     
      если длина аргумента не превышает величины: (левая  граница
     
      текста - левая  граница  аргумента  -  3).  Если  директива
     
      использует эти значения по  умолчанию  (т.е.  Они  не  были
     
      изменены директивой .MRL  перед  использованием  .DFN),  TO
     
      длина аргумента не превышает 6.
     
     
     
           3.3.13. Директива .DF2
     
     
           Директива .DF2 аналогична директиве .DFN, но  формати-
     
      рование производится на более короткой длине строки. Начало
     
      строк сформатированного текста и строки-аргумента сдвигает-
     
      ся при этом вправо аналогично директиве .TB2.
     
           При использовании директивой значений границ по  умол-
     
      чанию текст распечатывается в той же строке что и аргумент,
     
      если длина аргумента не превышает 4.
     
     
     
           3.3.14. Директива .DIS
     
     
           Директива .DIS позволяет выделить в тексте  какие-либо
     
      понятия или обозначения.
     
           Директива переводит DOC в режим форматирования текста.
     
           Формат директивы:
     
     
                      .DIS [M [N] [строка]]
     
                      текст                               ,
     
      где  M      - левая граница форматируемого текста;
     
           N      - число пустых строк перед фрагментом текста;
     
           Строка - текстовый аргумент директивы;
     
           Текст  - фрагмент текста до любой следующей директивы.
     
    

                                - 22 -
     
                           00152-01 33 08
     
     
           Директива пропускает заданное число строк (N) и  выво-
     
      дит в режиме копирования строку-аргумент, затем в  этой  же
     
      строке начинает вывод  сформатированного  текста,  дополнив
     
      его знаком "-". Форматирование текста происходит аналогично
     
      текстовой информации после директивы .BLN.
     
           По умолчанию строка-аргумент выводится с первой  пози-
     
      ции, а длина ее вместе с первой  строкой  сформатированн0го
     
      текста равна 60. Эти значения могут быть изменены  директи-
     
      вами .MRL и .MRR.
     
           Сдвиг от левого края колонки  строк  сформатированного
     
      текста определяется параметром м, если он задан  и  отличен
     
      от 0. В противном случае - левой границей  строки-аргумента
     
      и длиной строки-аргумента.  Длина  строк  сформатированного
     
      текста определяется длиной строки-аргумента вместе с первой
     
      строкой сформатированного текста и его левой границей.
     
     
     
           3.3.15. Директива .RIS
     
     
           Директива .RIS используется для распечатки рисунков.
     
           Формат директивы:
     
     
                      .RIS M                          ,
     
      где  M   - количество строк, занимаемых рисунком. В это число
     
                 входит и количество строк тематического  заголовка
     
                 рисунка.
     
     
           Директива .RIS представляет комбинацию директив .TES и
     
      .SWT. Нумерует рисунки и ставит под ними надпись "рис.  N".
     
      Здесь N -  порядковый  номер  появления  директивы  .RIS  в
     
      основной части документа. Подсчет рисунков в остальных час-
     
      тях документа производится отдельно.
     
    

                                - 23 -
     
                           00152-01 33 08
     
     
           Следует помнить, что длина строки для  директивы  .SWT
     
      устаналивается директивой .MRR и по  умолчанию  принята  59
     
      знаков. Если строки рисунка содержат более  60  знаков,  то
     
      необходимо перед директивой .RIS изменить  длину  строки  с
     
      помощью директивы .MRR (первый аргумент).
     
           Если количество строк  на  рисунке  больше  чем  число
     
      строк текста на странице минус 3,  то  программа  DOC  осу-
     
      ществляет перенос рисунка на следующую страницу. На  каждом
     
      листе печатается по умолчанию 56 строк рисунка.  Это  число
     
      вычисляется программой DOC и в общем случае оно на 3 меньше
     
      числа строк текста в  странице  (значение  ключа  /N).  Для
     
      организации  логического  переноса  рисунка   рекомендуется
     
      включать в рисунок в месте желаемого переноса пустые строки
     
      (содержащие один пробел). Количество строк в рисунке  подс-
     
      читывается с учетом пустых строк.
     
     
           Примечание. Единственный рисунок в основном тексте и в
     
      приложении не  нумеруется.  В  этих  случаях  рекомендуется
     
      использовать другой формат директивы:
     
     
                     .RIS M 0                 .
     
     
           DOC автоматически не нумерует единственный  рисунок  в
     
      основном тексте,  если  документ  форматируется  со  сбором
     
      содержания.
     
    

                                - 24 -
     
                           00152-01 33 08
     
     
           3.3.16. Директива .TAB
     
     
           Директива .TAB  используется  для  распечатки  таблиц.
     
      Если необходимо, переносит таблицу  на  следующую  колонку,
     
      при этом копирует шапку, распечатывая перед ней  "продолже-
     
      ние Tабл.N", где N - порядковый номер  появления  директивы
     
      .TAB в этом документе.
     
           Формат директивы:
     
     
                      .TAB M1 M2                      ,
     
      где  м1 - количество строк заголовка таблицы (не более 9);
     
           М2 - количество строк в шапке таблицы (не более 18, но
     
                не менее 3).
     
     
           Аргументы М1 и М2 являются  обязательными  и  задаются
     
      через пробел; подсчет таблиц для основной части документа и
     
      приложений производится отдельно.
     
           Директива .TAB переводит DOC в режим копирования текс-
     
      та. По умолчанию строка таблицы выводится с первой  позиции
     
      колонки и имеет длину - 60  символов.  Эти  значения  могут
     
      быть изменены директивами .MRL и .MRR.
     
     
           Примечание. Единственная  таблица  в  основном  тексте
     
      документа и в приложении  не  нумеруется.  В  этих  случаях
     
      рекомендуется использовать другой формат директивы:
     
     
                      .TAB M1 M2 0                    .
     
     
           DOC автоматически не нумерует единственную  таблицу  в
     
      основном тексте документа, если документ  форматируется  со
     
      сбором содержания.
     
    

                                - 25 -
     
                           00152-01 33 08
     
     
           3.3.17. Директива .ATT
     
     
           Директива .ATT ипользуется для оформления примечаний.
     
           Директива переводит DOC в режим форматирования текста.
     
           Формат директивы:
     
     
                      .ATT [P1 [P2]]                ,
     
      где  P1 - количество пустых строк перед фрагментом примеча-
     
                ний или перед примечанием, если используется ди-
     
                ректива без P2;
     
           P2 - количество примечаний в фрагменте.
     
     
           Если параметры не заданы или задан только  один  пара-
     
      метр, то директива оформляет  фрагмент  одного  примечания,
     
      дополняя слева текст словом "примечание".
     
           Если заданы оба параметра и значение второго параметра
     
      не меньше 2, то директива оформляет заданное число примеча-
     
      ний, дополняя их соответствующим номером  в  виде  "X.".  В
     
      этом случае первым примечанием считается текст от директивы
     
      .ATT до любой следующей директивы, которая не будет обрабо-
     
      тана в соответствии с ее назначением, а явится только  раз-
     
      делителем примечаний. Вторым примечанием считается текст от
     
      директивы-разделителя до следующей директивы-разделителя  и
     
      т. д.. Таким образом для оформления P2 примечаний DOC восп-
     
      ринимает следующие за директивой
     
     
                      .ATT P1 P2
     
     
      (P2-1) директив как разделители и не обрабатывает их.
     
           Примечание. Поскольку принято соглашение, что в режиме
     
      форматирования горизонтальная табуляция эквивалентна дирек-
     
      тиве .LIN, можно использовать знак <ГТ> в качестве раздели-
     
    

                                - 26 -
     
                           00152-01 33 08
     
     
      теля примечаний. Первые строки второго и последующих приме-
     
      чаний должны начинаться со знака табуляции.
     
           Если заданы оба параметра, но значение  второго  пара-
     
      метра меньше 2, то директива обрабатывается таким  образом,
     
      как если бы второй параметр не был задан.
     
           Текст  каждого  примечания  форматируется   аналогично
     
      текстовой информации после  директивы  .LIN.  По  умолчанию
     
      начальной  позицией  сформатированной  строки   в   колонке
     
      будет 1, а длина строки - 60. Эти значения могут быть изме-
     
      нены директивами .MRL и .MRR.
     
     
     
           3.4. Директивы форматирования страниц
     
     
           Программа DOC автоматически формирует страницы  распе-
     
      чатываемого документа. В оформление страницы документа вхо-
     
      дят:
     
           - нумерация страниц;
     
           - обозначение документа;
     
           - сформатированный  текст  документа,  размещенный   в
     
      одной (формат А4) или двух (формат А3) колонках;
     
           Нумерация страниц осуществляется автоматически.  Номер
     
      страницы печатается по центру колонки страницы.
     
           Наличие и содержание обозначения определяется требова-
     
      ниями стандарта.
     
           Формат  распечатки  определяется  ключом  в  командной
     
      строке. Если использован ключ /S, то вывод осуществляется в
     
      одну колонку. По умолчанию вывод производится в две  колон-
     
      ки.
     
    

                                - 27 -
     
                           00152-01 33 08
     
     
           3.4.1. Директива .STL
     
     
           Аргумент директивы .STL - текстовая строка, используе-
     
      мая в качестве обозначения документа.
     
           Рекомендуется, чтобы в данной  директиве  определялось
     
      обозначение документа по стандарту.
     
           Поскольку обозначение документа используется при  фор-
     
      матировании листа утверждения и титульного листа, директива
     
      .STL должна предшествовать директивам .TLU и .TTL в  тексте
     
      исходного документа.
     
           Действие директивы .STL может быть изменено (отменено)
     
      только другой директивой .STL.
     
           Примечание. Чтобы отказаться от  распечатки  обозначе-
     
      ния, достаточно использовать директиву без аргумента.
     
     
     
           3.4.2. Директива .PAG
     
     
           По директиве .PAG производится переход на новую  стра-
     
      ницу документа. Переход  не  производится,  если  директива
     
      обрабатывается в начале страницы.
     
     
     
           3.4.3. Директива .CLN
     
     
           По директиве .CLN производится переход на новую колон-
     
      ку документа. Переход не производится, если директива обра-
     
      батывается в начале колонки.
     
           При выводе по формату А4 директива  .CLN  совпадает  с
     
      .PAG.
     
    

                                - 28 -
     
                           00152-01 33 08
     
     
           3.4.4. Директива .TES
     
     
           По директиве .TES производится переход на новую колон-
     
      ку документа, если в текущей колонке осталось строк меньше,
     
      чем задано числовым аргументом директивы.
     
     
     
           3.5. Директивы описания структуры
     
     
           Для описания  структуры  документа  DOC  предоставляет
     
      набор директив, которые позволяют выделить в документе:
     
           - лист утверждения;
     
           - титульный лист;
     
           - аннотацию;
     
           - содержание;
     
           - разделы и подразделы;
     
           - пункты и подпункты;
     
           - приложения;
     
           - перечни;
     
           - лист регистрации изменений.
     
           Приложения могут содержать разделы, подразделы и т.д.
     
           Использование директив  описания  структуры  облегчает
     
      формирование заголовков и обеспечивает автоматический  сбор
     
      содержания и нумерацию разделов, подразделов, пунктов, под-
     
      пунктов, приложений и перечней.
     
     
     
           3.5.1. Директива .TLU
     
     
           Директива .TLU предназначена  для  формирования  листа
     
      утверждения по гост 19.104-78 и имеет следующий формат:
     
                      .TLU [N]                   ,
     
      где N - число листов утверждения.
     
    

                                - 29 -
     
                           00152-01 33 08
     
     
           Если параметр N не задан,  то  формируется  один  лист
     
      утверждения, формат которого приведен на рис. 1 .
     
     
                       Формат листа утверждения
     
                .......................................
                .                       I-----1-----I .
                .     I--------------2--------------I .
                .     I-----------------------------I .
                .                                     .
                .     I--------------:--------------I .
                .     I              3              I .
                .     I--------------:--------------I .
                .                                     .
                .                                     .
                .     I-----------------------------I .
                .     I                             I .
                .     I              4              I .
                .     I                             I .
                .     I-----------------------------I .
                .                                     .
                .            Лист утверждения         .
                .                                     .
                .        Обозначение документа-ЛУ     .
                .                                     .
                . I-I        I-------5-------I        .
                . I I                                 .
                . I I            Листов N             .
                . I I                                 .
                . I I I--------------:--------------I .
                . I I I              :              I .
                . I I I              :              I .
                . I I I              :              I .
                . IшI I              6              I .
                . I I I              :              I .
                . I I I              :              I .
                . I I I              :              I .
                . I I I--------------:--------------I .
                . I I                                 .
                . I I              --7--              .
                . I-I             ---8---  литера -9- .
                .......................................
     
     
                                Рис. 1
     
     
           На первом листе утверждения могут разместиться 6  сог-
     
      ласующих подписей (поля 3 и 6) и 5 подписей  представителей
     
      организации-разработчика (поле 6).
     
           Для формирования штампа для учета (поле ш)  необходимо
     
      во входном задании указать ключ /Т.
     
    

                                - 30 -
     
                           00152-01 33 08
     
     
           Если задан параметр N и он отличен от 1, то  директива
     
      формирует N листов утверждения.  На  втором  и  последующих
     
      листах директива располагает согласующие подписи и/или под-
     
      писи  представителей  организации-разработчика.  На  каждом
     
      таком листе размещается 11 согласующих  подписей  и/или  11
     
      подписей представителей организации разработчика.
     
           Директива формирует лист утверждения документа из сле-
     
      дующих за ней строк.  Присутствие  этих  строк  в  исходном
     
      тексте за директивой  .TLU  обязательно.  Если  информация,
     
      Kоторая обычно размещается в какой-либо из этих  строк,  не
     
      требуется, то необходимо указать пустую строку.
     
           Строки выводятся в режиме копирования текста.  Кратные
     
      и конечные пробелы не удаляются  при  обработке  директивы.
     
      Длина строк, если это не оговаривается особо не должна пре-
     
      вышать 65 символов.
     
           Ниже представлено рекомендуемое содержание этих  строк
     
      с указанием в скобках поля по рис. 1 , в котором размещает-
     
      ся информация:
     
      1 строка     - гриф  секретности  (1).  Содержимое   строки
     
                     выравнивается по правому краю колонки;
     
      2 и 3 строки - наименование министерства или  ведомства,  в
     
                     систему которого входит организация,  разра-
     
                     ботавшая  документ  (2).  Содержимое   строк
     
                     выводится по центру колонки;
     
      4 строка     - год выпуска (утверждения) документа (7,3,6),
     
                     четыре символа;
     
      5-7 строки   - должность лица, согласовавшего документ (3).
     
                     Длина строк не более 30 символов. Содержимое
     
                     строк выводится с первой позиции;
     
    

                                - 31 -
     
                           00152-01 33 08
     
     
      8 строка     - инициалы  и  фамилия  лица,   согласовавшего
     
                     документ (3). Содержимое строки выравнивает-
     
                     ся по правому краю левой половины колонки;
     
      9-11 строки  - должность лица, утвердившего  документ  (3).
     
                     Рекомендуемая длина строки не более 30  сим-
     
                     волов. Если строки 5-8  заданы  пустыми,  то
     
                     допустимо  использовать  длину  строк   9-11
     
                     более 30 символов. Содержимое строк выравни-
     
                     вается по левому краю правой половины колон-
     
                     ки;
     
      12 строка    - инициалы и фамилия лица, утвердившего  доку-
     
                     мент (3). Содержимое строки выравнивается по
     
                     правому краю колонки;
     
      13-24 строки - полное наименование программы или  программ-
     
                     ного изделия, наименование  и  вид  докумен-
     
                     та (4). Содержимое этих строк  выводится  по
     
                     центру колонки. Если для выделения  информа-
     
                     ции  требуются  пустые  строки,  они  должны
     
                     включаться в число этих строк;
     
      25 строка    - вид носителя документа (5). Содержимое стро-
     
                     ки выводится по центру колонки;
     
      26-28 строки - должность согласующего лица (6). Длина  каж-
     
                     дой строки не должна превышать 26  символов.
     
                     Содержимое  строк  выравнивается  по  левому
     
                     краю колонки;
     
      29 строка    - инициалы и фамилия  согласующего  лица  (6).
     
                     Содержимое строки выравнивается  по  правому
     
                     краю левой колонки. Если строки 26-29 заданы
     
                     пустыми, то последующие 30-51  строки  будут
     
                     рассматриваться как информация,  относящаяся
    

                                - 32 -
     
                           00152-01 33 08
     
     
                     к организации-разработчику и будут  распола-
     
                     гаться в правой половине колонки.  Всего  на
     
                     (первом) листе утверждения в поле (6)  может
     
                     быть  размещено   5   согласующих   подписей
     
                     и/или 5 подписей представителей  организации
     
                     разработчика;
     
      30-31 строки - информация типа: "представители предприятия-
     
                     разработчика" (6). Содержимое строк выравни-
     
                     вается по левому краю правой половины колон-
     
                     ки. Длина каждой  строки  не  должна  превы-
     
                     шать 26 символов. Если строки  26-29  заданы
     
                     пустыми,  то  допустимо  использовать  длину
     
                     строк  30-31  и  всех  последующих  (до  51)
     
                     более 26 символов;
     
      32-34 строки - должность разработчика (6). Содержимое строк
     
                     выравнивается по левому краю правой половины
     
                     колонки;
     
      35 строка    - инициалы и фамилия разработчика (6).  Содер-
     
                     жимое строки выравнивается по  правому  краю
     
                     колонки;
     
      36-38 строки - аналогичны строкам 26-28, если строки  26-29
     
                     не пусты, или строкам 32-34 в противном слу-
     
                     чае;
     
      39 строка    - аналогична строке 29, если строки  26-29  не
     
                     пусты, или строке 35 в противном случае;
     
      40-42 строки - аналогичны строкам 32-34;
     
      43 строка    - аналогична строке 35;
     
      44-46 строки - аналогичны строкам 26-28, если строки  26-29
     
                     не пусты, или строкам 32-34 в противном слу-
     
                     чае;
    

                                - 33 -
     
                           00152-01 33 08
     
     
      47 строка    - аналогична строке 29, если строки  26-29  не
     
                     пусты, или строке 35 в противном случае;
     
      48-50 строки - аналогичны строкам 32-34;
     
      51 строка    - аналогична строке 35;
     
      52-54 строки - аналогичны строкам 26-28, если строки  26-29
     
                     не  пусты.  В  противном  случае  строка  52
     
                     представляет  собой  строку   изменений   по
     
                     ГОСТ 19.604-78, содержимое которой  выравни-
     
                     вается по  центру  колонки  (8).  Строка  53
     
                     представляет  собой  литеру  документа  (без
     
                     слова "литера"),  выравнивается  по  правому
     
                     краю колонки (9) и  выводится  вместе  с  52
     
                     строкой в одну строку. Строка 54 в этом слу-
     
                     чае представляет собой спецификацию докумен-
     
                     та. Если она не пуста,  то  в  одной  строке
     
                     с 52 строкой по левому  краю  колонки  будет
     
                     напечатано  "перв.примен."   и   децимальный
     
                     номер спецификации;
     
      55 строка    - аналогична строке 29, если строки  26-29  не
     
                     пусты, в противном случае  строка  не  имеет
     
                     смысла для директивы .TLU и не  должна  при-
     
                     сутствовать в тексте;
     
      56-58 строки - аналогичны строкам 32-34, если строки  26-29
     
                     не пусты, в противном случае эти  строки  не
     
                     имеют смысла для директивы .TLU;
     
      59 строка    - аналогична строке 35, если строки  26-29  не
     
                     пусты, в противном случае  строка  не  имеет
     
                     смысла для директивы .TLU;
     
      60-62 строки - аналогичны строкам 26-28, если строки  26-29
     
                     не пусты, в противном случае строки не имеют
    

                                - 34 -
     
                           00152-01 33 08
     
     
                     смысла для директивы .TLU;
     
      63 строка    - аналогична строке 29, если строки  26-29  не
     
                     пусты, в противном случае  строка  не  имеет
     
                     смысла для директивы .TLU;
     
      64-66 строки - аналогичны строкам 32-34, если строки  26-29
     
                     не пусты, в противном случае строки не имеют
     
                     смысла для директивы .TLU;
     
      67 строка    - аналогична строке 35, если строки  26-29  не
     
                     пусты, в противном случае  строка  не  имеет
     
                     смысла для директивы .TLU;
     
      68 строка    - строка изменений  по  гост  19.604-78,  если
     
                     строки 26-29 не пусты. В этом случае  содер-
     
                     жимое строки выравнивается по центру  колон-
     
                     ки (8). В противном случае строка  на  имеет
     
                     смысла для директивы .TLU;
     
      69 строка    - литера документа (без слова "литера"),  если
     
                     строки 26-29 не пусты. В этом случае  содер-
     
                     жимое строки выравнивается по  правому  краю
     
                     колонки и выводится вместе с  68  строкой  в
     
                     одну строку. В противном  случае  строка  не
     
                     имеет смысла для директивы .TLU;
     
      70 строка    - спецификация документа, если строки 26-29 не
     
                     пусты. В этом случае, если строка 70 не пус-
     
                     та, в одной строке с 68  строкой  по  левому
     
                     краю колонки будет напечатано "перв.примен."
     
                     и спецификация документа в следующей строке.
     
                     В противном случае строка  не  имеет  смысла
     
                     для директивы .TLU.
     
     
           Если был задан параметр N не равный 1,  должны  следо-
     
    

                                - 35 -
     
                           00152-01 33 08
     
     
      вать группы строк по 4 строки в каждой, которые  поочередно
     
      аналогичны группам строк 26-29 и 32-35, если  строки  26-29
     
      не были пусты. Если же строки  26-29  были  пусты,  то  все
     
      группы строк аналогичны группе строк 32-35.
     
           Считывание строк  и  формирование  листов  утверждения
     
      происходит до тех пор пока не будет считана строка,  содер-
     
      жащая директиву.
     
           Примечание. Директива сбрасывает счетчик страниц и  не
     
      рекомендуется к использованию внутри основного текста доку-
     
      мента.
     
     
     
           3.5.2. Директива .TTL
     
     
           Директива .TTL предназначена для формирования  титуль-
     
      ного листа по ГОСТ 19.104-78. Формат листа  представлен  на
     
      рис. 2.
     
    

                                - 36 -
     
                           00152-01 33 08
     
     
     
                        Формат титульного листа
     
                .......................................
                .                                     .
                .     I--------------1--------------I .
                .     I-----------------------------I .
                .                                     .
                .      Утвержден                      .
                .                                     .
                .     Обозначение документа-ЛУ        .
                .                                     .
                .                                     .
                .                                     .
                .     I-----------------------------I .
                .     I                             I .
                .     I              2              I .
                .     I                             I .
                .     I-----------------------------I .
                .                                     .
                .          Обозначение документа      .
                . I-I                                 .
                . I I            ----3----            .
                . I I                                 .
                . I I            Листов N             .
                . I I                                 .
                . I I                                 .
                . I I                                 .
                . I I                                 .
                . I I                                 .
                . IшI                                 .
                . I I                                 .
                . I I                                 .
                . I I                                 .
                . I I                                 .
                . I I                                 .
                . I I                                 .
                . I I              --4--              .
                . I-I             ---5---  литера -6- .
                .......................................
     
     
                                Рис. 2
     
     
           Директива формирует титульный  лист  документа  из  18
     
      следующих за ней строк. Присутствие этих строк  в  исходном
     
      тексте за директивой  .TTL  обязательно.  Если  информация,
     
      которая обычно размещается в какой-либо из этих  строк,  не
     
      требуется, то необходимо указать пустую строку.
     
           Строки выводятся в режиме копирования текста.  Кратные
     
      и конечные пробелы не удаляются  из  строки  при  обработке
     
    

                                - 37 -
     
                           00152-01 33 08
     
     
      директивы. Длина строк, если это  не  оговорено  особо,  не
     
      должна превышать 65 символов.
     
           Ниже представлено рекомендуемое содержимое этих  строк
     
      с указанием в скобках поля по рис. 2, в котором размещается
     
      информация:
     
      1-2 строки   - наименование министерства или  ведомства,  в
     
                     систему которого входит организация,  разра-
     
                     ботавшая  документ  (1).  Содержимое   строк
     
                     выводится по центру колонки;
     
      3 строка     - год выпуска документа, четыре  символа  (4).
     
                     Содержимое строки выводится по центру колон-
     
                     ки;
     
      4-15 строки  - полное наименование программы или  программ-
     
                     ного изделия, наименование  и  вид  докумен-
     
                     та (2). Содержимое строк выводится по центру
     
                     колонки. Если для выделения информации  тре-
     
                     буются пустые строки, они должны  включаться
     
                     в число этих строк;
     
      16 строка    - вид носителя документа (3). Содержимое стро-
     
                     ки выводится по центру колонки;
     
      17 строка    - строка  изменений  по  ГОСТ  19.604-78  (5).
     
                     Содержимое строки  выравнивается  по  центру
     
                     колонки;
     
      18 строка    - литера документа (без слова  "литера")  (6).
     
                     Строка выравнивается по правому краю колонки
     
                     и выводится вместе с 17 строкой в одну стро-
     
                     ку;
     
      19 строка    - спецификация документа. Если строка не  пус-
     
                     та, то в одной строке с 17 строкой по левому
     
                     краю колонки будет напечатано "перв.примен."
    

                                - 38 -
     
                           00152-01 33 08
     
     
                     и децимальный номер спецификации в следующей
     
                     строке .
     
     
     
           3.5.3. Директива .INT
     
     
           Директива .INT определяет начало аннотации к  докумен-
     
      ту. Фрагменты текста, следующие за директивой (и  разделен-
     
      ные, может быть, директивами форматирования  текста)  вклю-
     
      чаются в аннотацию.  Ограничением  аннотации  будет  начало
     
      одного из разделов, подразделов,  пунктов,  подпунктов  или
     
      приложений.
     
           Директива перEводит DOC в режим форматирования. Подра-
     
      зумевается, что за этой директивой всегда следует директива
     
      .LIN, которая не указывается в исходном тексте.
     
     
           Примечание. В аннотации допустимо использование  пере-
     
      числений и примечаний.
     
           Аннотация  включается  в  содержание  документа,  если
     
      используется формат директивы:
     
     
                     .INT                      .
     
     
           Если же используется формат директивы:
     
     
                     .INT0                     ,
     
      то аннотация не будет включена в содержание.
     
    

                                - 39 -
     
                           00152-01 33 08
     
     
           3.5.4. Директива .TOC
     
     
           Директива .TOC используется для указания необходимости
     
      сбора содержания. Если необходим сбор содержания, то дирек-
     
      тива .TOC должна быть первой строкой исходного текста.
     
           При сборе содержания DOC выполняет два прохода  (прос-
     
      мотра) исходного текста. При этом на  первом  проходе  осу-
     
      ществляется сбор содержания, а на втором - распечатка доку-
     
      мента и содержания.
     
           В конце первого прохода на  терминале  распечатывается
     
      сообщение о завершении первого прохода и  количестве  стра-
     
      ниц, которое будет содержать сформатированный документ.
     
           Директива имеет следующий формат:
     
     
                     .TOC [хххх]                   ,
     
      где  хххх - четырехсимвольная текстовая строка,  содержащая
     
                  символы "лист" или  "стр.".  Содержимое  строки
     
                  выводится  в содержании  над  колонкой  номеров
     
                  страниц структурных элементов.
     
     
           Если текстовый  аргумент  директивы  не  задан,  то  в
     
      содержании над колонкой номеров  страниц  ничего  не  будет
     
      напечатано.
     
     
     
           3.5.5. Директива .TCT
     
     
           Директива  .TCT  позволяет   заносить   дополнительную
     
      информацию в содержание документа. Если в  исходном  тексте
     
      не используется директива .TOC, то .TCT игнорируется.
     
           Директива имеет в качестве аргумента текстовую строку,
     
      которая заносится в содержание документа. Положение  дирек-
     
      тив .TCT во входном тексте определяет место  в  содержании,
    

                                - 40 -
     
                           00152-01 33 08
     
     
      где указанные в директивах строки будут распечатаны.
     
           Основное  назначение  данной  директивы  -  обеспечить
     
      средство, позволяющее включить в  содержание  первой  части
     
      документа перечисление остальных частей, входящих  в  доку-
     
      мент, и их обозначений.
     
     
     
           3.5.6. Директива .APN
     
     
           По директиве .APN DOC начинает распечатку  приложения,
     
      используя  текстовый  аргумент  как  заголовок.  Приложения
     
      начинаются с новой страницы. Заголовок приложения выводится
     
      по центру колонки. Положение центра определяется сдвигом от
     
      начала колонки и максимальной длиной строки (по умолчанию 1
     
      и 59), которые могут быть изменены директивами .MRL и .MRR.
     
           Если в директиве не задан текстовый аргумент, то заго-
     
      ловком приложения считается фрагмент текста до  любой  сле-
     
      дующей директивы. По умолчанию в этом случае сдвиг  сформа-
     
      тированного  текста  заголовка  от  левого   края   колонки
     
      равен 10, а длина строки -  43.  Эти  значения  могут  быть
     
      изменены директивами .MRL и .MRR.
     
           Если длина заголовка приложения  составляет  более  40
     
      символов, то не рекомендуется задавать его в качестве текс-
     
      тового аргумента директивы.
     
           Если не задан текстовый аргумент директивы и за дирек-
     
      тивой .APN следует другая директива, то заголовок  приложе-
     
      ния не формируется и соответствующая  информация  не  вклю-
     
      чается в содержание.
     
           Если после директивы .APN в исходном тексте встречают-
     
      ся директивы .CPT или .HLV, то нумерация  структурных  эле-
     
      ментов возобновляется и сведения  о  них  не  включаются  в
     
    

                                - 41 -
     
                           00152-01 33 08
     
     
      содержание.
     
           DOC автоматически нумерует приложения. Если в исходном
     
      тексте была использована только одна директива .APN и доку-
     
      мент форматировался со сбором содержания, то номер приложе-
     
      ния (единственного) не будет  выведен  ни  в  тексте  ни  в
     
      содержании.
     
           Допускается использовать до 25 директив .APN в  исход-
     
      ном тексте. Если было использовано более  25  директив,  то
     
      DOC выводит информационное сообщение и игнорирует последую-
     
      щие директивы .APN, обрабатывая текст обычным образом.
     
     
     
           3.5.7. Директива .CPT
     
     
           По директиве .CPT  DOC  начинает  распечатку  раздела.
     
      Используя текстовый аргумент директивы в качестве  заголов-
     
      ка. Переход на новую колонку выводимого текста определяется
     
      ключом /R.
     
           Первый раздел всегда выводится с новой страницы.
     
           Если в директиве не задан текстовый аргумент, то заго-
     
      ловком раздела считается фрагмент текста до любой следующей
     
      директивы.  По  умолчанию  сдвиг  сформатированного  текста
     
      заголовка от левого края колонки равен 10, а  длина  строки
     
      - 43. Эти значения могут быть изменены .MRL и .MRR.
     
           Если длина заголовка раздела составляет более 51  сим-
     
      вола, то не рекомендуется задавать его в качестве текстово-
     
      го аргумента директивы.
     
           Длина заголовка раздела,заданного  фрагментом  текста,
     
      должна быть не меньше длины строки сформатированного текста
     
      для директивы .CPT без текстового аргумента (43 по  умолча-
     
      нию).
     
    

                                - 42 -
     
                           00152-01 33 08
     
     
           Если не задан текстовый аргумент и за директивой  .CPT
     
      следует директива типа .LIN, то заголовок раздела не форми-
     
      руется и соответствующая информация в оглавление не вносит-
     
      ся.
     
     
     
           3.5.8. Директива .HLV
     
     
           Директива .HLV  используется  для  определения  начала
     
      подраздела, пункта или подпункта.  Интерпретация  директивы
     
      определяется числовым аргументом:
     
                       1 - подраздел;
     
                       2 - пункт;
     
                       3 - подпункт.
     
           Фрагмент текста, следующий за директивой, используется
     
      как заголовок.
     
           Заголовок структурного элемента  форматируется  анало-
     
      гично текстовой информации.
     
           Если непосредственно за директивой .HLV  указать  одну
     
      из директив типа .LIN, то заголовок не сформируется и соот-
     
      ветствующая информация в оглавление  не  будет  внесена.  В
     
      этом случае в  начале  выводимого  фрагмента  текста  будет
     
      проставлена нумерация. Содержимое номера определяется  ана-
     
      логично нумерации заголовков.
     
     
     
           3.5.9. Директива .LIS
     
     
           По директиве .LIS DOC  начинает  распечатку  перечней,
     
      используя текстовый аргумент как заголовок.
     
           Если текстовый  аргумент  директивы  не  задан,  то  в
     
      качестве заголовка используется фрагмент  текста  до  любой
     
      следующей директивы.  Форматирование  заголовка  происходит
    

                                - 43 -
     
                           00152-01 33 08
     
     
      аналогично заголовку приложения.
     
           Если заголовок перечня включает в себя более 54 симво-
     
      лов, то не рекомендуется задавать его в качестве текстового
     
      аргумента директивы.
     
           Перечни начинаются с новой страницы.
     
           Если была задана директива .TOC, то текстовый аргумент
     
      вносится также в содержание документа с указанием  страницы
     
      выходного документа, на которой начинается данный перечень.
     
           Если не задан текстовый аргумент и за директивой  .LIS
     
      следует директива, то заголовок перечня  не  формируется  и
     
      информация о нем не включается в содержание.
     
     
     
           3.5.10. Директива .SHI
     
     
           По директиве .SHI DOC распечатывает  лист  регистрации
     
      изменений по гост 19.604-78.
     
           ДирективГОСТпускает  аргумент  -  спецификацию  файла,
     
      содержащего лист регистрации изменений. Соглашения о специ-
     
      фикации в директиве совпадают с соглашениями о спецификации
     
      файла в команде оператора (ключи не допускаются).
     
           Директива переводит DOC в  режим  копирования  текста.
     
      Длина строки исходного текста  в  файле  листа  регистрации
     
      изменений не должна превышать 60 символов.
     
           Директива .SHI  должна  быть  последней  директивой  в
     
      исходном тексте.
     
    

                                - 44 -
     
                           00152-01 33 08
     
     
           3.6. Служебные директивы
     
     
           В состав служебных директив входят директивы работы  с
     
      файлами, директивы управления  позиционированием  текстовой
     
      информацией на странице листинга, директивы управления над-
     
      печаткой и др.
     
     
     
           3.6.1. Директива .COM
     
     
           Директива .COM предназначена для внесения комментариев
     
      в исходный текст документа.  Строки-аргументы  директив  не
     
      выводятся в формируемый документ,  они  распечатываются  на
     
      терминале оператора.
     
           Директива:
     
     
              .COM TEXT
     
     
      приведет к распечатке на терминале:
     
     
              ?DOC-I-TEXT
     
     
     
           3.6.2. Директива .CHA
     
     
           Аргументом директивы .CHA является спецификация файла,
     
      в котором находится продолжение исходного текста документа.
     
      Соглашения о спецификации файла  в  директиве  совпадают  с
     
      соглашениями о спецификации файла в команде оператора (клю-
     
      чи не допускаются).
     
           По этой директиве обработка текущего файла прекращает-
     
      ся и начинает обрабатываться  указанный  файл.  Возврата  в
     
      исходный файл не происходит. Это дает возможность  размеще-
     
      ния исходного текста документа в нескольких файлах,  распо-
     
      ложенных на различных  носителях.  Длина  "цепочки"  файлов
    

                                - 45 -
     
                           00152-01 33 08
     
     
      логически не ограничена.
     
     
           Примечания:
     
           1. Если в спецификации файла отсутствует указание уст-
     
      ройства и/или оглавления, то по умолчанию  выбирается  уст-
     
      ройство и/или оглавление, на котором размещен  первый  файл
     
      распечатываемого документа.
     
           2. Если в следующих за директивой .CHA строках следует
     
      текст, он не будет выводится в формируемый документ.
     
     
     
           3.6.3. Директива .CPY
     
     
           Аргументом директивы .CPY является спецификация файла.
     
      Текст, содержащийся в указанном файле, будет включен в фор-
     
      мируемый документ. Соглашения о спецификации  файла  совпа-
     
      дают с соглашениями директивы .CHA.
     
           По директиве .CPY обработка текущего файла приостанав-
     
      ливается  и  начинает  обрабатываться  указанный  файл.  По
     
      завершению обработки включаемого ("вторичного")  файла  DOC
     
      возобновляет обработку первичного файла со строки,  следую-
     
      щей за .CPY. Допускается использование во  вторичном  файле
     
      директивы .CHA, т.е. вторичные файлы могут быть организова-
     
      ны в цепочку.
     
           Директива переводит DOC в режим копирования текста.
     
           Во вторичном файле запрещается использование  директив
     
      .CPY и .CPL.
     
     
           Примечание. Если в спецификации файла отсутствует ука-
     
      зание устройства и/или оглавления, то  по  умолчанию  выби-
     
      рается устройство и/или оглавление на котором размещен пер-
     
      вый файл распечатываемого документа.
     
    

                                - 46 -
     
                           00152-01 33 08
     
     
           3.6.4. Директива .CPL
     
     
           Аргументом директивы .CPL является спецификация файла.
     
           Соглашения о спецификации файла совпадают  с  соглаше-
     
      ниями директивы .CHA.
     
           По директиве .CPL обработка текущего файла приостанав-
     
      ливается и начинает обрабатываться "вторичный" файл.  Текст
     
      "вторичного" файла выводится в  обрабатываемый  документ  с
     
      новой страницы в режиме копирования, встреченные  во  "вто-
     
      ричном" файле директивы не  обрабатываются  (выводятся  как
     
      обычный текст).
     
           По завершении обработки "вторичного" файла DOC  возоб-
     
      новляет обработку "первичного" файла со  строки,  следующей
     
      за директивой .CPL.  При  этом  осуществляется  переход  на
     
      новую страницу.
     
           Директива .CPL может быть использована только в  "пер-
     
      вичном" файле.
     
           По директиве .CPL в тексте "вторичного" файла не обра-
     
      батываются управляющие символы надпечатки, т.е.  Они  выво-
     
      дятся в выходной документ как обычные символы.
     
           Удобно использовать директиву .CPL для сбора документа
     
      "текст программ", используя различные файлы листингов. Нап-
     
      ример есть файлы листингов:
     
     
              F1.LIS,F2.LIS,F3.LIS,.....                 .
     
     
      Для получения  документа  необходимо  подготовить  примерно
     
      такой исходный текст для программы DOC:
     
     
              .STL ............
     
              .TLU
     
              ....
    

                                - 47 -
     
                           00152-01 33 08
     
     
              ....
     
              ....
     
              .TTL
     
              ....
     
              ....
     
              ....
     
              .TOC
     
              .INT
     
              ....
     
              .CPT текст программы F1
     
              .CPL F1.LIS
     
              .CPT текст программы F2
     
              .CPT F2.LIS
     
              ....
     
              ....
     
     
      и при вводе входного задания задать ключ /P.
     
     
     
           3.6.5. Директива .JMP
     
     
           Аргумент директивы .JMP указывает сколько строк  необ-
     
      ходимо пропустить  после  вывода  сформатированной  строки,
     
      т.е.  Определяет  разрядку  между  строками  форматируемого
     
      текста.
     
           Значение  директивы  отменяется  следующей  директивой
     
      .JMP. По умолчанию значение аргумента устанавливается  клю-
     
      чом /J. Для восстановления значения по умолчанию необходимо
     
      задать аргумент "-1".
     
     
           Примечания:
     
           1. Необходимо помнить, что указанное в других директи-
     
    

                                - 48 -
     
                           00152-01 33 08
     
     
      вах число пропускаемых строк сохраняет силу. Это  означает,
     
      что по директиве ".LIN 2" перед началом абзаца будет пропу-
     
      щено именно 2 строки.
     
           2. Число пустых строк между строками текста в содержа-
     
      нии определяется ключом /J.
     
     
     
           3.6.6. Директива .MRL
     
     
           Пять числовых аргументов, заданных  в  директиве  .MRL
     
      через запятую, указывают номер позиции от края  колонки,  с
     
      которой необходимо начинать строку (указывают левую границу
     
      текста - NC0). Значения аргумента приведены в табл. 1.
     
                                                        Таблица 1
                     аргументы директивы .MRL
     
      -----------------------------------------------------------
                  I                          I
        Номер     I  Задают левую границу    I   Значение по
                  I                          I
        аргумента I      для директив        I    умолчанию
                  I                          I
      -----------------------------------------------------------
                  I                          I
          1       I     .LIN, .BLN, .SWT,    I        1
                  I                          I
                  I  .MID, .RIT, .CPT, .APN, I       или
                  I                          I
                  I  .LIS, .AND, .ATT, .DIS, I    значение /X
                  I                          I
                  I  .RIS, .TAB, .HLV, .PAG  I
                  I                          I
                  I                          I
          2       I     Формируется програм- I        -
                  I                          I
                  I  мой DOC для  директивы  I
                  I                          I
                  I  .DIS                    I
                  I                          I
                  I                          I
          3       I     .AN2, .TBL, .DFN     I       10
                  I                          I
                  I                          I
          4       I     .TB2, .DF2           I       17
                  I                          I
                  I                          I
          5       I     Для .CPT, .APN, .LIS I       10
                  I                          I
                  I  без текстового  аргумен-I
    

                                - 49 -
     
                           00152-01 33 08
     
     
                                              Продолжение табл. 1
      -----------------------------------------------------------
                  I                          I
        Номер     I  Задают левую границу    I   Значение по
                  I                          I
        аргумента I      для директив        I    умолчанию
                  I                          I
      -----------------------------------------------------------
                  I                          I
                  I                          I
                  I  та                      I
     
           В директиве необходимо указывать все  аргументы.  Если
     
      какой-либо аргумент опущен или равен 0, то  соответствующая
     
      левая граница не изменяется. Позиции соответствующих  аргу-
     
      ментов отделяются запятыми.
     
           Для    восстановления    значения     по     умолчанию
     
      соответствующий аргумент должен быть указан равным "-1".
     
     
           Примечание. При выводе документа в формате А3 фрагмент
     
      текста, не удовлетворяющий условию:
     
     
             NC0(N)+NC1(N) <= (128-(/Z))/2+1    ,
     
      где N    - номер аргумента или номер элемента массивов  ле-
     
                 вых и правых границ текста,  который  использует
     
                 обрабатываемая директива (см. табл. 1 и табл.2);
     
          (/Z) - значение ключа /Z (8 по умолчанию).
     
     
      Выводится с новой страницы в одну колонку.
     
     
     
           3.6.7. Директива .MRR
     
     
           Директива .MRR задает длину форматируемых строк  (NC1)
     
      пятью числовыми аргументами.
     
     
                        NC1(N)-1              .
     
     
           Значения аргументов приведены в табл. 2.
     
    

                                - 50 -
     
                           00152-01 33 08
     
     
                                                        Таблица 2
                       Аргументы директивы .MRR
     
      -----------------------------------------------------------
                   I                          I
          Номер    I  Задает длину строки     I  Значение по
                   I                          I
        аргумента  I     для директив         I   умолчанию
                   I                          I
      -----------------------------------------------------------
                   I                          I
         1         I     .LIN, .BLN, .SWT,    I       60
                   I                          I
                   I  .APN, .MID, .RIT, .CPT, I       или
                   I                          I
                   I  .LIS, .AND, .ATT, .DIS, I   значение /Y
                   I                          I
                   I  .RIS, .TAB, .HLV, .PAG  I
                   I                          I
                   I                          I
         2         I     Формируется програм- I       -
                   I                          I
                   I  мой DOC для  директивы  I
                   I                          I
                   I  .DIS                    I
                   I                          I
                   I                          I
         3         I     .AN2, .TBL, .DFN     I       51
                   I                          I
                   I                          I
         4         I     .TB2, .DF2           I       44
                   I                          I
                   I                          I
         5         I     для .CPT, .APN, .LIS I       43
                   I                          I
                   I  без  текстового аргумен-I
                   I                          I
                   I  та                      I
                   I                          I
     
           В директиве необходимо указывать все  аргументы.  Опу-
     
      щенный или равный 0 аргумент означает, что  соответствующая
     
      величина остается без изменений.
     
           Для восстановления значения  по  умолчанию  необходимо
     
      указать соответствующий аргумент, равный "-1".
     
    

                                - 51 -
     
                           00152-01 33 08
     
     
           3.6.8. ДирекTива .OVP
     
     
           Директива .OVP предназначена для определения  символов
     
      управления надпечаткой. Аргумент директивы -  два  печатных
     
      знака, первый из которых определяет признак надпечатки сло-
     
      ва, а второй - признак начала  и  конца  последовательности
     
      надпечатываемых слов.
     
           По умолчанию управляющими знаками являются  соответст-
     
      венно "_" (подчеркивание) и "\" (обратная косая черта), что
     
      эквивалентно:
     
     
                      .OVP _\                .
     
     
           Для получения надпечатки слова, перед ним должна  быть
     
      указана последовательность "  __",  при  выводе  на  печать
     
      управляющая последовательность из входной строки удаляется.
     
           Длина надпечатываемого слова не  должна  превышать  15
     
      символов (без учета управляющих символов) и в строке исход-
     
      ного текста таких слов может быть не  больше  5.  Если  эти
     
      условия не выполнены, то слова, выходящие за эти пределы не
     
      будут надпечатаны, но при этом управляющие  символы  надпе-
     
      чатки удаляются.
     
           В режиме форматирования текста слова,  отмеченные  для
     
      надпечатки в строке исходного текста и не вошедшие в  сфор-
     
      матированную строку, надпечатываются в следующей  сформати-
     
      рованной строке. При этом  из  следующей  строки  исходного
     
      текста будет надпечатано столько отмеченных для  надпечатки
     
      слов, сколько требуется  для  дополнения  числа  оставшихся
     
      слов из предыдущей строки исходного текста до 5,  остальные
     
      отмеченные для надпечатки слова не надпечатаются  и  управ-
     
      ляющие символы надпечатки удалятся.
     
    

                                - 52 -
     
                           00152-01 33 08
     
     
           Последовательность слов, которая должна  иметь  надпе-
     
      чатку, должна начинаться и заканчиваться управляющей после-
     
      довательностью  "\\".  Эта  управляющая  последовательность
     
      играет роль скобок (открывающей и закрывающей), которые при
     
      обработке удаляются из входной строки.
     
           Если скобка открыта, но не закрыта ни  в  этой  строке
     
      исходного текста, ни в последующих, то надпечатается  фраг-
     
      мент от "\\" до любой следующей директивы.
     
           В строке исходного текста допустимо отметить для  над-
     
      печатки только один фрагмент. Если отмечено несколько фраг-
     
      ментов в одной строке исходного  текста,  то  надпечатается
     
      только первый  фрагмент,  из  остальных  фрагментов  строки
     
      исходного текста только удалятся управляющие символы.
     
           Если в режиме форматирования текста два фрагмента над-
     
      печатки, расположенные в двух  соседних  строках  исходного
     
      текста, попадут в одну  сформатированную  строку,  надпеча-
     
      тается только второй фрагмент, из первого только будут уда-
     
      лены управляющие символы надпечатки.
     
           Примечание. Надпечатка производится только в том  слу-
     
      чае, если в строке входного задания для DOC указан ключ /M.
     
      В этом случае также автоматически  производится  надпечатка
     
      заголовков в тексте формируемого документа.
     
     
     
           3.6.9. Директива .SET
     
     
           Директива .SET используется для указания номеров  при-
     
      ложений, разделов, подразделов,  пунктов  и  подпунктов,  с
     
      которых начинается формирование выходного текста документа.
     
      Эти номера определяются пятью числовыми аргументами, приве-
     
      денными в табл. 3.
     
    

                                - 53 -
     
                           00152-01 33 08
     
     
                                                        Таблица 3
                   Аргументы директивы .SET
     
      -----------------------------------------------------------
                        I
            Номер       I          Воздействуемый
                        I
          аргумента     I            параметр
                        I
      -----------------------------------------------------------
                        I
              1         I              Номер
                        I
                        I             раздела
                        I
                        I
              2         I              Номер
                        I
                        I            подраздела
                        I
                        I
              3         I              Номер
                        I
                        I             пункта
                        I
                        I
              4         I              Номер
                        I
                        I            подпункта
                        I
                        I
              5         I              Номер
                        I
                        I            приложения
                        I
     
           Если директива .SET  указана,  то  считается,  что  до
     
      момента появления этой директивы DOC обнаружил указанное (в
     
      порядке указания аргументов) число директив  .CPT,  .HLV  и
     
      .APN.
     
           Если в качестве аргумента дано неотрицательное  число,
     
      то текущий счетчик (директив .CPT, .HLV или .APN - в  зави-
     
      симости от позиции аргумента) заменяется  указанным  значе-
     
      нием. Поскольку DOC увеличивает счетчики на 1  перед  обра-
     
      боткой директивы, в директиве .SET значения  должны  указы-
     
      ваться на 1 меньше требуемых. Начальное состояние счетчиков
     
      равно нулю.
     
           Если в .SET указан аргумент, равный -1, то  соответст-
    

                                - 54 -
     
                           00152-01 33 08
     
     
      вующий ему счетчик не изменяется.
     
           Директива  используется  при  "отладке"  документа  по
     
      "частям" или при об'единении нескольких документов с собст-
     
      венной нумерацией разделов, подразделов и др. В один  доку-
     
      мент с единой нумерацией страниц.
     
           В качестве примера рассмотрим следующую ситуацию.  При
     
      выводе пункта документа с номером 3.4.7 в  исходном  тексте
     
      дана директива .SET 5,2,-1,3,7 . После этого директивы опи-
     
      сания структуры будут обработаны следующим образом:
     
     
              приложение       (.APN)         8
     
              раздел           (.CPT)         6
     
              подраздел        (.HLV 1)       6.3
     
              пункт            (.HLV 2)       6.3.8
     
              подпункт         (.HLV 3)       6.3.8.4
     
     
     
           3.7. Рекомендации по подготовке исходного текста
     
     
           При использовании директив, переводящих  DOC  в  режим
     
      форматирования, не рекомендуется в исходном  тексте  оформ-
     
      лять перенос слов. В  режиме  форматирования  перенос  слов
     
      оформляется  программой  DOC  всюду,  где  это  необходимо.
     
      Встреченный в строке исходного текста символ "-" из  строки
     
      удаляется  и  производится  конкатенация  последнего  слова
     
      строки с первым словом следующей строки. Встреченный в кон-
     
      це строки символ "-" с предыдущим  пробелом  воспринимается
     
      как обычный символ.
     
           Для правильного оформленния ссылок в режиме форматиро-
     
      вания текста рекомендуется в исходном тексте  ссылку  поме-
     
      щать в одной строке с предшествующим  словом.  Ссылкой  для
     
      программы DOC является любой набор символов  из  последова-
    

                                - 55 -
     
                           00152-01 33 08
     
     
      тельности: '0123456789.,:;-()"[]'.
     
           В режиме форматирования текста (DOC  уже  переведен  в
     
      этот режим какой-либо директивой) удобно использовать  знак
     
      горизонтальной табуляции ( <ГТ> ) в начале строки для выде-
     
      ления абзаца вместо .LIN. Знак горизонтальной табуляции сам
     
      не переводит DOC в режим форматирования (если DOC был ранее
     
      переведен в режим копирования); в режиме  копирования  <ГТ>
     
      воспринимается просто как знак  табуляции  и  преобразуется
     
      в 8 пробелов в начале строки.
     
           При использовании директив, переводящих  DOC  в  режим
     
      копирования, длина строки исходного текста в  общем  случае
     
      не должна  превышать  59  символов.  Исключение  составляет
     
      директива .LST .
     
           Длина любой строки исходного текста не  должна  превы-
     
      шать 128 символов.
     
           При оформлении шапки таблицы (директива .TAB), рисунка
     
      (директива .RIS) и т.д. Следует  помнить,  что  два  подряд
     
      символа "_" (подчеркивание) перед словом по умолчанию отме-
     
      чают  надпечатываемое  слово,  а  два  подряд  символа  "\"
     
      (обратная косая) отмечают надпечатываемый  фрагмент.  Чтобы
     
      иметь возможность использовать эти символы  (подряд  два  и
     
      более) не как управляющие  символы  надпечатки,  необходимо
     
      директивой .OVP изменить управляющие знаки надпечатки.
     
     
     
           3.8. Пример исходного текста документа
     
     
           Пример начала исходного текста документа:
     
     
       .TOC
     
       .COM Форматирование текстов
     
       .COM 29 марта 1986
    

                                - 56 -
     
                           00152-01 33 08
     
     
       .STL 589.7194.00111-01 33 01
     
       .TTL
     
     
     
     
     
       1986
     
       Многофункциональная операционная система, поддерживающая
     
       виртуальную память для 32-разрядных ЭВМ СМ-1700
     
       МОС ВП
     
     
     
     
     
       Редактирование и форматирование текстов
     
     
     
       Форматирование текстов
     
     
     
       Руководство программиста
     
     
     
     
     
       <вид носителя>
     
       <строка изменеий>
     
       0
     
       .INT
     
       Часть содержит руководство программиста по
     
       использованию программы форматирования
     
       текстов и документов "DOC"
     
       и описание ее управляющих директив.
     
       .LIN
     
       Программа предназначена для получения текстов в форме,
     
       удобной для
     
       восприятия. Формат исходного текста позволяет
     
       быстро вносить изменения
    

                                - 57 -
     
                           00152-01 33 08
     
     
       средствами редактирования МОС ВП.
     
       .CPT Назначение программы
     
       .LIN
     
       Программа "DOC" предназначена для получения
     
       текстов в форме, удобной для восприятия,
     
       распечатки созданных или скорректированных
     
       файлов. Формат исходного текста позволяет
     
       быстро вносить изменения средствами
     
       редактирования МОС ВП.
     
       .CPT Условия применения и пуск программы
     
       .LIN
     
       Раздел содержит информацию,
     
       необходимую программисту для загрузки и запуска
     
       программы DOC.
     
       .LIN
     
       Программа DOC запускается на выполнение в
     
       текущем процессе командой:
     
       .SWT
     
                      $RUN DOC
     
       или
     
                      $R DOC          .
     
       .LIN
     
       если файл, содержащий образ программы DOC
     
       имеет имя отличное от DOC.EXE , то в
     
       команде $RUN необходимо задать полную
     
       спецификацию файла.
     
                  ...
     
                  ...
     
                  ...
     
     
    

                                - 58 -
     
                           00152-01 33 08
     
     
           Пример завершающего фрагмента исходного  текста  доку-
     
      мента:
     
     
       .TCT
     
       .TCT часть 2. Редактор общего назначения
     
       .TCT          <децимальный номер документа>
     
       .TCT
     
       .TCT часть    Программируемый редактор
     
       .TCT          <децимальный номер документа>
     
     
     
     
     
     
                       4. Сообщения об ошибках
     
     
     
     
              ?DOC-F-дублирование ключа
     
     
           Какой-либо из допустимых ключей указан в строке  вход-
     
      ного задания более одного раза.
     
           Действия программиста - ввести правильную строку вход-
     
      ного задания.
     
     
              ?DOC-F-неверен ключ
     
     
           В строке входного задания указан недопустимый ключ.
     
           Действия программиста - ввести правильно строку  вход-
     
      ного задания.
     
     
              ?DOC-F-невозможно открыть выходной файл
     
     
           На заданном  устройстве  невозможно  открыть  выходной
     
      файл.
     
           Действия программиста - проверить полномочия, правиль-
     
      но ввести строку выходного задания.
    

                                - 59 -
     
                           00152-01 33 08
     
     
              ?DOC-F-недопустимое значение ключа
     
     
           Для указанного ключа недопустим аргумент  или  указано
     
      неверное значение.
     
           Действия программиста - ввести правильно строку  вход-
     
      ного задания.
     
     
              ?DOC-F-недопустимое значение ключа /L и/или /N
     
     
           Недопустимо иметь более 93 строк  текста  на  странице
     
      печати при выводе документа  в  12  формате  с  ключом  /M.
     
      Действия программиста - ввести  правильно  строку  входного
     
      задания.
     
     
              ?DOC-F-неправильная спецификация файла
     
     
           Неверно введена строка входного задания.
     
           Действия программиста - ввести правильно строку  вход-
     
      ного задания.
     
     
              ?DOC-F-несовместимые значения ключей
     
     
           Для ключей /в и /е или /L и /N в строке входного зада-
     
      ния указаны некорректные значения.
     
           Действия программиста - ввести правильную строку вход-
     
      ного задания.
     
     
              ?DOC-F-отсутствует значение ключа
     
     
           В строке входного задания указан ключ, требующий  чис-
     
      лового значения.
     
           Действия программиста - ввести правильно строку  вход-
     
      ного задания.
     
    

                                - 60 -
     
                           00152-01 33 08
     
     
              ?DOC-F-ошибка чтения
     
     
           Ошибка при чтении входного файла.
     
           Действия программиста - проверить, что требуемые вход-
     
      ные файлы читаются без ошибок и содержат допустимую  (текс-
     
      товую) информацию.
     
     
              ?DOC-F-файл не найден
     
     
           Указанный в строке входного задания файл не найден  на
     
      носителе.
     
           Действия программиста - проверить, правильно ли указа-
     
      на спецификация файла и  существует  ли  файл  на  заданном
     
      носителе.
     
     
              ?DOC-I-конец первого прохода WW листов распечатки
     
     
           Информационное сообщение о конце  первой  фазы  работы
     
      программы; сообщение содержит данные  о  количестве  листов
     
      бумаги, необходимых для вывода сформатированного документа.
     
           Действия программиста  -  подготовить  соответствующее
     
      количество бумаги для устройства печати.
     
     
              ?DOC-I-слишком много приложений
     
     
           Информационное сообщение. В исходном тексте  использо-
     
      вано более 25 директив .APN. Текст после 25 директивы  .APN
     
      будет отнесен к приложению 25.
     
           Действия программиста - при необходимости пересмотреть
     
      использование директив .APN в исходном тексте.
     
     
              ?DOC-I-<текстовая информация>
     
     
           Распечатывается текстовый аргумент директивы .COM, DOC
     
    

                                - 61 -
     
                           00152-01 33 08
     
     
      продолжает обработку текста.
     
     
              ?DOC-W-вложенная директива .CPL; игнорируется
     
     
           Файл, включаемый в фформатирование директивой .CPL или
     
      .CPY содержит директиву .CPL; вложение директив  запрещено.
     
      Действия программиста -  прервать  операцию  форматирования
     
      документа и отредактировать его текст. Необходимо  заменить
     
      структуру ссылок по .CPL и снять вложенность.  В  противном
     
      случае в сформатированный документ не будет  включен  файл,
     
      указанный в директиве .CPL.
     
     
              ?DOC-W-вложенная директива .CPY; игнорируется
     
     
           Файл, включаемый  в  форматирование  директивой  .CPY,
     
      содержит директиву .CPY; вложение .CPY запрещено.
     
           Действия программиста - прервать операцию форматирова-
     
      ния документа и отредактировать его текст. Необходимо заме-
     
      нить структуру ссылок по .CPY и снять вложенность.  В  про-
     
      тивном случае в сформированный документ  не  будет  включен
     
      файл, указанный в директиве .CPY.
     
     
              ?DOC-W-игнорируется ключ /N
     
     
           В строке входного задания ключ /N задан  раньше  ключа
     
      /L. Действия программиста - если задать ключ /N необходимо,
     
      то прервать выполнение программы DOC и при повторном  входе
     
      ввести строку входного задания, поменяв местами ключи /L  и
     
      /N.
     
     
              ?DOC-W-неверная команда в строке #NNNNN
     
     
           Программа не  распознает  текст  в  строке  NNNNN  как
     
      директиву.
    

                                - 62 -
     
                           00152-01 33 08
     
     
           Действия программиста - ввести  <ВК>  для  продолжения
     
      работы. Указанная строка программой игнорируется. При необ-
     
      ходимости следует прервать работу программы и  отредактиро-
     
      вать входной файл.
     
     
              ?DOC-W-невозможно открыть файл оглавления
     
     
           На текущем устройстве пользователя невозможно  открыть
     
      файл для сбора оглавления.
     
           Действия программиста - освободить  место  на  текущем
     
      устройстве и повторить операцию. В противном случае сформи-
     
      рованный документ будет создан без оглавления.
     
     
              ?DOC-W-нет аргумента в директиве .OVP; игнорируется
     
     
           В директиве .OVP отсутствует аргумент. Директива игно-
     
      рируется.
     
           Действия  программиста  -  при  необходимости  следует
     
      прервать работу программы и отредактировать входной файл.
     
     
     
     
     
     
     
     
    

                             - 63K -

                        2б.00152-01 33 08
 
 
   ------------------------------------------------------------
   I                                                          I
   I                  Лист регистрации изменений              I
   I                                                          I
   I----------------------------------------------------------I
   IНомера листов (страниц)IВсего IN     IВходящий IПодп.IДатаI
   I-----------------------IлистовIдоку- IN сопро- I     I    I
   IИ IИз- IЗа- IНо- IАнну-I(стра-Iмента Iводитель-I     I    I
   Iз Iме- Iме- Iвых Iлиро-Iниц)  I      Iного до- I     I    I
   Iм Iнен-Iнен-I    Iван- Iв до- I      Iкум. и   I     I    I
   I. Iных Iных I    Iных  Iкум.  I      Iдата     I     I    I
   I----------------------------------------------------------I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!