Вероятны три ситуации: доступ к специальным символам, использование встроенных команд замены шрифта и введение нескольких базовых функций форматирования.
Имена символов
Доступ к необходимым символам (греческим буквам, например, π, графике вида • и †, разнообразным штрихам и пробелам) несложен, хотя и не вполне систематизирован. Каждый такой символ имеет имя
\<i>c</i>
, где
с — одиночный символ, или
\(<i>cd</i>
, где
cd — пара символов.
Программа
troff
печатает минус в коде ASCII как дефис, а не как '—'. Настоящий минус должен обозначаться через
\-
, а тире через
\(em
, называемое "em пунктир", символ "тире".
В табл. 9.3 перечислены наиболее часто используемые специальные символы; в справочном руководстве по
troff
их число намного больше (в вашей системе перечень специальных символов может быть иным).
-
| - | Дефис |
\(hy
| - | Дефис, аналогичный предыдущему |
\-
| – | Знак "минус", набираемый текущим шрифтом |
\(mi
| – | Знак "минус", набираемый математическим шрифтом |
\(em
| — | em тире |
\&
| | Ничего; защищает точку в начале строки |
\blank
| | Неразмножаемый пробел |
\|
| | Неразмножаемый полупробел |
\е
| | Символ экранирования, обычно \ |
\(bu
| | Жирная точка |
\(dg
| | Крестик † |
\(*a
| | α, \(*b =β, \(*с =ξ, \(*p =π и т.д. |
\fX
| | Символ смены шрифта на X; Х= Р — предыдущий (шрифт) |
\f(XX
| | Символ смены шрифта на XX |
\sn
| | Символ смены размера шрифта на n; n=0 — предыдущий |
\s+-n
| | Относительная замена размера шрифта |
Таблица 9.3: Некоторые последовательности специальных символов
troff
В ряде случаев требуется, чтобы
troff
не интерпретировала символ, особенно обратную дробную черту или точку в начале строки. Два наиболее часто применяемых "отменяющих" символа —
\e
и
\&
. Последовательность
\е
гарантированно печатается как обратная дробная черта, не интерпретируется и используется для получения такого символа в выходном потоке. С другой стороны,
\&
не несет никакой смысловой нагрузки: это пробел нулевой ширины. Главное назначение этой комбинации — заставить
troff
не интерпретировать точки в начале строк. Мы задействовали
\е
и
\&
здесь несколько раз. Например, фрагмент
ms
в начале главы был напечатан как
\&.TL
.I "Название документа"
\&.AU
.I "Имя автора"
\&.AB
\&...
...
Конечно, этот фрагмент был напечатан следующим образом:
\e&.TL
\&.I "Название документа"
\е& .AU
...
и вы можете себе представить, как в свою очередь был напечатан последний фрагмент.
Другой специальный символ, "неразмножаемый" пробел, появляется изредка: это символ
\
, за которым следует пробел. Как правило,
troff
размножает обычный пробел, чтобы выровнять границы, но неразмножаемый пробел не позволяет "растягивать" строку. Он подобен любому другому символу и имеет фиксированную ширину. Его также можно использовать для передачи нескольких слов единым аргументом:
.I Название\ документа
Смена шрифта и размера символов текста
В большинстве случаев замена шрифтов и форматов может быть сделана с помощью начинающей строку макрокоманды типа
.I
, но иногда их замена должна осуществляться и в строке. В частности, символ конца строки разделяет слова, поэтому если требуется сменить шрифт в середине слова, макрокоманду нельзя использовать. С помощью
troff
можно решить эту проблему (отметим, что именно
troff
, а не пакет ms обеспечивает такую возможность).
Встроенные (in-line) команды troff вводит с использованием символа
\
. Наиболее часто применяются команды
\f
для смены шрифта и
\s
для смены формата.
Шрифт, заменяемый командой
\f
, определяется символом, следующим непосредственно за
f
: