Підготовка документів для UNIX програм

Одним з перших застосувань системи UNIX було редагування та форматування документів, адже керівництво Bell Labs вдалося скло нитка на покупку першої машини PDP-11 саме за рахунок обіцянок створити систему підготовки документів, а зовсім операційної систе ми (На щастя, вони отримали більше, ніж очікували)

Перша програма форматування текстів називалася roff Вона була маленькою, швидкої і зручної в роботі для тих, кому треба було виво дить невеликі документи на построчно друкує принтер Наступне засіб форматування, nroff, створене Джо Осса (Joe Ossanna), було набагато більше претензійною Замість того щоб намагатися надати в розпорядження користувачів всі стилі документів, Оссанна зробив nroff програмованим, так що багато завдань форматування вирішувалися за допомогою програмування мовою nroff

З придбанням в 1973 році маленької складальної машини nroff був розширений для обробки численних шрифтів, розмірів і всього безлічі символів, що надається цією машиною Нова програма отримала назву troff (за аналогією з «ен-Рофф» вимовляється «ти-Рофф») По суті, nroff і troff – це одна і та ж програма, для них прийнятий один і той же мова введення nroff ігнорує такі команди, як зміна розміру, які він не може обробити У книзі розповідатиметься про програму troff, але більша частина коментарів застосовна і до nroff, з урахуванням обмежень, що стосуються пристроїв виводу

Основною перевагою troff є гнучкість базової мови і його програмованість, можна зробити так, щоб практично будь-яке завдання форматування була виконана Але ця гнучкість дорого обійшлася програмі – З troff буває дуже важко працювати Справедлівос-

ти заради відзначимо, що практично все програмне забезпечення UNIX для підготовки документів було розроблено для того, щоб при крити якусь частину «голої» програми troff

В якості одного з прикладів можна навести макет сторінки – загальний стиль документа, на якому представлено, як виглядає назва, заголовки і абзаци, де виводиться номер сторінки, який її розмір і т д Все це не вбудовано в troff, а вимагає програмування Однак щоб не змушувати кожного користувача вказувати всі дета чи в кожному документі, створено пакет стандартних команд форматування Користувач пакета не повинен говорити: «Наступний рядок повинна бути вирівняна по центру і надрукована великими літерами напівжирним шрифтом» Замість цього він просто говорить: «Наступний рядок – це заголовок», і застосовується пакетне визначення стилю заголовка Користувачам не треба піклуватися про розміри, шрифтах і позиціях, вони можуть думати тільки про логічних компонентах доку мента: назві, заголовках, абзацах, виносках і т д

На жаль, те, що починалося як «стандартний» пакет команд форматування, тепер вже стандартом не є багато пакети набули широкого поширення, до того ж, у кожного існує по кілька локальних варіантів Розглянемо два універсальних пакету: ms, вихідний «стандартний» пакет, і mm, більш нова версія, прийнята за стандарт в System V Поговоримо також про пакет man для друку сторінок керівництва (manual)

Основна увага буде приділена ms, тому що він є стандартом сьомої версії, може проілюструвати всі подібні пакети і володіє достатньою потужністю для того, щоб виконати поставлене задачу: пакет ms був використаний при наборі оригіналу цієї книги1 Правда авторам довелося трохи його розширити, наприклад, додавши команду для запису слів ось таким шрифтом

Така ситуація є типовою, макропакет достатньо для виконання багатьох завдань форматування, але іноді буває необхідно повернутися до базових командам troff У даній книзі буде описана тільки мала частина можливостей troff

Незважаючи на те що troff надає можливість повного контролю над форматом виводу, використовувати програму для такого складного матеріалу, як таблиці, малюнки та математичні вирази, занадто важко Описати такий обєкт так само складно, як створити макет сторінки Рішення проблеми полягає у використанні (замість пакетів команд форматування) спеціалізованих мов для математичних виразів, таблиць і малюнків, в яких легко описати те, що потрібно Кожен такий мову управляється від-

1 Зрозуміло, автори говорять про видання цієї книги, що побачив світ у Prentice Hall – Прямуючи науч ред

слушною командою, яка транслює його в команди troff Команди повідомляються за допомогою каналів

Подібні процесори попередньої обробки представляють собою хороший приклад, який демонструє підхід UNIX до реалізації програм, – замість того щоб розширювати troff, ускладнюючи її, вводяться окремі команди, що працюють у взаємодії з нею (Конеч але ж, при реалізації були використані засоби розробки мов, описані в главі 8) Далі будуть представлені дві програми: tbl, яка форматує таблиці, і eqn, що форматує математичні вирази

Також в цьому розділі буде дано ряд корисних порад, що стосуються підготовки документів та допоміжних програм Приклади, наведені в розділі, являють собою частини документа, що описує мову hoc з глави 8 і сторінку керівництва по hoc Документація на нього представлена ​​в додатку 2

Джерело: Керниган Б, Пайк Р, UNIX Програмне оточення – Пер з англ – СПб: Символ-Плюс, 2003 – 416 с, Мул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*