Языком разметки данных является. Языки разметки документов. Стили в html-документе

markup languages) - это набор специальных инструкций, называемых тэгами, предназначенных для формирования в документах какой-либо структуры и определения отношений между различными элементами этой структуры. Другими словами разметка показывает, какая часть документа является заголовком, какая подзаголовком, что следует считать именем автора и т. д. Разметка разделяется на стилистическую разметку, структурную и семантическую. Стилистическая разметка

Стилистическая разметка отвечает за внешний вид документа. Например, в HTML к данному типу разметки относятся такие теги как (курсив), (жирный), (подчеркивание), (перечеркнутый текст) и т.д.

Структурная разметка

Структурная разметка задает структуру документа. В HTML за данный тип разметки отвечают, например, теги (параграф), (заглавие), (секция) и т.д.

Семантическая разметка

Семантическая разметка информирует о содержании данных. Примерами данного типа разметки являются теги (имя документа), (код, используется для листингов кода), (переменная), (адрес автора).

Основными понятиями любого языка разметки являются теги, элементы и атрибуты.

Тэги и элементы.

Значения понятий тэги и элементы часто путают.

Тэги, или, как их еще называют, управляющие дескрипторы, служат в качестве инструкций для программы, производящей показ содержимого документа на стороне клиента как поступить с содержимым тега. Для того чтобы выделить тег относительно основного содержимого документа используются угловые скобки: тег начинается со знака "меньше" (), внутри которых помещаются название инструкций и их параметры. Например, в языке HTML тег указывает на то, что следующий за ним текст должен быть выведен курсивом.

Элемент - это тэги в совокупности с их содержанием. Следующая конструкция является примером элемента:

Это текст выделен курсивом .

Элемент состоит из открывающего тега (в нашем примере это тег ), содержимого тега (в примере это текст "Это текст, выделен курсивом") и закрывающего тега( ), правда иногда в HTML, закрывающий тег можно опустить.

Атрибуты

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

Атрибуты состоят из пары "название" = "значение", которую можно задавать при определении элемента в начальном тэге. Слева и справа от символа равенства можно оставлять пробелы. Значение атрибута указывается в виде строки, заключенной в одинарные или двойные кавычки.

Любой тэг может иметь атрибут, если этот атрибут определен.

В случае использования атрибута элемент принимает следующую форму:

содержимое тега

Текст выравнивается по центру

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

Указан размер и цвет текста

История развития языков разметки.

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

В 1986 году ISO был утвержден универсальный стандартизированный язык разметки (Standardized Generalized Markup Language). Этот язык предназначен для создания других языков разметки, он определяет допустимый набор тэгов, их атрибуты и внутреннюю структуру документа. Таким образом имеется возможность создавать свои собственные тэги, связанные с содержанием документа. Теперь становится очевидно, что такие документы трудно интерпретировать без определения языка разметки, которое хранится в определении типа документа (DTD - Document Type Definition ). В DTD сгруппированы все правила языка в стандарте SGML . Другими словами в DTD описывается связь тегов между собой и правила их применения. Причем для каждого класса документов определяется свой набор правил, описывающих грамматику соответствующего языка разметки. Таким образом, только при помощи DTD можно проверить правильность использования тегов а, следовательно, его нужно посылать вместе с SGML-документом или включать в документ.

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

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

Язык разметки HTML гораздо более простой и удобный, чем SGML , его инструкции в первую очередь предназначены для управления процессом вывода содержимого документа на экране. Язык HTML как способ разметки технических документов был создан Тимом Бернерсом-Ли ( Tim Berners-Lee) в 1991 году специально для научного сообщества. Первоначально он был всего лишь одним из SGML -приложений.

Не смотря на то, что единственное, что умеет HTML - классифицировать части документа и обеспечивать его правильное отображение в браузере, он является самым популярным языком разметки. Это связано с тем, что HTML достаточно легок для изучения. Все, что от вас требуется, - изучить команды HTML. DTD для HTML хранится в браузере. К тому же надо заметить, что HTML спроектирован для работы на самых разных платформах. Но у него есть ряд существенных ограничений:

  • HTML имеет фиксированный набор тэгов, и данный набор нельзя расширить или изменить;
  • теги языка HTML показывают только как должны быть представлены данные, то есть внешний вид документа. HTML не несет информации о значении содержания, заключенного в тэгах, структуре документа.
  • (Standard Generalized Markup Language), представленный в стандарте ISO 8879. Этот язык принят в качестве основного языка оформления технической документации, в том числе интерактивных электронных технических руководств на создаваемые изделия в CALS-технологиях .

    В языке SGML определяется структура документов в виде последовательности объектов данных. Объекты данных, представляющие части документа, могут храниться в различных файлах. Стандарт SGML устанавливает такие множества символов и правил для представления информации, которые позволяют различным системам правильно распознавать и идентифицировать эту информацию. Названные множества описывают в отдельной части документа, называемой декларацией DTD (Document Type Decfinition), которую передают вместе с основным SGML-документом. В DTD указывают соответствие символов и их кодов, максимальные длины используемых идентификаторов, способ представления ограничителей для тегов, другие возможные соглашения, синтаксис DTD, а также тип и версию документа. Следовательно, SGML можно назвать метаязыком для семейства конкретных языков разметки. В частности, подмножествами SGML можно считать языки разметки XML и HTML .

    Техническое описание в виде SGML-документа включает:

    • основной файл с техническим руководством, размеченный SGML-тегами;
    • описание сущностей , если документ относится к группе, в которой используются одни и те же сущности и подразумевается их известность;
    • словарь для пояснения SGML-тегов;

    Однако язык SGML сложен для освоения и применения. Поэтому для широкого применения разметки в документах, представляемых в WWW -технологиях, в 1991 г. на базе SGML был разработан упрощенный язык HTML (HyperText Markup Language), а в 1996 г. язык XML (eXtensible Markup Language), который становится в сочетании с HTML основным языком представления документов в различных приложениях.

    Язык HTML разработан с целью широкого применения разметки в документах, представляемых в WWW-технологиях.

    Описание на языке HTML представляет собой текст в формате ASCII и последовательность включенных в него команд (управляющих кодов), называемых также дескрипторами или тегами. Этот текст называют HTML-документом, или HTML-страницей, или после размещения на Web-сервере — Web-страницей . Теги расставляются в нужных местах исходного текста, они определяют шрифты, переносы, появление графических изображений, ссылки и т.п. При использовании WWW-редакторов вставка команд осуществляется простым нажатием соответствующих клавиш.

    Язык XML, как и HTML, считается подмножеством языка SGML. В настоящее время язык XML претендует на роль основного языка представления документов в информационных технологиях, его можно рассматривать как метаязык, служащий основой для создания частных языков разметки в различных приложениях. При этом XML более удобен, чем SGML, что обеспечивается устранением в XML некоторых второстепенных особенностей SGML. Описания на XML легче воспринимаются, приспособлены для использования в современных браузерах при сохранении основных возможностей SGML.

    Для конкретных приложений создаются свои варианты XML, называемые XML-словарями или XML-приложениями. Так, для описания текстов со специфической математической символикой разработано XML-приложение OSD (Open Software Description). Для CALS интерес представляет вариант Product Definition eXchange (PDX), посвященный обмену данными. Известны словари для химии (CML — Chemical Markup Language), биологии (BSML — Bioinformatic Sequence Markup Language) и др.

    Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

    НTML - это язык гипертекстовой разметки.

    Язык используется для организации веб-страниц. Проведем аналогию. Вы покупаете газету. В ней напечатаны несколько статей. У каждой статьи есть название, в ней есть фотографии. А текст набирается несколькими колонками. Это - структура газетной страницы.

    На сайте все происходит так же. Чтобы сделать правильную структуру статьи - контента - нужно использовать язык разметки текста.

    Для чего нужен HTML

    Язык HTML нужен, чтобы сообщить браузеру, как нужно отобразить страницу на экране.

    Язык распространен повсеместно. Это универсальное средство для оформления контента на странице. Его использование возможно в любой браузере. Если писать код на языке программирования - нужно знать какие-то особенности, операторы, типы данных и так далее.

    HTML состоит из набора тегов - команд, и атрибутов - свойств. Их несложно запомнить, и всегда можно найти справочные материалы.

    Что такое HTML-код

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

    В языке есть три инструмента.

    Теги бывают двух видов - парные и одиночные.

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

    Структура HTML-кода на странице

    Мы говорили, что структура у любого html-документа всегда одна и та же. Далее перечислим обязательные элементы.

  • ! - указывает, что в документе используется HTML.
  • ... - в этот тег помещается весь код страницы. Все, что в него не помещено, не распознается браузером и не отображается.
  • ... - парный тег, в него помещается технрическая информация, например, о кодировке документа.
  • ... - это заголовок страницы, он помещается внутри раздела head. У любой страницы должен быть свое уникальное название.
  • ... - это служебная информация. Она подключает к странице отдельные стили - css и т. д. Не отображается пользователю.
  • ... - тело страницы. Вся основная информация заключается в этот тег.
  • ... - гиперссылки.
  • - изображения.
  • ... - жирный текст.
  • ... - курсив.
  • Элементов внутри body может быть неограниченное количество.

    Например, вот так выглядит часть кода страницы одной из записей нашего блога.

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

    В 1969 году три научных сотрудника компании IBM разработали GML, язык форматирования для публикации документов. GML - это не только аббревиатура от Generalized Markup Language, но также инициалы его создателей - Чарлз Гольдфарб, Эдвард Мошер и Реймонд Лорье.

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

    Основные компоненты GML были реализованы в издательских системах для мэйнфреймов, и сам язык пользуется большой популярностью в отрасли. GML применяется в IBM, причем с его помощью создается более 90% документов компании.

    За счет расширения GML такими концепциями, как короткие сноски, обработка ссылок и параллельные типы документов, был создан язык Standard Generalized Markup Language. SGML стал активно применяться в издательском бизнесе, к тому же был принят к использованию в Государственном издательстве США и в 1986 году получил статус международного стандарта.

    Тем не менее SGML был малоизвестен до 1990 года, когда Тим Бернерc-Ли, автор идеи World Wide Web, создал Hypertext Markup Language, который является подмножеством SGML. Вскоре после этого все виды документов и данных в начале и в конце каждого текстового элемента стали содержать тэги в стиле и. В конце 1990-х годов появился Extensible Markup Language (XML)... и вселенная ИТ необратимо изменилась.

    Фактически создается впечатление, что не проходит и дня без известия о создании или описании нового языка разметки. Действительно, Computerworld в разделе Quick Study опубликовал уже 10 статей, посвященных описанию различных языков разметок, и то лишь самых основных. Поиск в Google выражения markup language дает ссылки на более чем 6 млн. страниц. Ниже предлагается краткий «путеводитель» по современному «пространству языков разметки». Безусловно, он не претендует на полноту, но дает представление о гибкости и возможностях этой концепции, а также о том, как они используются. Большинство этих языков представляют собой расширения XML или определения типов документов, предназначенных для конкретной сферы деятельности, хотя некоторые из них достаточно сложны.

    Языки
    • Business Process Execution Language (BPEL) предназначен для выполнения серий транзакций на базе Web и/или описания интерфейсов, которые необходимы для выполнения Web-транзакций. Он используется для моделирования бизнес-процессов с помощью спецификаций на транзакции и компенсационные транзакции, потоков данных, сообщений и запланированных событий, бизнес-правил, ролей защиты и обработки исключений.
    • Cell Markup Language (CellML) служит для хранения и обмена компьютерными математическими моделями, позволяя ученым обмениваться моделями даже в том случае, если они используют разное программное обеспечение для их создания. Этот язык также позволяет им повторно использовать компоненты в одной модели при разработке другой, тем самым ускоряя процесс. CellML включает в себя математические и метаданные за счет использования существующих языков, в том числе MathML. www.cellml.org
    • Chemical Markup Language (CML) - это новый подход к управлению молекулярной информацией, который использует недавно разработанные Internet-инструменты, такие как XML и Java. Данный язык, созданный строго на базе SGML, способен поддерживать крайне сложные информационные структуры и благодаря этому действовать как механизм обмена или средство архивирования. Он легко взаимодействует с современными архитектурами баз данных, в частности с реляционными или объектно-ориентированными. Самое важное, что уже создано огромное количество программного обеспечения XML общего назначения, предназначенного для его обработки и преобразования. www.xml-cml.org
    • DARPA Agent Markup Language (XML) имеет ограниченные возможности для описания взаимосвязей между объектами. DAML расширяет XML за счет использования онтологий - четко определенных формальных спецификаций, описывающих, как представить объекты, концепции и другие элементы в конкретной предметной области, а также взаимосвязи между ними. www.daml.org/about.html
    • Dynamic Markup Language (DML) - это язык, созданный на основе XML и предназначенный специально для объектных графических структур и разработки пользовательских интерфейсов. Как и HTML, этот язык включает в себя расширения, которые поддерживают вычисления, передачу аргументов и хранение переменных. www.rocklyte.com/dml
    • Directory Services Markup Language (DSML) определяет содержимое и структуру каталога, поддерживает его на распределенных каталогах. DSML дает разработчикам простой и удобный способ для реализации XML-приложений в Internet. Такая поддержка крайне важна для приложений электронной коммерции.
    • Financial Products Markup Language (FPML) - это стандарт на обмен бизнес-информацией при электронных торгах и обработке производных финансовых инструментов. Он устанавливает протокол обмена информацией в производных и структурированных продуктах и работы с ними. www.fpml.org/index.html
    • Hypertext Markup Language (HTML) , основа Web, создан на базе версии GML, которая ранее использовалась в CERN. Главное его достоинство заключалось в том, что он впервые позволил создавать простые гипертекстовые ссылки между документами. www.w3.org/MarkUp
    • Human Markup Language (HML) - это проект по созданию платформы для моделирования всего процесса человеческого общения, в том числе таких его сфер, как мышление, эмоции, поведение, мимика лица, с помощью графического или текстового представления. www.humanmarkup.org
    • Materials Markup Language (MatML) был разработан для обмена информацией о веществах. www.matml.org
    • Multimedia Retrieval Markup Language (MRML) унифицирует доступ к компонентам программного обеспечения, служащим для извлечения мультимедиа-информации и управления с целью расширения их возможностей. www.mrml.net
    • Physical Markup Language (PML) - это простой язык общего назначения для описания физических объектов и сред для промышленных, коммерческих и потребительских приложений. PML поддерживает такую модульность и гибкость, что его можно использовать при мониторинге и управлении физической средой. К числу приложений относится контроль состояния склада, автоматические транзакции, управление цепочкой поставки, машинный контроль и взаимодействие между объектами. http://web.mit.edu/mecheng/pml/index.htm
    • Security Assertion Markup Language (SAML) - это оболочка на базе XML, используемая для передачи информации об аутентификации пользователей, их правах и атрибутах. Он позволяет компаниям сообщать сведения относительно идентичности, атрибутов и прав субъекта (как правило, человека) иным субъектам, таким как партнерская компания или другое корпоративное приложение. www.oasis-open.org/committees/security/faq.php
    • Services Provisioning Markup Language (SPM) - это оболочка, служащая для обмена между приложениями и организациями информацией о пользователях, ресурсах и предоставлении услуг.
    • Speech Synthesis Markup Language (SSML) помогает при генерации искусственной речи в программном обеспечении Web и в других приложениях, предоставляя стандартный способ управления речевыми характеристиками, такими как произношение, сила, высота и скорость речи, на различных платформах. www.w3.org/TR/speech-synthesis
    • User Interface Markup Language (UIML) позволяет создавать пользовательские интерфейсы для любого устройства, языка и операционной системы на устройстве. Он описывает внешний вид интерфейса, взаимодействие пользователя с интерфейсом и то, каким образом интерфейс связан с логикой приложения. www.uiml.org
    • Voice Extensible Markup Language (VoiceXML). Приложения, управляемые голосовыми командами, становятся все популярнее, и VoiceXML описывает общие возможности, позволяя тем самым гарантировать переносимость между платформами. www.voicexml.org/
    • Wireless Markup Language (WML) описывает содержимое и форматы для представления данных на устройствах с ограниченной полосой пропускания, таких как сотовые телефоны и пейджеры. Вместо того чтобы пытаться передать все содержимое Web-страницы, которое можно увидеть на ПК, WML представляет главным образом текстовую информацию, оптимизированную для мобильных устройств.
    • Extensible Access Control Markup Language (XACML) - это схема на базе XML, которая была предназначена для создания правил и автоматизации их использования для контроля доступа к различным устройствам и приложениям в сети.
    • Extensible Markup Language (XML) объединяет масштабируемость SGML с простой и широкой поддержкой HTML. Представляя в основе своей подмножество SGML, он проще и легче в реализации, поддерживает большинство возможностей SGML. XML одобрен в качестве стандарта консорциумом World Wide Web Consortium в 1998 году.
    ML - не значит «язык разметки»

    Далеко не каждый язык или акроним, оканчивающийся на ML, является языком разметки. Вот наиболее известные исключения.

    Первоначально символы ML использовались как сокращение слова «метаязык», то есть язык программирования общего назначения, предназначенный для крупных проектов. Сейчас используется два основных диалекта этого языка. Это Standard ML (SML; см. www.dcs.ed.ac.uk/home/stg/NOTES ), математически определенная версия языка, сформулированная частично разработчиками исходного языка, и Objective Caml (OCaml; см http://caml.inria.fr/ ), производная версия оригинального ML, к которой по желанию разработчика добавляются возможности, без их определения в стандарте. К другим известным диалектам относятся Extended ML (EML; см http://homepages.inf.ed.ac.uk/dts/eml ) и Alice ML (www.ps.uni-sb.de/alice ).

    ML и его варианты - это функциональные языки, и они не поддерживают никакой записи в память. Они трудны для программирования, но созданные с их помощью программы значительно лучше подходят для формального анализа и подтверждения корректности.

    • Unified Modeling Language (UML) - это стандартная нотация для моделирования объектов реального мира как части разработки методологии объектно-ориентированного проектирования. UML применяется для моделирования структуры приложений, их поведения и архитектуры, а также бизнес-процессов и структур данных. Этот язык поддерживают производители многих систем автоматизированного проектирования. UML был создан на основе методологий, которые также описывают процессы при разработке и использовании модели. www.uml.org
    • YAML Ain"t Markup Language (YAML) - это международный проект, посвященный созданию языка последовательного упорядочения данных, который, с одной стороны, понятен человеку, а с другой - поддерживает серьезные вычислительные возможности.

    В системах обработки текстов в документ включается дополнительная информация, называемая разметкой и выполняю­щая следующие функции:

    Выделение логических элементов данного документа;

    Задание функций обработки выделенных элементов.

    В обычных текстовых процессорах существуют встроенные команды включения/выключения шрифтов и др., аналогичные командам управления размещением информации на экране или при печати (так называемые Escape-последовательности). Такой подход называется командной или процедурной размет­кой (табл. 2.1).

    Альтернативный способ разметки заключается в выделении части текста без указания способа обработки выделения. Затем другие команды назначают фрагментам способ обработки. Такая разметка называется описательной (дескриптивной). Она вклю­чает метки (tags, таги) начала и окончания элемента текста и указывает, как интерпретировать данный фрагмент.

    Изменяя набор процедур, соответствующий описательной разметке, можно изменить внешнее представление одного и того же документа. Развитие идей описательной разметки привело к определению разметки как формального языка. Это позволяет проверить правильность разметки и минимизировать ее объем за счет подстановки умолчаний.

    Основным достоинством описательной разметки является ее гибкость, поскольку фрагменты текста отмечены как «чем они являются» (а не «как они должны быть отображены»), причем в будущем может быть написано программное обеспечение для та­кой обработки этих фрагментов, которая даже не предусматри­валась разработчиками языков. Например, гиперссылки HTML, первоначально предназначенные для навигации пользователями по совокупности связей в сети, в дальнейшем стали использо­ваться также механизмами поиска и индексирования в сети, для оценки популярности ресурсов и т. д.

    Описательная разметка также облегчает задачу переформати­рования документа при необходимости, поскольку описание формата не связано с содержанием. Например, курсив может ис­пользоваться либо для выделения текста, либо отметки иностранных (или жаргонных) слов, либо для других целей.

    Однако если слова просто выделены (дескриптивно или процедурно) как курсив в этой двусмысленности нельзя полностью разобраться. Если же эти два случая были по-разному размечены в самом начале, каждый может быть переформатирован независимо от дру­гих. Родовидовая (generic markup) разметка - другое наименова­ние для описательной разметки.

    Практически элементы различных классов разметок обычно сосуществуют в любой конкретной системе. Например, HTML содержит как элементы разметки, которые являются процедурны­ми (b для полужирного шрифта), так и другие, которые являются описательными («blockquote», или «href», - признак). HTML также включает элемент pre, который ограничивает область тек­ста, которая будет расположена точно так, как напечатано.



    Самые современные системы описательной разметки рас­сматривают документы как иерархические структуры (деревья), а также обеспечивают некоторые средства для встроенных пере­крестных ссылок. Поэтому такие документы могут трактоваться и обрабатываться как базы данных, структура которых доста­точно хорошо определена (однако, поскольку они не имеют та­ких строгих схем, как реляционные базы данных, их обычно на­зывают «слабоструктурированными базами данных»).

    С наступлением III тысячелетия возник интерес к докумен­там неиерархических структур. Например, древняя и религиозная литература обычно имеет риторическую структуру или структуру прозы (рассказ, раздел, параграф и т. д.), а также включает спра­вочную информацию (книги, главы, строфы, строки). Так как границы этих модулей часто пересекаются, они не могут быть полностью закодированы с использованием только системы раз­метки с древовидной структурой. Среди систем моделирования Документов, которые поддерживают такие структуры, - MECS, TEI Guidelines, LMNL, и CLIX.

    Термин «разметка» происходит от традиционной практики разметки рукописей перед публикацией (т. е. добавления симво­лических команд на полях и между строк в бумажной рукописи), течение многих столетий это делали работники издательства (редакторы и корректоры) которые отмечали, каким шрифтом, стилем и кеглем должны быть набраны фрагменты текста, а затем передавали рукопись наборщикам, которые вручную осуществляли набор текста с учетом символов разметки.



    В настоящее время существует множество языков разметки (табл. 2.2), среди наиболее широко известных - DocBook,

    MathML, SVG, Open eBook, XBRL и др. В основном они пред­назначены для представления различных текстовых документов но специализированные языки могут использоваться во многих других областях. Безусловно, наиболее хорошо известен язык разметки HTML (язык разметки гипертекста), одна из основ WWW (Всемирной паутины).

    Рассмотрим некоторые из систем разметки.

    RUNOFF была первой системой форматирования текстов, которая получила значительную известность. Она была разрабо­тана в 1964 г. для операционной системы CTSS Джеромом X. Салтзером (Jerome H. Saltzer) с использования ассемблера MAD.

    Продукт фактически состоял из пары программ:

    TYPSET, который был в основном редактором докумен­тов;

    RUNOFF - процессор вывода.

    RUNOFF осуществлял поддержку разбиения на страницы и размещения заголовков, а также выравнивания текста. RUNOFF - прямой предшественник программы форматирова­ния документов в ОС Multics, которая в свою очередь была предком программ форматирования для ОС Unix (roff и nroff), и их потомков. Он был также предком FORMAT для OS/360 IBM, и конечно косвенно для всех последующих программ и систем обработки текстов. Название, как предполагается, исходило из фразы, популярной в то время - I"ll run off a copy.

    ТеХ - аббревиатура от τεχνη (TEXNH - techne), греческий термин для «искусства, ремесла, умения», источник для слова «технический». По английски произносится «тек» (как в слове technology).

    ТеХ - наборная система, созданная Дональдом Нутом (Donald Knuth). Вместе с языком METAFONT для описания шрифта и Computer Modern typeface (Компьютерного Современ­ного шрифта) он был спроектирован для двух основных целей - во-первых, представить каждому пользователю возможность создавать высококачественные книги в пределах разумных трудозатрат во-вторых, чтобы такая система давала идентичные результаты на любых компьютерах как в настоящее время, так и в будущем. ТеХ - бесплатное программное обеспечение, популярное в академическом сообществе, особенно среди математиков, физиков информатиков, экономистов, и в технических сообществах. Оно в значительной степени конкурирует с другим популярным форматизатором ТеХ - Unix troff, и во многих инсталляциях Unix они используются совместно.

    Признано, что ТеХ является наилучшим путем создания и распечатки сложных математических формул, но теперь оно так­же используется для многих других наборных задач, особенно в форме LaTeX и других программных средств форматирования.

    Команды ТеХ обычно начинаются с обратной косой черты и группируются в блоки изогнутыми фигурными скобками. Од­нако почти все синтаксические свойства ТеХ могут быть изме­нены при исполнении программы, что затрудняет обработку входа ТеХ другими программами. ТеХ - язык на основе мак­росов и лексем и многие команды, включая наиболее часто оп­ределяемые пользователем, расширяются при исполнении, пока не останутся только нерасширяемые лексемы, которые и вы­полняются.

    Базовый вариант ТеХ включает приблизительно 300 команд, названных примитивами. Однако эти команды низкого уровня редко используются непосредственно пользователями, большин­ство функциональных возможностей обеспечивается файлами формата (копии памяти ТеХ после того, как были загружены большие наборы макрокоманд). Первоначальный формат Нута (по умолчанию), который добавляет приблизительно 600 ко­манд, называется Plain ТеХ. Более широко используемым фор­матом является LaTeX, первоначально разработанный Лесли Лампортом, который включает стили документа для книг, пи­сем, слайдов и т. д, а также добавляет поддержку ссылок и авто­матической нумерации формул и разделов.

    Другой широко используемый формат - AMS-TeX, разрабо­тан Американским математическим обществом (American Mathe­matical Society) и предусматривает дополнительно много дружественных команд, которые могут быть изменены издательствами, чтобы обеспечить их фирменный стиль. Большинство особенностей AMS-TeX может применяться в LaTeX при использовании AMS «packages» (что именуется как AMS-LaTeX).

    Чтобы написать программу печати строки «Programming» в Plain TeX, необходимо создать файл myfile.tex со следующим содержанием:

    \bye % end of the file; not shown in the final output.

    По умолчанию все, что следует за знаком процента на стро­ке, - комментарий, игнорируемый интерпретатором ТеХ. Если выполнить ТеХ на этом файле (например, набирая tex myfile.tex в режиме командной строки), то будет создан вы­ходной файл с именем myfile.dvi, который представляет со­держимое страницы в независимом от устройств формате (Device Independent Format - DVI). Результаты могут или быть напечатаны непосредственно из средства просмотра интерактив­ной цифровой видеосистемы или преобразованы в более общий формат, типа PostScript, используя программу dvips. Такие ва­рианты ТеХ, как PDFTeX, непосредственно производят файлы формата PDF.

    Рассмотрим форматирование математической формулы. На­пример, чтобы написать известное выражение для корня квад­ратного уравнения, можно ввести:

    The quadratic formula is $-b \pm \sqrt{b^2 - 4ac} \over 2a$ \bye

    Это приведет к выводу следующего текста:

    Несколько систем обработки документов основаны на ТеХ, особенно jadeTeX, который использует ТеХ как внутренний для того, чтобы печатать с выхода James Clark"s DSSSL Engine, и Texinfo, обработчик документации системы GNU. ТеХ был офи­циальным наборным пакетом для операционной системы GNU с 1984 г.

    Известны многочисленные расширения и сопутствующие программы для ТеХ, среди них BibTeX для библиографий (рас­пространяется совместно с LaTeX), PDFTeX, который обходит формат DVI и осуществляет прямой вывод в Adobe Systems" Portable Document Format (pdf), и Omega, которая позволяет ТеХ использовать набор символов Unicode. Большинство расшире­ний ТеХ может быть получено бесплатно во Всесторонней Сети Архивов ТеХ (Comprehensive ТеХ Archive Network - CTAN). ТеXmacs - редактор научной литературы на основе ТеХ, поддерживает режим полного соответствия (WYSIWYG) и предназначен чтобы быть совместимым с ТеХ и Emacs.

    Во многих технических областях, таких как прикладная ин­форматика, математика и физика, ТеХ стал фактическим стан­дартом. Много тысяч книг были изданы, используя ТеХ, такими издательствами, как Addison-Wesley, Cambridge University Press, Elsevier, Oxford University Press or Springer. Многочисленные жур­налы в этих областях произведены с использованием ТеХ ил LaTeX, причем авторам разрешено представлять рукописи в фор­мате ТеХ.

    Начиная с версии 3 ТеХ использовал специфическую систему нумерации версий, где обновления обозначались с помощью до­полнительной цифры к десятичному числу так, чтобы номер вер­сии асимптотически приближался к л. Это - отражение того факта, что ТеХ является очень устойчивым и ожидаются только незначительные обновления. Текущая версия ТеХ - 3.141592; это было последнее обновление в декабре 2002.