Go to the first, previous, next, last section, table of contents.


Задание и предотвращение разрывов.

Обычно Texinfo-файл обрабатывается и TeX, и одной из команд форматирования для Info. Иногда в том или в другом выходном файле разрывы строк, абзацев или страниц оказываются в `неправильных' местах. Вы должны убедиться, что текст выглядит хорошо как в печатном руководстве, так и в Info-файле.

Например, в печатном руководстве страница может быть разбита в середине примера, что неудобно; чтобы предотвратить это, вы можете сохранить целостность фрагмента текста, используя команды группирования, которые удерживают текст от разделения между двумя страницами. Напротив, вы можете захотеть принудительно разбить страницу там, где обычно это не случается. К счастью, подобные проблемы возникают нечасто. Если они все же возникли, используйте команды создания или предотвращения разрывов.

Команды разрыва создают или разрешают разрывы строк и абзацев:

@*
Принудительный разрыв строки.
@sp n
Пропустить n пустых строк.
@-
Обозначить возможный перенос.
@hyphenation{пе-ре-но-сы слова}
Обозначить возможные места переносов в слове.

Команды предотвращения разрыва строки сохраняют целостность текста в пределах одной строки:

@w{текст}
Предотвращает разбиения между строк и переносы в тексте.

Команды разбиения на страницы относятся только к печатному руководству, так как в Info-файлах нет страниц.

@page
Начать новую страницу в печатном руководстве.
@group
Отметить фрагмент текста, который должен появляться целиком на одной странице печатного руководства.
@need тысячные дюйма
Начать новую страницу, если на текущей недостаточно места.

@*: Разрыв строки

Команда @* принудительно разрывает строку в печатном руководстве и в документе Info.

Например,

Эта строка @* разбита @*в двух местах.

дает

Эта строка
 разбита
в двух местах.

(Заметьте, что пробел после первой команды @* перенесен на следующую строку.)

Команда @* часто используется на странице с информацией об авторских правах:

Это редакция 2.0 документации Texinfo,@*
для Texinfo ...

в этом примере команда @* запрещает TeX некрасиво растягивать строку по всей странице.

Обратите внимание: Не пишите фигурные скобки после команды @*, они не нужны.

Не пишите в конце абзаца, содержащего команды @* команду @refill; это приведет к перезаполнению абзаца после разбиения строк и потере результата разбиения.

@- и @hyphenation: Переносы

Хотя алгоритм переносов в TeX обычно работает довольно хорошо, время от времени он пропускает полезные точки переноса. (Или, намного реже, делает неправильный перенос.) Тогда, для документов с необычным словарем или при окончательной доводке печатного издания, вы можете захотеть помочь TeX. В Texinfo для этого предусмотрены две команды:

@-
Обозначить возможный перенос, то есть место, где TeX может (но не обязан) сделать перенос. Это особенно полезно, если появляется переполненный бокс, из-за того что TeX не произвел допустимый перенос (see section Переполненные боксы). TeX не будет вставлять других точек переноса в слово, содержащее @-.
@hyphenation{пе-ре-но-сы слова}
Сообщить TeX, как можно сделать переносы в слове. Как показано, вы помещаете `-' в каждой точке переноса. Например:
@hyphenation{ма-ну-скрипт ма-ну-скрип-ты}
TeX использует заданные таким образом точки переноса, только если слова точно совпадают, поэтому вы должны перечислить все необходимые варианты.

В документах Info переносы не используются, а значит эти команды не имеют значения для них.

@w{текст}: Предотвращение разрывов строк

Конструкция @w{текст} выводит текст и запрещает разрывы строк внутри текста.

Вы можете использовать команду @w, чтобы запретить TeX автоматически переносить длинное название, имя или фразу, которые оказались близко к концу строки. Например:

Вы можете скопировать программы GNU с
@w{@samp{ftp.gnu.org}}.

дает

Вы можете скопировать программы GNU с `ftp.gnu.org'.

Вы также можете использовать @w для получения неразрывного пробела:

Ни одна из форматирующих программ не станет разбивать строку на
этом@w{ }пробеле.

@sp n: Вставка пустых строк

Строка, начинающаяся с @sp n и не содержащая ничего больше, создает n пустых строк в печатном руководстве и в Info-файле. @sp также принудительно обрывает абзац. Например,

@sp 2

создает две пустых строки.

Команда @sp чаще всего применяется в титульном листе.

@page: Переход на новую страницу

Строка, содержащая только @page, начинает новую страницу в печатном руководстве. Эта команда не играет роли для Info-файлов, так как они не разбиваются на страницы. Команда @page часто применяется на титульном листе в Texinfo-файле для начала страницы с информацией об авторских правах.

@group: Предотвращение разрывов страниц

Команда @group (на отдельной строке) применяется внутри конструкции @example или подобной для начала неделимой вертикальной группы, появляющейся в печатном документе целиком на одной странице. Группа завершается строкой, содержащей только @end group. Две эти команды сами по себе не производят никакого вывода и не играют роли в Info-файле.

Хотя команда @group в принципе должна работать во многих контекстах, ее текущая реализация работает надежно только внутри блоков @example и его вариантов и внутри @display, @format, @flushleft и @flushright. See section Цитаты и примеры. (Все эти команды имеют общую черту -- каждая входная строка дает одну строку на выходе.) В других контекстах команда @group может привести к ненормальному распределению вертикального свободного места.

Это требование означает, что вы должны писать:

@example
@group
...
@end group
@end example

где команды @group и @end group расположены между командами @example и @end example.

Команда @group чаще всего применяется, если нужно сохранить фрагмент текста целиком на одной странице. В этом руководстве по Texinfo более 100 примеров содержат текст, заключенный между @group и @end group.

Если вы забудете закончить группу, то при запуске TeX вы можете получить странные и непонятные сообщения об ошибках. Это происходит, потому что TeX продолжает пытаться поместить остаток Texinfo-файла на одну страницу и не выдает ошибок, пока не обработает довольно значительный кусок текста. Хорошим практическим правилом будет поискать пропущенную команду @end group, если вы получаете от TeX непонятные сообщения.

@need mils: Предотвращение разрывов страниц

Строка, содержащая только @need n, начинает в печатном руководстве новую страницу, если на текущей странице осталось места меньше, чем n мил (тысячных долей дюйма). Не пишите фигурные скобки вокруг аргумента n. Команда @need n не имеет значения в Info-файлах, так как они не разбиваются на страницы.

Перед этим абзацем написана команда @need, сообщающая TeX, что нужно начать новую страницу, если на текущей осталось меньше 800 мил (восьми десятых дюйма). Это выглядит так:

@need 800
Перед этим абзацем написана ...

Команда @need полезна для предотвращения появления изолированных строк (то есть строк, оказавшихся единственными в конце страницы).


Go to the first, previous, next, last section, table of contents.