Работа в системе LaTeX
de301fb4

Невидимые линейки


Высота и/или ширина линейки может быть и нулевой. Линейки нулевой высоты или ширины не печатаются, но тем не менее могут оказать влияние на вид текста. Например, линейка нулевой ширины и ненулевой высоты занимает место по вертикали; если ее высота больше высоты букв в строке, то высота строки, содержащей эту невидимую линейку, увеличится:

Для того, чтобы раздвинуть две строки, можно в одну из них поместить невидимую линейку\rule{0pt}{5mm} нулевой ширины и ненулевой высоты.

Один частный случай линейки нулевой ширины настолько важен, что в TeX'е и LaTeX'е для такой линейки предусмотрена специальная команда \strut. Невидимая линейка, создаваемая этой командой, имеет нулевую ширину; высота же ее установлена автором LaTeX'а с таким расчетом, чтобы она была чуть выше максимальной высоты букв текущего шрифта и опускалась ниже уровня строки настолько, насколько могут опускаться буквы текущего шрифта. Например, в прямом светлом шрифте кегля 11 команда \strut создает линейку ширины 0, поднимающуюся над уровнем строки на 9.52pt и опускающуюся ниже уровня строки на 4.08 pt.

Линейки нулевой ширины и ненулевой высоты действуют подобно команде \vspace*. Смысл невидимых линеек в том, что они позволяют создать вертикальные или горизонтальные пробелы в таких ситуациях, когда \vspace или \hspace не помогают. Вот пример ситуации, когда возникает нужда в невидимых линейках. Пусть в нашем тексте мы

Выглядит это не очень удачно: в словах с буквами вроде р, опускающимися ниже строки, линейки, подчеркивающие слово, также опускаются ниже строки, а хотелось бы, чтобы все эти линейки были на одном уровне. Выход из положения такой: добавить ко всем словам по невидимой букве, которая не занимает места по горизонтали, а по вертикали опускается на максимально возможное в текущем шрифте расстояние. В качестве такой буквы как раз и возьмем невидимую линейку, генерируемую командой \strut:

\underline{три\strut} \underline{\strut слова} \underline{подряд\strut}

Как видите, \strut можно ставить хоть после слова, хоть перед ним (и даже посередине, если вы не запутаетесь с пробелами).
Назначение этой команды в данном случае сводится к тому, чтобы не позволить линейке, подчеркивающей слово, подойти к этому слову слишком близко. Кстати, в переводе с английского слово strut- означает " распорка".

В лекции 2 рассказывалось про команду \mathstrut, выполняющую аналогичные функции в математических формулах.

Другие примеры использования невидимых линеек читатель найдет в лекции 4, посвященной набору таблиц; в лекции 8, посвященной " блокам", мы также встретимся с линейками.

  1)   Это не вся правда. Более полную информацию о шрифтах можно найти в приложении В.
  2)   Если не предпринимать для этого специальных усилий.
  3)   Сказанное в этом абзаце относится к вариантам русификации, где русские и английские слова включены в общую таблицу переносов (такова, например, русификация, использованная при подготовке этой книги и описанная в приложении babel. В других случаях могут потребоваться явные команды переключения языков (которые могут также заодно менять \righthyphenmin).
  4)

  Если вы пользуетесь пакетомbabel вместе с так называемыми EC-шрифтами и соответствующими "форматными файлами", то слова с диакритическими знаками иногда могут переноситься.
  5)   При печати книг оригинал-макет часто уменьшают; в этом случае, естественно, пропорционально изменяются и промежутки. Вот для сравнения промежуток, который в оригинал-макете имел размер в один сантиметр:\vrule\hspace*{1cm}\vrule
  6)   Кроме того, промежутки могут и сжиматься; пока речь идет только о жидких строках, это несущественно.
  7)   Не превышая значения \tolerance, разумеется!
  8)   Вроде этой.
  9)   Вот эта.
  10)   Свойства которого мало похожи на свойства настоящего клея. См. лекцию 8


Содержание раздела