summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/bmstu/bmstu.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/bmstu/bmstu.cls')
-rw-r--r--macros/latex/contrib/bmstu/bmstu.cls115
1 files changed, 115 insertions, 0 deletions
diff --git a/macros/latex/contrib/bmstu/bmstu.cls b/macros/latex/contrib/bmstu/bmstu.cls
new file mode 100644
index 0000000000..10f59f876d
--- /dev/null
+++ b/macros/latex/contrib/bmstu/bmstu.cls
@@ -0,0 +1,115 @@
+%% bmstu.cls
+%% Copyright 2022 Mikael Novikov
+%
+% 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 `maintained'.
+%
+% The Current Maintainer of this work is Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesClass{bmstu}[2022/01/24 v1.0.0 BMSTU class]
+
+% Установка базового класса
+\LoadClass[14pt]{extreport}
+
+% Настройка кодировки и языков
+\RequirePackage[T1,T2A]{fontenc}
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[english,main=russian]{babel}
+\RequirePackage{fix-cm}
+
+% Настройка полей
+\RequirePackage[
+ left=30mm,
+ right=10mm, % Является требованием МГТУ, не соответствует ГОСТ 7.32-2017
+ top=20mm,
+ bottom=20mm,
+]{geometry}
+
+% Настройка переносов
+\RequirePackage{microtype}
+\sloppy
+
+% Настройка межстрочного интервала
+\RequirePackage{setspace}
+\onehalfspacing
+
+% Настройка абзацного отступа
+\RequirePackage{indentfirst}
+\setlength{\parindent}{12.5mm}
+
+% Настройка заголовков
+\makeatletter
+\renewcommand\LARGE{\@setfontsize\LARGE{22pt}{20}}
+\renewcommand\Large{\@setfontsize\Large{20pt}{20}}
+\renewcommand\large{\@setfontsize\large{16pt}{20}}
+\makeatother
+\RequirePackage{titlesec}
+\titleformat{\chapter}[block]{\hspace{\parindent}\large\bfseries}{\thechapter}{0.5em}{\large\bfseries\raggedright}
+\titleformat{name=\chapter,numberless}[block]{\hspace{\parindent}}{}{0pt}{\large\bfseries\centering}
+\titleformat{\section}[block]{\hspace{\parindent}\large\bfseries}{\thesection}{0.5em}{\large\bfseries\raggedright}
+\titleformat{\subsection}[block]{\hspace{\parindent}\large\bfseries}{\thesubsection}{0.5em}{\large\bfseries\raggedright}
+\titleformat{\subsubsection}[block]{\hspace{\parindent}\large\bfseries}{\thesubsection}{0.5em}{\large\bfseries\raggedright}
+\titlespacing{\chapter}{12.5mm}{-22pt}{10pt}
+\titlespacing{\section}{12.5mm}{10pt}{10pt}
+\titlespacing{\subsection}{12.5mm}{10pt}{10pt}
+\titlespacing{\subsubsection}{12.5mm}{10pt}{10pt}
+
+% Подключение пакета цветов
+\RequirePackage{xcolor}
+
+\RequirePackage{bmstu-figure}
+\RequirePackage{bmstu-listing}
+
+% Подключение пакетов таблиц
+\RequirePackage{tabularx}
+\RequirePackage{booktabs}
+
+% Настройка подписей
+\RequirePackage[
+ labelsep=endash,
+ figurename=Рисунок,
+ singlelinecheck=false,
+]{caption}
+\captionsetup[figure]{justification=centering}
+
+% Подключение пакетов для альбомной ориентации
+\RequirePackage{lscape}
+\RequirePackage{afterpage}
+
+% Подключение математических пакетов
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+
+% Настройка библиографии
+\RequirePackage[
+ style=gost-numeric,
+ language=auto,
+ autolang=other,
+ sorting=none,
+]{biblatex}
+\RequirePackage{csquotes}
+\DeclareFieldFormat{urldate}{(дата обращения:\addspace\thefield{urlday}\adddot \thefield{urlmonth}\adddot\thefield{urlyear})}
+
+% Подключение пакета гиперссылок
+\RequirePackage[unicode,hidelinks]{hyperref}
+
+% Подключение пакета управляющих конструкций
+\RequirePackage{xifthen}
+
+\RequirePackage{bmstu-title}
+\RequirePackage{bmstu-essay}
+\RequirePackage{bmstu-toc}
+\RequirePackage{bmstu-defabbr}
+\RequirePackage{bmstu-biblio}
+\RequirePackage{bmstu-appendix}