diff --git a/ru_RU.KOI8-R/books/fdp-primer/sgml-markup/chapter.sgml b/ru_RU.KOI8-R/books/fdp-primer/sgml-markup/chapter.sgml index 939752c34f..9c451575dc 100644 --- a/ru_RU.KOI8-R/books/fdp-primer/sgml-markup/chapter.sgml +++ b/ru_RU.KOI8-R/books/fdp-primer/sgml-markup/chapter.sgml @@ -1,2744 +1,2744 @@ Разметка SGML В этой главе описываются два языка разметки, с которыми вы можете встретиться, когда принимаете участие в Проекте Документирования FreeBSD. Каждый раздел описывает язык разметки и подробно касается разметки, которую вы, вероятнее всего, будете использовать или которая уже используется. Эти языки разметки содержат большое количество элементов, и иногда это может приводить в замешательство относительно того, какой элемент нужно использовать в конкретной ситуации. В этом разделе описываются элементы, которые, скорее всего, вам потребуются, и даются примеры того, как их нужно использовать. Это не исчерпывающий список элементов, так как это стало бы простым повторением документации по каждому языку. Предназначение этого раздела заключается в перечислении тех элементов, которые в первую очередь будут полезными для вас. Если у вас есть вопрос по поводу наилучшей разметки конкретного текста, пожалуйста, пошлите его по адресу &a.doc; Строчный или блочный Во всем документе при описании элементов строчный означает, что элемент может появиться в блочном элементе, и не приводит к концу строки. Блочный элемент, по сравнению с этим, приводит к завершению строки (и другой обработке) при его появлении. HTML HTML, HyperText Markup Language (Язык Гипертекстовой Разметки), применяется в World Wide Web. Более полная информация может быть найдена по адресу <URL:>. HTML применяется для разметки страниц на веб-сервере FreeBSD. Он не применяется (как правило) для разметки другой документации, так как DocBook предоставляет на выбор гораздо более богатый набор элементов. Соответственно, обычно вы встречаетесь только со страницами HTML, если вы пишете для веб-сайта. HTML прошел через последовательность версий, 1, 2, 3.0, 3.2 и самую последнюю, 4.0 (которая есть как в строгом, так и нежестком вариантах). DTD для HTML доступны из коллекции портов через порт textproc/html. Они автоматически устанавливаются как часть порта textproc/docproj. Формальный Публичный Идентификатор (Formal Public Identifier - FPI) Существует несколько FPI для HTML, зависящих от версии (также называемой уровнем) HTML, которому вы хотите объявить, что ваш документ соответствует. Основная масса документов HTML на веб-сайте FreeBSD соответствует простой версии HTML 4.0. PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" Элементы разделов Документ HTML обычно делится на два раздела. Первый раздел, называемый заголовком (head), содержит мета-информацию о документе, такую, как его название, имя автора, родительский документ и так далее. Второй раздел, тело (body), включает содержимое, которое будет выводиться пользователю. Эти разделы помечаются элементами head и body соответственно. Эти элементы размещаются внутри элемента html самого верхнего уровня. Обычная структура документа HTML <html> <head> <title>Заголовок документа</title> </head> <body> … </body> </html> Блочные элементы Заголовки HTML позволяет вам выделять заголовки в вашем документе до шести различных уровней. Самым большим и наиболее бросающимся в глаза заголовком является h1, затем h2, продолжая до нисходящей до h6. Элемент содержит текст заголовка. <sgmltag>h1</sgmltag>, <sgmltag>h2</sgmltag> и так далее. Использование: First section

Это заголовок первого раздела

Это заголовок первого подраздела

Это заголовок второго раздела

]]>
Вообще говоря, на странице HTML должен иметься один заголовок первого уровня (h1). Он может содержать много заголовков второго уровня (h2), которые, в свою очередь, содержат много заголовков третьего уровня. Каждый элемент hn должен иметь тот же самый элемент, но выше по иерархии. Избегайте пропусков в нумерации. Неправильный порядок следования элементов <sgmltag>h<replaceable>n</replaceable></sgmltag> Использование: Первый раздел

Подраздел

]]>
Параграфы HTML поддерживает элемент отдельного параграфа, p. <sgmltag>p</sgmltag> Использование: Это параграф. Он может содержать практически любой другой элемент.

]]>
Цитирование блока Цитирование блока это расширенное цитирование из другого документа, который не должен появляться внутри текущего параграфа. <sgmltag>blockquote</sgmltag> Использование: Короткий отрывок из Конституции США:

We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.
]]>
Списки Вы можете представить пользователю три типа списков, упорядоченный, неупорядоченный и определений. Обычно каждый пункт в упорядоченном списке будет пронумерован, когда как каждому пункту в неупорядоченном списке будет предшествовать маркер. Списки определений состоят из двух секций для каждого пункта. Первая секция является определяемым термином, а вторая секция представляет собой определение термина. Упорядоченные списки помечаются элементом ol, неупорядоченные элементом ul, а списки определений элементом dl. Упорядоченные и неупорядоченные списки содержат элементы списка, отмечаемые элементом li. Элемент списка может содержать текст или может разбиваться на один или большее количество элементов p. Списки определений содержат определяемые термины (dt) и собственно определения (dd). Определяемый термин может содержать только строчные элементы. Определение может содержать другие блочные элементы. <sgmltag>ul</sgmltag> и <sgmltag>ol</sgmltag> Использование: Неупорядоченный список. Элементам списка должны предшествовать маркеры.

  • Первый элемент
  • Второй элемент
  • Третий элемент

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

  1. Это первый элемент. В нем только один параграф.

  2. Это первый параграф второго элемента.

    Это второй параграф второго элемента.

  3. Это первый и единственный параграф третьего элемента списка.

]]>
Списки определений с <sgmltag>dl</sgmltag> Использование:
Термин 1

Параграф 1 определения 1.

Параграф 2 определения 1.

Термин 2

Параграф 1 определения 2.

Термин 3
Параграф 1 определения 3. Заметьте, что элемент <p> в случае единственного параграфа не нужен.
]]>
Предварительно отформатированный текст Вы можете указать, что текст должен быть показан пользователю точно в таком виде, как вы его набрали в файле. Обычно это значит, что текст будет выводиться шрифтом фиксированного размера, несколько пробелов не будут объединяться в один и символы окончания строк принимаются во внимание. Для этого поместите содержимое в элемент pre. <sgmltag>pre</sgmltag> Вы можете использовать pre для разметки сообщения электронной почты; From: nik@FreeBSD.org To: freebsd-doc@FreeBSD.org Subject: New documentation available There's a new copy of my primer for contributers to the FreeBSD Documentation Project available at Comments appreciated. N]]> Таблицы Большинство браузеров, работающих в текстовом режиме (таких, как Lynx), не выводят таблицы достаточно правильно. Если вы рассчитываете на табличный вывод вашего текста, то во избежание путаницы вы должны использовать альтернативную разметку. Размечайте табличную информацию при помощи элемента table. Таблица состоит из одной или большего количества строк (tr), каждая из которых содержит одну или большее количество ячеек с данными (td). Каждая ячейка может содержать другие блочные элементы, такие, как параграфы или списки. Она может также содержать другую таблицу (такое вложение может быть бесконечным). Если ячейка содержит только один параграф, то вам не нужно включать элемент p. Простое использование <sgmltag>table</sgmltag> Использование: Это простая таблица 2x2.

Верхняя левая ячейка Верхняя правая ячейка
Нижняя левая ячейка Нижняя правая ячейка
]]>
Ячейка может занимать несколько строк и столбцов. Для указания этого добавьте атрибуты rowspan и/или colspan со значениями, указывающими количество строк или столбцов, которые должны быть заняты. Использование <literal>rowspan</literal> Использование: Одна высокая тонкая ячейка слева, две низкие ячейки за ней справа.

Длинная и высокая
Верхняя ячейка Нижняя ячейка
]]>
Использование <literal>colspan</literal> Использование: Одна длинная ячейка сверху, две короткие ячейки под ней.

Верхняя ячейка
Нижняя левая ячейка Нижняя правая ячейка
]]>
Использование <literal>rowspan</literal> и <literal>colspan</literal> одновременно Использование: На сетке 3x3 верхний левый блок является набором клеток 2x2, объединенных в одну ячейку. Остальные клетки нормальные.

Верхняя левая большая ячейка Верхняя правая клетка
Средняя правая ячейка
Нижняя левая ячейка Нижняя средняя ячейка Нижняя правая ячейка
]]>
Строчные элементы Выделяющая информация В HTML имеется два уровня выделения, em и strong. em предназначен для обычного уровня выделения, а strong указывает на более сильное выделение. Как правило, em выводится наклонным, а strong жирным шрифтами. Это не всегда так, и вам не следует на это полагаться. <sgmltag>em</sgmltag> и <sgmltag>strong</sgmltag> Использование: Этот текст выделен, а этот текст выделен сильно.

]]>
Жирный и наклонный Так как в HTML имеется презентационная разметка, вы можете также указать, что указанное содержимое должно быть выведено жирным или наклонным шрифтами. Это элементы b и i соответственно. <sgmltag>b</sgmltag> и <sgmltag>i</sgmltag> Этот текст выводится жирным, а этот текст выводится наклонным шрифтами.

]]>
Указание текста одинаковой ширины Если у вас есть текст, который должен быть выведен моноширинным шрифтом (шрифтом пишущей машинки), используйте tt (от слова teletype - телетайп). <sgmltag>tt</sgmltag> Использование: Этот документ первоначально создал Ник Клэйтон (Nik Clayton), которому можно написать по электронной почте на адрес nik@FreeBSD.org.

]]>
Размер текста Вы можете указать, что содержимое должно показываться шрифтами большего или меньшего размеров. Есть три способа сделать это. Используйте big и small вокруг содержимого, размер которого вы хотите изменить. Эти метки могут быть вложенными, так, возможно выводить <big><big>этот текст гораздо крупнее</big></big>. Используйте набор font совместно с атрибутом size, установленным в +1 или -1 соответственно. Это будет иметь тот же самый эффект, что и использование big или small. Однако такое использование не рекомендуется. Использование font вместе с атрибутом size, установленным в значение от 1 до 7. Размер шрифта, используемый по умолчанию, равен 3. Это подход не рекомендуется. <sgmltag>big</sgmltag>, <sgmltag>small</sgmltag> и <sgmltag>font</sgmltag> В следующих фрагментах выполняется одно и тоже. Этот текст немного меньше. А этот текст немножко больше.

Этот текст несколько меньше. А этот текст немного крупнее

Этот текст немного мельче. А этот текст немного крупнее.

]]>
Ссылки Ссылки также являются внутристрочными элементами. Ссылки на другие документы на WWW Для того, чтобы включить ссылку на другой документ из Интернет, вы должны знать URL документа, на который хотите сослаться. Ссылка выделяется элементом a и атрибутом href, содержащим URL целевого документа. Содержимое элемента заменяет ссылку и обычно каким-то способом выводится пользователю (подчеркиванием, изменением цвета, другим типом курсора мыши, находящимся над ссылкой, и так далее). Использование <literal><a href="..."></literal> Использование: Дополнительная информация находится на веб-сайте FreeBSD.

]]>
Эти ссылки направят пользователя к началу выбранного документа.
Ссылки на другие части документов Ссылка на точку внутри другого документа (или внутри того же самого документа) требует, чтобы автор документа включил метку, на которую вы можете сослаться. Метки помечаются с помощью a и атрибута name вместо href. Использование <literal><a name="..."></literal> Использование: На этот параграф можно сослаться из других мест по имени para1.

]]>
Чтобы сослаться на именованную часть документа, напишите обычную ссылку на тот документ, но включите имя метки после символа #. Ссылка на именованную часть другого документа Предположим, что пример с para1 расположен в документе с именем foo.html. Дополнительная информация может быть найдена в первом абзаце из foo.html.

]]>
если вы ссылаетесь на именованную метку внутри того же самого документа, то вы можете опустить URL документа, и просто включить имя метки (с предшествующим #). Ссылка на именованную часть того же самого документа Положим, что пример с para1 расположен в этом документе Дополнительная информация может быть найдена в первом абзаце этого документа.

]]>
DocBook DocBook был разработан компаниями HaL Computer Systems и O'Reilly & Associates, как DTD для написания технической документации Краткая история находится по адресу http://www.oasis-open.org/committees/docbook/intro.shtml. . С 1998 года его поддержкой занимается DocBook Technical Committee. Поэтому, и в отличие от LinuxDoc и HTML, DocBook очень сильно ориентирован на разметку, описывающую что это, а не на описание того, как это должно выглядеть. <literal>Формально</literal> или <literal>неформально</literal> Некоторые элементы могут существовать в двух формах, formal и неформальной. Обычно формальная версия элемента будет состоять из заголовка, за которым следует информация о версии элемента. Неформальная форма заголовка не содержит. DocBook DTD находится в коллекции портов как порт textproc/docbook. Он автоматически устанавливается как часть порта textproc/docproj. Расширения FreeBSD Проект Документирования FreeBSD расширил DocBook DTD, добавив некоторые новые элементы. Эти элементы служат для уточнения некоторых элементов разметки. Когда в списке ниже встречается элемент, специфичный для FreeBSD, это будет явно указано. В оставшемся тексте этого документа термин DocBook используется в смысле DocBook DTD, расширенного во FreeBSD. В этих расширениях нет ничего, специфичного для FreeBSD, просто было чувство, что эти расширения оказались полезными для этого конкретного проекта. Если кто-то из других команд *nix (NetBSD, OpenBSD, Linux, …) заинтересуется в совместной работе над стандартным набором расширений DocBook, пожалуйста, свяжитесь с &a.doceng;. Расширений FreeBSD (на данный момент) нет в коллекции портов. Они хранятся в дереве CVS FreeBSD как doc/share/sgml/freebsd.dtd. Формальный Публичный Идентификатор (Formal Public Identifier - FPI) В соответствии с рекомендациями DocBook по написанию FPI для собственный настроек DocBook, FPI расширенного DocBook DTD для FreeBSD такова; PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" Структура документа DocBook позволяет вам структурировать документ несколькими способами. В Проекте Документирования FreeBSD мы используем два основных типа документа DocBook: книга (book) и статья (article). Книга организуется в виде глав (chapter). Это обязательное условие. Между книгой и главой могут быть части (part) для того, чтобы дать дополнительный уровень организации. Руководство организовано именно так. Глава может содержать (или может не содержать) один или большее количество разделов. Это выделяется элементом sect1. Если раздел содержит другой подраздел, то используются элемент sect2 и так далее, до sect5. В главах и разделах содержится оставшийся текст. Статья устроена проще, чем книга, в ней не используются главы. Вместо них содержимое статьи организуется в один или большее количество разделов, с использованием те же самые элементы sect1 (sect2 и так далее), что используются в книгах. Очевидно, что вы должны следовать характеру документа, который вы создаете, для решения того, лучше размечать его как книгу или как статью. Статьи хорошо подходят для информации, которую не нужно разбивать дальше на несколько глав, и которая имеет относительно небольшой объем, до 20-25 страниц текста. Книги лучше подходят для информации, которая может разбиваться на несколько глав, возможно, с примечаниями и тому подобным содержимым. Все учебники FreeBSD размечены как статьи, FAQ по FreeBSD и Руководство по FreeBSD размечены как книги. Начало книги Текст книги размещается внутри элемента book. Этот элемент, наряду с тем, что содержит структурированную разметку, может содержать элементы, которые включают дополнительную информацию о книге. Это либо мета-информация, используемая для справочных целей, либо дополнительный текст, используемый для генерации заглавной страницы. Эта дополнительная информация должна располагаться в bookinfo. Заготовка для <sgmltag>book</sgmltag> с <sgmltag>bookinfo</sgmltag> <book> <bookinfo> <title>Здесь ваш заголовок</title> <author> <firstname>Ваше имя</firstname> <surname>Ваша фамилия</surname> <affiliation> <address><email>Ваш адрес электронной почты</email></address> </affiliation> </author> <copyright> <year>1998</year> <holder role="mailto:Ваш e-mail">Ваше имя</holder> </copyright> <releaseinfo>$FreeBSD$</releaseinfo> <abstract> <para>Сюда включите обзор содержимого книги.</para> </abstract> </bookinfo> … </book> Начало статьи Содержимое статьи размещается внутри элемента article. Этот элемент, наряду с тем, что содержит структурированную разметку, может содержать элементы, которые включают дополнительную информацию о статье. Это либо мета-информация, используемая для справочных целей, либо дополнительный текст, используемый для генерации заглавной страницы. Эта дополнительная информация должна размещаться внутри articleinfo. Заготовка <sgmltag>article</sgmltag> с <sgmltag>articleinfo</sgmltag> <article> <articleinfo> <title>Здесь ваш заголовок</title> <author> <firstname>Ваше имя</firstname> <surname>Ваша фамилия</surname> <affiliation> <address><email>Ваш e-mail</email></address> </affiliation> </author> <copyright> <year>1998</year> <holder role="mailto:Ваш e-mail">Ваше имя</holder> </copyright> <releaseinfo>$FreeBSD$</releaseinfo> <abstract> <para>Сюда включите обзор содержимого статьи.</para> </abstract> </articleinfo> … </article> Оформление глав Используйте chapter для разметки ваших глав. Каждая глава имеет обязательный элемент title. Статьи не содержат глав, они используются только в книгах. Простая глава Заголовок главы ...
]]> Глава не может быть пустой; она должна содержать элементы, кроме title. Если вы хотите включить пустую главу, то воспользуйтесь пустым параграфом. Пустые главы Это пустая глава ]]> Секции ниже глав В книгах главы могут (но но обязаны) разбиваться на разделы, подразделы и так далее. В статьях разделы являются главными структурными элементами, и каждая статья должна содержать по крайней мере один раздел. Используйте элемент sectn. n задает номер раздела, определяющий его уровень вложенности. Первый раздел sectn это sect1. В главе вы можете иметь один или большее количество таких разделов. Они могут содержать один или большее количество элементов sect2 и так далее, вплоть до sect5. Разделы в главах Примерная глава Некоторый текст в главе. Первый раздел (1.1) Второй раздел (1.2) Первый подраздел (1.2.1) Второй подподраздел (1.2.1.1) Второй подраздел (1.2.2) ]]> В этом примере номера разделов включены в их заголовки. В вашей документации делать этого не нужно. Добавление номеров разделов осуществляется таблицами стилей (о которых чуть ниже), и вам не нужно об этом заботиться. Разбиение при помощи <sgmltag>part</sgmltag> Вы можете создать еще один уровень организации между book и chapter при помощи одного или большего количества элементов part. Этого нельзя сделать в article. Введение Обзор ... Что такое FreeBSD? ... История ... ]]> Блочные элементы Параграфы DocBook поддерживает три типа параграфов: formalpara, para и simpara. В большинстве случаев вам потребуется использовать только para. formalpara включает элемент title, а simpara запрещает использование некоторых элементов из para. Остановите свой выбор на para. <sgmltag>para</sgmltag> Использование: Это параграф. Он может содержать практически любой другой элемент. ]]> Результат обработки: Это параграф. Он может содержать практически любой другой элемент. Блочное цитирование Блочное цитирование является расширенным цитированием из другого документа, который не может быть включен в текущий параграф. Вам это будет требоваться нечасто. Блочные цитаты могут опционально содержать заголовок и атрибуты (или могут остаться без заголовка и без атрибутов). <sgmltag>blockquote</sgmltag> Использование: Короткий отрывок из Конституции США;
Preamble to the Constitution of the United States Copied from a web site somewhere We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.
]]>
Выводимый результат:
Preamble to the Constitution of the United States Copied from a web site somewhere We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.
Советы, замечания, предупреждения, предостережения, важная информация и заметки на полях. Вам может потребоваться включить дополнительную информацию отдельно от основного текста. Обычно это мета-информация, которую должен принять во внимание пользователь. В зависимости от природы информации, должен использоваться элемент tip, note, warning, caution или important. Либо, если информация связана с основным текстом, но не является чем-либо из перечисленного, используйте элемент sidebar. Условия, при которых должен выбираться конкретный тип элемента, размыты и четко не формулируются. Документация по DocBook предлагает следующее; Note (замечание) для информации, на которую должны обратить внимание все читатели. Элемент Important (важное) является разновидностью элемента Note. Caution (предостережение) для информации относительно возможных потерь данных или порчи программного обеспечения. Warning (предупреждение) для информации, касающейся возможной порчи оборудования или нанесения вреда жизни или органам. <sgmltag>warning</sgmltag> Использование: Установка FreeBSD может привести к желанию удалить Windows с вашего винчестера. ]]> Установка FreeBSD может привести к желанию удалить Windows с вашего винчестера. Списки и процедуры Часто вам будет нужно перечислить некоторую информацию пользователю или дать ее в виде некоторого количества шагов, которые должны быть выполнены для достижения какой-то цели. Для этого используйте элементы itemizedlist, orderedlist или procedure В DocBook есть и другие типы элементов списка, но пока мы их не рассматриваем. itemizedlist и orderedlist похожи на соответствующие элементы из HTML, ul и ol. Каждый из них состоит из одного или большего количества элементов listitem, и каждый listitem содержит один или большее количество блочных элементов. Элементы listitem аналогичны меткам li из HTML. Однако, в отличие от HTML, они обязательны. procedure несколько от них отличается. Он состоит из элементов step (шаг), которые, в свою очередь, состоят из дополнительных элементов step или substep. Каждый элемент step содержит блочные элементы. <sgmltag>itemizedlist</sgmltag>, <sgmltag>orderedlist</sgmltag> и <sgmltag>procedure</sgmltag> Использование: Это первый списочный элемент. Это второй списочный элемент. Это первый упорядоченный элемент. Это второй упорядоченный элемент. Сделайте это. Затем сделайте то. А теперь сделайте вот так. ]]> Получаемый результат: Это первый списочный элемент. Это второй списочный элемент. Это первый упорядоченный элемент. Это второй упорядоченный элемент. Сделайте это. Затем сделайте то. А теперь сделайте вот так. Показ примеров файлов Если вы хотите показать пользователю фрагмент файла (или, возможно, файл полностью), поместите его в элемент programlisting. Пробелы и переводы строк внутри programlisting имеют значение. В частности, это значит, что открывающая метка должна быть на той же строке, что и первая строка вывода, а закрывающая метка должна помещаться на той же строке, что и последняя строка вывода, в противном случае будут вставлены пустые строки. <sgmltag>programlisting</sgmltag> Использование: Когда вы закончите, ваша программа должна иметь примерно такой вид: #include <stdio.h> int main(void) { printf("hello, world\n"); }]]> Отметьте, что угловые скобки в строке #include нужно описывать по их соответствующим сущностям, а не напрямую. Результат выдачи: Когда вы закончите, ваша программа должна иметь примерно такой вид; #include <stdio.h> int main(void) { printf("hello, world\n"); } Отсылки Отсылка является механизмом для ссылки на часть текста, которая встретилась ранее, или в определенной позицию внутри ранее идущего примера, без ссылки на него внутри текста. Чтобы это сделать, пометьте интересующие области в вашем примере (programlisting, literallayout или что там у вас еще) элементом co. Каждый элемент должен иметь уникальный присвоенный ему идентификатор id. После примера поместите calloutlist, который ссылается на пример и дает дополнительный комментарий. <sgmltag>co</sgmltag> и <sgmltag>calloutlist</sgmltag> Когда вы закончите, ваша программа должна иметь примерно такой вид; #include <stdio.h> int main(void) { printf("hello, world\n"); } Включение стандартного файла объявлений IO. Указывает на то, что main() возвращает int. Вызов printf(), который выдает hello, world на стандартный вывод. ]]> Результат обработки: Когда вы закончите, ваша программа должна иметь примерно такой вид; #include <stdio.h> int main(void) { printf("hello, world\n"); } Включение стандартного файла объявлений IO. Указывает на то, что main() возвращает int. Вызов printf(), который выдает hello, world на стандартный вывод. Таблицы В отличие от HTML, вам не нужно использовать таблицы для целей размещения, так как эту работу выполняют таблицы стилей. Используйте таблицы для разметки табличных данных. Вообще (обратитесь к документации по DocBook для получения дополнительной информации) таблица (которая может быть формальная или неформальная) состоит из элемента table. Он содержит по крайней мере один элемент tgroup, задающий (как атрибут) количество столбцов в этой табличной группе. Внутри табличной группы вы можете иметь один элемент thead, который содержит элементы для заголовков таблицы (заголовки столбцов) и один элемент tbody, содержащий тело таблицы. Как tgroup, так и thead содержат элементы row, в свою очередь, содержащие элементы entry. Каждый элемент entry задает одну ячейку в таблице. <sgmltag>informaltable</sgmltag> Использование: Это заголовок столбца 1 Это заголовок столбца 2 Строка 1, столбец 1 Строка 1, столбец 2 Строка 2, столбец 1 Строка 2, столбец 2 ]]> Выдаваемый результат: Это заголовок столбца 1 Это заголовок столбца 2 Строка 1, столбец 1 Строка 1, столбец 2 Строка 2, столбец 1 Строка 2, столбец 2 Вместе с элементом informaltable всегда используйте атрибут pgwide со значением 1. Если атрибут будет опущен, то из-за ошибки в в браузере Internet Explorer таблица будет отображаться некорректно. Если вам не нужна граница вокруг таблицы, то к элементу informaltable может быть добавлен атрибут frame со значением none (то есть <informaltable frame="none">). Таблицы с <literal>frame="none"</literal> Выдаваемый результат: Это заголовок столбца 1 Это заголовок столбца 2 Строка 1, столбец 1 Строка 1, столбец 2 Строка 2, столбец 1 Строка 2, столбец 2 Примеры, которым нужно следовать пользователю Во многих случаях вам нужно показать пользователю примеры, по которым нужно что-то делать. Обычно они состоят из диалогов с компьютером; пользователь набирает команду, пользователь получает ответ, затем набирает другую команду и так далее. При этом задействуется некоторое количество различных элементов и сущностей. screen Все, что пользователь видит в этом примере на экране компьютера, поэтому элемент и называется screen. Внутри screen, пробелы имеют значение. prompt, &prompt.root; и &prompt.user; Часть из того, что пользователь увидит на экране, является приглашением компьютера (от ОС, командного процессора или прикладной программы. Это должно быть размечено при помощи prompt. Как особый случай, для двух приглашений для обычного пользователя и для администратора даны сущности. Каждый раз, когда вы хотите указать, что пользователь работает с приглашением оболочки, используйте по необходимости &prompt.root; или &prompt.user;. Их не нужно заключать внутрь prompt. &prompt.root; и &prompt.user; являются расширениями FreeBSD для DocBook, и не являются частью исходного DTD. userinput При выводе текста, который должен набрать пользователь, заключите его в метки userinput. Он, скорее всего, будет выведен другим образом. <sgmltag>screen</sgmltag>, <sgmltag>prompt</sgmltag> и <sgmltag>userinput</sgmltag> Использование: &prompt.user; ls -1 foo1 foo2 foo3 &prompt.user; ls -1 | grep foo2 foo2 &prompt.user; su Password: &prompt.root; cat foo2 This is the file called 'foo2']]> Выводимый результат: &prompt.user; ls -1 foo1 foo2 foo3 &prompt.user; ls -1 | grep foo2 foo2 &prompt.user; su Password: &prompt.root; cat foo2 This is the file called 'foo2' Хотя мы выводим содержимое файла foo2, оно не размечается как programlisting. programlisting предназначен для вывода фрагментов файлов вне связи с действиями пользователя.
Строчные элементы Выделение информации Когда вы хотите выделить некоторое слово или фразу, используйте emphasis. Они могут быть выведены наклонным шрифтом, или жирным шрифтом, или могут проговариваться другим тоном системой преобразования текста в речь. Внутри документа нет способа изменить способ выделения, нет эквивалентам b и i из HTML. Если информация, которую вы выделяете, важна, то используйте important вместо emphasis. <sgmltag>emphasis</sgmltag> Использование: FreeBSD, без сомнения, является наилучшей операционной Unix-подобной системой для архитектуры Intel.]]> Выводимый результат: FreeBSD, без сомнения, является наилучшей операционной Unix-подобной системой для архитектуры Intel. Цитирование Для того, чтоб процитировать текст из другого документа или источника, или для того чтобы выделить фигуральное выражение, используйте quote. В пределах тэга quote Вы можете использовать большинство тэгов разметки доступных для нормального текста. Цитирование Использование: Несмотря на это убедитесь, что поиск не выходит за пределы между локальным и публичным администрированием, как RFC 1535 описывает это.]]> Выводимый результат: Несмотря на это убедитесь, что поиск не выходит за пределы между локальным и публичным администрированием, как RFC 1535 описывает это. Клавиши, кнопки мыши и комбинации Чтобы описать некоторую клавишу на клавиатуре, используйте keycap. Чтобы описать кнопку мыши, воспользуйтесь mousebutton. А чтобы описать комбинацию нажатий клавиш или щелчков мыши, заключите их в keycombo. keycombo имеет атрибут под названием action, который может принимать одно из значений click, double-click, other, press, seq или simul. Последние два значения определяют, должны ли клавиши или кнопки нажиматься последовательно или одновременно. Таблицы стилей автоматически добавят все необходимые связующие символы, такие, как +, между наименованиями клавиш при объединении в keycombo. Клавиши, кнопки мыши и комбинации Использование: Чтобы переключиться во второй виртуальный терминал, нажмите Alt F1. Чтобы выйти из редактора vi без сохранения вашей работы, наберите Esc: q!. Мой оконный менеджер настроен так, что Alt right кнопка мыши используется для передвижения окон.]]> Выводимый результат: Чтобы переключиться во второй виртуальный терминал, нажмите Alt F1. Чтобы выйти из редактора vi без сохранения вашей работы, наберите Esc: q!. Мой оконный менеджер настроен так, что Alt right кнопка мыши используется для передвижения окон. Прикладные программы, команды, параметры и цитаты Вам часто будет требоваться описать как прикладные программы, так и команды при написании для Руководства. Разница между ними проста: приложение является названием набора (или, возможно, всего лишь 1) программ, которые выполняют конкретную задачу. Команда является названием программы, которую может запустить пользователь. Кроме того, время от времени вам будет нужно указать один или большее количество параметров, которые может воспринимать команда. Наконец, вам часто будет нужно указывать команду с номером раздела ее справочной страницы, в формате команда(номер), обычном для справочной системы Unix. Выделяйте имена приложений при помощи application. Когда вы хотите указать команду вместе с разделом ее справочной страницы (что бывает в большинстве случаев), то элемент DocBook называется citerefentry. Он будет содержать два элемента, refentrytitle и manvolnum. Содержимым refentrytitle является имя команды, а в manvolnum помещается номер раздела справочной страницы. Это может оказаться громоздким при написании, поэтому для облегчения этой задачи был создан набор сущностей общего назначения. Каждая сущность имеет форму &man.manual-page.manual-section;. Файлом, в котором содержатся эти сущности, является doc/share/sgml/man-refs.ent, и к нему можно обратиться посредством следующего FPI: PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN" Таким образом, начало вашей документации, скорее всего, будет выглядеть примерно так: <!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [ <!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; … ]> Используйте command, когда вы хотите включить название команды в строку, но она должна выглядеть так, как будто её должен набрать пользователь. Для разметки параметров, которые передаются описываемой команде, используйте option. - Когда Вы ссылаетесь к одной комманде несколько раз в течение + Когда Вы ссылаетесь к одной команде несколько раз в течение короткого периода времени, то предпочтительно использовать нотацию вида &man.command.sec tion; для разметки первой ссылки и command для последующих ссылок. Это делает результат, особенно HTML, гораздо симпатичнее на вид. Это может запутать, и иногда выбор не всегда очевиден. Надеемся, этот пример сделает это более понятным. Приложения, команды и параметры. Использование: Sendmail является наиболее часто используемым почтовым приложением Unix. Sendmail включает программы sendmail 8 , &man.mailq.8; и &man.newaliases.8;. Один из параметров командной строки для sendmail 8 , , будет выводить текущее состояние сообщений в почтовой очереди. Проверьте это, запустив из командной строки sendmail -bp.]]> Выводимый результат: Sendmail является наиболее часто используемым почтовым приложением Unix. Sendmail включает программы sendmail 8 , mailq 8 и newaliases 8 . Один из параметров командной строки для sendmail 8 , , будет выводить текущее состояние сообщений в почтовой очереди. Проверьте это, запустив из командной строки sendmail -bp. Заметьте, насколько легче использовать нотацию &man.command.section;. Файлы, каталоги, расширения Хотите ли вы указать имя файла, каталог или расширение файла, используйте filename. <sgmltag>filename</sgmltag> Использование: Исходный код SGML для Руководства на английском языке можно найти в каталоге /usr/doc/en/handbook/. В этом каталоге первый файл называется handbook.sgml. Вы также должны посмотреть на Makefile и некоторое количество файлов с расширением .ent.]]> Выводимый результат: Исходный код SGML для Руководства на английском языке можно найти в каталоге /usr/doc/en/handbook/. В этом каталоге первый файл называется handbook.sgml. Вы также должны посмотреть на Makefile и некоторое количество файлов с расширением .ent. Названия портов Расширение FreeBSD Эти элементы являются частями расширения FreeBSD к DocBook, и их нет в исходном DocBook DTD. Вам может потребоваться включить в документацию имя программы из Коллекции Портов FreeBSD. Используйте для этого метку - filename с аттрибутом role. + filename с атрибутом role. Так как порты могут быть установлены в любое место, включайте только категорию и название порта; не включайте сюда /usr/ports. - <sgmltag>filename</sgmltag> с аттрибутом + <title><sgmltag>filename</sgmltag> с атрибутом <literal>role</literal> Использование: Установите net/ethereal для просмотра сетевого трафика.]]> Выводимый результат: Установите net/ethereal для просмотра сетевого трафика. Устройства Расширение FreeBSD Эти элементы являются частью расширения FreeBSD к DocBook, и их их нет в исходном DocBook DTD. При указания устройства у вас есть два варианта. Вы можете либо указать устройство в том виде, как оно находится в /dev, или вы можете использовать имя устройства так, как оно появляется в ядре. В последнем случае используйте devicename. Иногда у вас нет выбора. Некоторые устройства, такие, как сетевые адаптеры, не имеют соответствий в /dev, или они значительно отличаются от вышеупомянутых. <sgmltag>devicename</sgmltag> Использование: sio используется для коммуникаций по последовательным каналам по FreeBSD. sio доступно через несколько файлов устройств из /dev, включая /dev/ttyd0 и /dev/cuaa0. В отличие от него, сетевые устройства, такие, как ed0, не присутствуют в /dev. В MS-DOS первый дисковод обозначается как a:. Во FreeBSD это /dev/fd0.]]> Выводимый результат: sio используется для коммуникаций по последовательным каналам по FreeBSD. sio доступно через несколько файлов устройств из /dev, включая /dev/ttyd0 и /dev/cuaa0. В отличие от него, сетевые устройства, такие, как ed0, не присутствуют в /dev. В MS-DOS первый дисковод обозначается как a:. Во FreeBSD это /dev/fd0. Хосты, домены, адреса IP и так далее Расширение FreeBSD Эти элементы являются частями расширения FreeBSD к DocBook, и их нет в исходном DocBook DTD. Вы можете разметить идентификационную информацию для компьютеров, работающих в сети (хостов) несколькими способами, в зависимости от природы информации. Во всех случаях используется элемент /hostid с атрибутом role, задающим тип размечаемой информации. Без ролевого атрибута или role="hostname" Без ролевого атрибута (то есть hostid...hostid размечаемая информация представляет собой просто имя хоста, такое, как freefall или wcarchive. Вы можете явно задать его при помощи role="hostname". role="domainname" Текст является именем домена, таким, как FreeBSD.org или ngo.org.uk. Компонент с именем хоста здесь отсутствует. role="fqdn" Текст является Полным Доменным Именем, с доменной и хостовой частями. role="ipaddr" Текст является адресом IP, чаще всего записанном в виде четверки чисел через точку. role="ip6addr" Текст является адресом IPv6. role="netmask" Текст является сетевой маской, которая может быть записана как четверка чисел через точку, в виде шестнадцатеричной строки или как /, за которым следует число. role="mac" Текст является MAC-адресом Ethernet, записанном в виде последовательности 2-символьных шестнадцатеричных чисел, разделенных двоеточиями. <sgmltag>hostid</sgmltag> и роли Использование: Собственно машину всегда можно обозначить по имени localhost с IP-адресом 127.0.0.1. Домен FreeBSD.org содержит несколько различных хостов, включая freefall.FreeBSD.org и bento.FreeBSD.org. При добавлении алиаса IP к интерфейсу (при помощи ifconfig) всегда используйте сетевую маску 255.255.255.255 (что может быть записано также как 0xffffffff. MAC-адрес однозначно идентифицирует любую существующий сетевой адаптер. Типичный MAC-адрес выглядит как 08:00:20:87:ef:d0.]]> Выводимый результат: Собственно машину всегда можно обозначить по имени localhost с IP-адресом 127.0.0.1. Домен FreeBSD.org содержит несколько различных хостов, включая freefall.FreeBSD.org и bento.FreeBSD.org. При добавлении алиаса IP к интерфейсу (при помощи ifconfig) всегда используйте сетевую маску 255.255.255.255 (что может быть записано также как 0xffffffff. MAC-адрес однозначно идентифицирует любую существующий сетевой адаптер. Типичный MAC-адрес выглядит как 08:00:20:87:ef:d0. Имена пользователей Расширение FreeBSD Эти элементы являются частями расширения FreeBSD к DocBook, и их нет в исходном DocBook DTD. Когда вам нужно указать некоторое имя пользователя, такое, как root или bin, используйте username. <sgmltag>username</sgmltag> Использование: Для выполнения большинства функций системного администрирования вам нужно быть пользователем root.]]> Выводимый результат: Для выполнения большинства функций системного администрирования вам нужно быть пользователем root. Описание <filename>Makefile</filename>s Расширение FreeBSD Эти элементы являются частями расширения FreeBSD к DocBook, и их нет в исходном DocBook DTD. Для описания частей файлов Makefile имеются два элемента, maketarget и makevar. maketarget идентифицирует цель для построения, экспортируемую из Makefile, которая может быть задана в качестве параметра для make. makevar идентифицирует переменную, которая может быть задана (в окружении, в командной строке make или внутри Makefile) для изменения процесса построения. <sgmltag>maketarget</sgmltag> и <sgmltag>makevar</sgmltag> Использование: Двумя распространенными целями в Makefile являются all и clean. Обычно вызов all приводит к перестроению приложения, а вызов clean удаляет временные файлы (к примеру, .o), созданные в процессе построения. clean может контролироваться несколькими переменными, среди которых CLOBBER и RECURSE.]]> Выводимый результат: Двумя распространенными целями в Makefile являются all и clean. Обычно вызов all приводит к перестроению приложения, а вызов clean удаляет временные файлы (к примеру, .o), созданные в процессе построения. clean может контролироваться несколькими переменными, среди которых CLOBBER и RECURSE. Дословный текст Часто вам будет нужно включить в Руководство дословный текст. Это текст, который взят из другого файла, или который должен быть скопирован из Руководства в другой файл без изменений. Иногда для разметки такого текста будет достаточно programlisting. programlisting не всегда подходит, в частности, когда вы хотите включить часть файла внутрь параграфа. В таких случаях используйте literal. <sgmltag>literal</sgmltag> Использование: Строка maxusers 10 в файле конфигурации ядра определяет размер многих системных таблиц, и примерно задает количество одновременных входов, которые может поддерживать система.]]> Выводимый результат: Строка maxusers 10 в файле конфигурации ядра определяет размер многих системных таблиц, и примерно задает количество одновременных входов, которые может поддерживать система. Выделение пунктов, которые пользователь <emphasis>должен</emphasis> заполнить Часто бывает, что вам нужно показать пользователю, что нужно сделать, или сослаться на файл, или на команду, или на что-то подобное, когда пользователь не может просто скопировать даваемые примеры, а должен вместо этого включить какую-то информацию от себя. На этот случай был разработан элемент replaceable. Используйте его внутри других элементов для выделения частей содержимого этих элементов, которые должен заменить пользователь. <sgmltag>replaceable</sgmltag> Использование: &prompt.user; man команда ]]> Выводимый результат: &prompt.user; man команда replaceable может быть использован во многих различных элементах, включая literal. Этот пример также показывает, что replaceable должен окружать только то содержимое, которое пользователь должен заменить. Все остальное изменять не нужно. Использование: Строка maxusers n в файле конфигурации ядра определяет размер многих системных таблиц, и примерно задает количество одновременных входов, которое поддерживает система. Для настольной рабочей станции в качестве n подойдет значение 32.]]> Выводимый результат: Строка maxusers n в файле конфигурации ядра определяет размер многих системных таблиц, и примерно задает количество одновременных входов, которое поддерживает система. Для настольной рабочей станции в качестве n подойдет значение 32. Цитирование системных сообщений об ошибках Вам может понадобиться показать ошибки, генерируемые FreeBSD. Выделяйте их при помощи errorname. Этот элемент отмечает в точности сообщение об ошибке. <sgmltag>errorname</sgmltag> Использование: Panic: cannot mount root ]]> Выводимый результат: Panic: cannot mount root Изображения Поддержка иллюстраций в документации на данный момент носит весьма экспериментальный характер. Я думаю. что механизм, описываемый здесь, вряд ли изменится, но это не гарантируется. Вам также потребуется установить порт graphics/ImageMagick, который используется для преобразований между различными графическими форматами. Это большой порт, и основной его объем не нужен. Однако, пока мы работаем над файлами Makefile и другой инфраструктурой, проще всего использовать его. Этот порт не входит в мета-порт textproc/docproj, вы должны установить его вручную. Лучшим примером того, чему нужно следовать на практике, является документ doc/en_US.ISO8859-1/articles/vm-design/. Если вам будут не совсем понятны последующие объяснения, взгляните на файлы в этом каталоге, чтобы посмотреть, как все это работает вместе. Поэкспериментируйте с созданием версий документа с разным форматированием, чтобы посмотреть, как выводятся размеченные изображения. Форматы изображений На данный момент мы поддерживаем два формата изображений. Формат, который вы должны использовать, зависит от природы вашего изображения. Для изображений, которые в основном являются векторными, таких, как сетевые диаграммы, графики и тому подобное, используйте Encapsulated Postscript и проследите за тем, чтобы файлы с вашими иллюстрациями имели расширение .eps. Для точечных изображений, таких, как снимки экранов, используйте формат Portable Network Graphic, и проследите за тем, чтобы файлы с вашими иллюстрациями имели расширение .png. Это единственные форматы, в которых могут быть изображения, помещаемые в хранилище CVS. Используйте подходящий формат для подходящих иллюстраций. Предполагается, что в вашей документации будет смесь изображений в форматах EPS и PNG. Файлы Makefile будут обеспечивать выбор корректного формата изображений в зависимости от выбранного вами формата выдачи документации. Не коммитьте в хранилище одно и то же изображение в двух разных форматах. Предполагается, что Проект Документирования перейдет на использование формата SVG (Scalable Vector Graphic - масштабируемая векторная графика) для векторных изображений. Однако текущее состояние инструментов, которые могут редактировать SVG, делает этот переход непрактичным. Разметка Разметка для изображения сравнительно проста. Сначала разметьте mediaobject. mediaobject может содержать другие, более специфичные объекты. Мы имеем дело с двумя, imageobject и textobject. Вы должны включить один imageobject и два элемента textobject. imageobject будет указывать на имя используемого файла с изображением (без расширения). Элементы textobject содержат информацию, которая будет выдаваться пользователю вместе или вместо изображения. Есть два условия, где это может быть. Когда читатель смотрит документацию в HTML. В этом случае каждому изображению нужно будет поставить в соответствие альтернативный текст для показа пользователю, обычно во время загрузки изображения, или при наведении курсора мыши на изображение. Когда читатель смотрит документацию в формате обычного текста. В этом случае каждая иллюстрация должна иметь эквивалент в псевдографике ASCII для выдачи пользователю. Наверное, пример поможет облегчить понимание этого. Предположим, что у вас есть файл изображения с именем fig1, которое вы хотите включить в документ. Эта иллюстрация представляет собой прямоугольник с буквой A внутри. Разметка для этого случая будет такова. <mediaobject> <imageobject> <imagedata fileref="fig1"> </imageobject> <textobject> <literallayout class="monospaced">+---------------+ | A | +---------------+</literallayout> </textobject> <textobject> <phrase>Рисунок</phrase> </textobject> </mediaobject> Помещение элемента imagedata внутрь элемента imageobject. Атрибут fileref должен содержать имя файла включаемого изображения, без расширения. Таблицы стилей автоматически определят, какое расширение должно быть добавлено к имени файла. Первый textobject должен содержать элемент literallayout, в котором атрибут class задан как monospaced. Это ваша возможность продемонстрировать свое мастерство в создании изображений в ASCII. Это содержимое будет использоваться, если документ будет преобразовываться в формат обычного текста. Отметьте, что первая и последняя строки содержимого элемента literallayout располагаются впритык к меткам элемента. Это избавляет от включения дополнительных пробелов. Второй textobject должен содержать единственный элемент phrase. Его содержимое станет атрибутом alt для изображения при преобразовании документа в формат HTML. Строки в <filename>Makefile</filename> Ваши иллюстрации должны быть перечислены в Makefile в переменной IMAGES. Эта переменная должна содержать имя всех ваших исходных изображений. К примеру, если вы создали три рисунка, fig1.eps, fig2.png и fig3.png, то в вашем Makefile должны быть строки, подобные следующим. … IMAGES= fig1.eps fig2.png fig3.png … или же … IMAGES= fig1.eps IMAGES+= fig2.png IMAGES+= fig3.png … И снова Makefile сам составит полный список иллюстраций, которые нужны для построения вашего документа, вам нужно только перечислить файлы с изображениями, которые дали вы. Изображения и главы в подкаталогах Вы должны быть аккуратны при разбиении вашей документации на файлы меньшего размера (посмотрите ), которые находятся в различных каталогах. Предположим, что у вас есть книга с тремя главами, причем главы хранятся в своих собственных каталогах, с именами chapter1/chapter.sgml, chapter2/chapter.sgml и chapter3/chapter.sgml. Если в каждой главе есть изображения, связанные с ней, я рекомендую разместить эти иллюстрации в подкаталоге соответствующей главы (chapter1/, chapter2/ и chapter3/). Однако если вы сделаете так, то должны указать имена каталогов в переменной IMAGES из Makefile и должны указать имя каталога в элементе imagedata вашего документа. Например, если у вас есть chapter1/fig1.png, то chapter1/chapter.sgml должен содержать <mediaobject> <imageobject> <imagedata fileref="chapter1/fig1"> </imageobject> … </mediaobject> Имя каталога должно быть указано в атрибуте fileref Makefile должен содержать … IMAGES= chapter1/fig1.png … Теперь все должно работать. Ссылки Ссылки также являются строчными элементами. Отсылки на другие части того же самого документа Ссылки внутри того же самого документа требуют указания того, откуда вы ссылаетесь (то есть текст, на котором пользователь будет щелкать или каким-то другим способом выделять, в качестве начала связи) и того, куда вы ссылаетесь (конец связи). Каждый элемент в DocBook имеет атрибут под названием id. Вы можете разместить текст в этом атрибуте для уникального именования элемента, которому он принадлежит. Это значение используется, когда вы задаете источник ссылки. Как правило, вы будете ссылаться на главы или разделы, так что добавляйте атрибут id к этим элементам. <literal>id в главах и разделах</literal> Введение Это введение. Оно содержит подраздел, который идентифицируется. Подраздел 1 Это подраздел. ]]> Очевидно, что вы должны использовать значения, говорящие сами за себя. В пределах документа (то есть не только одного файла, но и всех составляющих его файлов) значения должны быть уникальными. Заметьте, что id для подраздела строится путем добавления текста к id главы. Это помогает обеспечить их уникальность. Если вы хотите позволить пользователю переходить на конкретный участок документа (возможно, в середине параграфа или примера), то используйте anchor. В этом элементе нет содержимого, но может быть атрибут id. <sgmltag>anchor</sgmltag> В этом параграфе имеется встроенная ссылка на него. Она не будет показываться в документе.]]> Когда вы хотите предоставить пользователю ссылку, которую можно активировать (чаще всего щелчком) для перехода к разделу документа, имеющему атрибут id, вы можете использовать xref либо link. Оба этих элемента имеют атрибут linkend. Значением этого атрибута должно быть значение, которое вы использовали в атрибуте id (не имеет значения, появлялось ли это значение раньше; это работает как для ранее объявленных, так и объявляемых позже ссылок). Если вы используете xref, то вы не управляете текстом ссылки. Он будет для вас сгенерирован. Использование <sgmltag>xref</sgmltag> Положим, что этот фрагмент появился где-то в документе, который включает пример с id; Дополнительная информация может быть найдена в . Более конкретная информация находится в .]]> Текст ссылки будет сгенерирован автоматически, и будет выглядеть как (выделенный текст, который будет ссылкой);
Дополнительная информация может быть найдена в Глава Один. Более конкретная информация находится в разделе с названием Подраздел 1.
Заметьте, что текст ссылки берется из названия раздела или номера главы. Это значит, что вы не можете использовать xref для отсылки на атрибут id элемента anchor. Элемент anchor не имеет содержимого, так что xref не сможет сгенерировать текст для ссылки. Если вы хотите управлять текстом ссылки, то используйте link. В этот элемент помещается содержимое, которое будет использоваться для ссылки. Использование <sgmltag>link</sgmltag> Предположим, что этот фрагмент появляется где-то в документе, который включает в себя пример с id. Дополнительная информация может быть найдена в первой главе. Более конкретная информация находится в этом разделе.]]> Это приведет к генерации следующего (выделенного текста, который отмечает текст, являющийся ссылкой);
Дополнительная информация может быть найдена в первой главе. Более конкретная информация находится в этом разделе.
Последний пример плох. Никогда не используйте слова типа этот или здесь в качестве источника ссылки. Читателю потребуется изучать окружающий текст, чтобы выяснить, куда собственно привела ссылка. Вы можете использовать link для включения ссылки на id в элементе anchor, так как содержимое link задает текст, используемый для ссылки.
Ссылки на документы в WWW Отсылки на внешние документы гораздо проще, если вы знаете URL документа, на который хотите сослаться. Используйте ulink. Атрибут url представляет собой URL страницы, на которую указывает ссылка, а содержимым элемента является текст, выдаваемый пользователю для активации ссылки. <sgmltag>ulink</sgmltag> Использование: Конечно, вы можете прекратить чтение этого документа и перейти на домашнюю страницу FreeBSD.]]> Выводимый результат: Конечно, вы можете прекратить чтение этого документа и перейти на домашнюю страницу FreeBSD.