Это старая версия (1.45) MdroffFormatter.

Содержание

Макропакет mdroff

Макропакет mdroff предназначен для форматирования и генерации текстовых документов PostScript и PDF. В первую очередь mdroff разрабатывался для подготовки текстов технической документации, дипломов, курсовых и диссертаций. О других возможных применениях этого макропакета стоит сообщить авторам и поместить сведения на эту страницу.

Настройка и запуск

Mdroff работает на любой версии ОС Unix, если установлены и работают следующие программы:

  1. GNU troff (Groff);
  2. GNU Awk.

Для пользователей Debian

Пользователям дистрибутивов, основанных на ОС GNU/Linux Debian, достаточно убедиться, что установлены пакеты groff и gawk. По умолчанию устанавливается только минимальный пакет для форматирования man-страниц groff-base.

 $ sudo apt-get install groff gawk

Для пользователей Cygwin под Windows

С помощью инсталлятора cygwin установить следующие пакеты: groff, awk, ghostscript, ghostscript-fonts-std, iconv-devel.

Переустановить пакет preconv. Необходимо, потому что по умолчанию preconv собран без поддержки iconv, а после установки iconv-devel эта поддержка в preconv появится.

Сгенерировать файл Fontmap для шрифтов из пакета ghostscript-fonts-std:

 grep -a \/FontName /usr/share/fonts/type1/*.pfb | sed 's!^\(.\+\.pfb\):/FontName \(/[^[:space:]]\+\).*$!\2 (\1) ;!' > /usr/share/fonts/type1/Fontmap

Исходные тексты

Последняя версия исходных текстов mdroff находится на http://github.com/gsitkarev/mdroff. Проще всего склонировать дерево Git локально так:

 $ git clone https://github.com/gsitkarev/mdroff.git

После выполнения команды в текущем каталоге появится каталог mdroff/ с файлами макропакета.

 $ pwd
 /home/user
 $ ls -1 mdroff
 contrib
 examples
 LICENSE
 mdroff
 README.md
 tmac
 $ cd mdroff
 $

Далее следует отредактировать расположение файлов макропакета в файлe mdroff. Для этого значение переменной MDTMACPATH следует заменить на полный путь к каталогу tmac/. Например, открыв в текстовом редакторе файл mdroff заменяют

 MDTMACPATH=/home/sitkarev/Projects/git/mdroff/tmac

на

 MDTMACPATH=/home/user/mdroff/tmac

или с использованием утилиты sed(1)

 $ sed 's|^MDTMACPATH=.*|MDTMACPATH=/home/user/mdroff/tmac|' mdroff >/tmp/mdroff
 $ cp /tmp/mdroff .

Для поддержки кириллических шрифтов PostScript, расстановки русских переносов и кодировки koi8-r в каталоги groff копируют файлы *.tmac и метрики шрифтов. Все файлы из каталога contrib/ru-tmac копируют в каталог /usr/share/groff/site-tmac.

 $ cp contrib/ru-tmac/* /usr/share/groff/site-tmac/
 $ cp contrib/font/* /usr/share/groff/current/font/devps/

Метрики для других семейств шрифтов PostScript (в mdroff используются шрифты семейства Times New Roman) пользователь может генерировать самостоятельно утилитой afmtodit(1).

Проверка работоспособности

После того, как файлы метрик и переносов скопированы, для проверки можно отформатировать один из примеров:

 $ ./mdroff -Tps examples/example.tr >/tmp/out.ps

В файле examples/example.tr находится пример исходного текста документа. Вывод форматирования перенаправляется в файл /tmp/out.ps как PostScript. Этот же исходный текст можно получить в виде PDF файла:

 $ ./mdroff -Tpdf examples/example.tr >/tmp/out.pdf

Если в выходном файле отсутствуют кириллические глифы, то, скорее всего, это произошло потому, что не установлена переменная окружения LC_ALL:

 $ LC_ALL=ru_RU.UTF-8 ./mdroff -Tps examples/example.tr >/tmp/out.pdf

Это связано с тем, что mdroff использует эту переменную для определения перекодировочного метода в iconv(1).

Для удобства пользователя рекомендуется добавить каталог с исполняемым файлом mdroff в переменную окружения PATH.

Кто из учащихся уже использовал mdroff?

Как минимум, одна курсовая работа сдавалась студентом СыктГУ. Для генерации титульной страницы а также настроек документа (отступы, поля и т. п.) разработан стандартный шаблон, соответствующий требованиям университета. Этот файл находится в contrib/syktsu.tmac. Для того, чтобы им воспользоваться, достаточно включить его в начало файла.

 .so syktsu.tmac

  • В: Может быть стоит выложить ссылку на исходный текст курсовой работы? Я даже знаю, что это сделает ПипуныровЕгор :-D