Руководство пользователя TEX Live
TEX Live 2008

Редактор: Карл Берри
http://tug.org/texlive/

Июль 2008

Содержание

1 Введение
 1.1 TEX Live и TEX Collection
 1.2 Поддерживаемые операционные системы
 1.3 Основы установки TEX Live
 1.4 Где можно получить поддержку
2 Структура TEX Live
 2.1 TEX Collection: TEX Live, proTEXt, MacTEX
 2.2 Корневые директории
 2.3 Описание директорий texmf
 2.4 Расширения TEXа
 2.5 Другие интересные программы в дистрибутиве TEX Live
 2.6 Шрифты в TEX Live
3 Установка
 3.1 Запуск программы установки
  3.1.1 Юникс
  3.1.2 Mac OS X
  3.1.3 Windows
  3.1.4 Установка в текстовом режиме
  3.1.5 Установка в графическом режиме
 3.2 Работа программы установки
  3.2.1 Меню выбора платформы (только для Юникса)
  3.2.2 Выбор основных компонентов
  3.2.3 Директории
  3.2.4 Опции
  3.2.5 Настройка для работы с DVD (только текстовый режим)
 3.3 Опции командной строки
  3.3.1 Параметр location
 3.4 Действия после установки
  3.4.1 Windows
  3.4.2 Если созданы симлинки
  3.4.3 Переменные окружения для Юникса
  3.4.4 Переменные окружения: глобальная конфигурация
  3.4.5 Работа с DVD
  3.4.6 ConTEXt Mark IV
  3.4.7 Добавление личных и локальных пакетов
  3.4.8 Добавление шрифтов
 3.5 Тестирование системы
4 Установка в локальной сети
5 Максимально переносимая система TEX Live на DVD и USB
6 Администрирование системы при помощи tlmgr
 6.1 Программа tlmgr в графическом режиме
 6.2 Запуск программы tlmgr из командной строки
7 Дополнительные замечания о Windows
 7.1 Дополнительные возможности Windows
 7.2 Дополнительные пакеты для Windows
 7.3 Программа Dviout
 7.4 Ссылки на дополнительные программы
 7.5 Домашняя директория под Windows
 7.6 Регистр Windows
 7.7 Права доступа под Windows
8 Руководство пользователя Web2C
 8.1 Поиск файлов в Kpathsea
  8.1.1 Источники путей поиска
  8.1.2 Конфигурационные файлы
  8.1.3 Подстановка путей
  8.1.4 Подстановка по умолчанию
  8.1.5 Подстановка скобок
  8.1.6 Подстановка поддиректорий
  8.1.7 Список специальных символов и их значений
 8.2 Базы данных
  8.2.1 Базы данных ls-R
  8.2.2 kpsewhich: поиск файлов
  8.2.3 Примеры использования
  8.2.4 Отладка
 8.3 Опции запуска
9 Благодарности
10 История издания
 10.1 Прошлое
  10.1.1 2003
  10.1.2 2004
  10.1.3 2005
  10.1.4 2006–2007
 10.2 Настоящее
 10.3 Будущее

Список таблиц

1 Введение

1.1 TEX Live и TEX Collection

В этом документе описаны основные возможности программного продукта TEX Live — дистрибутива TEXа и других программ для GNU/Линукса и других Юниксов, Mac OS X и (32-битных) Windows.

TEX Live можно скачать с Интернета, а можно получить на DVD «TEX Collection». Эти DVD распространяются группами пользователей TEXа. В разделе 2.1 кратко описано содержание такого DVD. И TEX Live, и TEX Collection поддерживаются группами пользователей TEXа. В этом документе в основном описан TEX Live.

В TEX Live включены программы TEX, LaTeX2e, ConTEXt, Metafont, MetaPost, BibTeX и многие другие; обширная коллекция макросов, шрифтов и документации; а также поддержка вёрстки на многих языках мира.

Более новые версии пакетов, включённых в дистрибутив, можно найти в архиве CTAN, http://www.ctan.org.

Краткий список основных изменений в этом издании TEX Live можно найти в разделе 10, стр. 79.

1.2 Поддерживаемые операционные системы

В TEX Live включены скомпилированные программы для многих юниксоподобных систем, включая Mac OS X. Исходный код также включен в дистрибутив, что позволяет установить TEX Live на машинах, для архитектур которых мы не собрали программы.

Что касается Windows: поддерживаются только версии Windows 2000 и младше. Мы прекратили поддерживать Windows 9x, ME и NT. Это позволило значительно сократить затраты труда на эту платформу. Мы не собрали 64-битовые программы для Windows, но 32-битовые варианты должны работать на 64-битовых систем.

Альтернативные варианты для Windows и Mac OS X описаны в разделе 2.1.

1.3 Основы установки TEX Live

TEX Live можно установить с DVD или с Интернета. Программа для установки с сети сама по себе мала — она скачивает все нужное с Интернета. Это удобно, если вам нужна только часть пакетов TEX Live.

Программа установки с DVD позволяет установить TEX Live на диск компьютера, но можно также запускать TEX Live непосредственно с DVD (или с образа DVD, если ваша система поддерживает монтирование образа диска).

Всё это подробно описано в следующих разделах. Вкратце:

1.4 Где можно получить поддержку

Сообщество пользователей TEXа активно и дружелюбно, и практически на каждый серьёзный вопрос найдётся ответ. Однако эта поддержка неформальна, выполняется добровольцами, и поэтому очень важно, чтобы вы сами попробовали найти ответ перед тем, как задавать вопрос. (Если вы предпочитаете коммерческую поддержку, возможно вам ст´оит вместо TEX Live купить одну из коммерческих версий TEXа, см. список по адресу http://tug.org/interest.html#vendors).

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

Страница для новичков:
Если вы — новичок, то страница http://tug.org/begin.html может послужить для начала.
TEX FAQ:
TEX FAQ (ЧаВо, часто задаваемые вопросы) — огромная коллекция ответов на всевозможные вопросы, от самых простых до самых сложных. Английская версия ЧаВо находится на TEX Live в разделе texmf-doc/doc/english/FAQ-en/html/index.html и доступна в Интернете по адресу http://www.tex.ac.uk/faq. Пожалуйста, начинайте поиск ответа на ваши вопросы отсюда.
TEX Catalogue:
Если вы ищете какой-либо пакет, шрифт, программу и т.п., то вам стоит заглянуть в TEX Catalogue. Это огромный каталог всего, что относится к TEXу. См. http://www.ctan.org/help/Catalogue.
TEX во всемирной паутине:
Вот страничка, на которой много ссылок по TEXу, включая многочисленные книги, руководства и статьи: http://tug.org/interest.html.
Архивы списков рассылки и групп:
Два основных форума технической поддержки — группа news:comp.text.tex и список рассылки texhax@tug.org. В их архивах тысячи вопросов и ответов на все случаи жизни. См. http://groups.google.com/groups?group=comp.text.tex и http://tug.org/mail-archives/texhax. Поиск, например, в Гугле (http://google.com) тоже часто помогает найти ответ.
Вопросы на форумах
Если вы не можете найти ответа на ваш вопрос, вы можете либо опубликовать вопрос в comp.text.tex при помощи Google или вашей любимой новостной программы, либо послать письмо на лист рассылки texhax@tug.org. Но перед этим пожалуйста прочтите в ЧаВо совет о том, как правильно задавать вопросы на этих форумах: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion.
Поддержка TEX Live
Если вы хотите сообщить о баге или высказать нам свои предложения и замечания о дистрибутиве TEX Live, его установке или документации, пишите на лист рассылки tex-live@tug.org. Однако если ваш вопрос касается конкретной программы, входящей в TEX Live, вам лучше задавать вопросы её автору или посылать их на соответствующий список рассылки. Часто соответствующий адрес можно получить при помощи опции --help нужной программы.
Русскоязычные ресурсы
(добавлено переводчиком) Эхоконференция ru.tex доступна как в сети ФИДО, так и в Интернете (как news:fido7.ru.tex). Русские группы ФИДО можно найти на многих серверах, например demos.ddt.su. В FAQ этой группы (автор — Михаил Колодин) приводится много ссылок на русскоязычные ресурсы.

С другой стороны, вы сами тоже можете помочь тем, у кого есть вопросы. И comp.text.tex, и texhax, и fido7.ru.tex открыты для всех, поэтому вы тоже можете присоединиться, читать и помогать другим.

2 Структура TEX Live

Этот раздел описывает структуру и содержание TEX Collection и его составной части TEX Live.

2.1 TEX Collection: TEX Live, proTEXt, MacTEX

DVD TEX Collection содержит следующие пакеты:

TEX Live:
полная система, которой можно пользоваться либо непосредственно с DVD, либо установив на диск компьютера.
MacTEX:
вариант для Mac OS X. Этот пакет добавляет к TEX Live программу установки для Mac OS X и другие программы для Макинтошей. Страница проекта — http://www.tug.org/mactex/.
proTEXt:
улучшенный вариант дистрибутива MiKTEX для Windows. ProTEXt включает в себя дополнительные программы и упрощённую установку. Он не зависит от TEX Live и включает собственные инструкции по установке. Страница ProTEXt — http://tug.org/protext.
CTAN:
Зеркало архива CTAN.
texmf-extra:
директория с разнообразными дополнительными пакетами.

Лицензии на использование CTAN, protext и texmf-extra отличаются от лицензии TEX Live, поэтому будьте внимательны при распространении или модификации программ, входящих в эти дистрибутивы.

2.2 Корневые директории

Вот краткое описание корневых директорий в дистрибутиве TEX Live. На DVD TEX Collection вся иерархия TEX Live помещена в поддиректорию texlive, а не в корень диска.

bin:

Программы системы TEX, сгруппированные по платформам.

readme.html:

Странички WWW с кратким руководством для пользователя и различными ссылками, на разных языках.

source:

Исходный код всех программ, включая дистрибутивы Web2C TEX и Metafont.

support:

Разные вспомогательные пакеты и программы. Они не устанавливаются по умолчанию. Сюда относятся разнообразные редакторы и оболочки для TEXа.

texmf:

См. TEXMFMAIN ниже.

texmf-dist:

См. TEXMFDIST ниже.

texmf-doc:

Дерево самостоятельной документации, сгруппированной по языкам.

tlpkg:

Скрипты, программы и другие файлы для поддержки системы. Это дерево также содержит собственные копии программ Perl и Ghostscript, невидимые вне TEX Live, а также новую оболочку для просмотра постскриптовских файлов под Windows, PSView.

Кроме этих директорий, в корневой директории находятся скрипты установки и файлы README (на разных языках).

Директория texmf-doc содержит документацию, которая не относится к отдельным пакетам или программам. Документация к программам (руководства, man, info) находится в директории texmf/doc. Документация макропакетов и форматов находится в директории texmf-dist/doc. Для поиска документации можно воспользоваться программами texdoc или texdoctk. Можно также воспользоваться ссылками в файле doc.html в корневой директории.

Документация к самому дистрибутиву TEX Live находится в директории texmf-doc и доступна на нескольких языках:

2.3 Описание директорий texmf

В этом разделе описаны все переменные, задающие положение деревьев директорий texmf и их значения по умолчанию. Команда texconfig conf показывает текущие значения этих переменных, так что вы можете легко проверить, где эти директории находятся в вашей системе.

TEXMFMAIN

Дерево, где находятся основные части системы, такие, как вспомогательные скрипты (например, web2c/mktexdir), другие вспомогательные файлы и документация к ним. Это дерево не содержит форматов TEXа и пакетов.

TEXMFDIST

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

TEXMFLOCAL

Дерево, которое может быть использовано администраторами системы для дополнительных пакетов, шрифтов и т.д., или установки обновлений.

TEXMFHOME

Дерево, которое пользователи могут использовать для установки собственных пакетов, шрифтов и т.д., или для обновлённых версий системных пакетов. Эта переменная является своей для каждого пользователя.

TEXMFCONFIG

Это дерево используется утилитами texconfig, updmap и fmtutil для хранения модифицированных файлов конфигурации. По умолчанию находится в директории TEXMFHOME.

TEXMFSYSCONFIG

Это дерево используется утилитами texconfig-sys, updmap-sys и fmtutil-sys для хранения модифицированных файлов конфигурации, общих для всех пользователей.

TEXMFVAR

Это дерево используется утилитами texconfig, updmap и fmtutil для хранения создаваемых автоматически файлов: форматов, карт шрифтов. По умолчанию находится в директории TEXMFHOME.

TEXMFSYSVAR

Это дерево используется утилитами texconfig-sys, updmap-sys, fmtutil-sys, а также tlmgr для хранения создаваемых автоматически файлов: форматов, карт шрифтов, — общих для всех пользователей.

По умолчанию структура директорий выглядит так:

корневая директория
может содержать несколько версий TEX Live:
2007

Предыдущая версия.

...

2008

Текущая версия.

bin

 

i386-linux

Программы для GNU/Linux

...

universal-darwin

Программы для Mac OS X

win32

Программы для Windows

texmf

TEXMFMAIN.

texmf-dist

TEXMFDIST

texmf-doc

TEXMFDOC

texmf-var

TEXMFSYSVAR

texmf-config

TEXMFSYSCONFIG

texmf-local

TEXMFLOCAL, общая для всех версий TEX Live.

домашняя директория пользователя
($HOME или %USERPROFILE%)
.texlive2007

Данные и конфигурационные файлы предыдущей версии.

.texlive2008

Данные и конфигурационные файлы текущей версии.

texmf-var

TEXMFVAR

texmf-config

TEXMFCONFIG

texmf

TEXMFHOME Личные макропакеты. etc.

2.4 Расширения TEXа

Кнутовский вариант TEXа заморожен — за исключением редких исправлений багов, в него не вносится никаких изменений. Он все ещё распространяется в TEX Live как tex и будет распространяться в обозримом будущем. В состав TEX Live входит несколько расширений TEXа:

e-TEX
добавляет набор новых примитивов (относящийся к макроподстановкам, чтению символов, дополнительным возможностям отладки и многому другому) и расширения TEX--XE T для вёрстки справа налево и слева направо. В обычном режиме e-TEX на 100% совместим со стандартнымTEXом. См. texmf-dist/doc/etex/base/etex_man.pdf.
pdfTEX
включает в себя расширения e-TEXа, добавляя поддержку формата PDF, помимо стандартного DVI. Эта программа используется большинством форматов, например, etex, latex, pdflatex. См. http://www.pdftex.org/. В руководстве пользователя texmf/doc/pdftex/manual/ и примере texmf/doc/pdftex/manual/samplepdf/samplepdf.tex описаны возможности программы.
LuaTEX
предназначен заменить pdfTEX в будущем. Предполагается, что он будет совместим с последним. Он также заменит Aleph, см. ниже. Встроенный интерпретатор языка Lua (см. http://www.lua.org/) позволяет элегантно решить многие сложные проблемы TEXа. Когда эта программа запускается как texlua, она работает как интерпретатор Lua, и в этом качестве используется в TEX Live. См. http://www.luatex.org/ и texmf-dist/doc/luatex/luatexref-t.pdf.
XeTEX
добавляет поддержку Unicode и шрифтов в формате OpenType, сделанную через стандартные библиотеки. См. http://scripts.sil.org/xetex.
Omega (Омега)
основана на Unicode (система 16-битовых символов), что позволяет работать одновременно почти со всеми письменностями мира. Она также поддерживает так называемый «процесс трансляции Omega» (OTPs) для сложных преобразований произвольного входного потока. См. texmf-dist/doc/omega/base/doc-1.8.tex (текст несколько устарел).
Aleph
объединяет Omega и e-TEX. См. краткую документацию в texmf-dist/doc/aleph/base.

2.5 Другие интересные программы в дистрибутиве TEX Live

Вот несколько других часто используемых программ в дистрибутиве TEX Live:

bibtex

поддержка библиографий.

makeindex

поддержка алфавитных указателей.

dvips

преобразование DVI в PostScript.

xdvi

программа для просмотра DVI для X Window System.

dvilj

драйвер для лазерных принтеров семейства HP LaserJet.

dv2dt, dt2dv

преобразование DVI в текст и обратно.

dviconcat, dviselect

перестановка страниц в файлах DVI.

dvipdfmx

преобразование DVI в PDF, альтернатива pdfTEXу, упомянутому выше. Пакеты ps4pdf и pdftricks предлагают дополнительные возможности.

psselect, psnup, …

утилиты для формата PostScript.

lacheck

проверка синтаксиса LATEXа.

texexec, texmfstart

процессор для ConTEXtа и PDF.

tex4ht

конвертер из TEXа в HTML, XML и многие другие форматы.

2.6 Шрифты в TEX Live

В TEX Live включено много векторных шрифтов высокого качества. См. http://tug.org/fonts и texmf-doc/english/free-math-fonts-survey.

3 Установка

3.1 Запуск программы установки

Для начала вам потребуется DVD TEX Collection или программа установки TEX Live с Интернета. Найдите скрипт установки: install-tl для Юникса, install-tl.bat для Windows.

Установка с сети:
скачайте программу из архива CTAN, директория systems/texlive/tlnet; адрес http://mirror.ctan.org/systems/texlive/tlnet автоматически приводит к ближайшему зеркалу архива. Вы можете скачать либо install-tl.zip (установка под Юниксом и Windows), либо файл существенно меньшего размера install-unx.tar.gz (только для Юникса). После распаковки файлы install-tl и install-tl.bat окажутся в директории install-tl.
TEX Collection DVD:
Перейдите в поддиректорию texlive. Под Windows программа установки запускается автоматически, когда вы вставляете DVD в компьютер. Вы можете получить DVD, вступив в группу пользователей TEXа (мы настоятельно рекомендуем это сделать, http://tug.org/usergroups.html), либо купив его отдельно (http://tug.org/store), либо сделав его самостоятельно, скачав ISO образ диска (http://tug.org/texlive/acquire.html).

В следующих разделах установка описывается более подробно.

3.1.1 Юникс


  ======================> TeX Live installation procedure <=====================
  
  =======> Note: Letters/digits in <angle brackets> indicate menu items <=======
  =======>       for commands or configurable options                   <=======
  
  
   Detected platform: Intel x86 with GNU/Linux
  
   <B> binary systems: 1 out of 16
  
   <S> Installation scheme (scheme-full)
  
   Customizing installation scheme:
     <C> standard collections
     <L> language collections
     83 collections out of 84, disk space required: 1666 MB
  
   <D> directories:
     TEXDIR (the main TeX directory):
       !! default location: /usr/local/texlive/2008
       !! is not writable, please select a different one!
     TEXMFLOCAL (directory for site-wide local files):
       /usr/local/texlive/texmf-local
     TEXMFSYSVAR (directory for variable and automatically generated data):
       /usr/local/texlive/2008/texmf-var
     TEXMFSYSCONFIG (directory for local config):
       /usr/local/texlive/2008/texmf-config
     TEXMFHOME (directory for user-specific files):
       ~/texmf
  
   <O> options:
     [ ] use letter size instead of A4 by default
     [X] create all format files
     [X] install macro/font doc tree
     [X] install macro/font source tree
     [ ] create symlinks in standard directories
  
   <V> Install for running from DVD
  
  Other actions:
   <I> start installation to HD
   <H> help
   <Q> quit
  
  Enter command:

Рис. 1: Главное меню программы установки в текстовом режиме (GNU/Linux)



pict

Рис. 2: Главное меню программы установки в графическом режиме (Windows)


Ниже > указывает системный промпт; то, что вводит пользователь, показано жирным шрифтом. Открыв терминальное окно в Юниксе, запустите программу установки:

> cd /path/to/installer
> perl install-tl
(Альтернативно, вы можете запустить perl /path/to/installer/install-tl, или ./install-tl, если у этого скрипта есть права на выполнение, и т.д. Мы не будем указывать все эти варианты.)

Для установки в графическом режиме (вам потребуется модуль Perl/TK) используйте

> perl install-tl -gui

Полный список возможных опций дает команда

> perl install-tl -help

Предупреждение о правах доступа в Юниксе: система установки TEX Live использует текущее значение параметра umask. Поэтому если вы хотите, чтобы полученной системы могли пользоваться не только вы, но и другие пользователи, вы должны установить, например, umask 022. Более подробно umask обсуждается в документации к вашей системе.

3.1.2 Mac OS X

Как отмечается в разделе 2.1, для Mac OS X существует специальный дистрибутив, MacTEX (http://tug.org/mactex). Мы рекомендуем пользоваться его системой установки, а не общим скриптом TEX Live, поскольку у него есть дополнительные возможности, специфические для Маков, например, удобное переключение между различными дистрибутивами TEXа для Mac OS X (MacTEX, gwTEX, Fink, MacPorts, …).

MacTEX основан на TEX Live, и основные деревья директорий у них совпадают. Он добавляет несколько поддиректорий с программами и документацией, относящимися только к Макам.

3.1.3 Windows

Если вы устанавливаете систему с сети, или если программа установки с DVD не стартовала автоматически, дважды щелкните по install-tl.bat.

Можно также запустить программу из командной строки. Ниже > означает системный промпт; то, что вводит пользователь, указано жирным шрифтом. Если вы находитесь в директории программы установки, напечатайте:

> install-tl

Программу можно вызвать и из другой директории, например,

> D:\texlive\install-tl
(предполагается, что в D: находится DVD TEX Collection).

Для установки в текстовом режиме используйте

> install-tl -no-gui

Все опции программы можно получить при помощи команды

> install-tl -help

3.1.4 Установка в текстовом режиме

На рисунке 1 показано основное меню программы установки в текстовом режиме для Юникса.

Интерфейс программы довольно примитивен: поддержки курсора в нем нет. Например, нельзя передвигаться по полям при помощи клавиши «Tab». Вы просто печатаете что-то (регистр учитывается!) и нажимаете клавишу «Enter», после чего перерисовывается весь экран.

Этот интерфейс примитивен по следующей причине: он должен работать на как можно большем количестве платформ, включая такие, где есть только усеченный вариант Perlа (для Windows такой вариант Perlа включен в дистрибутив).

3.1.5 Установка в графическом режиме

На рисунке 2 изображено меню программы установки в графическом режиме. Основные различия с рисунком 1 связаны с тем, что эта программа работает под Windows, а предыдущая — под GNU/Linux.

3.2 Работа программы установки

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

3.2.1 Меню выбора платформы (только для Юникса)


  Available sets of binaries:
  ====================================================================
  
     a [ ] alpha-linux      DEC Alpha with GNU/Linux
     b [ ] amd64-freebsd    x86_64 with FreeBSD
     c [ ] hppa-hpux        HP-UX
     d [ ] i386-freebsd     Intel x86 with FreeBSD
     e [X] i386-linux       Intel x86 with GNU/Linux
     f [ ] i386-openbsd     Intel x86 with OpenBSD
     g [ ] i386-solaris     Intel x86 with Sun Solaris
     h [ ] mips-irix        SGI IRIX
     i [ ] powerpc-aix      PowerPC with AIX
     j [ ] powerpc-linux    PowerPC with GNU/Linux
     k [ ] sparc-linux      Sparc with GNU/Linux
     l [ ] sparc-solaris    Sparc with Solaris
     m [ ] universal-darwin universal binaries for MacOSX/Darwin
     o [ ] win32            Windows
     p [ ] x86_64-linux     x86_64 with GNU/Linux

Рис. 3: Меню выбора платформы


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

3.2.2 Выбор основных компонентов


  Select a scheme:
  ====================================================================
  
   a [ ] TeX Live basic scheme
   b [ ] TeX Live scheme for ConTeXt
   c [X] TeX Live full scheme
   d [ ] GUST TeX Live scheme
   e [ ] GUTenberg TeX Live scheme
   f [ ] TeX Live medium scheme
   g [ ] TeX Live minimal scheme
   h [ ] TeX Live for Omega users
   i [ ] teTeX scheme
   j [ ] XML typesetting scheme

Рис. 4: Выбор основных компонентов


На рисунке 4 показано меню выбора основных компонентов (схем) TEX Live. В этом меню вы можете выбрать «схему», т.е. набор коллекций пакетов. По умолчанию используется схема full, т.е. все пакеты TEX Live, но вы можете выбрать схему basic для небольшой системы, схему minimal для тестирования или схемы medium или teTeX. Есть также ряд специальных схем, в том числе и предназначенных для различных стран.


pict

Рис. 5: Меню коллекций (Линукс)


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

Коллекции представляют собой следующий после схем уровень иерархии TEX Live. Грубо говоря, схемы состоят из коллекций, коллекции состоят из пакетов, а пакеты (нижний уровень иерархии TEX Live) содержат макросы, шрифты и т.д.

Если вы хотите более тонкой настройки, чем возможна в меню коллекций, вы можете использовать программу tlmgr после установки (см. раздел 6). Эта программа позволяет устанавливать или удалять отдельные пакеты.

3.2.3 Директории

Схема директорий по умолчанию описана в разделе 2.3, стр. 9. Положение дерева TEXDIR отличается для Windows (%PROGRAMFILES%\texlive\2008) и Юникса (/usr/local/texlive/2008).

Основная причина, по которой бывает необходимо изменить эту схему — отсутствие у вас прав на запись в нужные директории. Вам не надо иметь права администратора для установки TEX Live, однако вам надо иметь право писать в директорию, куда устанавливается система.

Если у вас нет права на запись в системные директории, естественной альтернативой является установка в вашу домашнюю директорию, особенно если вы будете единственным пользователем системы. Для этого используйте ‘~’ например ‘~/texlive/2008’.

Мы рекомендуем включать номер года в название директории, чтобы можно было держать отдельно разные версии TEX Live. После тестирования новой версии вы сможете сделать /usr/local/texlive-cur ссылкой на соответствующую директорию.

Изменение TEXDIR изменит также TEXMFLOCAL, TEXMFSYSVAR и TEXMFSYSCONFIG.

Личные пакеты и файлы рекомендуется держать в директории TEXMFHOME. По умолчанию это ~/texmf. В отличие от TEXDIR, здесь ~ будет своим для каждого пользователя. Эта переменная становится $HOME под Юниксом и %USERPROFILE% под Windows.

3.2.4 Опции


  <P> use letter size instead of A4 by default: [ ]
  <F> create all format files:                  [X]
  <D> install font/macro doc tree:              [X]
  <S> install font/macro source tree:           [X]
  <L> create symlinks in standard directories:  [ ]
             binaries to:
             manpages to:
                 info to:

Рис. 6: Меню опций (Unix)


На рисунке 6 приведено меню опций (текстовый режим). Стоит упомянуть три из них:

use letter size instead of A4 by default (использовать по умолочанию размер letter вместо A4):
выбор размера бумаги по умолчанию. Разумеется, отдельные документы могут при необходиости указать собственный размер бумаги.
create all format files (созать все форматы):
Хотя ненужные форматы занимают место на диске и требуют времени для создания, мы все же рекомендуем не изменять эту опцию. В противном случае отсутствующие форматы будут генрироваться в директориях TEXMFVAR для каждого пользователя. Они не будут автоматически перегенерироваться при изменении программ и схем переноса, и в итоге могут оказаться несовместимыми с новой системой.
create symlinks in standard directories (создать симлинки в стандартных директориях)
(только для Юникса): Эта опция делает ненужной смену переменных окружения. Без неё директории TEX Live нужно добавить к PATH, MANPATH и INFOPATH. Для этой опции вам нужны права на запись в стандартные директории. Мы не советуем вам подменять TEX из дистрибутива вашей системы при помощи этой опции. Она нужна для создания симлинков в директориях типа /usr/local/bin, которые не содержат файлов TEXа из системного дистрибутива.

Задав нужные настройки, вы можете начать установку системы, нажав клавишу «I». Когда установка закончена, перейдите к разделу 3.4.

3.2.5 Настройка для работы с DVD (только текстовый режим)

Для выбора этой опции нажмите клавишу «V». Основное меню станет таким, как на рисунке 7.


  ======================> TeX Live installation procedure <=====================
  
  =======> Note: Letters/digits in <angle brackets> indicate menu items <=======
  =======>       for commands or configurable options                   <=======
  
   <D> directories:
     TEXDIRW (Writable root):
       !! default location: /usr/local/texlive/2008
       !! is not writable, please select a different one!
     TEXMFLOCAL (directory for site-wide local files):
       /usr/local/texlive/texmf-local
     TEXMFSYSVAR (directory for variable and automatically generated data):
       /usr/local/texlive/2008/texmf-var
     TEXMFSYSCONFIG (directory for local config):
       /usr/local/texlive/2008/texmf-config
     TEXMFHOME (directory for user-specific files):
       ~/texmf
  
   <O> options:
     [ ] use letter size instead of A4 by default
     [X] create all format files
  
   <V> set up for installing to hard disk
  
  Other actions:
   <I> start installation for running from DVD
   <H> help
   <Q> quit

Рис. 7: Основное меню после выбора опции from DVD


Обратите внимание на изменения: исчезли все опции выбора, что устанавливать, а меню директорий говорит теперь о TEXDIRW, т.е. части дерева на локальном диске. Опция создания симлинков также исчезла.

Программа установки создаст различные директории и конфигурационные файлы, но не будет копировать на диск компьютера texmf, texmf-dist или texmf-doc.

Действия после установки для Юникса будут чуть сложнее, чем в предыдущем случае, поскольку расположение директорий теперь отличается от стандартного; см. раздел 3.4.

Из-за недостатка времени этой опции пока нет в графическом режиме, но она доступна и для Юникса, и для Wiindows. Пользователям Windows придется запустить программу установки из командной строки, см. раздел 3.3.

В разделе 5 описан другой способ запуска TEX Live с диска, который не требует изменений в конфигурации системы — но и не позволяет настраивать TEX Live.

3.3 Опции командной строки

Напечатайте

> install-tl -help
чтобы получить список опций комадной строки. В опциях можно использовать как -, так и --. Вот самые интересные опции:

-gui

Если возможно, использовать грагический режим. Для этого нужен модуль Perl/Tk (http://tug.org/texlive/distro.html#perltk); если этого модуля в системе нет, установка происходит в текстовом режиме.

-no-gui

Использовать текстовый режим, даже под Windows. Вам понадобится эта опция, если вы хотите запускать TEX Live с DVD, поскольку это пока невозможно в графическом режиме.

-lang LL

Задать язык интерфейса программы установки (стандартным кодом страны LL). Сейчас доступны следующие языки: английский (en, значение по умолчанию), немецкий (de), французский (fr), голландский (nl), польский (pl), словенский (sl) и вьетнамский (vi). Программа установки пытается определеть нужный язык автоматически, но если это не получается или если нужный язык не поддерживается, она переходит на английский.

-profile profile

Программа установки всегда записывает файл texlive.profile в поддиректорию 2008/tlpkg или tlpkg. Эта опция заставляет программу использовать этот файл. Вот пример такого файла:

  # texlive.profile written on Wed Jul  9 16:13:44 2008 UTC
  # It will NOT be updated and reflects only the
  # installation profile at installation time.
  selected_scheme scheme-basic
  TEXDIR /usr/local/texlive/2008
  TEXDIRW /usr/local/texlive/2008
  ...
  TEXMFSYSVAR /usr/local/texlive/2008/texmf-var
  collection-basic 1
  ...
  option_symlinks 0

При помощи этой опции вы можете устанавливать TEX Live на нескольких машинах с одними и теми же параметрами.

-location url/path

Указать альтернативный источник пакетов; см. ниже.

3.3.1 Параметр location

Значение этого параметра может быть URL, начинающися с ftp:, http:, file:/ или директория на диске. Если аргумент задает директорию на диски (прямо или при помощи file:/), система автоматически определяет, является ли источник архивом: если найдена поддиректория archive с файлами .tar.lzma, то она будет использована, даже если рядом находятся незаархивированные файлы.

Если параметр начинается с http: или ftp:, то символ / или директория /tlpkg в конце параметра игнорируются. Например, вы можете задать в качестве параметра зеркало CTAN: http://ctan.example.org/tex-archive/texlive/tlnet/2008. Разумеется, вам следует подставить вместо example.ctan.org нужное зеркало и путь к архиву на этом зеркале (список зеркал находится на http://mirror.ctan.org). По умолчанию зеркало определяется автоматически из списка на http://mirror.ctan.org; в любом случае выбранное зеркало используется для всей установки.

3.4 Действия после установки

Иногда после установки системы требуются дополнительные действия.

3.4.1 Windows

Под Windows программа установки сама делает все необходимое.

3.4.2 Если созданы симлинки

Если вы решили создать симлинки в стандартных директориях (см. раздел 3.2.4), то менять переменные окружения не нужно.

3.4.3 Переменные окружения для Юникса

Директория с программами для вашей платформы должна быть добавлена к пути поиска. Программы для каждой архитектуры помещаются в собственную поддиректорию под TEXDIR/bin. См. список поддиректорий и соответствующих платформ на рисунке 3.

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

Ниже мы используем для примера стандартную систему директорий в системе Intel86 GNU/Linux.

Для оболочек типа Bourne (bash и т.п.) вы можете добавить в файл $HOME/.profile (или в файл, который вызывается из .profile) следующее:

  PATH=/usr/local/texlive/2008/bin/i386-linux:$PATH; export PATH
  MANPATH=/usr/local/texlive/2008/texmf/doc/man:$MANPATH; export MANPATH
  INFOPATH=/usr/local/texlive/2008/texmf/doc/info:$INFOPATH; export INFOPATH

Для csh или tcsh следует редактировать файл $HOME/.cshrc, и следует добавить что-то вроде

  setenv PATH /usr/local/texlive/2008/bin/i386-linux:$PATH
  setenv MANPATH /usr/local/texlive/2008/texmf/doc/man:$MANPATH
  setenv INFOPATH /usr/local/texlive/2008/texmf/doc/info:$INFOPATH

Разумеется, в ваших конфигурационных файлах уже могут быть определены эти переменные; фрагменты выше добавляют к ним директории TEX Live.

3.4.4 Переменные окружения: глобальная конфигурация

Если вы хотите внести эти изменения для всех пользователей, или добавлять их автоматически для новых пользователей, то вам следует разобраться самому: в разных системах это делается слишком по-разному.

Два совета: 1) возможно, вам следует добавить в файл /etc/manpath.config строчки вроде:

  MANPATH_MAP /usr/local/texlive/2008/bin/i386-linux \
              /usr/local/texlive/2008/texmf/doc/man

И 2) иногда пути поиска и другие глобальные переменные окружения задаются в файле /etc/environment.

3.4.5 Работа с DVD

Обычно программы TEX Live узнают, где находятся нужные директории, из файла texmf.cnf. Они ищут этот файл, исходя из того, где находятся сами. Однако эта схема не работает, когда программа запускается с DVD. На DVD нельзя писать, но некоторые пути, которые должны быть в texmf.cnf, известны только после установки, поэтому этот файл не может находиться на DVD, и должен быть в другом месте. Это означает, что необходимо определить переменную окружения TEXMFCNF, которая говорит программам TEX Live, где искать файл texmf.cnf. Необходимо также изменить переменную PATH, как опсано выше.

В конце установки программа пишет сообщение, где указано, чему должна равняться переменная TEXMFCNF. На случай, если вы пропустили это сообщение: это $TEXMFSYSVAR/web2c. По умолчанию это /usr/local/texlive/2008/texmf-var/web2c, и вам нужно установить её так:

  TEXMFCNF=/usr/local/texlive/2008/texmf-var/web2c; export TEXMFCNF

или, для [t]csh:

  setenv TEXMFCNF /usr/local/texlive/2008/texmf-var/web2c

3.4.6 ConTEXt Mark IV

«Старый» ConTEXt должен работать «из коробки». Новая система Mark IV требует ручной конфигурации; см. http://wiki.contextgarden.net/Running_Mark_IV.

3.4.7 Добавление личных и локальных пакетов

Этот вопрос уже обсуждался в разделе 2.3: для локальных шрифтов и пакетов предназначена директория TEXMFLOCAL (по умолчанию, /usr/local/texlive/texmf-local или C:\Program Files\texlive\texmf-local), а для личных шрифтов и пакетов — директория TEXMFHOME (по умолчанию, $HOME/texmf или %USERPROFILE%\texmf). Эти директории предполагаются общими для всех версий TEX Live, и каждая версия TEX Live видит их автоматически. Поэтому мы не рекомендуем менять значение TEXMFLOCAL, иначе вам придется делать это для каждой новой версии.

Файлы в обеих директориях должны находиться в правильных поддиректориях; см. http://tug.org/tds и texmf/web2c/texmf.cnf. Например, LATEXовский класс или пакет должен находиться в директории TEXMFLOCAL/tex/latex или TEXMFHOME/tex/latex или какой-либо из их поддиректорий.

Для директории TEXMFLOCAL должна поддерживаться база данных о файлах, иначе система не сможет найти там нужные файлы. Эта база обновляется командой mktexlsr или кнопкой «Reinit file database» в графическом режиме программы tlmgr.

3.4.8 Добавление шрифтов

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

Возможная альтернатива — программа XeTEX (см. раздел 2.4), которая позволяет автоматически использовать в TEXе шрифты вашей операционной системы.

3.5 Тестирование системы

После установки TEX Live вы, скорее всего, захотите проверить работу системы, а уже затем перейти к созданию прекрасных документов и/или шрифтов.

В этом разделе описываются основные процедуры по тестированию системы. Мы приводим команды для операционных систем типа Unix; под Mac OS X и Windows вы, скорее всего, будете использовать графический интерфейс, но принцип тот же.

  1. Сначала проверьте, что вы можете запускать программу tex:

    > tex --version
    TeX 3.1415926 (Web2C 7.5.7)
    kpathsea version 3.5.7
    ...
    Если вы получаете в ответ «command not found» вместо номера версии и информации о копирайте, у вас, скорее всего, нет директории с нужными программами в переменной PATH. См. обсуждение на странице 39.
  2. Скомпилируйте простой LATEXовский файл:

    > latex sample2e.tex
    This is pdfeTeXk, Version 3.1415926...
    ...
    Output written on sample2e.dvi (3 pages, 7484 bytes).
    Transcript written on sample2e.log.
    Если программа не может найти sample2e.tex или другие файлы, возможно, у вас остались следы от старой установки: переменные окружения или конфигурационные файлы. Мы рекомендуем сначала убрать все переменные окружения, относящиеся к TEXу. (Для отладки вы всегда можете попросить TEX точно сказать, что именно он ищет; см. «Отладка» на стр. 71.)
  3. Посмотрите результат на экране:

    > xdvi sample2e.dvi
    (Под Windows аналогичная команда называется dviout.) Вы должны увидеть новое окно с красиво свёрстанным документом, объясняющим основы LATEXа. (Если вы — новичок, вам ст´оит его прочесть.) Чтобы программа xdvi могла запуститься, вы должны быть в среде X Window; если это не так, или если переменная DISPLAY установлена неправильно, вы увидите ошибку «Can’t open display».
  4. Создайте файл в формате PostScript для печати или просмотра на экране:

    > dvips sample2e.dvi -o sample2e.ps
  5. Создайте файл в формате PDF вместо DVI; команда ниже компилирует файл .tex и создаёт PDF:

    > pdflatex sample2e.tex
  6. Посмотрите результат на экране:

    > gv sample2e.pdf
    или:
    > xpdf sample2e.pdf
    К сожалению, ни gv, ни xpdf не включены в текущую версию TEX Live, так что вам придётся устанавливать их отдельно. См. соответственно http://www.gnu.org/software/gv и http://www.foolabs.com/xpdf. (Разумеется, есть и много других программ для простмотра файлов в формате PDF).
  7. Другие стандартные тестовые файлы, которые вам могут пригодиться:

    small2e.tex

    Более простой документ, чем sample2e, удобный, если последний слишком велик для вас.

    testpage.tex

    Проверяет поля и позиционирование бумаги для вашего принтера.

    nfssfont.tex

    Используется для печати таблиц шрифтов и тестов.

    testfont.tex

    Печать таблиц шрифтов под plain TEX.

    story.tex

    Самый канонический файл в формате (plain) TEX. Вы должны напечатать «\bye» в ответ на приглашение * после «tex story.tex».

Если вы новичок в TEXе, или вам нужна помощь в создании документов на языке TEX или LATEX, посетите http://tug.org/begin.html.

4 Установка в локальной сети

TEX Live может использоваться одновременно разными пользователями или даже разными машинами в локальной сети. В стандартной схеме директорий все пути к файлам являются относительными: программы TEX Live определяют, где лежат нужные им файлы, исходя из того, где они находятся сами. Вы можете увидеть, как это делается, посмотрев конфигурационный файл $TEXMFMAIN/web2c/texmf.cnf со строчками типа

  TEXMFMAIN = $SELFAUTOPARENT/texmf
  ...
  TEXMFLOCAL = $SELFAUTOPARENT/../texmf-local

Это означает, что другие системы или пользователи должны просто добавить директорию с программами TEX Live к директориям поиска.

Точно так же вы можете установить TEX Live на один компьютер, а затем перенести всю иерархию на локальную сеть.

Разумеется, пользователи Windows привыкли к другому. В директории texmf-doc/source/texlive/texlive-common/w32client находится пример скрипта install-w32client, который создает настройки и ярлыки для существующей системы TEX Live в локальной сети. Его можно запустить из файла install-w32client.bat, который находится в той же директории.

Дополнительная информация о конфигурации TEX Live и поиске файлов находится в разделе 8.1.

5 Максимально переносимая система TEX Live на DVD и USB

Вариант «работы с DVD », описанный в разделе 3.2.5, подходит для вашей собственной системы, но если вы — гость на чьем-нибудь чужом компьютере, вы захотите сделать так, чтобы после вас не оставалось никаких изменений в системе.

В корневой директории DVD TEX Live, или в директории texlive DVD TEX Collection находится скрипт tl-portable (Юникс) и файл tl-portable.bat (Windows), которые открывают терминал с переменными окружения, подходящими для работы с TEX Live непосредственно с DVD.

Когда эта программа запускается в первый раз, она создает несколько файлов в директории  /.tlportable2008, что требует некоторого времени. Впоследствии она запускается практически мгновенно.

Остальная система не будет ничего знать о TEX Live. Если вы хотите, чтобы ваш редактор знал о TEX Live, запустите его из параллельной сессии tl-portable.

Вы также можете использовать tl-portable, чтобы запускать TEX Live с флешки USB. Для этого скопируйте все файлы в корневой директории, а также по крайней мере содержимое bin, texmf, texmf-dist и tlpkg на флешку. Это может занять много времени! Если вы копируете на флешку в формате FAT32, вы должные раскрыть симлинки (cp -L). Если на флешке есть директория texmf-local, она будет найдена и использована.

После этого вы можете запускать скрипт tl-portable из корневой директории флешки, как описано выше. В этом случае скрипт поймет, что на флешку можно писать, и будет записывать автоматически созданные файлы туда. Вы можете прожечь DVD, если это более удобно (например, чтобы поделиться с кем-нибудь TEX Live).

6 Администрирование системы при помощи tlmgr


pict

Рис. 8: tlmgr в графическом режиме. Список пакетов/коллекций/схем виден только после нажатия на клавишу «Load»



pict

Рис. 9: tlmgr в графическом режиме: меню конфигурации


TEX Live содержит программу tlmgr для администрирования системы после установки. Программы updmap, fmtutil и texconfig все ещё есть в системе и будут там в будущем, но мы рекомендуем теперь программу tlmgr. Среди её возможностей:

Внимание: tlmgr не предназначена для запуска TEX Live с DVD, и не тестировалась в этом режиме.

6.1 Программа tlmgr в графическом режиме

Программа tlmgr может быть запущена в графическом режиме:

> tlmgr -gui
или на Windows из меню Start: Start, Programs, TeX Live 2008, TeX Live Manager. После нажатия на клавишу «Load», она показывает список доступных и установленных пакетов — перед последними стоит значок «(i)». Это, разумеется, происходит при условии, что источник установки доступен.

На рисунке 9 показано меню конфигурации.

6.2 Запуск программы tlmgr из командной строки

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

> tlmgr -location http://172.16.18.1/tldev install collection-xetex xkeyval
Система отвечает:
  install: collection-xetex
  install: arabxetex
  install: euenc
  install: bidi
  install: fontspec
  install: fontwrap
  install: ifxetex
  install: philokalia
  install: polyglossia
  install: xecyr
  install: xecyr.i386-linux
  install: xepersian
  install: xetex
  install: xetexconfig
  install: xetex.i386-linux
  running post install action for xetex
  install: xetex-def
  install: xetex-pstricks
  install: xetexfontinfo
  install: xltxtra
  install: xunicode
  install: xkeyval
  running mktexlsr
  mktexlsr: Updating /usr/local/texlive/2008/texmf/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/texmf-config/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/texmf-dist/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/texmf-doc/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/../texmf-local/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/texmf-var/ls-R...
  mktexlsr: Done.
  regenerating fmtutil.cnf
  running fmtutil-sys --missing
  ...
  Transcript written on xelatex.log.
  fmtutil: /usr/local/texlive/2008/texmf-var/web2c/xetex/xelatex.fmt installed.

Как видно, tlmgr устанавливает зависимости и призводит все нужные после установки действия, включая обновление базы данных файлов и создание форматов (здесь созданы форматы для XeTEX а).

В следующем примере мы добавляем новый язык. Это также приводит к перегенерации форматов:

> tlmgr install collection-langdutch
Описание пакета:

> tlmgr show collection-wintools
что вызывает следующий ответ:
  Package:   collection-wintools
  Category:  Collection
  ShortDesc: Windows support programs
  LongDesc:  Utilities for Windows, since they are not readily available there:
   gzip, chktex, jpeg2ps, unzip, wget, xpdf.
  Installed: Yes

Обновление всей системы до последней версии:

> tlmgr update -all
Если вам это кажется страшноватым, попробуйте сначала

> tlmgr update -all -dry-run
или

> tlmgr update -list
Документация:

> tlmgr -help

7 Дополнительные замечания о Windows

У TEX Live общая программа установки, которая работает и под Windows, и под Юниксом. Это стало возможным только после того, как мы отказались от поддержки старых версий Windows, поэтому TEX Live теперь можно установить только на Windows 2000 и младше.

7.1 Дополнительные возможности Windows

Под Windows программа установки делает несколько дополнительных вещей:

Меню и ярлыки.
Устанавливается подменю «TEX Live» меню «Start», которое содержит некоторые программы (tlmgr, texdoctk, программа PS_View для просмотра файлов в формате PostScript) и документацию. Добавляется ярлык PS_View на десктопе, куда можно отправлять постскриптовские файлы.
Автоматическая установка переменных окружения.
Все переменные окружения устанавливаются автоматически.
Удаление системы.
Программа установки создает в меню «Add/Remove Programs» запись «TEX Live». Клавиша «удалить» в меню tlmgr относится к этому.

7.2 Дополнительные пакеты для Windows


pict

Рис. 10: PS_View: возможно очень большое увеличение!


Для полноты дистрибутиву TEX Live необходимы дополнительные пакеты, которые обычно не встречаются на машине под Windows. В TEX Live есть недостающие вещи:

Perl и Ghostscript.
Ввиду важности этих программ, TEX Live включает их «скрытые» копии. Программы TEX Live, которым они нужны, знают, где их найти, но они не выдают их присутствия системе через переменные окружения или регистр. Это усеченные варианты программ Perl и Ghostscript, и они не должны замещать системные версии.
Утилиты командной строки.
Вместе с программами TEX Live устанавливается ряд портированных под Windows стандартных юниксовских утилит: gzip, chktex, jpeg2ps, unzip, wget и программы из набора xpdf. (Сам xpdf под Windows не работает, но на нем основана программа Sumatra: http://blog.kowalczyk.info/software/sumatrapdf.)
fc-cache
помогает XeTEX у эффективно работать со шрифтами.
PS_View.
Также устанавливается PS_View, новая программа для просмотра файлов формате PostScript под свободной лицензией, см. рисунок 10.
Директория support,
уже упомянутая в разделе 2.2. В этой директории находятся различные программы, которые могут быть полезны с TEXом, в частности, ряд удобных редакторов и оболочек. Программы в этой директории не устанавливаются автоматически. В этой директории также находится программа для просмотра DVI — программа dviout, описанная в следующем разделе.

7.3 Программа Dviout

К сожалению, в этой версии TEX Live нет автоматически устанавливаемой программы для просмотра DVI для Windows. Однако вы можете установить программу Тошио Ошимы dviout из директории support/dviout/. В этой директории есть также небольшой файл README, описывающий установку и конфигурацию dviout для TEX Live. Внимательно прочтите его перед установкой.

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

7.4 Ссылки на дополнительные программы

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

Ghostscript
http://www.cs.wisc.edu/~ghost/
Perl
http://www.activestate.com/ с дополнительными пакетами из архива CPAN, http://www.cpan.org/
ImageMagick
http://www.imagemagick.com, для конвертирования и преобразования графики.
NetPBM
http://netpbm.sourceforge.net/, тоже для графики/
Редакторы для TEXа
Их очень много, и выбор их — дело вкуса. Вот несколько, в произвольном порядке:

7.5 Домашняя директория под Windows

Домашней директории под Юниксом соответствует директория %USERPROFILE%. Под Windows XP и Windows 2000 это обычно C:\Documents and Settings\<username>, а под Windows Vista — C:\Users\<username>. В файле texmf.cnf и вообще при работе Kpathsea, ~ правильно интерпретируется и под Windows, и под Юниксом.

7.6 Регистр Windows

Windows хранит почти все конфигурационные данные в регистре. Регистр содержит набор иерархически организованных записей, с несколькими корневыми записями. Наиболее важны для программ установки записи HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE, сокращенно HKCU и HKLM. Как правило, HKCU находится в домашней директории пользователя (см. раздел 7.5), а HKLM — поддиректория директории Windows.

Иногда конфигурация системы определяется переменными окружения, но некоторые вещи (например, положение ярлыков) задаются в регистре. Для того, чтобы перманентно задать переменные окружения, также нужен доступ к регистру.

7.7 Права доступа под Windows

В поздних версиях Windows делается различие между обычными пользователями и администраторами, причем только последние имеют право доступа ко всей операционной системе. На практике однако было бы более правильно описывать эти классы пользователей как «непривилегированные пользователи» и «обычные пользователи»: права администратора являются правилом, а не исключением. Однако мы постарались сделать возможным установку TEX Live без прав администратора.

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

Вне зависимости от статуса пользователя, корень установки TEX Live, предлагаемый по умолчанию, всегда находится под %PROGRAMFILES%. Программа установки всегда проверяет, открыта ли корневая директория для текущего пользователя.

Может возникнуть проблема, если у пользователя нет прав администратора, а в пути поиска уже есть TEX. Поскольку в пути поиска системный путь стоит перед путем пользователя, TEX из TEX Live не будет найден. Чтобы обойти эту проблему, программа в таком случае создает ярлык с командной строкой, в которой директория TEX Live стоит первой в пути поиска. Из этой командной строки можно пользоваться TEX Live.

8 Руководство пользователя Web2C

Web2C — это интегрированная коллекция программ, относящихся к TEXу: сам TEX, Metafont, MetaPost, BibTeX, и т.д. Это сердце TEX Live. Страница Web2C с руководством пользователя и многим другим находится на http://tug.org/web2c.

Немного истории. Первая версия программы была написана Томасом Рокики, который в 1987 году создал систему TEX-to-C, адаптировав патчи для Юникса, разработанные в основном Говардом Трики и Павлом Куртисом. Тим Морган стал поддерживать систему, и в этот период её название сменилось на Web-to-C. В 1990 году Карл Берри взял на себя этот проект, координируя работу десятков программистов, а в 1997 он передал руководство Олафу Веберу.

Система Web2C работает на Юниксе, 32-битовых Windows, Mac OS X, и других операционных системах. Она использует оригинальные исходники Кнута для TEXа и других программ, написанных на языке WEB и переведённых на C. Основные программы системы:

bibtex

Поддержка библиографий.

dmp

Перевод troff в MPX (картинки в MetaPost).

dvicopy

Раскрытие виртуальные шрифты в файлах DVI.

dvitomp

Перевод DVI в MPX (рисунки в MetaPost).

dvitype

Перевод DVI в текст.

gftodvi

Гранки шрифтов.

gftopk

Упаковка шрифтов

gftype

Перевод GF в текст.

makempx

Вёрстка меток MetaPost.

mf

Создание шрифтов.

mft

Вёрстка исходников Metafont.

mpost

Создание технических диаграмм.

mpto

Извлечение меток MetaPost.

newer

Сравнение дат модификации.

patgen

Создание таблиц переносов.

pktogf

Перевод PK в GF.

pktype

Перевод PK в текст

pltotf

Перевод из списка свойств шрифта в TFM.

pooltype

Показ файлов pool в WEB.

tangle

Перевод WEB в Pascal.

tex

Вёрстка.

tftopl

Перевод TFM в список свойств шрифта.

vftovp

Перевод виртуального шрифта в список свойств шрифта.

vptovf

Перевод списка свойств шрифта в виртуальный шрифт.

weave

Перевод WEB в TEX.

Полностью эти программы описаны в документации к соответствующим пакетам и самой Web2C. Однако знание некоторых общих принципов для всей семьи программ поможет вам полнее использовать программы системы Web2C.

Все программы поддерживают стандартные опции GNU:

--help

напечатать краткую справку

--verbose

печатать подробную информацию по мере работы

--version

Напечатать версию программы и завершить работу.

Для поиска файлов программы Web2C используют библиотеку Kpathsea (http://tug.org/kpathsea). Эта библиотека использует комбинацию переменных окружения и конфигурационных файлов, чтобы найти нужные файлы в огромной системе TEX. Web2C может просматривать одновременно больше одного дерева директорий, что полезно для работы со стандартным дистрибутивом TEXа и его локальными расширениями. Для ускорения поисков файлов каждое дерево содержит файл ls-R, в котором указаны названия и относительные пути всех файлов в этом дереве.

8.1 Поиск файлов в Kpathsea

Рассмотрим сначала общий алгоритм библиотеки Kpathsea.

Будем называть путём поиска набор разделённых двоеточием или точкой с запятой элементов пути, представляющих из себя в основном названия директорий. Путь поиска может иметь много источников. Чтобы найти файл «my-file» в директории «.:/dir», Kpathsea проверяет каждый элемент пути по очереди: сначала ./my-file, затем /dir/my-file, возвращая первый файл (или, возможно, все файлы).

Чтобы работать с разными операционными системами, Kpathsea под системой, отличной от Юникса может использовать разделители, отличные от «:» и «/».

Чтобы проверить определённый элемент пути p, Kpathsea вначале проверяет наличие базы данных (см. раздел «База данных файлов» на стр. 67), т.е., есть ли база в директории, которая является префиксом для p. Если это так, спецификация пути сравнивается с содержимым базы данных.

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

Условие «файл должен существовать» важно для файлов «.vf» и файлов, которые открывает TEX по команде \openin. Такие файлы могут и не существовать (например, файл cmr10.vf), и было бы неправильно искать их на диске. Поэтому, если вы не обновите ls-R при установке нового файла «.vf», он никогда не будет найден. Каждый элемент пути ищется по очереди: сначала база данных, затем диск. Если нужный файл найден, поиск останавливается, и возвращается результат.

Хотя самый простой и часто встречающийся элемент пути — это название директории, Kpathsea поддерживает дополнительные возможности: разнообразные значения по умолчанию, имена переменных окружения, значения из конфигурационных файлов, домашние директории пользователей, рекурсивный поиск поддиректорий. Поэтому мы говорим, что Kpathsea вычисляет элемент пути, т.е., что библиотека преобразует спецификации в имя или имена директории. Это описано в следующих разделах в том же порядке, в котором происходит поиск.

Заметьте, что имя файла при поиске может быть абсолютным или относительным, т.е. начинаться с «/», или «./», или «../», Kpathsea просто проверяет, существует ли файл.

8.1.1 Источники путей поиска

Путь поиска может иметь разные источники. Kpathsea использует их в следующем порядке:

  1. Установленные пользователем переменные окружения, например TEXINPUTS. Переменные окружения с точкой и названием программы имеют преимущество; например если «latex» — имя программы. то TEXINPUTS.latex имеет преимущество перед TEXINPUTS.
  2. Конфигурационный файл, специфический для данной программы, например, строка «S /a:/b» в config.ps для dvips.
  3. Конфигурационный файл Kpathsea texmf.cnf, содержащий строку типа «TEXINPUTS=/c:/d» (см. ниже).
  4. Значение, заданное при компиляции.

Вы можете увидеть каждое из этих значений для данного пути поиска, задав соответствующий уровень отладки (см. «Отладка» на стр. 71).

8.1.2 Конфигурационные файлы

Kpathsea читает конфигурационные файлы texmf.cnf для задания своих параметров. Путь поиска для этих файлов называется TEXMFCNF (по умолчанию, такой файл находится в поддиректории texmf/web2c). Все найденные файлы texmf.cnf будут прочитаны, и определения в более ранних файлах имеют преимущество перед определениями в более поздних. Таким образом, если путь поиска задан как .:$TEXMF, значения в ./texmf.cnf имеют преимущество перед значениями в $TEXMF/texmf.cnf.

Фрагмент конфигурационного файла, иллюстрирующий эти правила, приведeн ниже:

  TEXMF              = {$TEXMFLOCAL,!!$TEXMFMAIN}
  TEXINPUTS.latex    = .;$TEXMF/tex/{latex,generic;}//
  TEXINPUTS.fontinst = .;$TEXMF/tex//;$TEXMF/fonts/afm//
  % e-TeX related files
  TEXINPUTS.elatex   = .;$TEXMF/{etex,tex}/{latex,generic;}//
  TEXINPUTS.etex     = .;$TEXMF/{etex,tex}/{eplain,plain,generic;}//

8.1.3 Подстановка путей

Kpathsea распознаёт определённые специальные символы и конструкции в путях поиска, аналогичные конструкциям в стандартных оболочках Юникса. Например, сложный путь ~$USER/{foo,bar}//baz, означает все поддиректории директорий foo и bar в домашней директории пользователя $USER, которые содержат файл или поддиректорию baz. Это объяснено в следующих разделах.

8.1.4 Подстановка по умолчанию

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

> setenv TEXINPUTS /home/karl:
и TEXINPUTS в файле texmf.cnf содержит

  .:$TEXMF//tex
то поиск будет происходить с путём

  /home/karl:.:$TEXMF//tex

Поскольку было бы бесполезно вставлять значение по умолчанию более чем один раз, Kpathsea изменяет только одно лишнее двоеточие, и оставляет остальные: она проверяет сначала двоеточие в начале, потом в конце, потом двойные двоеточия.

8.1.5 Подстановка скобок

Полезна также подстановка скобок, из-за которой, например, v{a,b}w означает vaw:vbw. Вложенность тут допускается. Благодаря этому можно иметь несколько иерархий директорий, путём присвоения значения со скобками $TEXMF. Например, в файле texmf.cnf, можно найти следующее определение (это упрощение, на самом деле там ещё больше деревьев):

    TEXMF = {$TEXMFHOME,$TEXMFLOCAL,!!$TEXMFVAR,!!$TEXMFMAIN}

Благодаря этому можно писать такое:

    TEXINPUTS = .;$TEXMF/tex//

что означает, что кроме текущей директории будет происходить поиск только в $TEXMFHOME/tex, $TEXMFLOCAL/tex, $TEXMFVAR/tex и $TEXMFMAIN/tex (последние два дерева используют файлы ls-R). Это удобно для поддержки двух параллельных структур, «замороженной» (например, на CD) и обновляемой по мере появления новых версий. Используя переменную $TEXMF во всех определениях, можно задать поиск в обновляемом дереве первым.

8.1.6 Подстановка поддиректорий

Два или более слэша «/» в элементе пути вслед за именем директории d заменяются всеми поддиректориями d рекурсивно. На каждом уровне порядок поиска по директориям не определён.

Если вы определите компоненты имени файла после «//», только поддиректории с соответствующими компонентами будут включены. Например, «/a//b» даёт поддиректории /a/1/b, /a/2/b, /a/1/1/b, и т.д., но не /a/b/c или /a/1.

Возможны несколько конструкций «//» в одном пути, но «//» в начале пути игнорируются.

8.1.7 Список специальных символов и их значений

В следующем списке приводятся специальные символы в конфигурационных файлах Kpathsea.

:

Разделитель в спецификациях путей; в начале или конце означает подстановку по умолчанию.

;

Разделитель для не-Юникса (то же, что :).

$

Подстановка переменных.

~

Означает домашнюю директорию пользователя.

{...}

Подстановка скобок.

//

Подстановка поддиректорий (может встретиться где угодно, кроме начала пути).

%

Начало комментария.

\

Символ продолжения (для команд из нескольких строк).

!!

Поиск только в базе данных, но не на диске.

8.2 Базы данных

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

Ещё одна база данных, файл aliases позволяет вам давать дополнительные названия файлам в ls-R. Это полезно, если вам нужно соблюдать правило DOS «8.3».

8.2.1 Базы данных ls-R

Как объяснено выше, основная база данных называется ls-R. Вы можете создать её в корне каждого дерева TEXа, которое просматривается Kpathsea (по умолчанию, $TEXMF); в большинстве случаев иерархия только одна. Kpathsea ищет файлы ls-R в пути TEXMFDBS.

Рекомендуемый способ создания и поддержки «ls-R» — скрипт mktexlsr, включённый в дистрибутив. Он вызывается разными скриптами «mktex»…. В принципе этот скрипт выполняет команды типа

cd /your/texmf/root && \ls -1LAR ./ >ls-R
при условии, что в вашей системе ls даёт вывод в нужном формате (GNU ls годится). Чтобы поддерживать базу данных в текущем состоянии, проще всего перегенерировать её регулярно из cronа, так что она автоматически обновляется после установки нового пакета.

Если файл не найден в базе данных, по умолчанию Kpathsea ищет его на диске. Если элемент пути начинается с «!!», то поиск происходит только в базе данных.

8.2.2 kpsewhich: поиск файлов

Программа kpsewhich выполняет поиск в соответствии с алгоритмом, описанным выше. Это может быть полезно в качестве варианта команды find для поиска файлов в иерархиях TEXа (это широко используется в скриптах «mktex»…).

> kpsewhich option… filename…
Опции, указанные в option, начинаются либо с «-» либо «--», и любые однозначные сокращения допустимы.

Kpathsea рассматривает каждый аргумент, не являющийся опцией, как имя файла, и возвращает первый найденный файл. Нет опции вернуть все найденные файлы (для этого можно использовать программу «find»).

Наиболее важные опции описаны ниже.

--dpi=num


Установить разрешение num; это влияет только на поиск файлов «gf» и «pk». Синоним «-D», для совместимости с dvips. По умолчанию 600.

--format=name


Установить формат для поиска name. По умолчанию, формат определяется из имени файла. Для форматов, для которых нет однозначного суффикса, например, файлов MetaPost и конфигурационных файлов dvips, вы должны указать название, известное Kpathsea, например, tex или enc files. Список можно получить командой kpsewhich --help.

--mode=string


Установить значение режима string; это виляет только на поиск файлов «gf» и «pk». Значения по умолчанию нет: ищутся файлы для всех режимов.

--must-exist


Сделать всё возможное, чтобы найти файл включая поиск на диске. По умолчанию для повышения эффективности просматривается только база данных ls-R.

--path=string


Искать в наборе директорий string (как обычно, разделённых двоеточиями), вместо того, чтобы вычислять путь поиска по имени файла. «//» и обычные подстановки работают. Опции «--path» и «--format» несовместимы.

--progname=name


Установить имя программы равным name. Это влияет на путь поиска из-за префикса .progname. По умолчанию kpsewhich.

--show-path=name


Показать путь, используемый при поисках файлов типа name. Можно использовать расширение (.pk, .vf и т.д.) или название, как для опции «--format».

--debug=num


Установить уровень отладки num.

8.2.3 Примеры использования

Давайте посмотрим на Kpathsea в действии. Вот простой поиск:

> kpsewhich article.cls
 /usr/local/texmf-dist/tex/latex/base/article.cls
Мы ищем файл article.cls. Так как суффикс «.cls» однозначен, нам не нужно указывать, что мы ищем файл типа tex (исходники TEXа). Мы находим его в поддиректории tex/latex/base директории «temf-dist» TEX Live. Аналогично, всё последующее находится без проблем благодаря однозначному суффиксу:

> kpsewhich array.sty
   /usr/local/texmf-dist/tex/latex/tools/array.sty
> kpsewhich latin1.def
   /usr/local/texmf-dist/tex/latex/base/latin1.def
> kpsewhich size10.clo
   /usr/local/texmf-dist/tex/latex/base/size10.clo
> kpsewhich small2e.tex
   /usr/local/texmf-dist/tex/latex/base/small2e.tex
> kpsewhich tugboat.bib
   /usr/local/texmf-dist/bibtex/bib/beebe/tugboat.bib

Кстати, последнее — библиографическая база данных для статей журнала TUGBoat.

> kpsewhich cmr10.pk
Битмапы шрифтов типа .pk используются программами dvips о xdvi. Ничего не найдено, так как у нас нет готовых файлов шрифтов Computer Modern в формате «.pk» (так как мы используем версии в формате Type 1 из дистрибутива TEX Live).

> kpsewhich wsiupa10.pk
   /usr/local/texmf-var/fonts/pk/ljfour/public/wsuipa/wsuipa10.600pk
Для этих шрифтов (фонетический алфавит, созданный в университете штата Вашингтон) мы должны сгенерировать «.pk», и так как режим Metafont [о умолчанию в нашей системе ljfour с разрешением of 600 dpi (точек на дюйм), этот шрифт и найден.

> kpsewhich -dpi=300 wsuipa10.pk
В этом случае нам нужно разрешение 300 dpi (-dpi=300); мы видим, что такого шрифта в системе нет. На самом деле программа dvips или xdvi построила бы нужный файл .pk при помощи скрипта mktexpk.

Теперь обратимся к заголовкам и конфигурационным файлам dvips. Вначале рассмотрим один из наиболее часто используемых файлов, пролог tex.pro для поддержки TEXа, а затем рассмотрим общий конфигурационный файл config.ps и карту шрифтов psfonts.map (с 2004 года карты и файлы кодировок имеют собственные пути поиска в деревьях texmf). Так как суффикс «.ps» неоднозначен, мы должные явно указать тип файла, который мы ищем: (dvips config) для файла config.ps.

> kpsewhich tex.pro
   /usr/local/texmf/dvips/base/tex.pro
> kpsewhich --format="dvips config" config.ps
   /usr/local/texmf/dvips/config/config.ps
> kpsewhich psfonts.map
   /usr/local/texmf/fonts/map/dvips/updmap/psfonts.map

Рассмотрим теперь файлы поддержки URW Times (PostScript). Префикс для этих файлов в стандартной схеме обозначения шрифтов «utm». Вначале мы рассмотрим конфигурационный файл, который содержит название карты шрифтов:

> kpsewhich --format="dvips config" config.utm
/usr/local/texmf-dist/dvips/psnfss/config.utm
Содержание этого файла:

  p +utm.map
что указывает на файл utm.map, который мы хотим теперь найти.

> kpsewhich --format="dvips config" utm.map
   /usr/local/texmf-dist/fonts/map/dvips/times/utm.map
Эта карта определяет названия шрифтов формата Type 1 (PostScript) в коллекции URW. Она выглядит так (мы показываем только часть файла):

utmb8r  NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmbi8r NimbusRomNo9L-MediItal... <utmbi8a.pfb
utmr8r  NimbusRomNo9L-Regu    ... <utmr8a.pfb
utmri8r NimbusRomNo9L-ReguItal... <utmri8a.pfb
utmbo8r NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmro8r NimbusRomNo9L-Regu    ... <utmr8a.pfb
Давайте найдём, например, файл для Times Roman utmr8a.pfb:

> kpsewhich utmr8a.pfb
   /usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb

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

8.2.4 Отладка

Иногда необходимо проверить, как программа ищет файлы. С этой целью Kpathsea предлагает разные уровни отладки:

 1

статистика обращений к диску. При работе с базами ls-R это почти не должно давать записей в лог.

 2

Ссылки на хеши (например, базы данных ls-R, конфигурационные файлы и т.д.).

 4

Операции открытия и закрытия файлов.

 8

Общая информация о типах файлов, которые ищет Kpathsea. Это полезно для того, чтобы найти, где определяется тип пути поиска для данного файла.

16

Список директорий для каждого элемента пути (при поисках на диске).

32

Поиски файлов.

64

Значения переменных.

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

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

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

(Примечание для пользователей Windows: в этой системе трудно перенаправить все сообщения в файл. Для диагностики вы можете временно установить SET KPATHSEA_DEBUG_OUTPUT=err.log).

Рассмотрим в качестве примера простой файл в формате LATEX, hello-world.tex, со следующим содержанием:

    \documentclass{article}
    \begin{document}
    Hello World!
    \end{document}

Этот маленький файл использует только шрифт cmr10, так что давайте посмотрим, как dvips создаёт файл в формате PostScript (мы хотим использовать версию шрифтов в формате Type 1, отсюда опция -Pcms).

> dvips -d4100 hello-world -Pcms -o
В этом случае мы объединили отладочный уровень 4 для dvips (директории шрифтов) с подстановкой элементов путей в Kpathsea(см. Руководство пользователя dvips, texmf/doc/html/dvips/dvips_toc.html). Результат (слегка отредактированный) показан на рисунке 11.


debug:start search(file=texmf.cnf, must_exist=1, find_all=1,
  path=.:/usr/local/bin/texlive:/usr/local/bin:
       /usr/local/bin/texmf/web2c:/usr/local:
       /usr/local/texmf/web2c:/.:/./teTeX/TeX/texmf/web2c:).
kdebug:start search(file=ls-R, must_exist=1, find_all=1,
  path=~/tex:/usr/local/texmf).
kdebug:search(ls-R) =>/usr/local/texmf/ls-R
kdebug:start search(file=aliases, must_exist=1, find_all=1,
  path=~/tex:/usr/local/texmf).
kdebug:search(aliases) => /usr/local/texmf/aliases
kdebug:start search(file=config.ps, must_exist=0, find_all=0,
  path=.:~/tex:!!/usr/local/texmf/dvips//).
kdebug:search(config.ps) => /usr/local/texmf/dvips/config/config.ps
kdebug:start search(file=/root/.dvipsrc, must_exist=0, find_all=0,
  path=.:~/tex:!!/usr/local/texmf/dvips//).
search(file=/home/goossens/.dvipsrc, must_exist=1, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//).
kdebug:search($HOME/.dvipsrc) =>
kdebug:start search(file=config.cms, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//).
kdebug:search(config.cms)
=>/usr/local/texmf/dvips/cms/config.cms
Рис. 11: Поиск конфигурационных файлов
kdebug:start search(file=texc.pro, must\_exist=0, find\_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(texc.pro) => /usr/local/texmf/dvips/base/texc.pro
Рис. 12: Поиск файла пролога
kdebug:start search(file=cmr10.tfm, must\_exist=1, find\_all=0,
  path=.:~/tex/fonts/tfm//:!!/usr/local/texmf/fonts/tfm//:
       /var/tex/fonts/tfm//).
kdebug:search(cmr10.tfm) => /usr/local/texmf/fonts/tfm/public/cm/cmr10.tfm
kdebug:start search(file=texps.pro, must\_exist=0, find\_all=0,
   ...
<texps.pro>
kdebug:start search(file=cmr10.pfb, must\_exist=0, find\_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(cmr10.pfb) => /usr/local/texmf/fonts/type1/public/cm/cmr10.pfb
<cmr10.pfb>[1]
Рис. 13: Поиск файла шрифта

Программа dvips вначале ищет свои конфигурационные файлы. Сначала находится texmf.cnf, который содержит определения для путей поиска остальных файлов, затем база данных ls-R (для оптимизации поиска файлов) и файл aliases, который позволяет объявить несколько имён (например, короткие 8.3 и более длинные) для одного файла. Затем dvips ищет свой конфигурационный файл config.ps и файл .dvipsrc (который в данном случае не найден). Наконец, dvips находит конфигурационный файл для шрифтов Computer Modern PostScript config.cms (это было задано опцией -Pcms в командной строке). Этот файл содержит список карт, которые определяют соотношения между файлами в форматах TEX, PostScript и названиями шрифтов:

> more /usr/local/texmf/dvips/cms/config.cms
   p +ams.map
   p +cms.map
   p +cmbkm.map
   p +amsbkm.map
dvips находит все эти файлы плюс общую карту шрифтов psfonts.map, которая всегда загружается (она содержит обычные шрифты в формате PostScript; см. последнюю часть раздела 8.2.3).

В этот момент dvips сообщает о себе пользователю:

This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com)
Затем она ищет пролог texc.pro:


kdebug:start search(file=texc.pro, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(texc.pro) => /usr/local/texmf/dvips/base/texc.pro

Найдя этот файл, dvips печатает дату и время, и информирует нас, что собирается генерировать файл hello-world.ps, что ей нужен файл cmr10, и что последний является «резидентным» (битмапы не нужны):


TeX output 1998.02.26:1204’ -> hello-world.ps
Defining font () cmr10 at 10.0pt
Font cmr10 <CMR10> is resident.
Теперь она ищет файл cmr10.tfm, который она находит, затем ещё несколько прологов (здесь они опущены), и наконец файл формата Type 1 cmr10.pfb найден и включён в выходной файл (см, последнюю строку):


kdebug:start search(file=cmr10.tfm, must_exist=1, find_all=0,
  path=.:~/tex/fonts/tfm//:!!/usr/local/texmf/fonts/tfm//:
       /var/tex/fonts/tfm//).
kdebug:search(cmr10.tfm) => /usr/local/texmf/fonts/tfm/public/cm/cmr10.tfm
kdebug:start search(file=texps.pro, must_exist=0, find_all=0,
   ...
<texps.pro>
kdebug:start search(file=cmr10.pfb, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(cmr10.pfb) => /usr/local/texmf/fonts/type1/public/cm/cmr10.pfb
<cmr10.pfb>[1]

8.3 Опции запуска

Ещё одна полезная возможность Web2C — контроль параметров памяти (в особенности размер массивов) при запуске, во время чтения файла texmf.cnf библиотекой Kpathsea. Параметры памяти находятся в части 3 этого файла в дистрибутиве TEX Live. Вот самые важные:

main_memory

Общее количество слов в памяти для программ TEX, Metafont и MetaPost. После изменения этого параметра надо перегенерировать формат. Например, вы можете создать «огромную» версию TEXа, и назвать соответствующий формат hugetex.fmt. По общим правилам Kpathsea, значение переменной main_memory будет читаться из файла texmf.cnf.

extra_mem_bot

Дополнительная память для «больших» структур, которые создаёт TEX: боксов, клея и т.д. Особенно полезно при использовании PI CTEXа.

font_mem_size

Количество слов информации о шрифтах для TEXа. Это примерно суммарный размер всех файлов TFM, которые читает TEX.

hash_extra

Дополнительный размер хеша для имён команд. Примерно 10 000 команд может быть помещено в основной хеш. Если вы делаете большую книгу со многими перекрёстными ссылками, этого может не хватить. По умолчанию hash_extra равен 50000.

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

9 Благодарности

TEX Live — результат объединённых усилий практически всех групп пользователей TEXа. Это издание TEX Live выходит под редакцией Карла Берри. Другие основные авторы, прошлые и настоящие, перечислены ниже. Мы благодарим:

Программы компилировали: Тигран Айвазян (x86_64-linux), Тим Арнольд (hppa-hpux), Рэнди Ау (amd64-freebsd), Эдд Барретт (i386-openbsd), Карл Берри (i386-linux), Акира Какуто (win32), Дик Коч (universal-darwin), Манфред Лотц (i386-freebsd), Нерберт Прейнинг (alpha-linux), Артур Рейтенауэр (sparc-linux), Томас Шмитц (powerpc-linux), Апостолос Сиропулос (i386-solaris), Владимир волович (powerpc-aix, sparc-solaris), Олаф Вебер (mips-irix). Информация о процессе компилирования TEX Live находится на http://tug.org/texlive/build.html.

Документация и переводы: Карл Берри (английский), Даниэль Флипо (французский), Клаус Хёппнер (немецкий), Петр Сойка и Ян Буса (чешский и словацкий), Борис Вейцман (русский), Сташек Ваврикевич (польский). Страница документации TEX Live: http://tug.org/texlive/doc.html.

Разумеется, наша главная благодарность — Дональду Кнуту, во-первых, за разработку TEXа, и во-вторых, за то, что он подарил его миру.

10 История издания

10.1 Прошлое

В конце 1993 года в голландской группе пользователей TEXа во время работы над дистрибутивом 4AllTEX CD для пользователей MS-DOS возникла новая идея. Была поставлена цель создать единый CD для всех систем. Эта цель была черечур сложна для того времени, однако она привела не только к появлению очень успешного CD 4AllTEX, но и к созданию рабочей группы Технического Совета TUG по структуре директорий для TEXа (http://tug.org/tds), которая разработала стандарт структуры директорий для системы TEX и указала, как создать логичную единую систему файлов для TEXа. Несколько версий TDS было опубликовано в декабрьском выпуске TUGboat в 1995 году, и с самого начала стало ясно, что следует создать пример структуры на CD. Дистрибутив, который вы держите в руках, — прямой результат работы этой группы. Из успеха 4AllTEX был сделан вывод, что пользователям Юникса также подойдёт такая удобная система, и так родилась другая важная часть TEX Live.

Мы начали делать CD с Юниксом и структурой директорий TDS осенью 1995 года, и быстро поняли, что у teTEXа Томаса Эссера идеальный состав дистрибутива и поддержка многих платформ. Томас согласился нам помочь, и мы в начале 1996 года стали серьёзно работать над дистрибутивом. Первое издание вышло в мае 1996 года. В начале 1997 года Карл Берри завершил новую версию Web2C, которая включила практически все новые возможности, добавленные Томасом Эссером в teTEX, и мы решили основать второе издание на стандартном Web2C, с добавлением скрипта texconfig из teTEXа. Третье издание CD основывалось на новой версии Web2C 7.2, Олафа Вебера; в то же время была выпущена новая версия teTEXа, и TEX Live включил почти все его новые возможности. Четвертое издание следовало той же традиции, используя новую версию teTEXа и Web2C (7.3). Теперь в нём была полная система для Windows.

Для пятого издания (март 2000 года) многие пакеты на CD были пересмотрены и проверены. Информация о пакетах была собрана в файлы XML. Но главным изменением в TEX Live 5 было удаление всех несвободных программ. Всё на TEX Live преполагается совместимым с Правилами Дебиана для Свободных Программ (http://www.debian.org/intro/free); мы сделали всё, что могли, чтобы проверить лицензии всех пакетов, и мы будем благодарны за любое указание на ошибки.

В шестом издании (июль 2001 года) было много нового материала. Главным была новая концепция установки: пользователь выбирал нужный набор коллекций. Языковые коллекции были полностью реорганизованы, так что выбор любой из них устанавливал не только макросы, шрифты и и т.д., но и вносил изменения в language.dat.

Седьмое издание 2002 года добавило поддержку Mac OS X, и большое количество обновлений для пакетов и программ. Важной целью была интеграция с teTEXом, чтобы исправить расхождение, наметившееся в версиях 5 и 6.

10.1.1 2003

В 2003 году мы продолжили изменения и дополнения, и обнаружили, что TEX Live так вырос, что не помещается на CD. Поэтому мы разделили его на три дистрибутива. Кроме того:

10.1.2 2004

В 2004 году мы внесли много изменений.

10.1.3 2005

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

10.1.4 2006–2007

В 2006–2007 главным нововведением была программа XeTEX, вызываемая как xetex или xelatex; см. http://scripts.sil.org/xetex.

Значительно обновлена программа MetaPost; предполагаются дополнительные обновления в будущем (http://tug.org/metapost/articles). Также обновлён pdfTEX (http://tug.org/applications/pdftex).

Форматы .fmt и т.д. теперь хранятся в поддиректориях texmf/web2c, а не в самой директории (хотя директория всё ещё включена в поиск форматов, на случай, если там находятся старые файлы). Поддиректории названы по имени программы, например, tex, pdftex, xetex. Это изменение не должно влиять на работу программ.

Программа (plain) tex больше не определяет по %& в первой строке, какой формат использовать: это всегда Кнутовский TEX (LATEX и другие ещё используют %&).

Разумеется, в этом году были, как обычно, сотни обновлений пакетов и программ. Как обычно, обновлённые версии можно найти в сети CTAN (http://www.ctan.org).

Дерево TEX Live теперь хранится в системе Subversion, и у нас появился WWW-интерфейс для его просмотра. Мы предполагаем, что эта система будет использована для разработки в ближайшем будущем.

Наконец, в мае 2006 года Томас Эссер объявил о прекращении работы над teTEXом (http://tug.org/tetex). Это вызвало всплеск интереса к TEX Live, особенно среди разработчиков систем GNU/Линукса (мы добавили схему tetex, которая устанавливает систему, примерно соответствующую teTEXу). Мы надеемся, что это приведёт в конечном итоге к улучшению работы в TEXе для всех.

Последнее замечание о прошлом: все выпуски TEX Live вместе с дополнительными материалами вроде обложек CD хранятся на ftp://tug.org/historic/systems/texlive. ftp://tug.org/historic/systems/texlive.

10.2 Настоящее

В 2008 была заново разработана и переписана вся структура TEX Live. Полная информация об установке системы теперь хранится в текстовом файле tlpkg/texlive.tlpdb.

Помимо прочего, это наконец позволило обновление TEX Live по сети — возможность, которая много лет была у программы MiKTEX. Мы предполагаем регулярно обновлять пакеты, поступающие на CTAN.

Включен новый важный «движок» LuaTEX (http://luatex.org); помимо нового уровня верстки, это дает прекрасный скриптовый язык для использования как изнутри документов TEXа, так и отдельно.

Поддержка многих платформ на основе Юникса и Windows теперь гораздо более последовательна. В частности, большинство скриптов на языках Perl и Lua теперь доступны под Windows благодаря версии Perlа, распространяемой с TEX Live.

Новый скрипт tlmgr (см. раздел 6) теперь является основным интерфейсом для администрирования TEX Live после установки. Он осуществляет обновление пакетов и перегенерирование форматов, карт шрифтов и языков, включая локальные добавления.

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

Программа xindy (http://xindy.sourceforge.net/) для создания указателей теперь работает на большинстве платформ.

Программа kpsewhich теперь может сообщить обо всех нужных файлах (опция –all) и ограничить поиск определенной поддиректорией (опция –subdir).

Программа dvipdfmx теперь может извлекать информацию о рамке, если вызвана как extractbb; это одна из последних возможностей программы dvipdfm, которой не было у dvipdfmx.

Алиасы Times-Roman, Helvetica и т.д. убраны. Разные пакеты ожидают от них разного поведения (особенно при разных кодировках), и мы не нашли способа решить эту проблему единообразно.

Формат platex убран из-за конфликта с японским пакетом platex; теперь основная поддержка польского языка осуществляется через пакет polski.

Пулы строковых констант WEB теперь компилируются в сами программы для удобства обновлений.

Наконец, добавлены изменения, сделанные Дональдом Кнутом в его «Настройке TEXа 2008 года», см. http://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf.

10.3 Будущее

TEX Live не совершенен! (И никогда не будет.) Мы предполагаем выпускать новые версии, добавляя справочный материал, утилиты, установочные программы и (конечно) новое, улучшенное и проверенное дерево макросов и шрифтов. Эта работа делается очень занятыми добровольцами в свободное время, и многое остается сделать. Если вы можете помочь, не стесняйтесь. См. http://tug.org/texlive/contribute.html.

Присылайте, пожалуйста, замечания и предложения по адресу:

tex-live@tug.org
http://tug.org/texlive

Happy TEXing!