diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/lshort-russian/src/custom.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/lshort-russian/src/custom.tex | 862 |
1 files changed, 0 insertions, 862 deletions
diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/custom.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/custom.tex deleted file mode 100644 index 0dda290f8a0..00000000000 --- a/Master/texmf-dist/doc/latex/lshort-russian/src/custom.tex +++ /dev/null @@ -1,862 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Contents: Customising LaTeX output -% $Id: custom.tex,v 1.1.1.1 2002/02/26 10:04:20 oetiker Exp $ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chapter{Настройка \LaTeX} - -\begin{intro} - Произведенные с использованием изученных до сих пор команд документы - будут выглядеть вполне приемлемо для широкой аудитории. Они не - выглядят очень модно, подчиняясь зато всем правилам хорошего тона в - наборе, поэтому их легко читать и на них приятно смотреть. - - Но бывают ситуации, в которых \LaTeX{} не предоставляет команду или - окружение, удовлетворяющие вашим ожиданиям, или производимый - некоторой существующей командой вывод не отвечает вашим требованиям. - - В этой главе даются некоторые советы по обучению \LaTeX{} новым - вещам, и тому, как сделать его вывод отличающимся от того, что - производится по умолчанию. -\end{intro} - - -\section{Новые команды, окружения и пакеты} - -Как вы заметили, все вводимые в этой книге команды верстаются в рамке -и включаются в указатель в конце книги. Вместо того, чтобы напрямую -использовать необходимые для этого команды \LaTeX{}, автор создал -\wi{пакет}, в котором определил новые команды и окружения для этой -цели. Теперь можно просто писать: - -\begin{example} -\begin{lscommand} -\ci{dum} -\end{lscommand} -\end{example} - -В этом примере используются как новое окружение, называющееся -\ei{lscommand} и отвечающее за рисование рамки вокруг команды, так и -новая команда, называющаяся \ci{ci} и верстающая название команды и -заносящая соответствующий элемент в указатель. Вы можете в этом -убедиться, поискав команду \ci{dum} в указателе в конце книги, где вы -найдете запись для \ci{dum}, указывающую на эту страницу. - -Если автор когда-нибудь решит, что ему не нравятся больше команды, -сверстанные в рамке, он просто изменит определение окружения -\texttt{lscommand}. Это намного проще, чем пройти по всему документу, -выискивая все места, где использованы общие команды \LaTeX{} для -рисования рамки вокруг слов. - - -\subsection{Новые команды} - -Чтобы добавить ваши собственные команды, пользуйтесь командой - -\begin{lscommand} -\ci{newcommand}\verb|{|% - \emph{название}\verb|}[|\emph{число}\verb|]{|\emph{определение}\verb|}| -\end{lscommand} - -Обычно эта команда требует двух аргументов. \emph{Название} команды, -которую вы создаете, и \emph{определение} команды. Аргумент -\emph{число} в квадратных скобках не обязателен. Он применяется для -создания новых команды, которые, в свою очередь, принимают до 9 -аргументов. - -Следующие два примера должны вам помочь получить представление о -команде. Первый пример определяет новую команду, называющуюся -\ci{tnss}, что является сокращением от ``The Not So Short Introduction -to \LaTeXe''. Такая команда пригодится, если вам много раз приходится -писать название этой книги. - -\begin{example} -\newcommand{\tnss}{The not - so Short Introduction to - \LaTeXe} -% в теле документа: -``\tnss'' \ldots{} ``\tnss'' -\end{example} - -Следующий пример показывает, как определить новую команду, принимающую -один аргумент. Метка \verb|#1| заменяется на заданный аргумент. Если вы -хотите использовать более одного аргумента, пользуйтесь \verb|#2|, и -так далее. - -\begin{example} -\newcommand{\txsit}[1] - {\emph{#1} краткое - введение в \LaTeXe} -% в теле документа -\begin{itemize} -\item \txsit{Не очень} -\item \txsit{Очень} -\end{itemize} -\end{example} - -\LaTeX{} не позволит вам создать новую команду, которая бы изменяла -уже существующую. Но для случая, когда вы явно хотите изменить -существующую команду, есть специальная команда: \ci{renewcommand}. Она -имеет тот же синтаксис, что и команда \verb|\newcommand|. - -В некоторых случаях может пригодиться команда \ci{providecommand}. Она -работает так же, как \ci{newcommand}, но, если команда уже определена, -то \LaTeXe{} ее молча проигнорирует. - -Существуют определенные особенности, связанные с пробелами после -команд \LaTeX{}. Подробности смотрите на -странице~\pageref{whitespace}. - - -\subsection{Новые окружения} - -Аналогичная команде \verb|\newcommand|, существует команда для создания -вашего собственного окружения, \ci{newenvironment}, имеющая следующий -синтаксис: - -\begin{lscommand} -\ci{newenvironment}\verb|{|% - \emph{название}\verb|}[|\emph{номер}\verb|]{|% - \emph{начало}\verb|}{|\emph{конец}\verb|}| -\end{lscommand} - -Подобно команде \verb|\newcommand|, \ci{newenvironment} можно -использовать с необязательным аргументом, или без него. Материал, -заключенный в аргумент \emph{начало}, обрабатывается до обработки -текста внутри окружения. Материал, заключенный в аргумент -\emph{конец}, обрабатывается, когда встречается команда -\verb|\end{|\emph{название}\verb|}|. Следующий пример иллюстрирует -использование команды \ci{newenvironment}. - -\begin{example} -\newenvironment{king} - {\rule{1ex}{1ex}% - \hspace{\stretch{1}}} - {\hspace{\stretch{1}}% - \rule{1ex}{1ex}} - -\begin{king} -Мои смиренные подданные\ldots -\end{king} -\end{example} - -Аргумент \emph{номер} используют так же, как и для команды -\verb|\newcommand|. \LaTeX{} контролирует, чтобы вы не определяли уже -существующее окружение. Если вы заходите все же это сделать, -пользуйтесь командой \ci{renewenvironment}. Она имеет тот же -синтаксис, что ли \ci{newenvironment}.\sloppypar - -Команды, использованные в этом примере, будут разъяснены позже: -описание команды \ci{rule} см. на стр.~\pageref{sec:rule}, команда -\ci{stretch} описана на стр.~\pageref{cmd:stretch}, а описание команды -\ci{hspace} находится на стр.~\pageref{sec:hspace}. - -\subsection{Ваш собственный пакет} - -Когда вы определяете множество новых окружений и команд, преамбулы -ваших документов становятся очень большими. В этой ситуации -представляется разумным создать пакет \LaTeX{}, содержащий определения -всех ваших команд и окружений. Потом можно командой \ci{usepackage} -использовать пакет в ваших документах.\sloppypar - -\begin{figure}[!htbp] -\begin{lined}{\textwidth} -\begin{verbatim} -% Пакет для демонстрации. Tobias Oetiker. -\ProvidesPackage{demopack} -\newcommand{\tnss}{Не очень краткое введение в \LaTeXe} -\newcommand{\txsit}[1]{\emph{#1} краткое - введение в \LaTeXe} -\newenvironment{king}{\begin{quote}}{\end{quote}} -\end{verbatim} -\end{lined} -\caption{Пример пакета} \label{package} -\end{figure} - -Создание пакета в основном состоит из переноса содержимого вашей -преамбулы в отдельный файл с именем, заканчивающимся на -\texttt{.sty}. Есть только одна специальная команда, которую вы должны -использовать -\begin{lscommand} -\ci{ProvidesPackage}\verb|{|\emph{название пакета}\verb|}| -\end{lscommand} -\noindent в самом начале файла с вашим -пакетом. \verb|\ProvidesPackage| указывает \LaTeX{} название пакета, -что позволяет ему выдавать осмысленное сообщение об ошибке, когда вы -пытаетесь включать пакет дважды. Иллюстрация~\ref{package} показывает -маленький пример пакета, содержащего определенные в вышеприведенных -примерах команды. - - -\section{Шрифты и их размеры} - - -\subsection{Команды смены шрифта} - -\index{шрифт}\index{шрифт!размер} \LaTeX{} выбирает подходящее -начертание и размер шрифта, основываясь на логической структуре -документа (разделы, сноски,~\ldots). Иногда может быть желательно -сменить шрифт вручную. Для этого вы можете пользоваться командами, -перечисленными в таблицах~\ref{fonts} и~\ref{sizes}. Действительный -размер каждого шрифта определяется дизайном и зависит от класса и -опций документа. Таблица~\ref{tab:pointsizes} показывает абсолютные -размеры, соответствующие этим командам в стандартных классах -документов. - -% Эх, не перевести игру слов :( -%\begin{example} -%{\small The small and -%\textbf{bold} Romans ruled} -%{\Large all of great big -%\textit{Italy}.} -%\end{example} - -\begin{example} - {\small Маленький, - \textbf{полужирный}, - \Large большой, - \textit{курсив}.} -\end{example} - -Важная особенность \LaTeXe{} заключается в том, что атрибуты шрифта -независимы. Это значит, что вы можете давать команды смены размера или -даже семейства шрифта, сохраняя при этом установки атрибутов наклона -или насыщенности. - -В \emph{математическом режиме} вы можете использовать \emph{команды} -смены шрифта, чтобы временно выйти из \emph{математического режима} и -ввести нормальный текст. Если вы хотите переключиться на другой шрифт -для верстки математики, то для этого существует отдельный набор -команд. Смотрите таблицу~\ref{mathfonts}. - -\begin{table}[!bp] -\caption{Шрифты} \label{fonts} -\begin{lined}{12cm} -% -% Alan suggested not to tell about the other form of the command -% eg \verb|\sffamily| or \verb|\bfseries|. This seems a good thing to me. -% -\begin{tabular}{@{}rl@{\qquad}rl@{}} -\fni{textrm}\verb|{...}| & \textrm{\wi{прямой шрифт}}& -\fni{textsf}\verb|{...}| & \textsf{\wi{без засечек}}\\ -\fni{texttt}\verb|{...}| & \texttt{пишущая машинка}\\[6pt] -\fni{textmd}\verb|{...}| & \textmd{нормальный}& -\fni{textbf}\verb|{...}| & \textbf{\wi{полужирный}}\\[6pt] -\fni{textup}\verb|{...}| & \textup{\wi{прямой шрифт}}& -\fni{textit}\verb|{...}| & \textit{\wi{курсив}}\\ -\fni{textsl}\verb|{...}| & \textsl{\wi{наклонный шрифт}}& -\fni{textsc}\verb|{...}| & \textsc{\wi{капитель}}\\[6pt] -\ci{emph}\verb|{...}| & \emph{выделенный шрифт} & -\fni{textnormal}\verb|{...}| & \textnormal{обычный} -\end{tabular} - -\bigskip -\end{lined} -\end{table} - - -\begin{table}[!bp] -\index{шрифт!размер} -\caption{Размеры шрифта} \label{sizes} -\begin{lined}{12cm} -\begin{tabular}{@{}ll} -\fni{tiny} & \tiny крошечный \\ -\fni{scriptsize} & \scriptsize очень маленький\\ -\fni{footnotesize} & \footnotesize довольно маленький \\ -\fni{small} & \small маленький \\ -\fni{normalsize} & \normalsize нормальный \\ -\fni{large} & \large большой -\end{tabular}% -\qquad\begin{tabular}{ll@{}} -\fni{Large} & \Large еще больше \\[5pt] -\fni{LARGE} & \LARGE очень большой \\[5pt] -\fni{huge} & \huge огромный \\[5pt] -\fni{Huge} & \Huge громадный -\end{tabular} - -\bigskip -\end{lined} -\end{table} - -\begin{table}[!tbp] -\caption{Абсолютные размеры шрифтов в стандартных классах} -\label{tab:pointsizes} -\label{tab:sizes} -\begin{lined}{12cm} -\begin{tabular}{lrrr} -\multicolumn{1}{c}{\textit{Размер}} & -\multicolumn{1}{c}{\textit{10pt (по умолчанию)}} & - \multicolumn{1}{c}{\textit{опция 11pt}} & - \multicolumn{1}{c}{\textit{опция 12pt}}\\[6pt] -\verb|\tiny| & 5pt & 6pt & 6pt\\ -\verb|\scriptsize| & 7pt & 8pt & 8pt\\ -\verb|\footnotesize| & 8pt & 9pt & 10pt \\ -\verb|\small| & 9pt & 10pt & 11pt \\ -\verb|\normalsize| & 10pt & 11pt & 12pt \\ -\verb|\large| & 12pt & 12pt & 14pt \\ -\verb|\Large| & 14pt & 14pt & 17pt \\ -\verb|\LARGE| & 17pt & 17pt & 20pt\\ -\verb|\huge| & 20pt & 20pt & 25pt\\ -\verb|\Huge| & 25pt & 25pt & 25pt\\ -\end{tabular} - -\bigskip -\end{lined} -\end{table} - -\begin{table}[!bp] -\caption{Математические шрифты} \label{mathfonts} -\begin{lined}{\textwidth} -\begin{tabular}{@{}lll@{}} -\textit{Команда}&\textit{Пример}& \textit{Вывод}\\[6pt] -\fni{mathcal}\verb|{...}|& \verb|$\mathcal{B}=c$|& $\mathcal{B}=c$\\ -\fni{mathrm}\verb|{...}|& \verb|$\mathrm{K}_2$|& $\mathrm{K}_2$\\ -\fni{mathbf}\verb|{...}|& \verb|$\sum x=\mathbf{v}$|& $\sum x=\mathbf{v}$\\ -\fni{mathsf}\verb|{...}|& \verb|$\mathsf{G\times R}$|& $\mathsf{G\times R}$\\ -\fni{mathtt}\verb|{...}|& \verb|$\mathtt{L}(b,c)$|& $\mathtt{L}(b,c)$\\ -\fni{mathnormal}\verb|{...}|& \verb|$\mathnormal{R_{19}}\neq R_{19}$|& -$\mathnormal{R_{19}}\neq R_{19}$\\ -\fni{mathit}\verb|{...}|& \verb|$\mathit{ffi}\neq ffi$|& $\mathit{ffi}\neq ffi$ -\end{tabular} - -\bigskip -\end{lined} -\end{table} - -В связи с командами смены размера шрифта заметную роль играют -\wi{фигурные скобки}. Они используются для построения -\emph{групп}. Группы ограничивают область действия большинства команд -\LaTeX{}.\index{группирование} - -\begin{example} - Ему нравятся {\LARGE - большие и {\small - маленькие} буквы}. -\end{example} - -Команды, влияющие на размер шрифта, влияют также на расстояние между -строками, но только если соответствующий абзац заканчивается внутри -области действия команды. Поэтому закрывающая фигурная скобка \verb|}| -не должна стоять слишком рано. Заметьте положение команды \verb|\par| -в следующих двух примерах\footnote{\texttt{\bs{}par} эквивалентен - пустой строке.}: -\begin{example} -{\Large Не читайте это! Это -неправда. Верьте мне!\par} -\end{example} - -\begin{example} -{\Large Это тоже неправда. -Но помните, что я вру.}\par -\end{example} - -Если вы хотите применить команду изменения размера к целому абзацу -текста или больше того, то для этого лучше использовать синтаксис -окружения. - -\begin{example} - \begin{Large} - Это неправда. Но - что в наши дни\ldots - \end{Large} -\end{example} - -\noindent Это избавит вас от подсчета множества фигурных скобок. - - -\subsection{Опасность!} - -Как отмечено в начале этой главы, опасно усеивать ваши документы -явными командами, вроде только что описанных, потому что это -противоречит основной идее \LaTeX{}: разделению логической и -визуальной разметки вашего документа. Это значит, что, если вы -пользуетесь одними и теми же командами смены шрифта в разных местах -для верстки специального вида информации, вы должны использовать -\verb|\newcommand| и определить команду, <<оборачивающую>> в себя -команду смены шрифта. - -\begin{example} -% в преамбуле или пакете -\newcommand{\danger}[1]{\textbf{#1}} -% в документе -Не \danger{входите} в эту комнату. -Она занята \danger{машиной} -неизвестного назначения. -\end{example} - -Этот подход имеет то преимущество, что вы позже можете решить, что -хотите использовать другое визуальное представление -опасности,\trfootnote{danger} нежели -\verb|\textbf|, без необходимости пробираться через весь документ, -отыскивая все вхождения \verb|\textbf| и определяя, отмечает ли каждое -из них опасность или что-нибудь другое. - - -\subsection{Совет} - -Для завершения нашего путешествия в мир шрифтов и их размеров, -позвольте дать вам один совет: - -\begin{quote} - \underline{\textbf{Помните\Huge!}} \textit{Чем} - \textsf{Б\textbf{\LARGE О}\texttt{ЛЬ}\textsl{ШЕ}} шрифтов \Huge вы - \tiny используете \footnotesize \textbf{в} вашем \small - \texttt{документе}, \large \textit{тем} \normalsize легче - \textsc{его читать} и тем \textsl{\textsf{красивее}} он - б\large{}у\Large{}д\LARGE{}е\huge{}т\normalsize. -\end{quote} - - -\section{Интервалы} - - -\subsection{Интервалы между строками} - -\index{интервал!междустрочный} Если вам нужны б\'ольшие интервалы между -строками, то их значение можно изменить помещением в преамбулу команды -\begin{lscommand} -\ci{linespread}\verb|{|\emph{коэффициент}\verb|}| -\end{lscommand} -\noindent Для печати <<через полтора интервала>> пользуйтесь -\verb|\linespread{1.3}|, для печати <<через два интервала>>~--- -\verb|\linespread{1.6}|. По умолчанию этот коэффициент -равен~1.\index{интервал!двойной} - -Заметим, что эффект от команды \ci{linespread} довольно радикален, и -поэтому она не подходит для публикуемых работ. Поэтому, если у вас есть -весомые соображения для изменения межстрочного интервала, лучше пользуйтесь -следующей командой: - -\begin{lscommand} -\verb|\setlength{\baselineskip}{1.5\baselineskip}| -\end{lscommand} - -\begin{example} -{\setlength{\baselineskip}% - {1.5\baselineskip} -Этот абзац набран с интервалом в -1.5 раза больше предыдущего. Заметьте -команду \par{} в конце абзаца.\par} - -Ясно, зачем набрат этот абзац: он -показывает, что за закрывающейся -фигурной скобкой все вернулось к -нормальным установкам. -\end{example} - - -\subsection{Форматирование абзацев} -\label{parsp} - -Два параметра в \LaTeX{} влияют на верстку абзацев. Поместив в -преамбулу определения вида -\begin{code} -\ci{setlength}\verb|{|\ci{parindent}\verb|}{0pt}| \\ -\verb|\setlength{|\ci{parskip}\verb|}{1ex plus 0.5ex minus 0.2ex}| -\end{code} -вы измените внешний вид абзацев. Эти две строчки увеличивают -расстояние между абзацами и устанавливают абзацный отступ равным -нулю. - -Части \texttt{plus} и \texttt{minus} говорят \TeX{}, что он может -увеличивать и уменьшать интервал между абзацами на указанные величины, -если это необходимо для правильного размещения абзацев на странице. - -В Европе абзацы часто отделяют пробелами и не делают в них -отступа. Однако, имейте в виду, что это влияет также и на оглавление: -его строки тоже становятся теперь более разреженными. Чтобы этого -избежать, эти команды можно перенести из преамбулы документа -куда-нибудь после \verb|\tableofcontents|, или не использовать их -совсем, потому что в профессиональной книжной верстке используется -выделение абзацев красной строкой, а не пробелами. - -Если вы хотите сделать абзацный отступ в не имеющем его абзаце, то -вставьте в начало абзаца команду\footnote{Для добавления отступа к - первому абзацу после каждого заголовка раздела пользуйтесь пакетом - \pai{indentfirst} из комплекта `tools'.} -\begin{lscommand} -\ci{indent} -\end{lscommand} -\noindent Понятно, что эффект от нее будет только если -\verb|\parindent| не установлен равным нулю. - -Для создания абзаца без отступа первой командой абзаца можно сделать -\begin{lscommand} -\ci{noindent} -\end{lscommand} -\noindent Это может быть удобно, когда вы начинаете документ с текста, -а не с команды секционирования. - - -\subsection{Горизонтальные интервалы} - -\label{sec:hspace} -\LaTeX{} автоматически определяет пробелы между словами и -предложениями. Чтобы добавить горизонтальный -пробел\index{пробел!горизонтальный}, пользуйтесь -\begin{lscommand} -\ci{hspace}\verb|{|\emph{длина}\verb|}| -\end{lscommand} -Если такой интервал должен быть выдержан, даже если он приходится на -начало или конец строки, используйте \verb|\hspace*|, а не -\verb|\hspace|. В простейшем случае \emph{длина}~--- это просто число -и единица измерения. Наиболее важные единицы перечислены в -таблице~\ref{units}. \index{единицы}\index{длина} - -\begin{example} -Тут\hspace{1.5cm}пробел -в 1,5см. -\end{example} - -%\suppressfloats -\begin{table}[tbp] -\caption{Единицы размерности в \TeX{}} \label{units}\index{единицы} -\begin{lined}{9.5cm} -\begin{tabular}{@{}ll@{}} -\texttt{mm} & миллиметр $\approx 1/25$~дюйма \quad \demowidth{1mm} \\ -\texttt{cm} & сантиметр $=$ 10~mm \quad \demowidth{1cm} \\ -\texttt{in} & inch $=$ 25.4~mm \quad \demowidth{1in} \\ -\texttt{pt} & пункт $\approx 1/72$~дюйма $\approx \frac{1}{3}$~mm \quad\demowidth{1pt}\\ -\texttt{em} & примерная ширина буквы `M' текущего шрифта \quad \demowidth{1em}\\ -\texttt{ex} & примерная высота буквы `x' текущего шрифта \quad \demowidth{1ex} -\end{tabular} - -\bigskip -\end{lined} -\end{table} - -\label{cmd:stretch} -Команда -\begin{lscommand} -\ci{stretch}\verb|{|\emph{n}\verb|}| -\end{lscommand} -\noindent генерирует специальный <<резиновый>> пробел. Он -растягивается, заполняя все оставшееся места на строке. Если на одной -строке встречаются две команды -\verb|\hspace{\stretch{|\emph{n}\verb|}}|, то они растягиваются -пропорционально своим коэффициентам.\sloppypar - -\begin{example} -x\hspace{\stretch{1}} -x\hspace{\stretch{3}}x -\end{example} - -Пpи использовании гоpизонтальных интеpвалов вместе с текстом может -иметь смысл генеpиpовать интеpвал, pазмеp котоpого соотносится с -pазмеpом текущего шpифта. Этого можно добиться пpи помощи -относительных единиц pазмеpности \texttt{em} и \texttt{en}: - -\begin{example} -{\Large{}big\hspace{1em}y}\\ -{\tiny{}tin\hspace{1em}y} -\end{example} - - -\subsection{Вертикальные интервалы} - -Интервалы между абзацами, разделами, подразделами,~\ldots\ -определяются \LaTeX{} автоматически. При необходимости дополнительный -пробел \emph{между двумя абзацами} можно добавить командой -\begin{lscommand} -\ci{vspace}\verb|{|\emph{длина}\verb|}| -\end{lscommand} - -Обычно эта команда вставляется между двумя пустыми строчками. Если это -пространство должно сохраняться вверху или внизу страницы, используйте -вариант команды со звездочкой: \verb|\vspace*|.\index{пробел!вертикальный} - -Команду \verb|\stretch| вместе с \verb|\pagebreak| можно применять для -верстки текста на последней строке страницы или для вертикального -центрирования текста на странице. -\begin{code} -\begin{verbatim} -Некий текст\ldots - -\vspace{\stretch{1}} -А это окажется на последней строке страницы.\pagebreak -\end{verbatim} -\end{code} - -Дополнительный пробел между двумя строками \emph{одного} абзаца или -внутри таблицы указывается командой -\begin{lscommand} -\ci{\bs}\verb|[|\emph{длина}\verb|]| -\end{lscommand} - -При помощи \ci{bigskip} и \ci{smallskip} вы можете пропустить заранее -определенные вертикальные интервалы, не задумываясь о конкретных -числах. - -\section{Компоновка страницы} - -\begin{figure}[!hp] -\begin{center} -\makeatletter\@layout\makeatother -\end{center} -\vspace*{1.8cm} -\caption{Параметры компоновки страницы} -\label{fig:layout} -\end{figure} - -\index{компоновка страницы} -\LaTeXe{} позволяет указать \wi{размер бумаги} в команде -\verb|\documentclass|. Затем он автоматически выбирает правое -\wi{поле}. Но иногда предопределенные значения могут вас не -устроить. Безусловно, вы их можете изменить. -%no idea why this is needed here ... -\thispagestyle{fancyplain} Иллюстрация~\ref{fig:layout} показывает все -параметры, которые можно изменить. Она была сгенерирована пакетом -\pai{layout} из комплекта -`tools'.\footnote{\texttt{\CTAN|macros/latex/required/tools|}} - -\textbf{ПОДОЖДИТЕ!} \ldots прежде, чем немедленно броситься делать эту -слишком узкую страницу слегка пошире, потратьте несколько секунд на -размышления. Подобно другим вещам, выбор компоновки страницы в -\LaTeX{} весьма продуман. - -Безусловно, если сравнить со страницей, выданной свежеустановленным MS -Word, то страницы \LaTeX{} выглядят ужасно узкими. Однако, взгляните -на вашу любимую книгу\footnote{Имея в виду настоящую печатную книгу, - выпущенную уважаемым издательством.} и посчитайте количество букв на -одной строчке. Вы обнаружите, что на каждой строчке не больше 66 -букв. Теперь повторите это со страницей \LaTeX{}. Вы увидите, что и -здесь тоже около 66 букв в строке. Опыт показывает, что при большем -количестве букв чтение затрудняется, потому, что глазам становится -труднее переходить от конца одной строки к началу следующей. Именно -поэтому газеты часто верстаются в несколько колонок. - -Так что, увеличивая ширину вашего текста, имейте в виду, что вы -затрудняете жизнь его читателям. Однако, достаточно предупреждений, -вам был обещан рассказ о том, как же это сделать\ldots - -\LaTeX{} предоставляет две команды для изменения этих параметров. Их -обычно используют в преамбуле документа. - -Первая команда присваивает фиксированное значение любому параметру: -\begin{lscommand} -\ci{setlength}\verb|{|\emph{параметр}\verb|}{|\emph{длина}\verb|}| -\end{lscommand} - -Вторая команда прибавляет длину к любому параметру: -\begin{lscommand} -\ci{addtolength}\verb|{|\emph{параметр}\verb|}{|\emph{длина}\verb|}| -\end{lscommand} - -Она даже более полезна, чем \ci{setlength}, потому что позволяет вам -делать настройку относительно существующих установок. Чтобы добавить -сантиметр к общей ширине текста, например, в преамбулу нужно поместить -следующее: -\begin{code} -\verb|\addtolength{\hoffset}{-0.5cm}|\\ -\verb|\addtolength{\textwidth}{1cm}| -\end{code} - -Здесь вам может быть интересен пакет \pai{calc}, который позволяет -использовать арифметические операции в аргументе \verb|\setlength| и в -других местах, где аргументами являются численные значения. - - -\section{Еще о длинах} - -Всегда, когда это возможно, избегайте использовать в документах -абсолютных величин. Лучше основывайтесь на ширине или высоте других -элементов страницы. Для ширины иллюстрации этим может служить -\verb|\textwidth|, чтобы она заполняла страницу целиком. - -Следующие три команды позволяют определить ширину, высоту и глубину -текстовой строки. - -\begin{lscommand} -\ci{settoheight}\verb|{|\emph{пеpеменная}\verb|}{|\emph{текст}\verb|}|\\ -\ci{settodepth}\verb|{|\emph{пеpеменная}\verb|}{|\emph{текст}\verb|}|\\ -\ci{settowidth}\verb|{|\emph{пеpеменная}\verb|}{|\emph{текст}\verb|}| -\end{lscommand} - -\noindent Нижеследующий пример показывает возможное применение этих -команд. - -\begin{example} -\flushleft -\newenvironment{vardesc}[1]{% - \settowidth{\parindent}{#1:\ } - \makebox[0pt][r]{#1:\ }}{} - -\begin{displaymath} -a^2+b^2=c^2 -\end{displaymath} - -\begin{vardesc}{Где}$a$, -$b$ -- прилегают к прямому углу -прямоугольного треугольника. - -$c$ -- одинокая гипотенуза -этого треугольника. - -$d$ -- вообще тут не участвует. -Вот загадка\ldots -\end{vardesc} -\end{example} - - -\section{Блоки} - -\LaTeX{} выстраивает страницы, передвигая блоки. Сначала каждая буква -является маленьким блоком, который приклеивается к другим буквам, -формируя слово. Слова склеиваются с другими словами, но специальным -эластичным клеем, который может растягиваться или сжиматься, так, -чтобы в точности заполнить строку. - -Надо признать, что это довольно упрощенная версия того, что происходит -на самом деле, но идея в том, что \TeX{} всегда работает с блоками и -клеем. Не только буква может быть блоком. Вы можете поместить в блок -практически все, что угодно, не исключая и другие блоки. Каждый блок -затем обрабатывается \LaTeX{}, как если бы это была отдельная буква. - -В предыдущих главах вы уже встречали некоторые блоки, хотя об этом и -не говорилось. Примерами могут быть окружение \ei{tabular} или -\ci{includegraphics}, оба производящие блок. Это значит, что вы легко -можете сверстать рядом две таблицы или иллюстрации. Только убедитесь, -что их общая ширина не превышает \verb|\textwidth|. - -Вы также можете упаковать любой абзац в блок или командой - -\begin{lscommand} -\ci{parbox}\verb|[|\emph{поз}\verb|]{|\emph{ширина}\verb|}{|\emph{текст}\verb|}| -\end{lscommand} - -\noindent или окружением - -\begin{lscommand} -\verb|\begin{|\ei{minipage}\verb|}[|\emph{поз}\verb|]{|\emph{ширина}\verb|}| текст -\verb|\end{|\ei{minipage}\verb|}| -\end{lscommand} - -Параметр \emph{поз} может принимать одну из букв \texttt{c, t} или -\texttt{b}, контролируя вертикальное выравнивание блока по отношению к -базовой линии окружающего текста. \emph{Ширина} принимает аргументом -длину, определяющую ширину блока. Основное отличие между \ci{minipage} -и \ci{parbox}~--- в том, что внутри \ci{parbox} можно использовать не -все команды и окружения, тогда как внутри \ci{minipage} можно -практически все. - -В то время, как \ci{parbox} упаковывает целый абзац, разбивая строчки -и прочее, существует класс блоковых команд, работающих только на -горизонтально расположенном материале. Одну из них мы уже знаем. Она -называется \ci{mbox} и просто упаковывает последовательность блоков, -что можно использовать для предотвращения переноса \LaTeX{} двух -слов. Так как вы можете помещать одни блоки в другие, эти упаковщики -горизонтальных блоков чрезвычайно гибки. - -\begin{lscommand} -\ci{makebox}\verb|[|\emph{ширина}\verb|][|\emph{поз}\verb|]{|\emph{текст}\verb|}| -\end{lscommand} - -\noindent \emph{Ширина} определяет ширину результирующего блока так, -как его видно снаружи.\footnote{Это означает, что она может быть - меньше, чем материал внутри блока. В предельном случае вы можете - даже установить ее в 0pt, так что текст внутри блока верстается, - вообще не оказывая влияния на окружающие блоки.} Кроме выражений -длины, вы тут можете использовать \ci{width}, \ci{height}, \ci{depth} -и \ci{totalheight}. Они устанавливаются равными значениям, полученным -измерением параметров \emph{текста}.\trfootnote{Ширина, высота, глубина - и общая высота (высота плюс глубина) текста, - соответственно.} Параметр \emph{поз} -принимает однобуквенное значение: \textbf{c}: центрировать, -\textbf{l}: отжать влево, \textbf{r}: отжать вправо или \textbf{s}: -равномерно заполнить блок текстом. - -Команда \ci{framebox} работает в точности так же, как \ci{makebox}, но -рисует рамку вокруг текста. - -Следующий пример показывает некоторые возможности использования команд -\ci{makebox} и \ci{framebox}. - -\begin{example} -\makebox[\textwidth]{% - ц е н т р}\par -\makebox[\textwidth][s]{% - р а с т я н у т ы й}\par -\framebox[1.1\width]{Я теперь - в рамке!} \par -\framebox[0.8\width][r]{Ой, - я слишком толстый} \par -\framebox[1cm][l]{ничего, - я тоже} -Можете это прочитать? -\end{example} - -Теперь, когда мы управляем горизонталью, очевидный следующий шаг~--- -вертикаль. Никаких проблем. Команда - -\begin{lscommand} -\ci{raisebox}\verb|{|\emph{сдвиг}\verb|}[|\emph{глубина}\verb|][|\emph{высота}\verb|]{|\emph{текст}\verb|}| -\end{lscommand} - -\noindent позволяет вам определить вертикальные характеристики -блока. В первых трех параметров можно использовать \ci{width}, -\ci{height}, \ci{depth} и \ci{totalwidth}, чтобы получить размеры -аргумента \emph{текст}. - -\begin{example} -\raisebox{0pt}[0pt][0pt]{\Large% -\textbf{Aaaa\raisebox{-0.3ex}{a}% -\raisebox{-0.7ex}{aa}% -\raisebox{-1.2ex}{a}% -\raisebox{-2.2ex}{a}% -\raisebox{-4.5ex}{a}}} -кричал он, но даже стоящий рядом -не заметил, что с ним случилось -что-то ужасное. -\end{example} - - -\section{Линейки и распорки} -\label{sec:rule} - -Несколько страниц назад вы могли отметить команду - -\begin{lscommand} -\ci{rule}\verb|[|\emph{сдвиг}\verb|]{|\emph{ширина}\verb|}{|\emph{высота}\verb|}| -\end{lscommand} - -\noindent При обычном использовании она генерирует простой черный -блок. - -\newpage -\begin{example} -\rule{3mm}{.1pt}% -\rule[-1mm]{5mm}{1cm}% -\rule{3mm}{.1pt}% -\rule[1mm]{1cm}{5mm}% -\rule{3mm}{.1pt} -\end{example} - -\noindent Это можно использовать для рисования вертикальных и -горизонтальных линий. Например, линия на титульном листе нарисована -командой \ci{rule}. - -Специальным случаем является линейка, у которой нет ширины, но есть -определенная высота. В профессиональной верстке ее называют -\emph{распоркой}\index{распорка}. Ее используют, чтобы обеспечить -определенную минимальную высоту элемента страницы. Вы можете -использовать ее, чтобы сделать строку окружения \texttt{tabular} -имеющей определенную минимальную высоту. - -\begin{example} -\begin{tabular}{|c|} -\hline -\rule{0pt}{4ex}Pitprop \ldots\\ -\hline -\rule{0pt}{4ex}Strut\\ -\hline -\end{tabular} -\end{example} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "lshort2e" -%%% End: - -\bigskip -{\flushright Конец.\par} - -% |