UNIX — универсальная среда программирования - Керниган Брайан Уилсон
Шрифт:
Интервал:
Закладка:
Вероятны три ситуации: доступ к специальным символам, использование встроенных команд замены шрифта и введение нескольких базовых функций форматирования.
Имена символовДоступ к необходимым символам (греческим буквам, например, π, графике вида • и †, разнообразным штрихам и пробелам) несложен, хотя и не вполне систематизирован. Каждый такой символ имеет имя <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: