%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\setcounter{chapter}{4}
\newcommand{\graphicscompanion}{\emph{The \LaTeX{} Graphics Companion}~\cite{graphicscompanion}} 
\newcommand{\hobby}{\emph{A User's Manual for MetaPost}~\cite{metapost}}
\newcommand{\hoenig}{\emph{\TeX{} Unbound}~\cite{unbound}}
\newcommand{\graphicsinlatex}{\emph{Graphics in \LaTeXe{}}~\cite{ursoswald}}

\chapter{Створення графіки для математики}

%\begin{intro}
%Most people use \LaTeX\ for typesetting their text. But as the non content and
%structure oriented approach to authoring is so convenient, \LaTeX\ also offers a,
%if somewhat restricted, possibility for producing graphical output from textual 
%descriptions. Furthermore, quite a number of \LaTeX\ extensions have been created 
%in order to overcome these restrictions. In this section, you will learn about a 
%few of them.
%\end{intro}
\begin{intro}
Більшість людей використовують \LaTeX\ для набору текстів. Але оскільки 
структурно орієнтований підхід до створення документів є дуже зручним для авторів, 
\LaTeX\ надає також певні (дещо обмежені) можливості створювати 
зображення за допомогою текстового опису.
Крім того, було створено ряд розширень \LaTeX\ для того щоб обійти ці обмеження.
Ви дізнаєтеся про деякі з них у цьому розділі.
\end{intro}


\section{Огляд}

%The \ei{picture} environment allows programming pictures directly in \LaTeX. 
%A etailed description can be found in the \manual.
%On the one hand, there are rather severe constraints, as the slopes of line segments 
%as well as the radii of circles are restricted to a narrow choice of values. 
%On the other hand, the \ei{picture} environment of \LaTeXe\ 
%brings with it the \ci{qbezier} command, ``\texttt{q}'' meaning ``quadratic''. 
%Many frequently used curves such as circles, ellipses, or catenaries can be 
%satisfactorily approximated by quadratic B\'ezier curves, although this may 
%require some mathematical toil. If, in addition, a programming language like Java 
%is used to generate \ci{qbezier} blocks of \LaTeX\ input files, the \ei{picture} 
%environment becomes quite powerful. 

Оточення \ei{picture} дозволяє програмувати малюнки прямо в \LaTeX. 
Детальний опис можна знайти в \manual. Це оточення має серйозні
обмеження щодо кутів нахилу відрізків а також радіусів  кіл, які можуть
приймати тільки певні значення.  З іншого боку, оточення \ei{picture} надає
команду \ci{qbezier} для створення квадратичних кривих Безьє. 
Багато які з часто використовуваних кривих, наприклад кола, еліпси,  або
ланцюгові криві можна з прийнятним наближенням описати за допомогою 
квадратичних кривих Безьє, хоча для цього можуть знадобитися певні
математичні зусилля. Крім того, коли для генерування блоків \ci{qbezier} 
у вхідних файлах \LaTeX\ користуватися мовами програмування, наприклад,
Java,  це оточення стає досить потужним інструментом. 

Хоча програмування зображень прямо в \LaTeX\ має суттєві обмеження і може бути 
навіть набридливим, існує ряд причин для використання цього методу. Документи 
створені таким чином мають менший розмір, крім того не потрібні додаткові 
графічні файли.

%Packages like \pai{epic} and \pai{eepic} (described, for instance, in \companion), or
%\pai{pstricks} help to eliminate the restrictions hampering the original \ei{picture} 
%environment, and greatly strengthen the graphical power of \LaTeX.

Такі пакети, як \pai{epic} та \pai{eepic} (описані, наприклад, в \companion), або 
\pai{pstricks} допомагають усунути обмеження оригінального оточення 
\ei{picture}, і суттєво розширюють графічні можливості \LaTeX.

%While the former two packages just enhance the \ei{picture} environment, the \pai{pstricks}
%package has its own drawing environment, \ei{pspicture}. The power of \pai{pstricks} stems
%from the fact that this package makes extensive use of \texttt{PostScript} possibilities.
%In addition, numerous packages have been written for specific purposes. One of them is
%\texorpdfstring{\Xy}{Xy}-pic, described at the end of this chapter. A wide variety of these
%packages is described in detail in \graphicscompanion{} (not to be confused with \companion).

В той час, як перші два пакети просто розширюють можливості оточення 
\ei{picture}, пакет \pai{pstricks} має своє власне оточення для малювання, \ei{pspicture}. 
Потужність \pai{pstricks} криється у широкому використанні можливостей \PSi.
Крім того, написано ряд пакетів для специфічних цілей. Один з них "---
\Xy-pic, описаний в кінці цього розділу. Ряд таких пакетів описано детально 
в \graphicscompanion{} (не плутати з \companion).

%Perhaps the most powerful graphical tool related with \LaTeX\ is \texttt{MetaPost}, the twin of
%Donald E. Knuth's \texttt{METAFONT}. \texttt{MetaPost} has the very powerful and 
%mathematically sophisticated programming language of \texttt{METAFONT}. Contrary to \texttt{METAFONT},
%which generates bitmaps, \texttt{MetaPost} generates encapsulated \texttt{PostScript} files, 
%which can be imported in \LaTeX. For an introduction, see \hobby, or the tutorial on \cite{ursoswald}.

Напевне найпотужнішим з  пов'язаних з \LaTeX{} графічних інструментів є \MP\index{metapost@\MP}, 
близнюк Кнутівського \MF\index{metafont@\MF}'а. 
\MP\index{metapost@\MP} використовує дуже потужну і математично витончену мову програмування 
\MF\index{metafont@\MF}. На відміну від \MF\index{metafont@\MF}, який генерує растрові зображення, 
\MP\index{metapost@\MP} створює файли у форматі \EPSi, 
які можна імпортувати в \LaTeX. 
Для більш детального знайомства дивіться \hobby\ або підручник на \cite{ursoswald}.

%A very thorough discussion of \LaTeX{} and \TeX{} strategies for graphics (and fonts) can 
%be found in \hoenig.

Дуже детальне обговорення стратегій використання графіки (і шрифтів) в 
\LaTeX{} і \TeX{} можна знайти в \hoenig.

\section{Оточення \texttt{picture}}
\secby{Urs Oswald}{osurs@bluewin.ch}

\subsection{Базові команди}

Оточення \ei{picture} можна створити за допомогою однієї з двох команд
\begin{lscommand}
\ci{begin}\verb|{picture}(|$x,y$\verb|)|\ldots\ci{end}\verb|{picture}|
\end{lscommand}
\noindent або
\begin{lscommand}
\ci{begin}\verb|{picture}(|$x,y$\verb|)(|$x_0,y_0$\verb|)|\ldots\ci{end}\verb|{picture}|
\end{lscommand}
Розміри $x,\,y$, початкові координати $x_0,\,y_0$, а також всі координати 
і розміри всередині оточення даються в одиницях \ci{unitlength}, 
які можуть бути перевизначені (але не всередині оточення \ei{picture}) 
за допомогою команди 
\begin{lscommand}
\ci{setlength}\verb|{|\ci{unitlength}\verb|}{1.2cm}|
\end{lscommand}
Початковим значенням \ci{unitlength} є \texttt{1pt}. 
Перша пара, $(x,y)$, резервує всередині документа прямокутний простір для малюнка. 
Необов'язкова друга пара, $(x_0,y_0)$, задає довільні початкові координати 
(координати лівого нижнього кута прямокутника). 

Більшість команд малювання мають одну або дві форми
\begin{lscommand}
\ci{put}\verb|(|$x,y$\verb|){|\emph{об'єкт}\verb|}|
\end{lscommand}
\noindent або
\begin{lscommand}
\ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{об'єкт}\verb|}|\end{lscommand}
Виключенням є криві Безьє. Їх малюють за допомогою команди 
\begin{lscommand}
\ci{qbezier}\verb|(|$x_1,y_1$\verb|)(|$x_2,y_2$\verb|)(|$x_3,y_3$\verb|)|
\end{lscommand}

\subsection{Відрізки}

\begin{example}
\setlength{\unitlength}{5cm}
\begin{picture}(1,1)
  \put(0,0){\line(0,1){1}}
  \put(0,0){\line(1,0){1}}  
  \put(0,0){\line(1,1){1}}  
  \put(0,0){\line(1,2){.5}}
  \put(0,0){\line(1,3){.3333}}
  \put(0,0){\line(1,4){.25}}  
  \put(0,0){\line(1,5){.2}}
  \put(0,0){\line(1,6){.1667}}
  \put(0,0){\line(2,1){1}}
  \put(0,0){\line(2,3){.6667}}
  \put(0,0){\line(2,5){.4}}
  \put(0,0){\line(3,1){1}}  
  \put(0,0){\line(3,2){1}}
  \put(0,0){\line(3,4){.75}}
  \put(0,0){\line(3,5){.6}}
  \put(0,0){\line(4,1){1}}
  \put(0,0){\line(4,3){1}}  
  \put(0,0){\line(4,5){.8}}
  \put(0,0){\line(5,1){1}}
  \put(0,0){\line(5,2){1}}
  \put(0,0){\line(5,3){1}}
  \put(0,0){\line(5,4){1}}
  \put(0,0){\line(5,6){.8333}}
  \put(0,0){\line(6,1){1}}
  \put(0,0){\line(6,5){1}}
\end{picture}
\end{example}
Відрізки малюють командою 
\begin{lscommand}
\ci{put}\verb|(|$x,y$\verb|){|\ci{line}\verb|(|$x_1,y_1$\verb|){|$length$\verb|}}|
\end{lscommand}
Команда \ci{line} має два аргументи:
\begin{enumerate}
  \item вектор напряму,
  \item довжина.
\end{enumerate}
Значення компонент вектору напряму обмежені цілими числами
\[
  -6,\,-5,\,\ldots,\,5,\,6,
\]
і вони не повинні мати спільних дільників (крім одиниці)
Рисунок ілюструє 
всі двадцять п'ять можливих значень кутів нахилу у першому квадранті. 
Довжина задана в одиницях \ci{unitlength}.
Аргумент <<довжина>> задає вертикальну координату у випадку вертикального відрізка і 
горизонтальну координату у всіх інших випадках.

\subsection{Стрілки}

\begin{example}
\setlength{\unitlength}{1mm}
\begin{picture}(60,40)
  \put(30,20){\vector(1,0){30}}
  \put(30,20){\vector(4,1){20}}
  \put(30,20){\vector(3,1){25}}
  \put(30,20){\vector(2,1){30}}
  \put(30,20){\vector(1,2){10}}
  \thicklines
  \put(30,20){\vector(-4,1){30}}
  \put(30,20){\vector(-1,4){5}}
  \thinlines
  \put(30,20){\vector(-1,-1){5}}
  \put(30,20){\vector(-1,-4){5}}
\end{picture}
\end{example}
Стрілки малюють командою 
\begin{lscommand}
\ci{put}\verb|(|$x,y$\verb|){|\ci{vector}\verb|(|$x_1,y_1$\verb|){|$length$\verb|}}|
\end{lscommand}
Для стрілок значення компонентів вектора напряму обмежені ще вужче ніж для відрізків, 
а саме, цілими числами 
\[
  -4,\,-3,\,\ldots,\,3,\,4.
\]
Компоненти також не можуть мати спільних дільників (крім одиниці). 
Зверніть увагу на вплив команди \ci{thicklines} (товщина)
на дві стрілки, що вказують вгору ліворуч.

\subsection{Кола}

\begin{example}
\setlength{\unitlength}{1mm}
\begin{picture}(60, 40)
  \put(20,30){\circle{1}}
  \put(20,30){\circle{2}}
  \put(20,30){\circle{4}}
  \put(20,30){\circle{8}}
  \put(20,30){\circle{16}}
  \put(20,30){\circle{32}}
  
  \put(40,30){\circle{1}}
  \put(40,30){\circle{2}}
  \put(40,30){\circle{3}}
  \put(40,30){\circle{4}}
  \put(40,30){\circle{5}}
  \put(40,30){\circle{6}}
  \put(40,30){\circle{7}}
  \put(40,30){\circle{8}}
  \put(40,30){\circle{9}}
  \put(40,30){\circle{10}}
  \put(40,30){\circle{11}}
  \put(40,30){\circle{12}}
  \put(40,30){\circle{13}}
  \put(40,30){\circle{14}}
  
  \put(15,10){\circle*{1}}
  \put(20,10){\circle*{2}}
  \put(25,10){\circle*{3}}
  \put(30,10){\circle*{4}}
  \put(35,10){\circle*{5}}
\end{picture}
\end{example}
Команда 
\begin{lscommand}
  \ci{put}\verb|(|$x,y$\verb|){|\ci{circle}\verb|{|\emph{diameter}\verb|}}|
\end{lscommand}
\noindent малює кола з центром в $(x,y)$ і діаметром (не радіусом) \emph{diameter}.
Оточення \ei{picture} дозволяє діаметри тільки приблизно до 14\,мм,
але навіть до цієї межі не всі діаметри можливі. Команда \ci{circle*}
зображує диски (суцільні кола).

Як і у випадку з відрізками, для подолання цих обмежень можна звернутися до 
додаткових пакетів, наприклад,  \pai{eepic} або \pai{pstricks}. 
Детальний опис цих пакетів наведено в \graphicscompanion.

В середовищі \ei{picture} є ще інші можливості. 
Якщо ви не боїтеся додаткових розрахунків (які можна зробити за допомогою програми),
довільні кола та еліпси можуть бути зліплені з кривих Безьє.
Дивіться приклади і джерельні коди програм на Java в \graphicsinlatex.

\subsection{Текст і формули}

\begin{example}
\setlength{\unitlength}{1cm}
\begin{picture}(6,5)
  \thicklines
  \put(1,0.5){\line(2,1){3}}
  \put(4,2){\line(-2,1){2}}
  \put(2,3){\line(-2,-5){1}}
  \put(0.7,0.3){$A$}
  \put(4.05,1.9){$B$}
  \put(1.7,2.95){$C$}
  \put(3.1,2.5){$a$}
  \put(1.3,1.7){$b$}
  \put(2.5,1.05){$c$}
  \put(0.3,4){$F=
    \sqrt{s(s-a)(s-b)(s-c)}$}  
  \put(3.5,0.4){$\displaystyle
    s:=\frac{a+b+c}{2}$}
\end{picture}
\end{example}
Як показано в цьому прикладі, текст і формули можна вписувати в оточення \ei{picture} 
за допомогою команди \ci{put} як звичайно.

\subsection{Команди \ci{multiput} та \ci{linethickness}}

\begin{example}
\setlength{\unitlength}{2mm}
\begin{picture}(30,20)
  \linethickness{0.075mm}
  \multiput(0,0)(1,0){31}%
    {\line(0,1){20}}
  \multiput(0,0)(0,1){21}%
    {\line(1,0){30}}
  \linethickness{0.15mm}    
  \multiput(0,0)(5,0){7}%
    {\line(0,1){20}}
  \multiput(0,0)(0,5){5}%
    {\line(1,0){30}}
  \linethickness{0.3mm}    
  \multiput(5,0)(10,0){3}%
    {\line(0,1){20}}
  \multiput(0,5)(0,10){2}%
    {\line(1,0){30}}
\end{picture}
\end{example}
Команда 
\begin{lscommand}
  \ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{object}\verb|}|
\end{lscommand}
\noindent має чотири аргументи: початкову точку, вектор зміщення від одного об'єкта до наступного, 
кількість об'єктів, і об'єкт, що потрібно вивести. 
Команда \ci{linethickness} стосується горизонтальних і вертикальних відрізків і квадратичних кривих
Безьє, але не стосується ні похилих відрізків ні елементів кіл.

\subsection{Овали. Команди \ci{thinlines} та \ci{thicklines}}

\begin{example}
\setlength{\unitlength}{1cm}
\begin{picture}(6,4)
  \linethickness{0.075mm}
  \multiput(0,0)(1,0){7}%
    {\line(0,1){4}}
  \multiput(0,0)(0,1){5}%
    {\line(1,0){6}}
  \thicklines
  \put(2,3){\oval(3,1.8)} 
  \thinlines
  \put(3,2){\oval(3,1.8)} 
  \thicklines
  \put(2,1){\oval(3,1.8)[tl]} 
  \put(4,1){\oval(3,1.8)[b]} 
  \put(4,3){\oval(3,1.8)[r]} 
  \put(3,1.5){\oval(1.8,0.4)}     
\end{picture}
\end{example}
Команда 
\begin{lscommand}
  \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)}|
\end{lscommand}
\noindent або
\begin{lscommand}
  \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)[|\emph{position}\verb|]}|
\end{lscommand}
\noindent виводить овал з центром в  $(x,y)$ шириною $w$ і висотою $h$. 
Необов'язкові аргументи  
\emph{позиції}  \texttt{b}, \texttt{t}, \texttt{l}, \texttt{r} означають, 
який фрагмент овала (<<верхній>>, <<нижній>>, <<лівий>>, чи <<правий>>) слід намалювати, 
їх можна використовувати разом, як показано на ілюстрації. 

Товщину ліній похилих відрізків та кіл і овалів можна задавати командами \ci{thinlines} та \ci{thicklines}
(тонкі та грубі лінії, відповідно). 


\subsection{Багаторазове використання заздалегідь визначених елементів зображення}

\begin{example}
\setlength{\unitlength}{0.5mm}
\begin{picture}(120,168)
\newsavebox{\foldera}% декларація
\savebox{\foldera}
  (40,32)[bl]{%         визначення 
  \multiput(0,0)(0,28){2}
    {\line(1,0){40}}
  \multiput(0,0)(40,0){2}
    {\line(0,1){28}}
  \put(1,28){\oval(2,2)[tl]}
  \put(1,29){\line(1,0){5}}
  \put(9,29){\oval(6,6)[tl]}
  \put(9,32){\line(1,0){8}}
  \put(17,29){\oval(6,6)[tr]}
  \put(20,29){\line(1,0){19}}
  \put(39,28){\oval(2,2)[tr]}  
}
\newsavebox{\folderb}% декларація
\savebox{\folderb}
  (40,32)[l]{%         визначення 
  \put(0,14){\line(1,0){8}}
  \put(8,0){\usebox{\foldera}}
}
\put(34,26){\line(0,1){102}} 
\put(14,128){\usebox{\foldera}}
\multiput(34,86)(0,-37){3}
  {\usebox{\folderb}} 
\end{picture}
\end{example}
Малюнок можна \emph{задекларувати} командою
\begin{lscommand}
  \ci{newsavebox}\verb|{|\emph{назва}\verb|}|
\end{lscommand}
\noindent а потім \emph{визначити} командою  
\begin{lscommand}
  \ci{savebox}\verb|{|\emph{назва}\verb|}(|\emph{ширина,висота}\verb|)[|\emph{позиція}\verb|]{|\emph{зміст}\verb|}|
\end{lscommand}
\noindent і, накінець, (багаторазово) \emph{вивести} командою
\begin{lscommand}
  \ci{put}\verb|(|$x,y$\verb|)|\ci{usebox}\verb|{|\emph{назва}\verb|}|
\end{lscommand}
%> The optional \emph{position} parameter has the effect of defining the
%> `anchor point' of the savebox. In the example it is set to \texttt{bl} which
%> puts the anchor point into the bottom left corner of the savebox. The other
%> position specifiers are \texttt{t}op and \texttt{r}ight.
%> 
%> The \emph{name} argument refers to a \LaTeX{} storage bin and therefore is
%> of a command nature (which accounts for the backslashes in the current
%> example). Boxed pictures can be nested: In this example, \ci{foldera} is
%> used within the definition of \ci{folderb}.
Необов'язковий параметр \emph{позиція} вказує, де розмістити <<точку відліку>> 
зображення всередині прямокутника \ci{savebox}. У даному випадку йому задано значення 
\texttt{bl}, таким чином розміщує <<точку відліку>> зображення 
в нижньому лівому куті. Іншими можливими значеннями специфікації позиції є 
\texttt{t} (верх) and \texttt{r} (праворуч).

Аргумент \emph{назва} вказує на  буфер в пам'яті, де \LaTeX{} зберігає
зображення, і має властивості команди  (повиннен починатися із зворотної
похилої). Такі зображення можуть бути розміщені одне в одному:  у
попередньому прикладі \ci{foldera} використаний всередині визначення
\ci{folderb}.

В даному прикладі використовується команда \ci{oval}, оскільки 
\ci{line} не працює, якщо довжина відрізка менша, ніж 3\,мм.


\subsection{Квадратичні криві Безьє}

\begin{example}
\setlength{\unitlength}{1cm}
\begin{picture}(6,4)
  \linethickness{0.075mm}
  \multiput(0,0)(1,0){7}
    {\line(0,1){4}}
  \multiput(0,0)(0,1){5}
    {\line(1,0){6}}
  \thicklines
  \put(0.5,0.5){\line(1,5){0.5}}    
  \put(1,3){\line(4,1){2}} 
  \qbezier(0.5,0.5)(1,3)(3,3.5)
  \thinlines   
  \put(2.5,2){\line(2,-1){3}}
  \put(5.5,0.5){\line(-1,5){0.5}}
  \linethickness{1mm}
  \qbezier(2.5,2)(5.5,0.5)(5,3)
  \thinlines
  \qbezier(4,2)(4,3)(3,3)
  \qbezier(3,3)(2,3)(2,2)
  \qbezier(2,2)(2,1)(3,1)
  \qbezier(3,1)(4,1)(4,2)
\end{picture}
\end{example}
Як показано в цьому прикладі, поділ кола на чотири квадратичні криві 
Безьє не дає задовільного результату. Потрібно не менш ніж вісім сегментів. 
Приклад показує також ефект команди \ci{linethickness} на горизонтальні та вертикальні 
відрізки, а також команд \ci{thinlines} та \ci{thicklines} 
на похилі відрізки. Він також показує, що обидві групи команд 
впливають на товщину квадратичних кривих Безьє, кожна анулюючи дію попередніх.

Нехай $P_1=(x_1,\,y_1),\,P_2=(x_2,\,y_2)$ позначає кінцеві точки, а $m_1,\,m_2$ 
"--- відповідні кути нахилу квадратичної кривої Безьє. 
Проміжна контрольна точки 
$S=(x,\,y)$ визначається за допомогою рівняння 
\begin{equation} \label{zwischenpunkt}
  \left\{
    \begin{array}{rcl}
      x & = & \displaystyle \frac{m_2 x_2-m_1x_1-(y_2-y_1)}{m_2-m_1}, \\
      y & = & y_i+m_i(x-x_i)\qquad (i=1,\,2).
    \end{array}
  \right.
\end{equation}
\noindent В \graphicsinlatex\ описана програма на Java, яка генерує 
необхідні команди \ci{qbezier}.

\subsection{Ланцюгова крива}

\begin{example}
\setlength{\unitlength}{1.3cm}
\begin{picture}(4.3,3.6)(-2.5,-0.25)
  \put(-2,0){\vector(1,0){4.4}}
  \put(2.45,-.05){$x$}
  \put(0,0){\vector(0,1){3.2}}
  \put(0,3.35){\makebox(0,0){$y$}}
  \qbezier(0.0,0.0)(1.2384,0.0)
    (2.0,2.7622) 
  \qbezier(0.0,0.0)(-1.2384,0.0)
    (-2.0,2.7622)
  \linethickness{.075mm}
  \multiput(-2,0)(1,0){5}
    {\line(0,1){3}}
  \multiput(-2,0)(0,1){4}
    {\line(1,0){4}}
  \linethickness{.2mm}
  \put( .3,.12763){\line(1,0){.4}}
  \put(.5,-.07237){\line(0,1){.4}}
  \put(-.7,.12763){\line(1,0){.4}}
  \put(-.5,-.07237){\line(0,1){.4}}
  \put(.8,.54308){\line(1,0){.4}}
  \put(1,.34308){\line(0,1){.4}}
  \put(-1.2,.54308){\line(1,0){.4}}
  \put(-1,.34308){\line(0,1){.4}}
  \put(1.3,1.35241){\line(1,0){.4}}
  \put(1.5,1.15241){\line(0,1){.4}}
  \put(-1.7,1.35241){\line(1,0){.4}}
  \put(-1.5,1.15241){\line(0,1){.4}}
  \put(-2.5,-0.25){\circle*{0.2}}
\end{picture}
\end{example}

На цьому малюнку симетричні половини кривої $y=\cosh x -1$ апроксимовані квадратичними кривими 
Безьє. Права половина кривої починається в точці \((2,\,2.7622)\), 
кут нахилу має значення \(m=3.6269\). Користуючись рівнянням 
(\ref{zwischenpunkt}) можна обчислити проміжні контрольні точки. 
В даному прикладі це  $(1.2384,\,0)$ і $(-1.2384,\,0)$. 
Хрестики вказують на точки \emph{справжньої} кривої. 
Помилка (менше одного відсотка) майже не помітна.

Цей приклад також показує використання 
необов'язкового аргументу команди
\verb|\begin{picture}|.
Зображення задане в зручних <<математичних>> координатах, а за допомогою команди 
\begin{lscommand} 
  \ci{begin}\verb|{picture}(4.3,3.6)(-2.5,-0.25)|
\end{lscommand}
\noindent його нижньому лівому куту (поміченому жирною крапкою)
присвоєні координати  $(-2.5,-0.25)$. 

\subsection{Швидкість в спеціальній теорії відносності}

\begin{example}
\setlength{\unitlength}{1cm}
\begin{picture}(6,4)(-3,-2)
  \put(-2.5,0){\vector(1,0){5}}
  \put(2.7,-0.1){$\chi$}
  \put(0,-1.5){\vector(0,1){3}}
  \multiput(-2.5,1)(0.4,0){13}
    {\line(1,0){0.2}}
  \multiput(-2.5,-1)(0.4,0){13}
    {\line(1,0){0.2}}
  \put(0.2,1.4)
    {$\beta=v/c=\tanh\chi$}
  \qbezier(0,0)(0.8853,0.8853)
    (2,0.9640)
  \qbezier(0,0)(-0.8853,-0.8853)
    (-2,-0.9640)
  \put(-3,-2){\circle*{0.2}}
\end{picture}
\end{example}
Контрольні точки двох кривих Безьє розраховані за допомогою формули  (\ref{zwischenpunkt}).
Позитивна гілка визначена рівняннями  $P_1=(0,\,0),\,m_1=1$ 
та $P_2=(2,\,\tanh 2),\,m_2=1/\cosh^2 2$.
Знову, зображення задане в математично зручних координатах, 
і лівий нижній кут має координати  $(-3,-2)$ (жирна крапка).


\section{\texorpdfstring{\Xy}{Xy}-pic}
\secby{Alberto Manuel Brand\~ao Sim\~oes}{albie@alfarrabio.di.uminho.pt}
\pai{xy} "--- спеціальний пакет для малювання діаграм. Для того, щоб 
скористуватися ним, додайте наступні рядки у преамбулу документа:
\begin{lscommand}
\verb|\usepackage[|\emph{опції}\verb|]{xy}|
\end{lscommand}
\noindent де \emph{опції} "--- це список функцій \Xy-pic, які потрібно завантажити. 
Ці опції корисні в першу чергу для відладки пакета.  Я рекомендую скористатися опцією 
\verb!all!, примусивши \LaTeX{} завантажити усі команди \Xy{}.

Діаграми \Xy-pic малюються на матрице-подібному <<полотні>>,
де кожен з елементів розміщений в окремій клітині:
\begin{example}
\begin{displaymath}
\xymatrix{A & B \\
          C & D }
\end{displaymath}
\end{example}
Команду \ci{xymatrix} слід використовувати в математичному режимі.
У даному прикладі ми визначили два стовпчики і два рядки. 
Щоб зробити цю матрицю діаграмою, слід додати стрілки за допомогою 
команди  \ci{ar}:
\begin{example}
\begin{displaymath}
\xymatrix{ A \ar[r] & B \ar[d] \\
           D \ar[u] & C \ar[l] }
\end{displaymath}
\end{example}
Команди стрілок розміщені в клітинках, з яких вони виходять.
Аргументами цих команд є напрям, куди стрілки мають вказувати 
(\texttt{u} "--- догори, \texttt{d} "--- донизу, 
\texttt{r} "--- праворуч, та \texttt{l} "--- ліворуч).

\begin{example}
\begin{displaymath}
\xymatrix{
  A \ar[d] \ar[dr] \ar[r] & B \\
  D                       & C }
\end{displaymath}
\end{example}
Щоб зробити діагоналі, слід вказати більш ніж один напрямок.
Також, можна вказати той самий напрямок кілька разів, щоб 
зробити довшу стрілку.
\begin{example}
\begin{displaymath}
\xymatrix{
  A \ar[d] \ar[dr] \ar[drr] & & \\
  B                      & C & D }
\end{displaymath}
\end{example}

Можна зробити діаграми цікавішими, додавши до стрілок мітки.
Для цього скористайтеся звичайними операторами 
верхнього та нижнього індексів. 
\begin{example}
\begin{displaymath}
\xymatrix{
  A \ar[r]^f \ar[d]_g &
             B \ar[d]^{g'} \\
  D \ar[r]_{f'}       & C }
\end{displaymath}
\end{example}

Як показано, ці оператори використовуються так само, як і в
математичному режимі. Єдиною різницею є те, що верхній індекс значить
<<над стрілкою>>,  а нижній індекс "--- <<під стрілкою>>. Є ще третій
оператор, вертикальна паличка: \verb+|+. Він розміщує мітку посередині
стрілки.
\begin{example}
\begin{displaymath}
\xymatrix{
  A \ar[r]|f \ar[d]|g &
             B \ar[d]|{g'} \\
  D \ar[r]|{f'}       & C }
\end{displaymath}
\end{example}

Щоб намалювати стрілку з отвором, скористайтеся \verb!\ar[...]|\hole!.

У деяких випадках важливо розрізняти стрілки різних типів. Це можна зробити за 
допомогою міток, або змінивши зовнішній вигляд стрілки:

\begin{example}
\shorthandoff{"}
\begin{displaymath}
\xymatrix{
 \bullet\ar@{->}[rr] && \bullet\\
 \bullet\ar@{.<}[rr] && \bullet\\
 \bullet\ar@{~)}[rr] && \bullet\\
 \bullet\ar@{=(}[rr] && \bullet\\
 \bullet\ar@{~/}[rr]  && \bullet\\
 \bullet\ar@{^{(}->}[rr]  && \bullet\\
 \bullet\ar@2{->}[rr]  && \bullet\\
 \bullet\ar@3{->}[rr]  && \bullet\\
 \bullet\ar@{=+}[rr]   && \bullet
}
\end{displaymath}
\shorthandon{"}
\end{example}

Зверніть увагу на різницю між двома наступними діаграмами:

\begin{example}
\begin{displaymath}
\xymatrix{
 \bullet \ar[r] 
         \ar@{.>}[r] & 
 \bullet
}
\end{displaymath}
\end{example}

\begin{example}
\begin{displaymath}
\xymatrix{
 \bullet \ar@/^/[r] 
         \ar@/_/@{.>}[r] &
 \bullet
}
\end{displaymath}
\end{example}

Модифікатори між похилими рисками визначають, як малювати криві. 
\Xy-pic пропонує багато способів зображення кривих, 
щоб отримати більше інформації, зверніться до документації \Xy-pic.
%

% \begin{example}
% \begin{lscommand}
% \ci{dum}
% \end{lscommand}
% \end{example}

