% $Id$ % %\def\Status{1} \documentclass{article} \let\tldocrussian=1 % for live4ht.cfg \usepackage{tex-live-rus} \usepackage[koi8-r]{inputenc} \usepackage[russian]{babel} \newcommand\Unix{Unix} \newcommand\Windows{Windows} \usepackage{indentfirst} \def\p.{стр.~}% % \begin{document} \title{% {\huge \textit{Руководство пользователя \protect\TL{}}\\\strut} {\LARGE \textsf{\TK{} 2005}} } \author{Редакторы: Себастьян Ратц \& Карл Берри\\[3mm] \url{http://tug.org/texlive/}} \date{Ноябрь 2005} \maketitle \begin{multicols}{2} \tableofcontents \listoftables \end{multicols} \section{Введение} \label{sec:intro} В этом документе описаны основные возможности программного продукта \TL{} "---дистрибутивом \TeX{}а и других программ для \acro{GNU}/Линукса и других операционных систем типа Unix, \MacOSX, и (32-битовых) Windows. (Внимание: этот продукт не совместим со старыми Макинтошами или \acro{MS-DOS}). \TL{} включает откомпилированные программы \TeX{}, \LaTeXe{}, \MF, \MP, \BibTeX{} и многие другие; обширную коллекцию макросов, шрифтов и документации; а также поддержку вёрстки на многих языках мира. Он является частью ещё б\'ольшей коллекции \TK{} (кратко описанной ниже в разделе~\ref{sec:struct-tl}, \p.\pageref{sec:struct-tl}), созданной объединёнными усилиями групп пользователей \TeX a. Более новые версии пакетов, включённых в дистрибутив, можно найти в архиве \acro{CTAN}, \url{http://www.ctan.org}. Краткий список основных изменений в этом издании \TeXLive{} можно найти в разделе~\ref{sec:history}, \p.\pageref{sec:history} конце документа. \subsection{Как пользоваться \protect\TL{}} \label{sec:basic} \TL{} можно использовать тремя способами: \begin{enumerate} \item Можно работать с \TeXLive{} прямо с \pkgname{live} \DVD{} (см. раздел~\ref{sec:multiple-dist}, \p.\pageref{sec:multiple-dist}). Естественно, при этом почти не тратится место на диске, и вы немедленно получаете доступ ко всему дистрибутиву \TL{}. Разумеется, система работает несколько медленнее, чем при работе с диска, но и эта скорость работы может оказаться вполне удовлетворительной. \item Вы можете установить \TL{} полностью или частично на ваш диск. Это самый распространённый способ использования \TL. Вам потребуется примерно 100 мегабайтов в минимальном варианте и 1.3 гигабайта и выше для полной системы. \item Вы можете установить определённый пакет или коллекцию пакетов в ваш собственный \TeX{}: либо в установленную ранее систему \TL{}, либо в другую систему. \end{enumerate} \noindent Всё это подробно описано в разделе руководства по установке, относящегося к вашей операционной системе. Вкратце: \begin{itemize*} \item Основные скрипты для установки системы для Юникса и \MacOSX{}: \texttt{install-tl.sh}; \item Скрипт установки отдельного пакета: \texttt{install-pkg.sh}; \item Программа установки для Windows \texttt{tlpmgui.exe}. Она может быть также использована для добавления или удаления пакетов. См. более полное описание в разделе~\ref{sec:win-install} ниже. \end{itemize*} \subsection{Где можно получить поддержку} \label{sec:help} Сообщество пользователей \TeX{}а активно и дружелюбно, и практически на каждый серьёзный вопрос найдётся ответ. Однако эта поддержка неформальна, выполняется добровольцами, и поэтому очень важно, чтобы вы сами попробовали найти ответ перед тем, как задавать вопрос. (Если вы предпочитаете коммерческую поддержку, возможно вам ст\'оит вместо \TL{} купить одну из коммерческих версий \TeX{}а, см. список по адресу \url{http://tug.org/interest.html#vendors} for a list). Вот список источников поддержки, приблизительно в том порядке, в котором мы предлагаем к ним обращаться: \begin{description} \item[Страница для новичков] Если вы "---новичок, то страница \url{http://tug.org/begin.html} может послужить для начала. \item [\TeX{} \acro{FAQ}] \TeX{} \acro{FAQ} (ЧаВо, часто задаваемые вопросы) "---огромная коллекция ответов на всевозможные вопросы, от самых простых до самых сложных. Английская версия ЧаВо находится на \TL{} в разделе \OnCD{texmf-doc/doc/english/FAQ-en} и доступна в Интернете по адресу \url{http://www.tex.ac.uk/faq}. Пожалуйста, попробуйте найти ответ на свой вопрос там перед тем, как задавать его в различных сообществах. \item [\TeX{} Catalogue] Если вы ищете какой-либо пакет, шрифт, программу и т.п., то вам стоит заглянуть в \TeX{} Catalogue. Это огромный каталог всего, что относится к \TeX{}у. См. \OnCD{texmf-doc/doc/english/catalogue} или \url{http://www.ctan.org/tex-archive/help/Catalogue}. \item [\TeX{} во всемирной паутине] Вот страничка, на которой много ссылок по \TeX{}у, включая многочисленные книги, руководства и статьи: \url{http://tug.org/interest.html}. \item [Архивы списков рассылки и групп] Два основный форума технической поддержки "---группа \url{news:comp.text.tex} и список рассылки \email{texhax@tug.org}. В их архивах тысячи вопросов и ответов на все случаи жизни. См. \url{http://groups.google.com/groups?group=comp.text.tex} и \url{http://tug.org/mail-archives/texhax}. Поиск, например, в Гугле \url{http://google.com} тоже часто помогает найти ответ. \item [Публикация вопросов] Если вы не можете найти ответа на ваш вопрос, вы можете опубликовать вопрос в \dirname{comp.text.tex} при помощи Google или вашей любимой новостной программы, или послав письмо в \email{texhax@tug.org}. Но перед этим \emph{пожалуйста} прочтите в ЧаВо совет о том, как правильно задавать вопросы в этих форумах: \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion}. \item [Поддержка \TL{}] Если вы хотите сообщить о баге или сообщить нам свои предложения и замечания о дистрибутиве \TL{}, его установке или документации, пишите на лист рассылки \email{tex-live@tug.org}. Однако если ваш вопрос касается конкретной программы, входящей в \TL{}, вам лучше задавать вопросы её автору или посылать их на соответствующий список рассылки. \item[Русскоязычные ресурсы] \emph{(добавлено переводчиком)} Эхоконференция \dirname{ru.tex} доступна как в сети ФИДО, так и в Интернете (как \url{news:fido7.ru.tex}). Русские группы ФИДО можно найти на многих серверах, например \code{demos.ddt.su}. В FAQ этой группы (автор: Михаил Колодин) приводится много ссылок на русскоязычные ресурсы. \end{description} С другой стороны, вы сами тоже можете помочь тем, у кого есть вопросы. И \dirname{comp.text.tex}, и \code{texhax}, и \dirname{fido7.ru.tex} открыты для всех, поэтому вы тоже можете присоединиться, читать и помогать другим. Добро пожаловать в сообщество пользователей системы \TeX{}! % don't use \TL so the \uppercase in the headline works. Also so % tex4ht ends up with the right TeX. Likewise the \protect's. \section{Структура \protect\TeX\protect\ Live} \label{sec:struct-tl} Этот раздел описывает структуру и содержание \TK{} и его составной части \TL{}. \subsection{Дистрибутивы: \protect\pkgname{live}, \protect\pkgname{inst}, \protect\pkgname{protext}} \label{sec:multiple-dist} Ограничения на объём \acro{CD-ROM} заставили нас разделить \TL{} на несколько дистрибутивов: \begin{description} \item [live] полная система, которой можно пользоваться непосредственно с \acro{DVD} или установить на диск; она чересчур велика для \acro{CD}. В \DVD{} также включена копия архива \CTAN{}, дистрибутив \pkgname{protext} для Windows, дистрибутив Mac\TeX\ для \MacOSX, "---~все эти директории отдельны от \TL{}, а также некоторые другие пакеты в директории \texttt{texmf-extra}. Лицензии на использование \CTAN{}, \pkgname{protext}, Mac\TeX\ и \texttt{texmf-extra} отличаются от лицензии на \TL{}, поэтому будьте внимательны при распространении или модификации программ, входящих в эти дистрибутивы. \item [inst(allable)] полная система на \CD; чтобы она поместилась, мы сжали всё, что могли. Поэтому невозможно пользоваться \TeX{}ом непосредственно с этого \CD; вам придётся установить его на диск вашего компьютера (отсюда название дистрибутива). Установка описана в следующих разделах. \item[protext] улучшенный вариант системы \MIKTEX\ для Windows. \ProTeXt\ включает в себя дополнительные программы и упрощённую установку. Он не зависит от \TL{} и включает собственные инструкции по установке. Его можно запускать с \CD/\DVD\ или установить на ваш диск. Страница \ProTeXt\ находится вот тут: \url{http://tug.org/protext}. \ProTeXt\ находится и на live \DVD, и на отдельном \CD{} (для тех, кто не может пользоваться \DVD). \end{description} \noindent Вы можете определить, какой дистрибутив перед вами, посмотрев на файл \texttt{00\var{type}.TL} в корневой директории. В этом файле находится также дата выпуска \TL. Естественно, каждая группа пользователей \TeX а сама выбирает, что ей распространять (члены \acro{TUG} получат все три диска). \subsection{Корневые директории} \label{sec:tld} Вот краткое описание корневых директорий в дистрибутиве \TL{}. На \pkgname{live} \DVD вся иерархия \TL{} помещена в поддиректорию \dirname{texlive2005}, а не в корень диска. \smallskip \begingroup \renewcommand{\arraystretch}{1.3} % open up interrow spacing \begin{tabular}{>{\ttfamily}lp{.78\hsize}} bin & Программы системы \TeX{}, сгруппированные по платформам \\ source & Исходный код всех программ, включая дистрибутивы \Webc{} \TeX{} и \MF{}. Они хранятся в сжатом архиве (\cmdname{tar-bzip2}). \\ support & Разные вспомогательные пакеты и программы. Они \emph{не} устанавливаются по умолчанию. Сюда относятся разнообразные редакторы и оболочки для \TeX{}а. \\ texmf & Дерево для программ, их вспомогательных файлов и документации. \emph{Не} включает форматов и пакетов \TeX а \\ texmf-dist & Основное дерево форматов и пакетов. \\ texmf-doc & Дерево самостоятельной документации, не относящейся к отдельным пакетам и программам, сгруппированное по языкам. \\ texmf-var & Дерево автоматически создаваемых файлов (\texttt{TEXMFDIST} в следующем разделе). \\ xemtex & Дерево вспомогательных программы для Windows. Эти программы обычно уже есть на системах типа Unix, или, по крайней мере, их там легко скомпилировать. \\ \end{tabular} \endgroup \smallskip Кроме этих директорий, в корневой директории находятся скрипты установки и файлы \filename{README} (на разных языках). Новая директория \dirname{texmf-doc} содержит только документацию, но она не содержит всю документацию. Документация к программам (руководства, man, info) находится в директории \dirname{texmf/doc}, поскольку программы находятся в директории \dirname{texmf}. Аналогично документация для макропакетов и форматов находится в директории \dirname{texmf-dist/doc}. Для поиска документации можно воспользоваться программами \cmdname{texdoc} или \cmdname{texdoctk}. Можно также воспользоваться ссылками в файле \OnCD{doc.html}. \subsection{Описание деревьев texmf} \label{sec:texmftrees} В этом разделе описаны все переменные, задающие положение деревьев texmf и их значения по умолчанию. Команда \texttt{texconfig conf} показывает текущие значения этих переменных, так что вы можете легко проверить, где эти директории находятся в вашей системе. \begin{ttdescription} \item [TEXMFMAIN] Дерево, где находятся основные части системы, такие, как вспомогательные скрипты (например, \verb+web2c/mktexdir+), файлы со значениями текстовых констант и другие. \item [TEXMFDIST] Дерево с основным набором макропакетов, шрифтов и т.д. в первоначальной конфигурации. \item [TEXMFLOCAL] Дерево, которое может быть использовано администраторами системы для дополнительных или более новых пакетов, шрифтов и т.д. \item [TEXMFHOME] Дерево, которое пользователи могут использовать для установки собственных дополнительных или более новых пакетов, шрифтов и т.д. Эта переменная зависит по умолчанию от переменной \verb+$HOME+, % $ своей для каждого пользователя. \item [TEXMFCONFIG] Это дерево используется утилитами \verb+texconfig+, \verb+updmap+ и \verb+fmtutil+ программы te\TeX{} для хранения модифицированных файлов конфигурации. По умолчанию находится в директории \verb+$HOME+. %$ \item [TEXMFSYSCONFIG] Это дерево используется утилитами \verb+texconfig-sys+, \verb+updmap-sys+ и \verb+fmtutil-sys+ программы te\TeX{} для хранения модифицированных файлов конфигурации, общих для всех пользователей. \item [TEXMFVAR] Это дерево используется утилитами \verb+texconfig+, \verb+updmap+ и \verb+fmtutil+ программы te\TeX{} для хранения создаваемых автоматически файлов: форматов, карт шрифтов. По умолчанию находится в директории \verb+$HOME+. %$ \item [TEXMFSYSVAR] Это дерево используется утилитами \verb+texconfig-sys+, \verb+updmap-sys+ и \verb+fmtutil-sys+ программы te\TeX{} для хранения создаваемых автоматически файлов: форматов, карт шрифтов, "---~общих для всех пользователей. \end{ttdescription} Более полное обсуждение утилиты \texttt{texconfig} и родственных ей программ находится в разделе \ref{sec:texconfig}, \p.\pageref{sec:texconfig}. \subsection{Расширения \protect\TeX{}а} \label{sec:tex-extensions} В состав \TL{} входит несколько расширений \TeX{}а: \begin{description} \item [\eTeX] добавляет небольшой, но очень полезный набор новых примитивов \label{text:etex} (относящийся к макроподстановкам, чтению символов, дополнительным возможностям отладки и многому другому) и расширения \TeXXeT{} для вёрстки справа налево и слева направо. В обычном режиме \eTeX{} на 100\% совместим со стандартным\TeX{}ом. См. \OnCD{texmf-dist/doc/etex/base/etex_man.pdf}. \item [pdf\TeX] создаёт и файлы в формате Acrobat PDF, и стандартные \dvi{}. У пакета \pkgname{hyperref} для \LaTeX{}а есть опция <<\optname{pdftex}>>, которая использует все возможности этой программы. См. \OnCD{texmf/doc/pdftex/manual/} и \OnCD{texmf/doc/pdftex/manual/samplepdf/samplepdf.tex}. \item[pdfe\TeX] объединяет pdf\TeX{} и \eTeX. Это программа по умолчанию используется для генерирования всех форматов, кроме plain \TeX. См. документацию выше. \item [\OMEGA\ (Омега)] основана на Unicode (система 16-битовых символов), что позволяет работать одновременно почти со всеми письменностями мира. Она также поддерживает так называемый <<процесс трансляции \OMEGA{}>> (\acro{OTP}s) для сложных преобразований произвольного входного потока. См. \OnCD{texmf-dist/doc/omega/base/doc-1.8.tex} (текст несколько устарел). \item[Aleph] объединяет \OMEGA\ и \eTeX. См. краткую документацию в \OnCD{texmf-dist/doc/aleph/base}. \end{description} \subsection{Другие интересные программы в дистрибутиве \protect\TL} Вот несколько других часто используемых программ в дистрибутиве \TL{}: \begin{cmddescription} \item [bibtex] поддержка библиографий. \item [makeindex] поддержка алфавитных указателей. \item [dvips] преобразование \dvi{} в \PS{}. \item [xdvi] программа для просмотра \dvi{} для X Window System. \item [dvilj] драйвер для лазерных принтеров семейства HP LaserJet. \item [dv2dt, dt2dv] преобразование \dvi{} в текст и обратно. \item [dviconcat, dviselect] перестановка страниц в файлах \dvi{}. \item [dvipdfm] преобразование \dvi{} в PDF, альтернатива pdf\TeX{}у, упомянутому выше. Пакеты \pkgname{ps4pdf} и \pkgname{pdftricks} предлагают дополнительные возможности. \item [psselect, psnup, \ldots] утилиты для формата \PS{}. \item [lacheck] проверка синтаксиса \LaTeX{}а. \item [texexec] процессор для Con\TeX{}tа и PDF. \item [tex4ht] конвертер из \TeX{}а в HTML. \end{cmddescription} \section{Установка в системах типа \protect\Unix} \label{sec:unix-install} Как объясняется в разделе~\ref{sec:basic}, \p.~\pageref{sec:basic}, \TL{} можно использовать тремя способами: \begin{enumerate} \item Выполнять непосредственно с дистрибутивного диска. \item Установить на диск вашего компьютера. \item Интегрировать отдельный пакет или коллекцию в существующий \TeX. \end{enumerate} \noindent В следующих разделах подробно описывается каждый из этих способов для систем типа Unix. \ifSingleColumn \begin{figure}[ht]\noindent \fi \begin{warningbox} \textbf{Внимание: } \CD{} и \DVD{} \TK{} изготовлены в формате ISO 9660 (High Sierra), \emph{включая} расширения Rock Ridge (и Joliet для Windows). Поэтому для того, чтобы использовать \TK{}, ваша система должна поддерживать расширения Rock Ridge. Пожалуйста, посмотрите документацию к команде \cmdname{mount} для вашей системы и выясните, как это делается. Если у вас несколько машин в локальной сети, возможно, вам будет проще смонтировать \CD{} на машине, которая поддерживает Rock Ridge, и использовать её с остальных. \leavevmode\quad Современные системы должны быть способны читать \CD{} без проблем. Если у вас возникли трудности, сообщите нам. Дальнейший текст предполагает, что вам удалось смонтировать \CD{} с полной совместимостью с Rock Ridge. \end{warningbox} \ifSingleColumn\end{figure}\fi % \subsection{Работа с \protect\TL{} непосредственно с установочного диска (\Unix)} \def\runlive{% text repeated in windows section Вы можете использовать \TeX{} непосредственно с \pkgname{live} \DVD{}, не устанавливая его на ваш компьютер. (Собственно, отсюда название <<\TL>>.) Однако \emph{невозможно} запустить \TeX{} с других дисков коллекции (см. раздел~\ref{sec:multiple-dist}, \p.~\pageref{sec:multiple-dist}). } \def\startinst{% repeated in other subsections Сначала нам надо смонтировать \CD{} или \DVD{} с расширениями Rock Ridge. Как именно это делается, зависит от вашей системы; команды ниже работают для Линукса, хотя название устройства (\filename{/dev/cdrom}) может быть другим. (Все наши примеры используют \texttt{>} в качестве системного приглашения; команды, набираемые пользователем, \Ucom{\texttt{подчёркнуты}}.): \begin{alltt} > \Ucom{mount -t iso9660 /dev/cdrom /mnt/cdrom} \end{alltt} \noindent Теперь нужно перейти в смонтированную директорию: \begin{alltt} > \Ucom{cd /mnt/cdrom} \end{alltt} \noindent В \MacOSX{} нужная директория обычно находится в директории \dirname{/Volumes}, и диск монтируется автоматически. } \def\installtlsh{ Выполните скрипт установки \filename{install-tl.sh}: \begin{alltt} > \Ucom{sh install-tl.sh} Welcome to TeX Live... \end{alltt} \noindent После разнообразных стартовых сообщений и списка опций главного меню, установочный скрипт попросит вас ввести команду. Сделайте это, напечатав нужную букву и нажав \acro{RETURN}; не печатайте угловых скобок. Можно печатать заглавную или строчную букву; в примерах ниже приводятся строчные буквы. } \runlive \startinst \installtlsh Чтобы работать прямо с дистрибутива, первой командой должна быть \Ucom{d}, а затем подкоманда \Ucom{1}, чтобы установить директории. Даже в этом случае мы должны выбрать директорию на локальном диске, чтобы класть туда файлы, которые \TeX{} генерирует сам, например, шрифты и форматы, а также изменённые конфигурационные файлы, если в них появится необходимость. В этом примере мы будем использовать \dirname{/opt/texlive2005}. Полезно использовать номер года в названии директории, поскольку файлы, созданные разными версиями \TL{}, не всегда совместимы. (Если значение по умолчанию \dirname{/usr/local/texlive/2005} вам подходит, вы можете пропустить этот шаг.) \begin{alltt} Enter command: \Ucom{d} Current directories setup: <1> TEXDIR: /usr/local/texlive/2005 ... Enter command: \Ucom{1} New value for TEXDIR [/usr/local/texlive/2005]: \Ucom{/opt/texlive2005} ... Enter command: \Ucom{r} \end{alltt} \noindent Мы снова в главном меню. Следующая и последняя команда будет \Ucom{r}, чтобы сконфигурировать систему для работы с дистрибутива, не устанавливая файлов на диск: \begin{alltt} Enter command: \Ucom{r} Preparing destination directories... ... Welcome to the TeX Live system! > \end{alltt} \noindent И, как показано выше, мы опять в системном шелле. Теперь мы должны изменить две переменные окружения: \envname{PATH}, в соответствии с вашей архитектурой, (так что вы сможете запускать программы), и \envname{TEXMFSYSVAR}, в соответствии с указанным выше значением. См. список названий архитектуры для различных систем в таблице~\ref{tab:archlist}. \def\textruntexconfig{% После завершения основной установки и установления переменных окружения, следует запустить \cmdname{texconfig} или \cmdname{texconfig-sys}, чтобы подогнать вашу систему под ваши нужды. Это объясняется в разделе~\ref{sec:texconfig} на стр.~\pageref{sec:texconfig}. } \textruntexconfig \begin{table*}[ht] \caption[Поддерживаемые архитектуры.]{Поддерживаемые архитектуры.} \label{tab:archlist} \begin{tabular}{>{\ttfamily}ll} alpha-linux & HP Alpha GNU/Linux \\ %alphaev5-osf4.0d & HP Alphaev5 OSF \\ %alphaev5-osf4.0d & Compaq Alphaev5 OSF \\ %hppa2.0-hpux10.20 & HP9000 HPUX 10.20 \\ i386-darwin & Intel x86 \MacOSX \\ i386-freebsd & Intel x86 FreeBSD \\ i386-linux & Intel x86 GNU/Linux \\ %i386-openbsd3.3 & Intel x86 OpenBSD \\ %i386-solaris2.8 & Intel x86 Solaris \\ mips-irix & SGI IRIX \\ powerpc-aix & IBM RS/6000 AIX \\ powerpc-darwin & PowerPC \MacOSX \\ sparc-linux & Sun Sparc GNU/Linux \\ sparc-solaris & Sun Sparc Solaris \\ win32 & Windows (32-bit) \\ x86\_64-linux & Intel x86 64-bit GNU/Linux \\ \hline \end{tabular} \end{table*} \label{text:path} Синтаксис задания переменных окружения, и файл, куда класть соответствующие команды, зависит от вашего шелла. Если вы используете шелл типа Bourne (\cmdname{sh}, \cmdname{bash}, \cmdname{ksh}, и т.п.), добавьте к вашему \filename{$HOME/.profile} следующее: \begin{alltt} PATH=/mnt/cdrom/bin/\var{archname}:$PATH; export PATH TEXMFSYSVAR=/opt/texlive2005/texmf-var; export VARTEXMF \end{alltt} \noindent Для шеллов типа C shell (\cmdname{csh}, \cmdname{tcsh}), добавьте к вашему \filename{$HOME/.cshrc} следующее: \begin{alltt} setenv PATH /mnt/cdrom/bin/\var{archname}:$PATH setenv TEXMFSYSVAR /opt/texlive2005/texmf-var \end{alltt} \noindent Теперь выйдите из системы, войдите в неё опять и проверьте установку (см. раздел~\ref{sec:test-install}, \p.\pageref{sec:test-install}). \def\textifindoubt{% Если у вас что-то не получается, попробуйте спросить совета у ближайших гуру; например, как монтировать дистрибутив \TL{}, какую директорию или директории использовать, и как именно менять ваши личные файлы инициализации в вашей системе. } \textifindoubt % \subsection{Установка \protect\TeX\protect\ Live на диск} \label{sec:unix-install-disk} Вполне возможно (собственно, как правило, именно это и делается) установить систему \TL{} на диск. Это можно сделать с диска \pkgname{live} или \pkgname{inst} (См. описание дистрибутивов в разделе~\ref{sec:multiple-dist}, \p.\pageref{sec:multiple-dist}). \startinst \installtlsh Список пунктов в главном меню указан в таблице~\ref{tab:main-menu-options}. Порядок, в котором вы выбираете пункты, обычно неважен, кроме того, что пункт \Ucom{i} должен быть последним. Удобно всё же выбирать их в порядке, указанном ниже. % apparently here.sty [H] doesn't support table*. \begin{table}[H] \caption{Опции главного меню установки.} \label{tab:main-menu-options} \begin{tabular}{>{\ttfamily}ll} p & Платформа, на которую производится установка.\\ b & Архитектура, для которой устанавливаются программы.\\ s & Основная схема установки (минимальная, рекомендованная, полная и т.д.).\\ c & Изменить схему установки для индивидуальных коллекций.\\ l & Изменить схему установки для языковых коллекций.\\ d & Директории для установки.\\ o & Другие опции.\\ i & Выполнить установку.\\ \end{tabular} \end{table} Вот подробное объяснение по каждой опции. \textbf{\optname{p} "---~Платформа, на которую производится установка.} Поскольку установочный скрипт автоматически определяет вашу платформу, изменять это обычно не нужно. Эта опция нужна в том случае, когда автоматическое определение даёт сбой. \textbf{\optname{b} "---~Архитектура, для которой устанавливаются программы.} По умолчанию устанавливаются только программы для вашей текущей платформы. В этом меню вы можете задать установку программ и для других архитектур (или \emph{не} установить их для текущей архитектуры). Это часто полезно, если вы используете одно и то же дерево \TeX{}а в сети разных машин. Список поддерживаемых архитектур приведен в таблице~\ref{tab:archlist}, \p.~\pageref{tab:archlist}. \textbf{\optname{s} "---~Основная схема установки.} В этом меню вы можете выбрать основную схему установки пакетов. По умолчанию используется полная схема (\optname{full}), которая устанавливает всё, но вы можете выбрать минимальную схему (\optname{basic}), чтобы сэкономить место на диске, или промежуточную схему (\optname{medium}). Есть также специальные схемы для пользователей Omega и \acro{XML}. \textbf{\optname{c} "---~Индивидуальные коллекции.} Это меню позволяет вам изменить сделанный основной схемой выбор для отдельных коллекций. Коллекции представляют собой следующий после схем уровень иерархии \TL{}. Каждая коллекция "---макросы \TeX{}а, семейства шрифтов \MF{} и т,д, "---состоит из нескольких пакетов. В этом меню заглавные и строчные буквы различаются. \textbf{\optname{l} "---~Языковые коллекции.} Смысл этого меню очень похож на \Ucom{c}, оно позволяет сделать выбор, устанавливать ли отдельные компоненты дистрибутива. В данном случае коллекции соответствуют различным языкам. В этом меню заглавные и строчные буквы различаются. Вот список языковых коллекций \TL: % xx really should generate list from texmf/tpm/collection/tex-lang* % a la install-tl.sh. \begin{tabbing} \hspace{.50\linewidth} \= \hspace{.50\linewidth} \kill Арабский язык \> Армянский язык \\ Африканские языки (частично) \> Британский английский \\ Венгерский язык \> Вьетнамский язык \\ Голландский язык\> Греческий язык\\ Датский язык \> Иврит \\ Индийские языки \> Испанский язык \\ Итальянский язык \> Кириллические языки \\ Китайский, японский, корейский языки \> Латынь\\ Маньчжурские языки \> Монгольский язык \\ Немецкий язык\> Норвежский язык \\ Польский язык\> Португальский язык \\ Тибетский язык\> Финский язык \\ Французский язык \> Хорватский язык\\ Чешский и словацкий языки \> Шведский язык \\ \end{tabbing} \noindent Языковые коллекции обычно включают шрифты, макросы, таблицы переноса и т.д. (Например, если вы выбираете коллекцию \optname{French}, устанавливается \pkgname{frenchle.sty}.) Кроме того, установка языковой коллекции приводит к изменению конфигурационного файла \filename{language.dat}, который управляет загрузкой таблиц переноса. \textbf{\optname{d} "---~Директории для установки}. Здесь можно определить три директории: \label{text:instdir} \begin{ttdescription} \item [TEXDIR] Корневая директория, где устанавливается по умолчанию всё остальное. По умолчанию это \dirname{/usr/local/texlive/2005}, но это часто бывает нужным изменить. Мы рекомендуем включать номер года в название директории, чтобы можно было держать отдельно разные версии \TL{}. После тестирования новой версии вы сможете сделать \dirname{/usr/local/texlive} ссылкой на соответствующую директорию. Под \MacOSX, распространённые оболочки ищут \TeX{} в \dirname{/usr/local/teTeX}, поэтому вам может показаться удобнее установить \TL{} тут. \item [TEXMFLOCAL] Это дерево директорий, куда системные скрипты устанавливают файлы \TeX{}а, не относящиеся к определённой версии, главным образом, шрифты. По умолчанию это \dirname{/usr/local/texlive/texmf-local} и не зависит от текущей версии \TL{}, потому что сюда рекомендуется помещать локальные пакеты или конфигурационные файлы. \item [TEXMFSYSVAR] Это дерево директорий, куда скрипт \cmdname{texconfig-sys} устанавливает файлы, зависящие от конкретной версии. По умолчанию это \dirname{TEXDIR/texmf-var}, и обычно это значение менять не ст\'оит. Есть также \envname{TEXMFSYSCONFIG}, где \cmdname{texconfig} ищет изменённые файлы конфигурации. См. более полное описание в разделе~\ref{sec:texconfig}, \p.\pageref{sec:texconfig} \end{ttdescription} \textbf{\optname{o} "---~Другие опции.} В этом меню вы можете выбрать следующие опции, которые влияют на процесс установки: \begin{ttdescription} \item [a] Указать альтернативную директорию для генерированных шрифтов. По умолчанию шрифты кладутся в \envname{VARTEXMF}, как объясняется выше. Альтернативная директория нужна, например, если вы хотите смонтировать основное дерево только для чтения, и потому вам нужна другая директория (возможно, своя на каждой из машин в локальной сети) для динамически создаваемых шрифтов. \item [l] Создать символические ссылки для программ, документации в формате man и/или \acro{GNU} Info. Например, вы можете захотеть создать ссылки на файлы man под \dirname{/usr/local/man}, и на файлы Info под \dirname{/usr/local/info}. (Разумеется, вам нужны права на запись в соответствующие директории.) Мы не рекомендуем использовать эту опцию для установки \TL{} поверх версии системы \TeX{} в вашем дистрибутиве. Она предназначена для того, чтобы сделать ссылки в стандартных директориях вроде \dirname{/usr/local/bin}, если в них нет файлов \TeX а. \item [d] Не производить установку документации. Это полезно, если вы хотите сэкономить место на диске, или если вы уже установили документацию в другом месте. \item [s] Не производить установку основного дерева шрифтов и макросов. Это нужно, если вы хотите сделать одно общее дерево для разных машин и/или платформ, экспортируя его, например, при помощи \acro{NFS}. \end{ttdescription} \textbf{i "---~Выполнить установку.} Когда вы зададите нужные конфигурационные опции, введите \Ucom{i} чтобы начать установку в выбранные директории. % text is similar to above, but no TEXMFSYSVAR, so we have to write out. Последний шаг "---включить зависящую от архитектуры поддиректорию \dirname{TEXDIR/bin} в переменную \envname{PATH}, так что ваши новые программы будут найдены. Названия архитектур приведены в таблице~\ref{tab:archlist}, \p.~\pageref{tab:archlist}. При необходимости вы можете просто указать директорию \dirname{TEXDIR/bin}. Синтаксис соответствующих команд и стартовые файлы для этого зависят от вашего шелла. Если вы используете шелл типа Bourne (\cmdname{sh}, \cmdname{bash}, \cmdname{ksh} и т.п.), добавьте к вашему \filename{$HOME/.profile} следующее: \begin{alltt} PATH=/usr/local/texlive2005/bin/\var{archname}:$PATH; export PATH \end{alltt} \noindent Для шеллов типа C shell (\cmdname{csh}, \cmdname{tcsh}), добавьте к вашему \filename{$HOME/.cshrc} следующее: \begin{alltt} setenv PATH /usr/local/texlive2005/bin/\var{archname}:$PATH \end{alltt} \textruntexconfig Ниже приводится краткий комментированный пример полной установки, с программами только для текущей системы и с рекомендованной выше структурой директорий. Таким образом, нужна только одна команда, \Ucom{i} для установки системы. Знаком \texttt{>}, как обычно, обозначается системный промпт. \begin{alltt} > \Ucom{sh install-tl.sh} \Ucom{i} # выполнить установку > \Ucom{texconfig} ... # См. раздел \ref{sec:texconfig} # Новый элемент в переменной $PATH, для Линукса > \Ucom{PATH=/usr/local/texlive2005/bin/i386-linux:$PATH; export PATH} \end{alltt} \textifindoubt % \subsection{Установка на диск индивидуальных пакетов} Вы можете добавить индивидуальные пакеты или коллекции из дистрибутива в систему, отличную от \TL{} или в предыдущую версию \TL{}. \startinst Запустите установочный скрипт \filename{install-pkg.sh} (не \filename{install-tl.sh} "---этот скрипт только для полной установки): \begin{alltt} > \Ucom{sh install-pkg.sh \var{options}} \end{alltt} Первый набор опций выглядит следующим образом: \begin{ttdescription} \item [-{}-package=\var{pkgname}] Индивидуальный пакет для установки. \item [-{}-collection=\var{colname}] Коллекция пакетов для установки. \item [-{}-nodoc] Не устанавливать документацию. \item [-{}-nosrc] Не устанавливать исходники. \item [-{}-cddir=\var{dir}] Директория, где находится дистрибутив; по умолчанию -- текущая директория. Если вы выполнили инструкции выше, то это и будет нужная директория, и менять её не надо. \item [-{}-listdir=\var{dir}] Директория со списками, в которых находится информация о пакетах. По умолчанию это \var{cddir}; единственная причина, по которой имеет смысл изменить это значение "---если вы сами конструируете новую версию \TL{}. \end{ttdescription} То, что произойдёт дальше, зависит от следующих опций. Если вы не выберете ни одной из них, по умолчанию произойдёт установка выбранных файлов. Директория, куда следует устанавливать файлы, будет определена из вашего текущего \envname{\$TEXMFMAIN} командой \cmdname{kpsewhich}. Вы можете изменить это значение при помощи переменной \envname{TEXMFMAIN} или \envname{TEXMF}. \begin{ttdescription} \item [-{}-listonly] Вывести список файлов, которые должны быть установлены, но ничего не устанавливать. \item [-{}-archive=\var{tarfile}] Вместо установки файлов в текущий \TeX{}, создать архив \cmdname{tar}. \end{ttdescription} Дополнительные опции: \begin{ttdescription} \item [-{}-config] После установки запустить \code{texconfig init}. \item [-{}-nohash] Не запускать после установки \cmdname{mktexlsr} для обновления базы данных о файлах. \item [-{}-verbose] Выводить дополнительную информацию по мере работы скрипта. \end{ttdescription} Вот несколько примеров использования: \begin{enumerate} \item Посмотреть список файлов в пакете \pkgname{fancyhdr}, не устанавливая его: \begin{alltt} \ifSingleColumn> \Ucom{sh install-pkg.sh --package=fancyhdr --listonly} \else> \Ucom{sh install-pkg.sh --package=fancyhdr \bs} > \Ucom{--listonly} \fi{} texmf/doc/latex/fancyhdr/README texmf/doc/latex/fancyhdr/fancyhdr.pdf ... \end{alltt} \item Установить пакет \pkgname{natbib}: \begin{alltt} > \Ucom{sh install-pkg.sh --package=natbib} \end{alltt} \item Установить пакет \pkgname{alg} без исходников и документации: \begin{alltt} \ifSingleColumn> \Ucom{sh install-pkg.sh --package=alg --nosrc --nodoc} \else> \Ucom{sh install-pkg.sh -{}-package=alg \bs} > \Ucom{-{}-nosrc -{}-nodoc} \fi\end{alltt} \item Установить все пакеты из коллекции дополнительных макросов для plain \TeX: \begin{alltt} > \Ucom{sh install-pkg.sh --collection=tex-plainextra} \end{alltt} \item Записать все файлы из пакета \pkgname{pstricks} в архив \cmdname{tar} в директории \path|/tmp|: \begin{alltt} \ifSingleColumn> \Ucom{sh install-pkg.sh --package=pstricks --archive=/tmp/pstricks.tar} \else > \Ucom{sh install-pkg.sh -{}-package=pstricks \bs} > \Ucom{-{}-archive=/tmp/pstricks.tar} \fi\end{alltt} \end{enumerate} \textifindoubt % \section{Действия после установки} \label{sec:postinstall} После того, как основная установка проделана, вы должны сконфигурировать систему под ваши потребности и провести тестирование. Ещё одно действие после установки \TL{} "---установить дополнительные пакеты, шрифты или программы, не включённые в \TL{}. Идея состоит в том, чтобы установить эти дополнения под \envname{TEXMFLOCAL} (если вы устанавливаете программы на диск) или под \envname{TEXMFSYSVAR} (если вы работаете непосредственно с дистрибутива). См. <<Директории для установки>> на \p.\pageref{text:instdir}. К сожалению, конкретные шаги могут сильно отличаться, поэтому мы не пытаемся описать их тут. Вот несколько рекомендаций из сети: \begin{itemize*} \item \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages} \item \url{http://www.ctan.org/installationadvice} \item \url{http://www.ctan.org/tex-archive/info/beginlatex/html/chapter5.html#pkginst} \item \url{http://www.ctan.org/tex-archive/info/Type1fonts} (установка шрифтов и другие советы). \end{itemize*} \subsection{Программа \protect\cmdname{texconfig}} \label{sec:texconfig} В любой момент после установки вы можете использовать программу \cmdname{texconfig} чтобы переконфигурировать систему. Она устанавливается в директории \texttt{TEXDIR/bin/\var{arch}} (зависящей от архитектуры) вместе с остальными программами. Если вызвать её без аргументов, она перейдёт в полноэкранный режим, который позволяет конфигурировать систему интерактивно. Эту программу можно вызывать также с разнообразными опциями. Ниже приводятся примеры наиболее часто используемых (система \TL{} по умолчанию настроена на бумагу формата A4): \begin{ttdescription} \item [texconfig paper letter] установить размер бумаги по умолчанию для команды всех программ и драйверов (\cmdname{pdftex}, \cmdname{dvips}, \cmdname{dvipdfm}, \cmdname{xdvi}). Другим вариантом является \optname{a4} (используется по умолчанию). \item [texconfig rehash] Обновить все базы данных файлов системы \TeX{}. \item [texconfig faq] Показать ЧаВо \teTeX. (См. также основной файл ЧаВо \TeX{} в \OnCD{texmf-doc/doc/english/FAQ-en}). \item [texconfig help] Напечатать информацию об использовании \cmdname{texconfig}. \end{ttdescription} Разумеется, \cmdname{texconfig} может изменить только некоторые из многих опций и конфигурационных параметров системы \TeX{}. Основной конфигурационный файл для программ, основанных на \Webc{} называется \filename{texmf.cnf}. Вы можете определить, где он находится, при помощи команды \samp{kpsewhich texmf.cnf}; в этом файле много комментариев, объясняющих конфигурационные параметры и их возможные значения. По состоянию на 2005 год, команда \cmdname{texconfig} изменяет только личные файлы данного пользователя в директории \dirname{$HOME/.texlive2005}. Если вы устанавливаете \TeX{} только для себя, этот факт вам будет безразличен. Но если вы устанавливаете \TeX{} для многопользовательской системы, вам может понадобиться изменить конфигурационные файлы для \emph{всех} пользователей. В этом случае вместо команды \cmdname{texconfig} вам нужна команда \cmdname{texconfig-sys}. Аналогично, команды \cmdname{updmap} и \cmdname{fmtutil} теперь изменяют файлы в \dirname{$HOME/.texlive2005}. Для изменений системных конфигурационных файлов используйте \cmdname{updmap-sys} и \cmdname{fmtutil-sys}. В особенности важно для многопользовательской системы создать заранее стандартные форматы при помощи \texttt{fmtutil-sys -{}-missing}. Иначе у каждого пользователя будет своя копия этих форматов. Кроме того, если у вас есть модифицированные копии файлов \filename{fmtutil.cnf} или \filename{updmap.cfg}, их следует поместить в директорию \envname{TEXMFSYSCONFIG}. Переменные, в которых хранятся названия этих директорий, указаны в разделеn~\ref{sec:texmftrees}, \p.\pageref{sec:texmftrees}. Вы можете посмотреть значения этих переменных при помощи команды \texttt{texconfig conf} и изменить их путём редактирования файла \filename{texmf.cnf}. \subsection{Тестирование установки} \label{sec:test-install} После установки \TL{} вы, скорее всего, захотите проверить работу системы, чтобы перейти к созданию прекрасных документов и/или шрифтов. В этом разделе описываются основные процедуры по тестированию системы. Мы приводим команды для операционных систем типа Unix; под \MacOSX{} и Windows вы, скорее всего, будете запускать тесты из \acro{GUI}, но принцип тот же. \begin{enumerate} \item Сначала проверьте, что вы можете запускать программу \cmdname{tex}: \begin{alltt} > \Ucom{tex -{}-version} TeX 3.141592 (Web2C 7.5.5) kpathsea version 3.5.5 ... \end{alltt} Если вы получаете в ответ <> вместо номера версии и информации о копирайте, у вас, скорее всего, нет директории с нужными программами в переменной \envname{PATH}. См. обсуждение на странице~\pageref{text:path}. \item Скомпилируйте простой \LaTeX{}овский файл: \begin{alltt} > \Ucom{latex sample2e.tex} This is pdfeTeXk, Version 3.141592... ... Output written on sample2e.dvi (3 pages, 7496 bytes). Transcript written on sample2e.log. \end{alltt} Если программа не может найти \filename{sample2e.tex} или другие файлы, возможно, у вас остались следы от старой установки: переменные окружения или конфигурационные файлы. Для отладки вы всегда можете попросить \TeX{} точно сказать, что именно он ищет; см. <<Отладка>> на стр.~\pageref{Debugging}. \item Посмотрите результат на экране: \begin{alltt} > \Ucom{xdvi sample2e.dvi} \end{alltt} (Под Windows аналогичная команда называется \cmdname{windvi}.) Вы должны увидеть новое окно с красиво свёрстанным документом, объясняющим основы \LaTeX{}а. (Если вы "---новичок, вам ст\'оит его прочесть.) Чтобы программа \cmdname{xdvi} могла запуститься, вы должны быть в среде X Window; если это не так, или если переменная \envname{DISPLAY} установлена неправильно, вы увидите ошибку \samp{Can't open display}. \item Создайте файл в формате \PS{} для печати или просмотра на экране: \begin{alltt} > \Ucom{dvips sample2e.dvi -o sample2e.ps} \end{alltt} \item Создайте файл в формате \acro{PDF} вместо \dvi{}; команда ниже компилирует файл \filename{.tex} и создаёт \acro{PDF}: \begin{alltt} > \Ucom{pdflatex sample2e.tex} \end{alltt} \item Посмотрите результат на экране: \begin{alltt} > \Ucom{gv sample2e.pdf} \textrm{или:} > \Ucom{xpdf sample2e.pdf} \end{alltt} К сожалению, ни \cmdname{gv}, ни \cmdname{xpdf} не включены в текущую версию \TL{}, так что вам придётся останавливать их отдельно. См. соответственно \url{http://www.gnu.org/software/gv} и \url{http://www.foolabs.com/xpdf}. \item Другие стандартные тестовые файлы, которые вам могут пригодиться: \begin{ttdescription} \item [small2e.tex] Более простой документ, чем \filename{sample2e}, удобный, если последний слишком велик для вас. \item [testpage.tex] Проверяет поля и смещение бумаги для вашего принтера. \item [nfssfont.tex] Используется для печати таблиц шрифтов и тестов. \item [testfont.tex] Печать таблиц шрифтов под plain \TeX{}. \item [story.tex] Самый канонический файл в формате (plain) \TeX. Вы должны напечатать \samp{\bs bye} в ответ на приглашение \code{*} после \samp{tex story.tex}. \end{ttdescription} Вы можете компилировать эти файлы точно так же, как мы компилировали выше \filename{sample2e.tex}, заменив \samp{latex} на \samp{tex} для plain \TeX. \end{enumerate} Если вы новичок в \TeX{}е, или вам нужна помощь в создании документов на языке \TeX{} или \LaTeX{}, посетите \url{http://tug.org/begin.html}. \section{Установка в системе \protect\MacOSX{}} \label{sec:mac-install} Рекомендуемый способ установить \TeX{} для \MacOSX{} "---~использовать дистрибутив Mac\TeX, который впервые включён в \TL{} в 2005 году. Он находится на \DVD{} \pkgname{live} в директории \dirname{mactex/}. В этой директории содержится инсталлятор для полоного дистрибутива \TeX а, основанный на комбинации te\TeX а и \TL, а также много других программ и документации. Страница проекта находится тут: \url{http://tug.org/mactex}. Если вы предпочитаете, можно установить \TeX{} для \MacOSX{} и непосредственно из \TL{} при помощи скриптов \filename{install*}, как описано ниже. Для того, чтобы запустить установочные скрипты под \MacOSX, вам понадобится оболочка \cmdname{bash}. Если вы работаете под \MacOSX~10.2 или старше, у вас уже установлена \cmdname{bash}. Если же вы работаете под более ранней версией \MacOSX{}, то вашей оболочкой по умолчанию является \cmdname{zsh}, которая не подойдёт для установки \MacOSX. Вам понадобится установить \cmdname{bash} из Интернета или, скорее всего, обновить систему. Если у вас установлена \cmdname{bash}, вы можете следовать инструкциям для установки в системе Unix installation в предыдущем разделе. См. раздел~\ref{sec:unix-install}, \p.~\pageref{sec:unix-install}; в нём упомянуты особенности \MacOSX. \section{Установка в системе \protect\Windows} \label{sec:win-install} Мы рады сообщить, что в этой версии \TL{} снова есть инсталлятор для Windows, \cmdname{tlpmgui.exe} (см. раздел~\ref{sec:multiple-dist}, \p.\pageref{sec:multiple-dist}, где описаны различные варианты дистрибутива). У программы \cmdname{tlpmgui} такие же опции, как у инсталлятора для Юникса, только они выбираются в графической оболочке. Эта программа также позволяет выбрать схемы, индивидуальные коллекции, директории для установки и т.д. Эти основные элементы описаны в разделе~\ref{sec:unix-install-disk} на \p.\pageref{sec:unix-install-disk}. Программа также позволяет выполнять многие действия после установки: добавление и удаление пакетов, обновление базы данных файлов, создание форматов. Для тех, кто любит знать детали, отметим, что программа \cmdname{tlpmgui} использует в качестве <<мотора>> программу для командной строки Windows под названием \cmdname{tlpm}. Дистрибутив для Windows, включенный в \TL, основан на новых программах, позаимствованных у проекта \XEmTeX{}, который раньше назывался \fpTeX{} (см. \url{http://www.metz.supelec.fr/~popineau/xemtex-1.html}). В нём также есть более старые (но всё ещё работающие программы), такие как просмотрщик файлов \texttt{dvi} \textsf{Windvi}, интерфейс которого похож на интерфейс распространённой программы для Юникса \textsf{xdvi}. Документацию для этой программы можно найти в \OnCD{texmf/doc/html/windvi/windvi.html}. Дистрибутив \TL{} может быть установлен под операционной системой Windows 98, \acro{ME}, \acro{NT}, \acro{2K} или \acro{XP}. Более старые версии Windows (3.1x) и \acro{MS-DOS} не поддерживаются. \textbf{Внимание:} Пользователи Win9.x должны проверить, что у них есть достаточно места для переменных окружения перед установкой. Программа \cmdname{tlpmgui.exe} не добавляет места к переменным окружения. В процессе установке создаются несколько переменных окружения, и возможно, что для них не хватит места. Чтобы добавить его, напишите в файл \texttt{config.sys} строчку \texttt{SHELL=COMMAND.COM /E:4096 /P} \subsection{Установка на диск \protect\TeX\protect\ Live} После вставки \acro{CD} с \TL{} в компьютер, автостарт должен запустить программу \cmdname{tlpmgui}. Если он этого не сделал, щёлкните на \guiseq{Start\arw Run}, а затем напечатайте \verb|:\setup-win32\tplmgui.exe| (или \verb|:\texlive\setup-win32\tplmgui.exe|, если вы устанавливаете с \acro{DVD}), где \verb|| "---~диск \acro{CD} или \acro{DVD}, и нажмите <>. Должно появиться окно установки под названием \guiseq{TeX Live installation and maintenance utility}. В нём содержатся следующие разделы: \guiseq{Main customization}, \guiseq{Install}, \guiseq{Select a scheme}, \guiseq{Select systems}, \guiseq{Directories} и \guiseq{Options}. В разделе \guiseq{Directories} вслед за иконкой \guiseq{CD/DVD} должна быть указана директория (например, \texttt{F:/} или \texttt{F:/texlive/}), но если её там нет, щёлкните на иконку \guiseq{CD/DVD} и выберите \acro{CD/DVD} с \TL{} или \TK. Директорию, куда будет устанавливаться программа, можно указать, нажав на иконку \guiseq{TLroot}. Эта директория будет храниться в переменной \path|TLroot|. Переменные \path|TEXMFTEMP| и \path|TEXMFCNF|, указанные на соседних иконках \guiseq{TEXMFTEMP} и \guiseq{TEXMFCNF} будут автоматически изменены, но их можно также изменить вручную, если это почему-либо необходимо. В секции \guiseq{Select a scheme} нужно выбрать нужную схему установки из списка (например, \guiseq{scheme-gust}). Каждая схема сопровождается кнопкой \guiseq{Info}, при нажатии на которую появляется краткое описание схемы. Схема "---~это большой набор файлов, предназначенный для определённого типа пользователя. Есть общие схемы для минимальной, средней и полной установки. Остальные схемы предназначены либо для определённых групп пользователей \TeX а (например, для членов GUST или GUTeneberg) или для определённых приложений (например, для совместной работы \acro{XML} и \TeX а). В выбранной схеме можно сделать дополнительные изменения. Это делается в разделе \guiseq{Main customization} путём выбора дополнительных коллекций из групп \guiseq{Standard collections} или \guiseq{Language collections}. Например, нажав на кнопку \guiseq{Select} у надписи \guiseq{Standard collections}, можно выбрать дополнительные коллекции, например, \MP, \acro{Omega} или документацию на разных языках. \textbf{Примечание:} Коллекции \guiseq{Ghostscript}, \guiseq{Perl} и \guiseq{Wintools} выбираются по умолчанию и должны быть установлены, за исключением ситуации, когда они уже есть в системе и вы понимаете, что вы делаете. Эти коллекции используются многими другими важными программами. Переменные \verb|PERL5LIB| и \verb|GS_LIB| будут также автоматически установлены. Затем щёлкните на кнопку \guiseq{Select} у надписи \guiseq{Language Collections} в разделе \guiseq{Main customization}. Это откроет меню \guiseq{Language collections}, котором можно выбрать языковые коллекции для установки. Затем щелкните на кнопку \guiseq{Install} в разделе \guiseq{Install}, и начнётся процесс установки. Для системы \TL{} нужно проделать ряд операций после установки (генерирование форматов и базы данных для имён файлов, установка переменных и т.д.). Все они делаются на этом шаге, и некоторые могут занять довольно много времени. Поэтому подождите, пожалуйста, пока не появится сообщение об успешном завершении установки. В меню \guiseq{Start\arw Programs\arw TeXLive2005} будет добавлена программа \cmdname{tlpmgui}. При необходимости (Win9x/WinME) вам будет предложено рестартовать компьютер. \subsection{Дополнительные пакеты для Windows} \label{sec:win-xemtex} Для полноты дистрибутиву \TL необходимы дополнительные пакеты, которые обычно не встречаются на машине под Windows. Многие скрипты написаны на языке Perl. Некоторые важные программы требуют интерпретатор языка \PS{} Ghostscript для отображения или преобразования файлов. Набор программ для работы с графическими файлами также полезен в ряде случаев. Наконец, приспособленный для работы с \TeX{}ом редактор значительно облегчает набор и компилирование. Все эти пакеты для Windows найти довольно легко, но для того, чтобы несколько облегчить вашу жизнь, мы включили в \TL следующий набор: \begin{itemize} \item \cmdname{Ghostscript} 7.07 \item минимальный \cmdname{Perl} 5.8, достаточный для всех скриптов \TL{}. \item набор программ \textsf{win-tools}: \textsf{bzip2, gzip, jpeg2ps, tiff2png}/ % \item подмножество \cmdname{ImageMagick} 5.5.6 % \item программы для проверки орфографии \cmdname{ISpell} % \item \cmdname{XEmacs} 21.5.14 с набором пакетов для % \TeX{}а. \end{itemize} Эти пакеты взяты из дистрибутива \XEmTeX{} (потомок дистрибутива fp\TeX). Если вы не хотите устанавливать эту коллекцию, то вы можете самостоятельно установить требуемые пакеты. Вот список мест, откуда эти пакеты можно взять: \begin{description} \item[Ghostscript] \url{http://www.cs.wisc.edu/~ghost/} \item[Perl] \url{http://www.activestate.com/} (но вам могут понадобиться дополнительные пакеты из архива CPAN: \url{http://www.cpan.org/}) \item[ImageMagick] \url{http://www.imagemagick.com} \item[NetPBM] Вы можете вместо ImageMagick использовать NetPBM для преобразования ваших графических файлов. Страничка NetPBM находится на \url{http://netpbm.sourceforge.net/} \item[Редакторы для работы с \TeX{}ом] Имеется широкий выбор редакторов, и какой из них использовать "---дело вкуса. Вот подборка: \begin{itemize*} \item \cmdname{GNU Emacs} есть для Windows, его страничка: \url{http://www.gnu.org/software/emacs/windows/ntemacs.html} \item \cmdname{XEmacs} есть для Windows, его страничка: \url{http://www.xemacs.org/} \item \cmdname{WinShell} есть на \TL в директории \path|support|, его страничка: \url{http://www.winshell.de} \item \cmdname{WinEdt} это shareware, доступное на \url{http://www.winedt.com} \item \cmdname{Vim} есть на \TL{} в директории \path|support\wim|, его страничка: \url{http://www.vim.org} \item \cmdname{TeXnicCenter} "---~это свободная программа, которая есть на странице \url{http://www.toolscenter.org/products/} и в дистрибутиве pro\TeX t. \item \cmdname{LEd} можно найти на \url{http://www.ctan.org/support/LEd} \item \cmdname{SciTE} можно найти на \url{http://www.scintilla.org/SciTE.html} \end{itemize*} \end{description} Вы можете установить и другие программы, которые не являются свободными\footnote{Несвободными в том смысле, что их нельзя свободно модифицировать и распространять. Это не означает, что вы не можете приобрести их бесплатно.} и потому не включённые в дистрибутив \TL{}, например, \cmdname{GSView}, графическая оболочка к программе \cmdname{Ghostscript}, удобная для файлов в форматах PS/PDF. \cmdname{GSView} можно найти на \url{http://www.cs.wisc.edu/~ghost/gsview/} или любом зеркале архива \acro{CTAN}. \section{Действия после установки и поддержка \protect\Windows} Если вы установили дистрибутив \TL, вы можете использовать \cmdname{tlpmgui} для изменения и поддержки установленной системы. \subsection{Добавление и удаление пакетов} Поскольку программа \cmdname{tlpmgui} находится в меню \guiseq{Start\arw Programs\arw TeXLive2005}, запустите её оттуда. Появится окно \guiseq{TeX Live installation and maintenance utility}. В нём есть несколько страниц: \guiseq{Add Packages}, \guiseq{Remove packages}, \guiseq{Manage installation}, \guiseq{Remove installation}. Щёлкните по страничке \guiseq{Add packages} или \guiseq{Remove packages}, а затем: \begin{itemize} \item На первой страничке выберите нужный \CD{} (или \DVD{} с директорией \dirname{texlive}), нажав на кнопку \guiseq{CD/DVD}. \item Щелкните на кнопку \guiseq{Search} в разделе \guiseq{Buttons} чтобы вызвать или обновить список пакетов в разделе \guiseq{Select packages to\dots} При добавлении пакетов список установленных пакетов сравнивается со списком на \CD/\DVD. Только неустановленные пакеты показываются в меню. Вы можете сами выбрать, что именно устанавливать. При удалении отдельных пакетов показывается только список установленных пакетов. Заметьте, что в меню \guiseq{Add packages} и \guiseq{Remove packages} сначала указывается список коллекций. \item Выберите пакет, щёлкнув на название пакета. Кнопка \guiseq{Info} в разделе \guiseq{Buttons} показывает краткое описание выбранного пакета в разделе \guiseq{Info about the selected item}. Чтобы выбрать сразу несколько пакетов, нажмите клавиши Ctrl или Shift и щёлкните левой клавишей мышки, или зажмите левую клавишу и выберите несколько пакетов мышкой. \item Щёлкните на кнопку \guiseq{Install} или \guiseq{Remove} в разделе \guiseq{Buttons} для того, чтобы произвести требуемое действие. \end{itemize} \subsection{Конфигурация и другие административные действия} На странице \guiseq{Manage the installation} содержатся кнопки для добавления поддержки языка, который не был выбран при установке, добавления/регенерация формата, который не был выбран при установке или был модифицирован после установки. Можно произвести следующие действия: \begin{itemize} \item Обновить базу данных \filename{ls-R} \item Создать форматы (Все или только отсутствующие) \item Редактировать \filename{language.dat} \item Редактировать \filename{fmtutil.cnf} \item Редактировать \filename{updmap.cfg} \end{itemize} Примечание: Вы можете закрыть окно \guiseq{Edit\dots} кнопкой \guiseq{Cancel} или кнопкой \guiseq{Done}. В последнем случае система начнёт создавать заново файлы форматов (или карты шрифтов, если вы редактировали \filename{updmap.cfg}), после чего будет обоновлена база данных \filename{ls-R}. Более подробно конфигурация системы описана в разделе~\ref{sec:persconf}, \p.\pageref{sec:persconf}. \subsection{Удаление \protect\TL{}} Страница \guiseq{Remove the TeX Live installation} открывает окно с кнопками, которые не ст\'оит описывать. Мы не знаем никого, кому бы они могли понадобиться\dots :-) В любом случае, если у вас есть директория \path|texmf-local| для ваших собственных добавлений, процесс удаления не сотрёт ни её, ни файлов в этой директории. Директория \path|setup-win32|, содержащая \cmdname{tlpmgui} и другие файлы, также не будет удалена. Вам придётся удалять эти директории вручную. \subsection{Добавление ваших собственных пакетов к дистрибутиву} Во-первых, что бы вы ни делали, \textbf{не забудьте перегенерировать базу данных имён файлов \filename{ls-R}.} Иначе новые файлы не будут найдены системой. Вы можете это делать либо через графическую оболочку \cmdname{tlpmgui}, выбрав соответствующее действие на странице \guiseq{Manage the installation}, либо вручную при помощи команды \file{mktexlsr}. Если вы хотите добавить файлы, которых нет в дистрибутиве \TL{}, лучше всего их добавлять в директорию \path|$TEXMFLOCAL|. Тогда они сохранятся при обновлении \TL. Директория \path|$TEXMFLOCAL| первоначально пуста. Если, например, вы хотите добавить файлы поддержки для программы символических вычислений Maple, вы можете положить стилевые файлы в \path|c:\TeXLive2005\texmf-local\tex\latex\maple\|, а документацию в \path|c:\TeXLive2005\texmf-local\doc\latex\maple\|. \subsection{Запуск \texttt{tlmp.exe} из командной строки} У программы \texttt{tlmp.exe}, которую использует графическая оболочка \cmdname{tlmpgui}, есть ряд полезных ключей. Вы можете получить список ключей, запустив \begin{verbatim} tlpm --help \end{verbatim} Дополнительную информацию можно найти в файле \filename{tlmp.readme}. \subsection{Установка по сети} \KPS{} знает про сетевые диски, поэтому вы можете использовать их для того, чтобы раздавать дерево \path{TEXMF} по сети. Но можно поступить ещё проще. Все \TeX{}овские и конфигурационные файлы, всё, кроме файлов в директории \path|bin/win32| можно использовать в одновременно в версиях \teTeX{} или \TL{} под Юниксом. Это означает, что вы можете использовать Самбу, чтобы смонтировать диски либо с сервера \acro{NT} на рабочую станцию под Юниксом, либо наоборот. Возможно несколько стратегий: \begin{itemize} \item Положите всё на сервер. Добавьте файлы для каждой архитектуры в соответствующую поддиректорию \path|bin|, например, \path|bin/win32| и \path|bin/i386-linux|. Затем установите ваши переменные. Вы можете использовать сетевые имена, чтобы задать нужные директории под Win32. \item Установите локальные копии программ и форматов. В этом случае задайте в переменной \path|$TEXMFMAIN| главное дерево \path|texmf|, которое лежит на сервере. Установите \path|$VARTEXMF| на локальную директорию с локальными конфигурационными файлами и автоматически созданными файлами. \end{itemize} \subsection{Чем Windows отличаются от других систем?} Версия \Webc{} для Windows отличается некоторыми специфическими чертами, которые ст\'оит указать. \begin{description} \item[\KPS{}] Хеши, которые строит \KPS{} для \TL, довольно велики. Чтобы уменьшить время старта для всех программ, использующих \KPS, эти хеши кладутся в общую память. Поэтому, когда вы запускаете несколько таких программ, вызывающих друг друга (\path|tex| вызывает \path|mpost|, который вызывает \path|tex|), накладные расходы на запуск каждой из программ меньше. Это изменение невидимо для пользователя, за исключением случая, когда вы выставляете флаг отладки \cmdname{kpathsea} на \path|-1|: вы тогда начинаете трассировать доступ к общей памяти, обычно не совсем то, что вам надо (к ней очень много обращений). Мы ещё не выяснили, что именно полезно в логе доступа к общей памяти, так что ситуация может измениться в будущем. \item[\cmdname{kpsecheck}] Эта программа предоставляет некоторые опции, которые не подошли команде \cmdname{kpsewhich}. Она позволит вам перечислить все файлы, которые встречаются несколько раз в деревьях \path{texmf}. Это может быть удобно, но как правило, вы будете получать ненужную информацию, (вроде десятков файлов \path|README|). Эти файлы привели бы к противоречиям в хешах \KPS{}; к счастью, \KPS{} никогда их не ищет. Поэтому вы можете объединять опцию \path|-multiple-occurences| с двумя другими опциями для включения или исключения файлов, чьи имена соответствуют определённому шаблону (вы можете запросить несколько шаблонов). Команда \cmdname{kpsecheck} сообщает также статус общей памяти: используется или не используется. Это может быть полезно знать, потому что если статус памяти \samp{in use}, значит, запущен один или несколько процессов, и эффект команды \cmdname{mktexlsr} может быть отложен до тех пор, пока все процессы, использующие библиотеку \KPS{}, не завершатся. Наконец, эта же команда сообщает о том, где по её мнению находится Ghostscript. Под Win32 для многих программ проще искать Ghostscript dll по значению регистра, чем использовать \path|PATH|, длина которого ограничена. \item[\Webc{}] У компиляторов несколько опций, которых нет под Unixовской версией \Webc{}, и у одной опции другое поведение: \begin{itemize} \item \path|-halt-on-error| остановить компиляцию на первой ошибке. \item \path|-job-time| задать дату выполнения работы по времени создания файла, указанного в качестве аргумента. \item \path|-oem| использовать кодовую страницу \acro{DOS} для выдачи на консоль. \item \path|-output-directory| писать все выходные файлы в указанную директорию. \item \path|-time-statistics| вывести статистику о затраченном времени. Следует заметить, что, поскольку система Win9x не является по-настоящему многозадачной системой, у неё нет надёжного таймера для небольших промежутков времени, и поэтому результат лишь приблизителен. Под NT/2K/XP результат довольно точно показывает системное время и время, затраченное прикладными программами. Для пользователей Unixа напоминаем, что под Windows обычно нет стандартной команды \path|time|. \end{itemize} \end{description} \subsection{Индивидуальные настройки} \label{sec:persconf} \subsubsection{Dvips} Конфигурационный файл для dvips находится в\\ \verb+C:\TeXLive2005\texmf-var\dvips\config\config.ps+\\ Вы можете открыть его в любом редакторе и изменить некоторые параметры: %(\cmdname{WinShell} will do fine) \begin{description} \item [шрифты] вы можете изменить текущий режим \MF{} или разрешение принтера, если \cmdname{dvips} понадобится генерировать шрифты в формате \acro{PK}. По умолчанию она использует шрифты в формате Type~1, так что она не должна вызывать \cmdname{mktexpk} чересчур часто; \item[принтер] вы можете сказать \cmdname{dvips}, где вы хотите печатать по умолчанию. Если за опцией \optname{o} не следует название принтера, то на диск записывается файл в формате \PS{}. Вы можете указать \cmdname{dvips} название принтера, например: \begin{verbatim} o lpt1: % o | lpr -S server -P myprinter % o \\server\myprinter \end{verbatim} \item[бумага] Вы можете изменить размер бумаги с европейского (A4) на US letter, сделав US letter первым размером бумаги в файле. Найдите в файле строки, начинающиеся с \code{@}. Поменяйте строки так, чтобы этот раздел начинался со строк:\\ \hspace*{1em} @ letterSize 8.5in 11in\\ \hspace*{1em} @ letter 8.5in 11in\\ \hspace*{1em} @+ \%\%BeginPaperSize: Letter\\ \hspace*{1em} @+ letter\\ \hspace*{1em} @+ \%\%EndPaperSize \end{description} Текущая версия \TL{} всегда создаёт обновлённые версии файлов fontmaps для Dvips and Pdftex. Это делается программой \cmdname{updmap} во время установки, а также при добавлении пакетов. Если вы добавляете пакеты вручную, отредактируйте файл \verb+updmap.cfg+ в \path|$TEXMFVAR/web2c|. \subsubsection{PdfTeX} Если вы используете программу pdf{}latex, чтобы писать непосредственно в формате \acro{PDF}, и вы используете бумагу \acro{US} letter, отредактируйте файл\\ \verb+C:\TeXLive2005\texmf-var\tex\generic\config\pdftexconfig.tex+,\\ изменив в нём \samp{\bs pdfpagewidth} и \samp{\bs pdfpageheight}. Там должно быть: \begin{alltt} \bs{}pdfpagewidth=8.5 true in \bs{}pdfpageheight=11 true in \end{alltt} Сохраните файл и выйдите из редактора. \subsubsection{GSView} GSView теперь распространяется под лицензией Aladdin, и поэтому не включена в \TL{}. Вы можете захотеть изменить размер страницы на US letter. Если это так, запустите GSView из меню \guiseq{Start}, и выберите \guiseq{Media\arw Letter}. Кроме того, вы можете изменить настройки так, чтобы получить самое качественное изображение на экране. В меню \guiseq{Media \arw Display Settings}, выставьте \optname{Text Alpha} и \optname{Graphics Alpha} на 4~бита. Заметьте, что после установки все файлы \code{.ps} и \code{.eps} будут автоматически открываться программой \cmdname{GSView}. По поводу печати, см. раздел~\ref{printing} ниже. \subsubsection{WinDvi} \label{sub:windvi} Программа \file{tlmpgui.exe} не ассоциирует файлы с расширением \file{.dvi} с программой \file{Windvi} и не создаёт иконы на декстопе, так что вы это должны сделать сами. Откройте \cmdname{windvi}, щёлкнув на иконку или из командной строки. Вы можете задать размер бумаги US letter из меню \guiseq{View\arw Options\arw Papertype} и выбрав US (8.5\verb+"+ x 11\verb+"+) (а затем \optname{OK}). Вы можете изменить и другие параметры, как например, возможность запускать системные команды из документа (запрещённую по умолчанию из соображений безопасности). Кроме того, при первом запуске вы можете решить, что масштаб чересчур велик. Измените его и найдите подходящее для вас значение. Все настройки программы \cmdname{Windvi} хранятся в файле \path|windvi.cnf|. Вы можете найти его командой \begin{verbatim} c:\>kpsewhich --expand-var $HOME/windvi.cnf \end{verbatim} Если у вас возникнут проблемы с \cmdname{Windvi}, удалите конфигурационный файл и проверьте, работает ли всё в стандартной конфигурации. \subsection{Тестирование} Общие инструкции по тестированию находятся в разделе~\ref{sec:test-install} (\p.\pageref{sec:test-install}). В этом разделе описаны тесты, специфические для Windows. Откройте файл \verb+sample2e.tex+ в вашем редакторе (Xemacs, WinShell). Этот файл можно найти в директории, например, \path|C:\TeXLive2005\texmf-dist\tex\latex\base|. На экране должен появиться исходный код в формате \LaTeX. Скомпилируйте его, щёлкнув по меню \guiseq{Command\arw LaTeX} (XEmacs) или иконке <<\LaTeX>> (WinShell), затем посмотрите на результат, щёлкнув по меню \guiseq{Command\arw View DVI} (XEmacs) или иконке <> (WinShell). При первом просмотре файлов Windvi, программа создаст экранные шрифты, которые не установлены в системе. Через некоторое время б\'ольшая часть шрифтов будет создана, и вы будете видеть окошко создания шрифтов очень редко. \textbf{Совет на будущее:} Если \LaTeX\ останавливается, потому что не может найти нужного файла, вы можете нажать \code{Ctrl-z}, чтобы выйти из программы. \subsection{Печать} \label{printing} Вы можете печатать из \cmdname{Windvi}. В этом случае печать будет производиться через универсальный драйвер Windows. Он по определению совместим со всеми принтерами. Но у него есть недостаток: он может генерировать огромные промежуточные файлы, и некоторые (старые) версии Windows их не любят. Его преимущество в том, что вы можете вставлять графику в формате \acro{BMP} или \acro{WMF}. Вам также надо правильно выставить параметры печати (раздел~\ref{sub:windvi}), иначе вы можете получить уменьшенную или увеличенную страницу (печать с разрешением 600\dpi{} на принтере с разрешением 300\dpi{} даст вам только четверть страницы). Печать будет быстрее и надёжнее, если вы запустите \cmdname{dvips}, чтобы создать файл \filename{.ps}, а затем напечатаете его из \cmdname{GSView}. В \cmdname{GSview} выберите \guiseq{File\arw Print\ldots}. Появится окно \guiseq{Print}. Если у вас \PS{}-принтер, \textit{обязательно выберите \guiseq{\PS{} Printer}}. Это делается в меню \guiseq{Print Method} внизу слева в окне \guiseq{Print}. Вы затем можете выбрать любой из установленных принтеров. Если вы не выберите \optname{\PS{} Printer}, печать не будет работать. Если вы используете не \PS{}-принтер, выберите \guiseq{Ghostscript device} в меню \guiseq{Print Method}, затем щёлкните на кнопку справа \guiseq{djet500} и выберите ваше принтер из появившегося списка. (В старых версиях \cmdname{GSView} проверьте, что \optname{\PS{} Printer} \textit{не} выбран, и выберите принтер из списка \guiseq{Device}.) \subsection{Советы пользователям Win32} \subsubsection{Разные типы Win32} То, что мы называем Win32, не является операционной системой само по себе. Это большой набор функций (около 12\,000 в заголовках \acro{SDK} от Микрософта), которые используются для написания программ для разных операционных систем семейства Windows. Есть разные типы Windows: \begin{itemize} \item Win95, Win98 и Win\acro{ME}, которые \emph{не являются настоящими многозадачными системами.} Это последние "---будем надеяться, что на самом деле последние "---реинкарнации \acro{DOS}. Это может быть более или менее убедительно доказано наблюдением за процессом загрузки. \acro{PC} загружает \path|command.com|. Если вы остановите процесс загрузки, вы можете спросить текущую версию \acro{DOS}, и система ответит что-то вроде \samp{MS-DOS 7.0} (по крайней мере в старших версиях Win9x). \item Windows \acro{NT}, новая операционная система, написанная с нуля, способная к настоящей многозадачности, и включающая много высокоуровневых возможностей. \item Windows 2000, основанная на \acro{NT}, но со всеми возможностями Win98. \item Windows \acro{XP}, которая бывает Personal и Pro. Это последний шаг в слиянии двух линеек продуктов (Win9x и \acro{NT}). \acro{XP} основана на \acro{NT}. \end{itemize} Win9x могут одновременно запускать 32 и 16-битовые программы. Но операционная система сама написана не полностью в 32-битовом режиме, и не поддерживает защищённый режим: 16-битовые программы могут переписать память операционной системы! Некоторые части системы, например, \acro{GDI} (Graphical Device Interface, интерфейс к графическим устройствам) управляют ограниченными ресурсами, вроде битмапов, шрифтов и т.д. для всех программ, которые могут работать одновременно. Все заголовки битмапов, доступные одновременно, не могут занимать больше, чем 64\,Kb. Это объясняет, тот печальный факт, что вы можете поставить систему на колени, например, используя много графических объектов. \acro{NT}, {2K} и \acro{XP} свободны от этих и других ограничений Win9x. Это настоящие многозадачные системы с защищённой памятью. Они гораздо лучше отзываются на действия пользователя, чем Win9x, из-за лучшего управления памятью, лучшей файловой системы и т.д. \subsubsection{Командная строка} Вы можете спросить: <<Зачем мне нужна командная строка, если я работаю под Windows?>> Хороший вопрос. Проблема на самом деле очень общая. Не все операции удобно делать из \acro{GUI}. Командная строка даёт вам возможности программирования "---если за ней стоит хороший интерпретатор. Но проблема ещё более фундаментальна: \TeX{} является \emph{пакетной} программой. Не интерактивной. \TeX{}у надо вычислить оптимальную вёрстку для всей страницы, перекрёстные ссылки и т.д. Это можно сделать только глобальной компиляцией всего документа. Эту задачу (пока) невозможно решить интерактивно. Это означает, что \TeX{} надо использовать из командной строки. На самом деле ситуация вовсе не так ужасна. У программ, занимающихся сложной обработкой потока из командной строки, есть преимущество: их проще отлаживать, потому что они не зависят от проблем \acro{GUI}, и можно написать отдельные \acro{GUI}, которые взаимодействуют с такими программами. Это и происходит с \TeX{}ом, где вы можете общаться с программой через \acro{GUI} редактора. Однако вам в ряде ситуаций может понадобиться командная строка. Например, у вас могут возникнуть трудности, и вам потребуется отладка. \begin{description} \item[Win9x] Вы можете получить командную строку, либо щёлкнув по иконке \acro{MS-DOS} в меню \guiseq{Start\arw Programs}, либо выбрав из меню \guiseq{Start\arw Run} и напечатав там \path|command.com|. \item[NT, 2K, XP] Вы можете получить командную строку, найдя \guiseq{Command Prompt} в меню \guiseq{Start\arw Accessories}. Вы также можете выбрать меню \guiseq{Start\arw Run} и напечатать там \path|cmd.exe|, название нового интерпретатора командной строки в \acro{NT} (именно поэтому неправильно называть его окном \emph{DOS}!). \end{description} Детали выхода в командную строку могут измениться в других версиях Windows. \subsubsection{Разделители путей} API Win32 понимает и \path|/|, и \path|\| в качестве разделителей в названиях директорий. Но интерпретаторы команд не понимают первого из них! Поэтому, когда путь к файлу используется в программе, вы можете использовать оба разделителя, даже в одном и том же пути. Но в командной строке вы можете использовать в качестве разделителя только \path|\|. Причина заключается в совместимости: интерпретатор команд использует \samp{/} для аргументов команд. После этого длинного предисловия мы можем сказать: не удивляйтесь, если вы встретите директории, записанные в формате Юникса: \fpTeX{} является портом \Webc, и пытается достичь совместимости на разных платформах. По этой причине все конфигурационные файлы, где указывается путь по директориям, делают это в формате Юникса. \subsubsection{Файловые системы} \label{sec:clusters} Пожалуй, худшей чертой Win9x с точки зрения\TeX{}а является так называемая файловая система \acro{FAT}. \TeX{} использует очень много маленьких файлов, с размерами 1--3\,Kb. Файловая система \acro{FAT} очень древняя, она на много десятилетий старше многогигабайтовых дисков, которые распространены сегодня. Неудивительно, что она не может эффективно управлять десятками тысяч \TeX{}овских файлов, входящих в состав \TL{}. Файловая система \acro{FAT} выделяет как минимум 32\,Kb \emph{любому} файлу на большом разделе. Это означает, что система \TeX{} занимает намного больше места, чем ей на самом деле нужно. Другие, более современные файловые системы, \acro{FAT32} и \acro{NTFS}, лишены этого недостатка. Они используют кластеры размером в 4\,Kb. (На \acro{NTFS} размер кластера можно уменьшить до 512 байт.) \subsubsection{Как добавить директорию в PATH} Есть пары переменных и их значений, которые ведут себя как глобальные переменные для всех программ. Набор таких переменных называется \emph{окружением}. Каждая программа получает копию текущего окружения. Она может опросить или изменить значение любой переменной. Изменение происходит с локальной копией окружения, и не переходит в другие программы. Переменная \envname{PATH} "---особая переменная, используемая для поиска запускаемых вами программ. Она задаётся по-разному в Win9x, WinME and NT/2K/XP: \begin{description} \item[Windows 95/98] Отредактируйте файл \path|autoexec.bat|. В этом файле должна быть строка, начинающаяся с \texttt{PATH=}, после чего следует список директорий, разделённых \path|;|. Добавьте директорию с программами \TL{} к списку, например, так: \begin{verbatim} PATH=c:\windows;c:\windows\system;c:\TeXLive2005\bin\win32 \end{verbatim} \item[Windows ME] Вам надо запустить специальную программу \path|c:\windows\system\msconfig.exe| чтобы изменить переменные окружения. В этой программе выберите <> и измените нужные переменные. Вам будет предложено рестартовать машину после изменения. \item[Windows NT/2K/XP] Щёлкните левой клавишей мышки на \guiseq{Start \arw Settings \arw Control Panel}. Откроется окно с иконками панели управления. Щёлкните на <>. Откроется окно <>. Щёлкните на \textsf{Environment} или найдите \guiseq{Environment Variables} среди диалоговых окон. Теперь вы сможете изменить окружение для себя. Примечание: там также показано системное окружение. Обычно вы не можете изменить системные переменные, если у вас нет прав администратора. Если вы хотите изменить \envname{PATH} для всех пользователей, обратитесь к вашему системному администратору. Если вы сами системный администратор, вы должны понимать, что вы делаете. Если там уже есть переменная \envname{PATH}, щёлкните на \envname{PATH}. В поле \textsf{Variable} появится \texttt{PATH}, а в поле \textsf{Value} текущее значение переменной: список директорий, разделённых \path|;|. Добавьте директорию, где расположены нужные программы, например, \path|c:\TeXLive2005\bin\win32|. Если у вас не задана переменная \envname{PATH}, щёлкните на поле \textsf{Variable} и впечатайте \texttt{PATH}, щёлкните на поле \textsf{Value} и впечатайте директорию. Внимание: Щёлкните на \textsf{Apply} перед тем, как нажать \textsf{Ok}, иначе значение \envname{PATH} не изменится. Будьте очень аккуратны, изменяя переменные окружения. \end{description} Лучший способ убедиться, что переменная установлена правильно: откройте консоль и напечатайте \begin{verbatim} set VARIABLE \end{verbatim} система должна напечатать её значение. \subsubsection{Компиляторы \TeX{}а} Если вы взглянете в документацию \Webc{}, вы увидите, что все различные программы на основе \TeX{}а используют один и тот же компилятор, Например, \path|tex.exe| и \path|latex.exe| являются копиями одной и той же программы, но используют различные форматы в зависимости от того, под каким именем они вызваны. Под Юниксом это сделано путём использования \emph{символических ссылок}. Это экономит массу места на диске, потому что один и тот же компилятор используется многими программами. API Win32 не знает про ссылки. Поэтому чтобы сэкономить место, все основные программы \TeX{}а упакованы в DLL (\emph{Dynamic Linked Library}, динамически подгружаемая библиотека). Это означает, что у вас могут быть такие файлы: \begin{alltt} 18/09/2005 14:19 3 584 latex.exe 18/09/2005 14:19 3 584 pdfetex.exe 18/09/2005 14:19 524 288 tl90pdfetex.dll \end{alltt} и файл \path|latex.exe| на самом деле является копией \path|pdfetex.exe|, использующей тот же \path|tl90pdfetex.dll|. Этот же метод используется для программ \path|mktex*.exe|, которые вызывают библиотеку \path|mktex.dll|, Мы включили в дистрибутив программу \path|irun.exe| для создания аналога юниксовских жёстких ссылок для программ под Win32. \subsection{Что делать в случае проблем} \label{sec:troubleshooting} \subsubsection{Что делать, если \texttt{latex} не находит ваших файлов?} \begin{itemize} \item Программа \cmdname{kpsewhich} помогает в отладке. К сожалению, \cmdname{kpsewhich} выдаёт отладочную информацию на \cmdname{stderr}, а программы под консолью Windows не знают, как сбросить \cmdname{stderr} в файл. (Консоль в NT and Win2k может это сделать, но способ, описанный здесь, работает в любой консоли). Для диагностики вы можете временно установить переменную окружения (в окне \acro{DOS}): \begin{verbatim} SET KPATHSEA_DEBUG_OUTPUT=err.log \end{verbatim} Вы также можете установить уровень отладки: \begin{verbatim} SET KPATHSEA_DEBUG=-1 \end{verbatim} Если вы хотите перенаправить \cmdname{stderr} на \cmdname{stdout}, что в общем случае невозможно под Windows, сделайте так: \begin{verbatim} SET KPATHSEA_DEBUG_OUTPUT=con: \end{verbatim} Теперь вы можете направить \cmdname{stderr} и \cmdname{stdout} в один и тот же файл. \item Предполагая, что вы установили систему под \path|c:/TeX|, проверьте следующие значения: \\ {\small \begin{tabular}{ll} \path|kpsewhich -expand-path $SELFAUTOPARENT| & \path|c:/TeX| \\ \path|kpsewhich -expand-path $TEXMF| & \path|c:/TeX/texmf....| \\ \path|kpsewhich -expand-path $TEXMFCNF| & \path|.;c:/TeX/texmf-var/web2c;| \\ \path|kpsewhich -expand-var $TEXINPUTS| & \path|.;c:/TeX/texmf/tex//| \end{tabular} } \item Если в вашем окружении установлены относящиеся к \TeX у значения, пожалуйста, удалите их. Они имеют преимущество перед теми. которые заданы в \path{texmf.cnf}. \item Проверьте значения в:\\ {\small \begin{tabular}{ll} \texttt{kpsewhich cmr10.tfm} & \path|c:/TeX/texmf/fonts/tfm/public/cm/cmr10.tfm|\\ \texttt{kpsewhich latex.fmt}& \path|c:/TeX/texmf/web2c/latex.fmt| \end{tabular} } \item Если всё до этого момента правильно, \TeX{} и прочие программы должные работать. Если это не так, поиграйтесь с опцией \path|-debug=n| для \path|kpsewhich|, и проверьте все значения. Попытайтесть определить проблему и сообщить автору. \end{itemize} \subsubsection{Что делать, если установка произошла не так, как ожидалось?} Вот несколько вещей, которые вы можете проверить: \begin{enumerate} \item Находится ли \file{tex.exe} в моей \path|PATH|? \item Установлена ли переменная \path|TEXMFCNF| на \path|c:/TeXLive2005/texmf-var/web2c| (значение по умолчанию)? \item Есть ли ошибки в логах программы \file{tlmpgui.exe}? Вы можете найти файл \file{tlmpgui.log} в директории \file{TEMP}. Ищите строку \samp{Error} в этом файле. Заметьте, что в логе могут оказаться ошибки после генерироования некоторых форматов. Не надо паниковать: возможно, некоторые форматы не были установлены. \item Есть ли объявление о багах на \url{http://tug.org/texlive/}? (Маловероятно, но проверить ст\'оит.) \end{enumerate} Дистрибутив \TL{} состоит из сотен программ и десятков тысяч файлов из разных источников. Поэтому очень трудно предсказать все возможные источники ошибок. Тем не менее мы попытаемся вам помочь (см, раздел~\ref{sec:help} \p.~\pageref{sec:help}). % don't use \Webc so the \uppercase in the headline works. \section{Руководство пользователя Web2C} \Webc{} "---это интегрированная коллекция программ, относящихся к \TeX{}у: сам \TeX{}, \MF{}, \MP, \BibTeX{}, и т.д. Это сердце \TL{}. Немного истории. Первоначальная версия была написана Томасом Рокики, который в 1987 году создал первую систему \TeX{}-to-C, адаптировав файлы изменений для Юникса, разработанные в основном Говардом Трики и Павлом Куртисом. Тим Морган стал поддерживать систему, и в этот период её имя сменилось на Web-to-C\@. В 1990 году Карл Берри взялся за работу, координируя работу десятков программистов, а в 1997 он передал руководство Олафу Веберу. Система \Webc{} работает на Юниксе, 32-битовых Windows, \MacOSX{}, и других операционных системах. Она использует оригинальные исходники Кнута для \TeX{}а и других программ, написанных на языке \web{} и переведённых на C. Основные программы системы: \begin{cmddescription} \item[bibtex] Поддержка библиографий. \item[dmp] Перевод \cmdname{troff} в MPX (картинки в \MP{}). \item[dvicopy] Раскрывает виртуальные шрифты в файлах \dvi{}. \item[dvitomp] Перевод \dvi{} в MPX (рисунки в \MP{}). \item[dvitype] Перевод \dvi{} в текст. \item[gftodvi] Гранки шрифтов. \item[gftopk] Упаковка шрифтов \item[gftype] Перевод GF в текст. \item[makempx] Вёрстка меток \MP{}. \item[mf] Создание шрифтов. \item[mft] Вёрстка исходников \MF{}. \item[mpost] Создание технических диаграмм. \item[mpto] Извлечение меток \MP{}. \item[newer] Сравнение дат модификации. \item[patgen] Создание таблиц переносов. \item[pktogf] Перевод PK в GF. \item[pktype] Перевод PK в текст \item[pltotf] Перевод из списка свойств шрифта в TFM. \item[pooltype] Показ файлов pool в \web{}. \item[tangle] Перевод \web{} в Pascal. \item[tex] Вёрстка. \item[tftopl] Перевод TFM в список свойств шрифта. \item[vftovp] Перевод виртуального шрифта в список свойств шрифта. \item[vptovf] Перевод списка свойств шрифта в виртуальный шрифт. \item[weave] Перевод \web{} в \TeX. \end{cmddescription} \noindent Полностью эти программы описаны в документации к соответствующим пакетам и самой \Webc{}. Однако знание некоторых общих принципов для всей семьи программ поможет вам полнее использовать программы системы \Webc{}. Все программы поддерживают стандартные опции \acro{GNU}: \begin{ttdescription} \item[-{}-help] напечатать краткую справку \item[-{}-verbose] печатать подробную информацию по мере работы \item[-{}-version] Напечатать версию программы и завершить работу. \end{ttdescription} Для поиска файлов программы \Webc{} используют библиотеку \KPS{}. Эта библиотека использует комбинацию переменных окружения и конфигурационных файлов, чтобы найти нужные файлы в огромной системе \TeX{}. \Webc{} может просматривать одновременно больше одного дерева директорий, что полезно для работы со стандартным дистрибутивом \TeX{}а и его локальными расширениями. Для ускорения поисков файлов каждое дерево содержит файл \file{ls-R}, в котором указаны названия и относительные пути всех файлов в этом дереве. \subsection{Поиск файлов в Kpathsea} Рассмотрим сначала общий алгоритм библиотеки \KPS. Будем называть \emph{путём поиска} набор разделённых двоеточием или точкой с запятой \emph{элементов пути}, представляющих из себя в основном названия директорий. Путь поиска может иметь много источников. Чтобы найти файл \samp{my-file} в директории \samp{.:/dir}, \KPS{} проверяет каждый элемент пути по очереди: сначала \file{./my-file}, затем \file{/dir/my-file}, возвращая первый файл (или, возможно, все файлы). Чтобы работать с разными операционными системами, \KPS{} под системой, отличной от Юникса может использовать разделители, отличные от \samp{:} и \samp{/}. Чтобы проверить определённый элемент пути \var{p}, \KPS{} вначале проверяет, подходит ли к нему база данных (см. <<База данных файлов>> на стр.~\pageref{Filename-database}), т.е., есть ли база в директории, которая является префиксом для \var{p}. Если это так, спецификация пути сравнивается с содержимым базы данных. Если база данных не существует, или не относится к этому элементу пути, или не содержит нужного элемента, проверяется файловая система (если это не запрещено спецификацией, начинающейся с \samp{!!}, и если файл должен существовать). \KPS{} конструирует список директорий, которые соответствуют элементу, и в каждой директории ищет нужный файл, Условие <<файл должен существовать>> важно для файлов \samp{.vf} и файлов, которые открывает \TeX{} по команде \cs{openin}. Такие файлы могут и не существовать (например, файл \file{cmr10.vf}), и было бы неправильно искать их на диске. Поэтому, если вы не обновите \file{ls-R} при установке нового файла \samp{.vf}, он никогда не будет найден. Каждый элемент пути ищется по очереди: сначала база данных, затем диск. Если нужный файл найден, поиск останавливается, и возвращается результат. Хотя самый простой и часто встречающийся элемент пути "---это название директории, \KPS{} поддерживает дополнительные возможности: разнообразные значения по умолчанию, имена переменных окружения, значения из конфигурационных файлов, домашние директории пользователей, рекурсивный поиск поддиректорий. Поэтому мы говорим, что \KPS{} \emph{вычисляет} элемент пути, т.е., что библиотека преобразует спецификации в имя или имена директории. Это описано в следующих разделах в том же порядке, в котором происходит поиск. Заметьте, что имя файла при поиске может быть абсолютным или относительным, т.е. начинаться с \samp{/}, или \samp{./}, или \samp{../}, \KPS{} просто проверяет, существует ли файл. \ifSingleColumn \else \begin{figure*} \verbatiminput{examples/ex5.tex} \setlength{\abovecaptionskip}{0pt} \caption{Пример конфигурационного файла} \label{fig:config-sample} \end{figure*} \fi \subsubsection{Источники путей поиска} \label{Path-sources} Путь поиска может иметь разные источники. \KPS{} использует их в следующем порядке: \begin{enumerate} \item Установленные пользователем переменные окружения, например \envname{TEXINPUTS}\@. Переменные окружения с точкой и названием программы имеют преимущество; например если \samp{latex} "---имя программы. то \envname{TEXINPUTS.latex} имеет преимущество перед \envname{TEXINPUTS}. \item Конфигурационный файл, специфический для данной программы, например, строка \samp{S /a:/b} в \file{config.ps} для \cmdname{dvips}. \item Конфигурационный файл \KPS{} \file{texmf.cnf}, содержащий строку типа \samp{TEXINPUTS=/c:/d} (см. ниже). \item Значение, заданное при компиляции. \end{enumerate} \noindent Вы можете увидеть каждое из этих значений для данного пути поиска, задав соответствующий уровень отладки (см. <<Отладка>> на стр.~\pageref{Debugging}). \subsubsection{Конфигурационные файлы} \begingroup\tolerance=3500 \KPS{} читает \emph{конфигурационные файлы} \file{texmf.cnf} для задания своих параметров. Путь поиска для этих файлов называется \envname{TEXMFCNF} (по умолчанию, такой файл находится в поддиректории \file{texmf/web2c}). \emph{Все} найденные файлы \file{texmf.cnf} будут прочитаны, и определения в более ранних файлах имеют преимущество перед определениями в более поздних. Таким образом, если путь поиска задан как \verb|.:$TEXMF|, значения в \file{./texmf.cnf} имеют преимущество перед значениями в \verb|$TEXMF/texmf.cnf|. \endgroup \begin{itemize} \item Комментарии начинаются с \code{\%} и продолжаются до конца строки. \item Пустые строки игнорируются \item \bs{} в конце строки означает продолжение, т.е. добавляется следующая строка. Пробелы в начале следующей строки не игнорируются. \item Оставшиеся строки имеют вид \begin{alltt} \emph{variable}[.\emph{progname}] [=] \emph{value} \end{alltt}% где \samp{=} и пробелы вокруг могут опускаться. \item \ttvar{variable} может содержать любые символы, кроме пробела, \samp{=} или \samp{.}, но надёжнее всего придерживаться набора \samp{A-Za-z\_}. \item Если есть \samp{.\var{progname}}, определение относится только к программе, которая называется \texttt{\var{progname}} или \texttt{\var{progname}.exe}. Это позволяет, например разным видам \TeX{}а иметь разные пути поиска. \item \var{value} может содержать любые символы, кроме \code{\%} и \samp{@}. Нельзя использовать \code{\$\var{var}.\var{prog}} в правой части; вместо этого вы должны задать дополнительную переменную. \samp{;} в \var{value} переводится в \samp{:} под Юниксом; это полезно, чтобы поддерживать общий файл для Юникса, \acro{MS-DOS} и Windows. \item Все определения читаются до подстановок, поэтому к переменным можно обращаться до того, как они определены. \end{itemize} Фрагмент конфигурационного файла, иллюстрирующий эти правила приведён \ifSingleColumn ниже: \verbatiminput{examples/ex5.tex} \else приведён на Рис.~\ref{fig:config-sample}. \fi \subsubsection{Подстановка путей} \label{Path-expansion} \KPS{} разпознаёт определённые специальные символы и конструкции в путях поиска, аналогичные конструкциям в стандартных оболочках Юникса. Например, сложный путь \verb+~$USER/{foo,bar}//baz+, означает все поддиректории директорий \file{foo} и \file{bar} в домашней директории пользователя \texttt{\$USER}, которые содержат файл или поддиректорию \file{baz}. Это объяснено в следующем разделе. %$ \subsubsection{Подстановка по умолчанию} \label{Default-expansion} \tolerance=2500 Если путь поиска с наибольшим приоритетом (см. <<Источники путей>> на стр.~\pageref{Path-sources}) содержит \emph{дополнительное двоеточие} (в начале, в конце, двойное), \KPS{} заменяет его следующим по приоритету путём. Если этот вставленный путь содержит дополнительное двоеточие, то же происходит со следующим путём. Например, если переменная окружения задана как \tolerance=1500 \begin{alltt} > \Ucom{setenv TEXINPUTS /home/karl:} \end{alltt} и \code{TEXINPUTS} в файле \file{texmf.cnf} содержит \begin{alltt} .:\$TEXMF//tex \end{alltt} то поиск будет происходить с путём \begin{alltt} /home/karl:.:\$TEXMF//tex \end{alltt} Поскольку было бы бесполезно вставлять значение по умолчанию более чем один раз, \KPS{} изменяет только одно лишнее двоеточие, и оставляет остальные: она проверяет сначала двоеточие в начале, потом в конце, потом двойные двоеточия. \subsubsection{Подстановка скобок} Полезна также подстановка скобок, из-за которой, например, \verb+v{a,b}w+ означает \verb+vaw:vbw+. Вложенность тут допускается. Благодаря этому можно иметь несколько иерархий директорий, путём присвоения значения со скобками \code{\$TEXMF}. Например, в файле \file{texmf.cnf}, можно найти следующее определение (это упрощение, на самом деле там ещё больше деревьев): \begin{verbatim} TEXMF = {$TEXMFHOME,$TEXMFLOCAL,!!$TEXMFVAR,!!$TEXMFMAIN} \end{verbatim} Благодаря этому можно писать такое: \begin{verbatim} TEXINPUTS = .;$TEXMF/tex// \end{verbatim} %$ что означает, что кроме текущей директории будет происходить поиск только в \code{\$TEXMFHOME/tex}, \code{\$TEXMFLOCAL/tex}, \code{\$TEXMFVAR/tex} и \code{\$TEXMFMAIN/tex} (последние два дерева используют файлы \file{ls-R}). Это удобно для поддержки двух параллельных структур, <<замороженной>> (например, на \CD) и обновляемой по мере появления новых версий. Используя переменную \code{\$TEXMF} во всех определениях, можно задать поиск в обновляемом дереве первым. \subsubsection{Подстановка поддиректорий} \label{Subdirectory-expansion} Два или более слэша \samp{/} в элементе пути вслед за именем директории \var{d} заменяются всеми поддиректориями \var{d} рекурсивно. На каждом уровне порядок поиска по директориям \emph{не определён}. Если вы определите компоненты имени файла после \samp{//}, только поддиректории с соответствующими компонентами будут включены. Например, \samp{/a//b} даёт поддиректории \file{/a/1/b}, \file{/a/2/b}, \file{/a/1/1/b}, и т.д., но не \file{/a/b/c} или \file{/a/1}. Возможны несколько конструкций \samp{//} в одном пути, но \samp{//} в начале пути игнорируются. \subsubsection{Список специальных символов и их значений} В следующем списке приводятся специальные символы в конфигурационных файлах \KPS{}. \newcommand{\CODE}[1]{\makebox[3em][l]{\code{#1}}} \begin{ttdescription} \item[\CODE{:}] Разделитель в спецификациях путей; в начале или конце означает подстановку по умолчанию. \item[\CODE{;}] Разделитель для не-Юникса (то же, что \code{:}). \item[\CODE{\$}] Подстановка переменных. \item[\CODE{\string~}] Означает домашнюю директорию пользователя. \item[\CODE{\char`\{...\char`\}}] Подстановка скобок. \item[\CODE{//}] Подстановка поддиректорий (может встретиться где угодно, кроме начала пути). \item[\CODE{\%}] Начало комментария. \item[\CODE{\bs}] Символ продолжения (для команд из нескольких строк). \item[\CODE{!!}] Поиск \emph{только} в базе данных, но \emph{не} на диске. \end{ttdescription} \subsection{Базы данных} \label{Filename-database} \KPS{} старается минимизировать обращение к диску при поиске. Тем не менее в системах с большим количеством директорий поиск в каждой возможной директории может занять долгое время (это особенно верно, если надо проверить сотни директорий со шрифтами). Поэтому \KPS{} может использовать внешний текстовый файл, <<базу данных>> \file{ls-R}, который знает, где находятся файлы в директориях, что даёт возможность избежать частых обращений к диску. Ещё одна база данных, файл \file{aliases} позволяет вам давать дополнительные названия файлам в \file{ls-R}. Это полезно, если вам нужно соблюдать правило \acro{DOS} <<8.3>>. \subsubsection{Базы данных \texttt{ls-R}} \label{ls-R} Как объяснено выше, основная база данных называется \file{ls-R}. Вы можете создать её в корне каждого дерева \TeX{}а, которое просматривается \KPS{} (по умолчанию, \code{\$TEXMF}); в большинстве случаев иерархия только одна. \KPS{} ищет файлы \file{ls-R} в пути \code{TEXMFDBS}. Рекомендуемый способ создания и поддержки \samp{ls-R} "---скрипт \code{mktexlsr}, включённый в дистрибутив. Он вызывается разными скриптами \samp{mktex}\dots. В принципе этот скрипт выполняет команды типа \begin{alltt} cd \var{/your/texmf/root} && \path|\|ls -1LAR ./ >ls-R \end{alltt} при условии, что в вашей системе \code{ls} даёт вывод в нужном формате (\acro{GNU} \code{ls} годится). Чтобы поддерживать базу данных в текущем состоянии, проще всего перегенерировать её регулярно из \code{cron}а, так что она автоматически обновляется после установки нового пакета. Если файл не найден в базе данных, по умолчанию \KPS{} ищет на диске. Если элемент пути начинается с \samp{!!}, то поиск происходит \emph{только} в базе данных. \subsubsection{kpsewhich: поиск файлов} \label{Invoking-kpsewhich} Программа \texttt{kpsewhich} выполняет поиск в соответствии с алгоритмом, описанным выше. Это может быть полезно в качестве варианта команды \code{find} для поиска файлов в иерархиях \TeX{}а (это широко используется в скриптах \samp{mktex}\dots). \begin{alltt} > \Ucom{kpsewhich \var{option}\dots{} \var{filename}\dots{}} \end{alltt} Опции, указанные в \ttvar{option}, начинаются либо с \samp{-} либо \samp{-{}-}, и любые однозначные сокращения допустимы. \KPS{} рассматривает каждый аргумент, не являющийся опцией, как имя файла, и возвращает первый найденный файл. Нет опции вернуть все найденные файлы (для этого можно использовать программу \samp{find}). Наиболее важные опции описаны ниже. \begin{ttdescription} \item[\texttt{-{}-dpi=\var{num}}]\mbox{}\\ Установить разрешение \ttvar{num}; это влияет только на поиск файлов \samp{gf} и \samp{pk}. Синоним \samp{-D}, для совместимости с \cmdname{dvips}. По умолчанию 600. \item[\texttt{-{}-format=\var{name}}]\mbox{}\\ Установить формат для поиска \ttvar{name}. По умолчанию, формат определяется из имени файла. Для форматов, для которых нет однозначного суффикса, например, файлов \MP{} и конфигурационных файлов \cmdname{dvips}, вы должны указать название, известное \KPS{}, например, \texttt{tex} или \texttt{enc files}. Список можно получить командой \texttt{kpsewhich -{}-help}. \item[\texttt{-{}-mode=\var{string}}]\mbox{}\\ Установить значение режима \ttvar{string}; это виляет только на поиск файлов \samp{gf} и \samp{pk}. Значения по умолчанию нет: ищутся файлы для всех режимов. \item[\texttt{-{}-must-exist}]\mbox{}\\ Сделать всё возможное, чтобы найти файл включая поиск на диске. По умолчанию для повышения эффективности просматривается только база данных \file{ls-R}. \item[\texttt{-{}-path=\var{string}}]\mbox{}\\ Искать в наборе директорий \ttvar{string} (как обычно, разделённых двоеточиями), вместо того, чтобы вычислять его по имени файла. \samp{//} и обычные подстановки работают. Опции \samp{-{}-path} и \samp{-{}-format} несовместимы. \item[\texttt{-{}-progname=\var{name}}]\mbox{}\\ Установить имя программы на \texttt{\var{name}}. Это влияет на путь поиска из-за префикса \texttt{.\var{progname}}. По умолчанию \cmdname{kpsewhich}. \item[\texttt{-{}-show-path=\var{name}}]\mbox{}\\ Показать путь, используемый при поисках файлов типа \texttt{\var{name}}. Можно использовать расширение (\code{.pk}, \code{.vf} и т.д.) или название, как для опции \samp{-{}-format}. \item[\texttt{-{}-debug=\var{num}}]\mbox{}\\ Установить уровень отладки \texttt{\var{num}}. \end{ttdescription} \subsubsection{Примеры использования} \label{SExamplesofuse} Давайте посмотрим на \KPS{} в действии. Вот простой поиск: \begin{alltt} > \Ucom{kpsewhich article.cls} /usr/local/texmf-dist/tex/latex/base/article.cls \end{alltt} Мы ищем файл \file{article.cls}. Так как суффикс \samp{.cls} однозначен, нам не нужно указывать, что мы ищем файл типа \optname{tex} (исходники \TeX{}а). Мы находим его в поддиректории \file{tex/latex/base} директории \samp{temf-dist} \TL. Аналогично, всё последующее находится без проблем благодаря однозначному суффиксу: \begin{alltt} > \Ucom{kpsewhich array.sty} /usr/local/texmf-dist/tex/latex/tools/array.sty > \Ucom{kpsewhich latin1.def} /usr/local/texmf-dist/tex/latex/base/latin1.def > \Ucom{kpsewhich size10.clo} /usr/local/texmf-dist/tex/latex/base/size10.clo > \Ucom{kpsewhich small2e.tex} /usr/local/texmf-dist/tex/latex/base/small2e.tex > \Ucom{kpsewhich tugboat.bib} /usr/local/texmf-dist/bibtex/bib/beebe/tugboat.bib \end{alltt} Последнее "---библиографическая база данных для статей журнала \textsl{TUGBoat}. \begin{alltt} > \Ucom{kpsewhich cmr10.pk} \end{alltt} Битмапы шрифтов типа \file{.pk} используются программами \cmdname{dvips} о \cmdname{xdvi}. Ничего не найдено, так как у нас нет готовых файлов шрифтов Computer Modern в формате \samp{.pk} (так как мы используем версии в формате Type~1 из дистрибутива \TL{}). \begin{alltt} > \Ucom{kpsewhich wsiupa10.pk} \ifSingleColumn /usr/local/texmf-var/fonts/pk/ljfour/public/wsuipa/wsuipa10.600pk \else /usr/local/texmf-var/fonts/pk/ljfour/public/ ... wsuipa/wsuipa10.600pk \fi\end{alltt} Для этих шрифтов (фонетический алфавит, созданный в университете штата Вашингтон) мы должны сгенерировать \samp{.pk}, и так как режим \MF{} [о умолчанию в нашей системе \texttt{ljfour} с разрешением of 600\dpi{} (точек на дюйм), этот шрифт и найден. \begin{alltt} > \Ucom{kpsewhich -dpi=300 wsuipa10.pk} \end{alltt} В этом случае нам нужно разрешение 300\dpi{} (\texttt{-dpi=300}); мы видим, что такого шрифта в системе нет. На самом деле программа \cmdname{dvips} или \cmdname{xdvi} построила бы нужный файл \texttt{.pk} при помощи скрипта \cmdname{mktexpk}. Теперь обратимся к заголовкам и конфигурационным файлам \cmdname{dvips}. Вначале рассмотрим один из наиболее часто используемых файлов, пролог \file{tex.pro} для поддержки \TeX{}а, а затем рассмотрим общий конфигурационный файл \file{config.ps} и карту шрифтов \file{psfonts.map}. Так как суффикс \samp{.ps} неоднозначен, мы должные явно указать тип файла, который мы ищем: (\optname{dvips config}) для файла \texttt{config.ps}. \begin{alltt} > \Ucom{kpsewhich tex.pro} /usr/local/texmf/dvips/base/tex.pro > \Ucom{kpsewhich --format="dvips config" config.ps} /usr/local/texmf/dvips/config/config.ps > \Ucom{kpsewhich psfonts.map} /usr/local/texmf/fonts/map/dvips/updmap/psfonts.map \end{alltt} Рассмотрим теперь файлы поддержки \acro{URW} Times (\PS{}). Префикс для этих файлов в стандартной схеме обозначения шрифтов \samp{utm}. Вначале мы рассмотрим конфигурационный файл, который содержит название карты шрифтов: \begin{alltt} > \Ucom{kpsewhich --format="dvips config" config.utm} /usr/local/texmf-dist/dvips/psnfss/config.utm \end{alltt} Содержание этого файла: \begin{alltt} p +utm.map \end{alltt} что указывает на файл \file{utm.map}, который мы хотим теперь найти. \begin{alltt} > \Ucom{kpsewhich --format="dvips config" utm.map} /usr/local/texmf-dist/fonts/map/dvips/times/utm.map \end{alltt} Эта карта определяет названия шрифтов формата Type~1 (\PS{}) в коллекции URW. Она выглядит так (мы показываем только часть файла): \begin{alltt} utmb8r NimbusRomNo9L-Medi ... \Ucom{kpsewhich utmr8a.pfb} \ifSingleColumn /usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb \else /usr/local/texmf-dist/fonts/type1/ ... urw/utm/utmr8a.pfb \fi\end{alltt} Из этих примеров очевидно, что вы можете легко найти заданный файл. Это особенно важно, если вы подозреваете, что программы находят не ту версию файла, поскольку \cmdname{kpsewhich} показывает первый найденный файл. \subsubsection{Отладка} \label{Debugging} Иногда необходимо проверить, как программа ищет файлы. С этой целью \KPS{} предлагает разные уровни отладки: \begin{ttdescription} \item[\texttt{\ 1}] статистика обращений к диску. При работе с базами \file{ls-R} это почти не должно давать строк в лог. \item[\texttt{\ 2}] Ссылки на хеши (например, базы данных \file{ls-R}, конфигурационные файлы и т.д.). \item[\texttt{\ 4}] Операции открытия и закрытия файлов. \item[\texttt{\ 8}] Общая информация о типах файлов, которые ищет \KPS. Это полезно для того, чтобы найти, где определяется тип пути поиска для данного файла. \item[\texttt{16}] Список директорий для каждого элемента пути (при поисках на диске). \item[\texttt{32}] Поиски файлов. \end{ttdescription} Значение \texttt{-1} задаст все опции выше; именно это значение чаще всего используется на практике. Аналогично, запустив программу \cmdname{dvips} и используя сочетание этих опций, можно проследить подробно, как ищутся файлы. С другой стороны, если файл не найден, трассировка показывает, где его искали, так что можно понять, в чём состоит проблема. Вообще говоря, поскольку большинство программ пользуются библиотекой \KPS{}, вы можете установить опцию отладки используя переменную окружения \envname{KPATHSEA\_DEBUG}, и установив её на комбинацию описанных выше значений. (Примечание для пользователей Windows: в этой системе трудно перенаправить все сообщения в файл. Для диагностики вы можете временно установить \texttt{SET KPATHSEA\_DEBUG\_OUTPUT=err.log}). Рассмотрим в качестве примера простой файл в формате \LaTeX{}, \file{hello-world.tex}, со следующим содержанием: \begin{verbatim} \documentclass{article} \begin{document} Hello World! \end{document} \end{verbatim} Этот маленький файл использует только шрифт \file{cmr10}, так что давайте посмотрим, как \cmdname{dvips} создаёт файл в формате \PS{} (мы хотим использовать версию шрифтов в формате Type~1, отсюда опция \texttt{-Pcms}). \begin{alltt} > \Ucom{dvips -d4100 hello-world -Pcms -o} \end{alltt} В этом случае мы объединили отладочный уровень 4 для \cmdname{dvips}'s debug class 4 (директории шрифтов) с подстановкой элементов путей в \KPS (см. Руководство пользователя \cmdname{dvips}, \OnCD{texmf/doc/html/dvips/dvips_toc.html}). Результат (слегка отредактированный) показан на Рис.~\ref{fig:dvipsdbga}. \begin{figure*}[tp] \centering \input{examples/ex6a.tex} \caption{Поиск конфигурационных файлов}\label{fig:dvipsdbga} \bigskip \input{examples/ex6b.tex} \caption{Поиск файла пролога}\label{fig:dvipsdbgb} \bigskip \input{examples/ex6c.tex} \caption{Поиск файла шрифта}\label{fig:dvipsdbgc} \end{figure*} Программа \cmdname{dvips} вначале ищет свои конфигурационные файлы. Сначала находится \file{texmf.cnf}, который содержит определения для путей поиска остальных файлов, затем база данных \file{ls-R} (для оптимизации поиска файлов) и файл \file{aliases}, который позволяет объявить несколько имён (например, короткие 8.3 и более длинные) для одного файла. Затем \cmdname{dvips} ищет свой конфигурационный файл \file{config.ps} и файл \file{.dvipsrc} (который в данном случае \emph{не найден}). Наконец, \cmdname{dvips} находит конфигурационный файл для шрифтов Computer Modern \PS{} \file{config.cms} (это было задано опцией \texttt{-Pcms} в командной строке). Этот файл содержит список карт, которые определяют соотношения между файлами в форматах \TeX{}, \PS{} и названиями шрифтов: \begin{alltt} > \Ucom{more /usr/local/texmf/dvips/cms/config.cms} p +ams.map p +cms.map p +cmbkm.map p +amsbkm.map \end{alltt} \cmdname{dvips} находит все эти файлы плюс общую карту шрифтов \file{psfonts.map}, которая всегда загружается (она содержит обычные шрифты в формате \PS{}; см. последнюю часть раздела~\ref{SExamplesofuse}). В этот момент \cmdname{dvips} сообщает о себе пользователю: \begin{alltt} This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com) \end{alltt} \ifSingleColumn Затем она ищет пролог \file{texc.pro}: \begin{alltt}\small 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 \end{alltt} \else Затем она ищет пролог \file{texc.pro} (см. Рис.~\ref{fig:dvipsdbgb}). \fi Найдя этот файл, \cmdname{dvips} печатает дату и время, и информирует нас, что собирается генерировать файл \file{hello-world.ps}, что ей нужен файл \file{cmr10}, и что последний является <<резидентным>> (битмапы не нужны): \begin{alltt}\small TeX output 1998.02.26:1204' -> hello-world.ps Defining font () cmr10 at 10.0pt Font cmr10 is resident. \end{alltt} Теперь она ищет файл \file{cmr10.tfm}, который она находит, затем ещё несколько прологов (здесь они опущены), и наконец файл формата Type~1 \file{cmr10.pfb} найден и включён в выходной файл (см, последнюю строку): \begin{alltt}\small 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, ... 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 [1] \end{alltt} \subsection{Опции запуска} Ещё одна полезная возможность \Webc{} "---контроль параметров памяти (в особенности размер массивов) при запуске, во время чтения файла \file{texmf.cnf} библиотекой \KPS{}. Параметры памяти находятся в части~3 этого файла в дистрибутиве \TL{}. Вот самые важные: \begin{ttdescription} \item[\texttt{main\_memory}] Общее количество слов в памяти для программ \TeX{}, \MF{} и \MP. Вы должны создать новый формат для этих изменений. Например, вы можете создать <<огромную>> версию \TeX{}а, и назвать соответствующий формат \texttt{hugetex.fmt}. По общим правилам \KPS{}, значение переменной \texttt{main\_memory} будет читаться из файла \file{texmf.cnf}. \item[\texttt{extra\_mem\_bot}] Дополнительная память для <<больших>> структур, которые создаёт \TeX{}: боксов, клея и т.д. Особенно полезно при использовании \PiCTeX{}а. \item[\texttt{font\_mem\_size}] Количество слов информации о шрифтах для \TeX{}а. Это примерно суммарный размер всех файлов TFM, которые читает \TeX. \item[\texttt{hash\_extra}] Дополнительный размер хеша для имён команд. Примерно 10\,000 команд может быть помещено в основной хеш. Если вы делаете большую книгу со многими перекрёстными ссылками, этого может не хватить. По умолчанию \texttt{hash\_extra} равен \texttt{50000}. \end{ttdescription} Разумеется, это не замена настоящих динамических массивов и распределения памяти, но поскольку эти черты исключительно сложно осуществить в текущем \TeX{}е, эти параметры дают полезный компромисс и некоторую гибкость. \begin{comment} \section{Компилирование для новой платформы типа Unix} Если у вас платформа, для которой мы не скомпилировали программ, вам придётся это сделать самим. Это не так уж сложно. Всё, что вам может понадобиться, есть в дистрибутиве в директории \texttt{source}. \subsection{Необходимые инструменты} Вам нужно по крайней мере 100\,Mb на диске для компилирования \TeX{} и других программ. Вам потребуется компилятор \acro{ANSI} C, программа \cmdname{make}, лексический сканер и генератор парсеров. Мы рекомендуем версии этих программ от \acro{GNU} (\cmdname{gcc}, \acro{GNU} \cmdname{make}, \cmdname{m4}, \cmdname{flex}, \cmdname{bison}). Вы можете работать и с другими компиляторами и версиями \cmdname{make}, но вам потребуется глубокое понимание Юникса, чтобы разобраться в возможных проблемах. Кроме того, команда \texttt{uname} должна давать разумный результат. \subsection{Конфигурация} Сначала произведите нормальную установку \TL{} на ваш диск (см. раздел~\ref{sec:unix-install-disk} \p.~\pageref{sec:unix-install-disk}). Вы можете пропустить установку скомпилированных программ. Затем распакуйте исходники из файла в директории \dirname{source} на ваш диск и смените директорию туда, где вы раскрыли этот файл. Затем запустите \cmdname{configure}, например, так: \begin{alltt} > \Ucom{sh configure -prefix=/usr/local/TeX} \end{alltt} Директория \optname{-prefix} "---это место, куда вы установили основное дерево поддержки. Структура директорий будет такова (\$TEXDIR означает выбранную директорию): \noindent \begin{tabular}{>{\ttfamily}ll@{}} \dirname{$TEXDIR/share/texmf} & основное дерево со шрифтами,\\ & \qquad макросы и т.д.\\ \dirname{$TEXDIR/man} & руководства в формате Unix man\\ \dirname{$TEXDIR/info} & руководства в формате \acro{GNU} Info \\ \dirname{$TEXDIR/bin/$PLATFORM} & программы\\ \end{tabular} %$ Если вы хотите убрать уровень директорий \dirname{$PLATFORM}, т.е. поместить программы непосредственно в \dirname{$TEXDIR/bin}, добавьте к опциям \verb|--disable-multiplatform|. Посмотрите на результат \verb|./configure --help| для остальных опций. Например, вы можете не компилировать \OMEGA{} и \eTeX{}. \subsection{Запуск \cmdname{make}} Убедитесь, что переменная оболочки или опция \texttt{noclobber} не задана. Затем запустите \cmdname{make}: \begin{alltt} > \Ucom{make world} \end{alltt} и расслабьтесь\ldots Если вы хотите записать в лог все происходящее, используйте: \begin{alltt} > \Ucom{sh -c "make world >world.log 2>\&1" \&} \end{alltt} Перед тем, как вы решите, что всё прошло нормально, проверьте лог на ошибки; \acro{GNU} \cmdname{make} всегда использует строку \samp{***} при ошибке. Кроме того, проверьте, что все команды скомпилировались: \begin{alltt} > \Ucom{cd \emph{TEXDIR}/bin/\emph{archname}} > \Ucom{ls | wc} \end{alltt} Результат должен быть больше 200 (вы можете получить точное число, проверив содержимое директории \dirname{bin} в дистрибутиве). Если вам нужны специальные привилегии для \texttt{make install}, вы можете разделить \samp{make world} на два приёма: \begin{alltt} > \Ucom{make all} > \Ucom{su} > \Ucom{make install strip} \end{alltt} После установки ваших новых программ, выполните обычные процедуры настройки, описанные в разделе~\ref{sec:postinstall}, \p.~\pageref{sec:postinstall}. Кроме того, если вы хотите, чтобы вашими программами пользовались другие люди, напишите нам. Мы будем рады поместить их на страницы \TL{} в сети. \end{comment} \section{Благодарности} \TL{} "---результат объединённых усилий практически всех групп пользователей \TeX а. Это издание \TL{} отредактировано Себастианом Ратцем и Карлом Берри. Другие, работавшие над ним, перечислены ниже \begin{itemize*} \item Немецкая группа пользователей \TeX{}а (\acro{DANTE} e.V.), обеспечила компьютеры для репозитория \TL{}; Райнер Шёпф и Рейнхард Цирке его поддерживали. Сотрудники \acro{DANTE} Фолькер Шаа и Клаус Хоппнер координировали производство с Lehmann's Bookstore (\url{http://www.lob.de}). \item The Perforce corporation (\url{http://www.perforce.com}) подарила нам бесплатную копию их замечательной системы контроля версий, использованную нами для исходников \TL. \item Питер Брейтенлохнер и команда разработчиков \eTeX\ заложила основы будущего \TeX а. \item Томас Эссер, без замечательного пакета \teTeX{} которого \TL{} не существовал бы, много помогал нам в работе над \TL. \item Майкл Гусенс был соавтором первой версии документации. \item Эйтан Гурари написал \TeX4ht{}, использованный для производства файлов \HTML{}, и неустанно работал над ними, немедленно добавляя нужные нам возможности. \item Ганс Хаген помогал в тестировании и приспособлении формата \ConTeXt\ к нашим нуждам. \item Павел Яковский создал инсталлятор для Windows \cmdname{tlpm}, а Томаш Лужак написал \cmdname{tlpmgui}. \item Хан Фе Фан, Мартин Шрёдер и команда pdf\TeX\ продолжает улучшать возможности \TeX а. \item Петр Олшак координировал и проверял весь чешский и словацкий материал. \item Фабриций Попинье создал \TL{} для Windows и разработал новую структуру директорий. \item Сташек Ваврикевич был главным тестером \TL{} и координировал много польских вкладов: шрифты, инсталлятор для Windows и многое другое. \item Олаф Вебер терпеливо работал над \Webc, на которой держится дистрибутив. \item Гербер Виерда разработал поддержку \MacOSX\ и участвовал в интеграции и тестировании. \item Грэм Виллиамс создал каталог пакетов. \end{itemize*} Программы компилировали: Тигран Айвазян (\pkgname{x86\_64-linux}), Манфред Лотц (\pkgname{i386-freebsd}), Фабриций Попинье (\pkgname{win32}), Норберт Прейнинг (\pkgname{alpha-linux}), Владимир Волович (\pkgname{powerpc-aix}, \pkgname{sparc-linux}, \pkgname{sparc-solaris}), Сташек Ваврикевич (\pkgname{i386-linux}), Олаф Вебер (\pkgname{mips-irix}), Герберт Виерда (\pkgname{i386-darwin}, \pkgname{powerpc-darwin}). Документация и переводы: Карл Берри (английский), Даниэль Флипо и Фабриций Попинье (французский), Гюнтер Партош и Хартмут Хенкель (немецкий), Петр Сойка и Ян Буса (чешский и словацкий), Борис Вейцман (русский), Сташек Ваврикевич (польский). Разумеется, наша главная благодарность "---Дональду Кнуту, во-первых, за разработку \TeX а, и во-вторых, за то, что он подарил его миру. \section{История издания} \label{sec:history} \subsection{Прошлое} В конце 1993 года в голландской группе пользователей \TeX{}а во время работы над дистрибутивом 4All\TeX{} \CD{} для пользователей \acro{MS-DOS} возникла новая идея. Была поставлена цель создать единый \CD{} для всех систем. Эта цель была черечур сложна для того времени, но она привела не только к появлению очень успешного \CD{} 4All\TeX{}, но и к созданию рабочей группы Технического Совета \acro{TUG} по структуре директорий для \TeX{}а (\url{http://tug.org/tds}), которя разработала стандарт структуры директорий для системы \TeX и указала, как создать логичную единую систему файлов для \TeX а. Несколько версий \TDS{} было опубликовано в декабрьском выпуске \textsl{TUGboat} в 1995 году, и с самого начала стало ясо, что следует создать пример структуры на \CD{}. Дистрибутив, который вы держите в руках, "---прямой результат работы этой группы. Из успеха 4All\TeX{} был сделан вывод, что пользователям Юникса также подойдёт такая удобная система, и так родилась другая важная часть \TL. Мы начали делать \CD{} с Юниксом и структурой директорий \TDS{} осенью 1995 года, и быстро поняли, что у \teTeX{}а Томаса Эссера идеальный состав и поддержка многих платформ. Томас согласился нам помочь, и мы в начале 1996 года стали серьёзно работать над дистрибутивом. Первое издание вышло в мае 1996 года. В начале 1997 года Карл Берри завершил новую версию Web2c, которая включила практически все добавки Томаса Эссера в \teTeX{}е, и мы решили основать второе издание на стандартном \Webc, с добавлением скрипта \texttt{texconfig} из \teTeX{}а. Третье издание \CD{} основывалось на новой версии \Webc, 7.2, Олафа Вебера; в то же время была выпущена новая версия \teTeX{}а, и \TL{} включил почти все его новые черты. Четвертое издание следовало той же традиции, используя новую версию \teTeX{}а и \Webc{} (7.3). Теперь в нём была полная система для Windows. Для пятого издания (март 2000 года) многие пакеты на \CD{} были пересмотрены и проверены. Информация о пакетах была собрана в файлы XML. Но главным изменением в \TeX\ Live 5 было удаление всех несвободных программ. Всё на \TL{} преполагается совметимым с Debian Free Software Guidelines (\url{http://www.debian.org/intro/free}); мы сделали всё, что могли, чтобы проверить лицензии всех пакетов, и мы будем благодарны за любое указание на ошибки. В шестом издании (июль 2001 года) было много нового материала. Главным была новая концепция установки: пользователь выбирал нужный набор коллекций. Языковые коллекции были полностью реорганизованы, так что выбор любой из них устанавливал не только макросы, шрифты и и т.д., но и вносил изменения в \texttt{language.dat}. Седьмое издание 2002 года добавило поддержку \MacOSX{}, и большое количество обновлений для пакетов и программ. Важной целью была интеграция с \teTeX{}ом, чтобы исправить расхождение, наметившееся в версиях~5 и~6. \subsubsection{2003} В 2003 году мы продолжили изменения и дополнения, и обнаружили, что \TL{} так вырос, что не помещается на \CD. Поэтому мы разделили его на три дистрибутива (см. раздел~\ref{sec:multiple-dist}, \p.~\pageref{sec:multiple-dist}). Кроме того: \begin{itemize*} \item По просьбе авторов \LaTeX{}а, мы смениели стандартные команды \cmdname{latex} и \cmdname{pdflatex}: теперь они использууют \eTeX{} (см. стр.~\pageref{text:etex}). \item Новые шрифты Latin Modern включены и рекомендованы для использования. \item Убрана поддержка для Alpha \acro{OSF} (поддержка для \acro{HPUX} была убрана ранее), поскольку никто не имел (и не предложил) компьютеров для компилирования программ. \item Сильно изменилась установка для Windows: впервые была предложена интегрированная среда на основе редакторая XEmacs. \item Добавлены вспомогателные программы для Windows (Perl, Ghost\-script, Image\-Magick, Ispell). \item Файлы Fontmap для \cmdname{dvips}, \cmdname{dvipdfm} и \cmdname{pdftex} генерируютрся программой \cmdname{updmap} и устанваливаются в \dirname{texmf/fonts/map}. \item \TeX{}, \MF{}, and \MP{} теперь по умолчанию выводят символы из верхней половины таблицы ASCII в файлы, открытые командой \verb|\write|, логи и на терминал буквально, т.е. \emph{не} используя формат \verb|^^|. В \TL{}~7 это зависело от системной локали, но теперь это верно для всех локалей. Если вам нужен формат \verb|^^|, переименуйте файл \verb|texmf/web2c/cp8bit.tcx|. В будущем эта процедура будет упрощена. \item Документация была существенно обновлена. \item Наконец, из-за того, что нумерация по изданиям стала неудобной, мы перешли на нумерацию по годам: \TL{} 2003. \end{itemize*} \subsubsection{2004} В 2004 году мы внесли много изменений. \begin{itemize} \item Если у вас есть локальные шрифты с собственными файлами \filename{.map} или \filename{.enc}, вам может понадобиться переместить эти файлы. Файлы \filename{.map} теперь ищутся только в поддиректориях \dirname{fonts/map} (в каждом дереве \filename{temf}) в пути \envname{TEXFONTMAPS}. Аналогично файлы \filename{.enc} теперь ищутся в только в поддиректориях \dirname{fonts/enc} в пути \envname{ENCFONTS}. Программа \cmdname{updmap} предупреждает, если находит эти файлы не там, где они должны быть. См. описание этого размещения информации в See section~\ref{sec:struct-tl} (\p.\pageref{sec:struct-tl}). \item К коллекции \TK{} был добавлен установочный \CD{} с дистрибутивом \MIKTEX{} для тех, кто предпочитает \MIKTEX{} программам, основанным на \Webc. См. раздел~\ref{sec:struct-tl} (\p.\pageref{sec:struct-tl}). \item Дерево \dirname{texmf} в \TL{} было разделено на три: \dirname{texmf}, \dirname{texmf-dist} и \dirname{texmf-doc}. См. раздел~\ref{sec:tld} (\p.\pageref{sec:tld}) и файлы \filename{README} в соответствующих директориях. \item Все файлы, которые читает \TeX, собраны в поддиректории \dirname{tex} деревьев \dirname{texmf*} вместо разделения на \dirname{tex}, \dirname{etex}, \dirname{pdftex}, \dirname{pdfetex} и т.д. \\См. \CDref{texmf-doc/doc/english/tds/tds.html\#Extensions} {\texttt{texmf-doc/doc/english/tds/tds.html\#Extensions}}. \item Вспомогательные скрипты (вызываемые другими программами, а не непосредственно пользователем) теперь собраны в директории \dirname{scripts} деревьев \dirname{texmf*} и ищутся командой \verb|kpsewhich -format=texmfscripts|. Поэтому если у вас есть программы, которые вызывают такие скрипты, их надо изменить. См. \CDref{texmf-doc/doc/english/tds/tds.html\#Scripts} {\texttt{texmf-doc/doc/english/tds/tds.html\#Scripts}}. \item Почти все форматы теперь печатают большинство символов непосредственно, используя ``таблицы перевода'' \filename{cp227.tcx} вместо формата \verb|^^|. В частности, символы с кодами 32--256 плюс табуляция, вертикальная табуляция и перевод страницы печатаются непосредственно. Исключениями являются plain \TeX{} (печатаются непосредственно символы 32--127), \ConTeXt{} (0--255) и форматы, относящиеся к программе \OMEGA. Это поведение почти такое же, как у \TL\,2003, но реализовано более аккуратно, с б\'ольшей возможностью настройки. См. \CDref{texmf/doc/web2c/web2c.html\#TCX-files} {\texttt{texmf/doc/web2c/web2c.html\#TCX-files}}. (Кстати, при вводе в Unicode, \TeX\ может выводить при указании на ошибку только часть многобайтного символа, так как внутри \TeX\ работает с байтами). \item \textsf{pdfetex} теперь используется для всех форматов, кроме plain \textsf{tex}. (Разумеется, он делает файлы в формате \acro{DVI}, если вызван как \textsf{latex} и т.п.). Это означает, помимо прочего, что возможности \textsf{pdftex}a для микротипографии а также возможности \eTeX а доступны в форматах \LaTeX, \ConTeXt{} и т.д. (\OnCD{texmf-dist/doc/etex/base/}). Это также означает, что теперь \emph{очень важно} использовать пакет \pkgname{ifpdf} (работает и с plain, и с \LaTeX) или эквивалентные средства, поскольку просто проверка, определён ли \cs{pdfoutput} или другой примитив не достаточна для того, чтобы понять, в каком формате генерируется результат. Мы сделали всё возможное для совместимости в этом году, но в будущем году \cs{pdfoutput} может быть определён даже если генерируется \acro{DVI}. \item У программы pdf\TeX\ (\url{http://pdftex.org}) много новых возможностей: \begin{itemize*} \item Поддержка карт шрифтов изнутри документа при помощи \cs{pdfmapfile} и \cs{pdfmapline}. \item Микротипографические расширения могут быть использованы намного проще.\\ \url{http://www.ntg.nl/pipermail/ntg-pdftex/2004-May/000504.html} \item Все параметры, ранее задававшиеся в специальном конфигурационном файле \filename{pdftex.cfg}, теперь должны быть установлены примитивами, например, в файле \filename{pdftexconfig.tex}. Файл \filename{pdftex.cfg} больше не поддерживается. При изменении файла \filename{pdftexconfig.tex} все форматы \filename{.fmt} должны быть перегенерированы. \item Остальные изменения описаны в руководстве пользователя программой pdf\TeX: \OnCD{texmf/doc/pdftex/manual}. \end{itemize*} \item Примитив \cs{input} в программе \cmdname{tex} (и \cmdname{mf} и \cmdname{mpost}) теперь правильно интерпретирует пробелы и другие специальные символы в двойных кавычках. Вот типичные примеры: \begin{verbatim} \input "filename with spaces" % plain \input{"filename with spaces"} % latex \end{verbatim} См. подробности в руководстве к программе \Webc: \OnCD{texmf/doc/web2c}. \item Поддержка enc\TeX а включена в \Webc, и поэтому во все программы \TeX, которые теперь поддерживают опцию \optname{-enc} "---\emph{только при генерировании форматов}. enc\TeX{} обеспечивает общую перекодировку входного и выходного потоков, что позволяет полную поддержку Unicode (в \acro{UTF}-8). См. \OnCD{texmf-dist/doc/generic/enctex/} и \url{http://www.olsak.net/enctex.html}. \item В дистрибутиве появилась новая программа Aleph, сочетающая \eTeX\ и \OMEGA. Краткая информация о ней находится в \OnCD{texmf-dist/doc/aleph/base} и \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=aleph}. Формат для \LaTeX а на основе этой программы называется \textsf{lamed}. \item Последняя версия \LaTeX а включает новую версию лицензии \acro{LPPL} "---теперь официально одобренную Debianом. Некоторые другие изменения перечислены в файлах \filename{ltnews} в \OnCD{texmf-dist/doc/latex/base}. \item В дистрибутиве появилась \cmdname{dvipng}, новая программа для перевода \acro{DVI} в \acro{PNG}. См. \OnCD{texmf/doc/man/man1/dvipng.1}. \item Мы уменьшили размер пакета \pkgname{cbgreek} до приемлемого набора шрифтов, с согласия и совета автораа (Клаудио Беккари). Исключены невидимые, прозрачные и полупрозрачные шрифты, которые относительно редко используются, а нам не хватало места. Полный набор шрифтов можно найти в архиве \acro{CTAN} (\url{http://www.ctan.org/tex-archive/fonts/greek/cb}). \item Программа \cmdname{oxdvi} исключена; используйте \cmdname{xdvi}. \item Линки \cmdname{ini} и \cmdname{vir} для программ \cmdname{tex}, \cmdname{mf} и \cmdname{mpost} (например, \cmdname{initex}) больше не создаются. Уже много лет опция \optname{-ini} их успешно заменяет. \item Убрана поддержка платформы \textsf{i386-openbsd}. Так как в портах BSD есть пакет \pkgname{tetex}, и можно пользоваться программами для \acro{GNU/}Linux и Free\acro{BSD}, мы посчитали, что время добровольных сотрудников проекта можно потратить с б\'ольшей пользой по-другому. \item По крайней мере для платформы \textsf{sparc-solaris} требуется установить переменную окружения \envname{LD\_LIBRARY\_PATH} для работы программ \pkgname{t1utils}. Это вызвано тем, что они написаны на C++, а для бибилиотек C++ нет стандартного места в системе (это появилось до 2004 года, но ранее эта особенность не была документирована). Аналогично, в \textsf{mips-irix} требуются библиотеки \acro{MIPS}pro 7.4. \end{itemize} \subsection{Настоящее} \label{sec:tlcurrent} В 2005 году было, как всегда, сделано много изменений в пакетах и программах. Инфраструктура почти не изменилась по сравненению с 2004 годом, но некоторые неизбежные изменения были сделаны. \begin{itemize} \item Были добавлены новые скрипты \cmdname{texconfig-sys}, \cmdname{updmap-sys} и \cmdname{fmtutil-sys}, которые изменяют конфигурационные файлы в системных деревьях. Скрипты \cmdname{texconfig}, \cmdname{updmap} и \cmdname{fmtutil} теперь модифицируют индивидуальные файлы пользователя, в \dirname{$HOME/.texlive2005}. См. раздел~\ref{sec:texconfig}, \p.\pageref{sec:texconfig}. \item Были добавлены новые переменные \envname{TEXMFCONFIG} и \envname{TEXMFSYSCONFIG} для указания, где находятся конфигурационные файлы (пользовательские и системные). Таким образом, вам надо переместить туда ваши личные копии \filename{fmtutil.cnf} и \filename{texmf.cnf}. В любом случае положение этих файлов и значения переменных \envname{TEXMFCONFIG} и \envname{TEXMFSYSCONFIG} должны быть согласованы. См. раздел~\ref{sec:texmftrees}, \p.\pageref{sec:texmftrees}. \item В прошлом году мы не определяли \verb|\pdfoutput| и другие переменные при генерировании файлов в формате DVI, хотя для этого использовалась программа \cmdname{pdfetex}. В этом году, как и было обещано, это уже не так. Поэтому если ваш документ использует для проверки формата \verb|\ifx\pdfoutput\undefined|, его надо изменить. Вы можете использовать пакет \pkgname{ifpdf.sty} (работает в plain \TeX{} и \LaTeX) или аналогичную логику. \item В прошлом году мы изменили большинство форматов, которые стали выдавать 8-битовые символы. Если вам всё же нужны старый вариант с \verb|^^|, используйте новый файл \filename{empty.tcx}: \begin{verbatim} latex --translate-file=empty.tcx yourfile.tex \end{verbatim} \item Добавлена новая программа \cmdname{dvipdfmx} для перевода из DVI в PDF; это активно поддерживаемая версия программы \cmdname{dvipdfm}, которая пока ещё включена в дистрибутив, но уже не рекомендована. \item Добавлены новые программы \cmdname{pdfopen} и \cmdname{pdfclose}, которые позволяют перегрузить файл PDF в Adobe Acrobat Reader, не перезапуская программу (у других программ для чтения файлов PDF, включая \cmdname{xpdf}, \cmdname{gv} и \cmdname{gsview}, такой проблемы никогда не было). \item Для единообразия мы переименовали переменные \envname{HOMETEXMF} и \envname{VARTEXMF} в \envname{TEXMFHOME} и \envname{TEXMFSYSVAR}. Есть также \envname{TEXMFVAR}, индивидуальная для каждого пользователя (см. первый пункт выше). \end{itemize} \subsection{Будущее} \emph{\TL{} не совершенен!} (И никогда не будет.) Мы намереваемся продолжать его выпускать раз в год, и хотим добавить справочный материал, утилиты, установочные программы и (конечно) новое, улучшенное и проверенное дерево макросов и шрифтов. Эта работа делается очень занятыми добровольцами в свободное время, и многое остается сделать. Если вы можете помочь, не стесняйтесь. Присылайте, пожалуйста, замечания и предложения по адресу:\hfill\null \begin{quote} Sebastian Rahtz \ / \ 7 Stratfield Road \ / \ Oxford OX2 7BG \ / \ UK \\ \email{tex-live@tug.org} \\ \url{http://tug.org/texlive} \end{quote} \medskip \noindent \textsl{Happy \TeX ing!} \end{document} %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% LaTeX-command-style: (("." "pdflatex")) %%% TeX-view-style: (("." "acroread %s.pdf")) %%% End: