% \iffalse meta-comment
%
% vakthesis.dtx
% Copyright 2003--2009, 2021 Олександр М. Барановський (Oleksandr M. Baranovskyi)
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `author-maintained'.
%
% This work consists of the files listed in the README file.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{vakthesis.dtx}
%</driver>
%<vakthesis|vakaref>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
%<vakthesis>\ProvidesClass{vakthesis}
%<vakaref>\ProvidesClass{vakaref}
%<vak2000bs>\ProvidesFile{vak2000bs.clo}
%<vak2007b6>\ProvidesFile{vak2007b6.clo}
%<vak2011b910>\ProvidesFile{vak2011b910.clo}
%<mon2017n40>\ProvidesFile{mon2017n40.clo}
%<*driver|vakthesis|vakaref|vak2000bs|vak2007b6|vak2011b910|mon2017n40>
  [2021/07/21 v0.09
%</driver|vakthesis|vakaref|vak2000bs|vak2007b6|vak2011b910|mon2017n40>
%<vakthesis>   VAKU thesis document class (OMB)]
%<vakaref>   VAKU author's abstract document class (OMB)]
%<vak2000bs|vak2007b6|vak2011b910|mon2017n40>   Guide option for vakthesis (OMB)]
%<*driver>
   vakthesis bundle (OMB)]
%\def\docdate{2021/07/21}
\documentclass[a4paper]{ltxdoc}
% \EnableCrossrefs
% \CodelineIndex
% \RecordChanges
% \def\generalname{Загальне}
\OnlyDescription
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage[ukrainian]{babel}
\usepackage{url}
%\usepackage{backref}
%%% From classes.dtx
\newcommand*{\Lopt}[1]{\textsf {#1}}
\newcommand*{\file}[1]{\texttt {#1}}
\newcommand*{\Lcount}[1]{\textsl {\small#1}}
\newcommand*{\pstyle}[1]{\textsl {#1}}
%%%
\newcommand{\env}[1]{\texttt{#1}}
\newcommand{\cls}[1]{\textsf{#1}}
\newcommand{\pkg}[1]{\textsf{#1}}
\newcommand{\bst}[1]{\textsf{#1}}
\newcommand{\vakthesis}{\cls{vakthesis}}
\newcommand{\vakaref}{\cls{vakaref}}
\newenvironment{example}%
  {\begin{flushleft}\ttfamily}
  {\end{flushleft}}
\begin{document}
  \DocInput{vakthesis.dtx}
\end{document}
%</driver>
% \fi
%
% \CheckSum{5327}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \GetFileInfo{vakthesis.dtx}
%
% ^^A Standard LaTeX \DoNotIndex
% \DoNotIndex{\',\.,\@M,\@@input,\@Alph,\@alph,\@addtoreset,\@arabic}
% \DoNotIndex{\@badmath,\@centercr,\@cite}
% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
% \DoNotIndex{\@input,\@ixpt,\@m,\@minus,\@mkboth}
% \DoNotIndex{\@ne,\@nil,\@nomath,\@plus,\roman,\@set@topoint}
% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
% \DoNotIndex{\advance,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
% \DoNotIndex{\bullet}
% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
% \DoNotIndex{\fbox}
% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi}
% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
% \DoNotIndex{\input}
% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright}
% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
% \DoNotIndex{\NeedsTeXFormat,\newdimen}
% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
% \DoNotIndex{\refstepcounter,\relax,\renewcommand}
% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily}
% \DoNotIndex{\secdef,\selectfont,\setbox,\setcounter,\setlength}
% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
% \DoNotIndex{\viipt,\vipt,\vskip,\vspace}
% \DoNotIndex{\wd,\xiipt,\year,\z@}
%
% ^^A My \DoNotIndex
% \DoNotIndex{\CYRA,\CYRB,\CYRV,\CYRG,\CYRGUP,\CYRD,\CYRE,\CYRIE,
%             \CYRZH,\CYRZ,\CYRI,\CYRII,\CYRYI,\CYRISHRT,
%             \CYRK,\CYRL,\CYRM,\CYRN,\CYRO,\CYRP,\CYRR,
%             \CYRS,\CYRT,\CYRU,\CYRF,\CYRH,\CYRC,\CYRCH,
%             \CYRSH,\CYRSHCH,\CYRSFTSN,\CYRYU,\CYRYA}
% \DoNotIndex{\cyra,\cyrb,\cyrv,\cyrg,\cyrgup,\cyrd,\cyre,\cyrie,
%             \cyrzh,\cyrz,\cyri,\cyrii,\cyryi,\cyrishrt,
%             \cyrk,\cyrl,\cyrm,\cyrn,\cyro,\cyrp,\cyrr,
%             \cyrs,\cyrt,\cyru,\cyrf,\cyrh,\cyrc,\cyrch,
%             \cyrsh,\cyrshch,\cyrsftsn,\cyryu,\cyrya}
%
% \changes{v0.08}{2009/04/01}{Виправлено помічені мовні помилки і друкарські огріхи у документації}
%
% \title{Класи документів \LaTeX{} \vakthesis{} та \vakaref:
% оформлення дисертації та автореферату за~рекомендаціями ВАК України^^A
% \thanks{Цей документ описує файл \texttt{\filename} версії~\fileversion, виправлений~\filedate.}}
% \author{Олександр Барановський\\
% \texttt{ombaranovskyi at gmail dot com}}
% \date{}
%
% \maketitle
%
% \begin{abstract}
% Класи документів \LaTeX{} \vakthesis{} та \vakaref{} призначені для оформлення тексту дисертації та автореферату за рекомендаціями Вищої атестаційної комісії України.
% У цьому документі описані нові та змінені команди для генерування титульної сторінки, рубрикації дисертації та автореферату, оформлення ілюстрацій, таблиць, теорем, списку використаних джерел та~ін.
% \end{abstract}
%
% ^^A\tableofcontents
%
%
% \section{Вступ}
%
% Підготовка тексту дисертації на здобуття наукового ступеня
% потребує значних зусиль: дисертація є великим документом, що
% містить певну кількість математичних формул, ілюстрацій, таблиць,
% посилань на структурні частини дисертації, формули та джерела у
% списку літератури. Автор дисертації повинен постійно редагувати
% свій геніальний текст, дуже часто це потрібно робити терміново.
% Але при цьому повинна зберігатися структура тексту, посилання мають
% залишатися коректними і~т.~д.
% Допомогти в цьому може система \LaTeX, одна з найпотужніших і найефективніших сучасних систем підготовки документів, що ґрунтується на системі комп'ютерної верстки \TeX{} (див.~\cite{lshort}).
%
% Класи \LaTeX{} \vakthesis{} та \vakaref{} призначені для оформлення згідно з рекомендаціями Вищої атестаційної комісії (ВАК) України (див.~\cite{vak.guide.2006} або рекомендації інших років)^^A
% \footnote{Ці класи непридатні для оформлення дисертацій та авторефератів
% згідно із сучасними вимогами Міністерства освіти і науки (МОН) України.
% Для цього призначені допоміжні класи \cls{mon2017dev} і \cls{mon2017dev-aref},
% які доступні за адресою:
% \url{https://www.imath.kiev.ua/~baranovskyi/tex/vakthesis/support/mon2017dev/}.
% Вони ґрунтуються на класах \vakthesis{} та \vakaref{}.
% Тому останні мають бути встановлені в системі.
% Але користувачам немає потреби використовувати їх безпосередньо.}
% тексту дисертації та автореферату відповідно:
% \begin{itemize}
% \item оформлення титульної сторінки дисертації (обкладинки автореферату),
% \item оформлення заголовків розділів, підрозділів, пунктів, підпунктів, а також додатків,
% \item нумерації сторінок, розділів (підрозділів і т. д.), ілюстрацій, таблиць, формул і т. д.,
% \item оформлення підписів до ілюстрацій, таблиць,
% \item оформлення теорем, лем, означень тощо,
% \item оформлення списку використаних джерел та ін.
% \end{itemize}
% Як і будь-який клас документа, вони мають допомогти автору дисертації зосередитися на написанні власне тексту і використовувати логічну розмітку тексту замість його безпосереднього оформлення.
%
% Перед тим, як почати працювати з класами \vakthesis{} та \vakaref{},
% користувачі мають отримати кілька попереджень. По-перше,
% рекомендації ВАК щодо оформлення дисертації трохи відрізняються
% від рекомендацій державного стандарту України ДСТУ~3008-95
% <<Документація. Звіти у сфері науки і техніки. Структура і правила
% оформлення>> (наприклад, у оформленні заголовків пунктів і
% підпунктів, оформленні підписів до ілюстрацій і таблиць тощо),
% незважаючи на те, що мали б наслідувати останній~\cite[с.~14,
% п.~1.1]{vak.guide.2006}. Класи \vakthesis{} та \vakaref{} дотримуються
% рекомендацій ВАК та ігнорують ДСТУ~3008-95 у випадку розбіжностей.
%
% По-друге, нагадаю, що після захисту необхідно подавати до ВАК електронний варіант автореферату у форматі Rich Text Format (RTF).
% Тому можливі два варіанти:
% \begin{enumerate}
% \item Для друкарні підготувати автореферат в \LaTeX, використовуючи клас \vakaref.
% А потім для ВАК конвертувати його за допомогою однієї з доступних програм конвертування^^A
% \footnote{Проект <<Converters between \LaTeX{} and PC Textprocessors>> присвячений огляду різноманітних варіантів і способів конвертування.
% Зокрема, про конвертери з \LaTeX{} у RTF див. на сторінці \url{http://www.tug.org/utilities/texconv/textopc.html}.}.
%
% \item Відразу готувати автореферат у форматі RTF: і для друку, і для ВАК.
% Тоді використовувати клас \vakaref{} взагалі немає потреби.
% \end{enumerate}
%
% І автореферат, і дисертацію в електронному вигляді потрібно після захисту подавати до Українського інституту науково-технічної та економічної інформації (УкрІНТЕІ), але їх цілком задовольняє файл у форматі PDF (принаймні, задовольняв раніше, коли я віддавав свою дисертацію).^^A
% \footnote{Останні два абзаци містять застарілу інформацію.
% Я не знаю подробиць про нинішню ситуацію з поданням документів після захисту
% до відповідного підрозділу МОН і до УкрІНТЕІ.}
%
% По-третє, я жодним чином не пов'язаний з ВАК України, тому не можу
% гарантувати, що класи \vakthesis\ та \vakaref\ дозволяють оформити
% дисертацію та автореферат саме так, як потрібно для ВАК. Жодні
% претензії ВАК не можуть бути переадресовані мені. Це означає,
% зокрема, що цей документ не може замінити рекомендації
% ВАК~\cite{vak.guide.2006}, які варто уважно прочитати. Але зауважу, що я
% використовував ці класи для своєї дисертації та автореферату, і
% від ВАК зауважень до їх оформлення не надходило.
%
% Крім того, цей документ лише розповідає, як працювати з класами \LaTeX{} \vakthesis\ та \vakaref,
% але не може навчити навіть основ роботи з \LaTeX.
% Якщо маєте таку потребу, читайте, наприклад,~\cite{lshort}.
%
% У певному розумінні, я здійснюю підтримку запропонованого
% програмного забезпечення, тобто повідомлення про помилки і
% пропозиції щодо вдосконалення прийматиму із задоволенням, а також
% намагатимуся їх враховувати у нових версіях.
%
%
% \section{Необхідні класи і пакети}
%
% Для підтримки розміру шрифта 14pt класи \vakthesis\ та \vakaref\ використовують файл \file{size14.clo} з набору класів і пакетів \pkg{extsizes}.
% Він доступний за адресою \url{CTAN:macros/latex/contrib/extsizes}^^A
% \footnote{CTAN означає Comprehensive TeX Archive Network.
% Наведену <<адресу>> необхідно доповнити справжньою адресою одного із CTAN-серверів, наприклад, так: \url{http://www.ctan.org/tex-archive/macros/latex/contrib/extsizes}.
% Але перевірте спочатку свою систему: можливо, необхідний пакет уже встановлений.
% Я даю тут CTAN-адреси лише для повноти і коректності викладу.}.
% Достатньо, щоб \pkg{extsizes} був встановлений у системі.
% Класи \vakthesis\ та \vakaref\ знайдуть необхідні файли.
% Користувач не мусить жодним чином використовувати цей набір, зокрема явно викликати пакет \pkg{extsizes}.
%
% Для підтримки опцій класу типу \Lopt{key=value} потрібен пакет \pkg{xkeyval},
% доступний за адресою 
% \url{CTAN:macros/latex/contrib/xkeyval}.
% Також немає потреби викликати його явно.
%
%
% \section{Приклади}
%
% У комплекті з класами є файли-приклади дисертації, розділу дисертації, автореферату, \BibTeX-файли бібліографії тощо (це файли |xampl-*.*|).
% Вони містять необхідні команди та деякі коментарі.
% Для користувачів, що не мають часу читати документацію (чи не мають такої звички),
% цих файлів достатньо, я сподіваюся, щоб почати роботу з класами негайно.
%
%
% \section{Інтерфейс користувача}
%
% Класи \vakthesis\ та \vakaref\ ґрунтуються на стандартному класі \cls{report}.
% Тому робота користувача з ними не відрізняється істотно від роботи зі стандартними класами \LaTeX.
% Нові опції та команди, а також зміни інтерфейсу (у порівнянні зі стандартним класом \cls{report}) описані далі.
%
% \subsection{Опції класів \vakthesis{} та \vakaref{}}
%
% Опції \Lopt{a4paper}, \Lopt{a5paper}, \Lopt{landscape}, 
% \Lopt{10pt}, \Lopt{11pt}, \Lopt{12pt}, \Lopt{oneside}, \Lopt{twoside}
% успадковані від класу документа \cls{report}.
% Всі опції (стандартні, нові та змінені) перераховані нижче.
% \begin{description}
% \item[\Lopt{a4paper}, \Lopt{a5paper}, \Lopt{a3paper}]
%   Вибір формату паперу: A4, A5 і A3 відповідно.
%
% \item[\Lopt{landscape}]
%   Альбомна орієнтація аркуша.
%
% \item[\Lopt{10pt}, \Lopt{11pt}, \Lopt{12pt}, \Lopt{14pt}]
%   Основний розмір шрифта 10pt, 11pt, 12pt і 14pt відповідно.
%
% \item[\Lopt{oneside}, \Lopt{twoside}]
%   Односторонній та двосторонній друк.
%
% \item[\Lopt{draft}, \Lopt{final}]
%   Крім жирних лінійок на полях, опція \Lopt{draft} також пише відповідний текст у нижніх колонтитулах.
%
% \item[\Lopt{titlepage}, \Lopt{notitlepage}]
%   Показувати/не показувати титульну сторінку.
%   Але нумерація сторінок зберігається
%   (тобто наступна після титульної сторінка матиме номер 2 завжди).
%
% \item[\Lopt{1space}, \Lopt{1.5space}] (лише \vakthesis{})
%   Міжрядковий інтервал: <<один інтервал>> та <<півтора інтервали>>.
%   Друга опція встановлює міжрядковий інтервал так, щоб було <<схоже>> на Microsoft Word:
%\begin{verbatim}
%\renewcommand\baselinestretch{1.434}
%\end{verbatim}^^A No blank at line start
% ^^AДив. подробиці у розділі <<Реалізація>>.
%
% Клас документа \vakaref{} не має таких опцій,
% оскільки не передбачається друкування автореферату у <<півтора інтервали>>.
%
% \item[\Lopt{c}, \Lopt{d}]
%   Режим кандидатської/докторської дисертації.
%
% \item[\Lopt{guide}]
%   Опція типу \Lopt{guide=\meta{код\_довідника}} для вибору,
%   яких рекомендацій щодо оформлення слід дотримуватися.
%   Налаштування містяться у відповідному файлі \file{\meta{код\_довідника}.clo}.
%   Але користувач може самостійно зробити свій файл на основі стандартного
%   і використовувати відповідну опцію.
%
%   Опис відмінностей між офіційними рекомендаціями ВАК/МОН різних років
%   і відповідні посилання можна знайти в~\cite{thsgdiff}.
%
%   Доступні значення \meta{код\_довідника}:
%   \begin{description}
%   \item[\Lopt{vak2000bs}]
%     Бюлетень ВАК, 2000, спецвипуск.
%     Цю опцію можна використовувати також для оформлення згідно з довідниками
%     інших років
%     (див. подробиці у~\cite{thsgdiff}).
%   \item[\Lopt{vak2007b6}]
%     Бюлетень ВАК, 2007, №~6.
%     Цю опцію можна використовувати також для оформлення згідно з довідниками
%     інших років
%     (див. подробиці у~\cite{thsgdiff}).
%   \item[\Lopt{vak2011b910}]
%     Бюлетень ВАК, 2011, №~9-10.
%   \item[\Lopt{mon2017n40}]
%     Наказ~МОН від~12.01.2017 №~40.
%     УВАГА!
%     Ця опція ще не готова.
%     Для оформлення згідно з цим наказом варто використовувати
%     окремі \LaTeX-класи \cls{mon2017dev} і \cls{mon2017dev-aref}.
%   \end{description}
% \end{description}
%
% За замовчуванням клас \vakthesis{} вибирає опції
% \Lopt{a4paper}, \Lopt{14pt}, \Lopt{1.5space}, \Lopt{oneside}, \Lopt{final}, \Lopt{c},
% а клас \vakaref{} "--- опції
% \Lopt{a5paper}, \Lopt{10pt}, \Lopt{twoside}, \Lopt{final}, \Lopt{c}.
%
% \subsection{Параметри сторінки}
%
% Користувач самостійно встановлює необхідні розміри берегів,
% оскільки рекомендації ВАК залишають тут свободу~\cite[с.~19]{vak.guide.2006}.
% На мою думку, для цього зручно використовувати пакет \pkg{geometry}
% (доступний за адресою \url{CTAN:macros/latex/contrib/geometry}).
% ^^AFIXME: чи є потреба згадувати про цей пакет, як необхідний?
%
% Наприклад, нехай ми хочемо отримати в дисертації
% лівий берег "--- 30~мм, правий "--- 15~мм,
% однакові верхній і нижній береги та 29 рядків на сторінці.
% Тоді маємо написати у преамбулі дисертації:
%\begin{verbatim}
%\usepackage{geometry}
%\geometry{hmargin={30mm,15mm},lines=29,vcentering}
%\end{verbatim}
% Розміри берегів трохи більші за мінімальні рекомендовані ВАК,
% щоб дисертацію можна було зшити і обрізати.
%
% Інший приклад: друкарня Інституту математики НАН України вимагає
% готувати автореферат з розмірами текстового блоку $11\times17$~см,
% ^^AFIXME: текстового блоку?
% включаючи номер сторінки (у верхньому колонтитулі).
% Для цього пишемо у преамбулі автореферату:
%\begin{verbatim}
%\usepackage{geometry}
%\geometry{total={11cm,17cm},includehead}
%\end{verbatim}
%
% \subsection{Титульна сторінка}
%
% \subsubsection{Титульна сторінка дисертації}
%
% \DescribeMacro{\title}
% \DescribeMacro{\author}
% \DescribeMacro{\maketitle}
% Клас \vakthesis\ оформлює титульну сторінку дисертації відповідно до форми~5, див.~\cite[с.~33]{vak.guide.2006}.
% Команди |\title|, |\author| та |\maketitle| використовуються, як у стандартних класах \LaTeX.
% Аргумент команди |\author| повинен бути пропусками розбитий на прізвище, ім'я та по батькові:
% \begin{example}
% \cmd\author\{\meta{Прізвище}\meta{space}\meta{Ім'я}\meta{space}\meta{По батькові}\}
% \end{example}
% ^^AFIXME: Чи про ці команди варто говорити? Вони ж використовуються стандартні.
%
% \DescribeMacro{\supervisor}
% Команда |\supervisor| отримує два обов'язкові аргументи:
% \begin{itemize}
% \item повне ім'я (прізвище, ім'я, по батькові) наукового
% керівника,
%
% \item його науковий ступінь і вчене звання (розділені комою).
% \end{itemize}
% Зауважте, що п.~3.1 рекомендує вказувати на титульній сторінці
% спочатку науковий ступінь і вчене звання, а потім "--- прізвище,
% ім'я, по батькові наукового керівника~\cite[с.~15]{vak.guide.2006}, але
% форма~5 пропонує обернений порядок~\cite[с.~33]{vak.guide.2006} (аналогічно в деяких рекомендаціях ВАК інших років). Клас
% \vakthesis\ дотримується форми~5 (доводиться припускати, що у
% п.~3.1 лише перераховані необхідні елементи без вказування порядку
% їх розміщення на сторінці).
%
% \DescribeMacro{\speciality}
% Команда |\speciality| задає спеціальність за переліком ВАК~\cite{vak.spec_list}.
% Один обов'язковий аргумент "--- шифр спеціальності. Два
% факультативні "--- назва спеціальності, галузь науки (у родовому
% відмінку), "--- потрібні лише, якщо файл |speciality| не містить
% заданого шифру спеціальності. Приклад:
% \begin{example}
% \cmd\speciality[математичний аналіз]\{01.01.01\}[фізико-математичних наук]
% \end{example}
% За деякими спеціальностями можливе присудження наукового ступеня
% за різними галузями наук: наприклад, за спеціальністю 01.02.05 ^^A"--- механіка рідини, газу та плазми
% можливе присудження наукового ступеня або з фізико-математичних
% наук, або з технічних наук. Для цього випадку призначений другий
% факультативний аргумент. А~перший може знадобитися, наприклад, для
% спеціальності 13.00.02, коли необхідно вказувати галузь знань,
% тобто <<теорія та методика навчання математики>>, <<теорія та методика навчання фізики>> тощо.
%
% Файл |speciality| має спеціальний формат, описаний у
% розділі~\ref{sec:speciality.file.format}.
%
% \DescribeMacro{\udc}
% Команда |\udc| визначає індекс за УДК (Універсальною десятковою
% класифікацією) галузі науки, до якої належить дисертація.
%
% \DescribeMacro{\institution}
% Команда |\institution| отримує два обов'язкові аргументи: назву
% установи, де виконана робота, і місто, де розташована установа.
% Назва може складатися з двох частин, розділених комою: власне
% назва установи і відомство, якому установа підпорядковується. Тоді
% на титульній сторінці буде відображена відповідна інформація.
%
% \DescribeMacro{\date}
% Команда |\date| має один аргумент "--- рік, коли написана дисертація.
% Якщо команда не задана, то використовується поточний рік.
%
% \DescribeMacro{\secret}
% Команда |\secret| має один обов'язковий аргумент і задає гриф
% обмеження розповсюдження відомостей. Можливі значення аргумента:
% таємно, для службового користування.
%
% У рекомендаціях ВАК немає чіткої вказівки, де розміщувати гриф обмеження розповсюдження відомостей.
% З одного боку, сказано, що така інформація вказується на титульній сторінці дисертації,
% з іншого "--- зразок не містить вказівок, де саме її вказувати.
% Звичайно, для таємної дисертації неважливо, як вона оформлена, бо ніхто ніколи її не побачить.
% Я міг би просто посміятися (цікаво, як можливий прилюдний захист таємної дисертації?) і проігнорувати команду |\secret|.
% Але форма~13 (облікова картка здобувача) згадує про необхідність вказувати таку інформацію.
% І програма, яку пропонує УкрІНТЕІ для створення облікової картки дисертації (ОКД), теж містить відповідне поле.
%
% \DescribeEnv{titlepage}
% Якщо користувача з якихось причин не задовольняє вигляд титульної
% сторінки, він може скористатися оточенням |titlepage|, всередині
% якого можна сконструювати потрібну титульну сторінку.
%
% \subsubsection{Обкладинка автореферату}
%
% \DescribeMacro{\title}
% \DescribeMacro{\author}
% \DescribeMacro{\speciality}
% \DescribeMacro{\udc}
% \DescribeMacro{\maketitle}
% Цей документ описує відразу два класи: \vakthesis\ і \vakaref,
% оскільки вони мають подібні команди. Але саме цей розділ містить
% інформацію про команди, які пропонує клас \vakaref\ для створення
% обкладинки автореферату відповідно до форм~6 та~7,
% див.~\cite[с.~34--35]{vak.guide.2006}. Команди |\title|, |\author|,
% |\speciality|, |\udc| (і,~звичайно, |\maketitle|) мають такі самі
% функції і такий синтаксис, як і в режимі дисертації.
%
% Як і для дисертації, існують розбіжності в описі порядку
% розміщення елементів обкладинки автореферату: чи вказувати індекс
% УДК перед прізвищем автора~\cite[с.~28]{vak.guide.2006}, чи після
% (форма~6~\cite[с.~34]{vak.guide.2006})? Клас \vakaref\ дотримується
% форми~6.
%
% \DescribeMacro{\supervisor}
% \DescribeMacro{\opponent}
% Команда |\supervisor| отримує три обов'язкові аргументи:
% \begin{itemize}
% \item повне ім'я (прізвище, ім'я, по батькові) наукового
% керівника,
%
% \item його науковий ступінь і вчене звання (розділені комою),
%
% \item місце роботи і посада (розділені комою).
% \end{itemize}
% Аналогічно, команда |\opponent| задає інформацію про офіційного
% опонента.
%
% \DescribeMacro{\institution}
% Команда |\institution| отримує один обов'язковий аргумент: назву
% установи, де виконана робота. Тут ВАК рекомендує вказувати назву
% відомства, якому підпорядкована установа.
%
% \DescribeMacro{\council}
% Команда |\council| задає інформацію про спеціалізовану раду, де
% відбуватиметься захист. Отримує три обов'язкові аргументи: шифр
% ради, назву установи, в якій створена рада, та адресу установи.
%
% Один факультативний аргумент (якщо використовується, то
% розміщується між першим і другим обов'язковими) задає
% альтернативну назву установи для обкладинки, наприклад,
%\begin{verbatim}
%\council{Д~26.206.01}
%        [Інститут математики, Національна академія наук України]
%        {Інститут математики НАН України}
%        {01601 м.~Київ, вул.~Терещенківська, 3}
%\end{verbatim}
%
% \DescribeMacro{\secretary}
% Прізвище та ініціали ученого секретаря спеціалізованої вченої
% ради. Аргумент ніяк не обробляється: користувач вирішує сам,
% писати ініціали до чи після прізвища. ВАК віднедавна рекомендує
% <<до>>, деякі ради мають традиції "--- <<після>>.
%
% \DescribeMacro{\library}
% Команда |\library| отримує два обов'язкові аргументи і задає назву й адресу установи, де можна ознайомитися з дисертацією.
% Якщо команда не задана, то використовується назва установи, де створена рада, і адреса взагалі не пишеться.
% Якщо перший аргумент порожній, то використовується назва установи, де створена рада, і нова адреса.
% Це можна використати, наприклад, якщо бібліотека розміщена за адресою,
% що відрізняється від адреси, де відбуваються засідання ради.
%
% \DescribeMacro{\linstitution}
% Команда |\linstitution| задає інформацію про провідну установу і
% має такий синтаксис:
% \begin{example}
% \cmd\linstitution\marg{назва, підрозділ, відомство}\marg{місто}\\
% або\\
% \cmd\linstitution\marg{назва, відомство}\marg{місто}
% \end{example}
% Тобто користувач може вказувати чи не вказувати назву підрозділу
% (кафедри, відділу) провідної установи, де розглядається дисертація
% (відповідно до своїх потреб чи рекомендацій спеціалізованої ради).
%
% Крім того, ВАК України з 2007~року скасувала інститут провідних
% установ^^A~\cite{zakon}
% \footnote{FIXME: Тут бажано вказати наказ ВАК, але я не маю такої інформації.}^^A
% . Тому ця команда потрібна лише для авторефератів дисертацій,
% написаних раніше.
%
% \DescribeMacro{\defencedate}
% \DescribeMacro{\postdate}
% Дату захисту дисертації та дату розсилання автореферату задають
% команди |\defencedate| та |\postdate| відповідно. Синтаксис такий
% \begin{example}
% \cmd\defencedate\marg{РРРР/ММ/ДД}\marg{ГГ:ХХ}\\
% \cmd\postdate\marg{РРРР/ММ/ДД}
% \end{example}
% Якщо команди не задані, то на звороті обкладинки проставляються
% шаблони під дату і час. Відповідну інформацію слід вписувати у
% надрукований автореферат, як вимагають традиції.
%
% \DescribeMacro{\manuscript}
% \DescribeMacro{\monograph}
% Можливі два варіанти захисту дисертації: підготувати рукопис або
% захищати за монографією. Команди |\manuscript| (за замовчуванням),
% |\monograph| вибирають тип дисертації.
%
% Клас \vakaref\ використовує допоміжний пакет \pkg{casus} для
% відмінювання назв установ на обкладинці автореферату. Він не
% призначений для безпосереднього використання користувачем, тому не
% описується тут.
%
% \subsubsection{Формат файла відповідності шифру та назви спеціальності}
% \label{sec:speciality.file.format}
%
% Файл |speciality| встановлює відповідність між шифром спеціальності та назвою спеціальності.
% Поточна версія файла відповідає наказу ВАК України від~12.02.2007 №~70.
% Рядок опису спеціальності є обов'язковим елементом цього файла і повинен мати такий формат:
%\begin{verbatim}
%##.##.## назва спеціальності/галузь науки у родовому відмінку
%\end{verbatim}
% Присутність символа |/| обов'язкова.
% Якщо за певною спеціальністю можливе присудження наукового ступеня більше, ніж з однієї галузі наук, то кожна відокремлюється символом |/|.
%
% Рядок опису галузі науки і рядок опису групи спеціальностей не
% використовуються командою |\speciality| (принаймні, у цій версії
% класів) і призначені лише для інформування користувача. Якщо вони
% присутні, то повинні мати такий формат:
%\begin{verbatim}
%##       галузь науки
%##.##    назва групи спеціальностей
%\end{verbatim}
%
% Зауважте, що файл не повинен містити порожніх рядків! Символ |%|
% використовується як коментар. Між шифром і назвою спеціальності
% може бути довільна кількість пропусків.
%
% \DescribeMacro{\specialityfilename}
% Команда |\specialityfilename| задає ім'я файла |speciality|.
% Переозначивши її, можна підключити альтернативний файл (наприклад,
% для іншого наказу ВАК або іншою мовою).
%
% \subsection{Рубрикація дисертації та автореферату}
%
% \DescribeMacro{\chapter}
% \DescribeMacro{\section}
% \DescribeMacro{\subsection}
% \DescribeMacro{\subsubsection}
% ВАК рекомендує поділяти дисертацію на розділи, підрозділи, пункти
% та підпункти~\cite[с.~19]{vak.guide.2006}. Цим рівням рубрикації клас
% документа \cls{vakthesis} ставить у відповідність такі команди
% \LaTeX:
%
% \begin{tabular}{ll}
% розділ & |\chapter| \\
% підрозділ & |\section| \\
% пункт & |\subsection| \\
% підпункт & |\subsubsection|
% \end{tabular}
%
% \DescribeMacro{\chapter*}
% \DescribeMacro{\section*}
% \DescribeMacro{\subsection*}
% \DescribeMacro{\subsubsection*}
% Для ненумерованих частин дисертації (вступ, список використаних джерел, висновки тощо) використовуються варіанти вказаних команд із зірочкою~|*|.
% Наприклад,
%\begin{verbatim}
%\chapter*{Вступ}
%\end{verbatim}
% дає заголовок розділу <<Вступ>> без номера.
%
% \DescribeMacro{\part}
% \DescribeMacro{\part*}
% Автореферат дисертації не повинен мати розділів, підрозділів
% і~т.~д., а лише структурні частини, які задаються командами
% |\part|. Команда |\part*| теж доступна для сумісності документів,
% але у ній немає потреби, оскільки структурні частини автореферату
% не нумеруються. Клас документа \cls{vakaref} забороняє команди
% |\chapter| та |\(sub)(sub)section|.^^A\) Щоб ВінЕдт не розфарбовував
%
% \DescribeMacro{\paragraph}
% \DescribeMacro{\subparagraph}
% Крім того, і в дисертації, і в авторефераті можна використовувати команди |\paragraph| і |\subparagraph| для дрібніших рубрик документа, які не повинні потрапляти у зміст:
% наприклад, для частин вступу <<Актуальність теми>>, <<Зв'язок роботи з науковими програмами, планами, темами>> тощо.
%
% \DescribeMacro{\nopunct}
% Заголовки пунктів і підпунктів (тобто аргументи команд
% |\subsection| і |\subsubsection|), а також аргументи команд
% |\paragraph| і |\subparagraph|, розміщуються у підбір до тексту.
% Крапка в кінці такого заголовка додається автоматично при потребі.
% Щоб уникнути цього, напишіть у кінці заголовка |\nopunct|.
%
% Зауважте, що клас \vakthesis\ ігнорує рекомендацію виділяти
% заголовки пунктів <<в розбивку>>~\cite[с.~19]{vak.guide.2006}, оскільки я
% вважаю, що виділення напівжирним чи курсивом для дисертації
% достатньо (а для набору <<в розбивку>> до того ж потрібно
% підключати додаткові пакети).
% ^^A <<в розбивку>> вважається поганим стилем
%
% \DescribeMacro{\tableofcontents}
% На основі вказаних команд рубрикації збирається зміст. Перелік
% усіх розділів, підрозділів і пунктів (як вимагає ВАК) з'являється
% там, де вказана команда |\tableofcontents|.
%
% На відміну від стандартної поведінки \LaTeX{},
% ненумеровані заголовки теж з'являються у змісті.
% Тому команди рубрикації з зірочкою теж можуть мати факультативний аргумент,
% як і команди без зірочки.
% Тоді у змісті буде вказано не стандартний заголовок рубрики,
% заданий в обов'язковому аргументі,
% а той, що задано у факультативному аргументі.
%
% Використовувати факультативні аргументи у командах рубрикації з зірочкою
% треба обережно і тільки в разі гострої потреби.
% Якщо текст з такими командами перенести в інший документ,
% оформлений, наприклад, зі стандартними класами \LaTeX{},
% які не мають такої функціональності,
% то виникатиме помилка.
%
% \DescribeMacro{\appendix}
% Якщо дисертація має додатки, то їх потрібно розміщувати після
% списку використаних джерел. Команда |\chapter| задає заголовок
% додатка, як і для звичайних розділів дисертації. Перед першим
% додатком необхідно викликати команду |\appendix|. Додатки
% позначаються великими літерами української абетки, за винятком
% літер Ґ, Є, І, Ї, Й, О, Ч, Ь (див. також пояснення у
% розділі~\ref{sec:bugs&todo}).
%
% У деяких довідниках ВАК
% рекомендовано інший порядок структурних елементів дисертації:
% спочатку додатки,
% потім список використаних джерел.
% Тоді команда |\appendix|, розміщена перед першим додатком,
% впливатиме і на список.
% Цього можна уникнути, якщо обмежити групою дію команди |\appendix|.
% Наприклад, вкласти додатки у спеціальне оточення^^A
% \footnote{Див.
%   \url{https://www.imath.kiev.ua/~baranovskyi/tex/vakthesis/support/appbib.tex}.%
% }.
%
% Зауважте, що додаток може поділятися на підрозділи, пункти і
% підпункти (команди |\section|, |\subsection| і |\subsubsection|
% відповідно), що суперечить рекомендаціям ВАК поділяти додаток на
% розділи і підрозділи~\cite[с.~26]{vak.guide.2006}, але дозволяє зберегти
% структуру дисертації (бо інакше додаток слід вважати структурною
% одиницею, яка вища розділу, а для цього ні клас не передбачає
% відповідної команди, ні рекомендації ВАК "--- адекватного
% оформлення).
%
% Крім того, підрозділи, формули, ілюстрації, таблиці тощо
% нумеруються в межах додатка, знову ж таки, для збереження логіки
% нумерації у всій дисертації. Важко сказати, чи це відповідає
% рекомендаціям ВАК~\cite[с.~20, 26]{vak.guide.2006}, тим більше, що приклад
% на с.~26 суперечить сам собі.
%
% \subsection{Таблиці та ілюстрації}
%
% ^^A TODO: Додати інформацію про переозначення Рис. -> Мал.
% \DescribeEnv{figure}
% \DescribeEnv{table}
% \DescribeMacro{\caption}
% Для створення плаваючих ілюстрацій та таблиць слід використовувати
% стандартні оточення \LaTeX{} |figure| і |table|, які переозначені
% відповідно до рекомендацій ВАК. Підпис до плаваючого об'єкта
% задається командою |\caption|. Можливість автоматичного розміщення
% підпису під ілюстрацією (відповідно над таблицею) не реалізовано.
% Це робить користувач, записуючи команду |\caption| відповідним
% чином.
%
% \DescribeMacro{\tablenamefont}
% \DescribeMacro{\tablecaptionfont}
% ВАК рекомендує~\cite[с.~22]{vak.guide.2006} виділяти слово <<Таблиця>> курсивом і назву таблиці "--- жирним.
% Але це відрізняється від рекомендацій ВАК інших років.
% Користувач може переозначити ці команди, наприклад, так
%\begin{verbatim}
%\def\tablenamefont{\upshape}
%\def\tablecaptionfont{\mdseries}
%\end{verbatim}
%
% \subsection{Теореми}
%
% Під теоремами прийнято розуміти будь-які теоремоподібні структури:
% теореми, леми, наслідки, гіпотези, означення, зауваження, задачі,
% приклади тощо. Рекомендації ВАК нічого не говорять про оформлення
% теорем, зокрема про їх нумерацію. Класи \cls{vakthesis} та
% \cls{vakaref} переозначають стандартні команди \LaTeX\ так, що
% теореми починаються з абзацного відступу і мають невеликі відступи
% перед і після. Нумерацію користувач визначає на свій смак за
% допомогою факультативних аргументів команди |\newtheorem|: або в
% межах розділу, підрозділу тощо, або всі теореми однією
% послідовністю номерів.
%
% Пакет \pkg{amsthm} можна використовувати разом з цими класами.
% Крім команди |\theoremstyle|, яка дозволяє задавати різне
% оформлення для різних типів теорем, він ще пропонує оточення
% |proof| для доведення теореми (або розв'язання задачі: заголовок
% можна задати як факультативний аргумент оточення). Зауважте, що
% пакет \pkg{amsthm} слід підключати після \pkg{amsmath}, якщо
% використовуються обидва~\cite{amsthm}.
%
% Підтримка інших пакетів для роботи з теоремами (наприклад,
% |theorem|) не реалізована.
%
% \DescribeMacro{\slantedthmbody}
% \DescribeMacro{\italicthmbody}
% \DescribeMacro{\slantedall}
% Текст певних теоремоподібних структур (наприклад, теорем та лем)
% традиційно виділяють курсивом. Команда |\slantedthmbody| дозволяє
% замінити \textit{курсив} на \textsl{похилий} у текстах таких
% теоремоподібних структур, а команда |\italicthmbody| "--- навпаки,
% похилий на курсив. І, нарешті, команда |\slantedall| замінює
% курсив на похилий в усьому тексті. ^^AЦі команди доступні автору, але
% ^^Aвони скоріше експеримент, ніж готовий продукт. Якщо ви вважаєте,
% ^^Aщо похилий шрифт не дуже гарний на вигляд, просто не
% ^^Aвикористовуєте цих команд.
%
% \subsection{Список використаних джерел}
%
% ^^AДва списки літератури слід узгодити з існуючими розробками
%
% Для оформлення списку використаних джерел є два стандартні
% способи:
% \begin{itemize}
% \item використовувати оточення |thebibliography|,
%
% \item генерувати список з |.bib|-файла за допомогою \BibTeX.
% \end{itemize}
% \changes{v0.09}{2021/07/21}{Змінено у файлах-прикладах і~документації
%   \cmd{\BibTeX}-стилі на сумісні з ДСТУ 8302:2015}
% ^^A basilio на форумі linux.org.ua підказав 2018/02/23,
% ^^A що \BibTeX-стиль gost2008 найближчий до стандарту ДСТУ 8302:2015:
% ^^A https://linux.org.ua/index.php?topic=11311.msg201856#msg201856
% В останньому випадку доцільно користуватися набором \BibTeX-стилів |gost|
% (доступний за адресою \url{CTAN:biblio/bibtex/contrib/gost}).
% Ці стилі дозволяють оформити список літератури за стандартом ГОСТ~7.1-84,
% як рекомендувала ВАК раніше~\cite[с.~18, 25]{vak.guide.2006},
% а також можуть бути корисні для оформлення за стандартом ДСТУ ГОСТ~7.1:2006
% <<Система стандартів з інформації, бібліотечної та видавничої справи.
% Бібліографічний запис. Бібліографічний опис. Загальні вимоги та правила складання>>
% чи ДСТУ 8302:2015
% <<Інформація та документація.
% Бібліографічне посилання. Загальні  положення та правила складання>>
% (згідно з пізнішими рекомендаціями ВАК/МОН).
% ^^A як ВАК рекомендує принаймні від 2008~року
% ^^A (див., наприклад, \cite[с.~52]{vak.perelik_forms}).
%
% \DescribeEnv{bibset}
% Клас документа \cls{vakthesis} пропонує оточення |bibset| для
% підтримки кількох списків літератури в одному документі.^^A
% \footnote{Починаючи з версії 0.09,
% ця функціональність доступна також з класом \cls{vakaref}.}
% Обов'язковий аргумент задає заголовок списку, а факультативний
% "--- мітку, що з'являється біля номерів у списку і в посиланнях у
% тексті. Всередині оточення слід задавати команди
% |\bibliographystyle| та |\bibliography|.
%
% Нехай у документі (скажімо, це файл |xampl-thesis.tex|) мають бути
% список використаних джерел
% (бібліографічна база даних міститься у файлі |xampl-thesis.bib|)
% і список публікацій автора
% (у файлі |xampl-mybib.bib|).
% Тоді слід написати щось таке:
%\begin{verbatim}
%\begin{bibset}{Список використаних джерел}
%  \bibliographystyle{gost2008s}
%  \bibliography{xampl-thesis}
%\end{bibset}
%
%\begin{bibset}[a]{Список публікацій автора}
%  \bibliographystyle{gost2008}
%  \bibliography{xampl-mybib}
%\end{bibset}
%\end{verbatim}
% і виконати таку послідовність дій:
% \begin{enumerate}
% \item Вилучити відповідні |.aux|- та |.bbl|-файли,
%   якщо вони вже існують.
%
% \item Для кожного $N \in \{ 1, 2 \}$ виконати команди
% \begin{enumerate}
% \item
%\begin{verbatim}
%latex xampl-thesis.tex
%\end{verbatim}
% \item
% \changes{v0.09}{2021/07/21}{Виправлено описку в~документації
% (в інструкції зі створення кількох списків літератури)}
% ^^A Роман Нікіфоров повідомив про цю проблему 2011/02/05.
%\begin{verbatim}
%bibtex8 --csfile cp1251 --big xampl-thesis
%\end{verbatim}
% Потрібен саме |bibtex8|,
% якщо |.bib|-файл містить записи з кириличними літерами.
% Файл сортування та інші ключі використовувати за потребою.
% \item файл |xampl-thesis.bbl| перейменувати у |xampl-thesis|$N$|.bbl|.
% \end{enumerate}
%
% \item Виконати команду
%\begin{verbatim}
%latex xampl-thesis.tex
%\end{verbatim}
%   стільки разів, щоб посилання коректно розставилися
%   (щонайменше двічі).
% \end{enumerate}
%
% Зауважте, що рекомендації ВАК ні дозволяють, ні забороняють
% виділяти список публікацій автора окремо. Я реалізував це <<для
% себе>>.
%
%
% \section{Альтернатива}
%
% Зараз мені відомі кілька інших класів для роботи з дисертаціями,
% що можуть бути корисними для здобувачів наукового ступеня в Україні.
%
% Перший "--- клас документа \cls{dissert}\footnote{Доступний за
% адресою \url{http://ppg.ice.ru/files/59553/dissert.tgz}.} Андрія ^^AFIXME: correct url? перевірити на RU.TEX
% Мартовлоса "--- призначений саме для оформлення дисертації за
% вимогами ВАК України. Він ґрунтується на стандартному класі
% \cls{report} та стандартній опції класу \cls{size14.clo}. Основні
% відмінності класів \vakthesis\ (разом з \vakaref) та
% \cls{dissert}:
% \begin{itemize}
% \item \vakthesis{} має набір команд для генерування титульної
% сторінки.
%
% \item \vakaref{} дозволяє оформляти автореферат, \cls{dissert}
% таких можливостей не має взагалі.
%
% \item \vakthesis{} має підтримку двох списків літератури: списку
% використаних джерел та списку публікацій автора.
%
% \item Деякі необхідні модифікації стандартного класу \cls{report}
% не реалізовані в класі \cls{dissert}, зокрема заміна
% зарезервованих слів типу |\bibname|. Користувачеві рекомендується
% замінювати їх самостійно в тілі документа.
%
% \item У класі \vakthesis{} витримано змістовну підпорядкованість заголовків у змісті (як і в стандартних класах \LaTeX).
%
% \item \cls{dissert} не оновлювався від 2002~року (деякі
% розбіжності з рекомендаціями ВАК, можливо, зумовлені цим).
%
% \item \cls{dissert} має підтримку шрифтів типу Times, на відміну
% від \vakthesis{}.
% \end{itemize}
%
% Другий "--- клас документа \cls{disser}\footnote{Документований
% код (у форматі |.dtx|) і приклади доступні за адресою
% \url{CTAN:macros/latex/contrib/disser}.} для оформлення
% дисертації, створений Станіславом Кручиніним шляхом об'єднання
% доповнень і виправлень до класу \cls{extreport}. Клас орієнтований
% на російськомовних користувачів, як стверджує автор. Але він має
% багаті можливості для налагоджування, і, можливо, його можна
% налагодити під рекомендації ВАК України. Я не намагався це
% зробити.
%
% ^^AFIXME: Написати ще про клас rusthesis.
% Нарешті, класи \cls{rusthesis} та \cls{rthauto}\footnote{Доступні
% за адресою \url{http://www.ispms.ru/files/rusthesis_TeTeX.tgz}.
% Див. також
% \url{http://www.botik.ru/PSI/EmNet_NIS/transactions/gorelski/gorelski_smolin.koi8.html}.}
% Олексія Смоліна, розроблені на основі класу \cls{ucthesis}. Автор
% стверджує, що клас \cls{rusthesis} дозволяє оформити дисертацію за
% вимогами ВАК Росії. Як вони узгоджені з класом \cls{disser} (чи
% взагалі узгоджені), я не перевіряв.
% ^^A quick&dirty
%
%
% \section{Можливі проблеми, відомі баґи і TODO}
% \label{sec:bugs&todo}
%
% \begin{itemize}
% \item Команда |\speciality| не може прочитати з файла |speciality|
% рядок опису спеціальності, якщо він не містить символа /. Будьте
% уважні, якщо редагуєте цей файл.
%
% \item У випадку використання двох списків літератури можливі
% конфлікти з пакетами \pkg{hyperref}, \pkg{cite} та іншими, що
% мають справу з командами створення списку літератури та посилань
% на літературу. Наприклад, пакет \pkg{cite} вже не зможе сортувати
% посилання, задані в аргументі команди |\cite|. Очікується, що це
% буде виправлено в наступних версіях.
%
% \item ВАК рекомендує так звані примітки оформляти по-різному
% залежно від їх кількості на сторінці~\cite[с.~21]{vak.guide.2006}. На
% перший погляд, під примітками тут розуміють footnotes.
% Але в ДСТУ~3008-95 окремо написано про примітки (підрозділ~7.8) і
% про виноски (підрозділ~7.9). Тому я вважаю, що такі примітки, як
% описані у рекомендаціях ВАК, нікому не потрібні, бо є виноски (footnotes).
% Отже, немає потреби турбуватися про їх підтримку. Але користувач
% при потребі може їх оформити як теоремоподібну структуру за
% допомогою команди |\newtheorem|. Нові стилі для однієї та для
% кількох приміток (наприклад, нехай вони називаються |note| та
% |notes| відповідно) можна створити за допомогою команди
% |\newtheoremstyle| (з пакету \pkg{amsthm}). Для кількох приміток
% виникає така неприємність: примітка з номером~1 ніяк не хоче мати
% абзацного відступу, навіть якщо явно вказати |\par|. Я не розумію
% зараз, чому це так. І не дуже переймаюся, бо думаю, що це навряд
% чи комусь знадобиться. Але швидкий і брудний патч "--- це написати
% перед приміткою~1 таке
%\begin{verbatim}
%\ \vskip-\baselineskip
%\end{verbatim}
%
% Для інформації: оформлення виносок в \LaTeX{} відрізняється від
% того, як рекомендує ДСТУ~3008-95. Але я про це не турбувався,
% оскільки у рекомендаціях ВАК про оформлення виносок немає жодного
% слова.
%
% \item Правила ВАК рекомендують не використовувати літери Г, Є, І,
% Ї, Й, О, Ч, Ь для позначення додатків~\cite[с.~26]{vak.guide.2006}. Для
% мене незрозуміла ідея пропускати літери: це наче нумерувати
% розділи числами, але не використовувати, скажімо, числа 4 та 13.
% Але особливо нелогічною є заборона Г, оскільки літера Ґ
% залишається. Державний стандарт ДСТУ~3008-95 забороняє саме літеру
% Ґ, а також літеру З (пункт~7.16.4). Якби ще була заборонена Щ,
% можна було б припустити, що забороняються літери, які <<схожі>> на
% цифри чи на інші літери. Чому в рекомендаціях ВАК немає літери З?
% Можливо, це просто друкарська помилка?
%
% Як би не було, я не дотримуюся ДСТУ~3008-95, як уже було сказано у
% вступі. Тому до списку <<ворогів народу>> потрапили літери Ґ, Є,
% І, Ї, Й, О, Ч, Ь (я лише замінив Г на Ґ, їй уже не страшно). Якщо
% користувач бажає мати свій набір дозволених/заборонених літер,
% мусить переозначити команду |\@lost@Asbuk|, додавши чи вилучивши
% потрібні літери. Команди рівня користувача для цього немає, слід
% написати у преамбулі документа щось таке:
%\begin{verbatim}
%\makeatletter
%\def\@lost@Asbuk#1{\ifcase#1\or
%  \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or%\CYRIE\or
%  \CYRZH\or\CYRZ\or\CYRI\or%\CYRII\or\CYRYI\or\CYRISHRT\or
%  \CYRK\or\CYRL\or\CYRM\or\CYRN\or%\CYRO\or
%  \CYRP\or\CYRR\or
%  \CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or\CYRC\or%\CYRCH\or
%  \CYRSH\or\CYRSHCH\or\CYRYU\or\CYRYA\else\@ctrerr\fi}
%\makeatother
%\end{verbatim}
%
% \item Підтримка оформлення додатків окремою книгою (ще) не
% реалізована.
%
% ^^A\item Клас \vakthesis\ не має ніяких засобів для оформлення
% ^^Aпереліку умовних позначень відповідно до рекомендацій ВАК.
%
% \item Колись у майбутньому потрібно зробити, щоб клас міг
% генерувати <<електронний документ>>: гіперпосилання, додавати
% інформацію про автора та про дисертацію до document info section
% PDF-файла тощо.
% ^^A[Використовувати PDF\TeX-примітив |\pdfinfo|. Проблема лише з
% ^^Aкирилицею.]
%
% \item Значна частина автореферату "--- це просто текст з
% дисертації. Було б добре якимось чином пов'язати дисертацію і
% автореферат, щоб автоматизувати вибирання тексту для автореферату
% і <<збереження>> нумерації формул, теорем тощо.
% ^^A[Тобто теорема в авторефераті повинна мати той самий номер, що й в дисертації, незалежно від номера попередньої чи наступної теореми.
% ^^AЗараз я просто перед теоремою змінюю лічильник |theorem| на потрібне значення.
% ^^AAЯ спробував робити це в пакеті з робочою назвою yafp, але він ще на дуже початковій стадії розробки.]
% \end{itemize}
%
%
% \StopEventually{%
% \begin{thebibliography}{9}
%
% \bibitem{lshort}
% Не надто короткий вступ до \LaTeXe~/ T.~Oetіker et~al.; Перекл. з
% англ. М.~Поляков. "--- Книга у різних форматах доступна за адресою
% \url{CTAN:info/lshort/ukrainian}.
%
% \bibitem{vak.guide.2006}
% Довідник здобувача наукового ступеня: Зб. нормат. док. та інформ.
% матеріалів з питань атестації наук. кадрів вищої кваліфікації~/
% Упоряд. Ю.~І.~Цеков; За ред. Р.~В.~Бойка. "--- 3-є вид., випр. і
% допов. "--- К.: Ред. <<Бюл. Вищої атестац. коміс. України>>;
% Вид-во <<Толока>>, 2006. "--- 70~с.
%
% \bibitem{thsgdiff}
% Порівняння офіційних рекомендацій щодо~оформлення дисертацій і авторефератів
% в~Україні /~О.~Барановський. "--- 19~с. "--- Файл доступний за адресою
% \url{https://www.imath.kiev.ua/~baranovskyi/tex/vakthesis/support/thsgdiff/}.
%
% \bibitem{vak.spec_list}
% Перелік спеціальностей, за якими проводяться захист дисертацій на здобуття наукових ступенів кандидата наук і доктора наук, присудження наукових ступенів і присвоєння вчених звань. "---
% Доступний за адресою \url{http://www.vak.org.ua/docs//spec_boards/spec_list.pdf},
% останнє відвідування 12.07.2007.
%
% ^^A\bibitem{zakon} З сайту ВАК про провідні ^^AFIXME: url?
%
% \bibitem{amsthm}
% Using the |amsthm| package~/ Amer. Math. Soc. Ver.~2.20,
% Aug.~2004. Входить до набору AMS-\LaTeX{} як файл
% \url{amsthdoc.tex}.
%
% \bibitem{vak.perelik_forms}
% Переліки та форми документів, які використовуються при атестації наукових та науково-педагогічних працівників. "---
% Доступний за адресою \url{http://www.vak.org.ua/docs//documents/perelik_forms.pdf},
% останнє відвідування 22.04.2008.
%
% ^^A\bibitem{guide1}
% ^^AІнші рекомендації ВАК України
%
% ^^A\bibitem{guide2}
% ^^AІнші рекомендації ВАК України
%
% \end{thebibliography}
%
% }
%
%
% \section{Реалізація}
%
%    \begin{macrocode}
%<*mon2017n40>
\ClassError{\@classname}{Option `guide=mon2017n40' is not available}%
       {File `mon2017n40.clo' is not ready. Use class `mon2017dev.cls' instead.}
%</mon2017n40>
%    \end{macrocode}
%
% \changes{v0.07}{2008/01/08}{Перша публічна версія}
% \changes{v0.09}{2021/07/21}{Додано перевірки, чи завантажено \pkg{babel},
%   перед використанням його команд \cmd{\captions\meta{lang}}}
%
% Опис коду ще не завершено, тому (за замовчуванням) ця частина не включена до документації.
% Я думаю, що це цікаво не для всіх користувачів, тому не є першочерговим завданням.
% Сподіваюся зробити це пізніше.
%
% Класи \vakthesis{} та \vakaref{} ґрунтуються на
% стандартному класі \cls{report}. Тому далі я описую лише зміни.
%    \begin{macrocode}
%<*vakthesis|vakaref>
%<vakthesis>\def\@classname{vakthesis}
%<vakaref>\def\@classname{vakaref}
%    \end{macrocode}
% Підключаємо пакет \pkg{xkeyval},
% щоб організувати опції класу типу \Lopt{key=value}.
% Можливостей \pkg{keyval} для цього недостатньо.
%    \begin{macrocode}
\RequirePackage{xkeyval}
\newcommand\@ptsize{}
\newif\if@restonecol
\newif\if@titlepage
\@titlepagetrue
\newif\if@openright %FIXME: непотрібно, але потрібно для ток
%    \end{macrocode}
% Резервуємо два нові прапорці: для режиму чернетки і для наукового
% ступеня здобувача (кандидат, доктор). А для класу дисертації "---
% ще для міжрядкового інтервалу, як у Ворді.
%    \begin{macrocode}
\newif\if@draftmode
\newif\if@cthesis
%<*vakthesis>
\newif\if@wordlikespacing
\@wordlikespacingtrue
%</vakthesis>
%    \end{macrocode}
%
% \subsection{Оголошення (декларування) опцій}
%
% Оголошуємо опції.
% Замість стандартних
% \cmd{\DeclareOption}, \cmd{\ExecuteOptions}, \cmd{\ProcessOptions}
% використовуються команди
% \cmd{\DeclareOptionX}, \cmd{\ExecuteOptionsX}, \cmd{\ProcessOptionsX}
% з пакета \pkg{xkeyval}.
% Підтримка режиму сумісності тут і далі вилучена.
%
% \subsubsection{Встановлення форматів паперу}
%
% Реально потрібні лише формати паперу A4 та A5.
% Інші формати паперу, оголошені в стандартному класі \cls{report},
% не згадуються в рекомендаціях ВАК.
%
% Немає підтримки <<форматів у межах від $203\times288$
% до $210\times297$ мм>>~\cite[с.~18]{vak.guide.2006}.
% Здається, зараз папір іншого формату, ніж A4,
% у домашніх умовах не використовується (і в магазині не продається).
%^^A\if@compatibility\else
%    \begin{macrocode}
\DeclareOptionX{a4paper}
   {\setlength\paperheight {297mm}%
    \setlength\paperwidth  {210mm}}
\DeclareOptionX{a5paper}
   {\setlength\paperheight {210mm}%
    \setlength\paperwidth  {148mm}}
%    \end{macrocode}
%^^A\DeclareOption{b5paper}
%^^A   {\setlength\paperheight {250mm}%
%^^A    \setlength\paperwidth  {176mm}}
%^^A\DeclareOption{letterpaper}
%^^A   {\setlength\paperheight {11in}%
%^^A    \setlength\paperwidth  {8.5in}}
%^^A\DeclareOption{legalpaper}
%^^A   {\setlength\paperheight {14in}%
%^^A    \setlength\paperwidth  {8.5in}}
%^^A\DeclareOption{executivepaper}
%^^A   {\setlength\paperheight {10.5in}%
%^^A    \setlength\paperwidth  {7.25in}}
%
% \changes{v0.08}{2009/04/01}{Додано опцію \Lopt{a3paper} для підтримки формату паперу A3; вилучено непотрібні опції}
% Нова опція для підтримки формату A3.
% Це можна використовувати разом з опцією \Lopt{landscape} для великих таблиць та ілюстрацій.
%
% TODO:
% Як <<включати>> аркуші формату A3 в документ з основним форматом A4?
% Чи готувати окремо і приєднувати за допомогою пакета \pkg{pdfpages}?
%    \begin{macrocode}
\DeclareOptionX{a3paper}
   {\setlength\paperheight {420mm}%
    \setlength\paperwidth  {297mm}}
%    \end{macrocode}
%
% Опція \Lopt{landscape} визначає альбомну орієнтацію аркуша:
% міняє місцями значення |\paperheight| та |\paperwidth|.
%    \begin{macrocode}
\DeclareOptionX{landscape}
   {\setlength\@tempdima   {\paperheight}%
    \setlength\paperheight {\paperwidth}%
    \setlength\paperwidth  {\@tempdima}}
%    \end{macrocode}
%^^A\fi
%
% \subsubsection{Вибір розміру шрифта}
%
% Тепер оголошуємо опції, що визначають розмір шрифта.
% Ми додаємо лише один розмір 14pt, тому достатньо старого механізму
% (який команда \LaTeX3 уникає змінювати з міркувань сумісності),
% коли |\@ptsize| містить лише одну цифру.
%^^A\if@compatibility
%^^A  \renewcommand\@ptsize{0}
%^^A\else
%    \begin{macrocode}
\DeclareOptionX{10pt}{\renewcommand\@ptsize{0}}
%    \end{macrocode}
%^^A\fi
%    \begin{macrocode}
\DeclareOptionX{11pt}{\renewcommand\@ptsize{1}}
\DeclareOptionX{12pt}{\renewcommand\@ptsize{2}}
%    \end{macrocode}
%
% \changes{v0.08}{2009/04/01}{Додано безпечну обробку ситуації, коли файл \file{size14.clo} відсутній}
% Якщо набір класів і пакетів \pkg{extsizes} не встановлений у системі, то виклик опції \Lopt{14pt} приводив би до катастрофічних наслідків (оскільки були б неозначеними команди на зразок \cmd{\normalsize}).
% Краще уникнути лавини повідомлень про помилки, наприклад, вибравши основний розмір шрифта 12pt, якщо файл \file{size14.clo} відсутній.
%    \begin{macrocode}
\DeclareOptionX{14pt}{\IfFileExists{size14.clo}%
  {\renewcommand\@ptsize{4}}%
  {\renewcommand\@ptsize{2}%
   \ClassError{\@classname}{You cannot use option `14pt'}%
     {File `size14.clo' not found.
      LaTeX package `extsizes' is not installed^^J%
      properly in your system.}}}
%    \end{macrocode}
%
% Роман Нікіфоров повідомив про таку проблему.
% Якщо не вказувати явно опцію розміру шрифта при виклику класу \vakthesis{} (чи \vakaref), а потім викликати пакет \pkg{extsizes}, отримуємо повідомлення про помилку, що нібито файл \file{size4.clo} не знайдено.
% Це пов'язано з тим, що ми використовуємо тут лише одну цифру з розміру шрифта, а пакет \pkg{extsizes} використовує дві, але не переозначує команду |\@ptsize|, якщо викликається без опцій.
% Розв'язання може бути таке: не викликати пакет \pkg{extsizes}.
% У будь-якому разі, цей пакет не варто використовувати, бо він ігнорує і переозначує багато налаштувань, які роблять класи \vakthesis{} та \vakaref.
%
% \subsubsection{Двосторонній чи односторонній друк}
%
%^^A\if@compatibility\else
%    \begin{macrocode}
\DeclareOptionX{oneside}{\@twosidefalse \@mparswitchfalse}
%    \end{macrocode}
%^^A\fi
%    \begin{macrocode}
\DeclareOptionX{twoside}{\@twosidetrue  \@mparswitchtrue}
%    \end{macrocode}
%
% \subsubsection{Режим чернетки}
%
% Прапорець |\if@draftmode| використовується далі
% для змінювання колонтитулів у режимі чернетки.
%    \begin{macrocode}
\DeclareOptionX{draft}{\@draftmodetrue\setlength\overfullrule{5pt}}
%    \end{macrocode}
%^^A\if@compatibility\else
%    \begin{macrocode}
\DeclareOptionX{final}{\@draftmodefalse\setlength\overfullrule{0pt}}
%    \end{macrocode}
%^^A\fi
%
% \subsubsection{Опція для титульної сторінки}
%
% Якщо вибрана опція \Lopt{notitlepage}, то титульна сторінка не показується,
% але нумерація сторінок зберігається, ніби вона є (тобто наступна сторінка матиме номер 2).
%    \begin{macrocode}
\DeclareOptionX{titlepage}{\@titlepagetrue}
%    \end{macrocode}
%^^A\if@compatibility\else
%    \begin{macrocode}
\DeclareOptionX{notitlepage}{\@titlepagefalse}
%    \end{macrocode}
%^^A\fi
%^^A\if@compatibility
%^^A\else
%^^A\DeclareOption{openright}{\@openrighttrue}
%^^A\DeclareOption{openany}{\@openrightfalse}
%^^A\fi
%^^A\if@compatibility\else
%^^A\DeclareOption{onecolumn}{\@twocolumnfalse}
%^^A\fi
%^^A\DeclareOption{twocolumn}{\@twocolumntrue}
%^^A\DeclareOption{leqno}{\input{leqno.clo}}
%^^A\DeclareOption{fleqn}{\input{fleqn.clo}}
%^^A\DeclareOption{openbib}{%
%^^A  \AtEndOfPackage{%
%^^A   \renewcommand\@openbib@code{%
%^^A      \advance\leftmargin\bibindent
%^^A      \itemindent -\bibindent
%^^A      \listparindent \itemindent
%^^A      \parsep \z@
%^^A      }%
%^^A   \renewcommand\newblock{\par}}%
%^^A}
%
% \subsubsection{Вибір міжрядкового інтервалу}
%
% Для класу дисертації оголошуємо опції <<один інтервал>> та <<півтора інтервали>>.
%    \begin{macrocode}
%<*vakthesis>
\DeclareOptionX{1space}{\@wordlikespacingfalse}
\DeclareOptionX{1.5space}{\@wordlikespacingtrue}
%</vakthesis>
%    \end{macrocode}
%
% \subsubsection{Вибір наукового ступеня}
%
% Опція \Lopt{c} "--- кандидатська, \Lopt{d} "--- докторська дисертація.
%    \begin{macrocode}
\DeclareOptionX{c}{\@cthesistrue
  \def\degreename{\cyrk\cyra\cyrn\cyrd\cyri\cyrd\cyra\cyrt}%
  \def\onesupervisorname{\CYRN\cyra\cyru\cyrk\cyro\cyrv\cyri\cyrishrt\
    \cyrk\cyre\cyrr\cyrii\cyrv\cyrn\cyri\cyrk}%
  \def\manysupervisorsname{\CYRN\cyra\cyru\cyrk\cyro\cyrv\cyrii\
    \cyrk\cyre\cyrr\cyrii\cyrv\cyrn\cyri\cyrk\cyri}}
\DeclareOptionX{d}{\@cthesisfalse
  \def\degreename{\cyrd\cyro\cyrk\cyrt\cyro\cyrr}%
  \def\onesupervisorname{\CYRN\cyra\cyru\cyrk\cyro\cyrv\cyri\cyrishrt\
    \cyrk\cyro\cyrn\cyrs\cyru\cyrl\cyrsftsn\cyrt\cyra\cyrn\cyrt}%
  \def\manysupervisorsname{\CYRN\cyra\cyru\cyrk\cyro\cyrv\cyrii\
    \cyrk\cyro\cyrn\cyrs\cyru\cyrl\cyrsftsn\cyrt\cyra\cyrn\cyrt\cyri}}
%    \end{macrocode}
%
% \subsubsection{Опція для вибору різних рекомендацій щодо оформлення дисертацій і авторефератів}
%
% \changes{v0.09}{2021/07/21}{Додано опцію для вибору різних рекомендацій щодо оформлення}
%
% Опція має вигляд \Lopt{guide=\meta{код\_довідника}}.
% У комплекті є файли
% \file{vak2000bs.clo},
% \file{vak2007b6.clo},
% \file{vak2011b910.clo},
% \file{mon2017n40.clo}
% (останній поки що не готовий; замість нього треба користуватися тимчасовими класами \file{mon2017dev.cls} або \file{mon2017dev-aref.cls}).
% Але користувач може створити свій файл і підключити таким чином.
% Файл читається у кінці класу, щоб замінити стандартні налаштування.
%    \begin{macrocode}
\DeclareOptionX{guide}{%
  \IfFileExists{#1.clo}%
    {\AtEndOfClass{\input{#1.clo}}}%
    {\ClassError{\@classname}{You cannot use option `guide=#1'}%
       {File `#1.clo' not found.}}}
%    \end{macrocode}
%
% \subsubsection{Опції, що не підтримуються}
%
%    \begin{macrocode}
\DeclareOptionX*{\ClassError{\@classname}
  {Option `\CurrentOption' not supported}
  {Do not use option `\CurrentOption' please.}}
%    \end{macrocode}
%
% \subsection{Виконання опцій}
%
% Опції за замовчуванням.
%^^A\ExecuteOptions{a4paper,14pt,oneside,final,1.5space,c}% ?: якщо twoside, то з'являється додатковий клей (в розділі 1.3) / from previous version
%    \begin{macrocode}
%<vakthesis>\ExecuteOptionsX{a4paper,14pt,1.5space,oneside,final,c}
%<vakaref>\ExecuteOptionsX{a5paper,10pt,twoside,final,c}
\ProcessOptionsX
%    \end{macrocode}
% Завантажуємо файл класової опції, що містить код, пов'язаний з розміром.
%    \begin{macrocode}
\input{size1\@ptsize.clo}
%    \end{macrocode}
%
% \subsection{Завантаження пакетів}
%
%^^AFIXME: Здається \pkg{indentfirst} вже не потрібен?
%    \begin{macrocode}
\RequirePackage{ifthen}
\RequirePackage{indentfirst}
\RequirePackage{verbatim}
%    \end{macrocode}
%
% \subsection{Макет документа}
%
%    \begin{macrocode}
%<*vakthesis>
% Перепльот. Але неакуратно
\addtolength\oddsidemargin{10mm}
\if@twoside\addtolength\evensidemargin{-10mm}\fi
%</vakthesis>
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
%    \end{macrocode}
%
% \begin{macro}{\baselinestretch}
% Встановлюємо коефіцієнт для |\baselineskip|
% (нормальної відстані між основними лініями сусідніх рядків).
% Для автореферату "--- це звичайний міжрядковий інтервал,
% а для дисертації "--- <<півтора інтервали>> (у розумінні Word).
%
% Традиційно відстань між основними лініями сусідніх рядків
% приблизно на 20~\% більша за розмір шрифта.
% Фактична відстань залежить від розміру та інших характеристик шрифта
% і визначається класом документа.
% Наприклад, \pkg{extsizes} для розміру основного шрифта тексту 14pt
% встановлює |\baselineskip| рівним 17pt (див. файл \file{size14.clo}).
%
% <<Півтора інтервали>> означає, що відстань між рядками приблизно
% у півтора рази більша за розмір шрифта
% (відповідно, <<два інтервали>> "--- приблизно у два рази^^A
% \footnote{Див., наприклад, Гуссенс~М., Миттельбах~Ф., Самарин~А.
% Путеводитель по пакету \LaTeX{} и его расширению \LaTeXe{}: Пер. с англ. "---
% М.: Мир, 1999. "--- С.~71.}).
% Тому команда |\baselinestretch| встановлює відношення
% потрібної відстані до |\baselineskip|:
% приблизні значення 1.3 (<<півтора інтервали>>) та 1.6 (<<два інтервали>>).
% Пакет \pkg{setspace} діє більш тонко:
% встановлює різні значення для різних розмірів шрифта.
%
% Але Microsoft Word має свої уявлення про міжрядковий інтервал\footnote{%
% Ще при розробці перших версій \vakthesis{} я ніяк не міг задовольнити
% побажання одного автора, що надто серйозно сприйняв вимоги ВАК:
% півтора інтервали, верхній та нижній береги по 20 мм, 30 рядків на сторінці.
% При таких параметрах на сторінці вміщується більше рядків (аж 33).
% Врешті-решт, відкрив Word, порахував і був дуже здивований: точно 30!
% Виявляється (цитую за довідкою Word), що
% <<\emph{Одинарный} "---
% Определяется наибольшим размером шрифта в данной строке,
% к которому добавляется величина, зависящая от используемого шрифта.
% \emph{Полуторный} "---
% Превышает одинарный междустрочный интервал в полтора раза.
% \emph{Двойной} "---
% Превышает одинарный междустрочный интервал в два раза.>>}.
% Тому, щоб задовольнити рекомендації ВАК, означимо |\baselinestretch| так,
% щоб при берегах по 20 мм на сторінці вміщувалося 30 рядків:
% \[
% \cmd{\baselinestretch} =
% \frac{\cmd{\paperheight} - 20\mbox{ мм} - 20\mbox{ мм}}
%      {30 \cdot \cmd{\baselineskip}}
% \approx 1{,}434
% \]
% (це для розміру 14pt, для інших розмірів "--- аналогічно).
% Коефіцієнт $1{,}5$ є надто великим, як на мене (лише 29 рядків).
%    \begin{macrocode}
\renewcommand\baselinestretch{}
%<*vakthesis>
\if@wordlikespacing
  \ifcase \@ptsize \relax % 10pt
    \renewcommand\baselinestretch{2.031}%
  \or % 11pt
    \renewcommand\baselinestretch{1.792}%
  \or % 12pt
    \renewcommand\baselinestretch{1.681}%
  \else % 14pt et al.
    \renewcommand\baselinestretch{1.434}%
  \fi
\fi
%</vakthesis>
%    \end{macrocode}
% Потрібні розміри сторінки користувач вибирає самостійно,
% наприклад, за допомогою пакета \pkg{geometry}.
% \end{macro}
%
%    \begin{macrocode}
\setlength\parskip{0\p@ \@plus \p@}
\@lowpenalty   51
\@medpenalty  151
\@highpenalty 301
\setcounter{topnumber}{2}
\renewcommand\topfraction{.7}
\setcounter{bottomnumber}{1}
\renewcommand\bottomfraction{.3}
\setcounter{totalnumber}{3}
\renewcommand\textfraction{.2}
\renewcommand\floatpagefraction{.5}
\setcounter{dbltopnumber}{2}
\renewcommand\dbltopfraction{.7}
\renewcommand\dblfloatpagefraction{.5}
%<*vakthesis>
\def\ps@plain{\let\@mkboth\@gobbletwo
  \def\@oddhead{\small\hfil\thepage}%
  \def\@evenhead{\small\thepage\hfil}%
  \let\@oddfoot\@empty\let\@evenfoot\@empty}
%</vakthesis>
%<*vakaref>
\def\ps@plain{\let\@mkboth\@gobbletwo
  \def\@oddhead{\small\hfil\thepage\hfil}%
  \def\@evenhead{\small\hfil\thepage\hfil}
  \let\@oddfoot\@empty\let\@evenfoot\@empty}
%</vakaref>
\if@draftmode
  \let\ps@draft\ps@plain
  \g@addto@macro\ps@draft{\def\chaptermark#1{\markboth{#1}{#1}}%
    \def\@oddfoot{\scriptsize \draftname\ $\circ$\ \today\hfil \rightmark}%
    \def\@evenfoot{\scriptsize \leftmark\hfil \draftname\ $\circ$\ \today}}
  \let\ps@plain\ps@draft
  \def\draftname{Draft Version}%
  \AtBeginDocument{%
    \@ifpackageloaded{babel}{\addto\captionsukrainian{%
    \def\draftname{{\cyr\CYRCH\cyre\cyrr\cyrn\cyre\cyrt\cyrk\cyra}}}%
    }{}%
  }
%TODO: В режимі чернетки зробити нумерацію сторінок в межах розділу?
\fi
\if@twoside
  \def\ps@headings{%
      \let\@oddfoot\@empty\let\@evenfoot\@empty
      \def\@evenhead{\thepage\hfil\slshape\leftmark}%
      \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
      \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markboth {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
            \@chapapp\ \thechapter. \ %
        \fi
        ##1}}{}}%
    \def\sectionmark##1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\z@
          \thesection. \ %
        \fi
        ##1}}}}
\else
  \def\ps@headings{%
    \let\@oddfoot\@empty
    \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
    \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
            \@chapapp\ \thechapter. \ %
        \fi
        ##1}}}}
\fi
\def\ps@myheadings{%
    \let\@oddfoot\@empty\let\@evenfoot\@empty
    \def\@evenhead{\thepage\hfil\slshape\leftmark}%
    \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
    \let\@mkboth\@gobbletwo
    \let\chaptermark\@gobble
    \let\sectionmark\@gobble
    }
%    \end{macrocode}
%
% \subsection{Розмітка документа}
%
% \subsubsection{Титульна сторінка}
%
% \begin{macro}{\@nocmdgiven}
%    Тепер означуємо команди, необхідні для титульної сторінки.
%    Спочатку допоміжна команда, що генерує помилку, коли потрібної
%    команди (|\author|, |\title| тощо) немає в документі.
%    \begin{macrocode}
\def\@nocmdgiven#1{%
  \ClassError{\@classname}
  {No \protect#1 given}
  {Use command \protect#1 in your document.}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\placeholder}
%    Це шаблон під дату на звороті автореферату, коли вона не задана.
%    Чому воно тут означується?
%\iffalse
%\newcommand{\placeholder}[2][100pt]{\parbox[t]{#1}{%
%  \hrulefill\par\centering\tiny(#2)}}
%\newcommand{\placeholder}[2][100pt]{\raisebox{-1.2\height}{%
%    \shortstack{\rule{#1}{0.4pt}\\\tiny\slshape#2}}}
%\fi
%    \begin{macrocode}
\newcommand{\placeholder}[1][100pt]{\rule{#1}{0.4pt}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\title}
%    Я так і не вирішив, чи є потреба переозначувати тут цю
%    команду\ldots
%\iffalse
%FIXME: \renewcommand{\title} \renewcommand{\author} ?
%\fi
%    \begin{macrocode}
%%\renewcommand{\title}[1]{\def\@title{#1}}
\def\@title{<\CYRN\cyra\cyrz\cyrv\cyra\
  \cyrd\cyri\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyrii\cyryi>%
  \@nocmdgiven{\title}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\author}
%    і цю\ldots
%    \begin{macrocode}
%%\renewcommand{\author}[1]{\def\@author{#1}}
\def\@author{<\CYRP\cyrr\cyrii\cyrz\cyrv\cyri\cyrshch\cyre{}
%    \end{macrocode}
%    Між прізвищем та ім'ям потрібен пропуск, бо команда |\emphsurname|
%    по ньому їх розділяє, щоб \textsc{виділити} прізвище.
%    \begin{macrocode}
  \CYRII\cyrm'\cyrya\
  \CYRP\cyro\ \cyrb\cyra\cyrt\cyrsftsn\cyrk\cyro\cyrv\cyrii>%
  \@nocmdgiven{\author}}
%    \end{macrocode}
% \end{macro}
%    Означуємо лічильник, що рахує кількість наукових керівників. Для
%    чого?
%    \begin{macrocode}
\newcounter{@supervisors@count}
%    \end{macrocode}
% \begin{macro}{\supervisor}
%    Команда |\supervisor| задає інформацію про наукового керівника.
%    Для класу дисертації вона має два аргументи: <<ім'я>> і <<науковий
%    ступінь, вчене звання>>(розділені комою). Для класу автореферату
%    додається ще <<місце роботи, посада>> (розділені комою).
%    \begin{macrocode}
%<vakthesis>\newcommand{\supervisor}[2]{%
%<vakaref>\newcommand{\supervisor}[3]{%
  \stepcounter{@supervisors@count}%
%    \end{macrocode}
%    Далі "--- стандартний код. Якщо це перша команда |\supervisor|, то
%    розпочинаємо список, інакше "--- додаємо до існуючого списку.
%    \begin{macrocode}
  \ifnum\value{@supervisors@count}=1
%<*vakthesis>
    \def\@supervisors{\\{#1}{#2}}%
  \else
    \g@addto@macro\@supervisors{\\{#1}{#2}}%
  \fi}
%</vakthesis>
%<*vakaref>
    \def\@supervisors{\\{#1}{#2}{#3}}%
  \else
    \g@addto@macro\@supervisors{\\{#1}{#2}{#3}}%
  \fi}
%</vakaref>
\if@cthesis
%    \end{macrocode}
%    Значення за замовчуванням, якщо кандидатська дисертація.
%    \begin{macrocode}
  \def\@supervisors{\@nocmdgiven{\supervisor}%
    \\{<\CYRP\cyrr\cyrii\cyrz\cyrv\cyri\cyrshch\cyre\
       \CYRII\cyrm'\cyrya\ \CYRP\cyro\ \cyrb\cyra\cyrt\cyrsftsn\cyrk\cyro\cyrv\cyrii>}%
      {<\cyrn\cyra\cyru\cyrk\cyro\cyrv\cyri\cyrishrt\ \cyrs\cyrt\cyru\cyrp\cyrii\cyrn\cyrsftsn,
       \cyrv\cyrch\cyre\cyrn\cyre\ \cyrz\cyrv\cyra\cyrn\cyrn\cyrya>}%
%<*vakaref>
      {<\cyrm\cyrii\cyrs\cyrc\cyre\ \cyrr\cyro\cyrb\cyro\cyrt\cyri, \cyrp\cyro\cyrs\cyra\cyrd\cyra>}%
%</vakaref>
  }%
\else
%    \end{macrocode}
%    Для докторської дисертації може не буде наукового консультанта.
%    Тому команди може не бути, звичайно.
%    \begin{macrocode}
  \let\@supervisors\@empty
\fi
%    \end{macrocode}
% \end{macro}
%    Тепер зробимо для опонентів. Це лише для автореферату. Треба десь
%    разом зібрати всі зарезервовані слова\ldots\ а не тут\ldots
%    \begin{macrocode}
%<*vakaref>
\def\oneopponentname{\CYRO\cyrf\cyrii\cyrc\cyrii\cyrishrt\cyrn\cyri\cyrishrt\
  \cyro\cyrp\cyro\cyrn\cyre\cyrn\cyrt}
\def\manyopponentsname{\CYRO\cyrf\cyrii\cyrc\cyrii\cyrishrt\cyrn\cyrii\
  \cyro\cyrp\cyro\cyrn\cyre\cyrn\cyrt\cyri}
%    \end{macrocode}
%    Аналогічно, вводимо новий лічильник.
%    \begin{macrocode}
\newcounter{@opponents@count}
%    \end{macrocode}
% \begin{macro}{\opponent}
%    Аналогічно. Аж нецікаво.
%    \begin{macrocode}
\newcommand{\opponent}[3]{%
  \stepcounter{@opponents@count}%
  \ifnum\value{@opponents@count}=1
    \def\@opponents{\\{#1}{#2}{#3}}%
  \else
    \g@addto@macro\@opponents{\\{#1}{#2}{#3}}%
  \fi}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@opponents}
%    \begin{macrocode}
\def\@opponents{\@nocmdgiven{\opponent}%
  \\{<\CYRP\cyrr\cyrii\cyrz\cyrv\cyri\cyrshch\cyre\
     \CYRII\cyrm'\cyrya\ \CYRP\cyro\ \cyrb\cyra\cyrt\cyrsftsn\cyrk\cyro\cyrv\cyrii>}%
    {<\cyrn\cyra\cyru\cyrk\cyro\cyrv\cyri\cyrishrt\ \cyrs\cyrt\cyru\cyrp\cyrii\cyrn\cyrsftsn,
     \cyrv\cyrch\cyre\cyrn\cyre\ \cyrz\cyrv\cyra\cyrn\cyrn\cyrya>}%
    {<\cyrm\cyrii\cyrs\cyrc\cyre\ \cyrr\cyro\cyrb\cyro\cyrt\cyri,
     \cyrp\cyro\cyrs\cyra\cyrd\cyra>}}
%</vakaref>
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\specialityfilename}
%    Далі про спеціальність. Команда |\specialityfilename| задає ім'я
%    файла, що встановлює відповідність між шифром спеціальності та
%    назвою спеціальності. Суфікс імені файла означає дату і наказ ВАК
%    України, яким затверджені зміни до переліку спеціальностей. А
%    змінювати вони люблять.
%    \begin{macrocode}
\def\specialityfilename{speciality.20070212N70}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\speciality}
%    Команда має один обов'язковий і два факультативні аргументи:
%\begin{verbatim}
%\speciality[математичний аналіз]{01.01.01}[фізико-математичних наук]
%\end{verbatim}
%    Тому стандартною командою |\newcommand| означити її не вийде.
%    Доведеться морочитися з усіма випадками. Якщо заданий лише шифр
%    спеціальності, то з файла спеціальностей потрібно прочитати назву
%    спеціальності та галузь науки, за якою присуджується науковий
%    ступінь. Якщо раптом шифр невідомий, то для цього перший
%    факультативний аргумент (і другий теж). Але якщо навіть відомий,
%    необхідно користуватися другим факультативним аргументом, якщо за
%    цією спеціальністю можливе присудження за різними галузями науки.
%    \begin{macrocode}
\def\speciality{\@ifnextchar[\n@speciality\n@specialitya}
%    \end{macrocode}
%    Якщо задано назву спеціальності, то запам'ятовуємо її\ldots
%    \begin{macrocode}
\def\n@speciality[#1]{%
  \def\@specialityname{#1}%
  \@speciality}
%    \end{macrocode}
%    і далі аналізуємо шифр спеціальності. Тобто назва, схоже, не буде
%    братися з файла, навіть якщо шифр буде знайдено. Справді, навіщо
%    потрібен факультативний аргумент, якщо він перезаписується.
%    \begin{macrocode}
\def\@speciality#1{%
  \@parse@speciality#1.\@nil
  \def\@specialitycode{\@speca.\@specb.\@specc}%
  \@ifnextchar[\ns@speciality\s@specialitya}
%    \end{macrocode}
%    Якщо задано галузь науки, то запам'ятовуємо її. І все, навіть файл
%    читати не будемо.
%    \begin{macrocode}
\def\ns@speciality[#1]{\def\@science{#1}}
%    \end{macrocode}
%    А якщо не задано, доведеться шукати у файлі. І візьмемо те, що
%    після слеша.
%    \begin{macrocode}
\def\s@specialitya{%
  \@find@speciality
  \def\@science{\expandafter\@afterslash\@found\@nil}}
%    \end{macrocode}
%    Нарешті, повертаємося до випадку, коли назву спеціальності не
%    задано.
%    \begin{macrocode}
\def\n@specialitya#1{%
%    \end{macrocode}
%    О, цей код уже був. Як некрасиво! Це я таке понаписував?!
%    \begin{macrocode}
  \@parse@speciality#1.\@nil
  \def\@specialitycode{\@speca.\@specb.\@specc}%
  \@ifnextchar[\s@speciality\ns@specialitya}
%    \end{macrocode}
%    Отже, якщо назву спеціальності не задано, а галузь науки
%    задано\ldots
%    \begin{macrocode}
\def\s@speciality[#1]{%
  \def\@science{#1}%
  \@find@speciality
  \def\@specialityname{\expandafter\@beforeslash\@found\@nil}}
%    \end{macrocode}
%    І якщо ні назву спеціальності, ні галузь науки не задано, то
%    обидві шукаємо у файлі.
%    \begin{macrocode}
\def\ns@specialitya{%
  \@find@speciality
  \def\@specialityname{\expandafter\@beforeslash\@found\@nil}%
  \def\@science{\expandafter\@afterslash\@found\@nil}}
\def\@find@speciality{%
  \findinfile{\specialityfilename}{\@specialitycode}%
  \ifthenelse{\equal{\@found}{}}
%TODO: два повідомлення погано. переписати
  {\def\@found{<\cyrn\cyra\cyrishrt\cyrm\cyre\cyrn\cyru\cyrv\cyra\cyrn\cyrn\cyrya\
     \cyrs\cyrp\cyre\cyrc\cyrii\cyra\cyrl\cyrsftsn\cyrn\cyro\cyrs\cyrt\cyrii>%
     \ClassError{\@classname}{Unknown speciality code (speciality name)}
     {I can not determinate speciality name.\MessageBreak
      Command \protect\speciality\space has two optional arguments. Use them please.}/%
     <\cyrg\cyra\cyrl\cyru\cyrz\cyrsftsn\ \cyrn\cyra\cyru\cyrk>%
     \ClassError{\@classname}{Unknown speciality code (science)}
     {I can not determinate science.\MessageBreak
      Command \protect\speciality\space has two optional arguments. Use them please.}}}
  {\relax}}
\def\@specialitycode{<\cyrsh\cyri\cyrf\cyrr\
  \cyrs\cyrp\cyre\cyrc\cyrii\cyra\cyrl\cyrsftsn\cyrn\cyro\cyrs\cyrt\cyrii>%
  \@nocmdgiven{\speciality}}
\def\@specialityname{%
  <\cyrn\cyra\cyrishrt\cyrm\cyre\cyrn\cyru\cyrv\cyra\cyrn\cyrn\cyrya\
  \cyrs\cyrp\cyre\cyrc\cyrii\cyra\cyrl\cyrsftsn\cyrn\cyro\cyrs\cyrt\cyrii>}
\def\@science{<\cyrg\cyra\cyrl\cyru\cyrz\cyrsftsn\ \cyrn\cyra\cyru\cyrk>}
%    \end{macrocode}
%    Розбиваємо шифр на компоненти. В принципі, це й не потрібно. Це
%    все для того, щоб забрати крапку в кінці, якщо вона є: за
%    допомогою четвертого аргумента. Але що тут розповідати, це відомий
%    спосіб.
%    \begin{macrocode}
\def\@parse@speciality#1.#2.#3.#4\@nil{%
  \def\@speca{#1}%
  \def\@specb{#2}%
  \def\@specc{#3}}
%    \end{macrocode}
%    Нарешті, прийшли до читання файла! Резервуємо новий вхідний потік.
%    \begin{macrocode}
\newread\@specialityfile
\def\findinfile#1#2{%
  \def\@required{#2}%
  \def\@found{}%
%    \end{macrocode}
%    Відкриваємо для читання.
%    \begin{macrocode}
  \openin\@specialityfile #1\relax
  \ifeof\@specialityfile
    \typeout{No file #1.}
  \else
%    \end{macrocode}
%    Якщо файл існує, то дописуємо його до списку файлів (чи щось таке,
%    нецікаво зараз) і читаємо рядок за рядком.
%    \begin{macrocode}
%? призначення цих команд?
    \@addtofilelist{#1}
    \ProvidesFile{#1}[(\@classname)]
    \@readline
  \fi
%    \end{macrocode}
%    Коли закінчили роботу з файлом, закрити треба.
%    \begin{macrocode}
  \closein\@specialityfile}
\def\@readline{%
  \read\@specialityfile to\@currline
  \ifeof\@specialityfile
  \else
%    \end{macrocode}
%    Якщо вдалося прочитати рядок, то застосовуємо до нього |\test|.
%    \begin{macrocode}
    \expandafter\test\@currline\@nil
    \next
  \fi}
%    \end{macrocode}
%    І що ж робить цей |\test|?
%    \begin{macrocode}
\def\test#1\@nil{%
%    \end{macrocode}
%    Якщо все гаразд, то далі знову буде |\@readline|.
%    \begin{macrocode}
  \let\next\@readline
  \def\@temp{#1}%
%    \end{macrocode}
%    Якщо прочитали щось непорожнє\ldots
%    \begin{macrocode}
  \ifx\@temp\@empty \else\@test#1\@nil \fi}
\def\@test#1 #2\@nil{%
%    \end{macrocode}
%    і його перша частина (до пропуска) збігається з тим, що шукали, то
%    на вихід даємо другу частину (після пропуска). І зупиняємося.
%    \begin{macrocode}
  \ifthenelse{\equal{\@required}{#1}}
  {\def\@found{#2}\let\next\relax}
  {}}
%    \end{macrocode}
%    Все просто. Але цікаво, що рекурсія тут використовується.
%    \begin{macrocode}
%TODO: якщо файл спеціальностей чомусь не має слеша, то збій
\def\@beforeslash#1/#2\@nil{#1}
\def\@afterslash#1/#2\@nil{#2}
%    \end{macrocode}
%    А ніяк тут не перевіряється, чи є той слеш, чи немає. Я думаю, це
%    не так страшно, треба уважно файл редагувати. Але колись зроблю,
%    може, перевірку.
% \end{macro}
% \begin{macro}{\udc}
%    Універсальна десяткова класифікація.
%    \begin{macrocode}
\newcommand{\udc}[1]{\def\@udc{#1}}
\def\@udc{<\cyrii\cyrn\cyrd\cyre\cyrk\cyrs\ \CYRU\CYRD\CYRK>}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\institution}
%    Установа, де виконана робота. Місто пишеться на титульній. Для
%    автореферату на обкладинці пишеться місто, де розміщена установи,
%    в якій створена рада.
%    \begin{macrocode}
%<*vakthesis>
%FIXME: institution or institute?
\newcommand{\institution}[2]{%
  \@split@institution#1,,\@nil
  \def\@town{#2}}
%</vakthesis>
%<*vakaref>
\newcommand{\institution}[1]{\@split@institution#1,,\@nil}
%</vakaref>
\def\@split@institution#1,#2,#3\@nil{%
  \def\@institution{#1}%
%FIXME: no transformsentence
  \def\@institution@office{\ignorespaces
  #2}}
\def\@institution{<\CYRN\cyra\cyrz\cyrv\cyra\
  \cyro\cyrr\cyrg\cyra\cyrn\cyrii\cyrz\cyra\cyrc\cyrii\cyryi,\
  \cyrv\ \cyrya\cyrk\cyrii\cyrishrt\
  \cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrn\cyra\
  \cyrd\cyri\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyrii\cyrya>}
\def\@institution@office{\ignorespaces}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\council}
%    Спеціалізована рада. Знову нестандартне місце для факультативного
%    аргумента і багато випадків. Знову рутина.
%    \begin{macrocode}
%<*vakaref>
%% Синтаксис команди
%% \council{шифр ради}[установа, відомство]{назва установи}{адреса}
%FIXME: council or board or ...?
\newcommand{\council}[1]{\catcode`м=11
  \def\@council@code{#1}%
  \@ifnextchar[\o@council\@council}
\def\o@council[#1,#2]#3#4{%
  \def\@council@institutiont{#1}%
  \def\@council@institutiont@office{#2}%
  \@council{#3}{#4}}
\def\@council#1#2{%
  \def\@council@institution{#1}%
  \def\@council@address{#2}%
  \@extracttown#2\@nil}
\def\@extracttown#1.#2,#3\@nil{%
  \global\def\@town{\ignorespaces
    \@ifnextchar~{\@gobble}{\relax}#2}}
\def\@council@code{<\cyrsh\cyri\cyrf\cyrr\ \cyrr\cyra\cyrd\cyri>}
\def\@council@institution{<\CYRN\cyra\cyrz\cyrv\cyra\ \cyru\cyrs\cyrt\cyra\cyrn\cyro\cyrv\cyri,
  \cyrv\ \cyrya\cyrk\cyrii\cyrishrt\ \cyrs\cyrt\cyrv\cyro\cyrr\cyre\cyrn\cyra\ \cyrr\cyra\cyrd\cyra>}
\def\@council@address{<\cyra\cyrd\cyrr\cyre\cyrs\cyra>}
\newcommand{\secretary}[1]{\def\@secretary{#1}}
%</vakaref>
\def\@town{<\CYRM\cyrii\cyrs\cyrt\cyro>}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\library}
%    Бібліотека, де зберігається дисертація.
%    \begin{macrocode}
%<*vakaref>
%% Синтаксис команди
%% \library{назва}{адреса}
\newcommand{\library}[2]{%
  \def\@library@institution{#1}%
  \def\@library@address{#2}}
\def\@library@institution{}
%    \end{macrocode}
% \end{macro}
%\iffalse
%\def\@gobble@comma#1,{#1}%FIXME: це що?
%\fi
% \begin{macro}{\linstitution}
%    Провідна установа.
%    \begin{macrocode}
%% Синтаксис команди
%% \linstitution{назва, підрозділ, відомство}{місто}
%% або
%% \linstitution{назва, відомство}{місто}
% Без обробки аргумента
\newcommand{\linstitution}[2]{%
  \def\@linstitution{#1}%
  \def\@linstitution@town{#2}}
% Попередня версія: з обробкою аргумента
% \newcommand{\linstitution}[2]{%
%   \edef\@linstitution{\zap@commaspace#1, \@empty}%
%   \expandafter\@split@linstitution\@linstitution\@nil
%   \def\@linstitution@town{#2}}
% \def\@split@linstitution#1,#2,#3\@nil{%
%   \def\@linstitution{#1}%
%   \ifx\relax#2\relax\else\def\@linstitution@dept{#2}\fi
%   \ifx\relax#3\relax\else\def\@linstitution@office{#3}\fi}
% % see latex.ltx \zap@space
% \def\zap@commaspace#1, #2{%
%   #1%
%   \ifx#2\@empty\else,\expandafter\zap@commaspace\fi
%   #2}
% %\def\@linstitution{<\CYRN\cyra\cyrz\cyrv\cyra\
% %  \cyrp\cyrr\cyro\cyrv\cyrii\cyrd\cyrn\cyro\cyryi\
% %  \cyru\cyrs\cyrt\cyra\cyrn\cyro\cyrv\cyri>}
% %\let\@linstitution@town\@town
%</vakaref>
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\date}
%    Дата написання дисертації.
%    \begin{macrocode}
%<*vakthesis>
\def\date#1{\def\@year{#1}}
%</vakthesis>
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\defencedate}
% \begin{macro}{\postdate}
%    Дата захисту і дата розсилання автореферату.
%    \begin{macrocode}
%<*vakaref>
%% Синтаксис команди
%% \defencedate{YYYY/MM/DD}{TT:MM}
%% \postdate{YYYY/MM/DD}
\newcommand\defencedate[2]{%
  \@split@date#1\@nil
  \def\@defencedate{#1}%
  \def\@defencetime{#2}}
\def\@split@date#1/#2/#3\@nil{\def\@year{#1}}
\newcommand\postdate[1]{\def\@postdate{#1}}
%\def\typedate#1/#2/#3\@nil{\begingroup
%  \def\year{#1}\def\month{#2}\def\day{#3}\today\endgroup}
%FIXME: correct ukr date: <<??>>
\def\typedate#1/#2/#3\@nil{<<\number#3>>~\ifcase#2\or
  \cyrs\cyrii\cyrch\cyrn\cyrya\or
  \cyrl\cyryu\cyrt\cyro\cyrg\cyro\or
  \cyrb\cyre\cyrr\cyre\cyrz\cyrn\cyrya\or
  \cyrk\cyrv\cyrii\cyrt\cyrn\cyrya\or
  \cyrt\cyrr\cyra\cyrv\cyrn\cyrya\or
  \cyrch\cyre\cyrr\cyrv\cyrn\cyrya\or
  \cyrl\cyri\cyrp\cyrn\cyrya\or
  \cyrs\cyre\cyrr\cyrp\cyrn\cyrya\or
  \cyrv\cyre\cyrr\cyre\cyrs\cyrn\cyrya\or
  \cyrzh\cyro\cyrv\cyrt\cyrn\cyrya\or
  \cyrl\cyri\cyrs\cyrt\cyro\cyrp\cyra\cyrd\cyra\or
  \cyrg\cyrr\cyru\cyrd\cyrn\cyrya\fi
  \space\number#1~\cyrr.}
\def\typedateholder{<<\placeholder[5mm]>>~\placeholder[25mm]\ \@year~\cyrr.}
\def\typetime#1:#2\@nil{#1\ifnum#2=0\ \cyrg\cyro\cyrd\cyri\cyrn\cyrii\else\textsuperscript{#2}\fi}
\def\typetimeholder{\placeholder[5mm]\ \cyrg\cyro\cyrd\cyri\cyrn\cyrii}
%</vakaref>
\def\@year{\the\year}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\secret}
%    Гриф обмеження розповсюдження відомостей: таємно, для службового
%    користування.
%    \begin{macrocode}
%<*vakthesis>
\newcommand\secret[1]{\def\@secret{#1}}
%</vakthesis>
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\manuscript}
% \begin{macro}{\monograph}
%    Тип дисертації.
%    \begin{macrocode}
%<*vakaref>
\newcommand\manuscript{\def\@thesistype{\cyrr\cyru\cyrk\cyro\cyrp\cyri\cyrs}}
\newcommand\monograph{\def\@thesistype{\cyrm\cyro\cyrn\cyro\cyrg\cyrr\cyra\cyrf\cyrii\cyrya}}
\manuscript
%</vakaref>
%    \end{macrocode}
% \end{macro}
% \end{macro}
%    \begin{macrocode}
%<*vakthesis>
%  \if@titlepage
%    \end{macrocode}
% \begin{macro}{\maketitle}
%    Команда, яка генерує титульну сторінку. Але всі дії всередині |\@maketitle|.
%    \begin{macrocode}
  \newcommand\maketitle{\begin{titlepage}%
  \let\footnotesize\small
  \let\footnoterule\relax
  \let \footnote \thanks
%  \null\vfil
%  \vskip 60\p@
%  \begin{center}%
%    {\LARGE \@title \par}%
%    \vskip 3em%
%    {\large
%     \lineskip .75em%
%      \begin{tabular}[t]{c}%
%        \@author
%      \end{tabular}\par}%
%      \vskip 1.5em%
%    {\large \@date \par}%       % Set date in \large size.
%  \end{center}\par
%  \@thanks
%  \vfil\null
  \@maketitle
  \end{titlepage}%
  \setcounter{footnote}{0}%
  \global\let\thanks\relax
  \global\let\maketitle\relax
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@date\@empty
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\author\relax
  \global\let\date\relax
  \global\let\and\relax
}
%\else
%\newcommand\maketitle{%\par
%  \begingroup
%    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
%    \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
%    \long\def\@makefntext##1{\parindent 1em\noindent
%            \hb@xt@1.8em{%
%                \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
%    \if@twocolumn
%      \ifnum \col@number=\@ne
%        \@maketitle
%      \else
%        \twocolumn[\@maketitle]%
%      \fi
%    \else
%      \newpage
%      \global\@topnum\z@   % Prevents figures from going at top of page.
%      \@maketitle
%    \fi
%    \thispagestyle{plain}\@thanks
%  \endgroup
%  \setcounter{footnote}{0}%
%  \global\let\thanks\relax
%  \global\let\maketitle\relax
%  \global\let\@maketitle\relax
%  \global\let\@thanks\@empty
%  \global\let\@author\@empty
%  \global\let\@date\@empty
%  \global\let\@title\@empty
%  \global\let\title\relax
%  \global\let\author\relax
%  \global\let\date\relax
%  \global\let\and\relax
%}
%\def\@maketitle{%
%  \newpage
%  \null
%  \vskip 2em%
%  \begin{center}%
%  \let \footnote \thanks
%    {\LARGE \@title \par}%
%    \vskip 1.5em%
%    {\large
%      \lineskip .5em%
%      \begin{tabular}[t]{c}%
%        \@author
%      \end{tabular}\par}%
%    \vskip 1em%
%    {\large \@date}%
%  \end{center}%
%  \par
%  \vskip 1.5em}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@maketitle}
%    Всю роботу робить |\@maketitle|.
%    \begin{macrocode}
\def\@maketitle{%
  {\scshape
   \@ifundefined{@institution@office}{\relax}{\@institution@office\par}
   \@institution\par}
  \vspace{\stretch{3}}%
  {\raggedleft \@ifundefined{@secret}{}{\@secret\hfill}%
     \CYRN\cyra\ \cyrp\cyrr\cyra\cyrv\cyra\cyrh\
     \cyrr\cyru\cyrk\cyro\cyrp\cyri\cyrs\cyru \par}%
  \vspace{\stretch{2}}%
  {\bfseries\expandafter\emphsurname\@author \par}%
  \vspace{\stretch{2}}%
  {\raggedleft \CYRU\CYRD\CYRK\ \@udc \par}%
  \vspace{\stretch{1}}%
  {\large\bfseries\scshape \@title \par}%
  \vspace{\stretch{2}}%
  \@specialitycode\ --- \@specialityname\par
  \vspace{\stretch{2}}%
  \CYRD\cyri\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyrii\cyrya\
    \cyrn\cyra\ \cyrz\cyrd\cyro\cyrb\cyru\cyrt\cyrt\cyrya\
    \cyrn\cyra\cyru\cyrk\cyro\cyrv\cyro\cyrg\cyro\
%    \end{macrocode}
% \changes{v0.08}{2009/04/01}{Переміщено розрив рядка і приєднано ступінь до галузі наук}
%    \begin{macrocode}
    \cyrs\cyrt\cyru\cyrp\cyre\cyrn\cyrya\linebreak[1]%
    \degreename\cyra\
    \@science\par%?\linebreak[1]%
  \vspace{\stretch{2}}%
  {\raggedleft
   \let\\\@format@person
   \ifx\@supervisors\@empty
%FIXME: зайве? чи вирівнювати?
     \hbox{}\hbox{}\hbox{}
   \else
     \@supervisors@caption\@supervisors\relax
   \fi
   \par}%
  \vspace{\stretch{3}}%
  \@town\ --- \@year}
%\fi
%</vakthesis>
%    \end{macrocode}
% \end{macro}
%    Тепер для класу автореферату.
%    \begin{macrocode}
%<*vakaref>
\newenvironment{listofpersons}[1]
  {\list{#1\hfil}{\topsep0pt\parsep0pt\itemsep.5\parskip
   \ifx\@supervisors\@empty
     \settowidth\@tempdima{#1}%
     \setlength\labelwidth{\@tempdima}%
   \else
     \settowidth\@tempdima{\@supervisors@caption}
     \settowidth\@tempdimb{\@opponents@caption}
     \ifdim\@tempdima>\@tempdimb
       \setlength\labelwidth{\@tempdima}%
     \else
       \setlength\labelwidth{\@tempdimb}%
     \fi
   \fi
   \setlength\leftmargin{\labelwidth}%
   \addtolength\leftmargin{\labelsep}%
   \def\makelabel##1{##1}%
   \def\makephantomlabel##1{\phantom{##1}}}%
   \rightskip\@flushglue% ! нерівний правий край, але при дуже вузькій колонці погано
                        % ? можуть виникати Underfull \hbox
  }
  {\endlist}
\newcommand{\maketitle}{%
    \begin{titlepage}%
    \@ifundefined{@council@institutiont}
      {\let\@council@institutiont\@council@institution}{\relax}%
    \@ifundefined{@council@institutiont@office}
      {\let\@council@institutiont@office\relax}{\relax}%
    \begin{center}%
    \@makecover
    \end{center}%
    \newpage
    \parindent=0pt\relax
%    \parskip=10pt plus 2pt minus 2pt
    \parskip=10pt plus 10pt minus 10pt
    \@makereverse
    \end{titlepage}%
}
\def\@makecover{%
  {\scshape\@council@institutiont@office\par\@council@institutiont\par}
  \vspace{\stretch{3}}%
  {\bfseries\expandafter\emphsurname\@author \par}%
  \vspace{\stretch{2}}%
  {\raggedleft \CYRU\CYRD\CYRK\ \@udc \par}%
  \vspace{\stretch{1}}%
  {\large\bfseries\scshape \@title \par}%
  \vspace{\stretch{2}}%
  \@specialitycode\ --- \@specialityname\par
  \vspace{\stretch{3}}%
  \CYRA\cyrv\cyrt\cyro\cyrr\cyre\cyrf\cyre\cyrr\cyra\cyrt\linebreak[1]%
  \cyrd\cyri\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyrii\cyryi\
    \cyrn\cyra\ \cyrz\cyrd\cyro\cyrb\cyru\cyrt\cyrt\cyrya\
    \cyrn\cyra\cyru\cyrk\cyro\cyrv\cyro\cyrg\cyro\
    \cyrs\cyrt\cyru\cyrp\cyre\cyrn\cyrya\linebreak[1]%
    \degreename\cyra\ \@science\par%?\linebreak[1]%
  \vspace{\stretch{3}}%
  \@town\ --- \@year}
\def\@makereverse{%
  \CYRD\cyri\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyrii\cyrie\cyryu\
    \cyrie\ \@thesistype.\par
  \CYRR\cyro\cyrb\cyro\cyrt\cyra\
    \cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrn\cyra\ \cyrv\
    \transformsentence{L}{\@institution}
%TODO: casus
%FIXME: no transformsentence
%    \@ifundefined{@institution@office}{\relax}{\ \
%    \transformsentence{G}\expandafter{\@institution@office }}%
%    \@ifundefined{@institution@office}{\let\@institution@office\relax}{\relax}%
    \if\@institution@office\ignorespaces
    \else\
    \transformsentence{G}{\@institution@office}
    \fi
    .\par
  {\let\\\@format@person
   \ifx\@supervisors\@empty
   \else
     \begin{listofpersons}{\@supervisors@caption}
       \@supervisors\relax
     \end{listofpersons}
   \fi
   \begin{listofpersons}{\@opponents@caption}
     \@opponents\relax
   \end{listofpersons}}%
% Без обробки аргумента
  \@ifundefined{@linstitution}{}{%
    \CYRP\cyrr\cyro\cyrv\cyrii\cyrd\cyrn\cyra\ \cyru\cyrs\cyrt\cyra\cyrn\cyro\cyrv\cyra:\
    \@linstitution, \@linstitution@town.\par}
% Попередня версія: з обробкою аргумента
%   \@ifundefined{@linstitution}{}{%
%     \CYRP\cyrr\cyro\cyrv\cyrii\cyrd\cyrn\cyra\ \cyru\cyrs\cyrt\cyra\cyrn\cyro\cyrv\cyra:\
%     \@linstitution
%     \@ifundefined{@linstitution@dept}{}{, \@linstitution@dept}%
%     \@ifundefined{@linstitution@office}{}{, \@linstitution@office}%
%     , \@linstitution@town.\par}
  \vfill%\vspace{30pt plus 30pt minus 30pt}%
  \CYRZ\cyra\cyrh\cyri\cyrs\cyrt\
    \cyrv\cyrii\cyrd\cyrb\cyru\cyrd\cyre\cyrt\cyrsftsn\cyrs\cyrya\
    \@ifundefined{@defencedate}{\typedateholder}
      {\expandafter\typedate\@defencedate\@nil}%
    \ \cyro\
    \@ifundefined{@defencetime}{\typetimeholder}
      {\expandafter\typetime\@defencetime\@nil}%
\ \cyrn\cyra\ \cyrz\cyra\cyrs\cyrii\cyrd\cyra\cyrn\cyrn\cyrii\
    \cyrs\cyrp\cyre\cyrc\cyrii\cyra\cyrl\cyrii\cyrz\cyro\cyrv\cyra\cyrn\cyro\cyryi\
    \cyrv\cyrch\cyre\cyrn\cyro\cyryi\ \cyrr\cyra\cyrd\cyri\
    \@council@code\ \transformsentence{G}{\@council@institution}
    \ \cyrz\cyra\ \cyra\cyrd\cyrr\cyre\cyrs\cyro\cyryu:
    \@council@address.\par
  \vfil%\smallskip
  \ifx\@library@institution\@empty
    \let\@library@institution\@council@institution
  \fi
  \CYRZ\ \cyrd\cyri\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyrii\cyrie\cyryu\
    \cyrm\cyro\cyrzh\cyrn\cyra\
    \cyro\cyrz\cyrn\cyra\cyrishrt\cyro\cyrm\cyri\cyrt\cyri\cyrs\cyrsftsn\
    \cyru\ \cyrb\cyrii\cyrb\cyrl\cyrii\cyro\cyrt\cyre\cyrc\cyrii\
    \transformsentence{G}{\@library@institution}
    \@ifundefined{@library@address}{.\par}
      {\ \cyrz\cyra\ \cyra\cyrd\cyrr\cyre\cyrs\cyro\cyryu:
       \@library@address.\par}
  \vfill%\vspace{10pt plus 10pt minus 10pt}%
  \CYRA\cyrv\cyrt\cyro\cyrr\cyre\cyrf\cyre\cyrr\cyra\cyrt\
    \cyrr\cyro\cyrz\cyrii\cyrs\cyrl\cyra\cyrn\cyri\cyrishrt\
    \@ifundefined{@postdate}{\typedateholder}
      {\expandafter\typedate\@postdate\@nil}\par
  \vfill%\vspace{20pt plus 20pt minus 20pt}%
  \CYRU\cyrch\cyre\cyrn\cyri\cyrishrt\
  \cyrs\cyre\cyrk\cyrr\cyre\cyrt\cyra\cyrr\newline
  \cyrs\cyrp\cyre\cyrc\cyrii\cyra\cyrl\cyrii\cyrz\cyro\cyrv\cyra\cyrn\cyro\cyryi\
  \cyrv\cyrch\cyre\cyrn\cyro\cyryi\ \cyrr\cyra\cyrd\cyri\hfill
  %\placeholder{\cyrp\cyrii\cyrd\cyrp\cyri\cyrs}\quad
  \@secretary\par}
%</vakaref>
\def\@supervisors@caption{%
  \ifnum\value{@supervisors@count}>1
    \manysupervisorsname:%
  \else
%<*vakthesis>
    \onesupervisorname
%</vakthesis>
%<*vakaref>
    \onesupervisorname:% символ : додано на вимогу спецради
%</vakaref>
  \fi}
%<*vakaref>
\def\@opponents@caption{%
  \ifnum\value{@opponents@count}>1
    \manyopponentsname:%
  \else
    \oneopponentname:% символ : додано за аналогією з наук. кер.
  \fi}
%</vakaref>
%<*vakthesis>
\def\@format@person#1#2{\linebreak[4]%
  \textbf{#1}, \linebreak[1]\@@format@person#2,,\@nil
  \futurelet\next\@delimit@person}
\def\@@format@person#1,#2,#3\@nil{#1%
  \if\relax#2\relax\else, \linebreak[0]#2\fi}
\def\@delimit@person{\ifx\relax\next\else,\fi}
%</vakthesis>
%<*vakaref>
\def\@format@person#1#2#3{\item
  \@@format@person#2\newline \textbf{#1},\newline
  \@@format@person#3\let\makelabel\makephantomlabel
  \futurelet\next\@delimit@person}
\def\@@format@person#1,#2{#1, #2}
\def\@delimit@person{\ifx\relax\next.\else;\fi}
%</vakaref>
\def\emphsurname#1 #2{\textsc{#1} #2}
%    \end{macrocode}
%    З титульною сторінкою покінчили. Пора братися за серйозні речі.
%
% \subsubsection{Рубрикація: розділи, підрозділи і~т.~д.}
%
% \changes{v0.09}{2021/07/21}{Додано факультативні аргументи
% для ненумерованих рубрик}
%
% Команди |\part| і |\chapter| за допомогою |\secdef|
% відокремлють два випадки:
% звичайна форма команди рубрикації й форма з зірочкою.
% Класи \vakthesis{} і \vakaref{} додають до змісту
% і звичайні, і рубрики з зірочкою.  
% Тому треба додати можливість
% використовувати факультативні аргументи для останніх.
% Олександр Червинський запитував про це 2009/06/09.
%
% Переозначимо |\secdef| так,
% щоб вона діяла однаково для обох випадків.
%    \begin{macrocode}
\def\secdef#1#2{\@ifstar{\@dblarg{#2}}{\@dblarg{#1}}}
\newcommand*\chaptermark[1]{}
%<vakthesis>\setcounter{secnumdepth}{3}
%<*vakaref>
\setcounter{secnumdepth}{-2}
\newcounter {part}
%</vakaref>
\newcounter {chapter}
\newcounter {section}[chapter]
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\newcounter {subparagraph}[paragraph]
%<vakaref>\renewcommand \thepart {\@Roman\c@part}
\renewcommand \thechapter {\@arabic\c@chapter}
\renewcommand \thesection {\thechapter.\@arabic\c@section}
\renewcommand\thesubsection   {\thesection.\@arabic\c@subsection}
\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection}
\renewcommand\theparagraph    {\thesubsubsection.\@arabic\c@paragraph}
\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
\newcommand\@chapapp{\chaptername}
%    \end{macrocode}
%
% \begin{macro}{\@make@chapapp}
% \changes{v0.08}{2009/04/01}{Додано захист команди \cmd{\\} у заголовках розділів/додатків}
% Команда |\@make@chapapp| має різні означення залежно від того, де викликається: вона записує заголовок розділу ВЕЛИКИМИ літерами, але нічого не робить із заголовком додатку.
% Виклик |\centering| всередині |\@makechapterhead| приводить до такого переозначення команди |\\|, що вона вже не може пройти через |\MakeUppercase|
% (ймовірно, означення є крихким, але я не знаю подробиць).
% Тому потрібно захистити |\\| і дозволити використання цієї команди в аргументі команди |\chapter|.
% (Якщо раптом хтось використовуватиме |\\| для примусового розбивання заголовка розділу, хоча, на мою думку, це погана ідея.)
%    \begin{macrocode}
\def\@make@chapapp#1{\let\\\protected@dblbs\MakeUppercase{#1}}
\def\protected@dblbs{\noexpand\linebreak}
%    \end{macrocode}
% \end{macro}
%
% \changes{v0.08}{2009/04/01}{Змінено відступи у командах рубрикації}
%
% \begin{macro}{\part}
% \changes{v0.09}{2021/07/21}{Додано заборону розриву рядка чи сторінки
%   після заголовка структурної частини}
% Команда |\part| означена лише в класі \vakaref.
% Призначена для структурних частин автореферату.
% Означення дуже просте у порівнянні з класом \cls{report}.
%    \begin{macrocode}
%<*vakaref>
\newcommand\part{%
%  \if@openright
%    \cleardoublepage
%  \else
%    \clearpage
%  \fi
%  \thispagestyle{plain}%
%  \if@twocolumn
%    \onecolumn
%    \@tempswatrue
%  \else
%    \@tempswafalse
%  \fi
%  \null\vfil
  \secdef\@part\@spart}
%    \end{macrocode}
%
% \begin{macro}{\@part}
% Ми не зануляємо |\markboth|, бо це потрібно для поміток у режимі чернетки.
% Назва структурної частини пишеться ВЕЛИКИМИ літерами, з невеликими відступами перед і після.
% Команда |\@endpart| також нам не потрібна.
% Сума відступів кратна |\baselineskip| ($15\mbox{ pt} + 9\mbox{ pt} = 2\cdot 12\mbox{ pt}$).
%    \begin{macrocode}
\def\@part[#1]#2{%
    \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
      \addcontentsline{toc}{part}{#1}%
    \fi
    \markboth{#1}{#1}%
    \vskip 15\p@
    {\centering
     \interlinepenalty \@M
     \normalfont
%    \end{macrocode}
% Сергій Лисовенко помітив 2010/04/15,
% що заголовок структурної частини автореферату
% (тобто аргумент команди |\part|)
% може відриватися від наступного тексту.
% Оригінальна команда |\part| з класу \cls{report}
% оформлює заголовок окремою сторінкою,
% тому така проблема не виникає.
% Отже, треба заборонити розриви після заголовка командою |\nobreak|.
%    \begin{macrocode}
     \ifnum \c@secnumdepth >-2\relax
       \normalsize\bfseries \@make@chapapp{\partname}\nobreakspace\thepart
       \par\nobreak
%       \vskip 20\p@
     \fi
     \normalsize \bfseries \@make@chapapp{#2}\par\nobreak}%
%    \@endpart}
    \vskip 9\p@}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@spart}
% За змістом аналогічно |\@part|. ^^AFIXME: Можливо, варто робити це однією командою?
% Додаємо факультативний аргумент.
%    \begin{macrocode}
\def\@spart[#1]#2{%
    \addcontentsline{toc}{part}{#1}%
    \markboth{#1}{#1}%
    \vskip 15\p@
    {\centering
     \interlinepenalty \@M
     \normalfont
%    \end{macrocode}
% Так само, як у |\@part|, забороняємо розриви після заголовка.
%    \begin{macrocode}
     \normalsize \bfseries \@make@chapapp{#2}\par\nobreak}%
%    \@endpart}
    \vskip 9\p@}
%</vakaref>
%    \end{macrocode}
%^^A\def\@endpart{\vfil\newpage
%^^A              \if@twoside
%^^A               \if@openright
%^^A                \null
%^^A                \thispagestyle{empty}%
%^^A                \newpage
%^^A               \fi
%^^A              \fi
%^^A              \if@tempswa
%^^A                \twocolumn
%^^A              \fi}
% \changes{v0.09}{2021/07/21}{Додано сумісний з~\pkg{hyperref}
% варіант команди}
% Додавання ще одного, факультативного, аргументу
% призводить до проблем з пакунком \pkg{hyperref}.
% Чому виникають проблеми і чому вони саме так вирішуються, описано нижче,
% в розділі, що стосується команди |\@ssect|.
%    \begin{macrocode}
\AtBeginDocument{%
  \@ifpackageloaded{hyperref}{%
    \def\@spart[#1]#2{%
      \Hy@MakeCurrentHrefAuto{part*}%
      \Hy@raisedlink{%
        \hyper@anchorstart{\@currentHref}\hyper@anchorend
      }%
      \H@old@spart[#1]{#2}%
    }%
    \Hy@AtBeginDocument{%
      \@ifpackageloaded{nameref}{%
        \long\def\@spart[#1]#2{%
          \NR@gettitle{#2}%
          \NR@spart[#1]{#2}%
        }%
      }{}%
    }%
  }{}%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% Команди |\chapter|, |\section|, |\subsection| та |\subsubsection| означені лише в класі \vakthesis.
%
% \begin{macro}{\chapter}
% Розділ має починатися на новій сторінці, тому викликаємо |\clearpage|.
% Далі встановлюємо стиль цієї сторінки \pstyle{plain}
% (який переозначений відповідно до рекомендацій ВАК).
%    \begin{macrocode}
%<*vakthesis>
\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
                    \thispagestyle{plain}%
%    \end{macrocode}
% Забороняємо плаваючим об'єктам з'являтися зверху сторінки.
%    \begin{macrocode}
                    \global\@topnum\z@
%    \end{macrocode}
% Дозволяємо відступ у першому абзаці після заголовка.
%    \begin{macrocode}
                    \@afterindenttrue
%    \end{macrocode}
% Для |*|-варіанту команди |\chapter| викликаємо |\@schapter|,
% а для звичайного варіанту "--- |\@chapter|.
%    \begin{macrocode}
                    \secdef\@chapter\@schapter}
%    \end{macrocode}
%
% \begin{macro}{\@chapter}
% Викликається для нумерованого розділу.
% Якщо лічильник \Lcount{secnumdepth} більший, ніж $-1$, то номер розділу відображається.
% Також на термінал видається повідомлення про новий розділ.
%    \begin{macrocode}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                      \refstepcounter{chapter}%
                      \typeout{\@chapapp\space\thechapter.}%
%    \end{macrocode}
% \changes{v0.08}{2009/04/01}{Родо-нумераційний заголовок розділу додається у зміст}
% У зміст пишемо родо-нумераційний заголовок
%^^AFIXME: як правильно перекласти українською <<родо-нумерационный заголовок>>?
% (тобто <<Розділ~1>> або <<Додаток~А>>,
% а не лише число чи букву, як у стандартному класі \cls{report}).
%    \begin{macrocode}
                      \addcontentsline{toc}{chapter}%
                        {\protect\numberline{\@chapapp\nobreakspace\thechapter}#1}%
                    \else
                      \addcontentsline{toc}{chapter}{#1}%
                    \fi
%    \end{macrocode}
% Зберігаємо альтернативну назву розділу командою |\chaptermark|
% і додаємо вертикальні відступи до переліку ілюстрацій і таблиць.
%    \begin{macrocode}
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
%    \end{macrocode}
% Тепер викликаємо |\@makechapterhead|, яка форматує заголовок розділу.
% Опція \Lopt{twocolumn} не підтримується.
% Це залишилося зі стандартного класу \cls{report}.
%^^AFIXME: вилучити \if@twocolumn?
%    \begin{macrocode}
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}
%    \end{macrocode}
%
% \begin{macro}{\@makechapterhead}
% Команда, що фактично форматує заголовок нумерованого розділу.
% Спочатку невеликий вертикальний відступ.
% Сума відступів приблизно кратна |\baselineskip| ($8\mbox{ pt} + 40\mbox{ pt} \approx 2\cdot 1{,}434\cdot 17\mbox{ pt}$).
% Центруємо заголовок, і відновлюємо основний шрифт документа.
%    \begin{macrocode}
\def\@makechapterhead#1{%
  \vspace*{8\p@}%
  {\centering \normalfont
%    \end{macrocode}
% Перевіряємо, чи відображати номер розділу.
%    \begin{macrocode}
    \ifnum \c@secnumdepth >\m@ne
%    \end{macrocode}
% Вибираємо основний кегль документа.
% \changes{v0.08}{2009/04/01}{Родо-\hspace{0pt}нумераційний заголовок розділу оформлюється світлим}
% Тематичний заголовок пишемо жирним (нижче), а родо-нумераційний "--- ні.
% |\@make@chapapp| робить слово <<Розділ>> великими літерами,
% а зі словом <<Додаток>> не робить нічого.
% Вилучено додатковий відступ між родо"=нумераційним заголовком і тематичним.
%    \begin{macrocode}
        \normalsize \@make@chapapp{\@chapapp}\space \thechapter
        \par\nobreak
%         \vskip 10\p@
    \fi
%    \end{macrocode}
% Забороняємо розрив сторінки всередині або після заголовка.
% Закінчуємо вертикальним відступом (більшим, ніж перед заголовком).
%    \begin{macrocode}
    \interlinepenalty\@M
    \normalsize \bfseries \@make@chapapp{#1}\par\nobreak
    \vskip 40\p@
  }}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@schapter}
% Викликається для ненумерованого розділу.
% На відміну від стандартного \cls{report}, додається до змісту,
% тому робимо те, що й у команді |\@chapter|.
% Додаємо факультативний аргумент.
%    \begin{macrocode}
\def\@schapter[#1]#2{\addcontentsline{toc}{chapter}{#1}%
                 \chaptermark{#1}%
                 \addtocontents{lof}{\protect\addvspace{10\p@}}%
                 \addtocontents{lot}{\protect\addvspace{10\p@}}%
                 \if@twocolumn
                   \@topnewpage[\@makeschapterhead{#2}]%
                 \else
                   \@makeschapterhead{#2}%
                   \@afterheading
                 \fi}
%    \end{macrocode}
% \changes{v0.09}{2021/07/21}{Додано сумісний з~\pkg{hyperref}
% варіант команди}
% Додавання ще одного, факультативного, аргументу
% призводить до проблем з пакунком \pkg{hyperref}.
% Чому виникають проблеми і чому вони саме так вирішуються, описано нижче,
% в розділі, що стосується команди |\@ssect|.
%    \begin{macrocode}
\AtBeginDocument{%
  \@ifpackageloaded{hyperref}{%
    \def\@schapter[#1]#2{%
      \begingroup
        \let\@mkboth\@gobbletwo
        \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}%
        \Hy@raisedlink{%
          \hyper@anchorstart{\@currentHref}\hyper@anchorend
        }%
      \endgroup
      \H@old@schapter[#1]{#2}%
    }%
    \Hy@AtBeginDocument{%
      \@ifpackageloaded{nameref}{%
        \def\@schapter[#1]#2{%
          \NR@gettitle{#2}%
          \NR@schapter[#1]{#2}%
        }%
      }{}%
    }%
  }{}%
}
%    \end{macrocode}
%
% \begin{macro}{\@makeschapterhead}
% Команда, що фактично форматує заголовок ненумерованого розділу.
% Аналогічно до |\@makechapterhead|, але номер розділу не пишеться.
%    \begin{macrocode}
\def\@makeschapterhead#1{%
  \vspace*{8\p@}%
  {\centering
    \normalfont
    \interlinepenalty\@M
    \normalsize \bfseries \@make@chapapp{#1}\par\nobreak
    \vskip 40\p@
  }}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\section}
% Це дає звичайну рубрику ^^AFIXME: коректна назва?
% з відступами перед і після рубрики.
% Відступ перед приблизно у $1{,}5$~рази більший, ніж відступ після
% (див. Шульмейстер, с.~390, або Вигдорчик, с.~73).
% Рубрика має абзацний відступ, і перший абзац теж з відступом.
% Назва рубрики форматується як |\normalsize\bfseries| і з рваним правим краєм
% (щоб уникнути переносів у назві).
%    \begin{macrocode}
\newcommand\section{\@startsection {section}{1}{\parindent}%
                                   {3.5ex \@plus 1ex \@minus .2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\normalfont\normalsize\bfseries
                                    \rightskip\@flushglue}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\subsection}
% Це дає рубрику у підбір до тексту. ^^AFIXME: коректна назва?
% Відступ перед рубрикою дорівнює відступу після рубрики вищого рівня. ^^AFIXME: чому?
% Рубрика має абзацний відступ.
% Назва рубрики форматується як |\normalsize\bfseries|.
%    \begin{macrocode}
\newcommand\subsection{\@startsection{subsection}{2}{\parindent}%
                                     {2.3ex\@plus 1ex \@minus .2ex}%
                                     {-1em}%
                                     {\normalfont\normalsize\bfseries}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\subsubsection}
% Аналогічно попередньому, але з меншим відступом перед рубрикою.
%    \begin{macrocode}
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\parindent}%
                                     {1.5ex\@plus 1ex \@minus .2ex}%
                                     {-1em}%
                                     {\normalfont\normalsize\bfseries}}
%</vakthesis>
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\paragraph}
% Команди |\paragraph| і |\subparagraph| означені і для дисертації, і для автореферату,
% і призначені для дрібніших рубрик документа, які не повинні потрапляти у зміст:
% наприклад, для частин вступу
% <<Актуальність теми>>, <<Зв'язок роботи з науковими програмами, планами, темами>> тощо.
% ^^AFIXME: Чи це правильно? відповідає вимогам ВАК? принципу логічної розмітки документа?
%    \begin{macrocode}
\newcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
                                    {1ex \@plus .2ex \@minus .1ex}%
                                    {-1em}%
                                    {\normalfont\normalsize\bfseries}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\subparagraph}
% Аналогічно |\paragraph|, але назва рубрики курсивом.
%    \begin{macrocode}
\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
                                       {1ex \@plus .2ex \@minus .1ex}%
                                       {-1em}%
                                      {\normalfont\normalsize\itshape}}
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
%% означено в latex.ltx
\def\@startsection#1#2#3#4#5#6{%
  \if@noskipsec \leavevmode \fi
  \par
  \@tempskipa #4\relax
  \@afterindenttrue
  \ifdim \@tempskipa <\z@
    \@tempskipa -\@tempskipa \@afterindentfalse
  \fi
  \if@nobreak
    \everypar{}%
  \else
    \addpenalty\@secpenalty\addvspace\@tempskipa
  \fi
%    \end{macrocode}
% Для підтримки факультативних аргументів
% потрібна команда |\@dblarg| в обох випадках.
%    \begin{macrocode}
  \@ifstar
    {\@dblarg{\@ssect{#1}{#3}{#4}{#5}{#6}}}%
%                    ~~~~ потрібно для toc
    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth
    \let\@svsec\@empty
  \else
    \refstepcounter{#1}%
    \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  \fi
  \@tempskipa #5\relax
  \ifdim \@tempskipa>\z@
    \begingroup
      #6{%
        \@hangfrom{\hskip #3\relax\@svsec}%
          \interlinepenalty \@M #8\@@par}%
    \endgroup
    \csname #1mark\endcsname{#7}%
    \addcontentsline{toc}{#1}{%
      \ifnum #2>\c@secnumdepth \else
        \protect\numberline{\csname the#1\endcsname}%
      \fi
      #7}%
  \else
    \def\@svsechd{%
      #6{\hskip #3\relax
      \@svsec #8\@addpunct{.}\@nopunctnoskip{#5}}% крапка після заголовка у підбір. команда з amsgen. перевіряти? немає пропуска, якщо немає знаків пунктуації
      \csname #1mark\endcsname{#7}%
      \addcontentsline{toc}{#1}{%
        \ifnum #2>\c@secnumdepth \else
          \protect\numberline{\csname the#1\endcsname}%
        \fi
        #7}}%
  \fi
  \@xsect{#5}}
\def\@seccntformat#1{\csname the#1\endcsname.\enskip}
%</vakthesis|vakaref>
% У цьому довіднику ВАК не ставиться крапка.
%<*vak2011b910>
\def\@seccntformat#1{\csname the#1\endcsname\enskip}
%</vak2011b910>
%    \end{macrocode}
% \begin{macro}{\@ssect}
% Додаємо факультативний аргумент.
%    \begin{macrocode}
%<*vakthesis|vakaref>
\def\@ssect#1#2#3#4#5[#6]#7{%
%          ~~ потрібно для toc
  \@tempskipa #4\relax
  \ifdim \@tempskipa>\z@
    \begingroup
      #5{%
        \@hangfrom{\hskip #2}%
          \interlinepenalty \@M #7\@@par}%
    \endgroup
    \csname #1mark\endcsname{#6}%
    \addcontentsline{toc}{#1}{#6}%
  \else
    \def\@svsechd{#5{\hskip #2\relax #7\@addpunct{.}\@nopunctnoskip{#4}}%
      \csname #1mark\endcsname{#6}%
      \addcontentsline{toc}{#1}{#6}}%
  \fi
  \@xsect{#4}}
%    \end{macrocode}
% \changes{v0.09}{2021/07/21}{Додано сумісний з~\pkg{hyperref}
% варіант команди}
% Зміна кількості аргументів команди |\@ssect|
% виявляється фатальною для пакунка \pkg{hyperref},
% бо він теж переозначає цю команду і тепер не може зробити це коректно.
% Олексій Панасенко повідомив про цю проблему 2009/07/13.
% Тому додаємо тут переозначення варіанту з \pkg{hyperref} і \pkg{nameref},
% а саме: з файла \file{hpdftex.def} від 2016/06/24 v6.83q
% (хоча в інших hyperref-драйверах означення цієї команди таке саме)
% і з файла \file{nameref.sty} від 2016/05/21 v2.44 відповідно.
%    \begin{macrocode}
\AtBeginDocument{%
  \@ifpackageloaded{hyperref}{%
    \def\@ssect#1#2#3#4#5[#6]#7{%
      \Hy@MakeCurrentHrefAuto{section*}%
      \setlength{\Hy@SectionHShift}{#2}%
      \begingroup
        \toks@{\H@old@ssect{#1}{#2}{#3}{#4}{#5}[#6]}%
        \toks\tw@\expandafter{%
          \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}%
          #7%
        }%
      \edef\x{\endgroup
        \the\toks@{\the\toks\tw@}%
      }\x
    }%
%    \end{macrocode}
% Проблема в тому, що \pkg{hyperref} не відразу викликає пакунок \pkg{nameref},
% а відкладає це до початку документа
% (за допомогою своєї команди |\Hy@AtBeginDocument|).
% Якщо просто написати тут переозначення команд, це не спрацює,
% бо виклик \pkg{nameref} відбувається пізніше.
% Тому використовуємо теж спеціальну команду |\Hy@AtBeginDocument|.
%    \begin{macrocode}
    \Hy@AtBeginDocument{%
      \@ifpackageloaded{nameref}{%
        \def\@ssect#1#2#3#4#5[#6]#7{%
          \NR@gettitle{#7}%
          \NR@ssect{#1}{#2}{#3}{#4}{#5}[#6]{\Sectionformat{#7}{#2}}%
        }%
      }{}%
    }%
  }{}%
}
%    \end{macrocode}
% \end{macro}
% \changes{v0.09}{2021/07/21}{Додано команди
% \cmd{\@addpunct}, \cmd{\nopunct}, \cmd{\frenchspacing} з~\pkg{amsthm}
% для гнучкої обробки знаків пунктуації в~заголовках}
% \begin{macro}{\@addpunct}
% \begin{macro}{\nopunct}
% \begin{macro}{\@nopunctnoskip}
% \begin{macro}{\frenchspacing}
% Команди |\@addpunct| і |\nopunct| означені в \pkg{amsthm}
% (або у файлі \file{amsgen.sty} "--- трохи інший варіант першої з них).
% Якщо користувач не викликає пакунки \pkg{amsmath}, \pkg{amsthm} тощо,
% ці команди будуть недоступні.
% Андрій Боровий повідомив про цю проблему 2009/05/08.
%
% Тому додаємо тут означення цих команд з \pkg{amsthm}
% (American Mathematical Society володіє авторським правом
% і супроводжує цей пакунок).
%
% Немає потреби перевіряти |\AtBeginDocument|,
% чи неозначено команди і~тільки тоді додавати їхні означення.
% Бо обробка знаків пунктуації однаково не працюватиме,
% якщо належним чином не переозначено |\frenchspacing| (див. нижче).
% А належне означення |\frenchspacing| перевіряти важко.
% Тому простіше продублювати означення.
% Якщо пізніше користувач викликає в~документі \pkg{amsmath} чи \pkg{amsthm},
% то ці означення будуть замінені відповідними означеннями з цих пакунків
% без будь-яких конфліктів.
%
% Хороше пояснення того, як працює команда |\@addpunct|, можна прочитати тут:
% \url{https://tex.stackexchange.com/a/277105}.
%    \begin{macrocode}
% \AtBeginDocument{%
%   \@ifundefined{@addpunct}{%
%     \def\@addpunct#1{%
%       \relax\ifhmode
%         \ifnum\spacefactor>\@m \else#1\fi
%       \fi}}{}
%   \@ifundefined{nopunct}{%
%     \def\nopunct{\spacefactor 1007 }}{}
% }
\def\@addpunct#1{%
  \relax\ifhmode
    \ifnum\spacefactor>\@m \else#1\fi
  \fi}
\def\nopunct{\spacefactor 1007 }
%\def\@nopunctnoskip#1{\ \ifnum\spacefactor=1007 \hskip#1\fi}
\def\@nopunctnoskip#1{\ifnum\spacefactor=1007 \ \hskip#1\fi}
\def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004%
  \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 }
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% 
% \subsubsection{Переліки}^^AFIXME: Списки?
%^^A \subsubsection{Різні корисні оточення}
%
% \changes{v0.08}{2009/04/01}{Змінено горизонтальні та вертикальні відступи у переліках, схему нумерації/літерації}
%
% Ні Гиленсон, ні Шульмейстер, ні Вигдорчик не приділяють (на мою думку) достатньої уваги питанням набору переліків (а в рекомендаціях ВАК з оформлення дисертацій взагалі жодного слова про це).
% Але, можливо, тих кілька речень чи абзаців має бути достатньо для досвідченого верстальника?
%
% Порядкові номери переліків мають бути вирівняні за крапками чи дужками, що слідують за ними.
% Це стандартна поведінка \LaTeX.
% Найдовший порядковий номер набирають з нормальним відступом (тобто треба розуміти "--- зі звичайним абзацним відступом?).
% Ось тут не так: \LaTeX{} обчислює певним чином відступи, щоб мітки вміщувалися, але це правило не задовольняється.
% Отже, маємо змінити стандартні відступи.
%
% У тому, як нумерувати/літерувати переліки, залишається певна свобода.
% Тому будемо використовувати для переліків таку схему нумерації/літерації (яка навіяна книгою Мильчин, Чельцова):
%\begin{enumerate}
%\item арабські цифри з крапкою,
%\item малі кириличні літери з дужкою,
%\item <<великі>> римські цифри з крапкою,
%\item великі кириличні літери з крапкою.
%\end{enumerate}
%
%^^A\if@twocolumn
%^^A  \setlength\leftmargini  {2em}
%^^A\else
%^^A  \setlength\leftmargini  {2.5em}
%^^A\fi
%^^A\leftmargin  \leftmargini
%^^A\setlength\leftmarginii  {2.2em}
%^^A\setlength\leftmarginiii {1.87em}
%^^A\setlength\leftmarginiv  {1.7em}
%^^A\if@twocolumn
%^^A  \setlength\leftmarginv  {.5em}
%^^A  \setlength\leftmarginvi {.5em}
%^^A\else
%^^A  \setlength\leftmarginv  {1em}
%^^A  \setlength\leftmarginvi {1em}
%^^A\fi
%^^A\setlength  \labelsep  {.5em}
%^^A\setlength  \labelwidth{\leftmargini}
%^^A\addtolength\labelwidth{-\labelsep}
%
% \begin{macro}{\leftmargin}
% \begin{macro}{\leftmargini}
% \begin{macro}{\leftmarginii}
% \begin{macro}{\leftmarginiii}
% \begin{macro}{\leftmarginiv}
% \begin{macro}{\leftmarginv}
% \begin{macro}{\leftmarginvi}
% \begin{macro}{\labelwidth}
% \begin{macro}{\labelsep}
% Зробимо переозначення не зараз, а на початку документа, що дозволяє врахувати розміри вибраного шрифта.
% Цей трюк запозичений з класів AMS.
% Стандартний \LaTeX{} задає ці значення у відносних одиницях |em| безпосередньо у~класах.
% Встановлюємо |\leftmargini| так, щоб лівий край найширшої (можливої) мітки починався на абзацній відстані, а самі мітки мали достатньо місця.
% Аналогічно для решти |\leftmarginN|.
%    \begin{macrocode}
\AtBeginDocument{%
%    \end{macrocode}
% Значення |\labelsep| "--- як у стандартних класах.
%    \begin{macrocode}
  \setlength\labelsep{.5em}%
%    \end{macrocode}
% Літера <<Ж>> "--- найширша в українському алфавіті, а її номер "--- 8, якщо не використовувати <<Ґ>>.
% За щасливим збігом, <<VIII>> "--- найширше число з першого десятка за римською нумерацією.
% Щодо цифр, то припускаємо, що в усіх переліках від 10 до 99~пунктів.
%    \begin{macrocode}
  \setcounter{enumi}{88}%    88.
  \setcounter{enumii}{8}%     ж)
  \setcounter{enumiii}{8}% VIII.
  \setcounter{enumiv}{8}%     Ж.
  \settowidth\leftmargini{\labelenumi\hskip\labelsep}%
  \addtolength\leftmargini{\parindent}%
  \settowidth\leftmarginii{\labelenumii\hskip\labelsep}%
  \settowidth\leftmarginiii{\labelenumiii\hskip\labelsep}%
  \settowidth\leftmarginiv{\labelenumiv\hskip\labelsep}%
  \setcounter{enumi}{0}\setcounter{enumii}{0}%
  \setcounter{enumiii}{0}\setcounter{enumiv}{0}%
%    \end{macrocode}
% У переліках останнього рівня залишаємо відступи, щоб тільки вмістилося довге тире,
% якщо раптом хтось захоче, крім чотирьох |enumerate|, написати ще й |itemize|.
%    \begin{macrocode}
  \setlength\leftmarginv{1.5em}%
  \leftmarginvi\leftmarginv
  \leftmargin\leftmargini
  \setlength\labelwidth{\leftmargini}%
  \addtolength\labelwidth{-\labelsep}%
  \@listi}
%    \end{macrocode}
%
% FIXME: Насправді найчастіше переліки містять не більше 9~пунктів.
% Тому в таких переліках буде надто великий відступ.
% Але ми вимагаємо дві цифри ще й тому, що такі самі відступи застосовуються до |itemize|, де на першому рівні використовуються довге тире (йому не вистачає місця, зарезервованого під одну цифру).
%
% FIXME: Інша проблема: немає жорсткої вимоги використовувати послідовність 8. ж) VIII. Ж.
% Користувач може змінити нумерацію/літерацію.
% Тоді обчислені відступи не будуть відповідати розмірам міток.
% Робити однакові відступи на всіх рівнях (скажімо, найширші "--- VIII.)?
% Вони занадто великі.
% Можливо, варто користуватися спец. пакетами, що дозволяють повністю налаштовувати вигляд переліків?
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\partopsep}
% Якщо користувач залишає порожній рядок перед оточенням переліку, то вставляється додатковий вертикальний відступ |\partopsep|, крім відступів |\parskip| та |\topsep|.
% Ми зануляємо його, як і решту параметрів переліків.
%    \begin{macrocode}
\setlength\partopsep{\z@skip}
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\@beginparpenalty -\@lowpenalty
\@endparpenalty   -\@lowpenalty
\@itempenalty     -\@lowpenalty
%    \end{macrocode}
%
% \begin{macro}{\@listi}
% \begin{macro}{\@listI}
% Переозначуємо |\@listi|, |\@listI| та інші так, щоб зменшити відступи у переліках.
% Нам не потрібні такі великі відступи, тому робимо подібно до того, як у класах AMS.
% У зв'язку з цим див. нижче також зміни відступів у теоремах.
%    \begin{macrocode}
\def\@listi{\leftmargin\leftmargini
            \parsep  \parskip
            \topsep  \z@skip
            \itemsep \z@skip}
\let\@listI\@listi
\@listi
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@listii}
% \begin{macro}{\@listiii}
% Тепер так само переозначуємо команди вищого рівня.
% Команди вищого рівня успадковують значення параметрів |\topsep|, |\parsep| тощо, тому глибше переозначення непотрібне.
%    \begin{macrocode}
\def\@listii {\leftmargin\leftmarginii
              \labelwidth\leftmarginii
              \advance\labelwidth-\labelsep
              \topsep    \z@skip
              \parsep    \z@skip
              \partopsep \z@skip
              \itemsep   \z@skip}
\def\@listiii{\leftmargin\leftmarginiii
              \labelwidth\leftmarginiii
              \advance\labelwidth-\labelsep}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% Зроблені зміни мають враховуватися командами |\small| та |\footnotesize|.
% У файлах |size*.clo| ці команди переозначують |\@listi| безпосередньо, щоб зробити відступи залежними від розміру шрифта.
%    \begin{macrocode}
\let\@savsmall\small
\renewcommand\small{%
  \@savsmall
  \let\@listi\@listI}
\let\@savfootnotesize\footnotesize
\renewcommand\footnotesize{%
  \@savfootnotesize
  \let\@listi\@listI}
%    \end{macrocode}
%
% \begin{macro}{\theenumi}
% \begin{macro}{\theenumii}
% \changes{v0.09}{2021/07/21}{Додано команду \cmd{\cyr} в означенні}
% \begin{macro}{\theenumiii}
% \begin{macro}{\theenumiv}
% \changes{v0.09}{2021/07/21}{Додано команду \cmd{\cyr} в означенні}
% Задаємо вигляд лічильників \Lcount{enumN} відповідно до прийнятої вище схеми.
% Кириличні літери з урізаного набору |\@asbuk|/|\@Asbuk| пакета \pkg{babel}.
% 
% Кириличні літери на другому й четвертому рівні нумерації
% <<захищаємо>> командою |\cyr|.
% Бо інакше виникає проблема,
% про яку Андрій Боровий повідомив 2009/05/08.
% Якщо в документі немає виклику \pkg{fontenc}
% з відповідним до мови аргументом (наприклад, |T2A| для української),
% то \LaTeX{} повідомляє про те,
% що команди |\cyrzh| і |\CYRZH| недоступні в кодуванні |OT1|.
% Причина полягає в тому, що класи \cls{vakthesis}
% визначають ширину мітки для нумерованого списку
% <<на початку документа>>,
% але до того, як \pkg{inputenc} і \pkg{babel}
% зроблять відповідні налаштування для мови.
% Тому виникає ситуація, що кодування |T2A| ще не вибрано,
% але кириличні літери вже використовуються.
% Тоді команда |\cyr| забезпечує правильне кодування.
%    \begin{macrocode}
\renewcommand\theenumi{\@arabic\c@enumi}
\renewcommand\theenumii{{\cyr\@asbuk\c@enumii}}
\renewcommand\theenumiii{\@Roman\c@enumiii}
\renewcommand\theenumiv{{\cyr\@Asbuk\c@enumiv}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\labelenumi}
% \begin{macro}{\labelenumii}
% \begin{macro}{\labelenumiii}
% \begin{macro}{\labelenumiv}
% Ці команди генерують мітки для кожного пункту переліку.
% Лише права дужка у переліках другого рівня.
% Решта "--- як у стандартних класах.
%    \begin{macrocode}
\newcommand\labelenumi{\theenumi.}
\newcommand\labelenumii{\theenumii)}
\newcommand\labelenumiii{\theenumiii.}
\newcommand\labelenumiv{\theenumiv.}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\p@enumii}
% \begin{macro}{\p@enumiii}
% \begin{macro}{\p@enumiv}
% Команда |\ref| видає |\p@enumN\theenumN|, коли посилається на пункт N-го рівня нумерованого переліку.
% FIXME: Я додав тут |\nobreakspace| на третьому та четвертому рівні, щоб якось відокремити мітки (бо дужок немає).
% Але не вважаю, що це найкращий варіант.
%    \begin{macrocode}
\renewcommand\p@enumii{\theenumi}
\renewcommand\p@enumiii{\theenumi\theenumii\nobreakspace}
\renewcommand\p@enumiv{\p@enumiii\theenumiii\nobreakspace}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\labelitemi}
% \begin{macro}{\labelitemii}
% \begin{macro}{\labelitemiii}
% \begin{macro}{\labelitemiv}
% Мильчин, Ченцова рекомендують використовувати довге тире на першому рівні.
% На другому використовуємо горох (хоча він здається занадто великим і страшним, особливо після тоненького тире), решта "--- як у стандартних класах.
%    \begin{macrocode}
\newcommand\labelitemi{\normalfont\bfseries \textemdash}
\newcommand\labelitemii{\textbullet}
\newcommand\labelitemiii{\textasteriskcentered}
\newcommand\labelitemiv{\textperiodcentered}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{environment}{enumerate}
% \begin{environment}{itemize}
% Незначні зміни оточень |enumerate| та |itemize|: додано |\upshape| всередину команди |\makelabel|, щоб мітка завжди була прямим шрифтом незалежно від контексту.
%
% Якщо підключено пакет \pkg{enumerate}, то вилучаємо код, що встановлює |\leftmarginN|.
% Відступи мають бути однакові для всіх переліків документа і встановлюються класом.
%    \begin{macrocode}
\AtBeginDocument{%
\@ifpackageloaded{enumerate}{% якщо підключено enumerate
  \def\@@enum@[#1]{%
    \@enLab{}\let\@enThe\@enQmark
    \@enloop#1\@enum@
    \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%
     ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi
    \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}%
    \expandafter\let\csname the\@enumctr\endcsname\@enThe
%    \csname c@\@enumctr\endcsname7
%    \expandafter\settowidth
%              \csname leftmargin\romannumeral\@enumdepth\endcsname
%              {\the\@enLab\hspace{\labelsep}}%
    \@enum@}%
  \def\@enum@{\list{\csname label\@enumctr\endcsname}%
             {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{\upshape##1}}}}%
}{% якщо не підключено enumerate
  \def\enumerate{%
    \ifnum \@enumdepth >\thr@@\@toodeep\else
      \advance\@enumdepth\@ne
      \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
        \expandafter
        \list
          \csname label\@enumctr\endcsname
          {\usecounter\@enumctr\def\makelabel##1{\hss\llap{\upshape##1}}}%
    \fi}%
}}
\def\itemize{%
  \ifnum \@itemdepth >\thr@@\@toodeep\else
    \advance\@itemdepth\@ne
    \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
    \expandafter
    \list
      \csname\@itemitem\endcsname
      {\def\makelabel##1{\hss\llap{\upshape##1}}}%
  \fi}
%    \end{macrocode}
% \end{environment}
% \end{environment}
%
%    \begin{macrocode}
\newenvironment{description}
               {\list{}{\labelwidth\z@ \itemindent-\leftmargin
                        \let\makelabel\descriptionlabel}}
               {\endlist}
\newcommand*\descriptionlabel[1]{\hspace\labelsep
                                \normalfont\bfseries #1}
%    \end{macrocode}
%
%    \begin{macrocode}
\if@titlepage
  \newenvironment{abstract}{%
      \titlepage
      \null\vfil
      \@beginparpenalty\@lowpenalty
      \begin{center}%
        \bfseries \abstractname
        \@endparpenalty\@M
      \end{center}}%
     {\par\vfil\null\endtitlepage}
\else
  \newenvironment{abstract}{%
      \if@twocolumn
        \section*{\abstractname}%
      \else
        \small
        \begin{center}%
          {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
        \end{center}%
        \quotation
      \fi}
      {\if@twocolumn\else\endquotation\fi}
\fi
\newenvironment{verse}
               {\let\\\@centercr
                \list{}{\itemsep      \z@
                        \itemindent   -1.5em%
                        \listparindent\itemindent
                        \rightmargin  \leftmargin
                        \advance\leftmargin 1.5em}%
                \item\relax}
               {\endlist}
\newenvironment{quotation}
               {\list{}{\listparindent 1.5em%
                        \itemindent    \listparindent
                        \rightmargin   \leftmargin
                        \parsep        \z@ \@plus\p@}%
                \item\relax}
               {\endlist}
\newenvironment{quote}
               {\list{}{\rightmargin\leftmargin}%
                \item\relax}
               {\endlist}
%\if@compatibility
%\newenvironment{titlepage}
%    {%
%      \if@twocolumn
%        \@restonecoltrue\onecolumn
%      \else
%        \@restonecolfalse\newpage
%      \fi
%      \thispagestyle{empty}%
%      \setcounter{page}\z@
%    }%
%    {\if@restonecol\twocolumn \else \newpage \fi
%    }
%\else
%\newenvironment{titlepage}
%    {%
%      \if@twocolumn
%        \@restonecoltrue\onecolumn
%      \else
%        \@restonecolfalse\newpage
%      \fi
%      \thispagestyle{empty}%
%      \setcounter{page}\@ne
%    }%
%    {\if@restonecol\twocolumn \else \newpage \fi
%     \if@twoside\else
%        \setcounter{page}\@ne
%     \fi
%    }
%\fi
\if@titlepage
  \newenvironment{titlepage}
    {\newpage
     \pagestyle{empty}%
%<*vakthesis>
     \setcounter{page}{1}%
     \begin{center}}%
    {\end{center}%
     \newpage}
%</vakthesis>
%<*vakaref>
     \setcounter{page}{1}}%
    {\newpage
     \setcounter{page}{1}}
%</vakaref>
\else
  \renewcommand\maketitle{\newpage
%<vakthesis>    \setcounter{page}{2}%
%<vakaref>    \setcounter{page}{1}%
  }%
  \newenvironment{titlepage}
    {\maketitle
     \comment}%
    {\endcomment}
\fi
%    \end{macrocode}
% \iffalse
% Це оточення |comment| "--- небезпечна штука! Задача була така.
% Опція |notitlepage| повинна <<ховати>> титульну сторінку, але
% зберігати нумерацію сторінок. Просто переозначити |\maketitle| не
% можна, бо користувач може використовувати замість неї оточення
% |titlepage|. Оскільки воно використовується всередині
% |\maketitle|, я вирішив замінити його оточенням |comment|.
% Звичайно, почитав документацію до пакета \pkg{verbatim}, де ясно
% сказано, що підстановку зробити можна, але не можна
% використовувати |\begin|, |\end|. Тобто потрібно писати |\comment|
% та |\endcomment|. Все наче працювало. Аж поки я не вирішив
% почистити трохи приклад файла дисертації, що я використовував для
% тестування. І раптом опція |notitlepage| перестала працювати! На
% команді |\maketitle| зупиняється:
%\begin{verbatim}
%Runaway argument? ! File ended while scanning use of \next.
%\end{verbatim}
% Випадково наткнувся на розв'язання, коли перевіряв, чи є така ж
% проблема з оточенням |titlepage|. Виявилося, якщо написати
% |%\end{titlepage}| після |\maketitle|, або навіть
% |\end{titlepage}| (явна синтаксична помилка, бо відповідного
% |\begin{titlepage}| немає), то компілюється без проблем. Я не міг
% у це повірити! Але відповідь проста: оточення |comment| не можна
% використовувати всередині команд користувача. У моєму випадку
% команда |\maketitle| містила оточення |titlepage|, яке було
% переозначене в |comment|. А тому алгоритм не міг знайти справжній
% кінець оточення |comment|. І в документації це написано, я
% неуважно перший раз читав. А в мене виклик оточення |titlepage| у
% файлі-прикладі дуже довго лежав закоментований і проблему
% приховував. Як почав файл чистити, воно й вилізло. Уважніше треба
% документацію читати!
% \fi
%
% \begin{macro}{\appendix}
% Команда |\appendix| спочатку занулює лічильники розділів і підрозділів,
% переозначує родовий заголовок розділу і переозначує нумерацію додатків.
%    \begin{macrocode}
%<*vakthesis>
\newcommand\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@lost@Asbuk\c@chapter}%
%    \end{macrocode}
% Слово <<Додаток>> пишемо <<як є>>, тому |\@make@chapapp| не повинна нічого робити.
%    \begin{macrocode}
  \let\@make@chapapp\relax
%    \end{macrocode}
% Записуємо виклик спеціальної команди в \file{.aux}-файл.
%    \begin{macrocode}
  \immediate\write\@auxout{\string\@toc@appendices{\thepage}}%
%   \@writefile{toc}{\def\@appendix@number@width{.5em}}% FIXME: Навіщо це? І чому закоментовано?
}
%    \end{macrocode}
%
% \begin{macro}{\@lost@Asbuk}
% <<Загублена абетка>>.
%    \begin{macrocode}
\def\@lost@Asbuk#1{\ifcase#1\or
  \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or%\CYRIE\or
  \CYRZH\or\CYRZ\or\CYRI\or%\CYRII\or\CYRYI\or\CYRISHRT\or
  \CYRK\or\CYRL\or\CYRM\or\CYRN\or%\CYRO\or
  \CYRP\or\CYRR\or
  \CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or\CYRC\or%\CYRCH\or
  \CYRSH\or\CYRSHCH\or\CYRYU\or\CYRYA\else\@ctrerr\fi}
%</vakthesis>
%</vakthesis|vakaref>
% Не використовуємо <<загублену абетку>>.
%<*vak2011b910|mon2017n40>
\def\@lost@Asbuk#1{\@Asbuk{#1}}
%</vak2011b910|mon2017n40>
%    \end{macrocode}
%
% \begin{macro}{\@toc@appendices}
% Спеціальна команда, яка записує інші команди в \file{.toc}-файл.
% Команда |\appendix| записує її в \file{.aux}-файл.
% Чому |\appendix| не може безпосередньо писати в \file{.aux}-файл?
% Бо тоді порушується порядок (якщо є вкладення файлів) запису,
% і зміст відображається неправильно.
% FIXME: пояснити детальніше.
%    \begin{macrocode}
%<*vakthesis|vakaref>
%<*vakthesis>
\def\@toc@appendices#1{\@writefile{toc}{%
%    \end{macrocode}
% Якщо відкрити ці дві команди, то в змісті замість переліку додатків
% з'являтиметься лише слово <<Додатки>> із вказанням сторінки.
% Це було потрібно лише для однієї дисертації (автору так хотілося).
% Але це суперечить рекомендаціям ВАК~\cite[с.~15]{vak.guide.2006}.
%    \begin{macrocode}
%  \contentsline{chapter}{\CYRD\cyro\cyrd\cyra\cyrt\cyrk\cyri}{#1}^^J%
%  \global\c@tocdepth-1\relax^^J%
%    \end{macrocode}
% Ці команди потрібні для коректного відображення
% родо-нумераційного заголовка у змісті.
%    \begin{macrocode}
  \def\@chapapp{\appendixname}^^J%
  \def\@appendix@number@width{.5em}}}
%    \end{macrocode}
%
% \begin{macro}{\@appendix@number@width}
% Додатковий горизонтальний відступ після родо-нумераційного заголовка
% (додатки позначаються літерами, серед яких є такі широкі, як літера Ж).
%    \begin{macrocode}
\def\@appendix@number@width{0pt}
%</vakthesis>
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%    \begin{macrocode}
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
\setlength\tabbingsep{\labelsep}
\skip\@mpfootins = \skip\footins
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
\@addtoreset {equation}{chapter}
\renewcommand\theequation
  {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation}
\newcounter{figure}[chapter]
\renewcommand \thefigure
     {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure}
%    \end{macrocode}
% \changes{v0.08}{2009/04/01}{Змінено положення плаваючого об'єкта за замовчуванням на \texttt{htbp}}
%^^AFIXME: \texttt?
%
% \begin{macro}{\fps@figure}
% Положення малюнка за замовчуванням |htbp|, тобто намагатися розмістити його там, де вказано, якщо це можливо.
%^^AFIXME: як центрувати плаваючі об'єкти?
%    \begin{macrocode}
\def\fps@figure{htbp}
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figurename\nobreakspace\thefigure}
\newenvironment{figure}
               {\@float{figure}}
               {\end@float}
\newenvironment{figure*}
               {\@dblfloat{figure}}
               {\end@dblfloat}
\newcounter{table}[chapter]
\renewcommand \thetable
     {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table}
%    \end{macrocode}
%
% \begin{macro}{\fps@table}
% Положення таблиці за замовчуванням |htbp|, тобто намагатися розмістити її там, де вказано, якщо це можливо.
%    \begin{macrocode}
\def\fps@table{htbp}
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\def\ftype@table{2}
\def\ext@table{lot}
%</vakthesis|vakaref>
%    \end{macrocode}
%
% \changes{v0.08}{2009/04/01}{Додано команди \cmd{\tablenamefont} і \cmd{\tablecaptionfont} для форматування заголовка таблиці}
% \begin{macro}{\tablenamefont}
% ВАК у різні роки рекомендує по-різному виділяти слово <<Таблиця>> у заголовку таблиці.
% Якщо жодну опцію року не вибрано,
% то залишиться таке оформлення, як було у версії 0.08.
% FIXME: Команди |\table{name,caption}font| мають задавати оформлення
% чи бути командами, що визначають інші команди, які задають оформлення?
% \iffalse
% Поки що не вирішив.
% caption: key=value font, labelfont, textfont
% ccaption: \captionnamefont, \captiontitlefont визначають інші команди
% memoir = ccaption
% KOMA-script: \addtokomafont, \setkomafont визначають інші команди
%   \captionformat, \figureformat, \tableformat містять оформлення
%   \caplabelfont, \capfont теж, але застарілі
% Не знайшов відповідних команд в пакетах:
%   float, mcaption, sidecap, subfig (subfigure), subfloat.
% \fi
%    \begin{macrocode}
%<*vakthesis|vakaref|vak2007b6>
\def\tablenamefont{\itshape}
%</vakthesis|vakaref|vak2007b6>
%<*vak2000bs>
\def\tablenamefont{\upshape}
%</vak2000bs>
%    \end{macrocode}
% \end{macro}
% Потім поправка на курсив (FIXME: а якщо виділяти не курсивом?).
% Номер таблиці залишається прямим.
% Не можна автоматично виділяти слова <<Продовж. табл.>>,
% оскільки користувач сам вибирає, які слова писати
% (якщо використовується пакет \pkg{longtable}).
%    \begin{macrocode}
%<*vakthesis|vakaref>
\def\fnum@table{{\tablenamefont\tablename\/}\nobreakspace\thetable}
\newenvironment{table}
               {\let\@makecaption\@maketablecaption
                \@float{table}}
               {\end@float}
\newenvironment{table*}
               {\@dblfloat{table}}
               {\end@dblfloat}
\newlength\abovecaptionskip
\newlength\belowcaptionskip
\setlength\abovecaptionskip{10\p@}
\setlength\belowcaptionskip{0\p@}
%% Підписи до малюнків Рис. 1.1  Назва
%% ідею \CaptionSeparator запозичено з frenchb.ldf / тепер там по-іншому?
\AtBeginDocument{\def\CaptionSeparator{\string.\space}}
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1\CaptionSeparator #2}%
  \ifdim \wd\@tempboxa >\hsize
    #1\CaptionSeparator #2\par
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}
%</vakthesis|vakaref>
%    \end{macrocode}
%
% \begin{macro}{\tablecaptionfont}
% ВАК рекомендує виділяти жирним назву таблиці.
%    \begin{macrocode}
%<*vakthesis|vakaref|vak2007b6>
\def\tablecaptionfont{\bfseries}
%</vakthesis|vakaref|vak2007b6>
%<*vak2000bs>
\def\tablecaptionfont{\mdseries}
%</vak2000bs>
%    \end{macrocode}
% Використовується тут і далі, в оточенні \env{longtable}.
% \end{macro}
%
%    \begin{macrocode}
%<*vakthesis|vakaref>
\long\def\@maketablecaption#1#2{%
  \vskip\belowcaptionskip
  \raggedleft#1\par
  \sbox\@tempboxa{\tablecaptionfont#2}%
  \ifdim \wd\@tempboxa >\hsize
    \centering\tablecaptionfont#2\par
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\abovecaptionskip}
%FIXME: перенести цей код нижче
\AtBeginDocument{%
  \@ifpackageloaded{longtable}{%
    \let\@savlongtable\longtable
    \def\longtable{%
      \setlength\LTcapwidth\hsize
      \@savlongtable}%
    \def\LT@makecaption#1#2#3{%
      \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{\normalsize
        \raggedleft#1{#2}\par
        \sbox\@tempboxa{\tablecaptionfont#3}%
        \ifdim\wd\@tempboxa>\hsize
          \centering\tablecaptionfont#3%
        \else
          \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
        \fi
%FIXME: other skip?
        \endgraf\vskip.5\baselineskip}%
      \hss}}}%
  }{}
%FIXME: is it correct?
  \@ifpackageloaded{float}{%
    \renewcommand\floatc@plain[2]{\setbox\@tempboxa\hbox{{\@fs@cfont #1\CaptionSeparator}#2}%
      \ifdim\wd\@tempboxa>\hsize {\@fs@cfont #1\CaptionSeparator}#2\par
        \else\hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi}%
  }{}
}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
\newcommand\@pnumwidth{1.55em}
\newcommand\@tocrmarg{2.55em}
\newcommand\@dotsep{4.5}
%<vakthesis>\setcounter{tocdepth}{2}
%<vakaref>\setcounter{tocdepth}{-1}
%    \end{macrocode}
%
% \begin{macro}{\tableofcontents}
% Тепер аргумент команди |\chapter*| потрапляє у зміст.
% Але ми не хочемо, щоб слово <<Зміст>> потрапляло, тому потрібна спеціальна команда |\@tocheader| для цього розділу.
%    \begin{macrocode}
\newcommand\tableofcontents{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
%    \end{macrocode}
% Змінюємо |\chapter*| на |\@tocheader|.
%    \begin{macrocode}
    \@tocheader{\contentsname
        \@mkboth{%
           \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
    }
%    \end{macrocode}
%
% \begin{macro}{\@tocheader}
% Оформляємо заголовок змісту, як будь-який інший розділ дисертації (чи структурну частину автореферату).
% Але не додаємо до змісту.
%
% FIXME: Погано, що тут повторюється код з команд |\schapter|, |\spart|.
% Викликати їх замість дублювання?
%    \begin{macrocode}
\newcommand\@tocheader[1]{%
  \if@openright\cleardoublepage\else\clearpage\fi
  \thispagestyle{plain}%
  \global\@topnum\z@
  \@afterindenttrue
%  \secdef\@chapter\@schapter
%<*vakthesis>
  \if@twocolumn
    \@topnewpage[\@makeschapterhead{#1}]%
  \else
    \@makeschapterhead{#1}%
    \@afterheading
  \fi
%</vakthesis>
%<*vakaref>
  \vskip 15\p@
  {\centering
   \interlinepenalty \@M
   \normalfont
   \normalsize \bfseries \@make@chapapp{#1}\par
   \vskip 9\p@}%
%</vakaref>
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@starttoc}
% \changes{v0.08}{2009/04/01}{Переозначення \cmd{\\} перенесено всередину групи}
% Про всяк випадок додаємо тут спеціальну обробку команди |\\|, якщо вона з'являється у заголовках рубрик.
% (Хоча, на мою думку, використовувати |\\| для примусового розбивання заголовка рубрики "--- це погана ідея.)
% Зміни відбуваються в групі, тому скасовуються, коли група закривається.
%
% До версії~0.08 переозначення |\\| відбувалося у команді |\tableofcontents| і не скасовувалося після змісту.
% Це приводило до помилки аргумента-втікача (<<Runaway argument?>>), оскільки команда |\@tocdblbs| є крихкою (fragile).
% Григорій Торбін повідомив про цю помилку.
%    \begin{macrocode}
\def\@starttoc#1{%
  \begingroup
    \let\\\@tocdblbs
    \makeatletter
    \@input{\jobname.#1}%
    \if@filesw
      \expandafter\newwrite\csname tf@#1\endcsname
      \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
    \fi
    \@nobreakfalse
  \endgroup}
%    \end{macrocode}
%
% \begin{macro}{\@tocdblbs}
% \begin{macro}{\@xtocdblbs}
% \begin{macro}{\@gobble@oparg}
% Коли |\\| працює як |\@tocdblbs|, то вона дає звичайний пропуск замість себе і забирає зайві пропуски зліва і справа.
%    \begin{macrocode}
\def\@tocdblbs{\unskip\ \@ifstar\@xtocdblbs\@xtocdblbs}
\def\@xtocdblbs{\@ifnextchar[\@gobble@oparg\ignorespaces}
\def\@gobble@oparg[#1]{\ignorespaces}
%    \end{macrocode}
% FIXME: де я запозичив ідею такої заміни |\\| у змісті?
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \changes{v0.08}{2009/04/01}{Змінено вертикальні відступи розділів/частин у змісті дисертації/автореферату}
%
% \begin{macro}{\l@part}
% Команда, що форматує структурні частини автореферату у змісті.
% Майже, як стандартна команда.
% Але ми зменшили вертикальний відступ, змінили |\rightskip| відповідно до зауваження в описі |\l@part| у файлі \file{classes.dtx} і забрали виділення жирним шрифтом більшого розміру.
%    \begin{macrocode}
%<*vakaref>
\newcommand*\l@part[2]{%
  \ifnum \c@tocdepth >-2\relax
    \addpenalty{-\@highpenalty}%
    \addvspace{1.0ex \@plus\p@}%
    \setlength\@tempdima{3em}%
    \begingroup
      \parindent \z@ \rightskip \@tocrmarg
      \parfillskip -\rightskip
      {\leavevmode
       #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par
       \nobreak
         \global\@nobreaktrue
         \everypar{\global\@nobreakfalse\everypar{}}%
    \endgroup
  \fi}
%</vakaref>
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\l@chapter}
% Команда, що форматує розділи дисертації у змісті.
%    \begin{macrocode}
%<*vakthesis>
\newcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
%    \end{macrocode}
% Покладемо невеликий відступ рівним 1ex замість 1em.
%    \begin{macrocode}
    \vskip 1.0ex \@plus\p@
%    \end{macrocode}
% Визначення розміру рамки, у якій буде родо-нумераційний заголовок:
% розмір слова <<Розділ>> чи <<Додаток>>
% + невеличкий додатковий відступ для додатку (бо додатки позначаються літерами, які ширші, ніж цифри)
% + стандартний відступ з класу \cls{report}.
%    \begin{macrocode}
    \settowidth\@tempdima{\@chapapp\nobreakspace}%
    \addtolength\@tempdima{\@appendix@number@width}%
    \addtolength\@tempdima{1.5em}%
    \begingroup
%    \end{macrocode}
% \changes{v0.08}{2009/04/01}{Змінено значення \cmd{\rightskip} з \cmd{\@pnumwidth} на \cmd{\@tocrmarg}}
% Як і для |l@part|, змінюємо |\rightskip| відповідно до зауваження в описі |\l@part| у файлі \file{classes.dtx}.
% Команда проекту \LaTeX3 уникає змінювати це з міркувань сумісності.
% Нам немає потреби турбуватися тут про сумісність з попередніми версіями.
%    \begin{macrocode}
      \parindent \z@ \rightskip \@tocrmarg
      \parfillskip -\rightskip
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\l@section}
% \begin{macro}{\l@subsection}
% \begin{macro}{\l@subsubsection}
% \begin{macro}{\l@paragraph}
% \begin{macro}{\l@subparagraph}
% Так само, як у стандартному класі \cls{report}.
%    \begin{macrocode}
\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
%</vakthesis>
\newcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}}
\newcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%    \begin{macrocode}
\newcommand\listoffigures{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\listfigurename}%
      \@mkboth{\MakeUppercase\listfigurename}%
              {\MakeUppercase\listfigurename}%
    \@starttoc{lof}%
    \if@restonecol\twocolumn\fi
    }
\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand\listoftables{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\listtablename}%
      \@mkboth{%
          \MakeUppercase\listtablename}%
         {\MakeUppercase\listtablename}%
    \@starttoc{lot}%
    \if@restonecol\twocolumn\fi
    }
\let\l@table\l@figure
%    \end{macrocode}
% Родо-нумераційний заголовок "--- світлим, і після нього "--- крапка.
%^^A означено в latex.ltx
%    \begin{macrocode}
\def\numberline#1{\hb@xt@\@tempdima{\mdseries#1.\hfil}}
%</vakthesis|vakaref>
% У цьому довіднику ВАК не ставиться крапка.
%<*vak2011b910>
\def\numberline#1{\hb@xt@\@tempdima{\mdseries#1\hfil}}
%</vak2011b910>
%<*vakthesis|vakaref>
\newdimen\bibindent
\setlength\bibindent{1.5em}
%    \end{macrocode}
% \begin{macro}{\bibliographystyle}
% \changes{v0.09}{2021/07/21}{Виправлено проблему з пропущеним \cmd{\or}}
% Сергій Шарапов повідомив 2009/09/05,
% що використання BibTeX-стилю \bst{gost780u}
% разом з класами \vakthesis/\vakaref{}
% призводить до зайвого символу <<=>> перед списком літератури.
% Зі стилем \bst{gost780s} такої проблеми не було.
% Причина в тому, що в означенні команди |\bibliographystyle|
% було пропущено |\or| після порівняння аргумента з \bst{gost780u}.
%
%% Означено в latex.ltx
%    \begin{macrocode}
\def\bibliographystyle#1{%
  \ifx\@begindocumenthook\@undefined\else
    \expandafter\AtBeginDocument
  \fi
    {\if@filesw
       \immediate\write\@auxout{\string\bibstyle{#1}}%
     \fi}%
  \ifthenelse
  {\equal{#1}{plain}\or
   \equal{#1}{unsrt}\or
   \equal{#1}{abbrv}\or
   \equal{#1}{amsplain}\or
   \equal{#1}{gost71s}\or
   \equal{#1}{gost71u}\or
%    \end{macrocode}
% Підтримка цих стилів була б корисною,
% але це спричинить несумісність з попередніми версіями.
% Тому ці рядки поки що закоментовані.
% Треба придумати кращий варіант,
% сумісний з попередніми версіями.
%    \begin{macrocode}
%   \equal{#1}{gost780}\or
   \equal{#1}{gost780s}\or
   \equal{#1}{gost780u}% \or
%   \equal{#1}{gost2003}\or
%   \equal{#1}{gost2003s}\or
%   \equal{#1}{gost2008}\or
%   \equal{#1}{gost2008l}\or
%   \equal{#1}{gost2008ls}\or
%   \equal{#1}{gost2008n}\or
%   \equal{#1}{gost2008ns}\or
%   \equal{#1}{gost2008s}\or
%   \equal{#1}{ugost2003}\or
%   \equal{#1}{ugost2003s}\or
%   \equal{#1}{ugost2008}\or
%   \equal{#1}{ugost2008l}\or
%   \equal{#1}{ugost2008ls}\or
%   \equal{#1}{ugost2008n}\or
%   \equal{#1}{ugost2008ns}\or
%   \equal{#1}{ugost2008s}%
  }
  {\def\@biblabel##1{##1.}}
  {\def\@biblabel##1{[##1]}}}
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
\def\@biblabel#1{#1.}
%    \end{macrocode}
% \changes{v0.09}{2021/07/21}{Додано підтримку двох списків літератури до \vakaref}
%    \begin{macrocode}
%% Два списки літератури: Список використаних джерел
%%                        Список публікацій автора
%% \@bibmark --- мітка, яка з'являється біля номера (мітки) у
%% списку літератури і в посиланнях
\def\@bibmark{}
\newenvironment{thebibliography}[1]
%<vakthesis>     {\chapter*{\bibname}%
%<vakaref>     {\part{\bibname}%
      \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
      \list{\@biblabel{\@arabic\c@enumiv\@bibmark}}%
           {\settowidth\labelwidth{\@biblabel{#1\@bibmark}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \@openbib@code
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv\@bibmark}}%
      \sloppy
% 1000 for pll
      \clubpenalty4000
      \@clubpenalty \clubpenalty
      \widowpenalty4000%
%      \sfcode`\.\@m
     }
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
      \endlist}
\newcounter{needbibset}
\setcounter{needbibset}{1}
\newcounter{currbibset}
%    \end{macrocode}
% \begin{environment}{bibset}
%    \begin{macrocode}
%% Синтаксис
%% \begin{bibset}[<мітка1>]{<Назва1>}
%% \bibliographystyle{<стиль>}
%% \bibliography{<.bib-файл>}
%% \end{bibset}
%% \begin{bibset}[<мітка2>]{<Назва2>}
%% \bibliographystyle{<стиль>}
%% \bibliography{<.bib-файл>}
%% \end{bibset}
\newenvironment{bibset}[2][]
  {\stepcounter{currbibset}%
   \def\@temp{#1}%
   \ifx\@temp\@empty
     \def\@bibmark{\relax}%FIXME: \def\@bibmark{} не працює
   \else
     \def\@bibmark{\textsuperscript{#1}}%
   \fi
   \let\@sav@lbibitem\@lbibitem
   \def\@lbibitem[##1]##2{\@sav@lbibitem[##1\@bibmark]{##2}}%
%                                           ~~~~~~~~~
%    \end{macrocode}
% Команду |\@ifpackageloaded| для перевірки завантаження пакунка
% можна використувати тільки в преамбулі.
% Тому в тілі документа для перевірки, чи завантажено \pkg{hyperref},
% треба перевіряти наявність якоїсь унікальної команди.
% Проблема виникла, коли пакунок \pkg{hyperref} змінився:
% довелося замінювати команду в цій перевірці.
% Олексій Панасенко помітив цю проблему 2010/02/05.
% Робити перевірку з публічною командою типу |\hyperref| може бути небезпечно,
% якщо якийсь альтернативний пакунок теж таку визначає.
%
% FIXME: Правильніше було б перевіряти не всередині оточення,
% а на початку документа перевіряти, чи завантажено \pkg{hyperref},
% і тоді давати інше означення оточення \env{bibset}.
% \changes{v0.09}{2021/07/21}{Виправлено перевірку завантаження \pkg{hyperref}}
%    \begin{macrocode}
   \@ifundefined{Hy@WarningNoLine}
%% якщо не підключений пакет hyperref
     {\def\@bibitem##1{\item\if@filesw \immediate\write\@auxout
        {\string\bibcite{##1}{\the\value{\@listctr}\expandafter\string\@bibmark}}%
%                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        \fi\ignorespaces}}
%% якщо підключений пакет hyperref
% Це варіант зі старого hyperref (v6.77g від 2007/11/20).
%      {\def\@bibitem##1{%
%       \@skiphyperreftrue\H@item\@skiphyperreffalse
%       \hyper@anchorstart{cite.##1}\relax\hyper@anchorend
%       \if@filesw {\let\protect\noexpand
%       \immediate\write\@auxout{%
%         \string\bibcite{##1}{\the\value{\@listctr}\expandafter\string\@bibmark}}}%
% %                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%       \fi
%       \ignorespaces}}%
% Це варіант з новішого hyperref (v6.83q від 2016/06/24).
     {\def\@bibitem##1{%
        \@skiphyperreftrue\H@item\@skiphyperreffalse
        \Hy@raisedlink{%
          \hyper@anchorstart{cite.##1\@extra@b@citeb}\relax\hyper@anchorend
        }%
        \if@filesw
          \begingroup
            \let\protect\noexpand
            \immediate\write\@auxout{%
              \string\bibcite{##1}{\the\value{\@listctr}\expandafter\string\@bibmark}%
%                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            }%
          \endgroup
        \fi
        \ignorespaces
      }}%
   \def\bibname{#2}%
   \let\bibliography\@thisbibliography
   \let\bibliographystyle\@thisbibliographystyle}
  {\ifnum\thecurrbibset=\theneedbibset
     \ifnum\theneedbibset=1
       \immediate\write\@auxout{\string\setcounter{needbibset}{2}}%
     \else
       \immediate\write\@auxout{\string\setcounter{needbibset}{1}}%
     \fi
   \fi}
%    \end{macrocode}
% \end{environment}
%    \begin{macrocode}
\def\@thisbibliography#1{%
  \if@filesw
%~~~
    \ifnum\thecurrbibset=\theneedbibset
      \immediate\write\@auxout{\string\bibdata{#1}}%
    \else
      \immediate\write\@auxout{\@percentchar\string\bibdata{#1}}%
    \fi
%~~~
  \fi
  \@input@{\jobname\thecurrbibset.bbl}}
%                  ~~~~~~~~~~~~~~
\def\@thisbibliographystyle#1{%
  \ifx\@begindocumenthook\@undefined\else
    \expandafter\AtBeginDocument
  \fi
    {\if@filesw
%~~~
       \ifnum\thecurrbibset=\theneedbibset
         \immediate\write\@auxout{\string\bibstyle{#1}}%
       \else
         \immediate\write\@auxout{\@percentchar\string\bibstyle{#1}}%
       \fi
%~~~
     \fi}%
%% нумерація літератури 1.
  \ifthenelse
  {\equal{#1}{plain}\or
   \equal{#1}{unsrt}\or
   \equal{#1}{abbrv}\or
   \equal{#1}{amsplain}\or
   \equal{#1}{gost71s}\or
   \equal{#1}{gost71u}\or
%    \end{macrocode}
% Підтримка цих стилів була б корисною,
% але це спричинить несумісність з попередніми версіями.
% Тому ці рядки поки що закоментовані.
% Треба придумати кращий варіант,
% сумісний з попередніми версіями.
%    \begin{macrocode}
%   \equal{#1}{gost780}\or
   \equal{#1}{gost780s}\or
   \equal{#1}{gost780u}% \or
%   \equal{#1}{gost2003}\or
%   \equal{#1}{gost2003s}\or
%   \equal{#1}{gost2008}\or
%   \equal{#1}{gost2008l}\or
%   \equal{#1}{gost2008ls}\or
%   \equal{#1}{gost2008n}\or
%   \equal{#1}{gost2008ns}\or
%   \equal{#1}{gost2008s}\or
%   \equal{#1}{ugost2003}\or
%   \equal{#1}{ugost2003s}\or
%   \equal{#1}{ugost2008}\or
%   \equal{#1}{ugost2008l}\or
%   \equal{#1}{ugost2008ls}\or
%   \equal{#1}{ugost2008n}\or
%   \equal{#1}{ugost2008ns}\or
%   \equal{#1}{ugost2008s}%
  }
  {\def\@biblabel##1{##1.}}
  {\def\@biblabel##1{[##1]}}}
\AtBeginDocument{%
  \@ifpackageloaded{babel}{\addto\captionsukrainian{%
%<vakthesis>    \def\bibname{{\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\ \cyrv\cyri\cyrk\cyro\cyrr\cyri\cyrs\cyrt\cyra\cyrn\cyri\cyrh\ \cyrd\cyrzh\cyre\cyrr\cyre\cyrl}}}}{}}
%                                 Список використаних джерел
%<vakaref>    \def\bibname{{\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\ \cyro\cyrp\cyru\cyrb\cyrl\cyrii\cyrk\cyro\cyrv\cyra\cyrn\cyri\cyrh\ \cyrp\cyrr\cyra\cyrc\cyrsftsn\ \cyrz\cyra~\cyrt\cyre\cyrm\cyro\cyryu~\cyrd\cyri\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyrii\cyryi}}}}{}}
%                               Список опублікованих праць за~темою~дисертації
\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
\let\@openbib@code\@empty
\newenvironment{theindex}
               {\if@twocolumn
                  \@restonecolfalse
                \else
                  \@restonecoltrue
                \fi
                \twocolumn[\@makeschapterhead{\indexname}]%
                \@mkboth{\MakeUppercase\indexname}%
                        {\MakeUppercase\indexname}%
                \thispagestyle{plain}\parindent\z@
                \parskip\z@ \@plus .3\p@\relax
                \columnseprule \z@
                \columnsep 35\p@
                \let\item\@idxitem}
               {\if@restonecol\onecolumn\else\clearpage\fi}
\newcommand\@idxitem{\par\hangindent 40\p@}
\newcommand\subitem{\@idxitem \hspace*{20\p@}}
\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
\renewcommand\footnoterule{%
  \kern-3\p@
  \hrule\@width.4\columnwidth
  \kern2.6\p@}
\@addtoreset{footnote}{chapter}
\newcommand\@makefntext[1]{%
    \parindent 1em%
    \noindent
    \hb@xt@1.8em{\hss\@makefnmark}#1}
\newcommand\contentsname{Contents}
\newcommand\listfigurename{List of Figures}
\newcommand\listtablename{List of Tables}
\newcommand\bibname{Bibliography}
\newcommand\indexname{Index}
\newcommand\figurename{Figure}
\newcommand\tablename{Table}
\newcommand\partname{Part}
\newcommand\chaptername{Chapter}
\newcommand\appendixname{Appendix}
\newcommand\abstractname{Abstract}
\def\today{\ifcase\month\or
  January\or February\or March\or April\or May\or June\or
  July\or August\or September\or October\or November\or December\fi
  \space\number\day, \number\year}
\AtBeginDocument{%
\@ifpackageloaded{babel}{\addto\captionsukrainian{%
  \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrya}}}}{}
}
\setlength\columnsep{10\p@}
\setlength\columnseprule{0\p@}
\pagestyle{plain}
\pagenumbering{arabic}
%<*vakaref>
%FIXME: \RequirePackage?
\AtBeginDocument{\usepackage{casus}}
%</vakaref>
\if@twoside
\else
  \raggedbottom
\fi
\if@twocolumn
  \twocolumn
  \sloppy
  \flushbottom
\else
  \onecolumn
\fi
% end of standard report class
%    \end{macrocode}
%
% \subsection{Налагодження}
%
%    \begin{macrocode}
% customise some commands from other packages
% slanted OR italic
\newcommand{\slantedthmbody}{\def\sl@OR@it{%
  \expandafter\let\expandafter\@tempa\csname\f@shape shape\endcsname
  \ifx\@tempa\itshape\slshape\fi\let\itshape\slshape}}
\newcommand{\italicthmbody}{\def\sl@OR@it{%
  \expandafter\let\expandafter\@tempa\csname\f@shape shape\endcsname
  \ifx\@tempa\slshape\itshape\fi\let\slshape\itshape}}
\let\sl@OR@it\relax
\newcommand{\slantedall}{\let\itshape\slshape}
%    \end{macrocode}
%
% \changes{v0.08}{2009/04/01}{Змінено вертикальні відступи у теоремах і доведеннях}
%
% \begin{macro}{\@begintheorem}
% Щоб досягнути потрібного оформлення, переозначуємо команди для теорем, означені в \file{ltthm.dtx}.
% Спочатку команда, що викликається для теорем \emph{без} факультативного аргумента.
%    \begin{macrocode}
\def\@begintheorem#1#2{%
%    \end{macrocode}
% Ми <<зануляємо>> вертикальні відступи для загальних списків (див. відповідний розділ),
% але для теорем хочемо залишити невеликі відступи.
% Тому тут маємо задавати значення |\topsep| (невелике, наприклад, |\smallskipamount|).
% Його необхідно змінювати перед |\trivlist| (щоб використовувалося вказане значення для цього списку),
% а |\itemindent| "--- після (щоб переозначити значення |\trivlist| за замовчуванням).
%
% Незрозуміло, чому переозначення |\itemindent| дає такий ефект\ldots\
% Але документація команди |\trivlist| у файлі \file{ltlists.dtx} рекомендує так робити.
% Тому я замінив попередній варіант з викликом |\indent| перед |\bfseries| (хоча це теж працювало).
%    \begin{macrocode}
  \topsep\smallskipamount
  \trivlist
  \itemindent\parindent
%    \end{macrocode}
% Додаємо крапку після заголовка і перемикач slanted/italic для тіла теореми.
%    \begin{macrocode}
  \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape\sl@OR@it}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@opargbegintheorem}
% І так само робимо для команди, що викликається для теорем \emph{з} факультативним аргументом.
%    \begin{macrocode}
\def\@opargbegintheorem#1#2#3{%
  \topsep\smallskipamount
  \trivlist
  \itemindent\parindent
  \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape\sl@OR@it}
%    \end{macrocode}
% \end{macro}
%
% FIXME: Недобре двічі писати той самий код в різних командах.
% Можна помістити його в команду |\@thm|.
% Але чи дає це істотні переваги у порівнянні з необхідністю переозначувати ще одну стандартну команду?
% Тому поки що хай буде так.
%
% FIXME: Ненульовий відступ може знадобитися в інших оточеннях, що працюють на основі |\list| чи |\trivlist|.
% У яких?
% Що робити: змінювати в кожному випадку? все-таки залишити відступи у загальному списку?..
%
% Якщо викликається пакет \pkg{amsthm}, маємо переозначити відповідні команди з нього.
%    \begin{macrocode}
\AtBeginDocument{%
\@ifpackageloaded{amsthm}{%
%    \end{macrocode}
%
% \begin{macro}{\@thm}
% Змінюємо відступи.
%    \begin{macrocode}
  \def\@thm#1#2#3{%
    \ifhmode\unskip\unskip\par\fi
    \normalfont
%    \end{macrocode}
% Змінюємо значення |\topsep|, як і раніше.
%    \begin{macrocode}
    \topsep\smallskipamount
    \trivlist
    \let\thmheadnl\relax
    \let\thm@swap\@gobble
%    \end{macrocode}
% Робимо абзацний відступ.
%    \begin{macrocode}
    \let\thm@indent\indent
%    \end{macrocode}
% Забираємо оформлення для факультативного аргумента теореми (щоб був такий, як заголовок теореми).
%    \begin{macrocode}
%    \thm@notefont{\fontseries\mddefault\upshape}%
    \thm@headpunct{.}% add period after heading
    \thm@headsep 5\p@ plus\p@ minus\p@\relax
    \thm@space@setup
    #1% style overrides
    \@topsep \thm@preskip               % used by thm head
    \@topsepadd \thm@postskip           % used by \@endparenv
    \def\@tempa{#2}\ifx\@empty\@tempa
      \def\@tempa{\@oparg{\@begintheorem{#3}{}}[]}%
    \else
      \refstepcounter{#2}%
      \def\@tempa{\@oparg{\@begintheorem{#3}{\csname the#2\endcsname}}[]}%
    \fi
    \@tempa
  }%
%    \end{macrocode}
% \end{macro}
%
% FIXME: може, краще переозначати явно |\thm@space@setup|, а не |\topsep|, щоб задавати вертикальні відступи?
%
% \begin{macro}{\swappedhead}
% Додаємо крапку після номера у теоремах з перевернутим порядком: спочатку номер, потім "--- теорема.
% Вигляд має бути схожий на |\(sub)(sub)section|, тому додано |\enskip|.
%    \begin{macrocode}
  \def\swappedhead#1#2#3{%
    \thmnumber{#2}%
    \thmname{\@ifnotempty{#2}{.\enskip}#1}%
    \thmnote{ {\the\thm@notefont(#3)}}}
%    \end{macrocode}
% Варіант без дужок навколо факультативного аргумента.
% Колись один автор запитував про таке.
% Зробити неважко, але як зробити, щоб автоматично визначати, чи варто писати дужки?
% Чи зробити інтерфейс для перемикання?
% Тому це не включається за замовчуваням.
%    \begin{macrocode}
% примітки без (круглих дужок): Теорема 2.1 [54].
%  \def\thmhead#1#2#3{%
%    \thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}%
%    \thmnote{ {\the\thm@notefont#3}}}
% крапка після номера, якщо номер попереду: 2.1. Теорема [54].
%  \def\swappedhead#1#2#3{%
%    \thmnumber{#2}%
%    \thmname{\@ifnotempty{#2}{.\enskip}#1}%
%    \thmnote{ {\the\thm@notefont#3}}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@begintheorem}
% Лише додано перемикач slanted/italic.
%    \begin{macrocode}
  \def\@begintheorem#1#2[#3]{%
    \deferred@thm@head{\the\thm@headfont \thm@indent
      \@ifempty{#1}{\let\thmname\@gobble}{\let\thmname\@iden}%
      \@ifempty{#2}{\let\thmnumber\@gobble}{\let\thmnumber\@iden}%
      \@ifempty{#3}{\let\thmnote\@gobble}{\let\thmnote\@iden}%
      \thm@swap\swappedhead\thmhead{#1}{#2}{#3}%
      \the\thm@headpunct
      \thmheadnl % possibly a newline.
      \hskip\thm@headsep
    }%
    \sl@OR@it
    \ignorespaces}%
%    \end{macrocode}
% \end{macro}
%
% \begin{environment}{proof}
% Відповідні зміни відступів для оточення доведення.
%    \begin{macrocode}
  \renewenvironment{proof}[1][\proofname]{\par
    \pushQED{\qed}%
%    \end{macrocode}
% Вилучено |\topsep|.
% FIXME: Чому? Бо занадто великий.
% Але після доведення відступ необхідний! Там є <<квадратик>>\ldots\
% Може, все-таки зробити невеликий відступ: після теореми перед доведенням відступи будуть <<взаємно ігноруватися>>, а після доведення "--- не завадить.
%    \begin{macrocode}
    \normalfont \topsep2\p@\@plus\p@\relax%\topsep6\p@\@plus6\p@\relax
    \trivlist
%    \end{macrocode}
% Додано абзацний відступ.
%    \begin{macrocode}
    \itemindent\parindent
    \item[\hskip\labelsep
          \itshape
      #1\@addpunct{.}]\ignorespaces
  }{%
    \popQED\endtrivlist\@endpefalse
  }%
%    \end{macrocode}
% \end{environment}
%
%    \begin{macrocode}
}{% гілку amsthm завершено, гілка не-amsthm порожня
}}
%    \end{macrocode}
% Далі буде.
%
% \changes{v0.09}{2021/07/21}{Додано попередження про потребу використовувати
% \pkg{babel} з опцією \Lopt{ukrainian}, якщо його не завантажено}
%
% Якщо пакунок \pkg{babel} не завантажено, то не будуть доступні команди
% |\Asbuk|, |\@Asbuk|, |\asbuk|, |\@asbuk|,
% які форматують лічильники у вигляді кириличних букв.
% Вони використовуються на другому й четвертому рівні нумерованих списків.
%
% Але не можна просто продублювати частину команд,
% занадто багато можливостей \pkg{babel} треба використовувати.
% Також не можна примусово викликати пакунок \pkg{babel}
% <<на початку документа>> (|\AtBeginDocument|).
% Усе коректно працюватиме тільки тоді,
% якщо викликати \pkg{babel} у преамбулі документа.
% Тому просто попереджаємо користувача.
%    \begin{macrocode}
\AtBeginDocument{%
  \@ifpackageloaded{babel}{}{%
    \ClassError{\@classname}{Package `babel' is not loaded properly}%
      {You cannot use all features of \@classname\space class without multilingual support.\MessageBreak
       Load package `babel' with option `ukrainian' in the preamble of your document.}
  }}
%    \end{macrocode}
%
% \changes{v0.09}{2021/07/21}{Вилучено дубльоване з \pkg{babel}
% означення короткого пробілу між ініціалами}
%
% Означення |",| тут зайве, бо воно є в \pkg{babel}.
% Можливо, я додав його раніше,
% бо воно було закоментоване у попередніх версіях ukraineb.dtx.
%    \begin{macrocode}
% Вітчизняні традиції
\AtBeginDocument{%
  % \declare@shorthand{ukrainian}{",}{\nobreak\hskip.2em\ignorespaces}%
  \@ifpackageloaded{amssymb}{%
    \let\leq\leqslant
    \let\geq\geqslant
    \let\le\leqslant
    \let\ge\geqslant
    \let\emptyset\varnothing
  }{}%
  \def\Re{\mathop{\operator@font Re}\nolimits}%
  \def\Im{\mathop{\operator@font Im}\nolimits}%
  \def\ud{\mathrm d}%
% expectation?
%  \DeclareMathOperator{\Expect}{\mathsf{M}}
% три крапки (...) завжди внизу рядка
%FIXME: сумніваюся в доцільності
%  \let\cdots\ldots
%  \@ifpackageloaded{amsmath}{%
%    \let\dots\ldots
%    \let\dotsc\ldots
%    \let\dotsb\ldots
%    \let\dotsm\ldots
%    \let\dotsi\ldots
%    \let\dotso\ldots
%  }{}%
}
% % --------------------------------------------------
% % ! Experimental code.
% % \cite in an upright font always
% \def\@cite#1#2{{\upshape [{#1\if@tempswa , #2\fi}]}}
% %               ~~~~~~~~ а \textup не працює
% % --------------------------------------------------
%</vakthesis|vakaref>
%    \end{macrocode}
%
% \subsection{Відмінювання назв установ}
%
%    \begin{macrocode}
%<*casus>
% Пакет |casus| включений тепер у |.dtx|-файл. Вилучені порожні
% рядки, подвоєні проценти перед коментарями. Ніяких суттєвих змін
% пакет не зазнав. Але потребує.
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{casus}
  [2004/02/20 v0.01 Casus (OMB)]
%% Створити список правил відмінювання
\def\declinenoun{}
\def\declineadjective{}
\newcommand{\declension}[1]{%
  \def\@partofspeech{noun}%
  \@split@declension#1.}
\def\@split@declension#1. {%
  \ifx\relax#1\relax
  \else
    \@split@entry#1.
    \expandafter\@split@declension
  \fi}
\def\@split@entry{\@ifnextchar[\@extract@partofspeech
  {\expandafter\csname @split@entry@\@partofspeech\endcsname}}
\def\@extract@partofspeech[#1] {\def\@partofspeech{#1}%
  \expandafter\csname @split@entry@\@partofspeech\endcsname}
\def\@split@entry@noun#1 #2 #3 #4 #5 #6 #7. {%
  \g@addto@macro\declinenoun{\entry{#1}{#2}{#3}{#4}{#5}{#6}{#7}}}
\def\@split@entry@adjective#1 #2 #3 #4 #5 #6. {%
  \g@addto@macro\declineadjective{\entry{#1}{#2}{#3}{#4}{#5}{#6}}}
%% Приклад правил
\declension{% цей рядок обов'язково повинен закінчуватися знаком %
[noun]
-ніверситет ніверситету ніверситету ніверситет ніверситетом ніверситеті ніверситете.
-нститут нституту нституту нститут нститутом нституті нституте.
-кадемія кадемії кадемії кадемію кадемією кадемії кадеміє.
-ехнікум ехнікуму ехнікуму ехнікум ехнікумом ехнікумі ехнікуме.
-оледж оледжу оледжу оледж оледжом оледжі оледже.
-іністерство іністерства іністерству іністерство іністерством іністерстві іністерство.
-ентр ентру ентру ентр ентром ентрі ентре.
-омплекс омплексу омплексу омплекс омплексом омплексі омплексе.
-б'єднання б'єднання б'єднанню б'єднання б'єднанням б'єднанні б'єднання.
%% I відміна
%%   тверда група
-га ги зі гу гою зі го.
-ка ки ці ку кою ці ко.
-ха хи сі ху хою сі хо.
-а и і у ою і о.
%%   м'яка група
-я і і ю ею і е.
-ія ії ії ію ією ії іє.
%%   мішана група
-жа жі жі жу жею жі же.
-ча чі чі чу чею чі че.
-ша ші ші шу шею ші ше.
-ща щі щі щу щею щі ще.
[adjective]
-ий ого ому ий им ому.
-а ої ій у ою ій.
-е ого ому е им ому.
-ій ього ьому ій ім ьому.
-я ьої ій ю ьою ій.
-є ього ьому є ім ьому.
}
\newif\if@unknownword
%% Відмінок #2 для слова #3
%%     ukr        rus           eng
%% N 0 називний   именительный  nominative
%% G 1 родовий    родительный   genitive
%% D 2 давальний  дательный     dative
%% A 3 знахідний  винительный   accusative
%% I 4 орудний    творительный  instrumental
%% L 5 місцевий                 locative
%%                              ablative(орудно-місцевий в Latin)
%%                предложный    prepositional
%% V 6 кличний                  vocative
\newcommand{\case}[3][noun]{%
  \def\@partofspeech{#1}%
  \def\@temp{adjective}%
%% з кирилецею (Н, Р, Д, ...) не працює
  \def\@numbercase{\if N#20\else\if G#21\else\if D#22\else
    \if A#23\else\if I#24\else\if L#25\else\if V#26\else
    7\fi\fi\fi\fi\fi\fi\fi}%
  \def\@worda{}%
  \ifnum\@numbercase>6
    \def\@worda{#3}\typeout{Unknown caseID: `#2'.}%
  \else
    \ifx\@partofspeech\@temp
      \ifnum\@numbercase=6
        \def\@worda{#3}%
        \typeout{Adjective does not have vocative case.}%
      \else
        \@declineword{#3}\@nil
      \fi
    \else
      \@declineword{#3}\@nil
    \fi
  \fi
  \@worda}
\def\@declineword#1\@nil{%
  \ifx\relax#1\relax
  \else
    \@unknownwordfalse
    \def\entry{\expandafter
      \csname @case@\@partofspeech\endcsname
      {\@numbercase}{\ifx\@worda\@empty\else-\fi#1}}%
    \def\lastentry{\@unknownwordtrue}%
    \expandafter\csname decline\@partofspeech\endcsname\lastentry
    \if@unknownword
      \@shift#1\@nil
    \else
      \g@addto@macro\@worda{\@wordb}%
    \fi
  \fi}
\def\@shift#1{\g@addto@macro\@worda{#1}\@declineword}
\def\@case@noun#1#2#3#4#5#6#7#8#9{%
  \edef\@tempa{#2}\edef\@tempb{#3}%
  \ifx\@tempa\@tempb
    \def\@wordb{\ifcase#1 \@ifnextchar-\@gobble\relax#3\or
      #4\or#5\or#6\or#7\or#8\or#9\fi}%
    \expandafter\@gobbleallentries
  \fi}
\def\@case@adjective#1#2#3#4#5#6#7#8{%
  \edef\@tempa{#2}\edef\@tempb{#3}%
  \ifx\@tempa\@tempb
    \def\@wordb{\ifcase#1 \@ifnextchar-\@gobble\relax#3\or
      #4\or#5\or#6\or#7\or#8\fi}%
    \expandafter\@gobbleallentries
  \fi}
\def\@gobbleallentries#1\lastentry{}
%% Парадигма слова
\newcommand{\paradigm}[2][noun]{%
\begin{list}{}{\itemsep0pt\parsep0pt\def\makelabel##1{##1\hfil}}
\item[Н.] \case[#1]{N}{#2}
\item[Р.] \case[#1]{G}{#2}
\item[Д.] \case[#1]{D}{#2}
\item[З.] \case[#1]{A}{#2}
\item[О.] \case[#1]{I}{#2}
\item[М.] \case[#1]{L}{#2}
\ifthenelse{\equal{#1}{noun}}{\item[Кл.] \case[#1]{V}{#2}}{}
\end{list}}
%% Перетворити речення #2 до відмінка #1
\newcommand{\transformsentence}[2]{%
  \def\@case{#1}%
  \def\@processword##1{\case[adjective]{\@case}{##1} }%
  \expandafter\@split@sentence#2 }
\def\@split@sentence#1 {%
  \ifx\relax#1\relax
    \unskip
  \else
    \ifthenelse{\equal{#1}{університет}\or\equal{#1}{Університет}\or
                \equal{#1}{інститут}\or\equal{#1}{Інститут}\or
                \equal{#1}{академія}\or\equal{#1}{Академія}\or
                \equal{#1}{технікум}\or\equal{#1}{Технікум}\or
                \equal{#1}{коледж}\or\equal{#1}{Коледж}\or
                \equal{#1}{міністерство}\or\equal{#1}{Міністерство}\or
                \equal{#1}{центр}\or\equal{#1}{Центр}\or
                \equal{#1}{комплекс}\or\equal{#1}{Комплекс}\or
                \equal{#1}{об'єднання}\or\equal{#1}{Об'єднання}}
      {\case[noun]{\@case}{#1}
       \def\@processword##1{##1 }}
      {\@processword{#1}}%
    \expandafter\@split@sentence
  \fi}
%% Повний набір перетворень речення #1 для тестування
\newcommand{\fullset}[1]{%
\begin{list}{}{\itemsep0pt\parsep0pt\def\makelabel##1{##1\hfil}}
\item[Н.] #1
\item[Р.] \transformsentence{G}{#1}
\item[Д.] \transformsentence{D}{#1}
\item[З.] \transformsentence{A}{#1}
\item[О.] \transformsentence{I}{#1}
\item[М.] \transformsentence{L}{#1}
\item[Кл.]\transformsentence{V}{#1}
\end{list}}
%</casus>
%    \end{macrocode}
%
% \changes{v0.08}{2009/04/01}{Доповнено файл відповідності шифру та назви спеціальності}
%
%\iffalse
%    \begin{macrocode}
%<*speciality>
%<<SPECIALITY
% speciality.20070212N70
% файл відповідності шифру та назви спеціальності
% на основі наказу ВАК України від 12.02.2007 № 70
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Перелік
% спеціальностей, за якими проводяться захист дисертацій
% на здобуття наукових ступенів кандидата наук і доктора наук,
% присудження наукових ступенів і присвоєння вчених звань
%
% Наказ ВАК України <<Про затвердження Переліку спеціальностей...>>
%   від 23.06.2005 № 377
% зі змінами і доповненнями, внесеними наказами ВАК України
%   від 14.02.2006 № 73,
%   від 29.05.2006 № 263,
%   від 19.09.2006 № 407,
%   від 12.02.2007 № 70
% Зареєстровано у Міністерстві юстиції України
%   05.07.2005 за № 713/10993,
%   06.03.2006 за № 236/12110,
%   07.06.2006 за № 682/12556,
%   27.09.2006 за № 1075/12949,
%   21.02.2007 за № 159/13426
%
% Перелік і наказ доступні за адресою
%   http://www.vak.org.ua/docs//spec_boards/spec_list.pdf
% (останнє відвідування 12.07.2007)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Формат файла:
%   * рядок опису галузі науки
% ##       галузь науки
%   * рядок опису групи спеціальностей
% ##.##    назва групи спеціальностей
%   * рядок опису спеціальності
% ##.##.## назва спеціальності/галузь науки у родовому відмінку
% !Файл не повинен містити порожніх рядків
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
01       фізико-математичні науки
%
01.01    математика
01.01.01 математичний аналіз/фізико-математичних наук
01.01.02 диференціальні рівняння/фізико-математичних наук
01.01.03 математична фізика/фізико-математичних наук
01.01.04 геометрія та топологія/фізико-математичних наук
01.01.05 теорія ймовірностей і математична статистика/фізико-математичних наук
01.01.06 алгебра та теорія чисел/фізико-математичних наук
01.01.07 обчислювальна математика/фізико-математичних наук
01.01.08 математична логіка, теорія алгоритмів і дискретна математика/фізико-математичних наук
01.01.09 варіаційне числення та теорія оптимального керування/фізико-математичних наук
01.01.10 дослідження операцій та теорія ігор/фізико-математичних наук
%
01.02    механіка
01.02.01 теоретична механіка/фізико-математичних наук
01.02.04 механіка деформівного твердого тіла/фізико-математичних наук/технічних наук
01.02.05 механіка рідини, газу та плазми/фізико-математичних наук/технічних наук
%
01.03    астрономія
01.03.01 астрометрія і небесна механіка/фізико-математичних наук
01.03.02 астрофiзика, радiоастрономiя/фізико-математичних наук
01.03.03 геліофізика і фізика Сонячної системи/фізико-математичних наук
%
01.04    фізика
01.04.01 фізика приладів, елементів і систем/фізико-математичних наук
01.04.02 теоретична фізика/фізико-математичних наук
01.04.03 радіофізика/фізико-математичних наук
01.04.04 фізична електроніка/фізико-математичних наук
01.04.05 оптика, лазерна фізика/фізико-математичних наук
01.04.06 акустика/фізико-математичних наук
01.04.07 фізика твердого тіла/фізико-математичних наук/технічних наук
01.04.08 фізика плазми/фізико-математичних наук/технічних наук
01.04.09 фізика низьких температур/фізико-математичних наук
01.04.10 фізика напівпровідників і діелектриків/фізико-математичних наук
01.04.11 магнетизм/фізико-математичних наук
01.04.13 фізика металів/фізико-математичних наук
01.04.14 теплофізика та молекулярна фізика/фізико-математичних наук
01.04.15 фізика молекулярних та рідких кристалів/фізико-математичних наук
01.04.16 фізика ядра, елементарних частинок і високих енергій/фізико-математичних наук/технічних наук
01.04.17 хімічна фізика, фізика горіння та вибуху/фізико-математичних наук/хімічних наук
01.04.18 фізика і хімія поверхні/фізико-математичних наук/хімічних наук
01.04.19 фізика полімерів/фізико-математичних наук
01.04.20 фізика пучків заряджених частинок/фізико-математичних наук/технічних наук
01.04.21 радіаційна фізика та ядерна безпека/фізико-математичних наук
01.04.22 надпровідність/фізико-математичних наук
01.04.24 фізика колоїдних систем/фізико-математичних наук
%
01.05    інформатика і кібернетика
01.05.01 теоретичні основи інформатики та кібернетики/фізико-математичних наук
01.05.02 математичне моделювання та обчислювальні методи/фізико-математичних наук/технічних наук
01.05.03 математичне та програмне забезпечення обчислювальних машин і систем/фізико-математичних наук/технічних наук
01.05.04 системний аналіз і теорія оптимальних рішень/фізико-математичних наук/технічних наук
%
01.06    історія фізико-математичних наук
01.06.01 історія фізико-математичних наук/фізико-математичних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
02       хімічні науки
02.00.01 неорганічна хімія/хімічних наук
02.00.02 аналітична хімія/хімічних наук
02.00.03 органічна хімія/хімічних наук
02.00.04 фізична хімія/хімічних наук
02.00.05 електрохімія/хімічних наук
02.00.06 хімія високомолекулярних сполук/хімічних наук
02.00.08 хімія елементоорганічних сполук/хімічних наук
02.00.09 хімія високих енергій/хімічних наук
02.00.10 біоорганічна хімія/хімічних наук/біологічних наук
02.00.11 колоїдна хімія/хімічних наук
02.00.13 нафтохімія і вуглехімія/хімічних наук
02.00.15 хімічна кінетика і каталіз/хімічних наук
02.00.19 хімія високочистих речовин/хімічних наук
02.00.21 хімія твердого тіла/хімічних наук
02.00.22 історія хімії/хімічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
03       біологічні науки
03.00.01 радіобіологія/біологічних наук/медичних наук
03.00.02 біофізика/біологічних наук/фізико-математичних наук/медичних наук
03.00.03 молекулярна біологія/біологічних наук
03.00.04 біохімія/біологічних наук/сільськогосподарських наук/медичних наук/ветеринарних наук
03.00.05 ботаніка/біологічних наук
03.00.06 вірусологія/біологічних наук/медичних наук
03.00.07 мікробіологія/біологічних наук/сільськогосподарських наук/медичних наук
03.00.08 зоологія/біологічних наук
03.00.09 імунологія/біологічних наук
03.00.10 іхтіологія/біологічних наук
03.00.11 цитологія, клітинна біологія, гістологія/біологічних наук
03.00.12 фізіологія рослин/біологічних наук/сільськогосподарських наук
03.00.13 фізіологія людини і тварин/біологічних наук/сільськогосподарських наук/ветеринарних наук
03.00.14 біологія розвитку/біологічних наук/медичних наук
03.00.15 генетика/біологічних наук/сільськогосподарських наук/медичних наук
03.00.16 екологія/біологічних наук/сільськогосподарських наук/медичних наук
03.00.17 гідробіологія/біологічних наук
03.00.18 грунтознавство/біологічних наук
03.00.19 кріобіологія/біологічних наук
03.00.20 біотехнологія/біологічних наук/технічних наук/сільськогосподарських наук
03.00.21 мікологія/біологічних наук/медичних наук
03.00.22 молекулярна генетика/біологічних наук
03.00.23 історія біології/біологічних наук
03.00.24 ентомологія/біологічних наук
03.00.25 паразитологія, гельмінтологія/біологічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
04       геологічні науки
04.00.01 загальна та регіональна геологія/геологічних наук
04.00.02 геохімія/геологічних наук/хімічних наук
04.00.04 геотектоніка/геологічних наук
04.00.05 геологічна інформатика/геологічних наук/фізико-математичних наук
04.00.06 гідрогеологія/геологічних наук
04.00.07 інженерна геологія/геологічних наук
04.00.08 петрологія/геологічних наук
04.00.09 палеонтологія і стратиграфія/геологічних наук
04.00.10 геологія океанів і морів/геологічних наук
04.00.11 геологія металевих і неметалевих корисних копалин/геологічних наук/технічних наук
04.00.16 геологія твердих горючих копалин/геологічних наук
04.00.17 геологія нафти і газу/геологічних наук
04.00.19 економічна геологія/геологічних наук/економічних наук
04.00.20 мінералогія, кристалографія/геологічних наук
04.00.21 літологія/геологічних наук
04.00.22 геофізика/геологічних наук/фізико-математичних наук
04.00.23 історія геології/геологічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
05       технічні науки
%
05.01    прикладна геометрія, інженерна графіка та ергономіка
05.01.01 прикладна геометрія, інженерна графіка/технічних наук
05.01.02 стандартизація, сертифікація та метрологічне забезпечення/технічних наук
05.01.03 технічна естетика/технічних наук/мистецтвознавства
05.01.04 ергономіка/технічних наук/біологічних наук/психологічних наук
%
05.02    машинознавство
05.02.01 матеріалознавство/технічних наук
05.02.02 машинознавство/технічних наук
05.02.04 тертя та зношування в машинах/технічних наук
05.02.08 технологія машинобудування/технічних наук
05.02.09 динаміка та міцність машин/технічних наук
05.02.10 діагностика матеріалів і конструкцій/технічних наук
%
05.03    обробка матеріалів у машинобудуванні
05.03.01 процеси механічної обробки, верстати та інструменти/технічних наук
05.03.05 процеси та машини обробки тиском/технічних наук
05.03.06 зварювання та споріднені процеси і технології/технічних наук
05.03.07 процеси фізико-технічної обробки/технічних наук
%
05.05    галузеве машинобудування
05.05.01 машини і процеси поліграфічного виробництва/технічних наук
05.05.02 машини для виробництва будівельних матеріалів і конструкцій/технічних наук
05.05.03 двигуни та енергетичні установки/технічних наук
05.05.04 машини для земляних, дорожніх і лісотехнічних робіт/технічних наук
05.05.05 піднімально-транспортні машини/технічних наук
05.05.06 гірничі машини/технічних наук
05.05.08 машини для металургійного виробництва/технічних наук
05.05.10 машини легкої промисловості/технічних наук
05.05.11 машини і засоби механізації сільськогосподарського виробництва/технічних наук
05.05.12 машини нафтової та газової промисловості/технічних наук
05.05.13 машини та апарати хімічних виробництв/технічних наук
05.05.14 холодильна, вакуумна та компресорна техніка, системи кондиціонування/технічних наук
05.05.16 турбомашини та турбоустановки/технічних наук
05.05.17 гідравлічні машини та гідропневмоагрегати/технічних наук
%
05.07    авіаційна та ракетно-космічна техніка
05.07.01 аеродинаміка та газодинаміка літальних апаратів/технічних наук
05.07.02 проектування, виробництво та випробування літальних апаратів/технічних наук
05.07.06 наземні комплекси, стартове обладнання/технічних наук
05.07.12 дистанційні аерокосмічні дослідження/технічних наук/фізико-математичних наук/геологічних наук
05.07.14 авіаційно-космічні тренажери/технічних наук
%
05.08    кораблебудування
05.08.01 теорія корабля/технічних наук
05.08.03 конструювання та будування суден/технічних наук
%
05.09    електротехніка
05.09.01 електричні машини й апарати/технічних наук
05.09.03 електротехнічні комплекси та системи/технічних наук
05.09.05 теоретична електротехніка/технічних наук
05.09.07 світлотехніка та джерела світла/технічних наук
05.09.08 прикладна акустика та звукотехніка/технічних наук
05.09.12 напівпровідникові перетворювачі електроенергії/технічних наук
05.09.13 техніка сильних електричних та магнітних полів/технічних наук
%
05.11    прилади
05.11.01 прилади та методи вимірювання механічних величин/технічних наук
05.11.03 гіроскопи та навігаційні системи/технічних наук
05.11.04 прилади та методи вимірювання теплових величин/технічних наук
05.11.05 прилади та методи вимірювання електричних та магнітних величин/технічних наук
05.11.07 оптичні прилади та системи/технічних наук
05.11.08 радіовимірювальні прилади/технічних наук
05.11.13 прилади і методи контролю та визначення складу речовин/технічних наук
05.11.17 біологічні та медичні прилади і системи/технічних наук
%
05.12    радіотехніка та телекомунікації
05.12.02 телекомунікаційні системи та мережі/технічних наук
05.12.07 антени та пристрої мікрохвильової техніки/технічних наук
05.12.13 радіотехнічні пристрої та засоби телекомунікацій/технічних наук
05.12.17 радіотехнічні та телевізійні системи/технічних наук
05.12.20 оптоелектронні системи/технічних наук
%
05.13    інформатика, обчислювальна техніка та автоматизація
05.13.03 системи та процеси керування/технічних наук
05.13.05 комп'ютерні системи та компоненти/технічних наук
05.13.06 інформаційні технології/технічних наук
05.13.07 автоматизація процесів керування/технічних наук
05.13.09 медична та біологічна інформатика і кібернетика/технічних наук
05.13.12 системи автоматизації проектувальних робіт/технічних наук
05.13.21 системи захисту інформації/технічних наук
05.13.22 управління проектами і програмами/технічних наук
05.13.23 системи та засоби штучного інтелекту/технічних наук
%
05.14    енергетика
05.14.01 енергетичні системи та комплекси/технічних наук
05.14.02 електричні станції, мережі і системи/технічних наук
05.14.06 технічна теплофізика та промислова теплоенергетика/технічних наук
05.14.08 перетворювання відновлюваних видів енергії/технічних наук
05.14.14 теплові та ядерні енергоустановки/технічних наук
%
05.15    розробка корисних копалин
05.15.01 маркшейдерія/технічних наук
05.15.02 підземна розробка родовищ корисних копалин/технічних наук
05.15.03 відкрита розробка родовищ корисних копалин/технічних наук
05.15.04 шахтне та підземне будівництво/технічних наук
05.15.06 розробка нафтових та газових родовищ/технічних наук
05.15.08 збагачення корисних копалин/технічних наук
05.15.09 геотехнічна і гірнича механіка/технічних наук
05.15.12 розробка морських родовищ корисних копалин/технічних наук
05.15.13 трубопровідний транспорт, нафтогазосховища/технічних наук
%
05.16    металургія
05.16.01 металознавство та термічна обробка металів/технічних наук
05.16.02 металургія чорних і кольорових металів та спеціальних сплавів/технічних наук
05.16.04 ливарне виробництво/технічних наук
05.16.06 порошкова металургія та композиційні матеріали/технічних наук
%
05.17    хімічні технології
05.17.01 технологія неорганічних речовин/технічних наук
05.17.03 технічна електрохімія/технічних наук
05.17.04 технологія продуктів органічного синтезу/технічних наук
05.17.06 технологія полімерних і композиційних матеріалів/технічних наук
05.17.07 хімічна технологія палива і паливно-мастильних матеріалів/технічних наук
05.17.08 процеси та обладнання хімічної технології/технічних наук
05.17.11 технологія тугоплавких неметалічних матеріалів/технічних наук
05.17.14 хімічний опір матеріалів та захист від корозії/технічних наук
05.17.15 технологія хімічних волокон/технічних наук
05.17.18 мембрани та мембранна технологія/технічних наук
05.17.21 технологія водоочищення/технічних наук
%
05.18    технологія харчової та легкої промисловості
05.18.01 зберігання і технологія переробки зерна, виготовлення зернових і хлібопекарських виробів та комбікормів/технічних наук
05.18.05 технологія цукристих речовин та продуктів бродіння/технічних наук
05.18.06 технологія жирів, ефірних масел і парфумерно-косметичних продуктів/технічних наук
05.18.12 процеси та обладнання харчових, мікробіологічних та фармацевтичних виробництв/технічних наук
05.18.13 технологія консервованих і охолоджених харчових продуктів/технічних наук
05.08.15 товарознавство/технічних наук
05.18.16 технологія продуктів харчування/технічних наук
05.18.18 технологія взуття, шкіряних виробів і хутра/технічних наук
05.18.19 технологія текстильних матеріалів, швейних і трикотажних виробів/технічних наук
%
05.22    транспорт
05.22.01 транспортні системи/технічних наук
05.22.02 автомобілі та трактори/технічних наук
05.22.06 залізнична колія/технічних наук
05.22.07 рухомий склад залізниць та тяга поїздів/технічних наук
05.22.09 електротранспорт/технічних наук
05.22.11 автомобільні шляхи та аеродроми/технічних наук
05.22.12 промисловий транспорт/технічних наук
05.22.13 навігація та управління рухом/технічних наук
05.22.20 експлуатація та ремонт засобів транспорту/технічних наук
%
05.23    будівництво
05.23.01 будівельні конструкції, будівлі та споруди/технічних наук
05.23.02 основи і фундаменти/технічних наук
05.23.03 вентиляція, освітлення та теплогазопостачання/технічних наук
05.23.04 водопостачання, каналізація/технічних наук
05.23.05 будівельні матеріали та вироби/технічних наук
05.23.08 технологія та організація промислового та цивільного будівництва/технічних наук
05.23.16 гідравліка та інженерна гідрологія/технічних наук
05.23.17 будівельна механіка/технічних наук
05.23.20 містобудування та територіальне планування/технічних наук
%
05.24    геодезія
05.24.01 геодезія та картографія/технічних наук
05.24.04 кадастр та моніторинг земель/технічних наук/біологічних наук
%
05.26    безпека життєдіяльності
05.26.01 охорона праці/технічних наук
%
05.27    електроніка
05.27.01 твердотільна електроніка/технічних наук
05.27.02 вакуумна, плазмова та квантова електроніка/технічних наук
05.27.06 технологія, обладнання та виробництво електронної техніки/технічних наук
%
05.28    історія техніки
05.28.01 історія техніки/технічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
06       сільськогосподарські науки
%
06.01    агрономія
06.01.01 загальне землеробство/сільськогосподарських наук
06.01.02 сільськогосподарські меліорації/сільськогосподарських наук/технічних наук
06.01.03 агроґрунтознавство і агрофізика/сільськогосподарських наук
06.01.04 агрохімія/сільськогосподарських наук
06.01.05 селекція рослин/сільськогосподарських наук
06.01.06 овочівництво/сільськогосподарських наук
06.01.07 плодівництво/сільськогосподарських наук
06.01.08 виноградарство/сільськогосподарських наук
06.01.09 рослинництво/сільськогосподарських наук
06.01.10 субтропічні культури/сільськогосподарських наук
06.01.11 фітопатологія/сільськогосподарських наук/біологічних наук
06.01.12 кормовиробництво і луківництво/сільськогосподарських наук
06.01.13 гербологія/сільськогосподарських наук
06.01.14 насінництво/сільськогосподарських наук
06.01.15 первинна обробка продуктів рослинництва/сільськогосподарських наук
%
06.02    зоотехнія
06.02.01 розведення та селекція тварин/сільськогосподарських наук/ветеринарних наук
06.02.02 годівля тварин і технологія кормів/сільськогосподарських наук
06.02.03 рибництво/сільськогосподарських наук
06.02.04 технологія виробництва продуктів тваринництва/сільськогосподарських наук
%
06.03    лісове господарство
06.03.01 лісові культури та фітомеліорація/сільськогосподарських наук/біологічних наук
06.03.02 лісовпорядкування і лісова таксація/сільськогосподарських наук
06.03.03 лісознавство і лісівництво/сільськогосподарських наук/біологічних наук
%
06.04    історія сільськогосподарських наук
06.04.01 історія сільськогосподарських наук/сільськогосподарських наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
07       історичні науки
07.00.01 історія України/історичних наук
07.00.02 всесвітня історія/історичних наук
07.00.03 історіософія/історичних наук
07.00.04 археологія/історичних наук
07.00.05 етнологія/історичних наук
07.00.06 історіографія, джерелознавство та спеціальні історичні дисципліни/історичних наук
07.00.07 історія науки й техніки/історичних наук
07.00.08 книгознавство, бібліотекознавство, бібліографознавство/історичних наук/філологічних наук
07.00.09 антропологія/історичних наук
07.00.10 документознавство, архівознавство/історичних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
08       економічні науки
08.00.01 економічна теорія та історія економічної думки/економічних наук
08.00.02 світове господарство і міжнародні економічні відносини/економічних наук
08.00.03 економіка та управління національним господарством/економічних наук
08.00.04 економіка та управління підприємствами (за видами економічної діяльності)/економічних наук
% мабуть, автор має вказувати вид економічної діяльності (у першому факультативному аргументі команди \speciality)
08.00.05 розвиток продуктивних сил і регіональна економіка/економічних наук
08.00.06 економіка природокористування та охорони навколишнього середовища/економічних наук
08.00.07 демографія, економіка праці, соціальна економіка і політика/економічних наук
08.00.08 гроші, фінанси і кредит/економічних наук
08.00.09 бухгалтерський облік, аналіз та аудит (за видами економічної діяльності)/економічних наук
% мабуть, автор має вказувати вид економічної діяльності (у першому факультативному аргументі команди \speciality)
08.00.10 статистика/економічних наук
08.00.11 математичні методи, моделі та інформаційні технології в економіці/економічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
09       філософські науки
09.00.01 онтологія, гносеологія, феноменологія/філософських наук
09.00.02 діалектика і методологія пізнання/філософських наук
09.00.03 соціальна філософія та філософія історії/філософських наук/історичних наук
09.00.04 філософська антропологія, філософія культури/філософських наук
09.00.05 історія філософії/філософських наук/історичних наук
09.00.06 логіка/філософських наук
09.00.07 етика/філософських наук/історичних наук/соціологічних наук
09.00.08 естетика/філософських наук/історичних наук/соціологічних наук
09.00.09 філософія науки/філософських наук
09.00.10 філософія освіти/філософських наук
09.00.11 релігієзнавство/філософських наук/історичних наук/соціологічних наук
09.00.12 українознавство/філософських наук/історичних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10       філологічні науки
%
10.01    літературознавство
10.01.01 українська література/філологічних наук
10.01.02 російська література/філологічних наук
10.01.03 література слов'янських народів/філологічних наук
10.01.04 література зарубіжних країн/філологічних наук
10.01.05 порівняльне літературознавство/філологічних наук
10.01.06 теорія літератури/філологічних наук
10.01.07 фольклористика/філологічних наук/мистецтвознавства
10.01.08 журналістика/філологічних наук
10.01.09 літературне джерелознавство і текстологія/філологічних наук
10.01.10 кримськотатарська література/філологічних наук
%
10.02    мовознавство
10.02.01 українська мова/філологічних наук
10.02.02 російська мова/філологічних наук
10.02.03 слов'янські мови/філологічних наук
10.02.04 германські мови/філологічних наук
10.02.05 романські мови/філологічних наук
10.02.06 балтійські мови/філологічних наук
10.02.07 індоіранські мови/філологічних наук
10.02.08 тюркські мови/філологічних наук
10.02.09 фінно-угорські та самодійські мови/філологічних наук
10.02.10 іберійсько-кавказькі мови/філологічних наук
10.02.11 монгольські мови/філологічних наук
10.02.12 семітські мови/філологічних наук
10.02.13 мови народів Азії, Африки, аборигенних народів Америки та Австралії/філологічних наук
10.02.14 класичні мови; окремі індоєвропейські мови/філологічних наук
% крапку замінено на крапку з комою
10.02.15 загальне мовознавство/філологічних наук
10.02.16 перекладознавство/філологічних наук
10.02.17 порівняльно-історичне і типологічне мовознавство/філологічних наук
10.02.21 структурна, прикладна та математична лінгвістика/філологічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11       географічні науки
11.00.01 фізична географія, геофізика і геохімія ландшафтів/географічних наук
11.00.02 економічна та соціальна географія/географічних наук
11.00.04 геоморфологія та палеогеографія/географічних наук
11.00.05 біогеографія та географія ґрунтів/географічних наук
11.00.07 гідрологія суші, водні ресурси, гідрохімія/географічних наук
11.00.08 океанологія/географічних наук
11.00.09 метеорологія, кліматологія, агрометеорологія/географічних наук
11.00.11 конструктивна географія і раціональне використання природних ресурсів/географічних наук
11.00.12 географічна картографія/географічних наук
11.00.13 історія географії/географічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12       юридичні науки
12.00.01 теорія та історія держави і права; історія політичних і правових учень/юридичних наук
12.00.02 конституційне право/юридичних наук
12.00.03 цивільне право і цивільний процес; сімейне право; міжнародне приватне право/юридичних наук
12.00.04 господарське право, господарсько-процесуальне право/юридичних наук
12.00.05 трудове право; право соціального забезпечення/юридичних наук
12.00.06 земельне право; аграрне право; екологічне право; природоресурсне право/юридичних наук
12.00.07 адміністративне право і процес; фінансове право; інформаційне право/юридичних наук
12.00.08 кримінальне право та кримінологія; кримінально-виконавче право/юридичних наук
12.00.09 кримінальний процес та криміналістика; судова експертиза/юридичних наук
12.00.10 судоустрій; прокуратура та адвокатура/юридичних наук
12.00.11 міжнародне право/юридичних наук
12.00.12 філософія права/юридичних наук/філософських наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13       педагогічні науки
%
13.00.01 загальна педагогіка та історія педагогіки/педагогічних наук
13.00.02 теорія та методика навчання (з галузей знань)/педагогічних наук
% тут автор має вказувати галузь знань: математики, фізики тощо (у першому факультативному аргументі команди \speciality)
13.00.03 корекційна педагогіка/педагогічних наук
13.00.04 теорія і методика професійної освіти/педагогічних наук
13.00.05 соціальна педагогіка/педагогічних наук
13.00.06 теорія і методика управління освітою/педагогічних наук
13.00.07 теорія і методика виховання/педагогічних наук
13.00.08 дошкільна педагогіка/педагогічних наук
13.00.09 теорія навчання/педагогічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14       медичні науки
%
14.01    клінічна медицина
14.01.01 акушерство та гінекологія/медичних наук
14.01.02 внутрішні хвороби/медичних наук
14.01.03 хірургія/медичних наук
14.01.04 серцевосудинна хірургія/медичних наук
14.01.05 нейрохірургія/медичних наук
14.01.06 урологія/медичних наук
14.01.07 онкологія/медичних наук/біологічних наук
14.01.08 трасплантологія та штучні органи/медичних наук/технічних наук
14.01.09 дитяча хірургія/медичних наук
14.01.10 педіатрія/медичних наук
14.01.11 кардіологія/медичних наук
14.01.12 ревматологія/медичних наук
14.01.13 інфекційні хвороби/медичних наук
14.01.14 ендокринологія/медичних наук/біологічних наук
14.01.15 нервові хвороби/медичних наук
14.01.16 психіатрія/медичних наук
14.01.17 наркологія/медичних наук
14.01.18 офтальмологія/медичних наук
14.01.19 оториноларингологія/медичних наук
14.01.20 шкірні та венеричні хвороби/медичних наук
14.01.21 травматологія та ортопедія/медичних наук
14.01.22 стоматологія/медичних наук
14.01.23 променева діагностика та променева терапія/медичних наук
14.01.24 лікувальна фізкультура та спортивна медицина/медичних наук
14.01.25 судова медицина/медичних наук
14.01.26 фтизіатрія/медичних наук
14.01.27 пульмонологія/медичних наук
14.01.28 клінічна фармакологія/медичних наук
14.01.29 клінічна алергологія/медичних наук
14.01.30 анестезіологія та інтенсивна терапія/медичних наук
14.01.31 гематологія та трансфузіологія/медичних наук/біологічних наук
14.01.32 медична біохімія/медичних наук/біологічних наук
14.01.33 медична реабілітація, фізіотерапія та курортологія/медичних наук
14.01.34 космічна медицина/медичних наук
14.01.35 кріомедицина/медичних наук
14.01.36 гастроентерологія/медичних наук
14.01.37 нефрологія/медичних наук
%
14.02    профілактична медицина
14.02.01 гігієна/медичних наук/біологічних наук
14.02.02 епідеміологія/медичних наук
14.02.03 соціальна медицина/медичних наук
14.02.04 історія медицини/медичних наук
%
14.03    теоретична медицина
14.03.01 нормальна анатомія/медичних наук/біологічних наук
14.03.02 патологічна анатомія/медичних наук
14.03.03 нормальна фізіологія/медичних наук
14.03.04 патологічна фізіологія/медичних наук/біологічних наук
14.03.05 фармакологія/медичних наук/біологічних наук/фармацевтичних наук
14.03.06 токсикологія/медичних наук/біологічних наук
14.03.07 фізіологічно активні сполуки/медичних наук/біологічних наук
14.03.08 імунологія та алергологія/медичних наук
14.03.09 гістологія, цитологія, ембріологія/медичних наук
14.03.10 біомеханіка/медичних наук/технічних наук
14.03.11 медична та біологічна інформатика і кібернетика/медичних наук/біологічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15       фармацевтичні науки
15.00.01 технологія ліків та організація фармацевтичної справи/фармацевтичних наук
15.00.02 фармацевтична хімія та фармакогнозія/фармацевтичних наук
15.00.03 стандартизація та організація виробництва лікарських засобів/фармацевтичних наук
15.00.04 історія фармації/фармацевтичних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16       ветеринарні науки
16.00.01 діагностика і терапія тварин/ветеринарних наук
16.00.02 патологія, онкологія і морфологія тварин/ветеринарних наук
16.00.03 ветеринарна мікробіологія та вірусологія/ветеринарних наук
16.00.04 ветеринарна фармакологія та токсикологія/ветеринарних наук
16.00.05 ветеринарна хірургія/ветеринарних наук
16.00.06 гігієна тварин та ветеринарна санітарія/ветеринарних наук/сільськогосподарських наук
16.00.07 ветеринарне акушерство/ветеринарних наук
16.00.08 епізоотологія та інфекційні хвороби/ветеринарних наук
16.00.09 ветеринарно-санітарна експертиза/ветеринарних наук
16.00.10 ентомологія/ветеринарних наук/сільськогосподарських наук
16.00.11 паразитологія, гельмінтологія/ветеринарних наук/медичних наук
16.00.12 історія ветеринарії/ветеринарних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17       мистецтвознавство
17.00.01 теорія та історія культури/мистецтвознавства/історичних наук/філософських наук
17.00.02 театральне мистецтво/мистецтвознавства
17.00.03 музичне мистецтво/мистецтвознавства
17.00.04 кіномистецтво; телебачення/мистецтвознавства
% крапку замінено на крапку з комою
17.00.05 образотворче мистецтво/мистецтвознавства
17.00.06 декоративне і прикладне мистецтво/мистецтвознавства
17.00.08 музеєзнавство; пам'яткознавство/мистецтвознавства/історичних наук
% крапку замінено на крапку з комою
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18       архітектура
18.00.01 теорія архітектури, реставрація пам'яток архітектури/архітектури
18.00.02 архітектура будівель та споруд/архітектури
18.00.04 містобудування та ландшафтна архітектура/архітектури
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19       психологічні науки
19.00.01 загальна психологія, історія психології/психологічних наук
19.00.02 психофізіологія/психологічних наук
19.00.03 психологія праці; інженерна психологія/психологічних наук/технічних наук
19.00.04 медична психологія/психологічних наук/медичних наук
19.00.05 соціальна психологія; психологія соціальної роботи/психологічних наук
19.00.06 юридична психологія/психологічних наук/юридичних наук
19.00.07 педагогічна та вікова психологія/психологічних наук
19.00.08 спеціальна психологія/психологічних наук
19.00.09 психологія діяльності в особливих умовах/психологічних наук
19.00.10 організаційна психологія; економічна психологія/психологічних наук
19.00.11 політична психологія/психологічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
20       військові науки
%
20.01    військово-теоретичні науки
20.01.01 воєнне мистецтво/військових наук
20.01.05 будівництво Збройних сил/військових наук/технічних наук/економічних наук
20.01.07 оборонна економіка/військових наук/економічних наук
20.01.08 тил Збройних сил/військових наук/хімічних наук/технічних наук
20.01.10 розвідка та іноземні армії/військових наук
20.01.12 радіоелектронна боротьба, способи та засоби/військових наук/технічних наук
%
20.02    військово-спеціальні науки
20.02.04 військова географія/військових наук/фізико-математичних наук/технічних наук/географічних наук
20.02.05 інженерне обладнання театрів воєнних дій/військових наук/технічних наук
20.02.11 засоби та методи військової навігації/військових наук
20.02.12 військова кібернетика, системи управління та зв'язок/військових наук
20.02.14 озброєння і військова техніка/військових наук
20.02.15 гідроаеродинаміка, динаміка руху та маневрування бойових засобів/військових наук
20.02.20 теорія стрільби/військових наук/фізико-математичних наук
20.02.22 військова історія/військових наук/історичних наук
20.02.23 засоби захисту від зброї масового ураження/військових наук/хімічних наук/біологічних наук/технічних наук/медичних наук/ветеринарних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
21       національна безпека
%
21.01    основи національної безпеки
21.01.01 основи національної безпеки держави/соціологічних наук/політичних наук
%
21.02    воєнна безпека
21.02.01 воєнна безпека держави/військових наук/технічних наук
21.02.02 охорона державного кордону/військових наук/технічних наук
21.02.03 цивільна оборона/хімічних наук/біологічних наук/технічних наук/медичних наук/військових наук/ветеринарних наук
%
21.03    гуманітарна і політична безпека
21.03.01 гуманітарна і політична безпека держави/філософських наук/політичних наук
21.03.02 регіональна безпека держави/політичних наук
21.03.03 геополітика/історичних наук/політичних наук
%
21.04    економічна безпека
21.04.01 економічна безпека держави/економічних наук/політичних наук
21.04.02 економічна безпека суб'єктів господарської діяльності/економічних наук
%
21.05    інформаційна безпека
21.05.01 інформаційна безпека держави/технічних наук
%
21.06    техногенна безпека
21.06.01 екологічна безпека/технічних наук/хімічних наук/геологічних наук/біологічних наук
21.06.02 пожежна безпека/технічних наук
%
21.07    державна безпека України
21.07.01 забезпечення державної безпеки України/технічних наук/юридичних наук
21.07.02 розвідувальна діяльність органів державної безпеки/фізико-математичних наук/технічних наук/юридичних наук/психологічних наук/військових наук/соціологічних наук/політичних наук
21.07.03 кадри органів та військ державної безпеки/педагогічних наук/юридичних наук/психологічних наук
21.07.04 оперативно-розшукова діяльність/технічних наук/юридичних наук
21.07.05 службово-бойова діяльність сил охорони правопорядку/технічних наук/військових наук/юридичних наук/державного управління
%
21.08    міжнародна безпека
21.08.01 іноземні держави та їхні потенціали/технічних наук/економічних наук/географічних наук/військових наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
22       соціологічні науки
22.00.01 теорія та історія соціології/соціологічних наук
22.00.02 методологія та методи соціологічних досліджень/соціологічних наук
22.00.03 соціальні структури та соціальні відносини/соціологічних наук
22.00.04 спеціальні та галузеві соціології/соціологічних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
23       політичні науки
23.00.01 теорія та історія політичної науки/політичних наук/історичних наук
23.00.02 політичні інститути та процеси/політичних наук/соціологічних наук
23.00.03 політична культура та ідеологія/політичних наук
23.00.04 політичні проблеми міжнародних систем та глобального розвитку/політичних наук
23.00.05 етнополітологія та етнодержавознавство/політичних наук
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
24       фізичне виховання та спорт
24.00.01 олімпійський і професійний спорт/фізичного виховання і спорту
24.00.02 фізична культура, фізичне виховання різних груп населення/фізичного виховання і спорту
24.00.03 фізична реабілітація/фізичного виховання і спорту
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
25       державне управління
25.00.01 теорія та історія державного управління/державного управління
25.00.02 механізми державного управління/державного управління
25.00.03 державна служба/державного управління
25.00.04 місцеве самоврядування/державного управління
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26       культурологія
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
27       соціальні комунікації
%SPECIALITY
%</speciality>
%<*xampl-thesis>
%    \end{macrocode}
%\fi
% \def\generalname{Приклади}
% \changes{v0.08}{2009/04/01}{Додано приклад підключення додатків до головного файла дисертації}
%\iffalse
%    \begin{macrocode}
%<<XAMPL-THESIS
%% xampl-thesis.tex  Приклад головного файла дисертації
\documentclass{vakthesis}
% Існують кілька опцій, які необхідно вказувати як факультативний
% аргумент команди \documentclass. Наприклад, для докторської
% дисертації необхідно написати
% \documentclass[d]{vakthesis}

% Налагодження кодування шрифта, кодування вхідного файла
% та вибір необхідних мов
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage[english,russian,ukrainian]{babel}

% Підключення необхідних пакетів. Наприклад,
% Пакети AMS для підтримки математики, теорем, спеціальних шрифтів
\usepackage[intlimits]{amsmath}
\allowdisplaybreaks
\usepackage{amsthm}
\usepackage{amssymb}
% Налагодження нумерованих списків
%\usepackage{enumerate}
% Гіпертекстові документи
%\usepackage{hyperref}
% або лише спеціальне форматування URL
%\usepackage{url}
% У списку літератури зворотні вказівки на посилання
%\usepackage{backref}
% Сортування посилань
%\usepackage[noadjust]{cite}
% Останні два пакети несумісні між собою. Крім того, конфліктують з цим класом!
% Таблиці зі стовпчиками, що розтягуються
\usepackage{tabularx}

% Налагодження параметрів сторінки (зокрема берегів).
% Наприклад, за допомогою пакета geometry
\usepackage{geometry}
\geometry{hmargin={30mm,15mm},lines=29,vcentering}

% Означення теорем (теоремоподібних структур)
% Класичний варіант: для кожної теореми свій лічильник,
% тобто теорема 1.1, лема 1.1, теорема 1.2
\theoremstyle{plain}
\newtheorem{theorem}{Теорема}[chapter]
\newtheorem{lemma}{Лема}[chapter]
\newtheorem{corollary}{Наслідок}[chapter]
\theoremstyle{definition}
\newtheorem{definition}{Означення}[chapter]
\newtheorem{example}{Приклад}[chapter]
\theoremstyle{remark}
\newtheorem{remark}{Зауваження}[chapter]
% Цікавий варіант: всі теореми нумеруються одним лічильником,
% тобто теорема 1.1, лема 1.2, теорема 1.3
%\theoremstyle{plain}
%\newtheorem{theorem}{Теорема}[chapter]
%\newtheorem{lemma}[theorem]{Лема}
%\newtheorem{corollary}[theorem]{Наслідок}
%\theoremstyle{definition}
%\newtheorem{definition}[theorem]{Означення}
%\newtheorem{example}[theorem]{Приклад}
%\theoremstyle{remark}
%\newtheorem{remark}[theorem]{Зауваження}

% Локальні означення
\newcommand{\N}{\mathbb{N}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\set}[1]{\left\{#1\right\}}
\newcommand{\abs}[1]{\left\lvert#1\right\rvert}
\newcommand{\norm}[2][]{\left\lVert#2\right\rVert_{#1}}
% Це потрібно для скороченого запису ряду Остроградського
\newcommand{\Osign}[1]{\mathrm{O}^{#1}}

% Якщо потрібно працювати лише з деякими розділами
%\includeonly{xampl-ch1,xampl-bib}

% Інформація про використані пакети тощо.
% Може знадобитися для відлагодження класу документа
%\listfiles

\begin{document}

% Назва дисертації
\title{Метрична та ймовірнісна теорія чисел,
       представлених рядами Остроградського 1-го~виду}
% Прізвище, ім'я, по батькові здобувача
\author{Барановський Олександр Миколайович}
% Прізвище, ім'я, по батькові наукового керівника/консультанта
\supervisor{Працьовитий Микола Вікторович}
% Науковий ступінь, вчене звання наукового керівника/консультанта
           {доктор фізико-математичних наук, професор}
% Спеціальність
\speciality{01.01.01}
% Варіант із вказуванням факультативних аргументів
%\speciality[математичний аналіз]{01.01.01}[фізико-математичних наук]
% Індекс за УДК
\udc{511.72}
% Установа, де виконана робота, і місто
\institution{Національний педагогічний університет імені~М.~П.~Драгоманова}{Київ}
% Рік, коли написана дисертація
\date{2006}

% Тут буде титульна сторінка
\maketitle

% Зміст
\tableofcontents

% Розділи дисертації в окремих файлах
\include{xampl-intro}%       Вступ
\include{xampl-ch1}%         Розділ 1
%\include{xampl-ch2}%         Розділ 2
%\include{xampl-ch3}%         Розділ 3
%\include{xampl-ch4}%         Розділ 4 і т. д. ще скільки потрібно розділів
\include{xampl-concl}%       Висновки
\include{xampl-bib}%         Список використаних джерел (+список публікацій автора)
%\appendix
%\include{xampl-app1}%        Додаток 1
%\include{xampl-app2}%        Додаток 2 і т. д. ще скільки потрібно додатків

\end{document}
%XAMPL-THESIS
%</xampl-thesis>
%<*xampl-intro>
%<<XAMPL-INTRO
%% xampl-intro.tex  Приклад вступу до дисертації
% Приклад ненумерованого розділу
\chapter*{Вступ}


\paragraph{Актуальність теми}

Це не є справжня дисертація. Це лише приклад, який повинен
допомогти користувачу підготувати свій файл. Але я зробив його із
своєї дисертації. Тому формули, теореми, доведення, імена, книги і
статті у списку літератури інколи можуть бути справжніми (хоча
можуть здаватися безглуздими, бо вирвані з контексту).


\paragraph{Зв'язок роботи з науковими програмами, планами, темами}

Робота виконана у рамках досліджень математичних об'єктів зі
складною локальною будовою, що проводяться на кафедрі вищої
математики Національного педагогічного університету імені
М.",П.",Драгоманова.


\paragraph{Мета і завдання дослідження}

Метою роботи є розробка основ метричної теорії дійсних чисел,
представлених рядами Остроградського $1$-го виду, та застосування
отриманих результатів до дослідження математичних об'єктів зі
складною локальною будовою (фрактальних множин, сингулярних та
недиференційовних функцій, сингулярно неперервних мір).

\subparagraph{Методи дослідження}

У роботі використовувалися методи математичного аналізу, теорії
функцій дійсної змінної, теорії міри, метричної теорії чисел,
теорії ймовірностей, фрактального аналізу тощо.


\paragraph{Наукова новизна одержаних результатів}

Основними науковими результатами, що виносяться на захист, є такі:
% Приклад ненумерованого списку
\begin{itemize}
\item Доведено, що множина неповних сум ряду Остроградського
$1$-го виду є ніде не щільною досконалою множиною нульової міри
Лебега та нульової розмірності Хаусдорфа--Безиковича.

\item Знайдено умови нуль-мірності (додатності міри) певних класів
замкнених ніде не щільних множин чисел, заданих умовами на
елементи їх розвинення в ряд Остроградського $1$-го виду.

\item \ldots
\end{itemize}


\paragraph{Практичне значення одержаних результатів}

Робота має теоретичний характер. Отримані результати є безперечним
внеском у теорію міри, метричну теорію чисел, теорію функцій
дійсної змінної та теорію сингулярних розподілів ймовірностей.
Запропоновані в дисертації методи можуть бути корисними при
дослідженні математичних об'єктів зі складною локальною будовою,
заданих за допомогою інших представлень чисел з нескінченним
алфавітом, зокрема рядів Остроградського $2$-го виду.


\paragraph{Особистий внесок здобувача}

Основні результати, що виносяться на захист, отримані автором
самостійно. Зі статей, опублікованих у співавторстві, до
дисертації включені лише ті результати, що належать автору.


\paragraph{Апробація результатів дисертації}

Основні результати дослідження доповідалися на наукових
конференціях різного рівня та наукових семінарах. Це такі
конференції:
\begin{itemize}
\item Український математичний конгрес, Київ, 21--23 серпня
2001~р.;

\item \ldots
\end{itemize}
Це такі семінари:
\begin{itemize}
\item семінар відділу теорії функцій Інституту математики НАН
України (керівник: чл.-кор. НАН України О.",І.",Степанець);

\item \ldots
\end{itemize}


\paragraph{Публікації}

Основні результати роботи викладено у 6~статтях
% Тут не наводяться всі статті. Це лише приклад
\cite{Bar98fasp1,Bar98fasp2}, опублікованих у виданнях, що внесені
до переліку наукових фахових видань України, та додатково
відображено в матеріалах конференцій~\cite{PrB01umc}.


\paragraph{Зміст роботи}

Тут викладають основні результати дисертації. Це, напевно, зручно
для потенційного читача, для опонентів. Наявність чи відсутність
цього пункту залежить від традицій школи. ВАК не рекомендує і не
забороняє такий пункт у вступі дисертації.

Далі йде безглуздий текст. Не читайте його. Тут немає нічого
розумного (чи хоча б цікавого), оскільки не передбачалося, що
хтось це читатиме. Просто необхідно трохи тексту, щоб сторінку
чимось заповнити. Вважайте, що це щось на кшталт \emph{Lorem
ipsum}. Крім того, за допомогою цієї сторінки з безглуздим текстом
можна порахувати кількість рядків на сторінці та символів у рядку.

Здається, у мене закінчуються запаси безглуздого тексту. Хто б міг
подумати, що так складно писати текст лише для заповнення
сторінки! Він, крім того, ще й неефективний, оскільки не всі букви
можна тут побачити. Але деякі гарні букви і цифри можна
роздивитися: а, б, в,~\ldots, 1, 2, 3,~\ldots, а ще такі: \emph{а,
б, в,~\ldots}.

Досить! Далі йде осмислений (я сподіваюся) текст. Він наведений
тут зовсім не для того, щоб порушити  права Юрія Андруховича чи
видавництва <<Фоліо>>. Просто у мене під руками був електронний
варіант <<Таємниці>>. Чому Рябчук був абсолютним ґуру для них
усіх?

<<По-перше, він у всьому був жахливо переконливий, у всьому "---
як у своїх статтях, так і в розмовах. З ним було безнадійно
полемізувати, його слід було тільки слухати. Йому було на той час
29 років, тобто він був ще й фізично старший від решти товариства,
а це в тому віці суттєво, ця різниця між 29 і, скажімо, 22. Це не
те що 45 і 38 "--- там уже фактично жодної різниці немає. А між 90
і 83 "--- й поготів. Так от, він був старший і досвідченіший, з
ним можна було про все на світі радитися, бо він на той час уже
змінив з десяток різних занять, був тричі одружений і розлучений,
жив самотнім даосом у запущеній старій віллі на Майорівці, з таким
же запущеним старим садом і не менш запущеними старими сусідами.
Він був цілком прозорий від аскетизму (інший тут сказав би, що він
\emph{аж світився}), щодня стояв на голові і правильно, згідно з
Ученням, дихав, а харчувався виключно пісним рисом без солі. На
той час його статті про літературу вже почали публікувати і він
потроху ставав авторитетом не тільки в андеґраунді. Ага, м'ятний
чай "--- він пив багато м'ятного чаю. Його двокімнатне помешкання
у тій віллі являло собою досить інтенсивну суміш з усяких
речей-уламків, але передусім воно було захаращене книгами,
газетами і рукописами. Книги починалися від порогу і ніде не
закінчувалися. Він тримав їх навіть у холодильнику. Якби не книги,
то він і не знав би, на біса йому той холодильник здався. Кажуть,
наче там-таки, у холодильнику, він тримав пришпиленим до задньої
стінки вирізаний з газети портрет Брежнєва. Це називалося
\emph{малим Сибіром}. Ще пару років тому його помешкання стало
такою собі міні-комуною, притулком для тодішніх нефорів: Морозов,
Лишега, Чемодан, Кактус. Останнього я ніколи в житті не бачив, до
сьогодні. Але знаю, що такий був, уявляєш? Здається, саме він
намалював на стіні того сквоту нев'їбенно притягальну фреску з
усіма згаданими особами "--- вони сидять, розпатлані й неголені,
як апостоли, а на столі в них червоне вино і рибина. Не пам'ятаю,
чи мали німби, але припускаю, що цілком могли мати. Це житло стало
такою собі рукавичкою. Кожен із них зносив до Рябчукової хати
всякий непотріб "--- в залежності від того, чим на ту хвилину
перебивався і що звідки вдавалося потягти. Пам'ятаю табличку
ЕКСПОНАТ НА РЕСТАВРАЦІЇ. Ще пам'ятаю ПАЛАТА ДЛЯ НЕДОНОШЕНИХ "--- з
усього випливало, що свого часу котрийсь із гостей цього притулку
підзаробляв на життя пологами. Тепер тобі зрозуміло, чому Микола
Рябчук був абсолютним ґуру?>>


\paragraph{Подяка}

Якщо хочете комусь подякувати, пишіть тут.
%XAMPL-INTRO
%</xampl-intro>
%<*xampl-ch1>
%    \end{macrocode}
%\fi
% \changes{v0.08}{2009/04/01}{Додано приклад таблиці до файла розділу дисертації}
%\iffalse
%    \begin{macrocode}
%<<XAMPL-CH1
%% xampl-ch1.tex  Приклад розділу дисертації
% Приклад назви розділу і мітки, на яку можна посилатися в тексті
\chapter{Подання дійсних чисел рядами~Остроградського $1$-го виду}
\label{ch:o1series}

Це не є справжній розділ дисертації. Це лише приклад, який повинен
допомогти користувачу підготувати свій файл. Але я зробив його з
розділу~1 своєї дисертації.

У цьому розділі вивчається розвинення дійсного числа у
знакозмінний ряд спеціального вигляду, який називається рядом
Остроградського $1$-го виду.

Досліджуються тополого"=метричні та фрактальні властивості множини
неповних сум заданого ряду Остроградського $1$-го виду, а також
властивості розподілів ймовірностей на множині неповних сум.


% Приклад назви підрозділу
\section{Означення ряду Остроградського $1$-го виду}

% Приклад означення
\begin{definition}
% Приклад виноски (\footnote)
\emph{Рядом Остроградського $1$-го виду}\footnote{Далі часто
будемо називати просто \emph{рядом Остроградського}, оскільки ми
не досліджуємо ряди Остроградського $2$-го виду.} називається
скінченний або нескінченний вираз вигляду
% Приклад формули з номером
\begin{equation}\label{eq:o1series}
\frac1{q_1}-\frac1{q_1q_2}+\dots +\frac{(-1)^{n-1}}{q_1q_2\dots
q_n}+\dotsb,
\end{equation}
де $q_n$ "--- натуральні числа і $q_{n + 1}>q_n$ для будь-якого
$n\in\N$. Числа $q_n$ називаються \emph{елементами ряду
Остроградського $1$-го виду}.
\end{definition}

Число елементів може бути як скінченним, так і нескінченним.
У~першому випадку будемо записувати ряд Остроградського у вигляді
% Приклад формули без номера
\[
\frac1{q_1}-\frac1{q_1q_2}+\dots +\frac{(-1)^{n-1}}{q_1q_2\dots
q_n}
\]
або скорочено
\begin{equation*}
\Osign1(q_1,q_2,\dots,q_n)
\end{equation*}
і називати скінченним рядом Остроградського або
$n$\nobreakdash-\hspace{0pt}елементним рядом Остроградського; а в
другому випадку будемо записувати ряд Остроградського у вигляді
% Приклад посилання на формулу
\eqref{eq:o1series} або скорочено
\begin{equation*}
\Osign1(q_1,q_2,\dots,q_n,\dots)
\end{equation*}
і називати нескінченним рядом Остроградського.


\section{Означення та властивості підхідних чисел}

\begin{definition}\label{def:convergent}
\emph{Підхідним числом порядку $k$} ряду Остроградського $1$-го
виду називається раціональне число
\[
\frac{A_k}{B_k} = \frac{1}{q_1}-\frac{1}{q_1q_2}+\dots
+\frac{(-1)^{k-1}}{q_1q_2\dots q_k} = \Osign1(q_1,q_2,\dots,q_k).
\]
\end{definition}

Зрозуміло, що $n$-елементний ряд Остроградського має $n$ підхідних
чисел, причому підхідне число $n$-го порядку $\frac{A_n}{B_n}$
збігається зі значенням цього ряду Остроградського.

% Приклад теореми
\begin{theorem}\label{th:convergents}
Для будь-якого натурального $k$ правильні формули
\begin{equation}\label{eq:convergents}
\left\{
\begin{aligned}
&A_k=A_{k-1}q_k+(-1)^{k-1},\\
&B_k=B_{k-1}q_k=q_1q_2\dots q_k
\end{aligned}
\right.
\end{equation}
\textup(якщо покласти, що $A_0=0$, $B_0=1$\textup).
\end{theorem}

% Приклад доведення
\begin{proof}
Проведемо доведення методом математичної індукції по~$k$. Для
$k=1$ формули правильні. Справді,
\[
\frac{A_1}{B_1}=\frac{1}{q_1}=\frac{A_0q_1+(-1)^0}{B_0q_1}.
\]

Припустимо, що формули \eqref{eq:convergents} правильні для
деякого $k=m$, тобто
\begin{align*}
\left\{
\begin{aligned}
&A_m=A_{m-1}q_m+(-1)^{m-1},\\
&B_m=B_{m-1}q_m=q_1q_2\ldots q_m,
\end{aligned}
\right.
\end{align*}
і доведемо ці формули для $k=m+1$. Маємо
% Приклад формули, що займає більше одного рядка.
% Оточення align, рядки вирівняні по знаку =
\begin{align*}
\frac{A_{m+1}}{B_{m+1}}&=\frac{1}{q_1}-\frac{1}{q_1 q_2}+\dots
+\frac{(-1)^{m-1}}{q_1q_2\dots q_m}+\frac{(-1)^m}{q_1q_2\dots
q_mq_{m + 1}}=\\ &=\frac{A_m}{B_m}+\frac{(-1)^m}{B_mq_{m + 1}} =
\frac{A_mq_{m+1}+(-1)^m}{B_mq_{m + 1}}.
\end{align*}

Отже, за принципом математичної індукції формули
\eqref{eq:convergents} правильні для будь"=якого натурального $k$.
\end{proof}

% Приклад леми
\begin{lemma}
Для будь-якого натурального $k$ правильна рівність
\begin{equation}\label{eq:convergents1}
\frac{A_{k-1}}{B_{k-1}}-\frac{A_k}{B_k}=\frac{(-1)^k}{B_k}.
\end{equation}
\end{lemma}

\begin{lemma}
Для будь-якого натурального $k\geq2$ правильна рівність
\begin{equation}\label{eq:convergents2}
\frac{A_{k-2}}{B_{k-2}}-\frac{A_k}{B_k}=\frac{(-1)^{k-1}(q_k-1)}{B_k}.
\end{equation}
\end{lemma}


\section{Розклад числа у знакозмінний ряд за $1$-м алгоритмом Остроградського}

Почнемо з геометричної ілюстрації алгоритму. Нехай маємо відрізки
$A$ та $B$, $A<B$. Щоб застосувати $1$-й алгоритм Остроградського
до числа $\frac{A}{B}$, будемо відкладати відрізок $A$ на відрізку
$B$, поки не отримаємо залишок $A_1<A$ (див.
% Приклад посилання на малюнок
рис.~\ref{fig:o1alg}). Нехай відрізок $A$ вміщується $q_1$ разів у
відрізку $B$, тоді
\[
B=q_1A+A_1.
\]
Далі відкладемо відрізок $A_1$ не на меншому відрізку $A$ (як у
алгоритмі Евкліда), а на тому ж відрізку $B$ до отримання залишку
$A_2<A_1$. Нехай відрізок $A_1$ вміщується $q_2$ разів у відрізку
$B$, тоді
\[
B=q_2A_1+A_2.
\]
Відкладаючи відрізок $A_2$ знову на відрізку $B$ і~т.~д. до
нескінченності або до отримання нульового залишку, будемо мати
\begin{align*}
&B=q_3A_2+A_3,\\
&B=q_4A_3+A_4
\end{align*}
і~т.~д. З отриманих рівностей випливає, що має місце розклад
\[
\frac AB = \frac{1}{q_1} - \frac{1}{q_1q_2} + \frac{1}{q_1q_2q_3}
- \frac{1}{q_1q_2q_3q_4} + \dotsb,
\]
і тут, як легко бачити,
\[
q_1<q_2<q_3<q_4<\dotsb.
\]

% Приклад малюнка
\begin{figure}[htbp]
\setlength{\unitlength}{1mm}
\begin{center}
\begin{picture}(105,35)
\put(6,28){$A$}\put(51,28){$A_1$} \put(0,25){\line(1,0){58}}
\multiput(0,24)(16,0){4}{\line(0,1){2}}\put(58,24){\line(0,1){2}}
\put(28,19){$B$} \put(75,25){$B=3A+A_1$}
\put(3,9){$A_1$}\put(52,9){$A_2$} \put(0,6){\line(1,0){58}}
\multiput(0,5)(10,0){6}{\line(0,1){2}}\put(58,5){\line(0,1){2}}
\put(28,0){$B$} \put(75,6){$B=5A_1+A_2$}
\end{picture}
\caption{Геометрична ілюстрація $1$-го алгоритму Остроградського:
тут відрізок $A$ вміщується 3~рази у відрізку $B$, відрізок $A_1$
вміщується 5~разів у відрізку $B$ і~т.~д.}
\label{fig:o1alg}
\end{center}
\end{figure}

Таким чином, \emph{$1$-й алгоритм Остроградського} розкладу
дійсного числа $x\in(0,1)$ у знакозмінний ряд полягає в
наступному.

\begin{description}
\item[Крок~1.] Покласти $\alpha_0=x$, $i=1$.

\item[Крок~2.] Знайти такі числа $q_i$ та $\alpha_i$, що
\[
1=q_i\alpha_{i-1}+\alpha_i \quad \text{і} \quad
0\leq\alpha_i<\alpha_{i-1}.
\]

\item[Крок~3.] Якщо $\alpha_i=0$, то припинити обчислення. Інакше
"--- збільшити $i$ на $1$ та перейти до кроку~2.
\end{description}

\begin{theorem}\label{thm:ostrogradsky}
Кожне дійсне число $x\in(0,1)$ можна подати у вигляді ряду
Остроградського $1$-го виду~\eqref{eq:o1series}. Причому, якщо
число $x$ ірраціональне, то це можна зробити єдиним чином і
вираз~\eqref{eq:o1series} має при цьому нескінченне число
доданків; якщо ж число $x$ раціональне, то його можна подати у
вигляді~\eqref{eq:o1series} зі скінченним числом доданків двома
різними способами:
\[
x=\Osign1(q_1,q_2,\dots,q_{n-1},q_n)=\Osign1(q_1,q_2,\dots,q_{n-1},q_n-1,q_n).
\]
\end{theorem}

% Приклад посилання на таблицю
У табл.~\ref{tab:ellipse.hyperbola.parabola} наведені деякі
формули для еліпса, гіперболи і параболи.

% Приклад таблиці
\begin{table}[htbp]
\caption{Еліпс, гіпербола і парабола. Деякі формули}
\label{tab:ellipse.hyperbola.parabola}
\begin{tabularx}{\textwidth}{|X|c|c|c|}
\hline
                   & Еліпс                                    & Гіпербола                                & Парабола          \\
\hline
Канонічне рівняння & $\frac{x^2}{a^2}+\frac{y^2}{b^2}=1$      & $\frac{x^2}{a^2}-\frac{y^2}{b^2}=1$      & $y^2=2px$         \\
Ексцентриситет     & $\varepsilon=\sqrt{1-\frac{b^2}{a^2}}<1$ & $\varepsilon=\sqrt{1+\frac{b^2}{a^2}}>1$ & $\varepsilon=1$   \\
Фокуси             & $(a\varepsilon,0)$, $(-a\varepsilon,0)$  & $(a\varepsilon,0)$, $(-a\varepsilon,0)$  & $(\frac{p}{2},0)$ \\
\hline
\multicolumn{4}{|l|}{Корн~Г., Корн~Т. Справочник по математике. М., 1974. С.~72.} \\
\hline
\end{tabularx}
\end{table}


\section{Множина неповних сум ряду Остроградського та розподіли ймовірностей на ній}

Візьмемо довільну \emph{фіксовану} послідовність $\{q_k\}$
натуральних чисел з умовою $q_{k+1}>q_k$ для всіх $k\in\N$ і
розглянемо їй відповідний ряд Остроградського $1$-го
виду~\eqref{eq:o1series} з сумою $r$. Число $r$ можна записати у
вигляді
\begin{equation}
r=d-b, \quad \text{де} \quad d=\sum_{i=1}^\infty
\frac1{q_1q_2\dots q_{2i-1}}, \quad b=\sum_{i=1}^\infty
\frac1{q_1q_2\dots q_{2i}}.
\end{equation}

% Приклад назви пункту
\subsection{Тополого-метричні та фрактальні властивості множини
неповних сум ряду Остроградського}

\emph{Циліндром} рангу $m$ з основою $c_1c_2\dots c_m$ називається
множина $\Delta'_{c_1c_2\dots c_m}$ всіх неповних сум, які мають
зображення $\Delta_{c_1c_2\dots c_ma_{m+1}\dots a_{m+k}\dots}$, де
$a_{m+j}\in\set{0,1}$ для будь-якого $j\in\N$. Очевидно, що
\[
\Delta'_{c_1c_2\dots c_ma}\subset\Delta'_{c_1c_2\dots c_m}, \quad
a\in\set{0,1}.
\]

% Приклад теоремоподібної структури з додатковою інформацією в заголовку
\begin{definition}[{\cite[с.~59]{Pra98}}]
\emph{Фракталом} називається кожна континуальна обмежена множина
простору $\R^1$, яка має тривіальну (рівну $0$ або $\infty$)
$H_\alpha$-міру Хаусдорфа, порядок $\alpha$ якої дорівнює
топологічній розмірності.
\end{definition}

Ті нуль-множини Лебега простору $\R^1$, розмірність
Хаусдорфа\nobreakdash--\hspace{0pt}Безиковича яких дорівнює $1$,
називаються \emph{суперфракталами}, а континуальні множини, що
мають нульову розмірність Хаусдорфа--Безиковича, називаються
\emph{аномально фрактальними}.


% Приклад висновків до розділу
\section*{Висновки до розділу~\ref{ch:o1series}}

У розділі~\ref{ch:o1series} введене поняття ряду Остроградського
$1$-го виду та його підхідних чисел, запропоновані деякі
властивості підхідних чисел. Доведено, що кожне дійсне число
$x\in(0,1)$ можна подати у вигляді ряду Остроградського $1$-го
виду: ірраціональне "--- єдиним чином у вигляді нескінченного ряду
Остроградського, раціональне "--- двома різними способами у
вигляді скінченного ряду Остроградського. Ці результати не є
новими, їх можна знайти, наприклад, у
роботах~\cite{Rem51,Sie11STNW,Pie29,VaZ75,Sha86} та~ін. Вони
наведені тут для повноти викладу.

Новими в цьому розділі є результати, що стосуються неповних сум
ряду Остроградського. Описані тополого-метричні та фрактальні
властивості множини неповних сум ряду Остроградського. Описано
множини чисел, ряди Остроградського яких є простими і густими
відповідно. Доведено, що випадкова неповна сума ряду
Остроградського має або дискретний розподіл або сингулярний
розподіл канторівського типу. Досліджено поведінку на
нескінченності модуля характеристичної функції випадкової неповної
суми ряду Остроградського.
%XAMPL-CH1
%</xampl-ch1>
%<*xampl-concl>
%<<XAMPL-CONCL
%% xampl-concl.tex  Приклад висновків до дисертації
\chapter*{Висновки}

Це не є справжні висновки до дисертації. Це лише приклад, який
повинен допомогти користувачу підготувати свій файл. Але я зробив
його з висновків до своєї дисертації.

Ряди Остроградського $1$-го виду дозволяють розширити можливості
формального задання і аналітичного дослідження фрактальних множин,
сингулярних мір, недиференційовних функцій та інших об'єктів зі
складною локальною будовою.

В дисертаційній роботі отримано такі результати.
\begin{itemize}
\item Розроблено основи метричної теорії чисел, представлених
рядами Остроградського $1$-го виду. Зокрема, досліджено геометрію
розвинень чисел в ряди Остроградського $1$-го виду, отримано
основне метричне відношення та його оцінки, які допомагають у
розв'язанні задач про міру Лебега множин чисел з умовами на
елементи зображення.

\item Знайдено умови нуль-мірності (додатності міри) певних класів
замкнених ніде не щільних множин чисел, заданих умовами на
елементи їх розвинення в ряд Остроградського $1$-го виду.

\item Вивчено тополого-метричні та фрактальні властивості множини
неповних сум заданого ряду Остроградського $1$-го виду та
розподілів ймовірностей на ній.

\item Досліджено структуру та властивості випадкової величини з
незалежними різницями послідовних елементів її представлення рядом
Остроградського $1$-го виду.

\item Вивчено диференціальні та фрактальні властивості однієї
функції, заданої перетворювачем елементів ряду Остроградського
$1$-го виду її аргумента в двійкові цифри значення функції.
\end{itemize}

Як виявилося, існують принципові відмінності метричної теорії
рядів Остроградського та метричної теорії ланцюгових дробів.
Зокрема, існує клас замкнених ніде не щільних множин додатної міри
Лебега, описаних в термінах елементів ряду Остроградського. В той
же час, аналогічні множини, задані у термінах елементів
ланцюгового дробу, мають нульову міру Лебега.

Проведені дослідження лежать в руслі сучасних математичних
досліджень об'єктів зі складною локальною поведінкою (будовою),
пов'язаних з ланцюговими дробами, рядами Люрота,
$\beta$-розкладами тощо, інтерес до яких у світі достатньо
високий. Отримані результати та запропоновані методи можуть бути
корисними при розв'язанні задач метричної теорії чисел,
представлених рядами Остроградського $2$-го виду або іншими
зображеннями з нескінченним алфавітом.
%XAMPL-CONCL
%</xampl-concl>
%<*xampl-bib>
%<<XAMPL-BIB
%% xampl-bib.tex  Приклад файла-оболонки для списку/списків літератури
% Рядки, що починаються з %GATHER, призначені для WinEdt
% Якщо є лише один список літератури, оточення bibset не потрібно використовувати
%GATHER{xampl-thesis.bib}
\begin{bibset}{Список використаних джерел}
\bibliographystyle{gost2008}
% Для сортування літератури за алфавітом використовуйте
%\bibliographystyle{gost2008s}
\bibliography{xampl-thesis}
\end{bibset}
%GATHER{xampl-mybib.bib}
\begin{bibset}[a]{Список публікацій автора}
\bibliographystyle{gost2008}
\bibliography{xampl-mybib}
\end{bibset}
%XAMPL-BIB
%</xampl-bib>
%<*xampl-aref>
%    \end{macrocode}
%\fi
% \changes{v0.08}{2009/04/01}{Змінено перемикання мови анотацій в авторефераті на \env{otherlanguage*}}
%\iffalse
% Дата повинна писатися мовою документа.
% Тому в авторефераті мову анотацій треба перемикати через оточення \env{otherlanguage*},
% а не командою \cmd{\selectlanguage}.
%    \begin{macrocode}
%<<XAMPL-AREF
%% xampl-aref.tex  Приклад файла автореферату дисертації
\documentclass{vakaref}
% Для друкування сторінки A5 на аркуші паперу формату A4 доцільно
% використовувати опцію oneside
%\documentclass[a4paper,oneside]{vakaref}

% Налагодження кодування шрифта, кодування вхідного файла
% та вибір необхідних мов
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage[english,russian,ukrainian]{babel}

% Підключення необхідних пакетів. Наприклад,
% Пакети AMS для підтримки математики, теорем, спеціальних шрифтів
\usepackage[intlimits]{amsmath}
\allowdisplaybreaks
\usepackage{amsthm}
\usepackage{amssymb}
% Налагодження нумерованих списків
%\usepackage{enumerate}
% Гіпертекстові документи
%\usepackage{hyperref}
% або лише спеціальне форматування URL
%\usepackage{url}
% У списку літератури зворотні вказівки на посилання
%\usepackage{backref}
% Сортування посилань
%\usepackage[noadjust]{cite}
% Останні два пакети несумісні між собою. Крім того, конфліктують з цим класом!
% Таблиці зі стовпчиками, що розтягуються
%\usepackage{tabularx}

% Налагодження параметрів сторінки (зокрема берегів).
% Наприклад, за допомогою пакета geometry
\usepackage{geometry}
\geometry{total={11cm,17cm},includehead}
% Щоб "розтягнути" сторінку на аркуш формату A4, відкрийте цей рядок
% (але викликати опцію класу a5paper!)
%\geometry{mag=1414}

% Означення теорем (теоремоподібних структур)
% Класичний варіант: для кожної теореми свій лічильник,
% тобто теорема 1.1, лема 1.1, теорема 1.2
\theoremstyle{plain}
\newtheorem{theorem}{Теорема}[chapter]
\newtheorem{lemma}{Лема}[chapter]
\newtheorem{corollary}{Наслідок}[chapter]
\theoremstyle{definition}
\newtheorem{definition}{Означення}[chapter]
\newtheorem{example}{Приклад}[chapter]
\theoremstyle{remark}
\newtheorem{remark}{Зауваження}[chapter]
% Цікавий варіант: всі теореми нумеруються одним лічильником,
% тобто теорема 1.1, лема 1.2, теорема 1.3
%\theoremstyle{plain}
%\newtheorem{theorem}{Теорема}[chapter]
%\newtheorem{lemma}[theorem]{Лема}
%\newtheorem{corollary}[theorem]{Наслідок}
%\theoremstyle{definition}
%\newtheorem{definition}[theorem]{Означення}
%\newtheorem{example}[theorem]{Приклад}
%\theoremstyle{remark}
%\newtheorem{remark}[theorem]{Зауваження}

% Локальні означення
\newcommand{\N}{\mathbb{N}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\set}[1]{\left\{#1\right\}}
\newcommand{\abs}[1]{\left\lvert#1\right\rvert}
\newcommand{\norm}[2][]{\left\lVert#2\right\rVert_{#1}}
% Це потрібно для скороченого запису об'єктів, пов'язаних з рядами Остроградського
\newcommand{\Osign}[1]{\mathrm{O}^{#1}}
\newcommand{\bOsign}[1]{\bar{\mathrm{O}}^{#1}}
\makeatletter
\newcommand{\Cset}[2][\bOsign1]{C[#1,
  \if\relax\expandafter\@gobble#2\relax #2\else\{#2\}\fi]}
\makeatother

% Інформація про використані пакети тощо.
% Може знадобитися для відлагодження класу документа
%\listfiles

\begin{document}

% Назва дисертації
\title{Метрична та ймовірнісна теорія чисел,
  представлених рядами Остроградського 1-го~виду}
% Прізвище, ім'я, по батькові здобувача
\author{Барановський Олександр Миколайович}
% Прізвище, ім'я, по батькові наукового керівника/консультанта
\supervisor{Працьовитий Микола Вікторович}
% Науковий ступінь, вчене звання наукового керівника/консультанта
  {доктор фізико-математичних наук, професор}
% Установа, де працює науковий керівник/консультант, і посада
  {Національний педагогічний університет імені {М.",П.",Драгоманова},
   завідувач кафедри вищої математики;
   Інститут математики НАН України,
   завідувач відділу фрактального аналізу}
% Спеціальність
\speciality{01.01.01}
% Варіант із вказуванням факультативних аргументів
%\speciality[математичний аналіз]{01.01.01}[фізико-математичних наук]
% Індекс за УДК
\udc{511.72}
% Установа, де виконана робота (з вказанням відомчої підпорядкованості)
\institution{Національний педагогічний університет імені {М.",П.",Драгоманова},
  Міністерство освіти і науки України}

% Прізвище, ім'я, по батькові першого опонента
\opponent{Кошманенко Володимир Дмитрович}
% Науковий ступінь, вчене звання першого опонента
  {доктор фізико-математичних наук, професор}
% Установа, де працює перший опонент, і посада
  {Інститут математики НАН України,
   провідний науковий співробітник відділу математичної фізики}
% Інформація про другого опонента
\opponent{Назаренко Микола Олексійович}
  {кандидат фізико-математичних наук, \linebreak[1] старший науковий співробітник}
  {Київський національний університет імені Тараса Шевченка,
   доцент кафедри математичного аналізу}
% Інформація про третього опонента (для докторських дисертацій)
% ...

% Провідна установа. Відкрийте ці рядки, якщо потрібно
%\linstitution{Національний технічний університет України \linebreak <<КПІ>>,
%  кафедра математичного аналізу та теорії ймовірностей,
%  Міністерство освіти і науки України}
%  {м.~Київ}

% Шифр ради
\council{Д~26.206.01}
% Альтернативна назва установи, де створена рада, для обкладинки
  [Інститут математики, Національна академія наук України]
% Назва установи, де створена рада
  {Інститут математики НАН України}
% Адреса установи, де створена рада
  {01601 м.~Київ, вул.~Терещенківська, 3}
% Учений секретар ради
\secretary{Романюк~А.",С.}

% Дата захисту і дата розсилання автореферату
% Відкрийте, коли готуєте варіант для ВАК уже після захисту
%\defencedate{2007/04/24}{15:00}
%\postdate{2007/03/23}

% Тут буде обкладинка
\maketitle


% Автореферат не має розділів, підрозділів і т. д., а лише
% структурні частини, що позначаються командою \part
\part{Загальна характеристика роботи}

\paragraph{Актуальність теми}

Це не є справжній автореферат дисертації. Це лише приклад, який
повинен допомогти користувачу підготувати свій файл. Але я зробив
його із свого автореферату. Тому формули, теореми, доведення,
імена, книги і статті у списку літератури інколи можуть бути
справжніми (хоча можуть здаватися безглуздими, бо вирвані з
контексту).

Оскільки ця частина автореферату майже повторює вступ до
дисертації, то немає сенсу тут наводити якийсь текст, лише назви
пунктів.

\paragraph{Зв'язок роботи з науковими програмами, планами, темами}

\paragraph{Мета і завдання дослідження}

\subparagraph{Методи дослідження}

\paragraph{Наукова новизна одержаних результатів}

\paragraph{Практичне значення одержаних результатів}

\paragraph{Особистий внесок здобувача}

\paragraph{Апробація результатів дисертації}

\paragraph{Публікації}

Щоб згенерувати список літератури за допомогою Bib\TeX, у тексті
необхідно мати посилання~\cite{Bar98fasp1,Bar98fasp2,PrB01umc}.

\paragraph{Структура дисертації}

Робота складається зі вступу, чотирьох розділів, висновків. Обсяг
дисертації 138~сторінок машинописного тексту, список використаних
джерел (121~найменування) та список публікацій автора
(23~найменування) займають 17~сторінок.


\part{Основний зміст роботи}

В \textbf{розділі~1} вводиться поняття ряду Остроградського $1$-го
виду, елементів та підхідних чисел ряду Остроградського $1$-го
виду\ldots

Далі наведена цитата з <<Порядку присудження наукових ступенів і
присвоєння вченого звання старшого наукового співробітника>>,
затвердженого постановою Кабінету Міністрів України від 07.03.2007
№~423. Лише для того, щоб чимось заповнити сторінку. За допомогою
цієї сторінки можна порахувати кількість рядків на сторінці та
символів у рядку.

<<11. Дисертація на здобуття наукового ступеня є кваліфікаційною
науковою працею, виконаною особисто здобувачем у вигляді
спеціально підготовленого рукопису або опублікованої монографії.
Підготовлена до захисту дисертація повинна містити висунуті
здобувачем науково обґрунтовані теоретичні або експериментальні
результати, наукові положення, а також характеризуватися єдністю
змісту і свідчити про особистий внесок здобувача в науку.

Дисертація, що має прикладне значення, додатково до основного
тексту повинна містити відомості та документи, що підтверджують
практичне використання отриманих здобувачем результатів "---
впровадження у виробництво, достатню дослідно-виробничу перевірку,
отримання нових кількісних і якісних показників, суттєві переваги
запропонованих технологій, зразків продукції, матеріалів тощо, а
дисертація, що має теоретичне значення, "--- рекомендації щодо
використання наукових висновків.

Теми дисертацій пов'язуються, як правило, з напрямами основних
науково-дослідних робіт вищих навчальних закладів або наукових
установ і затверджуються вченими (науково-технічними) радами для
кожного здобувача окремо з одночасним призначенням наукового
консультанта в разі підготовки докторської чи наукового керівника
в разі підготовки кандидатської дисертації.

Мови у дисертації використовуються згідно із законодавством.

12. Дисертація на здобуття наукового ступеня доктора наук є
кваліфікаційною науковою працею, обсяг основного тексту якої
становить 11--13, а для суспільних і гуманітарних наук "--- 15--17
авторських аркушів, оформлених відповідно до державного стандарту.

Докторська дисертація:

повинна містити наукові положення та науково обґрунтовані
результати у певній галузі науки, що розв'язують важливу наукову
або науково-прикладну проблему і щодо яких здобувач є суб'єктом
авторського права;

може бути подана до захисту за однією або двома спеціальностями
однієї галузі науки і повинна відповідати за кожною спеціальністю
вимогам, зазначеним в абзаці третьому цього пункту.

У разі коли дисертація виконана за двома спеціальностями, а
спеціалізована вчена рада, до якої подана дисертація, має право
проводити захист дисертацій лише за однією з них, то за
відсутності в Україні спеціалізованих вчених рад з правом
проведення захисту дисертацій за такими двома спеціальностями з
дозволу ВАК може проводитися разовий захист. Порядок формування
складу спеціалізованої вченої ради для проведення разового захисту
встановлює ВАК.

Наукові положення і результати, які виносилися на захист у
кандидатській дисертації здобувача наукового ступеня доктора наук,
не можуть повторно виноситися на захист у його докторській
дисертації. Ці положення і результати можуть бути наведені лише в
оглядовій частині докторської дисертації.

13. Дисертація на здобуття наукового ступеня кандидата наук є
кваліфікаційною науковою працею, обсяг основного тексту якої
становить 4,5--7, а для суспільних і гуманітарних наук "--- 6,5--9
авторських аркушів, оформлених відповідно до державного стандарту.

Кандидатська дисертація:

повинна містити нові науково обґрунтовані результати проведених
здобувачем досліджень, які розв'язують конкретне наукове завдання,
що має істотне значення для певної галузі науки;

подається до захисту лише за однією спеціальністю.

14. Основні наукові результати дисертації повинні відображати
особистий внесок здобувача в їх досягнення та обов'язково бути
опубліковані ним у формі наукових монографій, посібників (для
дисертацій з педагогічних наук) чи статей у наукових (зокрема
електронних) фахових виданнях України або інших держав. Перелік
наукових фахових видань України затверджує ВАК.

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

Повноту викладу матеріалів дисертації в опублікованих працях
здобувача визначає спеціалізована вчена рада.

Мінімальну кількість та обсяг публікацій, які розкривають основний
зміст дисертацій, визначає ВАК.

Апробація матеріалів дисертації на наукових конференціях,
конгресах, симпозіумах, семінарах, школах тощо обов'язкова.

15. Докторська і кандидатська дисертації супроводжуються окремими
авторефератами обсягом відповідно 1,3--1,9 і 0,7--0,9 авторського
аркуша, які подаються державною мовою. Вимоги до оформлення
автореферату встановлює ВАК.

Автореферат дисертації видається друкарським способом з
обов'язковим зазначенням вихідних відомостей видання у кількості,
визначеній спеціалізованою вченою радою, і надсилається членам
спеціалізованої вченої ради та заінтересованим організаціям не
пізніше ніж за місяць до захисту дисертації. Список адресатів
визначає спеціалізована вчена рада, яка прийняла до захисту
дисертацію. Перелік установ та організацій, яким обов'язково
надсилається автореферат, визначає ВАК.>>


\part{Висновки}

Ряди Остроградського $1$-го виду дозволяють розширити можливості
формального задання і аналітичного дослідження фрактальних множин,
сингулярних мір, недиференційовних функцій та інших об'єктів зі
складною локальною будовою\ldots

% Список опублікованих праць за темою дисертації буде тут. Команда
% \part "захована" всередині команди \bibliography
%GATHER{xampl-mybib.bib}
\bibliographystyle{gost2008}
\bibliography{xampl-mybib}


\part{Анотації}

\emph{Барановський~О.~М.} Метрична та ймовірнісна теорія чисел,
представлених рядами Остроградського 1-го виду. "--- Рукопис.

Дисертація на здобуття наукового ступеня кандидата
фізико"=математичних наук за спеціальністю 01.01.01 "---
математичний аналіз. "--- Інститут математики НАН України, Київ,
2007.

\smallskip

Дисертація присвячена дослідженню математичних об'єктів зі
\linebreak складною локальною будовою: фрактальних множин,
сингулярних мір, недиференційовних функцій, заданих у термінах
рядів Остроградського $1$-го виду. Досліджуються деякі класи
замкнених ніде не щільних множин, заданих умовами на елементи їх
розвинення в ряд Остроградського. Встановлено умови нуль-мірності
та додатності міри Лебега множин з цих класів. Проводиться
порівняння з відповідними твердженнями про міру Лебега множин
чисел, заданих умовами на елементи їх розвинення в ланцюговий
дріб. Вказано на принципові відмінності метричної теорії рядів
Остроградського та метричної теорії ланцюгових дробів. Також
вивчено тополого-метричні та фрактальні властивості множини
неповних сум та випадкової неповної суми ряду Остроградського 1-го
виду. Для випадкової величини з незалежними різницями елементів
ряду Остроградського знайдено критерій дискретності
(неперервності) розподілу та умови сингулярності канторівського
типу. Вивчено диференціальні та фрактальні властивості функції,
заданої перетворювачем елементів ряду Остроградського в двійкові
цифри.

\smallskip

\emph{Ключові слова}: ряд Остроградського 1-го виду, неповна сума
ряду, міра Лебега, сингулярна міра канторівського типу,
недиференційовна функція, розмірність Хаусдорфа--Безиковича,
фрактал, перетворення Фур'є--Стілтьєса.

\bigskip

\begin{otherlanguage*}{russian}

\emph{Барановский~А.~Н.} Метрическая и вероятностная теория чисел,
представленных рядами Остроградского 1-го вида. "--- Рукопись.

Диссертация на соискание ученой степени кандидата
физико"=математических наук по специальности 01.01.01~---
математический анализ. "--- Институт математики НАН Украины, Киев,
2007.

\smallskip

Диссертация посвящена исследованию математических объектов со
сложной локальной структурой: фрактальных множеств, сингулярных
мер, недифференцируемых функций, которые заданы в терминах рядов
Остроградского $1$-го вида.

Исследуется множество $\Cset{V_n}$, являющееся с точностью до
счетного множества множеством всех иррациональных чисел,
$\bOsign1$\nobreakdash-\hspace{0pt}символы (т.е. разности
элементов ряда Остроградского) которых удовлетворяют условию
\(g_n(x)\in V_n\subseteq\N\) для всех $n\in\N$. Найдены условия на
множества $V_n$, при которых $\Cset{V_n}$ является множеством
меры~$0$ или множеством положительной меры Лебега. Сделано
сравнение с соответствующими утверждениями о мере Лебега множеств
чисел, заданных условиями на элементы их разложения в цепную
дробь. Указаны принципиальные отличия между метрической теорией
рядов Остроградского 1-го вида и метрической теорией цепных
дробей. В~частности, доказано существование множеств типа
$\Cset{V_n}$ положительной меры таких, что соответствующие
множества, определенные в терминах элементов цепной дроби, имеют
нулевую меру.

Сумма $s=s(\{a_k\})$ ряда
\[
\sum_{k=1}^\infty \frac{(-1)^{k-1}a_k}{q_1q_2\dots q_k}, \quad
\text{где $a_k\in\set{0,1}$},
\]
называется неполной суммой заданного ряда Остроградского $1$-го
вида. Изучены тополого"=метрические и фрактальные свойства
множества неполных сумм ряда Остроградского 1-го вида. Также
изучена структура, тополого"=метрические и фрактальные свойства
случайной неполной суммы ряда Остроградского 1-го вида
\[
\psi=\sum_{k=1}^\infty \frac{(-1)^{k-1}\varepsilon_k}{q_1q_2\dots
q_k},
\]
где $\{\varepsilon_k\}$ "--- последовательность независимых
случайных величин, которые принимают значения $0$ и $1$ с
вероятностями $p_{0k}$ и $p_{1k}$ соответственно.

Для случайной величины
\[
\xi = \sum_{k=1}^\infty
\frac{(-1)^{k-1}}{\eta_1(\eta_1+\eta_2)\dots(\eta_1+\eta_2+\dots+\eta_k)},
\]
$\bOsign1$-символы $\eta_k$ которой являются независимыми
случайными величинами, принимающими значения $1$, $2$,~$\dots$,
$m$,~$\dots$ с вероятностями $p_{1k}$, $p_{2k}$,~$\dots$,
$p_{mk}$,~$\dots$ соответственно, найдено выражение функции
распределения и ее производной, описан спектр распределения.
Найдены критерий дискретности (непрерывности) распределения и
условия сингулярности канторовского типа.

Изучены дифференциальные и фрактальные свойства функции, заданной
следующим образом. Пусть иррациональное число $x$ задано своим
рядом Остроградского с элементами $q_n(x)$, тогда значение функции
\(y=\rho(x)\) определяется двоичной дробью, цифры которой
вычисляются по правилу
\[
\alpha_1=1-\delta_{q_1(x)}, \quad
\alpha_{n+1}=1-\alpha_n\delta_{q_{n+1}(x)},
\]
где $\delta_m$ "--- индикатор множества чётных чисел. В
рациональных точках функция определяется равенством
$\rho(x)=0{,}\alpha_1\alpha_2\dots \alpha_n111\dots$, где
$\alpha_i$ определяются по тому же правилу. Доказано, что эта
функция непрерывна в иррациональных точках, разрывна в
рациональных и нигде не дифференцируема. Множество значений
функции является самоподобным фрактальным множеством.

\smallskip

\emph{Ключевые слова}: ряд Остроградского 1-го вида, неполная
сумма ряда, мера Лебега, сингулярная мера канторовского типа,
недифференцируемая функция, рaзмeрнoсть Хаусдорфа--Безиковича,
фрактал, преобразование Фурье--Стилтьеса.

\end{otherlanguage*}

\bigskip

\begin{otherlanguage*}{english}

\emph{Baranovskyi~O.~M.} Metric and probabilistic theory of
numbers defined by the first Ostrogradsky series.~--- Manuscript.

Candidate's thesis on Physics and Mathematics, speciality
01.01.01~--- mathematical analysis.~--- Institute for Mathematics
of NAS of Ukraine, Kyiv, 2007.

\smallskip

The thesis is devoted to the investigation of mathematical objects
(fractal sets, singular measures, nondifferentiable functions)
with complicated local structure defined in terms of the first
Ostrogradsky series. We investigate some classes of closed nowhere
dense sets defined by conditions on elements of their expansion in
the Ostrogradsky series. We found conditions for these sets to be
of zero resp.\ positive Lebesgue measure. We compare these results
with the corresponding ones in terms of continued fractions. We
stress the fundamental difference between the metric theory of the
Ostrogradsky series and the metric theory of continued fractions.
We also study topological, metric and fractal properties of the
set of incomplete sums of the Ostrogradsky series and of the
random incomplete sum of the Ostrogradsky series. For random
variables with independent differences of elements of the
Ostrogradsky series we found the criterion for discreteness and
conditions for Cantor-type singularity. We study the differential
and fractal properties of the function defined by the transduser
of elements of the Ostrogradsky series to binary digits.

\smallskip

\emph{Key words}: the first Ostrogradsky series (Pierce
expansion), incomplete sum of series, the Lebesgue measure,
Cantor-type singular measure, nondifferentiable function,
Hausdorff--Besicovitch dimension, fractal, Fourier--Stieltjes
transform.

\end{otherlanguage*}

% Випускні дані друкарні
% Відкрити наступні два рядки, якщо потрібно на окремому аркуші
%\newpage
%\pagestyle{empty}
\parindent0pt

\hbox{}
\vfill

\hrulefill

% Це приклад з друкарні Інституту математики НАН України
% Тут користувач вписує "свої" дату, к-сть друкованих аркушів,
% (можливо тираж), номер замовлення і адресу друкарні
Підписано до друку 20.03.2007. Формат $60\times84/16$. Папір друк.
Офсет. друк. Фіз. друк. арк. 1,5. Умовн. друк. арк. 1,4.

Тираж 100 пр. Зам. 89.

\hrulefill

Інститут математики НАН України,

01601, м.~Київ-4, вул. Терещенківська, 3.

\end{document}
%XAMPL-AREF
%</xampl-aref>
%<*xampl-thesis.bib>
%<<XAMPL-THESIS.BIB
%% xampl-thesis.bib  Приклад списку використаних джерел

@ARTICLE{VaZ75,
 author       = "К. Г. Валеев and Е. Д. Злебов",
 title        = "О метрической теории алгоритма {М.",В.",Остроградского}",
 journal      = "Укр. мат. журн.",
 volume       = 27,
 number       = 1,
 year         = 1975,
 pages        = "64--69",
 language     = "russian"
}

@BOOK{Pra98,
 author       = "М. В. Працьовитий",
 title        = "Фрактальний підхід у дослідженнях сингулярних розподілів",
 publisher    = "Вид-во НПУ імені М.~П.~Драгоманова",
 address      = "Київ",
 year         = 1998,
 pagetotal    = 296,
 language     = "ukrainian"
}

@ARTICLE{Rem51,
 author       = "Е. Я. Ремез",
 title        = "О знакопеременных рядах, которые могут быть связаны
                 с двумя алгорифмами {М.",В.",Остроградского} для
                 приближения иррациональных чисел",
 journal      = "Успехи мат. наук",
 volume       = 6,
 number       = "5 (45)",
 year         = 1951,
 pages        = "33--42",
 language     = "russian"
}

@ARTICLE{Pie29,
 author       = "T. A. Pierce",
 title        = "On an algorithm and its use in approximating roots
                 of algebraic equations",
 journal      = "Amer. Math. Monthly",
 volume       = 36,
 year         = 1929,
 number       = 10,
 pages        = "523--525",
 language     = "english"
}

@ARTICLE{Sha86,
 author       = "J. O. Shallit",
 title        = "Metric theory of {Pierce} expansions",
 journal      = "Fibonacci Quart.",
 volume       = 24,
 number       = 1,
 year         = 1986,
 pages        = "22--40",
 language     = "english"
}

@ARTICLE{Sie11STNW,
 author       = "W. Sierpi\'{n}ski",
 title        = "O kilku algorytmach dla rozwijania
                liczb rzeczywistych na szeregi",
 journal      = "Sprawozdania z posiedze\'{n} Towarzystwa
                Naukowego Warszawskiego, Wydzia\l{} III",
 volume       = 4,
 year         = 1911,
 pages        = "56--77",
 note         = "Є франц. переклад {\selectlanguageifdefined{french}
\BibEmph{Sierpi\'{n}ski~W.} Sur quelques algorithmes pour d\'{e}velopper les
  nombres r\'{e}els en s\'{e}ries~// Oeuvres choisies. "---
\newblock Warszawa: PWN, 1974. "---
\newblock t.~I. "---
\newblock P.~236--254.}",
 language     = "polish"
}

INCOLLECTION{Sie74,
 author       = "W. Sierpi\'{n}ski",
 title        = "Sur quelques algorithmes pour d\'{e}velopper
                les nombres r\'{e}els en s\'{e}ries",
 booktitle    = "Oeuvres choisies",
 publisher    = "PWN",
 address      = "Warszawa",
 volume       = "I",
 year         = 1974,
 pages        = "236--254",
 language     = "french"
}
%XAMPL-THESIS.BIB
%</xampl-thesis.bib>
%<*xampl-mybib.bib>
%<<XAMPL-MYBIB.BIB
%% xampl-mybib.bib  Приклад списку публікацій автора

@INCOLLECTION{Bar98fasp1,
 author       = "О. М. Барановський",
 title        = "Ряди {Остроградського} як засіб аналітичного
                задання множин і випадкових величин",
 booktitle    = "Фрактальний аналіз та суміжні питання",
 publisher    = "Ін-т математики НАН України;
                Нац. пед. ун-т імені М.~П.~Драгоманова",
 address      = "Київ",
 year         = 1998,
 number       = 1,
 pages        = "91--102",
 language     = "ukrainian"
}

@INCOLLECTION{Bar98fasp2,
 author       = "О. М. Барановський",
 title        = "Задання ніде не диференційовних функцій за допомогою
                представлення чисел рядами {Остроградського}",
 booktitle    = "Фрактальний аналіз та суміжні питання",
 publisher    = "Ін-т математики НАН України;
                Нац. пед. ун-т імені М.~П.~Драгоманова",
 address      = "Київ",
 year         = 1998,
 number       = 2,
 pages        = "215--221",
 language     = "ukrainian"
}

@INPROCEEDINGS{PrB01umc,
 author       = "М. В. Працьовитий and О. М. Барановський",
 title        = "Ряди {Остроградського} та їх використання для
                дослідження математичних об'єктів зі складною
                локальною будовою",
 booktitle    = "Теорія ймовірностей і математична статистика:
                Український математичний конгрес, Київ, 21--23 серпня 2001~р.: Тези допов.",
 xbooktitle    = "Український математичний конгрес,
                21--23 серпня 2001~р., Київ.
                Теорія ймовірностей і математична статистика:
                Тези доповідей",
 address      = "Київ",
 year         = 2001,
 pages        = 26,
 language     = "ukrainian"
}
%XAMPL-MYBIB.BIB
%</xampl-mybib.bib>
%    \end{macrocode}
%\fi
%
% \Finale
% \PrintIndex
% \PrintChanges
%
\endinput
