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


Специальные вставки

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

К ним относятся:

Вставка @ и фигурных скобок

`@' и фигурные скобки являются в Texinfo специальными символами. Чтобы вставить эти символы так, чтобы они появились в тексте, вы должны помещать перед ними `@', чтобы уберечь Texinfo от неправильной их интерпретации.

Не помещайте после этих команд фигурные скобки, они не нужны.

Вставка `@' с помощью @@

@@ обозначает один символ `@' при выводе как на печать, так и в Info.

Не пишите после команды @@ фигурные скобки.

Вставка `{' и `}'с помощью @{ и @}

@{ обозначает один символ `{' при выводе как на печать, так и в Info.

@} обозначает один символ `}' при выводе как на печать, так и в Info.

Не пишите после команд @{ и @} фигурные скобки.

Вставка пробелов

Последующие разделы описывают команды, которые управляют разного рода пробелами внутри или вокруг предложений.

Незавершение предложения

В зависимости от того, стоит ли точка или восклицательный или вопросительный знак в середине или в конце предложения, в печатном руководстве после них вставляется меньший или больший пробел. Поскольку не всегда можно определить, когда точка завершает предложение, а когда используется для сокращения, в некоторых обстоятельствах требуются специальные команды. Обычно Texinfo может догадаться, как обрабатывать точки, так что вам необязательно использовать специальные команды; просто вводите точки так же, как если бы вы использовали печатную машинку, то есть ставьте два пробела после точки, вопросительного или восклицательного знака, завершающего предложение.

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

Например,

S.o.p.@: состоит из трех частей ...
S.o.p. состоит из трех частей ...

дает следующее. Если вы внимательно приглядитесь к напечатанному результату, то увидите во второй строке несколько больший пробел после `s.o.p.'.

S.o.p. состоит из трех частей ...
S.o.p. состоит из трех частей ...

(Кстати, `s.o.p.' -- это сокращение от "Standard Operating Procedure" (стандартная процедура действий).)

@: не влияет на вывод Info. Не пишите фигурные скобки после @:.

Завершение предложения

Используйте @. вместо точки, @! вместо восклицательного знака и @? вместо вопросительного знака в конце предложения, заканчивающегося отдельной заглавной буквой. Иначе TeX сочтет эту букву сокращением и не вставит правильный пробел для конца предложения. Вот пример:

Дать это M.I.B. и M.E.W@.  Также, дать это R.J.C@.
Дать это M.I.B. и M.E.W.  Также, дать это R.J.C.

дает нижеследующее. Если вы внимательно приглядитесь к напечатанному результату, то увидите в первой строке несколько больший пробел после `W'.

Дать это M.I.B. и M.E.W. Также, дать это R.J.C.
Дать это M.I.B. и M.E.W. Также, дать это R.J.C.

При выводе в Info-файл @. эквивалентна просто `.'; аналогично для @! и @?.

Командам Texinfo @: и @. даны именно такие имена, чтобы они хорошо работали с командами Emacs для перемещения по предложениям. (@pxref{Предложения,,, @external{emacs}, Руководство по GNU Emacs}).

Не пишите фигурные скобки после любой из этих команд.

Несколько пробелов

Обычно TeX сворачивает повторяющиеся пробельные символы (пробел, табуляция и новая строка) в один пробел. Вывод для Info, с другой стороны, сохраняет пропуски такими, как вы их напечатали, только заменяет перевод строки на пробел; именно поэтому важно помещать два пробела в конце предложений в документах Texinfo.

Иногда вы можете захотеть действительно вставить несколько пробелов подряд для примера (что делает ваша программа с несколькими введенными пробелами) или просто для улучшения внешнего вида заголовков перечней. Texinfo поддерживает три команды: @SPACE, @TAB и @NL, каждая из которых вставляет на выходе один пробел. (Здесь @SPACE представляет символ `@', за которым идет пробел, то есть `@ ', а TAB и NL представляют символы табуляции и символ конца строки, то есть когда `@' стоит последним на строке.)

Например,

Пример@ @ @ @
с пробелами.

дает

Пример   
с пробелами.

Другие возможные применения @SPACE реализует команда @multitable (see section Таблицы из многих колонок).

Не пишите фигурные скобки после любой из этих команд.

@dmn{размер}: Форматирование размеров

Иногда вам может понадобиться написать `12pt' или `8.5in' с маленьким пробелом или без пробела между числом и сокращенным названием единицы измерения. Для этого вы можете использовать команду @dmn. Встретив эту команду, TeX вставляет точно необходимый для правильного набора пропуск; команды форматирования Info не вставляют пробела совсем, так как он не требуется в Info-файле.

Чтобы применить команду @dmn, напишите число и сразу после него, без промежуточного пробела, @dmn, а затем единицу измерения в фигурных скобках. Например,

Формат A4 имеет ширину 8.27@dmn{in}.

дает

Формат A4 имеет ширину 8.27in.

Не все придерживаются этого стиля. Некоторые предпочитают писать в Texinfo-файле `8.27 in.@:' или `8.27 дюймов' вместо `8.27@dmn{in}'. Однако, в таких случаях форматирующие программы могут разорвать строку между числом и единицей измерения, поэтому используйте @w (see section @w{текст}: Предотвращение разрывов строк). Также, если вы пишите точку после сокращения в середине предложения, вы должны написать после нее `@:', чтобы TeX не вставил дополнительный пробел, как показано здесь. See section Незавершение предложения.

Вставка акцентов

Ниже приведена таблица команд, предоставляемых Texinfo для вставки плавающих акцентов. Команды с небуквенными именами не требуют фигурных скобок вокруг аргумента (которым считается следующий символ). (Исключение: @, требует фигурные скобки вокруг аргумента.) Это сделано для того, чтобы исходный текст было читать как можно удобнее, так как символы с акцентами очень часты в некоторых языках.

  • Команда Вывод Описание
  • @"o @"o умляут
  • @'o 'o ударение
  • @,{c} @,{c} седиль
  • @=o @=o макрон или надчеркивание
  • @^o @^o сиркомфлекс
  • @`o `o грав акцент
  • @~o @~o тильда
  • @dotaccent{o} @dotaccent{o} точка сверху
  • @H{o} @H{o} длинный венгерский умляут
  • @ringaccent{o} @ringaccent{o} кружок сверху
  • @tieaccent{oo} @tieaccent{oo} лига
  • @u{o} @u{o} акцент краткости
  • @ubaraccent{o} @ubaraccent{o} подчеркивание
  • @udotaccent{o} @udotaccent{o} точка снизу
  • @v{o} @v{o} хачек или галочка Эта таблица перечисляет команды Texinfo для вставки символов, часто используемых в языках, отличных от английского.
  • @exclamdown{} @exclamdown{} перевернутый !
  • @questiondown{} @questiondown{} перевернутый ?
  • @aa{},@AA{} @aa{},@AA{} a,A с кружком
  • @ae{},@AE{} @ae{},@AE{} лигатуры ae,AE
  • @dotless{i} @dotless{i} i без точки
  • @dotless{j} @dotless{j} j без точки
  • @l{},@L{} @l{},@L{} перечеркнутая L,l
  • @o{},@O{} @o{},@O{} перечеркнутая O,o
  • @oe{},@OE{} @oe{},@OE{} лигатуры oe,OE
  • @ss{} @ss{} эс-цет или острое S

    Вставка многоточий и "горошин"

    Многоточие (последовательные точки) набирается не как строка точек, поэтому для многоточия в Texinfo используется специальная команда. Команда @bullet также является специальной. После каждой из этих команд пишется пара фигурных скобок, `{}', без пробела между именем команды и скобками. (Вы должны писать с этими командами фигурные скобки, потому что вы можете использовать их сразу после другого текста; при отсутствии скобок форматирующие программы могут запутаться. See section Синтаксис @-команд, для дальнейшей информации.)

    @dots{} (...) и @enddots{} (@enddots{})

    Используйте команду @dots{} для создания многоточия, то есть трех точек подряд, с подходящими пробелами между ними, как здесь: `...'. Не пишите во входном файле просто три точки; это сработает при выводе в Info-файл, но в печатном руководстве создаст неправильные пробелы между точками.

    Аналогично, команда @enddots{} создает многоточие, завершающее предложение (четыре точки)@enddots{}

    Вот многоточие: ... Вот три точки подряд: ...

    В печатном выводе три точки подряд расположены ближе друг к другу, чем точки в многоточии.

    @bullet{} (*)

    Используйте команду @bullet{} для создания большой круглой точки ("горошины") или наиболее похожего символа. В Info используется звездочка.

    Вот "горошина": *

    Если вы используете @bullet в @itemize, вам не нужно печатать фигурные скобки, так как их предоставит @itemize. (See section @itemize: создание простых перечней.)

    Вставка TeX и (C)

    Лого `TeX' набирается особым образом, и для него требуется @-команда. Символ охраны авторских прав, `(C)', также является специальным. После каждой из этих команд пишется пара фигурных скобок, `{}', без пробела между именем команды и скобками.

    @TeX{} (TeX)

    Используйте команду @TeX{} для вывода `TeX'. В печатном руководстве это особое лого, отличающееся от трех простых букв. В Info оно выглядит как `TeX'. Команда @TeX{} уникальна среди других команд Texinfo тем, что в ней есть заглавные буквы `T' и `X'.

    @copyright{} ((C))

    Используйте команду @copyright{} для вывода `(C)'. В печатном руководстве это `c' в круге, а в Info это `(C)'.

    @pounds{} (@pounds{}): Фунты стерлингов

    Используйте команду @pounds{} для вывода `@pounds{}'. В печатном руководстве это символ, обозначающий фунт стерлингов. В Info это `#'. Символы других денежных единиц, к сожалению, недоступны.

    @minus{} (-): Вставка знака минус

    Используйте команду @minus{} для вывода знака минус. В равноширинном шрифте это один дефис, но в пропорциональном шрифте это обычно символ с длиной знака минус -- немного длиннее дефиса, но короче em-тире:

    `-' это знак минус, созданный командой `@minus{}',
    
    `-' это дефис, созданный с помощью символа `-',
    
    `---' это em-тире для текста.
    

    В равноширинном шрифте, используемом Info, @minus{} аналогичен дефису.

    Вы не должны применять @minus{} внутри блока @code или @example, потому что в равноширинном шрифте, который они используют, не делается различий по ширине.

    Когда вы используете @minus для задания значка, начинающего каждый пункт перечня, вам не нужно печатать фигурные скобки (see section @itemize: создание простых перечней).

    @math: Вставка математических выражений

    Вы можете записать короткие математические выражения с помощью команды @math. Пишите выражение в фигурных скобках, как здесь:

    @math{(a + b)(a + b) = a^2 + 2ab + b^2}
    

    Это дает в TeX следующее:

    (a + b)(a + b) = a^2 + 2ab + b^2
    

    и следующее в Info:

    (a + b)(a + b) = a^2 + 2ab + b^2
    

    Таким образом, команда @math не влияет на вывод Info.

    Для сложных математических выражений вы также можете использовать TeX напрямую (see section Непосредственный вызов команд программы форматирования). Когда вы используете TeX непосредственно, не забывайте писать математические выражения между одинарными или двойными символами `$' (знаками доллара), как необходимо.

    Графические знаки для примеров

    В Texinfo, код часто иллюстрируется примерами, ограниченными командами @example и @end example или @lisp и @end lisp. В таких примерах вы можете обозначить результат вычисления или раскрытия с помощью `=>' или `==>'. Аналогично, есть команды для вставки знаков, обозначающих печатаемый вывод, сообщения об ошибках, эквивалентность выражений и позицию точки.

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

    =>
    @result{} указывает на результат выражения.
    ==>
    @expansion{} показывает результат раскрытия макроса.
    -|
    @print{} обозначает печатаемый вывод.
    error-->
    @error{} обозначает, что последующий текст -- это сообщение об ошибке.
    ==
    @equiv{} обозначает точную эквивалентность двух форм.
    -!-
    @point{} показывает позицию точки.

    @result{} (=>): Обозначение вычисления

    Используйте команду @result{} для обозначения результата вычисления выражения.

    Команда @result{} отображается как `=>' в Info и как `=>' в печатном выводе.

    Таким образом, следующий пример:

    (cdr '(1 2 3))
         => (2 3)
    

    можно прочитать как "(cdr '(1 2 3)) при вычислении дает (2 3)".

    @expansion{} (==>): Обозначение раскрытия

    Когда выражение является вызовом макроса, оно раскрывается в новое выражение. Вы можете обозначить результат раскрытия с помощью команды @expansion{}.

    Команда @expansion{} отображается в Info как `==>', а в печатном выводе как `==>'.

    Например, следующее

    @lisp
    (third '(a b c))
         @expansion{} (car (cdr (cdr '(a b c))))
         @result{} c
    @end lisp
    

    дает

    (third '(a b c))
         ==> (car (cdr (cdr '(a b c))))
         => c
    

    что можно прочитать так:

    (third '(a b c)) раскрывается в (car (cdr (cdr '(a b c)))); результат вычисления этого выражения равен c.

    Часто, как в этом случае, пример смотрится лучше, если для команд @expansion{} и @result{} сделан отступ в пять пробелов.

    @print{} (-|): Обозначение печатаемого вывода

    Иногда выражение печатает что-то во время исполнения. Вы можете обозначить печатаемый вывод с помощью команды @print{}.

    Команда @print{} отображается в Info как `-|', а в печатном выводе как `-|'.

    В следующем примере печатаемый текст обозначен с помощью `-|', а результат выражения идет на следующей строке.

    (progn (print 'foo) (print 'bar))
         -| foo
         -| bar
         => bar
    

    В исходном Texinfo-файле этот пример записан следующим образом:

    @lisp
    (progn (print 'foo) (print 'bar))
         @print{} foo
         @print{} bar
         @result{} bar
    @end lisp
    

    @error{} (error-->): Обозначение сообщения об ошибке

    Фрагмент кода может вызвать сообщение об ошибке, когда вы его вычисляете. Вы можете обозначить сообщение об ошибке с помощью команды @error{}.

    Команда @error{} отображается в Info как `error-->', а в печатном выводе как `error-->'.

    Таким образом,

    @lisp
    (+ 23 'x)
    @error{} Wrong type argument: integer-or-marker-p, x
    @end lisp
    

    дает

    (+ 23 'x)
    error--> Wrong type argument: integer-or-marker-p, x
    

    Это обозначает, что когда вы вычисляете выражение, печатается сообщение об ошибке:

    Wrong type argument: integer-or-marker-p, x
    

    сама строка `error-->' не является частью сообщения об ошибке.

    @equiv{} (==): Обозначение эквивалентности

    Иногда два выражения выдают одинаковый результат. Вы можете обозначить точную эквивалентность двух форм с помощью команды @equiv{}.

    Команда @equiv{} отображается в Info как `==', а в печатном выводе как `=='.

    Таким образом,

    @lisp
    (make-sparse-keymap) @equiv{} (list 'keymap)
    @end lisp
    

    дает

    (make-sparse-keymap) == (list 'keymap)
    

    Это обозначает, что вычисление (make-sparse-keymap) дает тот же результат, что и вычисление (list 'keymap).

    @point{} (-!-): Обозначение точки в буфере

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

    Вы можете использовать команду `@point{}', чтобы показать позицию точки в тексте буфера. (Символ точки, конечно, не является частью текста буфера; он обозначает место между двумя символами, где находится точка.)

    Команда @point{} отображается в Info как `-!-', а в печатном выводе как `-!-'.

    Следующий пример показывает содержимое буфера `foo' до и после вычисления Лисп-команды, вставляющей слово измененное.

    ---------- Buffer: foo ----------
    Это -!-содержимое foo.
    ---------- Buffer: foo ----------
    
    
    (insert "измененное ")
         => nil
    ---------- Buffer: foo ----------
    Это измененное -!-содержимое foo.
    ---------- Buffer: foo ----------
    
    

    В исходном Texinfo-файле этот пример был записан так:

    @example
    ---------- Buffer: foo ----------
    Это @point{}содержимое foo.
    ---------- Buffer: foo ----------
    
    (insert "измененное ")
         @result{} nil
    ---------- Buffer: foo ----------
    Это измененное @point{}содержимое foo.
    ---------- Buffer: foo ----------
    @end example
    

    Сноски

    Сноски нужны для справок, дополняющих или поясняющих основной текст.(8)

    Команды создания сносок

    В Texinfo сноски создаются командой @footnote. Сразу за командой следует открывающая фигурная скобка, потом текст сноски, и за ним закрывающая фигурная скобка. Сноски могут быть произвольной длины (при необходимости сноски разбиваются по страницам), но обычно они бывают короткими. Вот шаблон:

    обычный текст@footnote{текст сноски}
    

    Как здесь показано, команда @footnote должна следовать сразу после поясняемого текста; иначе знак сноски может появиться на новой строке.

    Например, после этой фразы вставлен образец сноски(9); в исходном Texinfo-файле это выглядит так:

    ...образец сноски@footnote{Это пример
    сноски.}; в исходном Texinfo-файле...
    

    В печатном руководстве или книге знак сноски -- это маленькое приподнятое число; текст сноски появляется внизу страницы под горизонтальной чертой.

    В Info знак сноски -- это номер сноски в круглых скобках, например: `(1)'. После знака сноски следует перекрестная ссылка к тексту сноски.

    В HTML файле, знаки сноски изображаются как маленькие приподнятые числа, служащие гиперссылками к тексту сноски.

    Кстати, сноски в аргументе команды @item внутри таблиц должны быть на той же строке, что и @item (как правило). See section Создание таблиц из двух колонок.

    Стили сносок

    В Info есть два стиля отображения сносок, которые определяют, где появится текст сноски:

    Texinfo-файл может быть отформатирован в Info-файл с любым стилем сносок.

    Используйте команду @footnotestyle для задания стиля сносок в Info-файле. Пишите эту команду с начала отдельной строки с последующим аргументом, `end' или `separate', для помещения сносок соответственно в конце ноды или в отдельной ноде.

    Например,

    @footnotestyle end
    

    или

    @footnotestyle separate
    

    Пишите команду @footnotestyle перед строкой end-of-header или немного после, в начале Texinfo-файла. (Если вы поместите команду @footnotestyle между строк start-of-header и end-of-header, команды форматирования области будут использовать заданный стиль сносок.)

    Если вы не задали стиль сносок, команды форматирования будут использовать стиль по умолчанию. На данный момент команды texinfo-format-buffer и texinfo-format-region используют стиль `separate', а @command{makeinfo} -- стиль `end'.

    В этой главе есть две сноски.

    Вставка рисунков

    Вы можете вставить рисунок из внешнего файла с помощью команды @image:

    @image{имя-файла, [ширина], [высота]}
    

    Аргумент имя-файла является обязательным, и имя не должно содержать расширения, потому что разные обработчики поддерживают разные форматы:

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

    Аргументы ширина и высота могут быть заданы с помощью правильных размеров TeX, а именно:

    pt
    пункт (72.27pt = 1in)
    pc
    пика (1pc = 12pt)
    bp
    большой пункт (72bp = 1in)
    in
    дюйм
    cm
    сантиметр (2.54cm = 1in)
    mm
    миллиметр (10mm = 1cm)
    dd
    дидот-пункт (1157dd = 1238pt)
    cc
    цицеро (1cc = 12dd)
    sp
    масштабный пункт (65536sp = 1pt)

    Например, следующая команда масштабирует файл `ridt.eps' до одного дюйма по вертикали и пропорционально по горизонтали:

    @image{ridt,,1in}
    

    Чтобы @image работала с TeX, нужно установить файл `epsf.tex' в таком месте, где TeX может его найти. (Стандартное место -- `texmf/tex/generic/dvips/epsf.tex', где texmf --- это корень дерева каталогов TeX.) Этот файл включен в дистрибутив Texinfo и доступен на ftp://tug.org/tex/epsf.tex.

    @image можно использовать как внутри строки, так и для выделенных рисунков. Поэтому, если вы намереваетесь сделать рисунок выделенным, убедитесь, что вы оставили перед этой командой пустую строку, иначе вывод наползет на предшествующий текст.


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