← All templates

Igor Sikorsky Kyiv Polytechnic Institute bachelor's and master's thesis (kpithesis)

A Ukrainian-language template for bachelor's diploma works and master's dissertations at any department of Igor Sikorsky Kyiv Polytechnic Institute, following DSTU 3008:2015 and DSTU 8302:2015: title and task pages for both degrees, abstracts, contents, abbreviations, sample chapters, a DSTU-style biblatex reference list and appendices.

Create an account to use this
Category
Thesis
Document class
kpithesis (kpithesis.cls) — ships with TeX Live
Workflow
Thesis / dissertation — submissions and revision rounds
Author
xairaven (KPI-Thesis-Template, kpithesis)
Source
xairaven (KPI-Thesis-Template, kpithesis)
Licence
No licence is stated in the files. xairaven (KPI-Thesis-Template, kpithesis) distributes them for authors preparing a submission.

These are the publisher’s own files. This project starts from xairaven (KPI-Thesis-Template, kpithesis)’s package for this publication — their manuscript, their kpithesis.cls, their bibliography style — so what compiles here is what they would have given you.

xairaven (KPI-Thesis-Template, kpithesis) serves this exact file to Igor Sikorsky Kyiv Polytechnic Institute. Check xairaven (KPI-Thesis-Template, kpithesis)’s author pages for the current instructions.

Where this differs from the publisher’s download.

  • Note: A community template: kpithesis is written by xairaven; it is not issued or endorsed by Igor Sikorsky Kyiv Polytechnic Institute. Check it against the current thesis regulations of your university and department.

What you get

  • LICENSE · 7 KB
  • appendices/a-appendix.tex · 499 B
  • appendices/b-appendix.tex · 257 B
  • bibliography.bib · 2 KB
  • chapters/00-abbreviations.tex · 1 KB
  • chapters/00-abstract.tex · 4 KB
  • chapters/01-intro.tex · 1 KB
  • chapters/02-chapter-01.tex · 664 B
  • chapters/03-chapter-02.tex · 279 B
  • chapters/04-chapter-03.tex · 281 B
  • chapters/05-conclusions.tex · 501 B
  • config.tex · 5 KB
  • fonts/LiberationSerif-Bold.ttf · 361 KB
  • fonts/LiberationSerif-BoldItalic.ttf · 368 KB
  • fonts/LiberationSerif-Italic.ttf · 367 KB
  • fonts/LiberationSerif-Regular.ttf · 384 KB
  • fonts/OFL.txt · 4 KB
  • kpithesis.cls · 27 KB
  • main.tex — the file that is compiled · 2 KB
  • preamble.tex · 2 KB
  • titlepages/bachelor-task.tex · 3 KB
  • titlepages/bachelor-title.tex · 2 KB
  • titlepages/master-task.tex · 3 KB
  • titlepages/master-title.tex · 3 KB

These become your files. Editing them afterwards changes your project and nothing else — a project owns its files from the moment it is made.

Source

LICENSE — binary, 7 KB

appendices/a-appendix.tex · 499 B
% appendices/a-appendix.tex -- приклад додатка.
% \kpithesisAppendix{...} сам відкриває нову сторінку, друкує заголовок
% "ДОДАТОК А" (літеру визначає порядок підключення файлів у main.tex,
% не назва файлу!) і скидає лічильники рисунків/таблиць/формул.
\kpithesisAppendix{Лістинг програмного коду}

Текст додатка.
appendices/b-appendix.tex · 257 B
% appendices/b-appendix.tex -- ще один приклад додатка (стане "ДОДАТОК
% Б", бо підключається другим -- див. main.tex).
\kpithesisAppendix{Акт впровадження}

Текст додатка.
bibliography.bib · 2 KB
% bibliography.bib -- ваші джерела. Кожне джерело -- один запис нижче.
%
% Формат посилання в тексті: \cite{ключ} -- ключ це те, що стоїть
% одразу після дужки, наприклад "makarova2002" нижче.
%
% Три приклади різних типів джерел -- книга, стаття, електронний
% ресурс -- відповідають прикладам із ДСТУ 8302:2015. Замініть їх
% своїми джерелами (не забудьте прибрати ці приклади з чорнового
% варіанта роботи).

@book{makarova2002,
  author    = {Макарова, М. В.},
  title     = {Електронна комерція},
  subtitle  = {посібник},
  address   = {Київ},
  publisher = {Академія},
  year      = {2002},
  pagetotal = {272},
}

@article{rossokha2015,
  author  = {Россоха, В. В.},
  title   = {Соціально-економічні аспекти використання господарського
             комплексу Державної кримінально-виконавчої служби},
  journal = {Формування ринкових відносин в Україні},
  year    = {2015},
  number  = {8},
  pages   = {69--75},
}

@online{ifla2012,
  author    = {{ІФЛА}},
  title     = {Кодекс етики ІФЛА для бібліотекарів та інших
                інформаційних працівників},
  year      = {2012},
  url       = {http://ula.org.ua/ua252-dokumenti/dokumenti-ifla-ta-in},
  urldate   = {2016-10-20},
}
chapters/00-abbreviations.tex · 1 KB
% chapters/00-abbreviations.tex -- Перелік умовних позначень,
% скорочень і термінів (ДСТУ 3008:2015, п. 4.5 та 7.14).
%
% Потрібен, лише якщо у роботі є нестандартні скорочення/позначення,
% що повторюються 3+ рази (інакше розшифровуйте їх просто в тексті при
% першій згадці). Якщо розділ не потрібен -- не підключайте цей файл
% у main.tex і приберіть \kpithesisChapterConclusion... ні, просто не
% підключайте \input тут.
%
% За абеткою, ліворуч -- скорочення, праворуч -- розшифрування.
\kpithesisUnnumberedChapter{Перелік умовних позначень, скорочень і термінів}

\begin{tabularx}{\textwidth}{@{}l X@{}}
  ПЗ & програмне забезпечення \\
  API & Application Programming Interface, програмний інтерфейс застосунку \\
\end{tabularx}
chapters/00-abstract.tex · 4 KB
% chapters/00-abstract.tex -- Реферат (українською та іноземною мовою).
%
% Вимоги: ДСТУ 3008:2015, п. 4.3; для магістерської дисертації --
% додатково розділ "Реферат" Рекомендацій КПІ (до 500 слів, певна
% послідовність пунктів). Замініть приклад нижче своїм текстом,
% зберігаючи структуру.
\kpithesisUnnumberedChapter{Реферат}

Пояснювальна записка до \workType: \pageref{LastPage}~с.,
\arabic{figure}~рис., \arabic{table}~табл., 2~додатки, 00~джерел.
% ^^^ \pageref{LastPage} працює, лише якщо в кінці документа є мітка
% \label{LastPage} (вона вже додана в main.tex). Кількість джерел
% після підключення бібліографії (Фаза 5) можна порахувати вручну.

\textbf{Об'єкт дослідження} -- \dots

\textbf{Мета роботи} -- \dots

\textbf{Методи дослідження} -- \dots

\textbf{Наукова новизна} (для магістерської дисертації) -- \dots

\textbf{Практичне значення} -- \dots

% ДСТУ 3008:2015, п. 4.3.8: ключові слова друкують ПРОПИСНИМИ
% (великими) літерами -- на відміну від решти тексту реферату.
% Жодних \bigskip тут не треба: звичайний абзацний відступ і
% звичайний проміжок між абзацами вже відокремлюють цей рядок від
% сусідніх настільки, наскільки потрібно (див. docs/ARCHITECTURE.md,
% розділ про \baselineskip, чому зайвий \bigskip тут лише зіпсував би
% рівномірність).
\textbf{Ключові слова:} \MakeUppercase{ключове слово 1, ключове слово 2,
ключове слово 3}.

\begin{english}
  % "ABSTRACT" оформлено як заголовок (великі літери, жирний,
  % посередині), а не просто жирне слово в тексті -- щоб мати ту саму
  % візуальну вагу, що й "РЕФЕРАТ" вище. Інакше він губиться поруч із
  % повноцінним заголовком розділу.
  %
  % Свідомо НЕ \begin{center}...\end{center}: це оточення має власний
  % умовчаний відступ (\topsep), не пов'язаний із \baselineskip, тому
  % дає "некруглу" відстань (≈1,75 інтервала). \centering всередині
  % групи { } так само центрує текст, але без цього зайвого відступу
  % -- тоді відстань керується тільки нашим \vspace{1\baselineskip}
  % (= рівно 2 інтервали з тих самих причин, що й у заголовків розділів
  % -- див. docs/ARCHITECTURE.md).
  \vspace{1\baselineskip}
  {\centering\bfseries ABSTRACT\par}
  \vspace{1\baselineskip}

  Explanatory note to the \dots: \pageref{LastPage}~p., \arabic{figure}~fig.,
  \arabic{table}~tables, 2~appendices, 00~references.

  \textbf{Object of research} -- \dots

  \textbf{Purpose} -- \dots

  \textbf{Methods} -- \dots

  \textbf{Scientific novelty} -- \dots

  \textbf{Practical value} -- \dots

  \textbf{Keywords:} \MakeUppercase{keyword one, keyword two, keyword three}.
\end{english}
chapters/01-intro.tex · 1 KB
% chapters/01-intro.tex -- Вступ (ДСТУ 3008:2015, п. 5.1; Рекомендації
% КПІ уточнюють для магістерської дисертації, що обсяг вступу не має
% перевищувати 5% основної частини).
\kpithesisUnnumberedChapter{Вступ}

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

\textbf{Мета і завдання дослідження.} \dots
Для досягнення мети потрібно розв'язати такі завдання:
\begin{itemize}
  \item \dots;
  \item \dots;
  \item \dots.
\end{itemize}

\textbf{Об'єкт дослідження.} \dots

\textbf{Предмет дослідження.} \dots

\textbf{Методи дослідження.} \dots

\textbf{Наукова новизна одержаних результатів} (обов'язково для
освітньо-наукової програми). \dots

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

\textbf{Апробація результатів.} \dots

\textbf{Публікації.} \dots
chapters/02-chapter-01.tex · 664 B
% chapters/02-chapter-01.tex -- перший розділ основної частини.
% Типово тут огляд літератури/сучасного стану проблеми (не більше 20%
% обсягу основної частини -- Рекомендації КПІ).
\chapter{Назва першого розділу}

Текст розділу з посиланням на джерело \cite{makarova2002} та ще одне
\cite{rossokha2015, ifla2012}.

\section{Назва підрозділу}

Текст підрозділу.

\subsection{Назва пункту}

Текст пункту.

\kpithesisChapterConclusion{1}
chapters/03-chapter-02.tex · 279 B
% chapters/03-chapter-02.tex -- другий розділ основної частини.
\chapter{Назва другого розділу}

Текст розділу.

\section{Назва підрозділу}

Текст підрозділу.

\kpithesisChapterConclusion{2}
chapters/04-chapter-03.tex · 281 B
% chapters/04-chapter-03.tex -- третій розділ основної частини.
\chapter{Назва третього розділу}

Текст розділу.

\section{Назва підрозділу}

Текст підрозділу.

\kpithesisChapterConclusion{3}
chapters/05-conclusions.tex · 501 B
% chapters/05-conclusions.tex -- Висновки (ДСТУ 3008:2015, п. 5.3).
% Тут підсумовують результати УСІЄЇ роботи -- не повторюють текст
% розділів, а формулюють, що з нього випливає.
\kpithesisUnnumberedChapter{Висновки}

У кваліфікаційній роботі отримано такі результати:

\begin{enumerate}
  \item \dots
  \item \dots
  \item \dots
\end{enumerate}
config.tex · 5 KB
% config.tex -- усі дані про вас і вашу роботу в одному місці.
%
% Це ЄДИНИЙ файл, який більшість студентів мають редагувати напряму.
% Він не залежить від факультету чи кафедри -- це просто текстові
% поля, тому шаблон однаково підходить для будь-якої кафедри КПІ:
% просто впишіть свої дані замість прикладів нижче.
%
% Ступінь (бакалавр/магістр) тут НЕ задається -- він вказаний у
% main.tex, в аргументі \documentclass[master]{kpithesis} або
% [bachelor]. Це свідомий поділ: тут -- дані про вас, там -- вибір
% "форми" документа.

% --- Заклад ---
\newcommand{\facultyName}{Повна назва факультету/навчально-наукового інституту}
\newcommand{\departmentName}{Повна назва кафедри}
\newcommand{\departmentHeadName}{Ім'я ПРІЗВИЩЕ}
% Завідувач(-ка) кафедри -- саме той підпис, що стоїть у грифі
% "ДО ЗАХИСТУ ДОПУЩЕНО" на титульній сторінці.

% --- Спеціальність і програма ---
\newcommand{\specialtyCode}{000}
\newcommand{\specialtyName}{Назва спеціальності}
\newcommand{\programmeName}{Назва освітньої програми}
% Для магістерської дисертації важливо, за якою саме програмою
% ви навчаєтесь -- освітньо-професійною чи освітньо-науковою (це
% впливає на формулювання на титульній сторінці). Впишіть одне з двох:
% "освітньо-професійною" або "освітньо-науковою". Для бакалаврської
% роботи це поле не використовується (там завжди ОПП) -- можете
% залишити як є.
\newcommand{\programmeType}{освітньо-професійною}

% --- Тема роботи ---
\newcommand{\thesisTitle}{Тема вашої роботи}
% Для бакалаврської роботи вкажіть одне з двох: "Дипломний проєкт" або
% "Дипломна робота" (перше -- якщо є графічна частина/креслення,
% друге -- якщо ні; для більшості неінженерних спеціальностей це
% "Дипломна робота"). Для магістра це поле не використовується --
% магістерська робота завжди називається "Магістерська дисертація".
\newcommand{\workType}{Дипломна робота}

% --- Автор(-ка) ---
\newcommand{\authorFullName}{Прізвище Ім'я По-батькові}
\newcommand{\authorCourse}{4}
\newcommand{\authorGroup}{XX-00}

% --- Науковий керівник ---
\newcommand{\supervisorFullName}{Прізвище Ім'я По-батькові}
\newcommand{\supervisorRegalia}{посада, науковий ступінь, вчене звання}
% Наприклад: "доцент кафедри ОТ, канд. техн. наук, доцент"

% --- Консультант (за наявності) ---
% Якщо консультанта немає -- просто залиште \consultantFullName
% порожнім (як зараз): титульна сторінка й бланк завдання самі
% пропустять цей рядок.
\newcommand{\consultantFullName}{}
\newcommand{\consultantRegalia}{}
\newcommand{\consultantChapter}{}
% \consultantChapter -- назва розділу, з якого консультували,
% наприклад "економічної частини" -- потрібна лише якщо консультант є.

% --- Рецензент ---
\newcommand{\reviewerFullName}{Прізвище Ім'я По-батькові}
\newcommand{\reviewerRegalia}{посада, науковий ступінь, вчене звання}

% --- Формальності ---
\newcommand{\udcCode}{000.000}
% УДК скаже Вам науковий керівник -- код потрібен
% лише для магістерської дисертації (для бакалаврської не друкується).
\newcommand{\thesisYear}{2026}

fonts/LiberationSerif-Bold.ttf — binary, 361 KB

fonts/LiberationSerif-BoldItalic.ttf — binary, 368 KB

fonts/LiberationSerif-Italic.ttf — binary, 367 KB

fonts/LiberationSerif-Regular.ttf — binary, 384 KB

fonts/OFL.txt · 4 KB
Digitized data copyright (c) 2010 Google Corporation
	with Reserved Font Arimo, Tinos and Cousine.
Copyright (c) 2012 Red Hat, Inc.
	with Reserved Font Name Liberation.

This Font Software is licensed under the SIL Open Font License,
Version 1.1.

This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL

SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

PREAMBLE The goals of the Open Font License (OFL) are to stimulate
worldwide development of collaborative font projects, to support the font
creation efforts of academic and linguistic communities, and to provide
a free and open framework in which fonts may be shared and improved in
partnership with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves.
The fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works.  The fonts and derivatives,
however, cannot be released under any other type of license.  The
requirement for fonts to remain under this license does not apply to
any document created using the fonts or their derivatives.

 

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such.
This may include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components
as distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting ? in part or in whole ?
any of the components of the Original Version, by changing formats or
by porting the Font Software to a new environment.

"Author" refers to any designer, engineer, programmer, technical writer
or other person who contributed to the Font Software.


PERMISSION & CONDITIONS

Permission is hereby granted, free of charge, to any person obtaining a
copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,in
   Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
   redistributed and/or sold with any software, provided that each copy
   contains the above copyright notice and this license. These can be
   included either as stand-alone text files, human-readable headers or
   in the appropriate machine-readable metadata fields within text or
   binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
   Name(s) unless explicit written permission is granted by the
   corresponding Copyright Holder. This restriction only applies to the
   primary font name as presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
   Software shall not be used to promote, endorse or advertise any
   Modified Version, except to acknowledge the contribution(s) of the
   Copyright Holder(s) and the Author(s) or with their explicit written
   permission.

5) The Font Software, modified or unmodified, in part or in whole, must
   be distributed entirely under this license, and must not be distributed
   under any other license. The requirement for fonts to remain under
   this license does not apply to any document created using the Font
   Software.


 
TERMINATION
This license becomes null and void if any of the above conditions are not met.

 

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.  IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
DEALINGS IN THE FONT SOFTWARE.

kpithesis.cls · 27 KB
%% kpithesis.cls
%%
%% Фаза 1 (мінімальна версія): сторінка, шрифти, мова.
%% Кожне рішення тут детально пояснене в docs/ARCHITECTURE.md --
%% якщо незрозуміло, чому зроблено саме так, дивіться там.

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{kpithesis}[2026/09/19 v0.1 KPI thesis class]

% --- Ступінь: бакалавр чи магістр? ---
% Це ЄДИНА річ, яку клас розрізняє за допомогою опції (а не факультет,
% не кафедра, не спеціальність -- усе це просто дані в config.tex).
% Ступінь впливає на вигляд титульної сторінки й бланку завдання
% (магістерській дисертації потрібні ще УДК і "На правах рукопису",
% яких немає в бакалаврській роботі) -- див. titlepages/.
% Використання: \documentclass[master]{kpithesis} або [bachelor].
% Типове значення -- master, оскільки це основний сценарій використання
% цього шаблону.
\newif\ifkpithesis@Master
\DeclareOption{bachelor}{\kpithesis@Masterfalse}
\DeclareOption{master}{\kpithesis@Mastertrue}
\ExecuteOptions{master}
\ProcessOptions\relax

% Базовий клас "report" дає ієрархію \chapter -> \section -> \subsection,
% яка відповідає вимогам ДСТУ 3008:2015 до розділів/підрозділів/пунктів.
% Кегль 14pt задаємо одразу тут (п. 7.1.5 стандарту) -- але через
% "extreport" (пакет extsizes), а не звичайний "report": стандартні
% класи LaTeX (article/report/book) розуміють як розмір шрифта лише
% 10pt/11pt/12pt, тож "14pt" вони мовчки ІГНОРУЮТЬ (текст залишився б
% 10-пунктовим, хоч і без явної помилки -- підступна пастка). extreport
% -- це той самий report, тільки з підтримкою додаткових розмірів,
% зокрема 14pt.
\LoadClass[a4paper, 14pt]{extreport}

% --- Двигун компіляції ---
% Цей клас навмисно працює ЛИШЕ з XeLaTeX. pdfLaTeX не вміє звертатися
% до системних шрифтів напряму (звідси історичні проблеми зі шрифтами
% на кшталт PSCyr), а XeLaTeX/LuaLaTeX вміють. Я обрав саме XeLaTeX
% (не LuaLaTeX) -- пояснення чому саме так у docs/ARCHITECTURE.md.
% Якщо хтось випадково запустить pdflatex, компіляція одразу
% зупиниться з людяним повідомленням про помилку, а не незрозумілим
% нагромадженням помилок кодування.
\RequirePackage{iftex}
\RequireXeTeX

% --- Шрифти ---
% fontspec дозволяє підключати системні TrueType/OpenType шрифти за
% назвою -- саме те, чого бракувало pdfLaTeX.
\RequirePackage{fontspec}

% --- Мова ---
% polyglossia -- сучасний пакет мовної підтримки для XeLaTeX/LuaLaTeX,
% на відміну від застарілого babel не вимагає підключати "russian" як
% проміжну залежність для роботи з кирилицею.
\RequirePackage{polyglossia}
\setdefaultlanguage{ukrainian}
\setotherlanguage{english}

% --- Основний шрифт (ДСТУ 3008:2015, п. 7.1.5: Times New Roman) ---
% Спершу пробуємо системний "Times New Roman" -- він є, якщо на
% комп'ютері встановлено Microsoft Office (Windows/macOS). Якщо його
% немає (наприклад, "чистий" Linux без Office, чи сервер Overleaf/
% GitHub Actions) -- автоматично використовуємо шрифт із теки fonts/,
% що йде разом із шаблоном: Liberation Serif. Це метрично сумісний (та
% сама ширина літер) замінник Times New Roman з відкритою ліцензією
% OFL і повною підтримкою кирилиці -- без потреби ставити щось вручну.
%
% Тут є нюанс, виявлений під час тестування шаблону: перевірки "шрифт
% з такою назвою існує" НЕДОСТАТНЬО. У деяких системах (наприклад,
% Linux із пакетом mscorefonts) шрифт "Times New Roman" присутній, але
% це стара версія БЕЗ кириличних гліфів узагалі -- компіляція впаде на
% \begin{document} з незрозумілою для новачка помилкою пакета
% polyglossia. Тому ми додатково перевіряємо, чи містить кандидат
% кирилицю, тим самим механізмом (\fontspec_if_script:nTF), яким для
% цього ж самого користується сама polyglossia -- тобто просто
% виконуємо цю перевірку РАНІШЕ і самі вирішуємо, що робити, замість
% того, щоб компіляція аварійно зупинялася.
% \fontspec_if_script:nTF -- це команда "мови" expl3 (сучасного
% внутрішнього діалекту LaTeX, яким написані і fontspec, і
% polyglossia): у ній підкреслення "_" і двокрапка ":" є частиною імен
% команд, а не звичайними символами, і TeX повинен знати про це ще на
% етапі ЧИТАННЯ файлу. Якщо написати такий виклик просто всередині
% аргументу іншої команди (наприклад, \IfFontExistsTF{...}{ОСЬ ТУТ}{}),
% TeX встигає "розібрати" цей аргумент на токени ще до того, як
% \ExplSyntaxOn взагалі спрацює -- і "розсипає" ім'я команди на окремі
% символи, видаючи лавину незрозумілих помилок (це не гіпотетично:
% саме так і сталося при первинному тестуванні шаблону). Тому таку
% перевірку означуємо ОКРЕМОЮ командою тут, одразу після
% \ExplSyntaxOn -- тоді ім'я "запікається" правильно один раз, а
% викликати готову команду \kpithesis@CheckCyrillic можна вже звідки
% завгодно, без цієї пастки.
\ExplSyntaxOn
\cs_new_protected:Npn \kpithesis@CheckCyrillic #1
  {
    \group_begin:
      #1
      \fontspec_if_script:nTF {cyrl}
        { \global\kpithesis@CyrillicOKtrue }
        { \global\kpithesis@CyrillicOKfalse }
    \group_end:
  }
\ExplSyntaxOff

\newif\ifkpithesis@CyrillicOK
\IfFontExistsTF{Times New Roman}
  {
    \newfontfamily\kpithesis@CandidateFont{Times New Roman}
    \kpithesis@CheckCyrillic{\kpithesis@CandidateFont}
  }
  {\kpithesis@CyrillicOKfalse}

% ДСТУ 3008 вимагає лише ОДИН шрифт (Times New Roman) для всього
% тексту -- окремого моношрифту для лістингів код чи "рублений" шрифт
% (sans-serif) стандарт не передбачає. Але polyglossia все одно
% перевіряє кирилицю в ролях "monospace" і "sans" (наприклад, коли
% biblatex друкує URL моношрифтом через \url) -- якщо їх не задати
% явно, вони мовчки залишаться на застарілому "Latin Modern" без
% кирилиці, і компіляція впаде так само, як і з основним шрифтом
% раніше. Тому призначаємо їм ТОЙ САМИЙ, уже перевірений шрифт.
\ifkpithesis@CyrillicOK
  \setmainfont{Times New Roman}
  \setsansfont{Times New Roman}
  \setmonofont{Times New Roman}
\else
  % Файли названо без пробілу (LiberationSerif-*.ttf), тому шляхи
  % задаємо напряму, а не через шаблон "*" (який підставив би сюди
  % назву шрифта РАЗОМ із пробілом -- "Liberation Serif-Regular" --
  % і файл не знайшовся б).
  \setmainfont{Liberation Serif}[
    Path = fonts/,
    UprightFont = LiberationSerif-Regular.ttf,
    BoldFont = LiberationSerif-Bold.ttf,
    ItalicFont = LiberationSerif-Italic.ttf,
    BoldItalicFont = LiberationSerif-BoldItalic.ttf,
  ]
  \setsansfont{Liberation Serif}[
    Path = fonts/,
    UprightFont = LiberationSerif-Regular.ttf,
    BoldFont = LiberationSerif-Bold.ttf,
    ItalicFont = LiberationSerif-Italic.ttf,
    BoldItalicFont = LiberationSerif-BoldItalic.ttf,
  ]
  \setmonofont{Liberation Serif}[
    Path = fonts/,
    UprightFont = LiberationSerif-Regular.ttf,
    BoldFont = LiberationSerif-Bold.ttf,
    ItalicFont = LiberationSerif-Italic.ttf,
    BoldItalicFont = LiberationSerif-BoldItalic.ttf,
  ]
\fi

% --- Поля сторінки (ДСТУ 3008:2015, п. 7.1.11) ---
% Стандарт задає МІНІМАЛЬНІ береги: верхній/нижній -- не менше 20 мм,
% лівий -- не менше 25 мм, правий -- не менше 10 мм. Використовуємо ці
% значення як усталені (мінімально допустимі й водночас найпоширеніші).
\RequirePackage[a4paper, top=20mm, bottom=20mm, left=25mm, right=10mm]{geometry}

% --- Міжрядковий інтервал (п. 7.1.5: 1,5--2 інтервали) ---
\RequirePackage{setspace}
\onehalfspacing

% --- Абзацний відступ (п. 7.1.22: 5 знаків = 1,25 см) ---
\setlength{\parindent}{1.25cm}

% --- Запобіжник проти виходу тексту за поле (п. 7.1.11) ---
% Береги вище задають ГЕОМЕТРІЮ сторінки, але цього не досить: якщо в
% рядку немає нормальної точки переносу (наприклад, довге складне слово
% на кшталт "освітньо-наукової" впритул до правого берега), TeX за
% замовчуванням радше пропустить рядок який є ЗАНАДТО ДОВГИМ ("Overfull
% \hbox"), ніж зробить міжслівні пробіли трохи ширшими -- і текст
% реально вилазить за берег. \emergencystretch каже TeX'у: перш ніж
% здаватися, спробуй розтягнути пробіли ще трохи (тут -- до 3em) як
% останній засіб. Це не впливає на рядки, з якими й так усе гаразд.
\setlength{\emergencystretch}{3em}

% ************************************************************* %
%  Фаза 2: заголовки, зміст, підписи, переліки, нумерація формул,
%  додатки -- тобто безпосередньо "тіло" вимог ДСТУ 3008:2015.
% ************************************************************* %

% --- Заголовки розділів і підрозділів ---
% titlesec дозволяє повністю переозначити вигляд \chapter/\section/
% \subsection, не залізаючи у внутрішню кухню базового класу.
\RequirePackage{titlesec}

% Розділи (п. 7.1.20): ВЕЛИКІ ЛІТЕРИ, напівжирний, по центру, без
% крапки в кінці; номер -- просто число, без крапки після нього.
\titleformat{\chapter}
  {\centering\bfseries\MakeUppercase}
  {\thechapter}
  {0.5em}
  {}
% Відступ від тексту (п. 7.1.24): не менше 2 міжрядкових інтервалів
% і до, і після заголовка.
%
% ВАЖЛИВО: тут стоїть "1\baselineskip", а не "2\baselineskip" --
% і це не помилка, а свідомий розрахунок. \titlespacing додає СТІЛЬКИ
% відступу, СКІЛЬКИ вказано, ПОВЕРХ звичайної міжрядкової відстані, яка
% в TeX існує між будь-якими двома сусідніми рядками в будь-якому
% разі (навіть якщо тут написати "0pt", відстань між заголовком і
% текстом однаково буде дорівнювати одному "\baselineskip" -- це
% перевірено емпірично при розробці шаблону). Тобто повна відстань,
% яку побачить читач, = 1 (неминучий мінімум) + значення тут. Щоб
% повна відстань дорівнювала РІВНО двом міжрядковим інтервалам (а не
% трьом, як було б із "2\baselineskip"), тут і потрібне саме
% "1\baselineskip". Перевірено вимірюванням реальних координат тексту
% в зібраному PDF (докладніше в docs/ARCHITECTURE.md).
\titlespacing{\chapter}{0pt}{0pt}{1\baselineskip}

% Підрозділи й пункти (п. 7.1.21): з абзацного відступу, звичайний
% регістр (велика лише перша літера), напівжирний, без крапки.
\titleformat{\section}
  {\bfseries}
  {\thesection}
  {0.5em}
  {}
% Та сама логіка "1, а не 2" -- див. коментар вище над \chapter.
\titlespacing{\section}{\parindent}{1\baselineskip}{1\baselineskip}

\titleformat{\subsection}
  {\bfseries}
  {\thesubsection}
  {0.5em}
  {}
\titlespacing{\subsection}{\parindent}{1\baselineskip}{1\baselineskip}

% --- Ненумеровані структурні елементи (п. 7.1.18) ---
% "Реферат", "Зміст", "Вступ", "Висновки", "Перелік посилань" тощо
% оформлюють як заголовок розділу (той самий стиль), але БЕЗ номера і
% без нумерації в тексті -- хоча вони й потрапляють у Зміст.
\newcommand{\kpithesisUnnumberedChapter}[1]{%
  \chapter*{#1}%
  \addcontentsline{toc}{chapter}{#1}%
}

% "Висновки до розділу N" -- підсумок наприкінці кожного розділу
% магістерської дисертації (див. Рекомендації КПІ, розділ "Основна
% частина"). Це ненумерований підрозділ, який усе ж додають до Змісту.
\newcommand{\kpithesisChapterConclusion}[1]{%
  \section*{Висновки до розділу #1}%
  \addcontentsline{toc}{section}{Висновки до розділу #1}%
}

% --- Зміст (Додаток Б стандарту) ---
% tocloft керує виглядом автоматично зібраного змісту: заповнення
% крапками до номера сторінки, відступи для розділів/підрозділів.
\RequirePackage[titles]{tocloft}
\renewcommand{\cftchapfont}{\mdseries}
\renewcommand{\cftchappagefont}{\mdseries}
\renewcommand{\cftsecindent}{1.5em}
\setlength{\cftbeforechapskip}{0pt}

% --- Рисунки й таблиці (п. 7.5, 7.6) ---
% Рисунок: підпис ПІД зображенням, по центру ("Рисунок N — Назва").
% Таблиця: підпис НАД таблицею, зліва ("Таблиця N — Назва").
% Обидва нумеруємо в межах розділу (номер = "розділ.порядковий" --
% п. 7.5.6/7.6.4 дозволяють такий варіант), як і формули нижче.
\RequirePackage{graphicx}
\RequirePackage{caption}
% amsmath дає команду \numberwithin, якою ми користуємось і для
% рисунків/таблиць одразу нижче, і для формул трохи далі -- тому
% підключаємо його тут, ще до першого використання.
\RequirePackage{amsmath}
\DeclareCaptionLabelSeparator{kpithesisDash}{ --- }
\captionsetup[figure]{
  position = below,
  justification = centering,
  labelsep = kpithesisDash,
  name = Рисунок,
}
\captionsetup[table]{
  position = above,
  justification = raggedright,
  labelsep = kpithesisDash,
  name = Таблиця,
  singlelinecheck = false,
}
\numberwithin{figure}{chapter}
\numberwithin{table}{chapter}

% --- Формули (п. 7.10) ---
% Номер формули праворуч, у дужках -- це поведінка LaTeX за
% замовчуванням для \begin{equation}, тож додаткового форматування не
% потрібно. Нумеруємо в межах розділу, як дозволяє п. 7.10.3.
\numberwithin{equation}{chapter}

% --- Переліки (п. 7.7) ---
% Найпростіший, найпоширеніший випадок: ненумерований перелік одного
% рівня без перехресних посилань позначають тире "--" (не крапкою і
% не стандартним LaTeX-маркером "•").
\RequirePackage{enumitem}
\setlist[itemize]{label=--}

% --- Додатки (п. 6.2, 7.15) ---
% Додатки позначають великими літерами української абетки, ПРОПУСКАЮЧИ
% Ґ, Є, З, І, Ї, Й, О, Ч, Ь (п. 7.15.1) -- бо ці літери легко сплутати
% з іншими позначеннями або цифрами. Тому це не звичайний \alph, а
% ручний список саме дозволених літер.
\newcounter{kpithesis@AppendixNum}
\newcommand{\kpithesis@AppendixLetter}{%
  \ifcase\value{kpithesis@AppendixNum}%
  \or А\or Б\or В\or Г\or Д\or Е\or Ж\or И\or К\or Л\or М\or Н%
  \or П\or Р\or С\or Т\or У\or Ф\or Х\or Ц\or Ш\or Щ\or Ю\or Я%
  \else ?% більше 24 додатків шаблон не підтримує (і навряд чи знадобиться🌚)
  \fi
}

% \kpithesisAppendix{Назва додатка} -- починає новий додаток.
% Перевизначаючи \thechapter на літеру додатка, ми "безкоштовно"
% отримуємо правильну нумерацію рисунків/таблиць/формул усередині
% додатка (В.1, В.2...) -- бо їхні \theX-формати вище вже посилаються
% на \thechapter, а не захищений від цього номер розділу.
\newcommand{\kpithesisAppendix}[1]{%
  \stepcounter{kpithesis@AppendixNum}%
  \setcounter{figure}{0}%
  \setcounter{table}{0}%
  \setcounter{equation}{0}%
  \renewcommand{\thechapter}{\kpithesis@AppendixLetter}%
  % Заголовок додатка -- це буквально ДВА рядки (слово "ДОДАТОК" з
  % літерою, і окремо власна назва додатка звичайним накресленням).
  % \chapter* приймає лише "однорядковий" аргумент (він потрапляє,
  % наприклад, у колонтитул), тому \par там використати не можна --
  % другий рядок друкуємо звичайним текстом одразу після.
  \chapter*{ДОДАТОК~\kpithesis@AppendixLetter}%
  \addcontentsline{toc}{chapter}{Додаток~\kpithesis@AppendixLetter\ #1}%
  \begin{center}
    \normalfont\mdseries #1
  \end{center}
  \vspace{1em}%
}

% ************************************************************* %
%  Фаза 3: титульна сторінка й бланк завдання
% ************************************************************* %

% etoolbox дає зручну перевірку "чи це поле порожнє" -- нею
% скористаються titlepages/*.tex, щоб автоматично пропускати рядок
% консультанта, якщо його немає (див. config.tex). tabularx --
% таблиці на всю ширину сторінки з рядком, що сам переноситься --
% знадобиться для бланку завдання (Календарний план тощо).
\RequirePackage{etoolbox}
\RequirePackage{tabularx}

% Ці дві команди -- усе, що треба викликати з main.tex. Яку саме пару
% файлів з titlepages/ підключити (бакалаврську чи магістерську),
% вирішує \ifkpithesis@Master, тобто те, яку опцію класу вказано у
% \documentclass -- див. початок цього файлу.
\newcommand{\kpithesisTitlePage}{%
  \ifkpithesis@Master
    \input{titlepages/master-title.tex}%
  \else
    \input{titlepages/bachelor-title.tex}%
  \fi
}
\newcommand{\kpithesisTaskPage}{%
  \ifkpithesis@Master
    \input{titlepages/master-task.tex}%
  \else
    \input{titlepages/bachelor-task.tex}%
  \fi
}

% ************************************************************* %
%  Фаза 5: Перелік посилань (ДСТУ 8302:2015)
% ************************************************************* %
%
% ДСТУ 3008:2015 (п. 5.5.2) каже оформлювати бібліографічні описи "за
% ДСТУ ГОСТ 7.1" -- це старий, докладний стандарт для БІБЛІОТЕЧНИХ
% каталожних записів. Але "Рекомендації..." КПІ прямим текстом уточнюють,
% що саме для кваліфікаційних робіт список джерел складають за ДСТУ
% 8302:2015 -- новішим і простішим стандартом САМЕ для посилань (а не
% каталогів). Тому орієнтуємось на нього.
%
% Готового пакета "biblatex-dstu8302" не існує; є близький за духом
% "biblatex-gost" (для російського ГОСТ 7.0.5). Замість того, щоб
% брати його як залежність (він розрахований на інший, хоч і схожий,
% стандарт), ми взяли вбудований стиль biblatex "numeric" і
% донастроїли лише ті деталі, якими ДСТУ 8302 відрізняється:
%   - крапка між "зонами" опису замість повного бібліотечного ". --";
%   - "Прізвище І. Б." БЕЗ коми між прізвищем та ініціалами;
%   - порядок джерел за появою в тексті, а не за абеткою.
% Це наближення, перевірене на прикладах зі стандарту, а не переклад
% усього стандарту -- нетипові джерела (архівні документи, законодавчі
% акти тощо) варто звірити з оригіналом ДСТУ 8302:2015 вручну.
\RequirePackage[
  backend = biber,
  style = numeric,
  sorting = none,        % порядок першої згадки в тексті (п. 5.5.1 ДСТУ 3008)
  giveninits = true,     % ініціали ("І. Б."), а не повні імена
  maxnames = 3,          % ДСТУ 8302 показує до 3 авторів повністю...
  minnames = 3,          %  ...а не "перший + та ін." (типова поведінка biblatex)
]{biblatex}

% Порядок "Прізвище Ім'я" (а не типове для biblatex "Ім'я Прізвище")...
\DeclareNameAlias{author}{family-given}
% ...і без коми між ними ("Панько, Т. І." -> "Панько Т. І."):
% \revsdnamepunct це офіційний, документований гачок саме для такого
% форматування імен, коли прізвище йде першим ("reversed" name format).
\renewcommand*{\revsdnamepunct}{}

% Назву джерела ДСТУ 8302 друкує звичайним текстом -- типовий biblatex
% же виділяє назву книги курсивом, а назву статті бере в лапки. Обидва
% варіанти прибираємо, залишаючи текст як є.
\DeclareFieldFormat{title}{#1}
\DeclareFieldFormat
  [article, inbook, incollection, inproceedings, patent, thesis, unpublished]
  {title}{#1}

% Тип роботи (посібник, монографія, дисертація...) ДСТУ 8302 пише
% одразу після назви через " : " -- у .bib-записі впишіть цей текст у
% поле "subtitle" (не "type"): biblatex вже вміє друкувати subtitle
% одразу за title, лишається тільки виправити роздільник на потрібний.
\renewcommand*{\subtitlepunct}{~: }

% Перед назвою журналу typeset biblatex зазвичай вставляє слово
% "В:" ("У:") -- у прикладах ДСТУ 8302 такого немає, просто крапка й
% одразу назва журналу.
\renewbibmacro*{in:}{}

% Місце видання й видавництво ДСТУ 8302 розділяє ПРОБІЛОМ і двокрапкою
% з обох боків ("Київ : Академія"), а не типовим для biblatex
% "Київ: Академія" (пробіл лише після). \addcolon сам керує пробілами
% навколо себе (і "з'їдає" будь-який пробіл, доданий перед ним), тому
% замість нього тут просто НЕРОЗРИВНИЙ пробіл + двокрапка як звичайний
% текст -- це копія стандартного визначення з biblatex.def/standard.bbx.
\renewbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \iflistundef{publisher}
    {\setunit*{\addcomma\space}}
    {\setunit*{~:~}}%
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \usebibmacro{date}%
  \newunit}

% Статті з журналів (ДСТУ 8302, приклад): "Назва журналу. Рік. № Номер,
% С. Сторінки." -- типовий biblatex пише складніше ("Назва журналу
% Номер (Рік), сторінки"), бо орієнтований на англомовні стилі
% цитування. Спрощуємо до того, що показує ДСТУ 8302 (без серій, без
% номерів статей (eid) -- для звичайної статті в журналі вони не
% потрібні).
\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \addperiod\space
  \usebibmacro{date}%
  \iffieldundef{number}
    {}
    {\addperiod\space№~\printfield{number}\addcomma\space}%
}

\addbibresource{bibliography.bib}
main.tex — the file that is compiled · 2 KB
% main.tex -- головний файл вашої роботи.
%
% Що тут можна/варто редагувати:
%  - опцію класу нижче: [master] чи [bachelor];
%  - список файлів у chapters/ і appendices/, якщо додаєте/прибираєте
%    розділи чи додатки (просто дописуйте чи коментуйте рядки \input).
%
% Що редагувати НЕ тут: усі особисті дані -- у config.tex; додаткові
% пакети й власні команди -- у preamble.tex (не в kpithesis.cls!).
\documentclass[master]{kpithesis}

\input{preamble.tex}
\input{config.tex}

\begin{document}

% --- Вступна частина (ДСТУ 3008:2015, розділ 4) ---
\kpithesisTitlePage
\kpithesisTaskPage
\input{chapters/00-abstract.tex}
\tableofcontents
\input{chapters/00-abbreviations.tex}
% ^^^ якщо у роботі немає нестандартних скорочень -- закоментуйте
% рядок вище.

% --- Основна частина (ДСТУ 3008:2015, розділ 5) ---
\input{chapters/01-intro.tex}
\input{chapters/02-chapter-01.tex}
\input{chapters/03-chapter-02.tex}
\input{chapters/04-chapter-03.tex}
\input{chapters/05-conclusions.tex}

% --- Перелік посилань (ДСТУ 3008:2015, п. 5.5; ДСТУ 8302:2015) ---
\kpithesisUnnumberedChapter{Перелік посилань}
\printbibliography[heading=none]

% --- Додатки ---
% Порядок підключення визначає літеру додатка (перший файл -> "А",
% другий -> "Б" і т.д.) -- не назва файлу.
\input{appendices/a-appendix.tex}
\input{appendices/b-appendix.tex}

\label{LastPage}
\end{document}
preamble.tex · 2 KB
% preamble.tex -- ваше місце для ДОДАТКОВИХ пакетів і власних команд.
%
% kpithesis.cls навмисно не змінюють напряму (щоб оновлення шаблону
% в майбутньому не конфліктували з вашими правками) -- усе, що
% специфічне саме для ВАШОЇ роботи (додаткові пакети, власні
% математичні позначення, налаштування лістингів коду тощо), додавайте
% сюди. Цей файл підключається в main.tex одразу після
% \documentclass, тобто ще до \begin{document} -- як і будь-який
% "преамбульний" код.
%
% Порожній файл нічого не ламає -- усе нижче вимкнене коментарями.
% Розкоментуйте те, що вам потрібно, або дописуйте своє за тим самим
% зразком.

% --- Приклад: лістинги програмного коду (пакет listings) ---
% Якщо у вашій роботі є фрагменти коду -- розкоментуйте цей блок. Він
% налаштовує зовнішній вигляд лістингів (рамка, номери рядків, той
% самий моношрифт, що вже підключений шаблоном -- див.
% docs/ARCHITECTURE.md, розділ "Шрифти").
%
% \usepackage{listings}
% \lstset{
%   basicstyle       = \ttfamily\small,
%   numbers          = left,
%   numberstyle      = \tiny,
%   frame            = single,
%   breaklines       = true,
%   showstringspaces = false,
% }
%
% Використання в тексті розділу:
%   \begin{lstlisting}[language=Python, caption={Приклад функції}]
%   def hello():
%       print("Привіт, світ!")
%   \end{lstlisting}

% --- Приклад: власна математична команда ---
% \newcommand{\R}{\ensuremath{\mathbb{R}}}   % \R замість \mathbb{R}

% --- Приклад: додатковий пакет загального призначення ---
% \usepackage{tikz}   % для схем і діаграм
titlepages/bachelor-task.tex · 3 KB
% titlepages/bachelor-task.tex -- бланк завдання на дипломний
% проєкт/дипломну роботу бакалавра (Додаток 5 до "Рекомендацій...",
% КПІ ім. Ігоря Сікорського, 2022).
%
% Це офіційна форма, яку підписують ви й керівник ще до початку
% роботи над дипломом -- частину полів (календарний план, консультанти
% розділів, дата видачі) заповнюють вручну під час цієї процедури.
% Тут вони залишені порожніми рядками -- впишіть свої дані просто в
% цьому файлі, коли вони з'являться.
\thispagestyle{empty}

\begin{center}
  Національний технічний університет України\\
  «Київський політехнічний інститут імені Ігоря Сікорського»
\end{center}

\vspace{1em}
\noindent Факультет/ННІ~\facultyName\\
Кафедра~\departmentName\\
Рівень вищої освіти -- перший (бакалаврський)\\
Спеціальність~\specialtyCode~«\specialtyName»\\
Освітньо-професійна програма~«\programmeName»

\vspace{2em}
\begin{flushright}
  \begin{minipage}{7.5cm}
    ЗАТВЕРДЖУЮ\\
    Завідувач кафедри\\
    \hrulefill\ \departmentHeadName\\
    «\hrulefill»\hrulefill~\thesisYear~р.
  \end{minipage}
\end{flushright}

\begin{center}
  ЗАВДАННЯ\\
  на \workType~студенту\\
  \authorFullName
\end{center}

\begin{enumerate}[leftmargin=*]
  \item Тема \workType: «\thesisTitle»,

  керівник \workType~\supervisorFullName, \supervisorRegalia,

  затверджені наказом по університету від «\hrulefill»\hrulefill~\thesisYear~р. №~\hrulefill
  \item Строк подання студентом роботи \hrulefill
  \item Вихідні дані до роботи \hrulefill
  \item Зміст пояснювальної записки (перелік завдань, які потрібно розробити) \hrulefill
  \item Перелік графічного (ілюстративного) матеріалу \hrulefill
  \item Консультанти розділів роботи:
\end{enumerate}

\begin{center}
  \begin{tabularx}{\textwidth}{|X|X|X|X|}
    \hline
    Розділ & Прізвище, ініціали та посада консультанта &
      \multicolumn{2}{c|}{Підпис, дата} \\
    \hline
    & & завдання видав & завдання прийняв \\
    \hline
    & & & \\
    \hline
  \end{tabularx}
\end{center}

\noindent 7. Дата видачі завдання \hrulefill

\begin{center}
  Календарний план
\end{center}

\begin{center}
  \begin{tabularx}{\textwidth}{|c|X|X|X|}
    \hline
    №~з/п & Назва етапів виконання роботи &
      Строк виконання етапів & Примітка \\
    \hline
    & & & \\
    \hline
  \end{tabularx}
\end{center}

\vspace{1em}
\noindent Студент \hfill \authorFullName

\noindent Керівник роботи \hfill \supervisorFullName

\vspace{1em}
{\small * Консультантом не може бути зазначено керівника роботи.}

\clearpage
titlepages/bachelor-title.tex · 2 KB
% titlepages/bachelor-title.tex -- титульна сторінка дипломного
% проєкту/дипломної роботи бакалавра (Додаток 3 до "Рекомендацій до
% структури та змісту кваліфікаційних робіт здобувачів ступеня
% бакалавра та магістра", КПІ ім. Ігоря Сікорського, 2022).
%
% Цей файл не редагують напряму -- усі дані підставляються з
% config.tex. Якщо потрібно змінити саме РОЗМІТКУ (а не дані),
% редагуйте тут.
\thispagestyle{empty}

\begin{center}
  Національний технічний університет України\\
  «Київський політехнічний інститут імені Ігоря Сікорського»
\end{center}

\vspace{1em}
\noindent\facultyName\\
\departmentName

\vspace{2em}
\begin{flushright}
  \begin{minipage}{7.5cm}
    ДО ЗАХИСТУ ДОПУЩЕНО\\
    Завідувач кафедри\\
    \hrulefill\ \departmentHeadName\\
    «\hrulefill»\hrulefill~\thesisYear~р.
  \end{minipage}
\end{flushright}

\vspace{2em}
\begin{center}
  \workType\\
  на здобуття ступеня бакалавра\\
  за освітньо-професійною програмою «\programmeName»\\
  спеціальності \specialtyCode~«\specialtyName»\\
  на тему: «\thesisTitle»
\end{center}

\vspace{2em}
\noindent Виконав(-ла):\\
студент(-ка) \authorCourse~курсу, групи \authorGroup\\
\authorFullName \hfill \hrulefill

\medskip
\noindent Керівник:\\
\supervisorRegalia,\\
\supervisorFullName \hfill \hrulefill

\ifdefempty{\consultantFullName}{}{%
  \medskip
  \noindent Консультант з \consultantChapter:\\
  \consultantRegalia,\\
  \consultantFullName \hfill \hrulefill
}

\medskip
\noindent Рецензент:\\
\reviewerRegalia,\\
\reviewerFullName \hfill \hrulefill

\vspace{2em}
\noindent Засвідчую, що у цій кваліфікаційній роботі немає
запозичень з праць інших авторів без відповідних посилань.\\
Студент (-ка) \hrulefill

\vfill
\begin{center}
  Київ~--~\thesisYear
\end{center}

\clearpage
titlepages/master-task.tex · 3 KB
% titlepages/master-task.tex -- бланк завдання на магістерську
% дисертацію (Додаток 7 до "Рекомендацій...", КПІ ім. Ігоря
% Сікорського, 2022). Див. пояснення у bachelor-task.tex -- частину
% полів (календарний план, консультанти, дата видачі) заповнюють
% вручну, коли керівник видає завдання.
\thispagestyle{empty}

\begin{center}
  Національний технічний університет України\\
  «Київський політехнічний інститут імені Ігоря Сікорського»
\end{center}

\vspace{1em}
\noindent Факультет/ННІ~\facultyName\\
Кафедра~\departmentName\\
Рівень вищої освіти -- другий (магістерський)\\
Спеціальність~\specialtyCode~«\specialtyName»\\
\programmeType~програма~«\programmeName»

\vspace{2em}
\begin{flushright}
  \begin{minipage}{7.5cm}
    ЗАТВЕРДЖУЮ\\
    Завідувач кафедри\\
    \hrulefill\ \departmentHeadName\\
    «\hrulefill»\hrulefill~\thesisYear~р.
  \end{minipage}
\end{flushright}

\begin{center}
  ЗАВДАННЯ\\
  на магістерську дисертацію студенту\\
  \authorFullName
\end{center}

\begin{enumerate}[leftmargin=*]
  \item Тема дисертації: «\thesisTitle»,

  науковий керівник дисертації \supervisorFullName, \supervisorRegalia,

  затверджені наказом по університету від «\hrulefill»\hrulefill~\thesisYear~р. №~\hrulefill
  \item Строк подання студентом дисертації \hrulefill
  \item Об'єкт дослідження \hrulefill
  \item Предмет дослідження (вихідні дані -- для ОПП/ОНП) \hrulefill
  \item Перелік завдань, які потрібно розробити \hrulefill
  \item Перелік графічного (ілюстративного) матеріалу \hrulefill
  \item Орієнтовний перелік публікацій \hrulefill
  \item Консультанти розділів дисертації:
\end{enumerate}

\begin{center}
  \begin{tabularx}{\textwidth}{|X|X|X|X|}
    \hline
    Розділ & Прізвище, ініціали та посада консультанта &
      \multicolumn{2}{c|}{Підпис, дата} \\
    \hline
    & & завдання видав & завдання прийняв \\
    \hline
    & & & \\
    \hline
  \end{tabularx}
\end{center}

\noindent 9. Дата видачі завдання \hrulefill

\begin{center}
  Календарний план
\end{center}

\begin{center}
  \begin{tabularx}{\textwidth}{|c|X|X|X|}
    \hline
    №~з/п & Назва етапів виконання дисертації &
      Строк виконання етапів & Примітка \\
    \hline
    & & & \\
    \hline
  \end{tabularx}
\end{center}

\vspace{1em}
\noindent Студент \hfill \authorFullName

\noindent Науковий керівник дисертації \hfill \supervisorFullName

\vspace{1em}
{\small * Консультантом не може бути зазначено наукового керівника.}

\clearpage
titlepages/master-title.tex · 3 KB
% titlepages/master-title.tex -- титульна сторінка магістерської
% дисертації (Додаток 6 до "Рекомендацій до структури та змісту
% кваліфікаційних робіт здобувачів ступеня бакалавра та магістра",
% КПІ ім. Ігоря Сікорського, 2022).
%
% Відмінності від бакалаврської (bachelor-title.tex): додається гриф
% "На правах рукопису" з УДК зліва вгорі, керівника називають
% "Науковий керівник", а тип освітньої програми (ОПП чи ОНП) береться
% з config.tex (\programmeType), бо для магістра це не завжди ОПП.
\thispagestyle{empty}

\begin{center}
  Національний технічний університет України\\
  «Київський політехнічний інститут імені Ігоря Сікорського»
\end{center}

\vspace{1em}
\noindent\facultyName\\
\departmentName

\vspace{2em}
\noindent
\begin{minipage}[t]{7.5cm}
  «На правах рукопису»\\
  УДК~\udcCode
\end{minipage}%
\hfill
\begin{minipage}[t]{7.5cm}
  \raggedleft
  ДО ЗАХИСТУ ДОПУЩЕНО\\
  Завідувач кафедри\\
  \hrulefill\ \departmentHeadName\\
  «\hrulefill»\hrulefill~\thesisYear~р.
\end{minipage}

\vspace{2em}
\begin{center}
  Магістерська дисертація\\
  на здобуття ступеня магістра\\
  за \programmeType~програмою «\programmeName»\\
  зі спеціальності \specialtyCode~«\specialtyName»\\
  на тему: «\thesisTitle»
\end{center}

\vspace{2em}
\noindent Виконав(-ла):\\
студент(-ка) \authorCourse~курсу, групи \authorGroup\\
\authorFullName \hfill \hrulefill

\medskip
\noindent Науковий керівник:\\
\supervisorRegalia,\\
\supervisorFullName \hfill \hrulefill

\ifdefempty{\consultantFullName}{}{%
  \medskip
  \noindent Консультант з \consultantChapter:\\
  \consultantRegalia,\\
  \consultantFullName \hfill \hrulefill
}

\medskip
\noindent Рецензент:\\
\reviewerRegalia,\\
\reviewerFullName \hfill \hrulefill

\vspace{2em}
\noindent Засвідчую, що у цій магістерській дисертації немає
запозичень з праць інших авторів без відповідних посилань.\\
Студент (-ка) \hrulefill

\vfill
\begin{center}
  Київ~--~\thesisYear
\end{center}

\clearpage

The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗