diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/lshort-russian/src/spec.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/lshort-russian/src/spec.tex | 1022 |
1 files changed, 1022 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/spec.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/spec.tex new file mode 100644 index 00000000000..093026140a0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/spec.tex @@ -0,0 +1,1022 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Specialities of the LaTeX system +% $Id: spec.tex,v 1.1.1.1 2002/02/26 10:04:21 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Специальные возможности} +\begin{intro} + При сборке большого документа \LaTeX{} поможет вам некоторыми + специальными функциями, например, генерацией предметного указателя, + управлением библиографией и тому подобными. Более подробное описание + специальных возможностей и расширений \LaTeX{} находится в + {\normalfont\manual} и в {\normalfont\companion}. +\end{intro} + + +\section{Включение \EPSi{} графики}\label{eps} + +\LaTeX{} имеет базовые средства для работы с плавающими объектами, +такими, как иллюстрации и таблицы, при помощи окружений \ei{figure} и +\ei{table}. + +Существует также несколько способов создавать собственно +графику\index{графика} средствами базового \LaTeX{} или его +расширений. К сожалению, большинство пользователей находит их трудными +для понимания, поэтому здесь эти способы не pассматpиваются. +Дополнительная информация приведена в \companion{} и в \manual{}. + +Более простой метод получения графики в документе~--- это создавать ее +специализированными программными пакетами\footnote{Такими, как XFig, + CorelDraw!, Freehand, Gnuplot,~\ldots{}} и включать в документ +готовую графику. Пакеты \LaTeX{} предлагают множество способов это +делать. В этом введении обсуждается только использование графики в +формате \EPSi{} (EPS), поскольку это +довольно просто делается и широко распространено. Чтобы использовать +картинки в формате EPS, вам нужно использовать для вывода +\PSi{} принтер.\footnote{Другая возможность вывода + \PSi{} заключается в использовании программы + \textsc{\wi{GhostScript}}, доступной с + \texttt{\CTAN|support/ghostscript|}. Пользователи Windows и OS/2 могут +обратить внимание на программу \textsc{GSview}.} + +Хороший набор команд включения графики входит в пакет \pai{graphicx} +(автор D.~P.~Carlisle). Он является частью целого семейства +пакетов, называющегося комплектом +``graphics''.\footnote{\CTANref|macros/latex/required/graphics|} + +В предположении, что вы работаете в системе с доступным для вывода +\PSi{}-принтером, и с установленным пакетом +\pai{graphicx}, для включения картинки в ваш документ можете +использовать следующую пошаговую инструкцию:\sloppypar + +\begin{enumerate} +\item Экспортируйте картинку из вашей графической программы в формате + EPS.\footnote{Если ваша программа не имеет экспорта в EPS, можно + попробовать установить драйвер \PSi{}-принтера (скажем, + какого-нибудь Apple LaserWriter) и печатать в файл через этот + драйвер. Если вам повезет, в этом файле будет EPS. Заметьте, что + EPS обязан содержать не больше одной страницы. Некоторые + принтерные драйверы нужно в явном виде настраивать для генерации EPS.} +\item В преамбуле документа загрузите пакет \pai{graphicx} при помощи +\begin{lscommand} +\verb|\usepackage[|\emph{драйвер}\verb|]{graphicx}| +\end{lscommand} +\noindent где \emph{драйвер}~--- это название вашего конвертера DVI в +\PSi{}. Самый широко используемый называется +\texttt{dvips}. Название драйвера требуется потому, что не существует +стандарта включения графики в \TeX{}. Зная название \emph{драйвера}, +\pai{graphicx} может выбрать правильный способ вставить информацию о +графике в \eei{.dvi}~файл так, чтобы драйвер ее понял и смог +корректно вставить \eei{.eps}~файл. +\item Для включения \emph{файла} в ваш документ пользуйтесь командой + \begin{lscommand} +\ci{includegraphics}\verb|[|\emph{опция}=\emph{значение}, \ldots\verb|]{|\emph{файл}\verb|}| +\end{lscommand} +Необязательный параметр принимает вид списка разделенных запятыми пар +\emph{опций} и соответствующих \emph{значений}. \emph{Опции} можно +использовать для изменения ширины, высоты, поворота включаемой +графики. Таблица~\ref{keyvals} перечисляет самые важные опции. +\end{enumerate} + +\begin{table}[htb] +\caption{Названия опций пакета \textsf{graphicx}} +\label{keyvals} +\begin{lined}{9cm} +\begin{tabular}{@{}ll} +\texttt{width}& масштабирует графику до указанной ширины\\ +\texttt{height}& масштабирует графику до указанной высоты\\ +\texttt{angle}& поворачивает графику против часовой стрелки\\ +\texttt{scale}& масштабирует графику\\ +\end{tabular} + +\bigskip +\end{lined} +\end{table} + +Возможно, пример сделает это понятнее: +\begin{code} +\begin{verbatim} +\begin{figure} +\begin{center} +\includegraphics[angle=90, width=0.5\textwidth]{test} +\end{center} +\end{figure} +\end{verbatim} +\end{code} +Здесь включается графика, записанная в файл \texttt{test.eps}. Она +\emph{сначала} поворачивается на 90 градусов и \emph{затем} +масштабируется до конечной ширины в 0.5 ширины стандартного +абзаца. Пропорции сохраняются, поскольку не указано конкретной высоты. +Параметры высоты и ширины могут также быть указаны в абсолютных +размерах. Обратитесь к таблице~\ref{units} на +странице~\pageref{units}. Если вы хотите знать об этом больше, +прочтите \cite{graphics} и~\cite{eps}. + + +\section{Библиография} + +Окружение \ei{thebibliography} генерирует +\index{библиография}библиографию. Каждый элемент начинается с +\begin{lscommand} +\ci{bibitem}\verb|[|\emph{метка}\verb|]{|\emph{маркер}\verb|}| +\end{lscommand} +Затем \emph{маркер} используется для дальнейших ссылок на книгу, +статью или труд. +\begin{lscommand} +\ci{cite}\verb|{|\emph{маркер}\verb|}| +\end{lscommand} + +Если вы не используете опцию \emph{метка}, элементы библиографии +нумеруются автоматически. Параметр после команды +\verb|\begin{thebibliography}| устанавливает максимальную ширину этих + номеров. В следующем примере \verb|{99}| указывает \LaTeX{}, что ни + один из номеров элементов не будет шире, чем число `99'. + +\fvset{xrightmargin=0.6\textwidth} + +\begin{example} +Partl~\cite{pa} предложил, +чтобы \ldots + +\begin{thebibliography}{99} +\bibitem{pa} H.~Partl: +\emph{German \TeX}, +TUGboat Volume~9, Issue~1 ('88) +\end{thebibliography} +\end{example} + +\fvset{xrightmargin=0.5\textwidth} + +\chaptermark{Специальные возможности} % we need to fix the damage done by the + %bibliography example. + +\thispagestyle{fancyplain} + +Для использования в б\'оль\-ших проектах обратите внимание на программу +Bib\TeX{}. Она входит в большинство поставок \TeX{}. Bib\TeX{} +позволяет вам поддерживать библиографическую базу данных и извлекать +из нее ссылки, имеющие отношение к тому, что вы цитировали в вашем +труде. Визуальное представление библиографий, генерируемых Bib\TeX{}, +основано на концепции стилей, что позволяет вам создавать +библиографии, следуя любому из существующих стилей библиографии. + + +\section{Указатели} +\label{sec:indexing} + +Полезной особенностью многих книг является их предметный +указатель\index{предметный указатель}. Указатели могут создаваться +автоматически при помощи \LaTeX{} и сопровождающей программы +\texttt{makeindex}.\footnote{На системах, не поддерживающих длинные + имена файлов, программа может называться \texttt{makeidx}.} В этом +введении будут изложены только базовые команды генерации указателя. +Более глубокое изложение смотрите в~\companion. \index{программа + makeindex}\index{пакет makeidx} + +Для включения возможностей \LaTeX{} в преамбуле должен загружаться +пакет \pai{makeidx}: +\begin{lscommand} +\verb|\usepackage{makeidx}| +\end{lscommand} +\noindent а специальные команды должны быть разрешены помещением в +преамбулу команды +\begin{lscommand} + \ci{makeindex} +\end{lscommand} + +Содержимое указателя создается командами +\begin{lscommand} + \ci{index}\verb|{|\emph{ключ}\verb|}| +\end{lscommand} +\noindent где \emph{ключ} является элементом указателя. Вы вводите +команды указателя в том месте текста, куда этот элемент должен +указывать. Таблица~\ref{index} объясняет синтаксис аргумента +\emph{ключ} несколькими примерами. + +\begin{table}[!tp] +\caption{Примеры синтаксиса ключей указателя} +\label{index} +\begin{center} +\begin{tabular}{@{}lll@{}} + \textbf{Пример} &\textbf{Вид указателя} &\textbf{Комментарий}\\\hline + \rule{0pt}{1.05em}\verb|\index{hello}| &hello, 1 &Обычный элемент\\ +\verb|\index{hello!Peter}| &\hspace*{2ex}Peter, 3 &Подчиненный `hello' элемент\\ +\verb|\index{Sam@\textsl{Sam}}| &\textsl{Sam}, 2& Форматированный ключ\\ +\verb|\index{Lin@\textbf{Lin}}| &\textbf{Lin}, 7& То же\\ +\verb.\index{Jenny|textbf}. &Jenny, \textbf{3}& Форматированная страница\\ +\verb.\index{Joe|textit}. &Joe, \textit{5}& То же\\ +\verb.\index{eolienne@\'eolienne}. &\'eolienne, 4& Акцентиpованные буквы +\end{tabular} +\end{center} +\end{table} + +По мере обработки входного файла \LaTeX{}, каждая команда +\verb|\index| записывает соответствующий элемент указателя вместе с +номером текущей страницы в специальный файл. Файл имеет то же имя, что +и входной файл \LaTeX{}, но другое расширение имени (\verb|.idx|). +Этот \eei{.ind}-файл затем обрабатывается программой +\texttt{makeindex}. + +\begin{lscommand} + \texttt{makeindex} \emph{filename} +\end{lscommand} + +Программа \texttt{makeindex} генерирует отсортированный указатель с +тем же именем, но, на этот раз, с расширением \eei{.ind}. + +Если теперь повторно обработать входной файл, этот отсортированный +указатель включается в документ в то место, где \LaTeX{} находит +команду +\begin{lscommand} + \ci{printindex} +\end{lscommand} + +Пакет \pai{showidx}, входящий в \LaTeXe{}, печатает все элементы +указателя на левом поле текста. Это весьма полезно при проверке текста +и сверке указателя. + +Заметим, что команда \ci{index}, будучи использована неосторожно, +может повлиять на вид верстки. + +\begin{example} +Мое Слово \index{Слово}. В отличие +от Слово\index{Слово}. Отметьте +положение точки. +\end{example} + +\section{Настраиваемые колонтитулы} +\label{sec:fancy} + +Пакет \pai{fancyhdr},\footnote{Доступный из + \CTANref|/tex-archive/macros/latex/contrib/supported/fancyhdr|.} +написанный Piet van~Oostrum, предоставляет несколько простых команд, +позволяющих вам настраивать верхние и нижние колонтитулы документа. +Если вы сейчас взглянете на верх этой страницы, то увидите одно их +возможных применений этого пакета. + +\begin{figure}[!htbp] +\begin{lined}{\textwidth} +\begin{verbatim} +\documentclass{book} +\usepackage{fancyhdr} +\pagestyle{fancy} +% этим мы убеждаемся, что заголовки глав и +% разделов используют нижний регистр. +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\fancyhf{} % убираем текущие установки для колонтитулов +\fancyhead[LE,RO]{\bfseries\thepage} +\fancyhead[LO]{\bfseries\rightmark} +\fancyhead[RE]{\bfseries\leftmark} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} +\addtolength{\headheight}{0.5pt} % оставляем место для линейки +\fancypagestyle{plain}{% + \fancyhead{} % на обычных страницах убираем колонтитулы + \renewcommand{\headrulewidth}{0pt} % и линейку +} +\end{verbatim} +\end{lined} +\caption{Пример настройки \pai{fancyhdr}} \label{fancyhdr} +\end{figure} + +Сложность в настройке колонтитулов в том, чтобы включить туда вещи +вроде заголовков раздела или главы. \LaTeX{} достигает этого в два +этапа. В определениях колонтитулов можно использовать команды +\ci{rightmark} и \ci{leftmark}, представляющих заголовки текущей +главы и раздела, соответственно. Значения этих двух команд меняются +при обработке команд \ci{chapter} или \ci{section}. + +Для большей гибкости команды \ci{chapter} и ей подобные не +переопределяют \ci{rightmark} и \ci{leftmark} сами, а вызывают еще +одну команду, называющуюся \ci{chaptermark}, \ci{sectionmark} или +\ci{subsectionmark}, ответственную за переопределение \ci{rightmark} +и \ci{leftmark}.\sloppypar + +Так что, если вы хотите изменить вид названия главы в верхнем +колонтитуле, вы просто переопределяете команду \ci{chaptermark}. +\cih{sectionmark}\cih{subsectionmark} + +Рисунок~\ref{fancyhdr} показывает, как можно настроить пакет +\pai{fancyhdr} так, чтобы колонтитулы выглядели почти так, как они +выглядят у этого буклета. В любом случае вам рекомендуется +ознакомиться с документацией к пакету по адресу, упомянутому в сноске. + + +\section{Пакет verbatim} + +Ранее в этом введении вы познакомились с \emph{окружением} +\ei{verbatim}. В этом разделе вы узнаете про \emph{пакет} +\pai{verbatim}. Пакет \pai{verbatim} представляет из себя повторную +реализацию окружения \ei{verbatim} с исправлением некоторых его +ограничений. Само по себе это не замечательно,\trfootnote{Это для + американцев не замечательно. Для нас интересно то, что пакет + \pai{verbatim} включает команду \cih{verbatim"@font}\texttt{\bs verbatim@font}, позволяющую + использовать произвольный шрифт, например, русский, что невозможно в + окружении \ei{verbatim} без модификации стандартного поведения + \LaTeX{}.} но, кроме того, в него +была добавлена некоторая функциональность, и вот почему пакет здесь +упоминается. Пакет \pai{verbatim} предоставляет команду + +\begin{lscommand} +\ci{verbatiminput}\verb|{|\emph{файл}\verb|}| +\end{lscommand} + +\noindent которая позволяет вам включать текстовый файл в ваш +документ, как если бы его содержимое находилось внутри окружения +\ei{verbatim}. + +Так как пакет \pai{verbatim} входит в комплект `tools', вы найдете его +установленным на большинстве систем. Если вы хотите узнать о нем +больше, обязательно прочитайте \cite{verbatim}. + +\section{Загрузка и установка пакетов \LaTeX{}}\label{sec:Packages} + +Большинство дистрибутивов \LaTeX{} включают большой набор +предустановленных стилевых пакетов, но в Сети доступно намного +больше. Основное место для поиска стилевых пакетов в Интернете~--- +CTAN (\verb|http://www.ctan.org/|). + +Пакеты, такие, как \pai{geometry}, \pai{hyphenat} и многие другие, +обычно состоят из двух файлов: файла с расширением \texttt{.ins} и +второго, с расширением \texttt{.dtx}. Часто к ним прилагается файл +\texttt{readme.txt} с кратким описанием пакета. Конечно, сначала нужно +прочесть этот файл. + +В любом случае, после того, как вы скопировали файлы пакета на вашу +машину, вам нужно обработать их так, чтобы, во-первых, ваш \TeX{} +узнал о наличии нового пакета и, во-вторых, вы получили необходимую +документацию. Вот как выполняется первая часть: + +\begin{enumerate} +\item Обработайте \LaTeX{} файл \texttt{.ins}. На выходе вы получите файл + \eei{.sty}. +\item Поместите файл \eei{.sty} туда, где ваш дистрибутив ищет эти + файлы. Обычно это подкаталоги каталога + \texttt{\ldots/\emph{localtexmf}/tex/latex}. +\item Обновите базу имен файлов вашего дистрибутива. Команда зависит + от конкретного дистрибутива: для teTeX и fpTeX~--- \texttt{texhash}, + для web2c~--- \texttt{maktexlsr}, для MikTeX~--- \texttt{initexmf + -update-fndb}, или используя графические интерфейсы. +\end{enumerate} + +\noindent Теперь вы можете из файла \texttt{.dtx} получить +документацию: + +\begin{enumerate} +\item Обработайте \LaTeX{} файл \texttt{.dtx}. На выходе вы получите + файл \texttt{.dvi}. Заметьте, что вам может быть нужно запустить + \LaTeX{} несколько раз, чтобы получить правильные перекрестные + ссылки. +\item Проверьте, не сгенеровал ли \LaTeX{}, кроме всего прочего, файл + \texttt{.idx}. Если нет, то переходите к пункту~\ref{step:final}. +\item Для генерации предметного указателя, выполните команду:\\ + \fbox{\texttt{makeindex -s gind.ist \textit{имя}}}\\ + (где \textit{имя}~--- имя основного файла без расширения). +\item Снова обработайте \LaTeX{} файл \texttt{.dtx} \label{step:next} +\item В конце концов, для удобства чтения сгенерируйте файл + \texttt{.ps} или \texttt{.pdf}.\label{step:final} +\end{enumerate} + +Иногда вы обнаружите, что генерируется также файл \texttt{.glo} +(глоссарий). В этом случае между шагами~\ref{step:next} и +\ref{step:final} выполните команду: + +\noindent\texttt{makeindex -s gglo.ist -o \textit{имя}.gls \textit{имя}.glo} + +\noindent и еще раз запустить \LaTeX{} с файлом \texttt{.dtx}. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Chapter on pdfLaTeX +% French original by Daniel Flipo 14/07/2001 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Работа с pdf\LaTeX{}}\label{sec:pdftex}\index{PDF} +\secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr}% + +PDF~--- формат гипертекстовых\index{гипертекст} документов. Так же, +как на веб-страницах, некоторые слова в документе отмечаются как +гиперссылки. Они ведут к другим точкам документа или к другим +документам. Если вы ткнете мышкой в такую гиперссылку, то попадете в +точку назначения ссылки. В контексте \LaTeX{} это означает, что все +появления в тексте команд \ci{ref} и \ci{pageref} становятся +гиперссылками. Кроме того, оглавление, предметный указатель и другие +аналогичные структуры становятся наборами гиперссылок. + +Б\'ольшая часть веб-страниц сегодня пишется на языке HTML +\emph{(HyperText Markup Language, язык гипертекстовой разметки)}. Для +научных документов этот формат имеет два серьезных недостатка: +\begin{enumerate} +\item Включение в HTML математических формул, вообще говоря, не + поддерживается. Несмотря на наличие такого стандарта, большинство + используемых сегодня Интернет-навигаторов его не поддерживают или не + имеют необходимых шрифтов. +\item Печать HTML-документов возможна, но результаты сильно зависят от + используемой платформы и навигатора. Результат и близко не подходит + к тому качеству, которое мы привыкли ожидать в мире \LaTeX{}. +\end{enumerate} + +Было множество попыток создать трансляторы из \LaTeX{} в +HTML. Некоторые из них были даже довольно успешны в том смысле, что +они могут генерировать корректные веб-страницы из обычных файлов +\LaTeX{}. Но все из них для получения результата предпринимают +множество упрощений. Когда вы начинаете использовать сложные +возможности \LaTeX{} и внешние пакеты, такие трансляторы обычно +начинают давать сбои. Авторы, желающие сохранить уникально +типографское качество своих документов даже публикуясь на WWW, +обращаются к PDF \emph{(Portable Document Format, формат мобильных + документов)}, который сохраняет верстку документа и позволяет +использовать гипертекстовую навигацию. Большинство современных +веб-навигаторов имеют встроенные средства для просмотра документов в +формате PDF. + +Даже несмотря на наличие средств просмотра форматов DVI и \PSi{} почти +на любой платформе, вы увидите, что гораздо более распространены +\wi{Acrobat Reader} и \wi{xpdf}, служащие для просмотра +PDF-документов. Поэтому, предоставляя PDF-версии ваших документов, вы +делаете их более доступными для потенциальных читателей. + +\subsection{PDF-документы для WWW} + +Создание PDF-файла из исходного текста в \TeX{} очень просто +благодаря программе pdf\TeX{}, разработанной +H\`an~Th\'{\^e}~Th\`anh. pdf\TeX{} генерирует PDF аналогично тому, как +\TeX{} генерирует DVI. Существует также pdf\LaTeX{}, генерирующий PDF +из исходного теста +\LaTeX{}.\index{pdftex@pdf\TeX}\index{pdftex@pdf\LaTeX} + +И pdf\TeX{}, и pdf\LaTeX{} автоматически устанавливаются большинством +современных дистрибутивов \TeX{}, таких, как te\TeX{}, fp\TeX{}, +Mik\TeX{}, \TeX{}Live и CMac\TeX{}. + +Для генерации PDF вместо DVI достаточно вместо команды \texttt{latex + file.tex} использовать команду \texttt{pdflatex file.tex}. Там, где +\LaTeX{} не запускается из командной строки, вы можете найти +специальную кнопку в \TeX{}ControlCenter. + +В \LaTeX{} размер бумаги определяется при помощи необязательных +параметров команды \ci{documentclass}, например, \texttt{a4paper} или +\texttt{letterpaper}. Этот механизм работает и в pdf\LaTeX{}, но, +помимо этого, pdf\TeX{} должен знать также и физический размер бумаги, +а не только размер области, используемой для верстки.\index{размер + бумаги} Если вы используете пакет \pai{hyperref} +(см. стр.~\pageref{ssec:pdfhyperref}), размер бумаги будет установлен +автоматически. В ином случае вам нужно сделать это вручную, поместив в +преамбулу документа следующие строчки: +\begin{code} +\begin{verbatim} +\pdfpagewidth=\paperwidth +\pdfpageheight=\paperheight +\end{verbatim} +\end{code} + +Следующий раздел более детально поясняет разницу между <<нормальным>> +\LaTeX{} и pdf\LaTeX{}. Основные отличия сосредоточены в трех +областях: в используемых шрифтах, в форматах включаемых изображений и +в методах ручного формирования гиперссылок. + +\subsection{Шрифты} + +\wi{pdf\LaTeX} может работать с любыми видами шрифтов (растровые +шрифты PK, TrueType, \PSi{} type~1\dots), но основной для \LaTeX{} +формат, растровые шрифты PK, делают документ, просматриваемый на +экране при помощи Acrobat Reader, очень коряво выглядящим. Для +генерации нормально отображаемых документов лучше всего +использовать шрифты \PSi{} Type~1. + +\PSi{} Type~1 версии шрифтов Computer Modern и AMSFonts были +произведены компаниями Blue Sky Research и Y\&Y, Inc., которые потом +передали авторские права на них Американскому Математическому Обществу +(AMS). В начале 1997 года эти шрифты были сделаны публично доступными, +и в настоящее время включены в большинство дистрибутивов \TeX{}. + +Однако, если вы используете \LaTeX{} для создания документов на +языках, отличных от английского, вам может быть нужно использовать +шрифты EC, LH или CB (см. обсуждение шрифтов \texttt{OT1} на +стр.~\pageref{OT1}). Владимир Волович создал шрифтовой пакет cm-super, +который охватывает полные наборы шрифтов EC/TC, EC Concrete, EC Bright +и LH. Он доступен по адресу \CTANref|fonts/ps-type1/cm-super|, а также +включен в дистрибутивы \TeX{}Live7 и Mik\TeX{}. Аналогично, греческие +шрифты CB в формате Type~1, созданные Apostolos +Syropoulos, доступны по адресу \CTANref|fonts/greek/cb|. К сожалению, +оба эти набора не отличаются типографским качеством Type~1 CM шрифтов +от Blue Sky/Y\&Y. Хинты (hints) в них сгенерированы автоматически, и +потому документы могут на экране выглядеть не так красиво, как при +использовании Type~1 CM шрифтов Blue Sky/Y\&Y. На устройствах с +высоким разрешением они дают результаты, идентичные оригинальным +растровым шрифтам EC/LH/CB. + +Если вы создаете документы на латинице, у вас есть несколько других +возможностей: +\begin{itemize} +\item Использовать пакет \pai{aeguill}, известный также как + \emph{Almost European Computer Modern with Guillemets}. Просто + поместите в преамбулу строчку + \verb+\usepackage{aeguill}+\paih{aeguill} для использования + виртуальных шрифтов AE вместо шрифтов EC. +\item Использовать пакет \pai{mltex}, который, однако, работает, + только если ваш pdf\TeX{} скомпилирован с опцией \wi{mltex}. +\end{itemize} + +Виртуальный набор шрифтов AE, аналогично системе {Ml\TeX}, заставляет +\TeX{} верить, что он имеет полные 256-символьные шрифты, создавая +большинство недостающих знаков из шрифта CM и переупорядочивая их в +кодировку EC, позволяя таким образом использовать высококачественные +CM шрифты в формате Type~1, доступные на большинстве систем. Поскольку +шрифт теперь имеет кодировку T1, для европейских языков, основанных на +латинице, нормально работает механизм переносов. Единственный +недостаток этого подхода~--- в том, что искусственные символы AE не +работают в функции поиска Acrobat Reader, так что вы не сможете искать +слова с акцентированными символами. + +Для русского языка аналогичным решением будет использование +виртуальных шрифтов C1, доступных по адресу +\texttt{ftp://ftp.vsu.ru/pub/tex/font-packs/c1fonts}. Эти шрифты +комбинируют стандартные шрифты CM Type~1 из набора Bluesky со шрифтами +CMCYR Type~1 из наборов Paradissa и BaKoMa, доступных на +CTAN. Поскольку шрифты Paradissa содержат только русские буквы, шрифты +C1 не имеют других кириллических символов. + +Иным решением может быть переключение на другие \PSi{} Type~1 +шрифты. Некоторые из них даже поставляются с каждой копией Acrobat +Reader. Из-за того, что эти шрифты имеют другие метрики символов, ваша +верстка изменится. Обычно текст начинает занимать больше места, так +как CM шрифты очень компактны. Кроме того, общая визуальная +согласованность документа будет хуже, так как шрифты Times, Helvetica +и Courier (основные кандидаты на такую замену) не были спроектированы +работать вместе в одном документе, как это было сделано в шрифтах +Computer Modern. + +Для этой цели существуют два готовых набора шрифтов: пакет \pai{pxfonts}, +базирующийся в качестве основного на шрифте \emph{Palatino}, и пакет +\pai{txfonts}, базирующийся на шрифте \emph{Times}. Чтобы использовать +эти пакеты, поместите в преамбулу следующие строчки: +\begin{code} +\begin{verbatim} +\usepackage[T1]{fontenc} +\usepackage{pxfonts} +\end{verbatim} +\end{code} + +Замечание: после компиляции исходного текста вы можете увидеть в +\texttt{.log}-файле строчки наподобие следующей: +\begin{verbatim} +Warning: pdftex (file eurmo10): Font eurmo10 at ... not found +\end{verbatim} +Они означают, что не был найден определенный шрифт, использованный в +документе. Вам придется устранить эту проблему, так как результирующий +PDF-документ может \emph{вообще не показывать страницы с + отсутствующими символами}. + +Вся эта непростая проблема со шрифтами, особенно отсутствие хорошего +набора шрифтов EC, равного по качеству шрифтам CM в формате Type~1, +занимает умы множества людей, так что постоянно появляются новые +решения. + +\subsection{Использование графики} +\label{ssec:pdfgraph} + +Включение графики в документ лучше всего работает при помощи пакета +\pai{graphicx} (см. стр.~\pageref{eps}). С указанием значения +\texttt{pdftex} в опции \emph{driver} этот пакет успешно работает с +pdf\LaTeX{}: +\begin{code} +\begin{verbatim} +\usepackage[pdftex]{color,graphicx} +\end{verbatim} +\end{code} +В приведенном примере включен также пакет \pai{color}, поскольку +использование цвета в веб-документах вполне естественно. + +Это все были хорошие новости, а теперь~--- плохие: графика в формате +\EPSi{} не работает с pdf\LaTeX{}. Если вы не зададите расширение +файла в команде \ci{includegraphics}, пакет \pai{graphicx} выберет +подходящий файл, основываясь на значении опции \emph{driver}. Для +значения \texttt{pdftex} это будут форматы \texttt{.png}, +\texttt{.pdf}, \texttt{.jpg}, \texttt{.mps} (\MP\index{metapost@\MP}) +и \texttt{.tif}~--- но \emph{не} \texttt{.eps}. + +Простой способ обхода этой проблемы~--- сконвертировать ваши файлы EPS +в формат PDF утилитой \texttt{epstopdf}, присутствующей во многих +системах. Для векторной графики это замечательное решение. Для растров +(фотографий, сканированных документов) это не идеально, потому что +формат PDF сам по себе поддерживает включение растровых изображений +формата PNG и JPEG. Формат PNG хорош для снимков экрана и других +изображений с небольшим количеством цветов. Формат JPEG хорош для +фотографий из-за своей компактности. + +Иногда может быть желательно вообще не рисовать геометрические фигуры, +а описать их на языке специальных команд, таком, как +\MP\index{metapost@\MP}, включенном в большинство дистрибутивов +\TeX{}. В комплекте вы найдете полное руководство по его +использованию. + +\subsection{Гиперссылки} +\label{ssec:pdfhyperref} + +Пакет \pai{hyperref} превратит все внутренние ссылки документа в +гиперссылки. Для этого необходимо некоторое шаманство, в частности, +команда \verb+\usepackage[pdftex]{hyperref}+ должна быть +\emph{последней} командой в преамбуле вашего документа. + +Для настройки поведения пакета \pai{hyperref} мы можете использовать: +\begin{itemize} +\item разделенный запятыми список опций \pai{hyperref}, после опции + \texttt{pdftex}\\ + \verb+\usepackage[pdftex]{hyperref}+ +\item отдельные команды + \verb+\hypersetup{+\emph{опции}\verb+}+. +\end{itemize} + +Единственная обязательная опция~--- \texttt{pdftex}, остальные лишь +позволяют изменять поведение \pai{hyperref} по +умолчанию.\footnote{Стоит заметить, что пакет \pai{hyperref} не + ограничен работой с pdf\TeX{}. Его можно настроить для внедрения в + нормальную выдачу DVI специфичной для PDF информации. Она потом + попадает в PS-файл, генерируемый программой \texttt{dvips}, и, + наконец, используется Adobe Distiller, который можно использовать + для преобразования PS-файлов в формат PDF.} В следующем списке +значения по умолчанию приведены прямым шрифтом: + +\begin{description} + \item [\texttt{bookmarks (=true,\textit{false})}] показывает или + прячет полосу закладок при просмотре документа + \item [\texttt{unicode (=false,\textit{true})}] позволяет + использовать в закладках нелатинские символы + \item [\texttt{pdftoolbar (=true,\textit{false})}] показывает или + прячет линейку инструментов Acrobat + \item [\texttt{pdfmenubar (=true,\textit{false})}] показывает или + прячет меню Acrobat + \item [\texttt{pdffitwindow (=true,\textit{false})}] меняет + начальное увеличение документа (страница размером в окно Acrobat) + \item [\texttt{pdftitle (=\{text\})}] устанавливает заголовок, + отображаемый Acrobat в окне \texttt{Document Info} + \item [\texttt{pdfauthor (=\{text\})}] задает автора PDF-документа + \item [\texttt{pdfnewwindow (=true,\textit{false})}] определяет, + должно ли открываться новое окно, если гиперссылка ведет в другой + документ + \item [\texttt{colorlinks (=false,\textit{true})}] окружает ссылки + цветными рамками (\texttt{false}) или меняет цвет текста ссылок + (\texttt{true}). Цвет можно настроить следующими опциями (показаны + значения по умолчанию): + \begin{description} + \item [\texttt{linkcolor (=red)}] цвет внутренних ссылок (разделы, + страницы и т.п.), + \item [\texttt{citecolor (=green)}] цвет ссылок на литературу, + \item [\texttt{filecolor (=magenta)}] цвет ссылок на файлы, + \item [\texttt{urlcolor (=cyan)}] цвет ссылок на URL (почта, WWW). + \end{description} +\end{description} + +\vspace{\baselineskip} + +Если вас устраивают значения по умолчанию: +\begin{code} +\begin{verbatim} +\usepackage[pdftex]{hyperref} +\end{verbatim} +\end{code} + +Чтобы открыть окно закладок и раскрасить ссылки (значения +\texttt{=true} можно опускать): +\begin{code} +\begin{verbatim} +\usepackage[pdftex,bookmarks,colorlinks]{hyperref} +\end{verbatim} +\end{code} + +Когда PDF-документы предназначаются для печати, цветные ссылки лучше +не использовать, потому что они окажутся на бумаге серыми, затрудняя +чтение. Лучше использовать цветные рамки, которые не печатаются: +\begin{code} +\begin{verbatim} +\usepackage{hyperref} +\hypersetup{colorlinks=false} +\end{verbatim} +\end{code} +\noindent или делать ссылки черными: +\begin{code} +\begin{verbatim} +\usepackage{hyperref} +\hypersetup{colorlinks,% + citecolor=black,% + filecolor=black,% + linkcolor=black,% + urlcolor=black,% + pdftex} +\end{verbatim} +\end{code} + +Если вам нужно задать информацию для секции \texttt{Document Info}: +\begin{code} +\begin{verbatim} +\usepackage[pdfauthor={Pierre Desproges}% + pdftitle={Des femmes qui tombent},% + pdftex]{hyperref} +\end{verbatim} +\end{code} + +\vspace{\baselineskip} + +В дополнение к автоматически генерируемым гиперссылкам, возможно +вставлять ссылки в явной форме с помощью команды +\begin{lscommand} +\ci{href}\verb|{|\emph{url}\verb|}{|\emph{text}\verb|}| +\end{lscommand} + +Код +\begin{code} +\begin{verbatim} +Веб-сайт \href{http://www.ctan.org}{CTAN}. +\end{verbatim} +\end{code} +\noindent генерирует на выходе ``\href{http://www.ctan.org}{CTAN}''; +при нажатии мышью на слово ``\textcolor{magenta}{CTAN}'' вы попадете +на веб-сайт CTAN. + +Если ссылка ведет не на URL, а на локальный файл, вы тоже можете +пользоваться командой \ci{href}: +\begin{verbatim} + Полный текст документа находится \href{manual.pdf}{здесь}. +\end{verbatim} +\noindent что сгенерирует текст ``Полный текст документа находится +\textcolor{cyan}{здесь}.'' Нажатие на слово +``\textcolor{cyan}{здесь}'' откроет файл \texttt{manual.pdf}. (Имя +файла рассматривается относительно положения текущего документа.) + +Автор статьи может облегчить читателю отсылку откликов, используя +команду \ci{href} внутри команды \ci{author} на титульной странице +документа: +\begin{code} +\begin{verbatim} +\author{Mary Oetiker $<$\href{mailto:mary@oetiker.ch}% + {mary@oetiker.ch}$>$ +\end{verbatim} +\end{code} +Заметим, что ссылка с почтовым адресом дополняет адрес, приведенный +собственно на странице. Это сделано потому, что ссылка\\ +\verb+\href{mailto:mary@oetiker.ch}{Mary Oetiker}+\\ +будет удобна из-под Acrobat Reader, но будет невидима после печати +документа на бумаге. + +\subsection{Проблемы со ссылками} + +Когда сбрасываются счетчики, например, когда команда \ci{mainmatter} +из класса документов \texttt{book} сбрасывает счетчик номера страницы +в~1, генерируются сообщения наподобие такого: +\begin{verbatim} +! pdfTeX warning (ext4): destination with the same identifier + (name{page.1}) has been already used, duplicate ignored +\end{verbatim} +Происходит это потому, что во вводной части книги уже была страница +номер~1, и все ссылки на ``страницу 1'' будут уже не уникальными, +отсюда и сообщение ``\verb+duplicate+ has been \verb+ignored+.'' + +Избавиться от этого можно, задав \texttt{hyperref} опцию +\texttt{plainpages=false}. К сожалению, поможет она только в отношении +счетчика страниц. Еще более радикальной мерой может быть использование +опции \texttt{hypertexnames=false}, но после этого перестанут работать +ссылки на страницы из предметного указателя. + +\subsection{Проблемы с закладками} + +Текст закладок не всегда выглядит так, как вам бы этого хотелось. В +закладках допустим гораздо меньший набор символов, чем в нормальном +\LaTeX{}, поскольку они являются ``просто текстом''. Обычно hyperref +замечает связанные с этим проблемы и выводит предупреждение: +\begin{code} +\begin{verbatim} +Package hyperref Warning: +Token not allowed in a PDFDocEncoded string: +\end{verbatim} +\end{code} + +Вы можете обойти эту проблему, предоставив текстовую строчку для +закладки взамен проблемного текста: +\begin{lscommand} +\ci{texorpdfstring}\verb|{|\emph{текст \TeX{}а}\verb|}{|\emph{текст закладки}\verb|}| +\end{lscommand} + +Математические выражения являются первыми кандидатами на такую замену: +\begin{code} +\begin{verbatim} +\section{\texorpdfstring{$E=mc^2$}% + {E\ =\ mc\texttwosuperior}} +\end{verbatim} +\end{code} +\noindent что превращает \verb+\section{$E=mc^2$}+ в ``E=mc2'' для +цели создания закладки. + +Цвета тоже плохо себя ведут в закладках: +\begin{code} +\verb+\section{\textcolor{red}{Red !}}+ +\end{code} +\noindent выдает строку ``redRed!''. Команда \verb+\textcolor+ +игнорируется, но ее аргумент (red) печатается. + +Гораздо лучший результат получается так: +\begin{code} +\verb+\section{\texorpdfstring{\textcolor{red}{Red !}}{Red\ !}}+ +\end{code} + + +\section{Совместимость исходных текстов \LaTeX{} и pdf\LaTeX{}} +\label{sec:pdfcompat} + +В идеале ваш документ должен одинаково хорошо компилироваться как +\LaTeX{}, так и pdf\LaTeX{}. Основная проблема тут~--- включение +графики. Простым решением является \emph{повсеместное умолчание} +расширения файлов в команде \ci{includegraphics}. В этом случае +компилятор автоматически выбирает файл требуемого формата из текущего +каталога. Все, что нужно будет сделать,~--- это создать подходящие +версии графических файлов. \LaTeX{} будет выбирать \texttt{.eps}, а +pdf\LaTeX{} постарается включить файлы с расширениями \texttt{.png}, +\texttt{.pdf}, \texttt{.jpg}, \texttt{.mps} или \texttt{.tif} (в +указанном порядке). + +Для случаев, когда вам все же нужно будет использовать разный код для +обычной и PDF-версии документа, можно где-то в самом начале документа +сделать следующее: +\begin{code} +\begin{verbatim} +\newif\ifPDF +\ifx\pdfoutput\undefined\PDFfalse +\else\ifnum\pdfoutput > 0\PDFtrue + \else\PDFfalse + \fi +\fi +\end{verbatim} +\end{code} +Здесь определена специальная команда, позволяющая легко писать +условный код: +\begin{code} +\begin{verbatim} +\ifPDF + \usepackage[T1]{fontenc} + \usepackage{aeguill} + \usepackage[pdftex]{graphicx,color} + \usepackage[pdftex]{hyperref} +\else + \usepackage[T1]{fontenc} + \usepackage[dvips]{graphicx} + \usepackage[dvips]{hyperref} +\fi +\end{verbatim} +\end{code} +В этом примере пакет hyperref включен даже в не-PDF-версии. Сделано +это для того, чтобы команда \ci{href} работала в любом случае, и ее +использование не надо было оборачивать в условные операторы. + +Заметим, что в современных дистрибутивах \TeX{} (например, в +\TeX{}Live), выбор \texttt{pdftex} или \texttt{dvips} при вызове +\pai{graphicx} и \pai{color} происходит автоматически в соответствии с +настройками конфигурационных файлов \texttt{graphics.cfg} и +\texttt{color.cfg}. + +\section{Создание презентаций при помощи \pai{pdfscreen}} +\label{sec:pdfscreen} +\secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr} +Результаты вашей работы вы можете демонстрировать на доске, +проектором, или прямо с вашего ноутбука при помощи одной из +презентационных программ. + +\wi{pdf\LaTeX} с пакетом \pai{pdfscreen} позволяет вам создавать +презентации в PDF, столь же красивые и живые, как и в +\emph{PowerPoint}, но много более мобильные, поскольку Acrobat Reader +существует на более широком спектре систем. + +Пакет \pai{pdfscreen} использует пакеты \pai{graphicx}, \pai{color} и +\pai{hyperref} с опциями, настроенными для экранной презентации. + +\begin{figure}[htbp] +\begin{verbatim} +\documentclass[pdftex,12pt]{article} +%%% misc extensions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[latin1]{inputenc} +\usepackage[english]{babel} +\usepackage[T1]{fontenc} +\usepackage{aeguill} +%%% pdfscreen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[screen,panelleft,chocolate]{pdfscreen} +% Screen Format +\panelwidth=25mm +%% height width +\screensize{150mm}{200mm} +%% left right top bottom +\marginsize{42mm}{8mm}{10mm}{10mm} +% Color or image for background +\overlayempty +\definecolor{mybg}{rgb}{1,0.9,0.7} +\backgroundcolor{mybg} +% Logo +\emblema{MyLogo} +%%% For PPower4 (post-processor) %%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{pause} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} +\begin{slide} +\begin{itemize} +\item Good News\dots \pause +\item Bad News +\end{itemize} +\end{slide} +\end{document} +\end{verbatim} +% \begin{center} +% \includegraphics[width=.8\textwidth]{pdfscr} + \caption{Пример входного файла pdfscreen} + \label{fig:pdfscr} +% \end{center} +\end{figure} + +Для создания таких документов обычно используется класс +\texttt{article}. Рис.~\ref{fig:pdfscr} показывает пример входного +файла. Сначала загружается пакет \pai{pdfscreen} с соответствующими +опциями: +\begin{description} +\item[\texttt{screen}]: экранная презентация. Для бумажной презентации + пользуйтесь опцией \texttt{print}. +\item[\texttt{panelright}] размещает панель навигации в правой части + экрана. Если панель нужна слева, пользуйтесь опцией + \texttt{panelleft}. Если она не нужна вообще, используйте + \texttt{nopanel}. +\item[\texttt{french}] или любой другой поддерживаемый язык. Текст на + навигационных кнопках выводится на соответствующем языке. Эта опция + не зависит от опций пакета \pai{babel}. Если ваш язык не + поддерживается \pai{pdfscreen}, вы все же можете локализовать кнопки + панели при помощи файла \texttt{pdfscreen.cfg}, см., например, + \texttt{pdfscreen.cfg.specimen}. +\item[\texttt{chocolate}] цветовая схема навигационной панели. Другие + варианты: \texttt{gray}, \texttt{orange}, \texttt{palegreen}, + \texttt{bluelace} и \texttt{blue}, используемый по умолчанию. +\end{description} + +Далее настраивается формат экрана. Поскольку презентация всегда +разворачивается на полный экран, это можно использовать для настройки +размера шрифта: +\begin{description} +\item[\ci{panelwidth}] определяет ширину навигационной панели +\item[\ci{screensize}\textmd{\texttt{\{}\emph{ширина}\texttt{\}\{}\emph{высота}\texttt{\}}}] + определяет ширину и высоту экрана, включая навигационную панель +\item[\ci{marginsize}\textmd{\texttt{\{}\emph{левое}\texttt{\}\{}\emph{правое}\texttt{\}\{}\emph{верхнее}\texttt{\}\{}\emph{нижнее}\texttt{\}}}] + определяет поля документа. В приведенном примере документ не + центрируется, поскольку номера разделов остаются на левом поле. +\end{description} + +Можно использовать фоновое изображение в любом из поддерживаемых +pdf\TeX{} форматов командой +\begin{lscommand} +\ci{overlay}\verb|{|\emph{изображение}\verb|}| +\end{lscommand} +\noindent или, если вы предпочитаете пустой фон, можно задать его цвет +командой +\begin{lscommand} +\ci{background}\verb|{|\emph{цвет}\verb|}| +\end{lscommand} +Наконец, если вы хотите поместить на навигационную панель эмблему +вашей организации, пользуйтесь командой +\begin{lscommand} +\ci{emblema}\verb|{|\emph{файл-с-эмблемой}\verb|}| +\end{lscommand} + +Если вы верите в убедительность последовательной демонстрации пунктов +вашего рассказа, можете использовать пакет \pai{pause}. Он предлагает +команду \ci{pause}. Ее можно помещать в текст в те места, где вы +хотите задержать отображение вашего документа. Пакет \pai{pause} +является частью системы \texttt{PPower4} ($P^4$: \emph{PDF + Presentation Post-Processor}), которая берет документ, +сгенерированный pdf\TeX{}, и заставляет его петь, плясать и собирать +деньги. Командная строчка выглядит так: +\begin{lscommand} +\verb+ppower4 xy.pdf xyz.pdf+ +\end{lscommand} + +Для управления тем, что отражается на каждом слайде, пользуйтесь +окружением \verb+\begin{slide}+ \ldots \verb+\end{slide}+. Содержимое +каждого слайда отображается вертикально центрированным на своей +странице. + +Компилируя приведенный пример, мы получим ошибку: +\begin{verbatim} +! pdfTeX warning (dest): name{contents} has been + referenced but does not exist, replaced by a fixed one +\end{verbatim} +Причина тут в том, что на навигационной панели есть кнопка, ведущая к +оглавлению, а наш пример оглавления не имеет. + +Если вам захочется отображать оглавление прямо на навигационной +панели, используйте \pai{pdfscreen} с опцией +\texttt{paneltoc}. Понятно, это будет удовлетворительно выглядеть +только если ваше оглавление содержит немного коротких +заголовков. Можно задавать дополнительные короткие заголовки для ваших +разделов квадратными скобками в командах секционирования. + +Это короткое введение пробежало только по самым верхам возможностей +\pai{pdfscreen} и \texttt{PPower4}. Каждый из них включает собственное +подробное руководство. + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort2e" +%%% End: |