В этом документе описаны основные возможности программного продукта TEX Live — дистрибутива TEXа и других программ для GNU/Линукса и других Unixов, Mac OS X и (32-битовых) Windows. (Внимание: этот продукт не совместим со старыми Макинтошами или MS-DOS).
В TEX Live включены программы TEX, LaTeX2e, Metafont, MetaPost, BibTeX и многие другие; обширная коллекция макросов, шрифтов и документации; а также поддержка вёрстки на многих языках мира. Он является частью ещё б´ольшей коллекции TEX Collection (кратко описанной ниже в разделе 2, стр. 7). И TEX Live, и TEX Collection поддерживаются группами пользователей TEXa.
Более новые версии пакетов, включённых в дистрибутив, можно найти в архиве CTAN, http://www.ctan.org.
Краткий список основных изменений в этом издании TEX Live можно найти в разделе 10, стр. 70.
TEX Live можно использовать тремя способами:
Всё это подробно описано в разделе руководства по установке, относящемся к вашей операционной системе. Вкратце:
Сообщество пользователей TEXа активно и дружелюбно, и практически на каждый серьёзный вопрос найдётся ответ. Однако эта поддержка неформальна, выполняется добровольцами, и поэтому очень важно, чтобы вы сами попробовали найти ответ перед тем, как задавать вопрос. (Если вы предпочитаете коммерческую поддержку, возможно вам ст´оит вместо TEX Live купить одну из коммерческих версий TEXа, см. список по адресу http://tug.org/interest.html#vendors for a list).
Вот список источников поддержки, приблизительно в том порядке, в котором мы рекомендуем к ним обращаться:
С другой стороны, вы сами тоже можете помочь тем, у кого есть вопросы. И comp.text.tex, и texhax, и fido7.ru.tex открыты для всех, поэтому вы тоже можете присоединиться, читать и помогать другим. Добро пожаловать в сообщество пользователей системы TEX!
Этот раздел описывает структуру и содержание TEX Collection и его составной части TEX Live.
Ограничения на объём CD-ROM заставили нас разделить TEX Live на несколько дистрибутивов:
Лицензии на использование CTAN, protext, MacTEX и texmf-extra отличаются от лицензии TEX Live, поэтому будьте внимательны при распространении или модификации программ, входящих в эти дистрибутивы.
ProTEXt находится и на live DVD, и на отдельном CD (для тех, кто не может пользоваться DVD).
Вы можете определить, какой дистрибутив перед вами, открыв файл 00type.TL в корневой директории. В этом файле находится также дата выпуска TEX Live.
Естественно, каждая группа пользователей TEXа сама выбирает, что ей распространять.
Вот краткое описание корневых директорий в дистрибутиве TEX Live. На live DVD вся иерархия TEX Live помещена в поддиректорию texliveYYYY, где YYYY — номер года, а не в корень диска.
bin | Программы системы TEX, сгруппированные по платформам |
source | Исходный код всех программ, включая дистрибутивы Web2C TEX и Metafont. Они хранятся в сжатом архиве (tar-bzip2). |
support | Разные вспомогательные пакеты и программы. Они не устанавливаются по умолчанию. Сюда относятся разнообразные редакторы и оболочки для TEXа. |
texmf | Дерево для программ, их вспомогательных файлов и документации. Не включает форматов и пакетов TEXа (это дерево соответствует TEXMFMAIN в следующем разделе). |
texmf-dist | Основное дерево форматов и пакетов (это дерево соответствует TEXMFDIST в следующем разделе). |
texmf-doc | Дерево самостоятельной документации, не относящейся к отдельным пакетам и программам, сгруппированное по языкам. |
texmf-var | Дерево автоматически создаваемых файлов (это дерево соответствует TEXMFSYSVAR в следующем разделе). |
xemtex | Дерево вспомогательных программы для Windows. Юниксовские версии этих программ обычно входят в стандартную поставку, или же легко устанавливаются отдельно. |
Кроме этих директорий, в корневой директории находятся скрипты установки и файлы README (на разных языках).
Директория texmf-doc содержит документацию и только документацию, но она не содержит всю документацию. Документация к отдельным программам (руководства, man, info) находится в директории texmf/doc, поскольку сами программы находятся в директории texmf. Аналогично документация для макропакетов и форматов находится в директории texmf-dist/doc. Для поиска документации можно воспользоваться программами texdoc или texdoctk. Можно также воспользоваться ссылками в файле doc.html.
В этом разделе описаны все переменные, задающие положение деревьев texmf и их значения по умолчанию. Команда texconfig conf показывает текущие значения этих переменных, так что вы можете легко проверить, где эти директории находятся в вашей системе.
Дерево, где находятся основные части системы, такие, как вспомогательные скрипты (например, web2c/mktexdir), файлы со значениями текстовых констант и другие.
Дерево с основным набором макропакетов, шрифтов и т.д. в первоначальной конфигурации.
Дерево, которое может быть использовано администраторами системы для дополнительных пакетов, шрифтов и т.д., или установки обновлений.
Дерево, которое пользователи могут использовать для установки собственных пакетов, шрифтов и т.д., или для обновлённых версий системных пакетов. Эта переменная зависит по умолчанию от переменной $HOME, своей для каждого пользователя.
Это дерево используется утилитами texconfig, updmap и fmtutil программы teTEX для хранения модифицированных файлов конфигурации. По умолчанию находится в директории $HOME.
Это дерево используется утилитами texconfig-sys, updmap-sys и fmtutil-sys программы teTEX для хранения модифицированных файлов конфигурации, общих для всех пользователей.
Это дерево используется утилитами texconfig, updmap и fmtutil программы teTEX для хранения создаваемых автоматически файлов: форматов, карт шрифтов. По умолчанию находится в директории $HOME.
Это дерево используется утилитами texconfig-sys, updmap-sys и fmtutil-sys программы teTEX для хранения создаваемых автоматически файлов: форматов, карт шрифтов, — общих для всех пользователей.
Более полное обсуждение утилиты texconfig и родственных ей программ находится в разделе 4.1, стр. 29.
В состав TEX Live входит несколько расширений TEXа:
Вот несколько других часто используемых программ в дистрибутиве TEX Live:
поддержка библиографий.
поддержка алфавитных указателей.
преобразование DVI в PostScript.
программа для просмотра DVI для X Window System.
драйвер для лазерных принтеров семейства HP LaserJet.
преобразование DVI в текст и обратно.
перестановка страниц в файлах DVI.
преобразование DVI в PDF, альтернатива pdfTEXу, упомянутому выше. Пакеты ps4pdf и pdftricks предлагают дополнительные возможности.
утилиты для формата PostScript.
проверка синтаксиса LATEXа.
процессор для ConTEXtа и PDF.
конвертер из TEXа в HTML.
Как объясняется в разделе 1.1, стр. 4, TEX Live можно использовать тремя способами:
В следующих разделах подробно описывается каждый из этих способов для систем типа Unix.
Внимание: CD и DVD TEX Collection изготовлены в формате ISO 9660 (High Sierra), включая расширения Rock Ridge (и Joliet для Windows). Поэтому для того, чтобы использовать TEX Collection, ваша система должна поддерживать расширения Rock Ridge. Пожалуйста, посмотрите документацию к команде mount для вашей системы и выясните, как это делается. Если у вас несколько машин в локальной сети, возможно, вам будет проще смонтировать CD на машине, которая поддерживает Rock Ridge, и читать с остальных машин по сети. Современные системы должны читать диски без проблем. Если у вас возникли трудности, сообщите нам. Дальнейший текст предполагает, что вам удалось смонтировать диск на машине, которая поддерживает Rock Ridge.
|
Вы можете использовать TEX непосредственно с live DVD, не устанавливая его на ваш компьютер. (Собственно, отсюда название «TEX Live ».) Однако невозможно запустить TEX с других дисков коллекции (см. раздел 2.1, стр. 7). Сначала нам надо смонтировать CD или DVD с расширениями Rock Ridge. Как именно это делается, зависит от вашей системы; команды ниже работают для Линукса, хотя название устройства (/dev/cdrom) может быть другим. (Все наши примеры используют > в качестве системного приглашения; команды, набираемые пользователем, подчёркнуты.):
Теперь нужно перейти в смонтированную директорию:
В Mac OS X нужная директория обычно находится в директории /Volumes, и диск монтируется автоматически. Выполните скрипт установки install-tl.sh:
После разнообразных стартовых сообщений и списка опций главного меню, установочный скрипт попросит вас ввести команду. Сделайте это, напечатав нужную букву и нажав RETURN; не печатайте угловых скобок. Можно печатать заглавную или строчную букву; в примерах ниже приводятся строчные буквы.
Чтобы работать прямо с дистрибутива, первой командой должна быть d, а затем подкоманда 1, чтобы установить директории. Даже в этом случае мы должны выбрать директорию на локальном диске, чтобы класть туда файлы, которые TEX генерирует сам, например, шрифты и форматы, а также изменённые конфигурационные файлы, если в них появится необходимость.
В этом примере мы будем использовать /opt/texlive2007. Полезно использовать номер года в названии директории, поскольку файлы, созданные разными версиями TEX Live, не всегда совместимы. (Если значение по умолчанию /usr/local/texlive/2007 вам подходит, вы можете пропустить этот шаг.)
Мы снова в главном меню. Следующая и последняя команда будет r, чтобы сконфигурировать систему для работы с дистрибутива, не устанавливая файлов на диск:
И, как показано выше, мы опять в системном шелле.
Теперь мы должны изменить две переменные окружения: PATH, в соответствии с вашей архитектурой (так что вы сможете запускать программы), и TEXMFSYSVAR, в соответствии с указанным выше значением. См. список названий архитектуры для различных систем в таблице 1.
После завершения основной установки и установления переменных окружения, следует запустить texconfig или texconfig-sys, чтобы приспособить вашу систему для ваших нужд. Это объясняется в разделе 4.1 на стр. 29.
|
Синтаксис задания переменных окружения и файл, куда следует поместить соответствующие команды, зависят от вашего шелла. Если вы используете шелл типа Bourne (sh, bash, ksh и т.п.), добавьте к вашему $HOME/.profile следующее:
Для шеллов типа C shell (csh, tcsh), добавьте к вашему $HOME/.cshrc следующее:
Теперь выйдите из системы, войдите в неё опять и проверьте, что всё работает (см. раздел 4.2, стр. 30).
Если у вас что-то не получается, попробуйте спросить совета у ближайших гуру; например, как монтировать дистрибутив TEX Live, какую директорию или директории использовать, и как именно менять личные файлы инициализации в вашей системе.
Вполне возможно (собственно, как правило, именно это и делается) установить систему TEX Live на диск. Это можно сделать с диска live или диска inst (См. описание дистрибутивов в разделе 2.1, стр. 7).
Сначала нам надо смонтировать CD или DVD с расширениями Rock Ridge. Как именно это делается, зависит от вашей системы; команды ниже работают для Линукса, хотя название устройства (/dev/cdrom) может быть другим. (Все наши примеры используют > в качестве системного приглашения; команды, набираемые пользователем, подчёркнуты.):
Теперь нужно перейти в смонтированную директорию:
В Mac OS X нужная директория обычно находится в директории /Volumes, и диск монтируется автоматически. Выполните скрипт установки install-tl.sh:
После разнообразных стартовых сообщений и списка опций главного меню, установочный скрипт попросит вас ввести команду. Сделайте это, напечатав нужную букву и нажав RETURN; не печатайте угловых скобок. Можно печатать заглавную или строчную букву; в примерах ниже приводятся строчные буквы.
Список пунктов в главном меню указан в таблице 2. Порядок, в котором вы выбираете пункты, обычно неважен, кроме того, что пункт i обязательно должен быть последним. Удобно всё же выбирать их в порядке, указанном ниже.
|
Вот подробное объяснение каждой опции.
p — Платформа, на которую производится установка. Поскольку установочный скрипт автоматически определяет вашу платформу, изменять эту переменную обычно не надо. Эта опция используется в том случае, когда автоматическое определение даёт не тот результат, который вам нужен.
b — Архитектура, для которой устанавливаются программы. По умолчанию устанавливаются только программы для вашей текущей платформы. В этом меню вы можете задать установку программ и для других архитектур (или не установить их для текущей архитектуры). Это часто полезно, если вы используете одно и то же дерево TEXа для разных машин и раздаёте его по локальной сети. Список поддерживаемых архитектур приведен в таблице 1, стр. 17.
s — Основная схема установки. В этом меню вы можете выбрать основную схему установки пакетов. По умолчанию используется полная схема (full), которая устанавливает всё, но вы можете выбрать минимальную схему (basic), чтобы сэкономить место на диске, или промежуточную схему (medium). Есть также специальные схемы для пользователей Omega и XML.
c — Индивидуальные коллекции. Это меню позволяет изменить выбранный основной схемой список отдельных коллекций. Коллекции представляют собой следующий после схем уровень иерархии TEX Live. Каждая коллекция — макросы TEXа, семейства шрифтов Metafont и т.д, — состоит из нескольких пакетов. Пакеты представляют собой нижний уровень иерархии TEX Live. В этом меню заглавные и строчные буквы различаются.
l — Языковые коллекции. Смысл этого меню тот же, что и предыдущего c. Оно позволяет выбрать для установки отдельные компоненты дистрибутива. В данном случае эти компоненты соответствуют различным языкам. В этом меню заглавные и строчные буквы различаются. Вот список языковых коллекций TEX Live:
Арабский язык | Армянский язык |
Африканские языки (частично) | Британский английский |
Венгерский язык | Вьетнамский язык |
Голландский язык | Греческий язык |
Датский язык | Иврит |
Индийские языки | Испанский язык |
Итальянский язык | Кириллические языки |
Китайский, японский, корейский языки | Латынь |
Маньчжурские языки | Монгольский язык |
Немецкий язык | Норвежский язык |
Польский язык | Португальский язык |
Тибетский язык | Финский язык |
Французский язык | Хорватский язык |
Чешский и словацкий языки | Шведский язык |
Языковые коллекции обычно включают шрифты, макросы, таблицы переноса и т.д. (Например, если вы выбираете коллекцию French, устанавливается frenchle.sty.) Кроме того, установка языковой коллекции приводит к изменению конфигурационного файла language.dat, который управляет загрузкой таблиц переноса.
d — Директории для установки. Здесь можно определить три директории:
Корневая директория, где устанавливается по умолчанию всё остальное. По умолчанию это /usr/local/texlive/2007, но это часто бывает нужным изменить. Мы рекомендуем включать номер года в название директории, чтобы можно было держать отдельно разные версии TEX Live. После тестирования новой версии вы сможете сделать /usr/local/texlive ссылкой на соответствующую директорию.
Под Mac OS X, распространённые оболочки ищут TEX в /usr/local/teTeX, поэтому вам может показаться удобнее установить TEX Live тут.
Это дерево директорий, куда системные скрипты устанавливают файлы TEXа, не относящиеся к определённой версии, главным образом, шрифты. По умолчанию это /usr/local/texlive/texmf-local и не зависит от текущей версии TEX Live, потому что сюда также обычно помещают локальные пакеты или конфигурационные файлы.
Это дерево директорий, куда скрипт texconfig-sys устанавливает файлы, зависящие от конкретной версии. По умолчанию это TEXDIR/texmf-var, и обычно это значение менять не ст´оит. Есть также TEXMFSYSCONFIG, где texconfig ищет изменённые файлы конфигурации. См. более полное описание в разделе 4.1, стр. 29
o — Другие опции. В этом меню вы можете выбрать следующие опции, которые влияют на процесс установки:
Указать альтернативную директорию для генерированных шрифтов. По умолчанию шрифты кладутся в TEXMFVAR, как объясняется выше. Альтернативная директория нужна, например, если вы хотите смонтировать основное дерево только для чтения, и потому вам нужна другая директория (возможно, своя на каждой из машин в локальной сети) для динамически создаваемых шрифтов.
Создать символические ссылки для программ, документации в формате man и/или GNU Info. Например, вы можете захотеть создать ссылки на файлы man под /usr/local/man, и на файлы Info под /usr/local/info. (Разумеется, вам нужны права на запись в соответствующие директории.)
Мы не рекомендуем использовать эту опцию для установки TEX Live поверх версии системы TEX в вашем дистрибутиве. Она предназначена для того, чтобы сделать ссылки в стандартных директориях вроде /usr/local/bin, если в них нет файлов TEXа.
Не производить установку документации. Это полезно, если вы хотите сэкономить место на диске, или если вы уже установили документацию в другом месте.
Не производить установку основного дерева шрифтов и макросов. Это нужно, если вы хотите сделать одно общее дерево для разных машин и/или платформ, экспортируя его, например, при помощи NFS.
i — Выполнить установку. Когда вы зададите нужные конфигурационные опции, введите i чтобы начать установку в выбранные директории.
Последний шаг — включить зависящую от архитектуры поддиректорию TEXDIR/bin в переменную PATH, так что ваши новые программы будут найдены. Названия архитектур приведены в таблице 1, стр. 17. При необходимости вы можете просто указать директорию TEXDIR/bin.
Синтаксис соответствующих команд и стартовые файлы для этого зависят от вашего шелла. Если вы используете шелл типа Bourne (sh, bash, ksh и т.п.), добавьте к вашему $HOME/.profile следующее:
Для шеллов типа C shell (csh, tcsh), добавьте к вашему $HOME/.cshrc следующее:
После завершения основной установки и установления переменных окружения, следует запустить texconfig или texconfig-sys, чтобы приспособить вашу систему для ваших нужд. Это объясняется в разделе 4.1 на стр. 29.
Ниже приводится краткий комментированный пример полной установки, с программами только для текущей системы и с рекомендованной выше структурой директорий. Таким образом, нужна только одна команда, i для установки системы. Знаком >, как обычно, обозначается системный промпт.
Если у вас что-то не получается, попробуйте спросить совета у ближайших гуру; например, как монтировать дистрибутив TEX Live, какую директорию или директории использовать, и как именно менять личные файлы инициализации в вашей системе.
Вы можете задать директории установки в переменных окружения, а затем установить систему в неинтерактивном режиме. Вот пример:
Переменная TEXLIVE_INSTALL_PREFIX задаёт новое значение для директории установки, вместо /usr/local/texlive, оставляя всё остальное без изменений, так что в примере выше система будет установлена в /opt/texlive/2007.
Как обычно в Юниксе, команда echo i может быть вставлена в любую последовательность команд благодаря редиректам, так что можно написать сколь угодно сложный скрипт установки.
Вот список переменных окружения:
Вместо /usr/local/texlive.
Вместо $TEXLIVE_INSTALL_PREFIX/2007.
Вместо $TEXLIVE_INSTALL_PREFIX/texmf-var.
Вместо $TEXLIVE_INSTALL_TEXDIR/texmf-var.
Вместо $HOME/texmf.
Было бы интересно вместо этих переменных окружений использовать традиционный для GNU скрипт configure с соответствующими опциями. Мы будем благодарны тем, кто возьмётся написать такой скрипт!
Вы можете добавить индивидуальные пакеты или коллекции из дистрибутива в систему, отличную от TEX Live или в предыдущую версию TEX Live.
Сначала нам надо смонтировать CD или DVD с расширениями Rock Ridge. Как именно это делается, зависит от вашей системы; команды ниже работают для Линукса, хотя название устройства (/dev/cdrom) может быть другим. (Все наши примеры используют > в качестве системного приглашения; команды, набираемые пользователем, подчёркнуты.):
Теперь нужно перейти в смонтированную директорию:
В Mac OS X нужная директория обычно находится в директории /Volumes, и диск монтируется автоматически.
Запустите установочный скрипт install-pkg.sh (не install-tl.sh — этот скрипт только для полной установки):
Первый набор опций выглядит следующим образом:
Индивидуальный пакет для установки.
Коллекция пакетов для установки.
Не устанавливать документацию.
Не устанавливать исходники.
Директория, где находится дистрибутив; по умолчанию — текущая директория. Если вы выполнили инструкции выше, то это и будет нужная директория, и менять её не надо.
Директория со списками, в которых находится информация о пакетах. По умолчанию это cddir; единственная причина, по которой имеет смысл изменить это значение — если вы сами конструируете новую версию TEX Live.
То, что произойдёт дальше, зависит от следующих опций. Если вы не выберете ни одной из них, по умолчанию произойдёт установка выбранных файлов. Директория, куда следует устанавливать файлы, будет определена из текущего значения переменной окружения $TEXMFMAIN командой kpsewhich. Вы можете изменить это значение при помощи переменной TEXMFMAIN или TEXMF.
Напечатать список файлов, которые должны быть установлены, но ничего не устанавливать.
Вместо установки файлов в текущий TEX, создать архив tar.
Дополнительные опции:
После установки запустить texconfig init.
Не запускать после установки mktexlsr для обновления базы данных о файлах.
Выводить дополнительную информацию по мере работы скрипта.
Вот несколько примеров использования:
Если у вас что-то не получается, попробуйте спросить совета у ближайших гуру; например, как монтировать дистрибутив TEX Live, какую директорию или директории использовать, и как именно менять личные файлы инициализации в вашей системе.
После того, как основная установка проделана, вы должны сконфигурировать систему под ваши потребности и провести тестирование.
Ещё одно действие после установки TEX Live — установить дополнительные пакеты, шрифты или программы, не включённые в TEX Live. Идея состоит в том, чтобы установить эти дополнения под TEXMFLOCAL (если вы устанавливаете программы на диск) или под TEXMFSYSVAR (если вы работаете непосредственно с дистрибутива). См. «Директории для установки» на стр. 22.
К сожалению, конкретные шаги могут сильно отличаться, поэтому мы не пытаемся описать их тут. Вот несколько рекомендаций из сети:
В любой момент после установки вы можете использовать программу texconfig чтобы переконфигурировать систему. Она устанавливается в директории TEXDIR/bin/arch (зависящей от архитектуры) вместе с остальными программами.
Если вызвать её без аргументов, она перейдёт в полноэкранный режим, который позволяет конфигурировать систему интерактивно.
Эту программу можно вызывать также с разнообразными опциями. Ниже приводятся примеры наиболее часто используемых (система TEX Live по умолчанию настроена для печати на бумаге формата A4):
установить размер бумаги по умолчанию для команды всех программ и драйверов (pdftex, dvips, dvipdfm, xdvi). Другим вариантом является a4 (используется по умолчанию).
Обновить все базы данных файлов системы TEX.
Показать ЧаВо teTEX. (См. также основной файл ЧаВо TEX в texmf-doc/doc/english/FAQ-en).
Напечатать информацию об использовании texconfig.
Разумеется, texconfig может изменить только некоторые из многих опций и конфигурационных параметров системы TEX. Основной конфигурационный файл для программ, основанных на Web2C называется texmf.cnf. Вы можете определить, где он находится, при помощи команды ‘kpsewhich texmf.cnf’; в этом файле много комментариев, объясняющих конфигурационные параметры и их возможные значения.
Команда texconfig изменяет личные файлы данного пользователя, например, в директории $HOME/.texlive2007. Если вы устанавливаете TEX только для себя, это не очень важно. Но если вы устанавливаете TEX для многопользовательской системы, вам может понадобиться изменить конфигурационные файлы для всех пользователей. В этом случае вместо команды texconfig вам нужна команда texconfig-sys.
Аналогично, команды updmap и fmtutil теперь изменяют файлы в $HOME/.texliveYYYY. Для изменений системных конфигурационных файлов используйте updmap-sys и fmtutil-sys.
В особенности важно для многопользовательской системы создать заранее стандартные форматы при помощи fmtutil-sys --missing. Иначе у каждого пользователя будет своя копия этих форматов.
Кроме того, если у вас есть модифицированные копии файлов fmtutil.cnf или updmap.cfg, их следует поместить в директорию TEXMFSYSCONFIG.
Переменные, в которых хранятся названия этих директорий, указаны в разделе 2.3, стр. 8. Вы можете проверить значения этих переменных при помощи команды texconfig conf и изменить их путём редактирования файла texmf.cnf.
После установки TEX Live вы, скорее всего, захотите проверить работу системы, а уже затем перейти к созданию прекрасных документов и/или шрифтов.
В этом разделе описываются основные процедуры по тестированию системы. Мы приводим команды для операционных систем типа Unix; под Mac OS X и Windows вы, скорее всего, будете запускать тесты из GUI, но принцип тот же.
Более простой документ, чем sample2e, удобный, если последний слишком велик для вас.
Проверяет поля и смещение бумаги для вашего принтера.
Используется для печати таблиц шрифтов и тестов.
Печать таблиц шрифтов под plain TEX.
Самый канонический файл в формате (plain) TEX. Вы должны напечатать ‘\bye’ в ответ на приглашение * после ‘tex story.tex’.
Вы можете компилировать эти файлы точно так же, как мы компилировали выше sample2e.tex, заменив ‘latex’ на ‘tex’ для plain TEX.
Если вы новичок в TEXе, или вам нужна помощь в создании документов на языке TEX или LATEX, посетите http://tug.org/begin.html.
Рекомендуемый способ установить TEX для Mac OS X — использовать дистрибутив MacTEX, который впервые включён в TEX Live в 2005 году. Он находится на DVD live в директории mactex/. В этой директории содержится инсталлятор для полоного дистрибутива TEXа, основанный на комбинации teTEXа и TEX Live, а также много других программ и документации. Страница проекта находится тут: http://tug.org/mactex.
Если вы предпочитаете, можно установить TEX для Mac OS X и непосредственно из TEX Live при помощи скриптов install*, как описано ниже.
Для того, чтобы запустить установочные скрипты под Mac OS X, вам понадобится оболочка bash. Если вы работаете под Mac OS X 10.2 или старше, у вас уже установлена bash. Если же вы работаете под более ранней версией Mac OS X, то вашей оболочкой по умолчанию является zsh, которая не подойдёт для установки Mac OS X. Вам понадобится установить bash из Интернета или, скорее всего, обновить систему.
Если у вас установлена bash, вы можете следовать инструкциям для установки в системе Юникс из в предыдущего раздела. См. раздел 3, стр. 11; в нём упомянуты особенности Mac OS X.
Мы рады сообщить, что в системе TEX Live с 2005 года снова есть инсталлятор для Windows, tlpmgui.exe (см. раздел 2.1, стр. 7, где описаны различные варианты дистрибутива).
У программы tlpmgui такие же опции, как у инсталлятора для Юникса, только они выбираются из графической оболочки. Как и под Юниксом, эта программа позволяет выбрать схемы, индивидуальные коллекции, директории для установки и т.д. Эти основные элементы описаны в разделе 3.2 на стр. 18. Программа также позволяет выполнять многие действия после установки: добавление и удаление пакетов, обновление базы данных файлов, создание форматов.
Для любителей подробностей отметим, что программа tlpmgui использует в качестве «мотора» программу для командной строки Windows под названием tlpm.
Дистрибутив для Windows, включенный в TEX Live, основан на новых программах, позаимствованных у проекта W32TEX, любезно предоставленных Акирой Какуто. В нём также есть более старые (но всё ещё работающие) программы, написанные Фабрицием Попинье, а также новый просмотрщик dvi, dviout, написанный Тошио Ошимой.
Дистрибутив TEX Live может быть установлен под операционной системой Windows 98, ME, NT, 2K или XP. Более старые версии Windows (3.1x) и MS-DOS не поддерживаются.
Внимание: Пользователи Win9.x должны проверить, что у них есть достаточно места для переменных окружения перед установкой. Программа tlpmgui.exe не добавляет места к переменным окружения. В процессе установке создаются несколько переменных окружения, и возможно, что для них не хватит места. Чтобы добавить его, напишите в файл config.sys строчку SHELL=<path>COMMAND.COM /E:4096 /P
После того, как вы вставите CD с TEX Live в компьютер, автостарт должен запустить программу tlpmgui. Если этого не произойдёт, щёлкните на Start→Run, а затем напечатайте <drive>:\setup-win32\tplmgui.exe (или <drive>:\texlive\setup-win32\tplmgui.exe, если вы устанавливаете с DVD), где <drive> — диск CD или DVD, и нажмите «OK».
Должно появиться окно установки под названием TeX Live installation and maintenance utility. В нём содержатся следующие разделы: Main customization, Install, Select a scheme, Select systems, Directories и Options.
В разделе Directories вслед за иконкой CD/DVD должна быть указана директория (например, F:/ или F:/texlive/), но если её там нет, щёлкните на иконку CD/DVD и выберите CD/DVD с TEX Live или TEX Collection.
Директорию, куда будет устанавливаться программа, можно указать, нажав на иконку TLroot. Эта директория будет храниться в переменной TLroot. Переменные TEXMFTEMP и TEXMFCNF, указанные на соседних иконках TEXMFTEMP и TEXMFCNF будут автоматически изменены, но их можно также изменить вручную, если это почему-либо необходимо.
В секции Select a scheme нужно выбрать нужную схему установки из списка (например, scheme-gust). Каждая схема сопровождается кнопкой Info, при нажатии на которую появляется краткое описание схемы.
Схема — это большой набор файлов, предназначенный для определённого типа пользователя. Есть общие схемы для минимальной, средней и полной установки. Остальные схемы предназначены либо для определённых групп пользователей TEXа (например, для членов GUST или GUTenberg) или для определённых приложений (например, для совместной работы XML и TEXа). В выбранной схеме можно сделать дополнительные изменения. Это делается в разделе Main customization путём выбора дополнительных коллекций из групп Standard collections или Language collections. Например, нажав на кнопку Select у надписи Standard collections, можно выбрать дополнительные коллекции, например, MetaPost, Omega или документацию на разных языках.
Примечание: Коллекции Ghostscript, Perl и Wintools выбираются по умолчанию и должны быть установлены, за исключением ситуации, когда они уже есть в системе, и вы знаете, что вы делаете. Эти коллекции используются многими другими важными программами. Кроме того, будут автоматически присвоены значения переменным PERL5LIB и GS_LIB.
Затем щёлкните на кнопку Select у надписи Language Collections в разделе Main customization. Это откроет меню Language collections, в котором можно выбрать языковые коллекции для установки.
Затем щелкните на кнопку Install в разделе Install, и начнётся процесс установки.
Для системы TEX Live нужно проделать ряд операций после установки (генерирование форматов и базы данных для имён файлов, установка переменных и т.д.). Все они делаются на этом шаге, и некоторые могут занять довольно много времени. Поэтому подождите, пожалуйста, пока не появится сообщение об успешном завершении установки.
В меню Start→Programs→TeXLive2007 будет добавлена программа tlpmgui.
При необходимости (Win9x/WinME) вам будет предложено перегрузить компьютер.
Для полноты дистрибутиву TEX Live необходимы дополнительные пакеты, которые обычно не встречаются на машине под Windows. Многие скрипты написаны на языке Perl. Некоторые важные программы требуют интерпретатор языка PostScript Ghostscript для отображения или преобразования файлов. Набор программ для работы с графическими файлами также полезен в ряде случаев. Наконец, приспособленный для работы с TEXом редактор значительно облегчает набор и компилирование.
Все эти пакеты для Windows найти довольно легко, но для того, чтобы несколько облегчить вашу жизнь, мы включили в TEX Live следующий набор:
Эти пакеты взяты из дистрибутива XEmTEX (потомок дистрибутива fpTEX).
Если вы не хотите устанавливать эту коллекцию, то вы можете самостоятельно установить требуемые пакеты. Вот список мест, откуда эти пакеты можно взять:
Вы можете установить и другие программы, которые не являются свободными1, и потому не включены в дистрибутив TEX Live, например, GSView, графическая оболочка к программе Ghostscript, удобная для файлов в форматах PS/PDF. GSView можно найти на http://www.cs.wisc.edu/~ghost/gsview/ или любом зеркале архива CTAN.
Если вы установили дистрибутив TEX Live, вы можете использовать tlpmgui для изменения и поддержки установленной системы.
Поскольку программа tlpmgui находится в меню Start→Programs→TeXLive2007, запустите её оттуда. Появится окно TeX Live installation and maintenance utility. В нём есть несколько страниц: Add Packages, Remove packages, Manage installation, Remove installation.
Щёлкните по страничке Add packages или Remove packages, а затем:
При добавлении пакетов список установленных пакетов сравнивается со списком на CD/DVD. Только неустановленные пакеты показываются в меню. Вы можете сами выбрать, что именно устанавливать.
При удалении отдельных пакетов показывается только список установленных пакетов.
Заметьте, что в меню Add packages и Remove packages сначала указывается список коллекций.
На странице Manage the installation содержатся кнопки для добавления поддержки языка, который не был выбран при установке, добавления/регенерация формата, который не был выбран при установке или был модифицирован после установки.
Можно произвести следующие действия:
Примечание: Вы можете закрыть окно Edit… кнопкой Cancel или кнопкой Done. В последнем случае система начнёт создавать заново файлы форматов (или карты шрифтов, если вы редактировали updmap.cfg), после чего будет обоновлена база данных ls-R.
Более подробно конфигурация системы описана в разделе 7.8, стр. 39.
Страница Remove the TeX Live installation открывает окно с кнопками, которые не ст´оит описывать. Мы не знаем никого, кому бы они могли понадобиться…:-)
В любом случае, если у вас есть директория texmf-local для ваших собственных добавлений, процесс удаления не сотрёт ни её, ни файлов в этой директории. Директория setup-win32, содержащая tlpmgui и другие файлы, также не будет удалена. Вам придётся удалять эти директории вручную.
Во-первых, что бы вы ни делали, не забудьте перегенерировать базу данных имён файлов ls-R. Иначе новые файлы не будут найдены системой. Вы можете это делать либо через графическую оболочку tlpmgui, выбрав соответствующее действие на странице Manage the installation, либо вручную при помощи команды mktexlsr.
Если вы хотите добавить файлы, которых нет в дистрибутиве TEX Live, лучше всего их добавлять в директорию $TEXMFLOCAL. Тогда они сохранятся при обновлении TEX Live.
Директория $TEXMFLOCAL первоначально пуста. Если, например, вы хотите добавить файлы поддержки для программы символических вычислений Maple, вы можете положить стилевые файлы в c:\TeXLive2007\texmf-local\tex\latex\maple\, а документацию в c:\TeXLive2007\texmf-local\doc\latex\maple\.
У программы tlmp.exe, которую использует графическая оболочка tlmpgui, есть ряд полезных ключей. Вы можете получить список ключей, запустив
Дополнительную информацию можно найти в файле tlmp.readme.
Kpathsea знает про сетевые диски, поэтому вы можете раздавать дерево TEXMF по сети. Но есть и ещё более интересный вариант. Все TEXовские и конфигурационные файлы, то есть всё, кроме файлов в директории bin/win32 можно использовать одновременно под Windows и под Юниксом. Это означает, что вы можете, например, при помощи Самбы, монтировать диски с сервера NT на рабочую станцию под Юниксом или наоборот. Возможно несколько стратегий:
Версия Web2C для Windows отличается некоторыми специфическими чертами, которые ст´оит указать.
Команда kpsecheck сообщает также статус общей памяти: используется или не используется. Это может быть полезно знать, потому что если статус памяти ‘in use’, значит, запущен один или несколько процессов, и эффект команды mktexlsr может быть отложен до тех пор, пока все процессы, использующие библиотеку Kpathsea, не завершатся.
Наконец, эта же команда сообщает о том, где по её мнению находится Ghostscript. Под Win32 для многих программ проще искать Ghostscript dll по значению регистра, чем использовать PATH, длина которого ограничена.
Конфигурационный файл для dvips —
C:\TeXLive2007\texmf-var\dvips\config\config.ps.
Вы можете открыть его в любом редакторе и изменить некоторые параметры:
Текущая версия TEX Live всегда создаёт обновлённые версии файлов fontmaps для Dvips and Pdftex. Это делается программой updmap во время установки, а также при добавлении пакетов. Если вы добавляете пакеты вручную, отредактируйте файл updmap.cfg в $TEXMFVAR/web2c.
Если вы используете программу pdflatex, чтобы писать непосредственно в формате PDF, и размер
листа бумаги для вас US letter, отредактируйте файл
C:\TeXLive2007\texmf-var\tex\generic\config\pdftexconfig.tex,
изменив в нём ‘\pdfpagewidth’ и ‘\pdfpageheight’. Там должно быть:
Программа GSView теперь распространяется под лицензией Aladdin, и поэтому не включена в TEX Live.
Вы можете захотеть изменить размер страницы на US letter. Если это так, запустите GSView из меню Start и выберите Media→Letter.
Кроме того, вы можете изменить настройки так, чтобы получить самое качественное изображение на экране. В меню Media→Display Settings, выставьте Text Alpha и Graphics Alpha на 4 бита.
Заметьте, что после установки все файлы .ps и .eps будут автоматически открываться программой GSView.
По поводу печати, см. раздел 7.10 ниже.
Общие инструкции по тестированию находятся в разделе 4.2 (стр. 30). В этом разделе описаны тесты, специфические для Windows.
Откройте файл sample2e.tex в вашем редакторе (Xemacs, WinShell). Этот файл можно найти в директории, например, C:\TeXLive2007\texmf-dist\tex\latex\base. На экране должен появиться исходный код в формате LATEX. Скомпилируйте его, щёлкнув по меню Command→LaTeX (XEmacs) или иконке «LATEX» (WinShell), затем посмотрите на результат, щёлкнув по меню Command→View DVI (XEmacs) или иконке «Preview (dviout)» (WinShell).
При первом просмотре файлов dviout, программа создаст экранные шрифты, которые не установлены в системе. Через некоторое время б´ольшая часть шрифтов будет создана, и окошко создания шрифтов будет появляться нечасто.
Совет на будущее: Если LATEX останавливается, потому что не может найти нужного файла, вы можете нажать Ctrl-z, чтобы выйти из программы.
Вы можете печатать из dviout. В этом случае печать будет производиться через универсальный драйвер Windows. Он по определению совместим со всеми принтерами. Но у него есть недостаток: он может генерировать огромные промежуточные файлы, и некоторые (старые) версии Windows их не любят. Его преимущество в том, что вы можете вставлять графику в формате BMP или WMF. Вам также надо правильно выставить параметры печати, иначе вы можете получить уменьшенную или увеличенную страницу (печать с разрешением 600 dpi на принтере с разрешением 300 dpi даст вам только четверть страницы).
Печать будет быстрее и надёжнее, если вы запустите dvips, чтобы создать файл .ps, а затем напечатаете его из GSView. В GSview выберите File→Print…. Появится окно Print.
Если у вас PostScript-принтер, обязательно выберите PostScript Printer. Это делается в меню Print Method внизу слева в окне Print. Вы затем можете выбрать любой из установленных принтеров. Если вы не выберите PostScript Printer, печать не будет работать.
Если вы используете не PostScript-принтер, выберите Ghostscript device в меню Print Method, затем щёлкните на кнопку справа djet500 и выберите ваше принтер из появившегося списка. (Если у вас старая версия GSView, проверьте, что PostScript Printer не выбран, и выберите принтер из списка Device.)
То, что мы называем Win32, не является операционной системой само по себе. Это большой набор функций (около 12 000 в заголовках SDK от Микрософта), которые используются для написания программ для разных операционных систем семейства Windows.
Есть разные типы Windows:
Win9x могут одновременно запускать 32 и 16-битовые программы. Но операционная система сама написана не полностью в 32-битовом режиме, и не поддерживает защищённый режим: 16-битовые программы могут переписать память операционной системы! Некоторые части системы, например, GDI (Graphical Device Interface, интерфейс к графическим устройствам) управляют ограниченными ресурсами, вроде битмапов, шрифтов и т.д. для всех программ, которые могут работать одновременно. Все заголовки битмапов, доступные одновременно, не могут занимать больше, чем 64 Kb. Это объясняет, тот печальный факт, что вы можете поставить систему на колени, например, используя много графических объектов.
NT, 2K и XP свободны от этих и других ограничений Win9x. Это настоящие многозадачные системы с защищённой памятью. Они гораздо лучше отзываются на действия пользователя, чем Win9x, из-за лучшего управления памятью, лучшей файловой системы и т.д.
Вы можете спросить: «Зачем мне нужна командная строка, если я работаю под Windows?»
Хороший вопрос. Проблема на самом деле очень общая. Не все операции удобно делать из GUI. Командная строка даёт вам возможности программирования — если за ней стоит хороший интерпретатор.
Но проблема ещё более фундаментальна: TEX является пакетной программой. Не интерактивной. TEXу надо вычислить оптимальную вёрстку для всей страницы, перекрёстные ссылки и т.д. Это можно сделать только глобальной компиляцией всего документа. Эту задачу (пока) невозможно решить интерактивно.
Это означает, что TEX надо использовать из командной строки. На самом деле ситуация вовсе не так уж плоха. У программ, занимающихся сложной обработкой потока из командной строки, есть преимущество: их проще отлаживать, потому что они не зависят от проблем GUI, и можно написать отдельные GUI, которые взаимодействуют с такими программами. Это и происходит с TEXом, где вы можете общаться с программой через GUI редактора.
Однако вам в ряде ситуаций может понадобиться командная строка. Например, у вас могут возникнуть трудности, и вам потребуется отладка.
Детали выхода в командную строку могут измениться в других версиях Windows.
API Win32 понимает и /, и \ в качестве разделителей в названиях директорий. Но интерпретаторы команд не понимают первого из них! Поэтому, когда путь к файлу используется в программе, вы можете использовать оба разделителя, даже в одном и том же пути. Но в командной строке вы можете использовать в качестве разделителя только \. Причина заключается в совместимости: интерпретатор команд использует ‘/’ для аргументов команд.
После этого длинного предисловия мы можем сказать: не удивляйтесь, если вы встретите директории, записанные в формате Юникса: fpTEX является портом Web2C, и пытается достичь совместимости на разных платформах. По этой причине все конфигурационные файлы, где указывается путь по директориям, делают это в формате Юникса.
Пожалуй, худшей чертой Win9x с точки зренияTEXа является так называемая файловая система FAT. TEX использует очень много маленьких файлов, с размерами 1–3 Kb. Файловая система FAT очень древняя, она на много десятилетий старше многогигабайтовых дисков, которые распространены сегодня. Неудивительно, что она не может эффективно управлять десятками тысяч TEXовских файлов, входящих в состав TEX Live. Файловая система FAT выделяет как минимум 32 Kb любому файлу на большом разделе. Это означает, что система TEX занимает намного больше места, чем ей на самом деле нужно.
Другие, более современные файловые системы, FAT32 и NTFS, лишены этого недостатка. Они используют кластеры размером в 4 Kb. (На NTFS размер кластера можно уменьшить до 512 байт.)
Есть пары переменных и их значений, которые ведут себя как глобальные переменные для всех программ. Набор таких переменных называется окружением. Каждая программа получает копию текущего окружения. Она может опросить или изменить значение любой переменной. Изменение происходит с локальной копией окружения, и не переходит в другие программы.
Переменная PATH — особая переменная, используемая для поиска запускаемых вами программ. Она задаётся по-разному в Win9x, WinME and NT/2K/XP:
Если там уже есть переменная PATH, щёлкните на PATH. В поле Variable появится PATH, а в поле Value текущее значение переменной: список директорий, разделённых ;. Добавьте директорию, где расположены нужные программы, например, c:\TeXLive2007\bin\win32. Если у вас не задана переменная PATH, щёлкните на поле Variable и впечатайте PATH, щёлкните на поле Value и впечатайте директорию. Внимание: Щёлкните на Apply перед тем, как нажать Ok, иначе значение PATH не изменится. Будьте очень аккуратны, изменяя переменные окружения.
Лучший способ убедиться, что переменная установлена правильно: откройте консоль и напечатайте
система должна напечатать её значение.
Если вы взглянете в документацию Web2C, вы увидите, что все различные программы на основе TEXа используют один и тот же компилятор, Например, tex.exe и latex.exe являются копиями одной и той же программы, но используют различные форматы в зависимости от того, под каким именем они вызваны.
Под Юниксом это сделано путём использования символических ссылок. Это экономит массу места на диске, потому что одна и та же программа используется для разных форматов.
API Win32 не знает про символические ссылки. Поэтому чтобы сэкономить место, все основные программы TEXа упакованы в DLL (Dynamic Linked Library, динамически подгружаемая библиотека). Это означает, что у вас могут быть такие файлы:
Мы включили в дистрибутив программу irun.exe для создания аналога юниксовских жёстких ссылок для программ под Win32.
Вы также можете установить уровень отладки:
Аналогично чтобы перенаправить stderr на stdout, сделайте так:
Теперь вы можете направить stderr и stdout в один и тот же файл.
kpsewhich␣-expand-path␣$SELFAUTOPARENT | c:/TeX |
kpsewhich␣-expand-path␣$TEXMF | c:/TeX/texmf.... |
kpsewhich␣-expand-path␣$TEXMFCNF | .;c:/TeX/texmf-var/web2c; |
kpsewhich␣-expand-var␣$TEXINPUTS | .;c:/TeX/texmf/tex// |
kpsewhich cmr10.tfm | c:/TeX/texmf/fonts/tfm/public/cm/cmr10.tfm |
kpsewhich latex.fmt | c:/TeX/texmf/web2c/latex.fmt |
Вот несколько вещей, которые вы можете проверить:
Дистрибутив TEX Live состоит из сотен программ и десятков тысяч файлов из разных источников. Поэтому очень трудно предсказать все возможные источники ошибок. Тем не менее мы попытаемся вам помочь (см, раздел 1.2 стр. 5).
Web2C — это интегрированная коллекция программ, относящихся к TEXу: сам TEX, Metafont, MetaPost, BibTeX, и т.д. Это сердце TEX Live.
Немного истории. Первая версия программы была написана Томасом Рокики, который в 1987 году создал систему TEX-to-C, адаптировав патчи для Юникса, разработанные в основном Говардом Трики и Павлом Куртисом. Тим Морган стал поддерживать систему, и в этот период её название сменилось на Web-to-C. В 1990 году Карл Берри взял на себя этот проект, координируя работу десятков программистов, а в 1997 он передал руководство Олафу Веберу.
Система Web2C работает на Юниксе, 32-битовых Windows, Mac OS X, и других операционных системах. Она использует оригинальные исходники Кнута для TEXа и других программ, написанных на языке web и переведённых на C. Основные программы системы:
Поддержка библиографий.
Перевод troff в MPX (картинки в MetaPost).
Раскрытие виртуальные шрифты в файлах DVI.
Перевод DVI в MPX (рисунки в MetaPost).
Перевод DVI в текст.
Гранки шрифтов.
Упаковка шрифтов
Перевод GF в текст.
Вёрстка меток MetaPost.
Создание шрифтов.
Вёрстка исходников Metafont.
Создание технических диаграмм.
Извлечение меток MetaPost.
Сравнение дат модификации.
Создание таблиц переносов.
Перевод PK в GF.
Перевод PK в текст
Перевод из списка свойств шрифта в TFM.
Показ файлов pool в web.
Перевод web в Pascal.
Вёрстка.
Перевод TFM в список свойств шрифта.
Перевод виртуального шрифта в список свойств шрифта.
Перевод списка свойств шрифта в виртуальный шрифт.
Перевод web в TEX.
Полностью эти программы описаны в документации к соответствующим пакетам и самой Web2C. Однако знание некоторых общих принципов для всей семьи программ поможет вам полнее использовать программы системы Web2C.
Все программы поддерживают стандартные опции GNU:
напечатать краткую справку
печатать подробную информацию по мере работы
Напечатать версию программы и завершить работу.
Для поиска файлов программы Web2C используют библиотеку Kpathsea. Эта библиотека использует комбинацию переменных окружения и конфигурационных файлов, чтобы найти нужные файлы в огромной системе TEX. Web2C может просматривать одновременно больше одного дерева директорий, что полезно для работы со стандартным дистрибутивом TEXа и его локальными расширениями. Для ускорения поисков файлов каждое дерево содержит файл ls-R, в котором указаны названия и относительные пути всех файлов в этом дереве.
Рассмотрим сначала общий алгоритм библиотеки Kpathsea.
Будем называть путём поиска набор разделённых двоеточием или точкой с запятой элементов пути, представляющих из себя в основном названия директорий. Путь поиска может иметь много источников. Чтобы найти файл ‘my-file’ в директории ‘.:/dir’, Kpathsea проверяет каждый элемент пути по очереди: сначала ./my-file, затем /dir/my-file, возвращая первый файл (или, возможно, все файлы).
Чтобы работать с разными операционными системами, Kpathsea под системой, отличной от Юникса может использовать разделители, отличные от ‘:’ и ‘/’.
Чтобы проверить определённый элемент пути p, Kpathsea вначале проверяет наличие базы данных (см. раздел «База данных файлов» на стр. 59), т.е., есть ли база в директории, которая является префиксом для p. Если это так, спецификация пути сравнивается с содержимым базы данных.
Если база данных не существует, или не относится к этому элементу пути, или не содержит нужного элемента, проверяется файловая система (если это не запрещено спецификацией, начинающейся с ‘!!’, и если файл должен существовать). Kpathsea конструирует список директорий, которые соответствуют элементу, и в каждой директории ищет нужный файл,
Условие «файл должен существовать» важно для файлов ‘.vf’ и файлов, которые открывает TEX по команде \openin. Такие файлы могут и не существовать (например, файл cmr10.vf), и было бы неправильно искать их на диске. Поэтому, если вы не обновите ls-R при установке нового файла ‘.vf’, он никогда не будет найден. Каждый элемент пути ищется по очереди: сначала база данных, затем диск. Если нужный файл найден, поиск останавливается, и возвращается результат.
Хотя самый простой и часто встречающийся элемент пути — это название директории, Kpathsea поддерживает дополнительные возможности: разнообразные значения по умолчанию, имена переменных окружения, значения из конфигурационных файлов, домашние директории пользователей, рекурсивный поиск поддиректорий. Поэтому мы говорим, что Kpathsea вычисляет элемент пути, т.е., что библиотека преобразует спецификации в имя или имена директории. Это описано в следующих разделах в том же порядке, в котором происходит поиск.
Заметьте, что имя файла при поиске может быть абсолютным или относительным, т.е. начинаться с ‘/’, или ‘./’, или ‘../’, Kpathsea просто проверяет, существует ли файл.
Путь поиска может иметь разные источники. Kpathsea использует их в следующем порядке:
Вы можете увидеть каждое из этих значений для данного пути поиска, задав соответствующий уровень отладки (см. «Отладка» на стр. 63).
Kpathsea читает конфигурационные файлы texmf.cnf для задания своих параметров. Путь поиска для этих файлов называется TEXMFCNF (по умолчанию, такой файл находится в поддиректории texmf/web2c). Все найденные файлы texmf.cnf будут прочитаны, и определения в более ранних файлах имеют преимущество перед определениями в более поздних. Таким образом, если путь поиска задан как .:$TEXMF, значения в ./texmf.cnf имеют преимущество перед значениями в $TEXMF/texmf.cnf.
Фрагмент конфигурационного файла, иллюстрирующий эти правила, приведeн ниже:
Kpathsea распознаёт определённые специальные символы и конструкции в путях поиска, аналогичные конструкциям в стандартных оболочках Юникса. Например, сложный путь ~$USER/{foo,bar}//baz, означает все поддиректории директорий foo и bar в домашней директории пользователя $USER, которые содержат файл или поддиректорию baz. Это объяснено в следующем разделе.
Если путь поиска с наибольшим приоритетом (см. раздел <Источники путей поиска» на стр. 54) содержит дополнительное двоеточие (в начале, в конце, двойное), Kpathsea заменяет его следующим по приоритету путём. Если этот вставленный путь содержит дополнительное двоеточие, то же происходит со следующим путём. Например, если переменная окружения задана как
Поскольку было бы бесполезно вставлять значение по умолчанию более чем один раз, Kpathsea изменяет только одно лишнее двоеточие, и оставляет остальные: она проверяет сначала двоеточие в начале, потом в конце, потом двойные двоеточия.
Полезна также подстановка скобок, из-за которой, например, v{a,b}w означает vaw:vbw. Вложенность тут допускается. Благодаря этому можно иметь несколько иерархий директорий, путём присвоения значения со скобками $TEXMF. Например, в файле texmf.cnf, можно найти следующее определение (это упрощение, на самом деле там ещё больше деревьев):
Благодаря этому можно писать такое:
что означает, что кроме текущей директории будет происходить поиск только в $TEXMFHOME/tex, $TEXMFLOCAL/tex, $TEXMFVAR/tex и $TEXMFMAIN/tex (последние два дерева используют файлы ls-R). Это удобно для поддержки двух параллельных структур, «замороженной» (например, на CD) и обновляемой по мере появления новых версий. Используя переменную $TEXMF во всех определениях, можно задать поиск в обновляемом дереве первым.
Два или более слэша ‘/’ в элементе пути вслед за именем директории d заменяются всеми поддиректориями d рекурсивно. На каждом уровне порядок поиска по директориям не определён.
Если вы определите компоненты имени файла после ‘//’, только поддиректории с соответствующими компонентами будут включены. Например, ‘/a//b’ даёт поддиректории /a/1/b, /a/2/b, /a/1/1/b, и т.д., но не /a/b/c или /a/1.
Возможны несколько конструкций ‘//’ в одном пути, но ‘//’ в начале пути игнорируются.
В следующем списке приводятся специальные символы в конфигурационных файлах Kpathsea.
Разделитель в спецификациях путей; в начале или конце означает подстановку по умолчанию.
Разделитель для не-Юникса (то же, что :).
Подстановка переменных.
Означает домашнюю директорию пользователя.
Подстановка скобок.
Подстановка поддиректорий (может встретиться где угодно, кроме начала пути).
Начало комментария.
Символ продолжения (для команд из нескольких строк).
Поиск только в базе данных, но не на диске.
Kpathsea старается минимизировать обращение к диску при поиске. Тем не менее в системах с большим количеством директорий поиск в каждой возможной директории может занять долгое время (это особенно верно, если надо проверить сотни директорий со шрифтами). Поэтому Kpathsea умеет использовать внешний текстовый файл, «базу данных» ls-R, который знает, где находятся файлы в директориях, что даёт возможность избежать частых обращений к диску.
Ещё одна база данных, файл aliases позволяет вам давать дополнительные названия файлам в ls-R. Это полезно, если вам нужно соблюдать правило DOS «8.3».
Как объяснено выше, основная база данных называется ls-R. Вы можете создать её в корне каждого дерева TEXа, которое просматривается Kpathsea (по умолчанию, $TEXMF); в большинстве случаев иерархия только одна. Kpathsea ищет файлы ls-R в пути TEXMFDBS.
Рекомендуемый способ создания и поддержки ‘ls-R’ — скрипт mktexlsr, включённый в дистрибутив. Он вызывается разными скриптами ‘mktex’…. В принципе этот скрипт выполняет команды типа
Если файл не найден в базе данных, по умолчанию Kpathsea ищет на диске. Если элемент пути начинается с ‘!!’, то поиск происходит только в базе данных.
Программа kpsewhich выполняет поиск в соответствии с алгоритмом, описанным выше. Это может быть полезно в качестве варианта команды find для поиска файлов в иерархиях TEXа (это широко используется в скриптах ‘mktex’…).