Если вы не в престольном граде Москве или живете не по московскому времени,
вам следует настроить файлы относящиеся к TIMEZONE.

1) В каталоге /usr/share/lib/zoneinfo
находится файл

/usr/share/lib/zoneinfo/Moscow.src

Прочитайте man zic и man timezone
и по данному образцу составьте свой файл с описанием временной зоны для вашего города,
пусть это файл XXX для зоны Russia/Town.

Выполните команду

zic XXX

Она создаст файл

/usr/share/lib/zoneinfo/Russia/Town

2) Настройте файлы

/etc/timezone -- Russia/Town имя_NIS_домена_вашей_машины
/etc/default/init -- TZ=Russia/Town

Обратите внимание на файл /etc/default/init - в нем содержатся переменные
окружения, выставляемые для ВСЕХ пользователей при их входе в систему.

    Поведение кнопки в верхнем левом углу окон.


===========================================
В Solaris 1.1 нажатие кнопки SELECT (левой) мыши над треугольной
кнопкой в верхнем левом углу окна приводило к иконификации окна.
В Solaris 2.x по умолчанию проявляется оконное меню.

Это поведение задаётся параметром

OpenWindows.SelectDisplaysMenu: False или True

В файле Xdefaults или ~/.OWdefaults

True - соответствует проявке меню.
False - выполнению первой команды меню, в данном случае - иконификации окна (Close).

Данный пакет устанавливает это значение в False.

OpenWindows.SelectDisplaysMenu: False

Resize Cursors
==============
По умолчанию olwm и olvwm для изменения размеров окна используют курсор в виде
кружочка. Вы можете использовать для каждого угла окна свой собственный курсор-уголок,
если зададите в файле

~/.OWdefaults или ~/.Xdefaults

такой ресурс:

OpenWindows*CursorSpecialResize: True

    Описание терминала


==================
Цветной X-terminal cxterm поддерживает псевдографику и цвета.
Программы vcsh, le, wm пользуются этими возможностями.
В файл /etc/termcap (который есть symlink на /usr/share/lib/termcap)
заносится описание терминала xterm-Sg для cxterm.

Для использования vcsh вам следует описать следующие параметры:

f1 f2 ... f9 f0 f. f- описатели для функциональных клавиш
F1 F2 F9 F10 F11 F12

kh - клавиша HOME
kH - клавиша END
kN - клавиша PgDn (Next)
kP - клавиша PgUp (Previous)
kI - клавиша Insert
kD - клавиша Del
kb - клавиша BackSpace
kB - клавиша BACKTAB (Shift + TAB)

kl - клавиша стрелка влево
kr - клавиша стрелка вправо
ku - клавиша стрелка вверх
kd - клавиша стрелка вниз

gs - команда включения режима псевдографики
ge - команда выключения режима псевдографики
g1 - описатели тонких псевдографических рамок
g2 - описатели толстых псевдографических рамок

g1=HV123456789

H - горизонтальная линия
V - вертикальная линия

7--8--9
| | |
4--5--6
| | |
1--2--3

    STREAMS-модуль транслитерации (перекодировки).


==============================================
Различные машины, подключённые к станции через последовательные порты
или сеть могут иметь различные кодировки. Характерным примером является
telnet в PC NFS, где PC имеет кодировку "Альтернативная DOS",
а станция к примеру - КОИ-8.

При коммуникации с такими абонентами должно происходить преобразование кодировки.
Для этого в составе пакета имеется STREAMS-модуль "trcode".


ПРОГРАММА ПОЛЬЗОВАТЕЛЯ
write() read() системные
ioctl() вызовы
| A
| |
|WRITE |READ
| |
[==========================] ttcompat
[==========================] ldterm
[==========================] trcode
| |
V |
экран клавиатура драйвер устройства
######### ============

Каждый из потоков: READ и WRITE может находиться в двух состояниях: NORMAL и ALTER.
Каждое из состояний имеет свою перекодировочную таблицу, перекодирующее идущий
по потоку символ в некий другой. Эти таблицы могут загружаться из программы
при помощи вызова ioctl(), либо из некоторого набора стандартных таблиц.
Собственно "состояние" и определяет то, через которую из таблиц
происходит перекодировка.

Имеются также переключательные символы: попадание такого символа в поток
вызывает переключение состояния, сам символ при этом вычёркивается из потока.
Переключательные символы могут совпадать, тогда повторный ввод переключательного
символа меняет состояние на противоположное.

Обычно символы-переключатели активированы только на стороне READ
(то, что поступает в машину с клавиатуры).
По умолчанию же они выключены вовсе ('\0).

Символ CTRL/N переключает состояние NORMAL --> ALTER
Символ CTRL/O переключает состояние ALTER --> NORMAL

Кроме того, модуль "trcode" ведёт подсчёт символов, прошедших через него в обеих
направлениях. Эти счётчики могут быть запрошены программой и могут быть
использованы для подсчёта траффика.

Интерфейс из языка "Си".
------------------------
пока не описан в данном документе.

Командный интерфейс.
--------------------
В пакете имеются также две программы, позволяющие
использовать системные вызовы к модулю "trcode" из
командной строки.

1) Программа strlook - выдаёт список модулей, находящихся в STREAMе.

strlook - выдаёт информацию про ваш управляющий терминал.
strlook ... - выдаёт информацию про перечисленные устройства.
strlook -i - про stdin
strlook -o - про stdout

Эта команда показывает текущие флаги и состояние модуля "trcode",
если таковой имеется в stream-е.

2) Программа trload - управление модулем "trcode".

trload -i выполняет команды по каналу stdin
trload -o stdout (умолчание)
trload -e stderr
trload -t /dev/tty
Эти ключи должны быть ПЕРВЫМИ в командной строке.

trload [-v] -query
trload [-v] -q
Без ключа -v выдаёт код ответа 0, если модуль trcode есть на стеке модулей;
1, если его нет.

С ключом -v ещё и распечатывает стек STREAMS модулей.

trload [-v]
trload -load
Загружает модуль trcode в STREAM.
Получается следующая конфигурация:

<программа>
ttcompat - модуль совместимости с BSD
ldterm - line discipline, смотри man termio и termios
trcode - модуль перекодировки
<драйвер_устройства>

Ключ -v заставляет напечатать старую и новую конфигурации.

trunload [-v]
trload -u
trload -unload
Выгружает модуль trcode из STREAMа.
Получается следующая конфигурация:

<программа>
ttcompat
ldterm
<драйвер_устройства>

trload -push
Загружает модуль trcode на вершину STREAMа.

trload -pop
Выгружает первый сверху модуль trcode из STREAMа.
Модули, лежавшие выше него, кладутся обратно на STREAM.

trload -tname <имя_таблицы>
Загружает в модуль trcode одну из предопределённых таблиц перекодировки.
Формат <имени_таблицы> следующий (скобки <> не входят в имя, двоеточие - входит):

RN::
RA::
WN::
WA::

R означает загрузку в канал READ
W WRITE

N означает загрузку таблицы для состояния NORMAL
A ALTER

и - имена кодировок:
koi_8
iso_8859_5
mswcyr
altdos

Пара ":" задаёт загрузку таблицы, перекодирующей
из кодировки
в кодировку

Есть ещё следующие предопределённые таблицы:
I:I - ничего не перекодировать (само в себя)
qwerty:koi_8
qwerty:iso_8859_5
qwerty:mswcyr

Три последних таблицы предназначены для работы с терминалом,
не поддерживающим восьмибитовый ввод с клавиатуры.
Эти таблицы позволяют перекодировать коды латинских клавиш
qwerty... QWERTY...
в соответствующие русские коды
йцукен... ЙЦУКЕН...
переключаясь между ними по CTRL/N, CTRL/O.

trload -tload <файл_с_таблицей> <код_таблицы>
Загружает в модуль trcode таблицу из файла.
Параметр <код_таблицы> имеет вид:
RN:<имя_таблицы>
RA:<имя_таблицы>
WN:<имя_таблицы>
WA:<имя_таблицы>

где <имя_таблицы> вы можете придумать произвольно по своему вкусу.

Файл с таблицей имеет следующий формат:
- пустые строки и строки, начинающиеся с # - это комментарии.
- файл состоит из строк вида:
# комментарий
'1' 200
'A' 201
243 253
0xFF 222
120 'A'
55 0xFE
66 ^G

Первая колонка задаёт код символа КОТОРЫЙ надо перекодировать,
вторая - код символа В КОТОРЫЙ надо перекодировать.
Код символа может задаваться в любой из следующих форм:

'c' - символ представляет сам себя
0xFF - шестнадцатиричное число
^C - CTRL/символ
\377 - восьмиричное число
999 - десятичное число

Символы, не перечисленные в данном файле, перекодируются сами в себя.

trload -rswitchN c
trload -rswitchA c
trload -wswitchN c
trload -wswitchA c
Задаёт символы переключения состояний.
r - для READ, w - для WRITE.
N - из NORMAL в ALTER, A - из ALTER в NORMAL.

Символ может быть указан в виде:
^- или NO или none - нулевой байт,
выключает символ переключения

^C - CTRL/буква
(для csh: "^C" )

c - просто буква

trload -rstate N
trload -rstate A
trload -wstate N
trload -wstate A
Устанавливает состояние канала:
rstate - READ, wstate - WRITE.
N - состояние в NORMAL, A - в ALTER.

Аргументы (кроме -unload и -pop) могут выступать в комбинации:

trload -o -v -push -tname RN:koi_8:altdos
strlook

Поскольку программные конвееры в UNIX также реализованы через STREAMS,
мы можем использовать модуль "trcode" внутри трубы:

date | ( trload -i -v -push -tname RN:koi_8:altdos ; cat )

или

(trload -o -push -tname WN:koi_8:altdos; date) | cat
или
(trload -push -tname WN:koi_8:altdos; date) | cat

будет получен ответ в альтернативной DOSовской кодировке (при условии, что date
выдаёт в КОИ-8).

3) Командный файл dosterm
Загружает модуль trcode и соответствующие таблицы для использования
с telnet-ом из PC NFS.

После входа с PC на станцию через telnet,
наберите команду dosterm.
Она задаст преобразование из Альтернативной DOSовской кодировки на PC
в ту кодировку, которая задана в вашей переменной среды $LANG.

4) Командный файл dumbterm
Загружает модуль trcode и соответствующие таблицы для использования
с "тупым терминалом" через CTRL/N CTRL/O и QWERTY-раскладку.

Ещё пример:
~~~~~~~~~~
trload -tname RA:qwerty:koi_8 -rswitchN ^N -rswitchA ^O -escseq on -esclength 3

В данном случае у нас имеется терминал, функциональные клавиши
и клавиши со стрелками которого генерируют ESC-последовательности вида

ESC [ A

Если мы включили по CTRL/N русский ввод, то подобная последовательность
введётся как ESC [ Ф и не будет распознана программой чтения
функциональных клавиш (ибо это не соответствует описаниям в
terminfo или termcap).

Для этого предусмотрены три ключа, обеспечивающие отмену перекодировки
в русские буквы ESC-последовательностей.

trload -esc c
Задаёт символ, обозначающий начало ESC-последовательности.
По умолчанию это символ ESC - он же ^[ или '\033'

trload -escseq on
trload -escseq off
Включить/выключить просмотр ESC-последовательностей.
По умолчанию включён.

trload -esclength N (N обычно 3)
Не перекодировать ESC-последовательности длины N.
По умолчанию 0 - выключено.

То есть, если со ввода поступил символ ESC
(указанный в -esc c),
то НЕ перекодировать его и последующие N-1 символов.
Так для "ESC [ A" длина как раз равна 3.

Увы, данная возможность не даёт решения при ESC-последовательностях
переменной длины, вроде
ESC [ A и ESC [ 2 2 2 z

Ещё пример:
~~~~~~~~~~
trload -load -tname RA:qwerty:koi_8 -rswitchN "^N" -rswitchA "^O" -escseq on -esctime 33

trload -esctime N
Использует иную стратегию работы с ESC-последовательностями.
При получении символа ESC (заданного в -esc C),
отменяется перекодировка на вводе на временной интервал
N тиков (в секунде содержится 100 тиков - для Solaris 2.x).
При этом последовательности вроде
ESC [ A
ESC [ 2 2 2 z
генерируются "компактно во времени" и успевают пройти через
модуль перекодировки за это короткое время.
Затем перекодировка автоматически восстанавливается.

Этот подход решает также проблему одиночного ESC,
после которого не следуют никакие иные символы,
то есть все последующие символы вводимые пользователем
надо перекодировать обычным образом.

Проблемой теперь является выбор удачного интервала N.
1) Слишком маленький интервал может оказаться недостаточным для
прохождения всей ESC-последовательности.
2) Слишком большой интервал может привести к тому,
что вы всё ещё будете иметь выставленный флаг отмены перекодировки,
когда её уже пора бы начать выполнять.

Интервал этот должен быть явно меньше 1 секунды.
На консоли SPARC-станции подходящим является значение 3 тика.
Для терминалов, вероятно, пригодно значение 33 = 1/3 секунды.

Именно этот метод использован в dumbterm.

Ещё пример:
~~~~~~~~~~
Могут быть несколько типов ESC-последовательностей,
вроде
ESC [ A
^A A

Поэтому предусмотрено несколько символов, начинающих ESC-последовательности:

trload -esc c
trload -esc2 c
trload -esc3 c
trload -esc4 c

    Как добавлять Adobe Type I фонты в X Window System.


===================================================
1) Положить файлы контуров и метрик

Font.pfa Font.afm
Font-Bold.pfa Font-Bold.afm
Font-Italic.pfa Font-Italic.afm
Font-BoldItalic.pfa Font-BoldItalic.afm

в /usr/openwin/lib/X11/fonts/Type1 /usr/openwin/lib/X11/fonts/Type1/afm

(далее $DIR) ($DIR/afm)

2) Взять и руками дописать в файл $DIR/fonts.scale

Font.pfa -company-fontname-medium-r-normal--0-0-0-0-m-0-koi-8
Font-Bold.pfa -company-fontname-bold-r-normal--0-0-0-0-m-0-koi-8
Font-Italic.pfa -company-fontname-medium-i-normal--0-0-0-0-m-0-koi-8
Font-BoldItalic.pfa -company-fontname-bold-i-normal--0-0-0-0-m-0-koi-8

-p-
для пропорциональных шрифтов
-m-
для fixed width, monospaced

где company - название компании-разработчика фонта (например, paragraph),
а fontname - название семейства фонтов, к примеру

-koi-8
-iso8859-5
-ibm-1251
-ibm-866

3) Выполнить в каталоге $DIR команду

mkfontdir

которая создаёт файл $DIR/fonts.dir

3.1) Для использования с Dispaly PostScript следует выполнить в каталоге
$DIR команду

/usr/openwin/bin/makepsres

которая создаёт файл PSres.upr

4) Для использования кратких имён фонтов (а не длинных XLFD - X logical font description)
следует руками добавить в файл

$DIR/fonts.alias

следующие определения:

Font "-company-fontname-medium-r-normal--0-0-0-0-p-0-koi-8"
Font-Bold "-company-fontname-bold-r-normal--0-0-0-0-p-0-koi-8"
Font-Italic "-company-fontname-medium-i-normal--0-0-0-0-p-0-koi-8"
Font-BoldItalic "-company-fontname-bold-i-normal--0-0-0-0-p-0-koi-8"

LAST) Сообщить оконной системе о добавлении нового фонта (фонтов).

Либо: xset fp rehash
(если добавляли в /usr/openwin/lib/X11/fonts/Type1)

Либо: xset fp+ $DIR
(если мы СОЗДАЛИ свой каталог $DIR)

TEST) Просмотр, появился ли фонт в списке доступных:

xset -q

xlsfonts | more
В списке должны появиться и краткие и полные имена новых фонтов.

Просмотр таблицы букв:
xfd -fn Font-n
xfd -fn Font-Bold-n
xfd -fn Font-Italic-n
xfd -fn Font-BoldItalic-n

где n - число, размер в пикселах.


    Печать на PostScript принтере.


==============================
Данный пакет предоставляет поддержку ТОЛЬКО для принтеров,
поддерживающих PostScript (и для пакета NeWSprint).

Как вообще инсталлировать принтер?
==================================
Пусть у нас есть HP LaserJet 4M+ с встроенными русскими шрифтами
в альтернативной кодировке (altdos) и вставленным интерпретатором языка PostScript.

Мы должны добавить принтер при помощи программы admintool,
при этом указав:

PrinterPort = /dev/bpp0
PrinterType = PostScript !!! не HewlettPackard Printer !!!
FileContents = Both PostScript and ASCII

Пусть наш принтер получил имя ИмяПринтера

Затем следует скопировать модифицированный интерфейсный файл

cp /etc/lp/model/russianPS /etc/lp/interfaces/ИмяПринтера

Посмотрите комментарии в начале этого файла!

Как печатать красиво и по-русски?
=================================
Для печати PostScript-файлов следует использовать фильтры

/usr/lib/lp/postscript/findPSfont
/usr/lib/lp/postscript/loadPSfont

loadPSfont является улучшенной версией системного фильтра

/usr/lib/lp/postscript/download

Он использует таблицу шрифтов, находящуюся в файле

/usr/share/lib/hostfontdir/map

и встраивает используемые в *.ps файле шрифты непосредственно в сам файл
(см. man download(1)).

Использование:

/usr/lib/lp/postscript/findPSfont < file.ps | /usr/lib/lp/postscript/loadPSfont | lp

Где file.ps должен иметь заголовок вида:

%!PS-Adobe-.....
%%DocumentFonts: DecorCK
%%+ ParsekCK

Существенной является строка
%%DocumentFonts: <список используемых фонтов через пробел>

%!PS-Adobe-3.0
%%Creator: Windows PSCRIPT
%%Title: untitled
%%BoundingBox: 20 20 555 802
%%Pages: 1
%%DocumentFonts: DecorCK NewtonCK NewtonCK-Bold
%%DocumentNeededResources: (atend)
%%EndComments
%%BeginSetup
/Word0 (Аз есмь знать русскiй языкъ) def
/DecorCK findfont 60 scalefont setfont

/printWord
{
0 0 moveto
Word0 show
} def

%%EndSetup
%%Page: "one" 1

40 500 translate % move co-ordinate system origin

.95 -.05 0 % start, increment, end
{ % current loop index is on stack
setgray
printWord
-1 .5 translate
} for

1 setgray
printWord

/NewtonCK findfont 60 scalefont setfont
0 setgray
0 150 translate
printWord

/NewtonCK-Bold findfont 60 scalefont setfont
0 setgray
640 -300 translate
-1 1 scale
printWord

showpage

%%Trailer
%%DocumentNeededResources: font NewtonCK-Bold
%%+ font DecorCK
%%+ font NewtonCK
%%EOF

Для того, чтобы ваши файлы печатались через NeWSprint,
вы ОБЯЗАНЫ расставить все структурирующие комментарии %%
и добавить комментарий %%DocumentNeededResources: font ...,
иначе NeWSprint может не найти используемых вами фонтов.

Поскольку ряд документов не содержит указания используемых фонтов,
предлагаемая программа findPSfont находит в PostScript-овском
файле имена известных ей фонтов и строит комментарий с их списком.
Программа findPSfont может также использоваться для замены имён фонтов:

findPSfont -rMAPFILE < file.ps

(просто ключ -r для использования файла
/usr/local/lib/ps/substPSfonts.list)

где MAPFILE - файл со строками вида (пара слов)

СтароеИмяФонта НовоеИмяФонта
Courier CourierCK
Courier-Bold CourierCK-Bold
Courier-Italic CourierCK-Italic
Courier-BoldItalic CourierCK-BoldItalic
(пожалуйста НЕ помещайте в этот файл пустых строк !)

Все вхождения СтарогоИмениФонта будут в файле file.ps заменены на Новое.
То же самое можно получить вызывая findPSfont с ключом -s (одним или многими):

findPSfont -s<старое_имя_шрифта>:<новое_имя_шрифта> < file.ps

Пример:
findPSfont -sEuroRoman-Oblique:Times-Italic -sSansSerif-Bold:Times-Bold < xxx.ps

Другой способ подмены PostScript фонтов описан в файле
/usr/local/lib/ps/alias.ps

Ряд тестов и документации поставляется с нашим пакетом
в каталоге /usr/local/lib/ps

Формат PostScript файла должен быть примерно таким:

%!PS-Adobe-N.n
%%Creator: кто и чем создал
%%CreationDate: дата создания
%%Title: название
%%BoundingBox: xu yu xl yl
%%Pages: число страниц
%%DocumentFonts: список фонтов или слово (atend)
%%EndComments
%%BeginProlog [необязательный]
определения (def),
никаких рисующих операторов
%%EndProlog [необязательный]
%%BeginSetup
секция операторов инициализации принтера,
выполняемые операторы
%%EndSetup
%%Page: one 1
выполняемые операторы рисования первой страницы
%%Page: two 2
выполняемые операторы рисования второй страницы
.....
%%Page: N n
выполняемые операторы рисования n-ой страницы
%%Trailer
операторы деинициализации (очистки)
а также комментарии, отосланные сверху словом (atend)
%%EOF [необязательный]
[и лучше не писать]

loadPSfont должна быть частью более общего командного файла,
например интерфейсного файла /etc/lp/interfaces/<имя_принтера>,
и использоваться как одна из частей конвейера подготовки файла
к печати на PostScript принтере.

В отличие от download, loadPSfont понимает ещё один формат структурирующих комментариев:

%%DocumentNeededResources: font Courier866-Bold
%%+ font Courier866-Italic
%%+ font Courier866-normal
%%+ font DecorC
%%+ font IzhitsaC
%%+ font MonoCondensedC
%%+ font NewtonC
%%+ font NewtonC-Bold
%%+ font NewtonC-Italic
%%+ font PragmaticaC
%%+ font PragmaticaC-Bold
%%+ font PragmaticaC-Italic
%%+ font PragmaticaCondC

А также комментарий

%%IncludeResource: font NewtonC

Командный файл для печати текстовых файлов русскими буквами мог бы выглядеть так
(предполагается, что текст - в кодировке КОИ-8):

chcode koi_8 altdos $* | \
/usr/lib/lp/postscript/postprint -f Courier866-normal | \
/usr/lib/lp/postscript/findPSfont | \
/usr/lib/lp/postscript/loadPSfont | \
lp -d

Здесь:
1) chcode - перекодирует файл в кодировку altdos,
которую имеет фонт Courier866
(смотри выше раздел про дополнительные утилиты).

2) postprint - превращает обычный текст в PostScript-программу.
В Solaris-ной программе postprint сделаны правки
(см. /usr/lib/lp/postscript/postprint.ps),
позволяющие печать фонтами с нестандартным Encoding-ом.
Смотри man postprint (1).

3) findPSfont - собирает имена фонтов.
4) loadPSfont - встраивает фонты.

5) lp - посылает файл на принтер.

Вариант для шрифта MonoCondensedCK (он уже в кодировке КОИ-8):

/usr/lib/lp/postscript/postprint -f MonoCondensedCK | \
/usr/lib/lp/postscript/findPSfont | \
/usr/lib/lp/postscript/loadPSfont | \
lp -d

По умолчанию postprint задаёт шрифт размером 10 точек.
Размер можно изменить явно.
Вариант для шрифта MonoCondensedCK размером 5 точек:

/usr/lib/lp/postscript/postprint -s 5 -l 0 -f MonoCondensedCK | \
/usr/lib/lp/postscript/findPSfont | \
/usr/lib/lp/postscript/loadPSfont | \
lp -d

-s 5 задаёт размер шрифта.
-l 0 задаёт размер страницы в строках: 0 заставляет вычислить его,
исходя из указанного размера шрифта.
-f <фонт> задаёт фонт
-p l задаёт печать landscape
-p p задаёт печать portrait
-n # задаёт печать в # страниц на одной. Внимание: слишком длинные строки
не переносятся и не обрубаются, а залезают на чужую территорию.

Печать в формате landscape:

/usr/lib/lp/postscript/postprint -p landscape -f MonoCondensedCK | \
/usr/lib/lp/postscript/findPSfont | \
/usr/lib/lp/postscript/loadPSfont | \
lp -d

Печать в две страницы:

/usr/lib/lp/postscript/postprint -n 2 -s 6 -l 0 -f MonoCondensedCK | \
/usr/lib/lp/postscript/findPSfont | \
/usr/lib/lp/postscript/loadPSfont | \
lp -d

В качестве заготовки пакет предоставляет командный файл /usr/local/bin/dolp,
объединяющий вышеизложенное в пользовательский интерфейс для печати текстовых файлов (не *.ps).

Ключи вызова dolp:
-2 в две страницы (по 82 строки на полу-странице, 104 символа в ширину)
-r landscape

-b boldface
-i italic
-B bold+italic

-F шрифт Futuris
-M шрифт MonoCondensed
-X шрифт Xenia
-P шрифт Parsek
-N шрифт Newton
-R шрифт Pragmatica

-a на входе - ASCII файл, не рассматривать PostScript
-p на входе - PostScript файл, не рассматривать ASCII

-v verbose - с отладочной выдачей

-sNUM размер шрифта
-xNUM в NUM страниц на одной странице
-nNUM печатать NUM копий
-dPRINTER вывод на принтер по имени (иначе - на default)
-t'TITLE' напечатать обложку с надписью TITLE

-lLANG задание входной русской кодировки:
koi_8
iso_8859_5
mswcyr
altdos

Размер -s8 соответствует 82 строки на странице
-s10 соответствует 66 строк на странице.
По умолчанию установлен -s10.

Рекомендуется использование в таком конвеере:
В 2 страницы:

lprint -lines 82 -cols 105 файлы... | dolp -s8 -2

В 1 страницу:

lprint -lines 82 -cols 105 файлы... | dolp -s8

Для печати файлов, содержащих разметку под разные шрифты,
следует использовать программу ensc.

ensc files... | dolp
cat file | ensc | dolp

man cbook | ensc | dolp
или
man cbook | ensc | lp

Программа берёт текстовый файл и преобразует его в PostScript.
Предполагается 66 строк на странице, кодировка КОИ-8.

"Разные шрифты" достигаются в текстовых файлах
при помощи следующих последовательностей:

C \b C -> жирный шрифт
_ \b C -> курсив

Вот пример "под пишущую машинку" - 41 строка на листе, 70 символов в ширину:

ensc -s12 -x1.5 -R -t780 -b45 file.lp | dolp

-sN - размер кегля

Наклонные шрифты
================
Существует два типа наклонных шрифтов:
1) -Italic это курсив, специально разработанное начертание некоторой
гарнитуры, моделирующее рукописный шрифт со своим собственным
контуром.

2) -Oblique наклонный шрифт, получаемый из прямого начертания
изменением коэффициента 'c' в FontMatrix.

Каждый символ фонта нарисован в координатной сетке размером
1000x1000 точек. При выводе на устройство он сначала масштабируется
к сетке 1x1, а потом - к размеру устройства.
Преобразование 1000x1000 --> 1x1 задается при помощи матрицы
FontMatrix [ a b c d tx ty ]

x1 = a * x1000 + c * y1000 + tx
y1 = b * x1000 + d * y1000 + ty

Обычно матрица имеет вид [ 0.001 0 0
0.001 0 0 ]

Вот пример создания наклонного шрифта из шрифта NewtonCK.
Здесь c = 0.001 * sin(угол_наклона);
Отрицательное c соответствует наклону вправо.

/NewtonCK findfont
%%% скопировать словарь
dup length dict begin
{
1 index /FID ne
{def}
{pop pop}
ifelse
} forall
%%% изменить матрицу
/FontMatrix [ 0.001 0 -0.0005
0.001 0 0 ] def
%%% определить новый фонт
currentdict
end
/NewtonCK-Oblique exch definefont pop
%%%

/NewtonCK-Oblique findfont 60 scalefont setfont

    Печать из почты (mailtool)


==========================
Solaris использует для красивой печати почты программу mp
(смотри man mp (1)).
Пакет поставляет версию служебных файлов для mp,
позволяющих печатать по-русски в кодировке КОИ-8 (поскольку это -
стандартная кодировка для почты в России).
Файлы эти расположены в каталоге

$OPENWINHOME/share/xnews/client/mp/*.ps

Однако, для того чтобы почта печаталась и русские фонты находились,
следует (в отличие от того, что описано в man mp)
задать в файле

~/.mailrc (то есть $HOME/.mailrc)

строки

set printmail='mp -c 20 -F -l | dolp'
set cmd="mp -c 20 -F | dolp &"

вместо указанных

set printmail='mp | lp'
set cmd="mp | lp &"

то есть использовать dolp вместо lp.

-F означает печатать поле "From" вместо поля "To"
-l означает печать по две страницы в формате landscape
(экономия бумаги).
-c 20 означает длину фамилии до 20 букв (умолчание - 18)

    Печать из printtool и из filemgr


================================
В домашнем каталоге существует файл

~/.desksetdefaults

в котором описаны различные параметры для программ deskset,
в том числе для printtool и filemgr.
Проверьте, что команды печати выглядят так:

deskset.filemgr.printScript: cat $FILE | mp -l -o | dolp
deskset.printtool.lastPrintMethod: cat $FILE | mp -l | dolp -d $PRINTER

Печать документов в формате Letter
==================================
Американский стандарт бумаги называется Letter: 8.5" x 11.0"

%%BeginPaperSize: Letter

Россия же использует лист формата A4: 8.26" x 11.69"

Большинство принтеров в России настроено под A4, и когда на них
поступает PostScript документ в формате Letter,
принтер либо начинает требовать лист формата Letter (и потом нажать ему
кнопку ); либо просто сообщает "неверный размер бумаги"
и отказывается печатать что-либо вообще.

Существует следующий возможный способ борьбы с этим (который ИНОГДА работает).

sed "s/612 792/595 842/" < file.ps | lp

Система подготовки текстов GROFF
================================
Система превращения размеченного специальным образом текста в
файл на языке PostScript.

Состоит из двух пакетов:

GNUroff - англоязычная версия
GNUrofCyr - русификация

смотри man groff
man gtroff
man gpic
man gtbl
итп.

Описание системы находится в:

/usr/local/doc/Troff.nroff - описание системы nroff/troff
/usr/local/doc/Troff.ms-me - описание макропакетов MS и ME.
/usr/local/doc/Troff.misc - описание пакета ME и системы PIC.

Примеры и кодовые таблицы находятся в:

/usr/local/lib/groff/tests

Вызов форматтера текста:

gpic files... | geqn | gtbl | groff -m | dolp
gpic files... | geqn | gtbl | groff -m > file.ps

groff -m -etp files... | dolp

-e EQN
-t TBL
-p PIC

Для того, чтобы groff использовал русскую кодировку,
должна быть определена переменная среды

setenv GROFF_TYPESETTER ps-ru.koi_8
setenv GROFF_TYPESETTER ps-ru.iso_8859_5
setenv GROFF_TYPESETTER ps-ru.mswcyr

или ключ для groff:

-Tps-ru.koi_8
-Tps-ru.iso_8859_5
-Tps-ru.mswcyr

Стандартное нерусифицированное средство форматирования текстов называется troff:

tbl * | gpic | troff -Tpost -man | /usr/lib/lp/postscript/dpost > file.ps

    Русификация WABI


================
Выполняется полностью средствами MS Windows, ничего со стороны Solaris
не привлекается.

Порядок инсталляции:
1) WABI 2.x
2) MS Windows 3.1 или 3.11
3) Кириллические TrueType фонты (*.ttf).
4) Проинсталлировать кириллизатор MS Windows

cyrwin (версий 3 или 4)

продаваемый компанией STEEPLER.
(см каталог cyrwin).

При инсталляции НЕ выбирать пункт меню "Cyrillic System Fonts",
выбрать взамен "Original System Fonts".

5) MS Office

    Русификация Netscape


====================
Производится следующим образом:

1) инсталлируется netscape (2.0, 3.0 или выше)

/usr/local/bin/netscape
/usr/local/lib/netscape/moz3_0.zip
/usr/local/lib/netscape/plugins/libnullplugin.so
$OPENWINHOME/lib/app-defaults/Netscape

2) запускается netscape
3) выбирается меню
Options/General Preferences/Fonts

в нём настраиваем пункты:
For the Encoding: Western (iso-8859-1)
Use the Proportional Font: Application (Dt)
Use the Fixed Font: Application (Dt)

и выбираем размеры шрифтов по вкусу.

4) OK
5) выбирается меню
Options/Mail and News Preferences

в нём заполняется поле с названием Вашей организации
и ваш обратный почтовый адрес.

6) Options/Save Options

всё.

Далее следует модифицировать файл ресурсов

$OPENWINHOME/lib/app-defaults/Netscape

внеся в него такие поправки: