diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/lshort-russian/src/typeset.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/lshort-russian/src/typeset.tex | 1635 |
1 files changed, 0 insertions, 1635 deletions
diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/typeset.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/typeset.tex deleted file mode 100644 index 635c516c728..00000000000 --- a/Master/texmf-dist/doc/latex/lshort-russian/src/typeset.tex +++ /dev/null @@ -1,1635 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Contents: Typesetting Part of LaTeX2e Introduction -% $Id: typeset.tex,v 1.3 1998/03/26 15:36:54 oetiker Exp oetiker $ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chapter{Верстка текста} - -\begin{intro} -После прочтения предыдущей главы вы должны представлять, из чего -состоит документ \LaTeX{}. Вторая глава заполняет эту структуру всем -необходимым для производства реальных материалов. -\end{intro} - -\section{Структура текста и языка} -\secby{Hanspeter Schmid}{hanspi@schmid-werren.ch} - -Основная цель написания текста~--- передать читателю идеи, информацию -или знания. Читатель лучше поймет текст, если эти идеи -структурированы, и намного лучше увидит и почувствует эту структуру, -если типографская форма отражает логическую и смысловую структуру -содержания. - -\LaTeX{} отличается от других систем верстки в том, что вам нужно лишь -задавать ему логическую и смысловую структуру текста. Он затем -выбирает типографскую форму текста в соответствии с <<правилами>>, -заданными в файле класса документа и в различных стилевых файлах. - -Самый важный элемент текста в \LaTeX{} (и в наборе вообще)~--- -абзац. Он называется <<элементом текста>>, потому что абзац является -той типографской формой, в которую облекается одна связная мысль или -идея. В следующих разделах вы узнаете, как вы можете вызвать перевод -строки, например, при помощи \texttt{\bs\bs} и начало абзаца, -например, оставив пустую строку. Поэтому, если начинается новая мысль, -должен начинаться новый абзац, а, если нет,~--- используйте переводы -строки. Если вы сомневаетесь в вашем разбиении на абзацы, подумайте о -вашем тексте как о носителе идей и мыслей. Если вы начали новый абзац, -продолжая изложение той же мысли,~--- убирайте начало нового -абзаца. Если на протяжении абзаца начинается совершенно новая -мысль~--- разбивайте его на два. - -Большинство людей совершенно не понимает важности разумного разбиения -текста на абзацы. Многие не задумываются о значении разрыва абзацев -или, особенно в \LaTeX{}, начинают абзацы, не зная этого. Последнюю -ошибку особенно легко сделать, когда в текст включаются -уравнения. Посмотрите на следующие примеры и разберитесь, почему -иногда в них используются пустые строчки (разрывы параграфов), а -иногда~--- нет. (Если вы еще не понимаете всех команд достаточно, -чтобы понять примеры, прочтите, пожалуйста, эту и следующую главы и -затем вернитесь к примерам снова.) - -% Example 1 -\begin{example} -\ldots когда Эйнштейн -ввел свою формулу -\begin{equation} - e = m \cdot c^2 \; , -\end{equation} -которая является самой -широко известной и самой -мало понятной физической -формулой. -\end{example} - -% Example 2 -\begin{example} -\ldots откуда следует -закон тока Кирхгофа: -\begin{equation} - \sum_{k=1}^{n} I_k = 0 \; . -\end{equation} - -Закон напряжения Кирхгофа -может быть выведен \ldots -\end{example} - -% Example 3 -\begin{example} -\ldots который имеет -несколько преимуществ. - -\begin{equation} - I_D = I_F - I_R -\end{equation} -является ядром совершенно -другой модели транзистора. -\ldots -\end{example} - -Следующая, более маленькая, единица текста~--- предложение. В -английском тексте после точки, завершающей предложение, ставится -б\'ольший пробел, чем после точки, стоящей после сокращения. \LaTeX{} -старается определить, какую из них вы имели в виду. Если он ошибается, -вы должны ему подсказать. Это объяснено далее в этой главе. - -Структура текста охватывает даже отдельные части -предложений. Большинство языков использует очень сложные правила -пунктуации, но во многих языках (включая немецкий и английский) вы -расставите почти все запятые на места, просто помня, что они означают: -короткую остановку в потоке изложения. Если вы не уверены в своих -запятых, прочтите предложение вслух, останавливаясь на каждой -запятой. Если где-то это прозвучит странно, уберите эту запятую, если -вы почувствуете необходимость остановки в другом месте, вставьте -запятую.\trfootnote{Все это мало применимо для русского, но я решил не - выбрасывать этих абзацев из перевода, вдруг они кому-нибудь помогут писать - по-английски.} - -Наконец, абзацы текста должны быть также логично структурированы на -более высоком уровне, объединяясь в главы, разделы, и так -далее. Однако, типографский эффект записи, например, -\verb|\section{|\texttt{Структура текста и языка}\verb|}| -обычно достаточно очевиден, чтобы было сразу ясно, как использовать -эти высокоуровневые структуры. - -\section{Разбиение на строки и страницы} - -\subsection{Выровненные абзацы} - -Книги часто верстаются так, чтобы все строчки имели одинаковую длину. -\LaTeX{} вставляет необходимые разрывы строк\index{разрывы строк} и -пробелы между словами, оптимизируя форматирование абзаца как целого. -При необходимости он также переносит слова, которые не помещаются на -строке. От класса документа зависит то, как верстаются абзацы. Обычно -каждый абзац начинается с красной строки, а дополнительного интервала -между ними нет. Подробности смотрите в разделе~\ref{parsp}. - -В некоторых случаях может быть необходимо указать \LaTeX{} разорвать -строку: -\begin{lscommand} -\ci{\bs} или \ci{newline} -\end{lscommand} -\noindent начинают новую строку, не начиная нового абзаца. - -\begin{lscommand} -\ci{\bs*} -\end{lscommand} -\noindent запрещает, кроме того, разрыв страницы после вставленного -разрыва строки. - -\begin{lscommand} -\ci{newpage} -\end{lscommand} -\noindent начинает новую страницу. - -\begin{lscommand} -\ci{linebreak}\verb|[|\emph{n}\verb|]|, -\ci{nolinebreak}\verb|[|\emph{n}\verb|]|, -\ci{pagebreak}\verb|[|\emph{n}\verb|]| и -\ci{nopagebreak}\verb|[|\emph{n}\verb|]| -\end{lscommand} -\noindent разрывают строку, запрещают разрыв строки, разрывают -страницу и запрещают разрыв страницы, соответственно. Необязательный -аргумент \emph{n} позволяет автору влиять на их действие. Он может -быть равен числу от нуля до четырех. Устанавливая \emph{n} в значение, -меньшее~4, вы оставляете \LaTeX{} возможность игнорировать вашу -команду, если результат будет очень плох. Не путайте эти команды -<<разрыва (break)>> с командами <<начала (new)>>. Даже если вы -зададите команду <<разрыва>>, \LaTeX{} попытается выровнять правую -границу страницы и общую высоту страницы, как описано в следующей -секции. Если вы действительно хотите начать <<новую строчку>>, -используйте соответствующую команду. - -\LaTeX{} всегда пытается производить наилучшее из возможных разбиений -строк. Если он не может найти способ разбить строки в соответствии со -своими стандартами, он позволяет одной строке выступать из абзаца -вправо. \LaTeX{} затем выводит диагностику (<<\wi{overfull hbox}>>) во -время обработки входного файла. Чаще всего это случается, когда -\LaTeX{} не может найти место для переноса слова.\footnote{Хотя - \LaTeX{} и дает вам предупреждение, такие строки не всегда легко - найти. Если вы в команде \ci{documentclass} используете опцию - \texttt{draft}, такие строки будут отмечены толстой черной линией на - правых полях.} Давая команду \ci{sloppy}, вы можете сказать, чтобы -\LaTeX{} несколько ослабил свои стандарты. Тогда он сможет -предотвратить такие слишком длинные строки, увеличивая интервалы между -словами~--- даже если конечный вывод будет не оптимален. В этом случае -пользователь получит предупреждение (<<\wi{underfull hbox}>>). В -большинстве случаев результат выглядит не очень хорошо. Команда -\ci{fussy} действует в обратную сторону. - - -\subsection{Переносы} \label{hyph} - -\LaTeX{} переносит слова, когда это необходимо. Если алгоритм -переносов не находит правильных точек переноса, вы можете исправить -положение, сказав \TeX{} об исключении при помощи следующих команд. - -Команда -\begin{lscommand} -\ci{hyphenation}\verb|{|\emph{список слов}\verb|}| -\end{lscommand} -\noindent вызывает перенос слов, перечисленных в ее аргументе, только -в местах, отмеченных <<\verb|-|>>. Эта команда должна даваться в -преамбуле входного файла, и должна содержать только слова, состоящие -из обычных букв. Правила переноса запоминаются для языка, активного в -момент обратки команды \ci{hyphenation}. Это значит, что, если вы -поместите ее в преамбулу документа, она будет влиять на английские -переносы. Если вы поместите ее после команды \verb|\begin{document}|, - используя при этом поддержку национальных языков, например, - \pai{babel}, то переносы будут запомнены для языка, - активизированного при помощи \pai{babel}. - - Следующий пример разрешает переносы в слове <<hyphenation>>, так же, - как и в слове <<Hyphenation>>, и запрещает переносы в словах - <<FORTRAN>>, <<Fortran>> и <<fortran>>. В аргументе не допускаются - специальные символы. - -Пример: -\begin{code} -\verb|\hyphenation{FORTRAN Hy-phen-a-tion}| -\end{code} - -Команда \ci{-} вставляет в слово выборочный перенос. Он также -становится единственной разрешенной точкой переноса в этом слове. Эта -команда в особенности полезна для слов, содержащих специальные символы -(например, символы с акцентами), потому что \LaTeX{} не переносит -такие слова автоматически. -%\footnote{Unless you are using the new -%\wi{DC fonts}.} - -\begin{example} -I think this is: su\-per\-cal\-% -i\-frag\-i\-lis\-tic\-ex\-pi\-% -al\-i\-do\-cious -\end{example} - -Несколько слов можно удержать вместе на одной строке командой -\begin{lscommand} -\ci{mbox}\verb|{|\emph{текст}\verb|}| -\end{lscommand} -\noindent Она будет в любом случае сохранять свой аргумент вместе. - -\begin{example} -Номер моего телефона скоро сменится. -Он будет \mbox{0116 291 2319}. - -Параметр -\mbox{\emph{имя файла}} должен -содержать имя файла. -\end{example} - -Команда~\ci{fbox} аналогична команде \ci{mbox}, но вокруг ее -содержимого будет нарисована видимая рамка. - -\section{Специальные строки} - -В некоторых предыдущих примерах вы уже встречали простые команды -\LaTeX{} для набора специальных текстовых строк: - -\vspace{2ex} - -\noindent -\begin{tabular}{@{}lll@{}} -Команда & Пример & Описание\\ -\hline -\ci{today} & \today & Текущая дата на текущем языке\\ -\ci{TeX} & \TeX & Название вашей любимой системы верстки\\ -\ci{LaTeX} & \LaTeX & Название \LaTeX \\ -\ci{LaTeXe} & \LaTeXe & Текущая инкарнация \LaTeX\\ -\end{tabular} - - -\section{Специальные буквы и символы} - -\subsection{Знаки кавычек} - -Для набора кавычек\index{кавычки} вы \emph{не должны} использовать -знак~\verb|"|\index{""@\texttt{""}}, как на пишущей машинке. При -верстке существуют специальные знаки открывающей и закрывающей -кавычек. В \LaTeX{} используйте два знака~\verb|`| в качестве -открывающей кавычки и два знака~\verb|'| в качестве -закрывающей.\trfootnote{При верстке обычно требуются две пары кавычек, - на случай <<\glqq кавычек\grqq{} в кавычках>>. При верстке на - русском языке обычно вместо ``таких'' и `таких' кавычек используют - <<эти>> и \glqq эти\grqq. Какими командами они задаются~--- зависит - от используемой русификации, но обычно это \ci{flqq}, \ci{frqq} - (вместо этой пары часто используют лигатуры \texttt{<{}<} и - \texttt{>{}>}\index{<<}\index{>>}) и \ci{glqq}, \ci{grqq}.} - -\begin{example} -``Пожалуйста, нажмите клавишу `x' '' -\end{example} - -\subsection{Тире и дефисы} - -\LaTeX{} знает про четыре вида \wi{тире}. Три из них вы можете -получить различным числом последовательных знаков~\verb|-|. Четвертое -на самом деле не тире вовсе, а математический знак минус: - -\index{-} \index{--} \index{---} \index{-@$-$} -\index{математический!минус} - -\begin{example} -мальчик-с-пальчик, X-лучи\\ -страницы 13--67\\ -да~--- или нет?\\ -$0$, $1$ и $-1$ -\end{example} - -Эти тире называются так: \texttt{-} \wi{дефис}, \texttt{-{}-} -\wi{короткое тире}, \texttt{-{}-{}-} \wi{длинное тире} и \verb|$-$| -\wi{знак минуса}.\index{тире!короткое}\index{тире!длинное} - - -\subsection{Тильда ($\sim$)} -\index{www}\index{URL}\index{тильда} - -Тильда часто встречается в WWW-адресах. Для генерации ее в \LaTeX{} -можно использоват \verb|\~|, но результат (\~) будет не тем, что вам -нужен. Взамен попробуйте вот что: - -\begin{example} -http://www.rich.edu/\~{}bush \\ -http://www.clever.edu/$\sim$demo -\end{example} - - -\subsection{Знак градуса ($\circ$)} - -Как напечатать \wi{знак градуса} в \LaTeX{}? - -\begin{example} -Температура уже -$-30\,^{\circ}\mathrm{C}$. -Скоро наступит сверхпроводимость. -\end{example} - -%\subsection{Символ Евро \texorpdfstring{(\EUR)}{}} -\subsection{Символ Евро \texorpdfstring{(\texteuro)}{}} -В наше время, говоря о валюте, вам понадобится символ -евровалюты. Многие современные шрифты содержат символ Евро. После -загрузки пакета \pai{textcomp} в преамбуле документа -\begin{lscommand} -\ci{usepackage}\verb|{textcomp}| -\end{lscommand} -\noindent вы можете пользоваться командой -\begin{lscommand} -\ci{texteuro} -\end{lscommand} -\noindent для доступа к этому символу. - -Если ваш шрифт не имеет собственного символа Евро, или вам не -нравится, как он выглядит, у вас есть еще два выхода. - -Первый~--- использование пакета \pai{eurosym}. Он предоставляет -официальный символ Евро: -\begin{lscommand} -\ci{usepackage}\verb|[|\emph{official}\verb|]{eurosym}| -\end{lscommand} - -Если вы предпочитаете официальному символ Евро, соответствующий вашему -шрифту, вместо опции \texttt{official} используйте опцию \texttt{gen}. - -Пакет \pai{marvosym} включает множество разных символов, в том числе и -Евро, доступный таким образом: -\begin{lscommand} -\ci{EUR} -\end{lscommand} - -\begin{example} -Символы \texteuro{}, -\euro{} и \EUR{} все -выглядят по-разному. -\end{example} - -\subsection{Многоточие ( \ldots )} - -На пишущей машинке \wi{точка} или \wi{запятая} занимают то же -пространство, что и любая другая буква. Напечатанные в книге, эти -символы занимают очень мало места и верстаются очень близко к -предшествующей букве. Поэтому вы не можете ввести \wi{многоточие} -просто напечатав три точки, так как расстояние между ними будет -неправильным. Кроме того, для многоточия есть специальная команда, -называющаяся - -\begin{lscommand} -\ci{ldots} -\end{lscommand} -\index{...@\ldots} - -\begin{example} -Не так ... а вот так:\\ -Нью-Йорк, Токио, Будапешт, \ldots -\end{example} - -\subsection{Лигатуры} - -Некоторые комбинации букв верстаются не просто набором разных букв -друг за другом, а с использованием специальных -символов.\trfootnote{Лигатуры широко используются при верстке текстов на - английском языке. Насколько мне известно, при верстке на русском - языке лигатур не используется. Однако, механизм лигатур \TeX{} - используется для генерации, например, кавычек и тире.} -\begin{code} -{\large ff fi fl ffi\ldots}\quad -вместо\quad {\large f{}f f{}i f{}l f{}f{}i \ldots} -\end{code} -Эти так называемые \index{лигатура}лигатуры могут быть запрещены -вставкой \ci{mbox}\verb|{}| между двумя соответствующими буквами. Это -может быть необходимо для слов, образованных из двух частей. -\begin{example} - \Large Не ``shelfful''\\ - а ``shelf\mbox{}ful'' -\end{example} - -\subsection{Акценты и специальные символы} - -\LaTeX{} поддерживает использование \index{акценты}акцентов и -специальных символов\index{специальные символы} из многих языков. -Таблица~\ref{accents} показывает всевозможные акценты в применении к -букве о. Понятно, что ее месте могут быть и другие буквы. - -Чтобы поместить знак акцента над буквами i или j, точки над ними -должны быть удалены. Это достигается набором \verb|\i| и \verb|\j|. -\begin{example} - H\^otel, na\"\i ve, \'el\`eve,\\ - sm\o rrebr\o d, !`Se\~norita!,\\ - Sch\"onbrunner Schlo\ss{} - Stra\ss e -\end{example} - -\begin{table}[!hbp] -\caption{Акценты и специальные символы} \label{accents} -\begin{lined}{10cm} -\begin{tabular}{*4{cl}} -\A{\`o} & \A{\'o} & \A{\^o} & \A{\~o} \\ -\A{\=o} & \A{\.o} & \A{\"o} & \B{\c}{c}\\[6pt] -\B{\u}{o} & \B{\v}{o} & \B{\H}{o} & \B{\c}{o} \\ -\B{\d}{o} & \B{\b}{o} & \B{\t}{oo} \\[6pt] -\A{\oe} & \A{\OE} & \A{\ae} & \A{\AE} \\ -\A{\aa} & \A{\AA} \\[6pt] -\A{\o} & \A{\O} & \A{\l} & \A{\L} \\ -\A{\i} & \cm{\j} & \verb|\j| & \cm{!`} & \verb|!`| & \cm{?`} & \verb|?`| -\end{tabular} -\index{i и j без точек@\cm{\i} и \cm{\j} без точек}\index{буквы!европейские} -\index{ae@\ae}\index{акценты!umlaut}\index{акценты!grave}\index{акценты!acute} -\index{oe@\oe} - -\bigskip -\end{lined} -\end{table} - -\section{Поддержка иностранных языков} -\index{другие языки}Если вам нужно писать документы на отличных от -английского языках, то \LaTeX{} должен быть соответствующим образом -сконфигурирован в двух пунктах: - -\begin{enumerate} -\item Все генерируемые автоматически текстовые - строки\footnote{Содержание, Список иллюстраций, Библиография \ldots} - должны быть переведены на другой язык. Для многих языков эти - изменения достигаются использованием пакета \pai{babel} (автор - Johannes Braams). - -\item \LaTeX{} должен знать \wi{правила переноса} для нового - языка. Подключение правил переноса к \LaTeX{} более сложно. Оно - включает перестроение форматного файла с другими разрешенными - образцами переноса. Ваш \guide{} должен содержать больше информации - об этом. - -\item Специфичные для языка типографские правила. Скажем, для - французского перед каждым символом двоеточия (:) должен стоять - пробел. -\end{enumerate} - -Если ваша система уже соответствующим образом сконфигурирована, вы -можете активизировать пакет \pai{babel} добавлением команды -\begin{lscommand} -\ci{usepackage}\verb|[|\emph{язык}\verb|]{babel}| -\end{lscommand} -\noindent после команды \verb|\documentclass|. Какие \emph{язык}и -поддерживает ваша система, также может быть указано в \guide{}. -\texttt{Babel} автоматически активизирует правильные правила переноса -для выбираемых вами языков. Если форматный файл вашего \LaTeX{} не -поддерживает переносов для выбранного языка, \texttt{babel} будет -работать, но запретит переносы, что негативно скажется на внешнем виде -документа. - -Для некоторых языков \pai{babel} вводит новые команды, упрощающие ввод -специальных символов. Например, \wi{немецкий язык} содержит множество -диакритических знаков (\"a\"o\"u). С использованием \pai{babel} вы -можете вводить \"o, печатая \verb|"o| вместо~\verb|\"o|. - -Если вы вызываете \pai{babel}, указывая несколько языков, -\begin{lscommand} -\ci{usepackage}\verb|[|\emph{язык1}\verb|,|\emph{язык2}\verb|]{babel}| -\end{lscommand} - -\noindent то для выбора текущего языка используйте команду - -\begin{lscommand} -\ci{selectlanguage}\verb|{|\emph{язык1}\verb|}| -\end{lscommand} - -%Input Encoding -\newcommand{\ieih}[1]{% -\index{кодировка!входная!#1@\texttt{#1}}% -\index{входная кодировка!#1@\texttt{#1}}% -\index{#1@\texttt{#1}}} -\newcommand{\iei}[1]{% -\ieih{#1}\texttt{#1}} -%Font Encoding -\newcommand{\feih}[1]{% -\index{кодировка!шрифта!#1@\texttt{#1}}% -\index{кодировка шрифта!#1@\texttt{#1}}% -\index{#1@\texttt{#1}}} -\newcommand{\fei}[1]{% -\feih{#1}\texttt{#1}} - -Большинство современных компьютерных систем позволяет вам вводить специальные -символы прямо с клавиатуры. \LaTeX{} может обрабатывать такие -символы при помощи пакета \pai{inputenc}: - -\begin{lscommand} -\ci{usepackage}\verb|[|\emph{кодировка}\verb|]{inputenc}| -\end{lscommand} - -При использовании этого пакета вы должны понимать, что другие могут -неправильно видеть ваши входные файлы на своем компьютере из-за -использования другой кодировки. Например, немецкий акцент \"a в -системе IBM~OS/2 кодируется как 132, а на некоторых Unix системах, -использующих кодировку ISO-LATIN~1,~--- как 228. Поэтому используйте -эту возможность с осторожностью. В зависимости от вашей системы, могут -использоваться, например, следующие кодировки: - -\begin{center} -\begin{tabular}{l | r} -Операционная система & Кодировка\\ -\hline -Mac & \texttt{applemac} \\ -Unix & \texttt{latin1} \\ -Windows & \texttt{ansinew} \\ -DOS, OS/2 & \texttt{cp850} -\end{tabular} -\end{center} - -Если вы пишете многоязычный документ с конфликтующими входными -кодировками, можно переключиться на Unicode при помощи пакета -\pai{ucs}: -\begin{lscommand} -\ci{usepackage}\verb|{ucs}|\\ -\ci{usepackage}\verb|[|\iei{utf8}\verb|]{inputenc}| -\end{lscommand} -Это позволит вам генерировать файлы \LaTeX{} в \iei{utf8}, -многобайтовой кодировке, где каждый символ кодируют от одного до -четырех байт. - -Иной случай~--- с кодировкой шрифта. Она определяет, в какой позиции в -пределах шрифта \TeX{} находится каждая буква. Множество входных -кодировок можно отобразить на одну кодировку шрифта, что уменьшает -число необходимых наборов шрифтов. Кодировки шрифтов обрабатываются -пакетом \pai{fontent}:\label{fontenc} -\begin{lscommand} -\ci{usepackage}\verb|[|\emph{кодировка}\verb|]{fontenc}| -\index{кодировка шрифта} -\end{lscommand} -\noindent где \emph{кодировка}~--- требуемая кодировка шрифта. Можно -одновременно загружать несколько кодировок. - -Кодировка \LaTeX{} по умолчанию~--- \fei{OT1}, кодировка оригинального -шрифта \TeX{} Computer Modern. Она содержит только 128 символов -7-битного набора символов ASCII. Когда требуются акцентированные -символы, \TeX{} создает их, комбинируя нормальный символ с акцентом. -Несмотря на то, что результирующая верстка выглядит прекрасно, этот -подход не дает автоматическим переносам работать внутри слов, -использующих акцентированные символы. Кроме того, некоторые знаки -латинских языков не получается создать таким образом, не говоря уже о -буквах не-латинских алфавитов, скажем, греческого или кириллицы. - -Для борьбы с этими ограничениями было создано несколько 8-битных -наборов шрифтов, похожих на CM. \emph{Extended Cork} (EC) шрифты в -кодировке \fei{T1} содержат специальные символы для большинства -акцентированных букв, используемых в европейских языках, основанных на -латинице. Набор шрифтов LH содержит символы языков, основанных на -кириллице. Ввиду большого числа кириллических знаков, они организованы -в четыре кодировки шрифтов: \fei{T2A}, \fei{T2B}, \fei{T2C} и -\fei{X2}.\footnote{Перечень языков, поддерживаемых каждой из этих - кодировок можно найти в \cite{cyrguide}.} Пакет CB содержит шрифты в -кодировке \fei{LGR} для набора греческих текстов. - -Используя эти шрифты, вы можете улучшить или вообще сделать возможными -переносы в не-английских документах. Еще одно преимущество -использования новых CM-подобных шрифтов~--- в том, что они -предоставляют шрифты семейства CM во всех яркостях, формах и оптически -масштабированных размерах шрифта. - -\subsection{Поддержка португальского} -\secby{Demerson Andre Polli}{polli@linux.ime.usp.br} - -Для включения переносов и смены автоматически генерируемого текста на -португальский\index{Португальский}, пользуйтесь командой -\begin{lscommand} -\verb|\usepackage[portuguese]{babel}| -\end{lscommand} -Или, для работы с бразильскими текстами, ставьте в качестве языка -\texttt{brazilian}\index{Бразильский}. - -Поскольку в португальском множество акцентированных букв, вам может -быть удобно использовать -\begin{lscommand} -\verb|\usepackage[latin1]{inputenc}| -\end{lscommand} -для того, чтобы корректно их вводить. Для работы переносов задайте -\begin{lscommand} -\verb|\usepackage[T1]{fontenc}| -\end{lscommand} - -Преамбулу, необходимую для работы с португальским языком, смотрите в -таблице~\ref{portuguese}. Заметьте, что мы здесь используем кодировку -latin1, так что эта преамбула не будет работать на Mac или в -DOS. Просто подставьте кодировку, правильную для вашей системы. - -\begin{table}[btp] -\caption{Преамбула для португальских документов} \label{portuguese} -\begin{lined}{5cm} -\begin{verbatim} -\usepackage[portugese]{babel} -\usepackage[latin1]{inputenc} -\usepackage[T1]{fontenc} -\end{verbatim} -\bigskip -\end{lined} -\end{table} - -\subsection{Поддержка французского} -\secby{Daniel Flipo}{daniel.flipo@univ-lille1.fr} - -Несколько советов для создания в \LaTeX{} -французских\index{Французский} документов. Загрузите поддержку -французского языка командой - -\begin{lscommand} -\verb|\usepackage[frenchb]{babel}| -\end{lscommand} - -Заметьте, что по историческим причинам название опции \pai{babel} для -французского языка~--- \emph{frenchb} или \emph{francais}, а не -\emph{french}. - -Это включит французские переносы, если ваша \LaTeX{}-система правильно -настроена. Кроме того, весь автоматический текст будет тоже -французским: \verb+\chapter+ печатает Chapitre, \verb+\today+ печатает -текущую дату по-французски, и так далее. Становится доступным набор -новых команд, позволяющих легче набирать французские тексты. Для -пояснения смотрите таблицу~\ref{cmd-french}. - -\begin{table}[!htbp] -\caption{Специальные команды для французского языка} \label{cmd-french} -\begin{lined}{9cm} -%%\selectlanguage{french} -\begin{tabular}{ll} -\verb+\og guillemets \fg{}+ \quad &\og guillemets \fg \\[1ex] -\verb+M\up{me}, D\up{r}+ \quad &M\up{me}, D\up{r} \\[1ex] -\verb+1\ier{}, 1\iere{}, 1\ieres{}+ \quad &1\ier{}, 1\iere{}, 1\ieres{}\\[1ex] -\verb+2\ieme{} 4\iemes{}+ \quad &2\ieme{} 4\iemes{}\\[1ex] -\verb+\No 1, \no 2+ \quad &\No 1, \no 2 \\[1ex] -\verb+20~\degres C, 45\degres+ \quad &20~\degres C, 45\degres \\[1ex] -\verb+\bsc{M. Durand}+ \quad &\bsc{M.~Durand} \\[1ex] -\verb+\nombre{1234,56789}+ \quad &\nombre{1234,56789} -\end{tabular} -%%\selectlanguage{english} -\bigskip -\end{lined} -\end{table} - -Вы также заметите изменение вида списков. Чтобы полностью изучить -изменения, вносимые \pai{babel} при работе с французским, прогоните -через \LaTeX{} файл \texttt{frenchb.dtx} и прочтите полученный -\texttt{frenchb.dvi}. - -\subsection{Поддержка немецкого} - -Несколько советов тем, кому нужно создавать в \LaTeX{} -немецкие\index{Немецкий} документы. Загрузите поддержку немецкого -языка командой - -\begin{lscommand} -\verb|\usepackage[german]{babel}| -\end{lscommand} - -Это включит немецкие переносы, если ваша \LaTeX{}-система правильно -настроена. Кроме того, автоматически генерируемый текст станет -немецким, например, ``Chapter'' станет ``Kapitel''. Включается набор -новых команд, ускоряющих набор немецкого текста, даже если не -используется пакет \pai{inputenc}. Для пояснения смотрите -таблицу~\ref{german}. С использованием inputenc все это становится не -нужным, но ваш текст сможет использовать только одну кодировку. - -\begin{table}[!htbp] -\caption{Специальные символы немецкого языка} \label{german} -\begin{lined}{8cm} -%%\selectlanguage{german} -\begin{tabular}{*2{ll}} -\verb|"a| & "a \hspace*{1ex} & \verb|"s| & "s \\[1ex] -\verb|"`| & "` & \verb|"'| & "' \\[1ex] -\verb|"<| or \ci{flqq} & "< & \verb|">| or \ci{frqq} & "> \\[1ex] -\ci{flq} & \flq & \ci{frq} & \frq \\[1ex] -\ci{dq} & " \\ -\end{tabular} -%%\selectlanguage{english} -\bigskip -\end{lined} -\end{table} - -В немецких книгах часто встречаются французские знаки кавычек -(\flqq{}guillemets\frqq). Немецкие типографы, однако, используют их -по-другому. Цитата в немецкой книге обычно выглядит \frqq{}так\flqq. В -немецкоговорящей части Швейцарии типографы используют -\flqq{}guillemets\frqq так же, как и во Франции. - -Большая проблема связана с командами типа \verb+\flq+: в шрифтах OT1 -(а они включаются по умолчанию) эти кавычки выглядят как -математический символ ``$\ll$'', от чего у типографов будет -истерика. Шрифты в кодировке T1, с другой стороны, имеют требуемые -символы. Так что, если вам нужны такие кавычки, убедитесь, что -включили кодировку T1 (\verb|\usepackage[T1]{fontenc}|). - -\subsection[Поддержка корейского]{Поддержка - корейского\footnotemark}\label{support_korean}% -\footnotetext{% -Рассматриваются несколько моментов, касающихся корейских пользователей -\LaTeX{}. Этот раздел написал Karnes Kim от имени корейской команды -переводчиков lshort. Раздел переведен на английский Shun Jungshik и -сокращен Tobi Oetiker.} - -Используя \LaTeX{} для набора корейского языка\index{Корейский}, нам -нужно разрешить три проблемы: - -\begin{enumerate} -\item Нужно научиться редактировать входные файлы на корейском. Они - должны быть в формате плоского текста, но, поскольку символы - корейского языка не входят в набор US-ASCII, они будут странно - выглядеть в стандартных редакторах ASCII. Две самых популярных - кодировки корейских текстовых файлов~--- EUK-KR и ее совместимое - расширение, используемое в корейской системе MS Windows, - CP949/Windows-949/UHC. Эти кодировки включают ASCII как - подмножество, аналогично кодировкам ISO-8859-\textit{x}, EUC-JP, - Shift\_JIS и Big5. С другой стороны, слоги Hangul, знаки Hanjas - (используемые в Корее китайские символы), Hangul Jamos, хиракана, - катакана, греческие, кириллица и прочие символы из KS~X~1001 - представляются двумя байтами. Первый байт имеет установленным - старший бит. До середины 90-х годов установка корейского окружения в - нелокализованной ОС требовала значительных усилий и времени. Вы - можете просмотреть сильно устаревший \url{http://jshin.net/faq}, - чтобы получить представление об этиъ усилиях. В наше время все три - основные операционные системы (Mac OS, Unix, Windows) включают - вполне приличную многоязыковую поддержку и возможности - интернационализации, так что редактирование корейских текстов уже не - является проблемой, даже в нелокализованной системе. - -\item \TeX{} и \LaTeX{} были изначально созданы для письменностей, - имеющих в алфавите не более 256 символов. Для того, чтобы они - работали с языками, где гораздо больше символов, например, - корейским\footnote{Корейский алфавит Hangul~--- буквенная - письменность с 14 основными согласными и 10 основными гласными - (Jamos). В отличие от латиницы или кириллицы, отдельные символы - должны быть размещены в прямоугольных блоках примерно такого же - размера, как и китайские. Каждый блок представляет слог. Из этого - небольшого количества гласных и согласных можно сформировать - бесконечное число слогов. Однако, современные орфографические - стандарты (как в Южной Корее, так и в Северной) налагают некоторые - ограничения на формирование этих блоков. Следовательно, существует - конечное число орфографически правильных слогов. Корейские кодировки - символов определяют индивидуальные коды для каждого из этих слогов - (KS~X~1001:1998 и KS~X~1002:1992). Таким образом, Hangul, будучи - буквенным, трактуется, тем не менее, так же, как письменности Китая - и Японии, с тысячами идеографических знаков. Стандарт - ISO~10646/Unicode предлагает оба способа представления Hangul, - использумых в \emph{современной} Корее, кодируя, в дополнение ко - всем орфографически разрешенным слогам Hangul - (\url{http://www.unicode.org/charts/PDF/UAC00.pdf}), еще и - Conjoining Hangul Jamos (алфавит: - \url{http://www.unicode.org/charts/PDF/U1100.pdf}). Одна из самых - устрашающих задач в наборе корейского текста в \LaTeX{} и - аналогичных системых~--- поддержка средневековых корейских (а, - возможно, и будущих корейских) слогов, которые можно представить - только комбинацией знаков Jamos в Unicode. Есть надежда, что будущие - варианты \TeX, например, $\Omega$ и $\Lambda$ в конце концов - предоставят решение для этой задачи, так что корейские лингвисты и - историки смогут сбежать из MS Word, где уже есть довольно неплохая - поддержка средневекового корейского.} и китайским, был разработан - механизм подшрифтов. Он делит единый шрифт CJK с тысячами или - десятками тысяч знаков на набор подшрифтов с 256 знаками в - каждом. Для корейского языка есть три широко используемых пакета: - \wi{H\LaTeX} (автор Un~Koanghi), \wi{h\LaTeX{}p} (автор - Cha~Jaechoon) и \wi{пакет CJK} (автор Werner~Lemberg).\footnote{% - Их можно получить по адресам \CTANref|language/korean/HLaTeX/|\\ - \CTANref|language/korean/CJK/| и - \texttt{http://knot.kaist.ac.kr/htex/}} -H\LaTeX{} и h\LaTeX{}p специфичны для корейского языка и предлагают - корейскую локализацию, помимо шрифтовой поддержки. Оба они - обрабатывают входные файлы в кодировке EUK-KR. H\LaTeX{} может - обрабатывать файлы в кодировках CP949/Windows-949/UHC и UTF-8, если - используется вместе с $\Lambda$, $\Omega$. - -Пакет CJK не специфичен для корейского языка. Он обрабатывает входные -файлы в UTF-8, а также в различных кодировках CJK, включая EUK-KR и -CP949/Windows-949/UHC. Его можно использовать для набора документов с -многоязычным содержанием (особенно китайским, японским и -корейским). Пакет CJK не содержит корейской локализации, аналогичной -той, что есть в H\LaTeX{}, и также не содержит такого множества -специальных корейских шрифтов. - -\item Конечная цель использования программ набора, включая \TeX{},~--- - получить документы, сверстанные <<эстетически>> - удовлетворительно. Можно утверждать, что наиболее важный элемент - верстки~--- это набор хорошо спроектированных шрифтов. Дистрибутив - H\LaTeX{} включает \index{корейский шрифт!UHC шрифт}UHC \PSi{} - шрифты десяти различных семейств и TrueType шрифты - Munhwabu\footnote{Министерство культуры Кореи} пяти различных - семейств. Пакет CJK работает с набором шрифтов, использовавшихся в - старых версиях H\LaTeX{}, а также может использовать TrueType шрифт - cyberbit компании Bitstream. -\end{enumerate} - -Для загрузки пакета H\LaTeX{} поместите в преамбуле следующее: -\begin{lscommand} -\verb+\usepackage{hangul}+ -\end{lscommand} - -Эта команда включает корейскую локализацию. Заголовки глав, разделов, -подразделов, оглавления и перечня иллюстраций будут переведены на -корейский, и форматирование документа изменится так, чтобы следовать -принятым в Корее правилам. Пакет также предоставляет автоматический -<<выбор частиц>>. В корейском языке существуют пары постфиксных -частиц, грамматически эквивалентных, но отличных по форме. Какая -частица из пары корректна, зависит от того, заканчивается ли -предыдущий слог на гласную или согласную. (На самом деле, правило чуть -сложнее, но общая идея такова.) Корейцам не составляет никакого труда -выбирать правильную частицу, однако невозможно заранее определить, -какую частицу использовать в ссылках и других местах с автоматически -генерируемым текстом, меняющимся при редактировании -документа. Вставлять при каждом изменении текста правильную частицу -везде вручную~--- решение совершенно ужасное. H\LaTeX{} автоматизирует -этот процесс. - -Если вам не нужна корейская локализация, а вы просто хотите набрать -корейский текст, поместите взамен в преамбулу следующее: -\begin{lscommand} -\verb+\usepackage{hfont}+ -\end{lscommand} - -Полная и подробная информация о верстке корейского текста при помощи -H\LaTeX{} приведена в \emph{Руководстве по H\LaTeX}. Смотрите веб-сайт -группы корейских пользователей \TeX{} (KTUG) по адресу -\url{http://www.ktug.or.kr/}. Существует также корейский перевод -настоящего документа. - - -\subsection{Поддержка кириллицы} -\secby{Maksym Polyakov}{polyama@myrealbox.com} - -Пакет \pai{babel}, начиная с версии~3.7, включает поддержку -кодировок~\fei{T2*} и поддержку верстки болгарских, русских и -украинских текстов с использованием кириллических -символов.\index{Болгарский}\index{Русский}\index{Украинский} - -Поддержка кириллицы основана на стандартных механизмах \LaTeX{}: -пакетах \pai{fontenc} и \pai{inputenc}. Но, если вам нужно -использовать кириллицу в математическом режиме, загрузите до пакета -\pai{fontenc} пакет \pai{mathtext}:\footnote{Если вы пользуетесь - пакетами \AmS-\LaTeX{}, загружайте их также до пакетов \pai{fontenc} - и \pai{babel}.} -\begin{lscommand} -\verb+\usepackage{mathtext}+\\ -\verb+\usepackage[+\fei{T1}\verb+,+\fei{T2A}\verb+]{fontenc}+\\ -\verb+\usepackage[+\iei{koi8-r}\verb+]{inputenc}+\\ -\verb+\usepackage[english,bulgarian,russian,ukranian]{babel}+ -\end{lscommand} - -Вообще говоря, \pai{babel} автоматически выберет кодировку шрифтов по -умолчанию. Для трех перечисленных языков это будет \fei{T2A}. Однако, -документы не ограничены только одной кодировкой шрифта. Для -многоязыковых документов, использующих языки, базирующиеся на -кириллице и латинице, имеет смысл явно подключить латинскую кодировку -шрифтов. \pai{babel} позаботится о переключении на правильную -кодировку, когда вы меняете язык в документе. - -В дополнение ко включению переносов, трансляции автоматически -генерируемых строк и активации некоторых специфичных для языка -типографских правил (например, \ci{frenchspacing}), \pai{babel} -предоставляет несколько команд для верстки в соответствии со -стандартами болгарского, русского или украинского языков. - -Для всех трех языков предоставляется специфическая пунктуация: -кириллическое тире для теста (оно слегка \'уже латинского тире и -окружено крошечными пробелами), тире для прямой речи, кавычки и -команды управления переносами. Смотрите таблицу~\ref{Cyrillic}. - -% Table borrowed from Ukrainian.dtx -\begin{table}[htb] - \begin{center} - \index{""-@\texttt{""}\texttt{-}} - \index{""---@\texttt{""}\texttt{-}\texttt{-}\texttt{-}} - \index{""=@\texttt{""}\texttt{=}} - \index{""`@\texttt{""}\texttt{`}} - \index{""'@\texttt{""}\texttt{'}} - \index{"">@\texttt{""}\texttt{>}} - \index{""<@\texttt{""}\texttt{<}} - \caption[Болгарский, русский и украинский]{Дополнительные - определения, вводимые опциями \pai{babel} для болгарского, - русского и украинского языков}\label{Cyrillic} - \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}} - \hline - \verb="|= & запрещает лигатуру в этой позиции. \\ - \verb|"-| & дефис, разрешающий переносить остаток слова. \\ - \verb|"---| & кириллическое тире в обычном тексте. \\ - \verb|"--~| & кириллическое тире в составных фамилиях. \\ - \verb|"--*| & кириллическое тире для обозначения прямой речи. \\ - \verb|""| & как |"-|, но не генерирует знака дефиса - (для составных слов с дефисом, например, |x-""y|.\\ - \verb|"~| & отмечает составное слово без разрыва. \\ - \verb|"=| & отмечает составное слово с разрывом, разрешая перенос в - словах-компонентах. \\ - \verb|",| & пробел для инициалов с разрешением переноса в следующей - за ними фамилии. \\ - \verb|"`| & немецкая левая двойная кавычка - (выглядит так: ,\kern-0.08em,). \\ - \verb|"'| & немецкая правая двойная кавычка (выглядит так: ``). \\%'' - \verb|"<| & французская левая двойная кавычка (выглядит так: $<\!\!<$). \\ - \verb|">| & французская правая двойная кавычка (выглядит так: $>\!\!>$). \\ - \hline - \end{tabular} - \end{center} -\end{table} - -Русская и украинская опции пакета \pai{babel} вводят команды -\ci{Asbuk} и \ci{asbuk}, которые работают аналогично командам -\ci{Alph} и \ci{alph}, но генерируют прописные и строчные буквы -русского или украинского алфавитов (в зависимости от текущего языка -документа). Болгарская опция \pai{babel} вводит команды \ci{enumBul} и -\ci{enumLat} (\ci{enumEng}), которые заставляют \ci{Alph} и \ci{alph} -генерировать буквы либо болгарского, либо латинского (английского) -алфавитов. По умолчанию генерируются болгарские буквы. - -%Finally, math alphabets are redefined and as well as the commands for math -%operators according to Cyrillic typesetting traditions. - -\section{Пробелы между словами} - -Для получения ровного правого края вывода \LaTeX{} вставляет различные -интервалы между словами. В конце предложения он вставляет слегка -больший интервал, делая текст более читабельным.\trfootnote{В - соответствии с традициями верстки, принятыми в английском - языке.} \LaTeX{} предполагает, что -предложения заканчиваются точками, вопросительными или -восклицательными знаками. Если точка следует за буквой в верхнем -регистре, она не считается концом предложения, так как точки после -букв верхнего регистра обычно используются для сокращений. - -Любое исключение из этих предположений должно быть явно оговорено -автором. Знак~<<\verb|\|>> перед пробелом дает в результате пробел, -который не будет увеличен. Знак~<<\verb|~|>> дает пробел, который не -может увеличиться и который, кроме того, запрещает разрыв строки. -Команда \verb|\@| перед точкой указывает, что эта точка заканчивает -предложение, несмотря на то, что стоит за буквой верхнего регистра. -\cih{"@} \index{~@ \verb.~.} \index{тильда@тильда (\verb.~.)} -\index{точка, пробел после} - -\begin{example} -Mr.~Smith was happy to see her\\ -cf.~Fig.~5\\ -I like BASIC\@. What about you? -\end{example} - -Дополнительный пробел после точек можно запретить командой -\begin{lscommand} -\ci{frenchspacing} -\end{lscommand} -\noindent которая указывает \LaTeX{} \emph{не} вставлять пробела после -точки более, чем после обычных символов. Это обычно для языков, -отличных от английского, за исключением библиографий. Если вы -используете \ci{frenchspacing}, команда \verb|\@| не нужна. - -\section{Заголовки, главы и разделы} - -Чтобы помочь читателю ориентироваться в вашей работе, вы должны -разделять ее на главы, разделы и подразделы. \LaTeX{} поддерживает это -специальными командами, принимающими в качестве аргумента заголовок -раздела. Ваше дело~--- использовать их в надлежащем порядке. - -Класс \texttt{article} включает следующие команды секционирования: - -\begin{code} -\ci{section}\verb|{...} |\ci{paragraph}\verb|{...}|\\ -\ci{subsection}\verb|{...} |\ci{subparagraph}\verb|{...} |\\ -\ci{subsubsection}\verb|{...}| -\end{code} - -В классах \texttt{report} и \texttt{book} вы можете использовать -дополнительную команду \ci{chapter}\verb|{...}|. - -Если вы хотите разбить ваш документ на части без изменения нумерации -разделов/глав, используйте команду \ci{part}\verb|{...}|. - -Так как глав (chapters) в классе \texttt{article} нет, то -статьи довольно легко добавлять в книгу в качестве глав. Интервалы -между разделами, нумерация и размер шрифта заголовков устанавливаются -\LaTeX{} автоматически. - -Две из команд секционирования~--- особенные: -\begin{itemize} -\item Команда \ci{part} не влияет на последовательность нумерования - глав. -\item Команда \ci{appendix} аргумента не имеет. Она просто начинает - нумеровать главы буквами вместо цифр.\footnote{В классе - \texttt{article} меняется нумерация разделов.} -\end{itemize} - - - -\LaTeX{} создает оглавление, беря заголовки разделов и номера страниц -из предыдущего цикла компиляции документа. Команда -\begin{lscommand} -\ci{tableofcontents} -\end{lscommand} -\noindent вставляет оглавление в то место, где она вызвана. Чтобы -получить правильное \wi{оглавление}, новый документ должен быть -обработан \LaTeX{} дважды. В особых случаях может быть необходим и -третий проход. Когда это потребуется, \LaTeX{} вас предупредит. - -Все вышеперечисленные команды секционирования существуют также в -вариантах со звездочкой. Такой вариант получается добавлением \verb|*| -к имени команды. Они генерируют заголовки разделов, которые не -нумеруются и не включаются в оглавление. Например, команда -\verb|\section{Справка}| становится \verb|\section*{Справка}|.\sloppypar - -Обычно заголовки разделов появляются в оглавлении точно в том же виде, -в каком они вводятся в тексте. Иногда это невозможно из-за того, что -заголовок слишком длинен для оглавления. Элемент оглавления может в -этом случае указываться необязательным аргументом перед собственно -заголовком. -\begin{code} -\verb|\chapter[Заголовок для оглавления]{Это~--- длинный,|\\ -\verb| длинный и очень нудный заголовок, появляющийся в тексте}| -\end{code} - -Титульный лист -\index{лист!титульный}\index{титульный лист} -документа в целом генерируется при помощи команды -\begin{lscommand} -\ci{maketitle} -\end{lscommand} -\noindent Его содержимое должно быть определено командами -\begin{lscommand} - \ci{title}\verb|{...}|, \ci{author}\verb|{...}| и - \ci{date}\verb|{...}| -\end{lscommand} -\noindent до момента вызова \verb|\maketitle|. Аргумент команды -\ci{author} может содержать несколько имен, разделенных командами -\ci{and}. - -Пример некоторых из упомянутых команд может быть найден на -иллюстрации~\ref{document} на странице~\pageref{document}. - -Помимо описанных выше команд секционирования, \LaTeXe{} вводит три -дополнительных команды для использования с классом \texttt{book}. -Они полезны для деления вашей публикации. Команды изменяют заголовки -глав и нумерацию страниц так, как это ожидается от -книги: - -\begin{description} -\item[\ci{frontmatter}] должна быть самой первой командой после - \verb|\begin{document}|. Она переключает нумерацию страниц на - использование римских цифр. Для вводной части часто используют - команды секционирования со звездочками (например, - \verb|\chapter*{Предисловие}|), чтобы \LaTeX{} не нумеровал эти - разделы. - \item[\ci{mainmatter}] указывается сразу перед первой главой - книги. Она включает нумерацию страниц цифрами и сбрасывает счетчик - страниц. - \item[\ci{appendix}] отмечает начало дополнительного материала в - вашей книге. После этой команды главы будут нумероваться буквами. - \item[\ci{backmatter}] указыватеся перед самыми последними частями - книги, например, перед библиографией и предметным указателем. В - стандартных классах документов видимого эффекта она не имеет. -\end{description} - -\section{Перекрестные ссылки} - -В книгах, отчетах и статьях часто встречаются \wi{перекрестные ссылки} -на иллюстрации, таблицы и отдельные части текста. Для этого \LaTeX{} -предоставляет следующие команды: -\begin{lscommand} -\ci{label}\verb|{|\emph{метка}\verb|}|, \ci{ref}\verb|{|\emph{метка}\verb|}| -и \ci{pageref}\verb|{|\emph{метка}\verb|}| -\end{lscommand} -\noindent где \emph{метка}~--- выбранный пользователем -идентификатор. \LaTeX{} заменяет \verb|\ref| номером раздела, -подраздела, иллюстрации, таблицы или уравнения, где была использована -соответствующая команда \verb|\label|. \verb|\pageref| печатает номер -страницы, соответствующей команде \verb|\label|.\footnote{Заметьте, что - эти команды не знают, на что именно они ссылаются. \ci{label} просто - сохраняет последний автоматически генерируемый номер.} Так же, как -и в случае с заголовками разделов, здесь также используются номера из -предыдущего прохода. - -\begin{example} -Ссылка на этот -раздел~\label{sec:this} -выглядит так: <<см. -раздел~\ref{sec:this} на -стр.~\pageref{sec:this}.>> -\end{example} - -\section{Сноски} - -Команда -\begin{lscommand} -\ci{footnote}\verb|{|\emph{текст сноски}\verb|}| -\end{lscommand} -\noindent печатает сноску внизу текущей страницы. Сноски всегда должны -помещаться после слова или предложения, к которым они относятся. В -русском языке сноски, относящиеся к предолжению, должны ставиться -сразу перед точкой или запятой\footnote{Заметьте, что сноски отвлекают - читателя от основного текста документа. Все всегда читают сноски, - потому что мы~--- любопытные создания. Поэтому старайтесь включать - все, что вы хотите сказать, в основной текст документа.}. -%не понял юмора. BT. - -\begin{example} - Пользователи \LaTeX{} - часто употребляют - сноски.\footnote{% - Это~--- сноска.} -\end{example} - - -\section{Выделенные слова} - -В рукописи, напечатанной на машинке, \texttt{важные слова выделяются - \underline{подчеркиванием}}: - -\begin{lscommand} -\ci{underline}\verb|{|\emph{текст}\verb|}| -\end{lscommand} - -В печатных изданиях, однако, эти слова выделяются \emph{курсивом}. Команда для -переключения на шрифт \emph{выделения} называется -\begin{lscommand} -\ci{emph}\verb|{|\emph{текст}\verb|}| -\end{lscommand} -\noindent Ее аргументом является текст для -выделения\index{выделение}. Что на самом деле делает эта команда, -зависит от контекста: - -\begin{example} -Если вы используете -\emph{выделение в уже -выделенном тексте, то -\LaTeX{} использует -\emph{прямой} шрифт.} -\end{example} - -Отметьте отличие между командами \emph{выделения} и смены -\emph{шрифта}: - -\begin{example} -\textit{Вы можете также - \emph{выделить} текст, - набрав его курсивом,} -\textsf{шрифтом без - \emph{засечек}} -\texttt{или в стиле - \emph{пишущей машинки}.} -\end{example} - -\section{Окружения} \label{env} - -Для верстки специальных видов текста \LaTeX{} определяет множество -\index{окружение}окружений для разных типов форматирования: -\begin{lscommand} -\ci{begin}\verb|{|\emph{название}\verb|}|\quad - \emph{текст}\quad -\ci{end}\verb|{|\emph{название}\verb|}| -\end{lscommand} -\noindent где \emph{название} определяет окружение. Окружения можно -вызывать внутри окружений, соблюдая порядок вызова и возврата: -\begin{code} -\verb|\begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa}| -\end{code} - -\noindent В следующих разделах рассказывается обо всех важных -окружениях. - -\subsection{Список, перечисление и описание} - -Окружение \ei{itemize} подходит для простых списков, окружение -\ei{enumerate}~--- для нумерованных списков, а окружение -\ei{description}~--- для описаний. -\cih{item} - -\begin{example} -\flushleft -\begin{enumerate} -\item Вы можете как угодно -смешивать окружения списков: -\begin{itemize} -\item Но это может смотреться -глупо. -\item[-] С минусом. -\end{itemize} -\item Поэтому помните: -\begin{description} -\item[Глупые] вещи не станут -умнее от помещения в список. -\item[Умные] вещи, однако, -вполне можно представить -списком. -\end{description} -\end{enumerate} -\end{example} - -\subsection{Выравнивание влево, вправо и по центру} - -Окружения \ei{flushleft} и \ei{flushright} форматируют абзацы, -выровненные влево или вправо.\index{выравнивание!вправо или влево} -Окружение \ei{center} дает центрированный текст. Если вы не -используете \ci{\bs} для указания разрывов строк, \LaTeX{} определит -их автоматически. - -\begin{example} -\begin{flushleft} - Этот текст\\ выровнен влево. - \LaTeX{} не старается сделать - все строки одинаковой длины. -\end{flushleft} -\end{example} - -\begin{example} -\begin{flushright} - Этот текст\\ выровнен вправо. - \LaTeX{} не старается сделать - все строки одинаковой длины. -\end{flushright} -\end{example} - -\begin{example} -\begin{center} - В центре\\Земли -\end{center} -\end{example} - -\subsection{Цитаты и стихи} - -Окружение \ei{quote} полезно для цитат, важных фраз и примеров. - -\begin{example} -Типографское правило для -длины строки: -\begin{quote} - Обычно строки должны - содержать не больше - 66~символов. -\end{quote} - -Поэтому \LaTeX{} делает такими -широкими поля страниц. Поэтому -в газетах часто применяют набор -в несколько колонок. -\end{example} - -Существуют еще два похожих окружения: \ei{quotation} и \ei{verse}. -Окружение \texttt{quotation} полезно для более длинных цитат, -охватывающих несколько абзацев, потому что оно начинает абзацы с -красной строки. Окружение \texttt{verse} используют для стихов, где -важны разрывы строк. Строки разделяются при помощи \ci{\bs} в конце -строки и пустой строки после каждой строфы. - -\begin{example} -Я знаю только одно английское -стихотворение наизусть: про -Шалтая-Болтая: -\begin{flushleft} -\begin{verse} -Humpty Dumpty sat on a wall:\\ -Humpty Dumpty had a great fall.\\ -All the King's horses and all -the King's men\\ -Couldn't put Humpty together -again. -\end{verse} -\end{flushleft} -\end{example} - -\subsection{Буквальное воспроизведение} - -Текст, заключенные между \verb|\begin{|\ei{verbatim}\verb|}| и -\verb|\end{verbatim}| будет напрямую напечатан, как набранный на -пишущей машинке, со всеми пробелами и возвратами каретки, без -выполнения каких бы то ни было команд \LaTeX{}. - -Внутри абзаца аналогичную функцию выполняет команда -\begin{lscommand} -\ci{verb}\verb|+|\emph{текст}\verb|+| -\end{lscommand} -\noindent Здесь <<\verb|+|>>~--- это только пример -символа-ограничителя. Вы можете использовать любой символ, кроме букв, -<<\verb|*|>> или пробела. Многие примеры на \LaTeX{} в этом буклете -набраны этой командой. - -\begin{example} -Команда \verb|\ldots| \ldots - -\begin{verbatim} -10 PRINT "HELLO WORLD "; -20 GOTO 10 -\end{verbatim} -\end{example} - -\begin{example} -\begin{verbatim*} -вариант окружения -verbatim со -звездочкой выделяет -пробелы в тексте -\end{verbatim*} -\end{example} - -Команду \ci{verb} тоже можно использовать аналогичным образом со -звездочкой: - -\begin{example} -\verb*|вот так :-) | -\end{example} - -Окружение \texttt{verbatim} и команду \verb|\verb| нельзя использовать -внутри параметров других команд. - - -\subsection{Таблицы} - -Окружение \ei{tabular} используют для верстки таблиц, возможно, с -горизонтальными и вертикальными линиями. \LaTeX{} автоматически -определяет ширину столбцов. - -Аргумент \emph{спецификация} команды -\begin{lscommand} -\verb|\begin{tabular}[|\emph{позиция}\verb|]{|\emph{спецификация}\verb|}| -\end{lscommand} -\noindent определяет формат таблицы. Используйте \texttt{l} для -столбца текста, выровненного влево, \texttt{r} для текста, -выровненного вправо и \texttt{c} для центрированного текста, -\verb|p{|\emph{ширина}\verb|}| для столбца, содержащего выровненный -текст с переносом строк, и \verb.|. для вертикальной линии. - -\emph{Позиция} определяет вертикальное положение всего табличного -окружения: \texttt{t}, \texttt{b} и \texttt{c} означают выравнивание -по верхнему краю, нижнему краю или по центру окружения. - -Внутри окружения \texttt{tabular} знак~<<\verb|&|>> переходит к -следующему столбцу, команда~\ci{\bs} начинает новую строку, а -\ci{hline} вставляет горизонтальную линию.\index{"|@\verb."|.} Вы -можете добавлять неполные линии при помощи команды -\ci{cline}\verb|{j-i}|, где \texttt{j} и \texttt{i}~--- номера -столбцов, над которыми должна проходить линия. - -\begin{example} -\begin{tabular}{|r|l|} -\hline -7C0 & шестнадцатеричное \\ -3700 & восьмеричное \\ \cline{2-2} -11111000000 & двоичное \\ -\hline \hline -1984 & десятичное \\ -\hline -\end{tabular} -\end{example} - -\begin{example} -\begin{tabular}{|p{4.7cm}|} -\hline -Добро пожаловать в абзац в -рамочке. Надеемся, вам всем -тут понравится.\\ -\hline -\end{tabular} -\end{example} - -Разделитель столбцов можно задать конструкцией \verb|@{...}|. Эта -команда удаляет пробел между столбцами и заменяет его на то, что -включено в фигурные скобки. Одно из частых использований этой команды -показано ниже, при рассказе о проблеме выравнивания по десятичной -точке. Другое возможно использование~--- для подавления ведущего -пробела в таблице при помощи \verb|@{}|: - -\begin{example} -\begin{tabular}{@{} l @{}} -\hline -нет ведущего пробела\\ -\hline -\end{tabular} -\end{example} - -\begin{example} -\begin{tabular}{l} -\hline -ведущий пробел слева и справа\\ -\hline -\end{tabular} -\end{example} - -% -% This part by Mike Ressler -% - -\index{выравнивание!по десятичной точке} Поскольку встроенный способ -выровнять числовые столбцы по десятичной точке -отсутствует,\footnote{Если на вашей системе установлен комплект - `tools', обратите внимание на пакет \pai{dcolumn}.} мы можем -<<обмануть>> \TeX{} и добиться этого при помощи двух столбцов: -выровненной вправо целой части и выровненной влево дробной. Команда -\verb|@{.}| в строке \verb|\begin{tabular}| заменяет нормальный пробел - между столбцами просто на <<.>>, давая эффект одного столбца, - выровненного по десятичной точке. Не забудьте заменить в ваших - числах точку на разделитель столбцов (\verb|&|)! Метку столбца можно - поместить над нашим числовым <<столбцом>> командой \ci{multicolumn}: - -\begin{example} -\begin{tabular}{c r @{.} l} -Выражение с $\pi$ & -\multicolumn{2}{c}{Значение} \\ -\hline -$\pi$ & 3&1416 \\ -$\pi^{\pi}$ & 36&46 \\ -$(\pi^{\pi})^{\pi}$ & 80662&7 \\ -\end{tabular} -\end{example} - -\begin{example} -\begin{tabular}{|c|c|} -\hline -\multicolumn{2}{|c|}{Ene} \\ -\hline -Mene & Muh! \\ -\hline -\end{tabular} -\end{example} - -Материал, набираемый в окружении \texttt{tabular}, всегда верстается -на одной странице. Если вам нужно набирать длинные таблицы, -используйте окружения \pai{supertabular} или \pai{longtable}. - -\section{Плавающие объекты} -Большинство публикаций в наши дни содержат множество иллюстраций и -таблиц. Эти элементы нуждаются в специальном обращении с ними, так как -они не могут быть разбиты между страницами. Одним из выходов было бы -начинать новую страницу каждый раз, когда встречается иллюстрация или -таблица, слишком большая, чтобы поместиться на текущей странице. Этот -подход привел бы к тому, что страницы оставались бы частично пустыми, -что смотрится очень плохо. - -Для решения этой проблемы любая иллюстрация или таблица, не умещающаяся -на текущей странице, может `плавать', перемещаясь на следующую -страницу в процессе заполнения текстом текущей. \LaTeX{} предлагает -для плавающих объектов\index{плавающие объекты} два окружения, одно для таблиц и одно для -иллюстраций. Чтобы полностью использовать их преимущества, важно -примерно представлять, как \LaTeX{} обрабатывает плавающие -объекты. Иначе они могут стать источником разочарования из-за того, -что \LaTeX{} помещает их не туда, куда вы хотите. - -Давайте вначале рассмотрим команды, предоставляемые \LaTeX{} для -плавающих объектов. - -Любой материал, включенный в окружения \ei{figure} или \ei{table}, -трактуется как плавающий. Оба окружения имеют необязательный -параметр -\begin{lscommand} -\verb|\begin{figure}[|\emph{спецификация размещения}\verb|]| или\\ -\verb|\begin{table}[|\emph{спецификация размещения}\verb|]| -\end{lscommand} -\noindent называемый \emph{спецификацией размещения}. Этот параметр -используется для указания \LaTeX{}, куда можно перемещать плавающий -объект. \emph{Спецификация размещения} конструируется путем собирания -в строчку \emph{ключей размещения плавающего объекта}. См. -таблицу~\ref{tab:permiss}. - -\begin{table}[!bp] -\caption{Ключи размещения плавающего объекта}\label{tab:permiss} -\noindent \begin{minipage}{\textwidth} -\medskip -\begin{center} -\begin{tabular}{@{}cp{10cm}@{}} -Ключ&Разрешает помещать объект \ldots\\ -\hline -\rule{0pt}{1.05em}\texttt{h} & \emph{здесь же}, в том самом месте -текста, где он появился. Обычно используется для маленьких объектов.\\[0.3ex] -\texttt{t} & \emph{наверху} страницы\\[0.3ex] -\texttt{b} & \emph{внизу} страницы\\[0.3ex] -\texttt{p} & на \emph{специальной странице}, содержащей только -плавающие объекты.\\[0.3ex] -\texttt{!} & не рассматривать большинство внутренних -параметров,\footnote{Таких, как максимальное число плавающих объектов, - разрешенных на одной странице} которые могут предотвратить -размещение этого объекта. -\end{tabular} -\end{center} -\end{minipage} -\end{table} - -Замечание: \texttt{0pt} и \texttt{1.05em}~--- единицы измерения длин -\TeX{}. Подробности о единицах и размерностях смотрите в -таблице~\ref{units} на странице~\pageref{units}. - - -Например, таблицу можно начать следующей строкой: -\begin{code} -\verb|\begin{table}[!hbp]| -\end{code} -\noindent Спецификация размещения \index{спецификация размещения} \verb|[!hbp]| позволяет -\LaTeX{} разместить таблицу прямо по месту (\texttt{h}), или внизу той -же страницы (\texttt{b}), или на выделенной странице (\texttt{p}), и -все это~--- даже если это будет смотреться не так уж хорошо -(\texttt{!}). Если никакой спецификации размещения не задано, -стандартные классы предполагают \verb|[tbp]|. - -\LaTeX{} размещает каждый встреченный плавающий объект в соответствии -с заданной автором спецификацией. Если объект нельзя поместить на -текущей странице, он откладывается, помещаясь в очередь -иллюстраций\index{иллюстрации} или в очередь -таблиц.\index{таблицы}\footnote{Эти очереди подчиняются дисциплине - \emph{fifo}: `первым вошел~--- первым вышел'.} Когда начинается -новая страница, \LaTeX{} проверяет, можно ли заполнить специальную -страницу плавающими объектами из очередей. Если нет, то первый объект -из каждой очереди считается только что встретившимся в тексте: -\LaTeX{} снова пытается разместить их в соответствии с их -спецификациями (за исключением `h', что уже невозможно). Новые -встреченные в тексте плавающие объекты помещаются в соответствующие -очереди. \LaTeX{} сохраняет порядок, в котором встретились плавающие -объекты соответствующего типа. Поэтому иллюстрация, которую не удается -разместить, отталкивает все дальнейшие иллюстрации к концу документа. -Следовательно: - -\begin{quote} - Если \LaTeX{} не размещает плавающие объекты, как вы этого ожидаете, - то часто это только один объект устроил затор в одной из очередей. -\end{quote} - -Хотя и возможно задавать в \LaTeX{} конкретную спецификацию размещения -плавающего объекта, это может вызвать проблемы. Если объект не -помещается в указанном месте, он <<застревает>>, блокируя последующие -плавающие объекты. В частности, никогда не используйте ключ -\texttt{[h]}; это настолько плохо, что в современных версиях \LaTeX{}, -он автоматически заменяется \texttt{[ht]}. - -\bigskip -\noindent После объяснения этих механизмов остается еще несколько -замечания про окружения \ei{table} и \ei{figure}. Командой - -\begin{lscommand} -\ci{caption}\verb|{|\emph{текст заголовка}\verb|}| -\end{lscommand} - -\noindent вы можете задать заголовок для объекта. Увеличивающийся -номер и строка <<Рисунок>> или <<Таблица>> добавляются \LaTeX{}. - -Две команды - -\begin{lscommand} -\ci{listoffigures} и \ci{listoftables} -\end{lscommand} - -\noindent работают аналогично команде \verb|\tableofcontents|, печатая -список иллюстраций или таблиц, соответственно. В этих списках -заголовки повторяются целиком. Если вы используете длинные заголовки, -то вы должны предоставить их краткий вариант для включения в списки. -Это делается помещением краткого варианта в квадратные скобки после -команды \verb|\caption|. -\begin{code} -\verb|\caption[Короткий]{Дддддллллллиииинннннныыыыыыыыыыыыыыййй}| -\end{code} - -При помощи \verb|\label| и \verb|\ref| можно делать ссылки из вашего -текста на плавающий объект. - -Следующий пример рисует квадрат и вставляет его в документ. Подобную -технику можно использовать, чтобы оставить в документе место под -изображения, которые вы вставите позже. - -\begin{code} -\begin{Verbatim} -Рисунок~\ref{white} является примером Поп-Арта. -\begin{figure}[!hbp] -\makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}} -\caption{Пять на пять сантиметров} \label{white} -\end{figure} -\\\end{Verbatim} -\end{code} - -\noindent В этом примере \LaTeX{} будет \emph{очень сильно}~(\texttt{!}) стараться -разместить иллюстрацию прямо \emph{по - месту}~(\texttt{h}).\footnote{Предполагая, что очередь иллюстраций - пуста} Если это невозможно, он попытается разместить ее \emph{внизу - страницы}~(\texttt{b}). Если ему не удастся поместить иллюстрацию на -текущей странице, он выяснит, можно ли создать страницу плавающих -объектов, содержащую эту иллюстрацию и, возможно, некоторые таблицы из -очереди таблиц. Если для отдельной страницы материала еще не -накопилось, \LaTeX{} начинает новую страницу и снова рассматривает -иллюстрацию, как если бы она только что появилась в тексте. - -В определенных случаях может быть необходимо использовать команду -\begin{lscommand} -\ci{clearpage} или даже \ci{cleardoublepage} -\end{lscommand} - -\noindent Она указывает \LaTeX{} немедленно разместить все плавающие -объекты, остававшиеся в очередях, и затем начать новую страницу. -\ci{cleardoublepage}, помимо этого, начинает новую правостороннюю -страницу. - -Позже вы узнаете, как включать в ваши документы \LaTeX{} рисунки в -формате \textsc{PostScript}. - - -\section{Защита хрупких команд} - -Текст, заданный в аргументах команд наподобие \ci{caption} или -\ci{section}, появляется в документе больше одного раза (например, в -оглавлении, в колонтитулах и в теле документа). Некоторые команды не -работают, будучи использованы в аргументах команд типа \ci{section}. -Их называют хрупкими командами\index{команды!хрупкие}. В частности, -хрупкими являются команды \ci{footnote} или \ci{phantom}. Для того, -чтобы они работали как предполагается, необходимо перед ними поставить -команду \ci{protect}. - -Команда \ci{protect} относится только к команде, непосредственно -следующей за ней; даже не к ее аргументам. В большинстве случаев -лишняя команда \ci{protect} не повредит. - -\begin{code} -\verb|\section{Я внимателен|\\ -\verb| \protect\footnote{и защищаю свои сноски}}| -\end{code} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "lshort" -%%% End: |