diff options
Diffstat (limited to 'macros/latex/contrib/bmstu/bmstu-title.sty')
-rw-r--r-- | macros/latex/contrib/bmstu/bmstu-title.sty | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/macros/latex/contrib/bmstu/bmstu-title.sty b/macros/latex/contrib/bmstu/bmstu-title.sty new file mode 100644 index 0000000000..d2dea47245 --- /dev/null +++ b/macros/latex/contrib/bmstu/bmstu-title.sty @@ -0,0 +1,269 @@ +%% bmstu_title.sty +%% Copyright 2023 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. + +% Установка мета-данных выходного файла +\newcommand{\documentmeta}[4] +{ + \hypersetup{ + pdftitle={#1 #2 #3}, + pdfsubject={#4}, + pdfauthor={#2} + } +} + +% Cоздание полей +\RequirePackage[normalem]{ulem} +\RequirePackage{stackengine} +\newcommand{\longunderline}[1] +{ + \uline{#1\hfill\mbox{}} +} +\newcommand{\fixunderline}[3] +{ + $\underset{\text{#3}}{\text{\uline{\stackengine{0pt}{\hspace{#2}}{\text{#1}}{O}{c}{F}{F}{L}}}}$ +} + +% Создание горизонтальной линии +\makeatletter +\newcommand{\vhrulefill}[1] +{ + \leavevmode\leaders\hrule\@height#1\hfill \kern\z@ +} +\makeatother + +% Создание шапки титульной страницы +\newcommand{\titlepageheader}[2] +{ + \begin{wrapfigure}[7]{l}{0.14\linewidth} + \vspace{3.4mm} + \hspace{-8mm} + \includegraphics[width=0.89\linewidth]{bmstu-logo} + \end{wrapfigure} + + { + \singlespacing \small + Министерство науки и высшего образования Российской Федерации \\ + Федеральное государственное бюджетное образовательное учреждение \\ + высшего образования \\ + <<Московский государственный технический университет \\ + имени Н.~Э.~Баумана \\ + (национальный исследовательский университет)>> \\ + (МГТУ им. Н.~Э.~Баумана) \\ + } + + \vspace{-4.2mm} + \vhrulefill{0.9mm} \\ + \vspace{-7mm} + \vhrulefill{0.2mm} \\ + \vspace{2.8mm} + + { + \small + ФАКУЛЬТЕТ \longunderline{<<#1>>} \\ + \vspace{3.3mm} + КАФЕДРА \longunderline{<<#2>>} \\ + } +} + +% Установка заголовков отчета по НИР +\newcommand{\titlepageresearchtitle}[1] +{ + { + \LARGE \bfseries + РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА \\ + } + \vspace{5mm} + { + \Large \itshape + К НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ \\ + \vspace{5mm} + НА ТЕМУ: \\ + <<#1>> \\ + } +} + +% Установка заголовков РПЗ +\newcommand{\titlepagenotetitle}[2] +{ + { + \LARGE \bfseries + РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА \\ + } + \vspace{5mm} + { + \Large \itshape + #1 \\ + \vspace{5mm} + НА ТЕМУ: \\ + <<#2>> \\ + } +} + +% Установка заголовков отчета +\newcommand{\titlepagereporttitle}[4] +{ + \textbf{ОТЧЕТ} \\ + по #1 \\ + \ifthenelse{\isempty{#2}}{}{по курсу <<#2>> \\} + \ifthenelse{\isempty{#3}}{}{на тему: <<#3>> \\} + \ifthenelse{\isempty{#4}}{}{Вариант №~#4 \\} +} + +% Создание поля студента +\RequirePackage{pgffor} + +\newcommand*\titlepagestudentscontent{} + +\newcommand{\maketitlepagestudent}[1] +{ + \foreach \s/\g in {#1} { + \gappto\titlepagestudentscontent{Студент \fixunderline} + \xappto\titlepagestudentscontent{{\g}} + \gappto\titlepagestudentscontent{{25mm}{(Группа)} &} + \gappto\titlepagestudentscontent{\fixunderline{}{40mm}{(Подпись, дата)} \vspace{1.3mm} &} + \gappto\titlepagestudentscontent{\fixunderline} + \xappto\titlepagestudentscontent{{\s}} + \gappto\titlepagestudentscontent{{40mm}{(И.~О.~Фамилия)} \\} + } +} + +% Создание прочих полей +\newcommand*\titlepageotherscontent{} + +\newcommand{\maketitlepageothers}[2] +{ + \foreach \c in {#2} { + \gappto\titlepagestudentscontent{#1 &} + \gappto\titlepagestudentscontent{\fixunderline{}{40mm}{(Подпись, дата)} \vspace{1.3mm} &} + \gappto\titlepagestudentscontent{\fixunderline} + \xappto\titlepagestudentscontent{{\c}} + \gappto\titlepagestudentscontent{{40mm}{(И.~О.~Фамилия)} \\} + } +} + +% Установка исполнителей работы +\newcommand{\titlepageauthors}[5] +{ + { + \renewcommand{\titlepagestudentscontent}{} + \maketitlepagestudent{#1} + + \renewcommand{\titlepageotherscontent}{} + \maketitlepageothers{#2}{#3} + \maketitlepageothers{Консультант}{#4} + \maketitlepageothers{Нормоконтролер}{#5} + + \small + \begin{tabularx}{\textwidth}{@{}>{\hsize=.5\hsize}X>{\hsize=.25\hsize}X>{\hsize=.25\hsize}X@{}} + \titlepagestudentscontent + + \titlepageotherscontent + \end{tabularx} + } +} + +% Создание титульной страницы РПЗ к ВКР +\newcommand{\makethesistitle}[7] +{ + \documentmeta{РПЗ к ВКР}{#4}{}{#3} + + \begin{titlepage} + \centering + + \titlepageheader{#1}{#2} + \vspace{15.8mm} + + \titlepagenotetitle{К ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЕ}{#3} + \vfill + + \titlepageauthors{#4}{Руководитель ВКР}{#5}{#6}{#7} + \vspace{14mm} + + \textit{{\the\year} г.} + \end{titlepage} + + \setcounter{page}{2} +} + +% Создание титульной страницы отчета по НИР +\newcommand{\makeresearchtitle}[6] +{ + \documentmeta{Отчет по НИР}{#4}{}{#3} + + \begin{titlepage} + \centering + + \titlepageheader{#1}{#2} + \vspace{15.8mm} + + \titlepageresearchtitle{#3} + \vfill + + \titlepageauthors{#4}{Руководитель НИР}{#5}{#6}{} + \vspace{14mm} + + \textit{{\the\year} г.} + \end{titlepage} + + \setcounter{page}{2} +} + +% Создание титульной страницы РПЗ к КР +\newcommand{\makecourseworktitle}[6] +{ + \documentmeta{РПЗ к КР}{#4}{}{#3} + + \begin{titlepage} + \centering + + \titlepageheader{#1}{#2} + \vspace{15.8mm} + + \titlepagenotetitle{К КУРСОВОЙ РАБОТЕ}{#3} + \vfill + + \titlepageauthors{#4}{Руководитель курсовой работы}{#5}{#6}{} + \vspace{14mm} + + \textit{{\the\year} г.} + \end{titlepage} + + \setcounter{page}{2} +} + +% Создание титульной страницы отчета +\newcommand{\makereporttitle}[8] +{ + \documentmeta{Отчет}{#7}{по #3 по курсу #4}{#5} + + \begin{titlepage} + \centering + + \titlepageheader{#1}{#2} + \vspace{15.8mm} + + \titlepagereporttitle{#3}{#4}{#5}{#6} + \vfill + + \titlepageauthors{#7}{Преподаватель}{#8}{}{} + \vspace{14mm} + + \textit{{\the\year} г.} + \end{titlepage} + + \setcounter{page}{2} +} |