From 1e985eca2687062c77b00825eb1a272aadfa2f5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Thu, 7 Nov 2024 14:30:29 +0300 Subject: [PATCH 1/7] Started making new titlepage variant --- tex/latex/bmstu-iu8/BMSTU-IU8.cls | 7 +++ .../bmstu-iu8/styles/IU8-10-titlepage.sty | 45 ++++++++++++++++++- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/tex/latex/bmstu-iu8/BMSTU-IU8.cls b/tex/latex/bmstu-iu8/BMSTU-IU8.cls index 4b9cb5b..12c6a5c 100644 --- a/tex/latex/bmstu-iu8/BMSTU-IU8.cls +++ b/tex/latex/bmstu-iu8/BMSTU-IU8.cls @@ -18,6 +18,13 @@ применяют следующие сокращения и обозначения:} \def\fillTitle{\fillResearchTitle} } +\DeclareOption{practice}{ + \def\termsAndDefinitionsLine{В настоящем отчёте о практике + применяют следующие термины с соответствующими определениями:} + \def\abbreviationsLine{В настоящем отчёте о практике + применяют следующие сокращения и обозначения:} + \def\fillTitle{\fillOrdinaryTitle} +} \DeclareOption{ordinary}{ \def\termsAndDefinitionsLine{В настоящем документе применяют следующие термины с соответствующими определениями:} diff --git a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty index f4c856d..19ec51d 100644 --- a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty +++ b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty @@ -9,7 +9,8 @@ \providecommand{\@faculty}{<<Информатика и системы управления>> (ИУ)} \providecommand{\@department}{<<Информационная безопасность>> (ИУ8)} -% Поля для заполнения для ВКР +% Поля для заполнения для ВКР, +% часть полей используется и в других титульных \def\student#1{\gdef\@student{#1}} \def\@student{\@latex@warning@no@line{No \noexpand\student given}} @@ -56,6 +57,12 @@ \def\supervisorWithDegree#1{\gdef\@supervisorWithDegree{#1}} \def\@supervisorWithDegree{\@latex@warning@no@line{No \noexpand\supervisorWithDegree given}} +% Поля для заполнения титульников по летней практике +\def\departmentSupervisor#1{\gdef\@departmentSupervisor{#1}} +\def\@departmentSupervisor{\@latex@warning@no@line{No \noexpand\departmentSupervisor given}} +\def\prac#1{\gdef\@departmentSupervisor{#1}} +\def\@departmentSupervisor{\@latex@warning@no@line{No \noexpand\departmentSupervisor given}} + % Поля для заполнения "обычных" отчётов \def\discipline#1{\gdef\@discipline{#1}} \def\@discipline{\@latex@warning@no@line{No \noexpand\discipline given}} @@ -241,6 +248,40 @@ \makeUlineStack[3.5cm]{~}{(Подпись, дата)} \hfill\\ } + +\newcommand\fillPracticeTitle{ + + \vfill + + \noindent\begin{center} + \centering + {\bfseries\fontsize{20pt}{25pt}\selectfont Отчёт по \@practiceVariant практике} \\ + \end{center} + + + \vfill + +{\fontsize{12pt}{15pt}\selectfont + Студент: группа \@group, л.д. \@profile \@studentFullName \makeUlineStack[3.5cm]{~}{(Подпись, дата)} + + Руководитель от предприятия: \@supervisor \makeUlineStack[3.5cm]{~}{(Подпись, дата)} + + Руководитель от кафедры: \@departmentSupervisor \makeUlineStack[3.5cm]{~}{(Подпись, дата)} +} + \bigskip + + \bigskip + + \bigskip + + \vfill + \enablescore + + \vfill + + \clearpage +} + \newcommand\fillOrdinaryTitle{ \vfill @@ -256,7 +297,7 @@ \vfill {\fontsize{12pt}{15pt}\selectfont - \reverseFillingBox{Студент \hspace{\widthof{Преподаватель}-\widthof{Студент}}\makeUlineStack[\widthof{\@group}]{\@group}{(Группа)}}{\@student} + \reverseFillingBox{Студент \hspace{\widthof{Преподаватель}-\widthof{Студент}}\makeUlineStack[\widthof{\@group}]{\@group}{(Группа)}}{\@student} \\ \reverseFillingBox{Преподаватель\quad\hspace{\widthof{\@group}}}{\@supervisor} } \bigskip From ee49f363b1bf4e6362b63cee5a3de43555337817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Thu, 7 Nov 2024 17:05:10 +0300 Subject: [PATCH 2/7] Trying to mimic generated report title page --- tex/latex/bmstu-iu8/BMSTU-IU8.cls | 2 +- .../bmstu-iu8/styles/IU8-10-titlepage.sty | 43 +++++++++++++------ 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/tex/latex/bmstu-iu8/BMSTU-IU8.cls b/tex/latex/bmstu-iu8/BMSTU-IU8.cls index 12c6a5c..ee6d7da 100644 --- a/tex/latex/bmstu-iu8/BMSTU-IU8.cls +++ b/tex/latex/bmstu-iu8/BMSTU-IU8.cls @@ -23,7 +23,7 @@ применяют следующие термины с соответствующими определениями:} \def\abbreviationsLine{В настоящем отчёте о практике применяют следующие сокращения и обозначения:} - \def\fillTitle{\fillOrdinaryTitle} + \def\fillTitle{\fillPracticeTitle} } \DeclareOption{ordinary}{ \def\termsAndDefinitionsLine{В настоящем документе diff --git a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty index 19ec51d..6bd7b73 100644 --- a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty +++ b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty @@ -58,10 +58,17 @@ \def\@supervisorWithDegree{\@latex@warning@no@line{No \noexpand\supervisorWithDegree given}} % Поля для заполнения титульников по летней практике +\def\practiceKind#1{\gdef\@practiceKind{#1}} +\def\@practiceKind{\@latex@warning@no@line{No \noexpand\practiceKind given}} + +\def\practiceBase#1{\gdef\@practiceBase{#1}} +\def\@practiceBase{\@latex@warning@no@line{No \noexpand\practiceBase given}} + +\def\practiceType#1{\gdef\@practiceType{#1}} +\def\@practiceType{\@latex@warning@no@line{No \noexpand\practiceType given}} + \def\departmentSupervisor#1{\gdef\@departmentSupervisor{#1}} \def\@departmentSupervisor{\@latex@warning@no@line{No \noexpand\departmentSupervisor given}} -\def\prac#1{\gdef\@departmentSupervisor{#1}} -\def\@departmentSupervisor{\@latex@warning@no@line{No \noexpand\departmentSupervisor given}} % Поля для заполнения "обычных" отчётов \def\discipline#1{\gdef\@discipline{#1}} @@ -255,26 +262,33 @@ \noindent\begin{center} \centering - {\bfseries\fontsize{20pt}{25pt}\selectfont Отчёт по \@practiceVariant практике} \\ + {\bfseries\fontsize{20pt}{25pt}\selectfont ОТЧЁТ~ПО~\@practiceKind~ПРАКТИКЕ} \end{center} + \bigskip + + {\fontsize{12pt}{15pt}\selectfont \noindent + Тип пратики: \@practiceType \\ + Название предприятия: \@practiceBase \\ + } \vfill -{\fontsize{12pt}{15pt}\selectfont - Студент: группа \@group, л.д. \@profile \@studentFullName \makeUlineStack[3.5cm]{~}{(Подпись, дата)} - - Руководитель от предприятия: \@supervisor \makeUlineStack[3.5cm]{~}{(Подпись, дата)} + {\fontsize{12pt}{15pt}\selectfont \noindent + \begin{tabular}{p{0.6\linewidth}c} - Руководитель от кафедры: \@departmentSupervisor \makeUlineStack[3.5cm]{~}{(Подпись, дата)} -} - \bigskip - - \bigskip + Студент: группа \@group, л.д. \@profile &\\ + \@student & \makeUlineStack{~}{(Подпись, дата)} \\ + + Руководитель от предприятия:&\\ + \@supervisor & \makeUlineStack{~}{(Подпись, дата)} \\ + Руководитель от кафедры:&\\ + \@departmentSupervisor & \makeUlineStack{~}{(Подпись, дата)} \\ + \end{tabular} + } - \bigskip - \vfill + \enablescore \vfill @@ -325,6 +339,7 @@ \CompLen{\@economicsConsultant} \CompLen{\@lawsConsultant} \CompLen{\@normController} + \CompLen{\@departmentSupervisor} \thispagestyle{year} \makeBMSTUHeader From cded7530bc05e22333befc3e1a83f8dc157c47ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Thu, 7 Nov 2024 17:18:45 +0300 Subject: [PATCH 3/7] Added ability to disable italic font in footer of a title page --- tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty index 6bd7b73..85cc8ec 100644 --- a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty +++ b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty @@ -84,9 +84,12 @@ \newcommand{\version}[1]{\gdef\@version{Вариант #1}} % Если указан вариант, то определяем команду \providecommand{\@version}{~} % Если не указан вариант, то заменяем на пустоту +\newcommand{\noitalicfooter}{\gdef\@italicfooter{}} +\providecommand{\@italicfooter}{\itshape} + \RequirePackage{fancyhdr} \fancypagestyle{year}{ - \fancyfoot[C]{\itshape Москва, \the\year~г.} + \fancyfoot[C]{\@italicfooter Москва, \the\year~г.} \renewcommand{\headrulewidth}{0pt} \fancyhead{} } @@ -278,12 +281,12 @@ \begin{tabular}{p{0.6\linewidth}c} Студент: группа \@group, л.д. \@profile &\\ - \@student & \makeUlineStack{~}{(Подпись, дата)} \\ + \@student & \makeUlineStack[0.3\linewidth]{~}{(Подпись, дата)} \\ Руководитель от предприятия:&\\ - \@supervisor & \makeUlineStack{~}{(Подпись, дата)} \\ + \@supervisor & \makeUlineStack[0.3\linewidth]{~}{(Подпись, дата)} \\ Руководитель от кафедры:&\\ - \@departmentSupervisor & \makeUlineStack{~}{(Подпись, дата)} \\ + \@departmentSupervisor & \makeUlineStack[0.3\linewidth]{~}{(Подпись, дата)} \\ \end{tabular} } From 8f9654eae74cb2ee3686be06adba37bd1bf2de08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Sun, 10 Nov 2024 23:09:34 +0300 Subject: [PATCH 4/7] Added feature to fully justify faculty or department names --- tex/latex/bmstu-iu8/DEPENDS.txt | 1 + tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/tex/latex/bmstu-iu8/DEPENDS.txt b/tex/latex/bmstu-iu8/DEPENDS.txt index 8176df3..608023f 100644 --- a/tex/latex/bmstu-iu8/DEPENDS.txt +++ b/tex/latex/bmstu-iu8/DEPENDS.txt @@ -36,3 +36,4 @@ ltablex # Here (and below) go some dependencies of dependencies biblatex ifoddpage relsize +ifthen diff --git a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty index 85cc8ec..e067564 100644 --- a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty +++ b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty @@ -2,9 +2,13 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{IU8-10-titlepage}[2024/10/28 v1.5 Титульный лист] + +\newcommand{\@strjustify}[1]{\StrCut{#1}{\\}\csA\csB \StrSubstitute{\csA}{\space}{\hfill\space}\csB} + % Команды для задания факультета и кафедры \newcommand{\faculty}[2]{\gdef\@faculty{<<#1>> (#2)}} \newcommand{\department}[2]{\gdef\@department{<<#1>> (#2)}} + % Дефолтные значения --- забываем, кому это было надо в первую очередь :) \providecommand{\@faculty}{<<Информатика и системы управления>> (ИУ)} \providecommand{\@department}{<<Информационная безопасность>> (ИУ8)} @@ -133,11 +137,12 @@ \noindent\makebox[\linewidth]{\rule{\textwidth}{2pt}} \makebox[\linewidth]{\rule{\textwidth}{1pt}} \end{center} - \begin{flushleft} - \fontsize{12pt}{14pt}\selectfont - ФАКУЛЬТЕТ \tabto{3cm} \@faculty \\ - КАФЕДРА \tabto{3cm} \@department - \end{flushleft} + {\fontsize{12pt}{14pt} \selectfont \noindent + \begin{tabular}{lp{0.7\linewidth}} + ФАКУЛЬТЕТ \tabto{3cm} & \@faculty \\ + КАФЕДРА \tabto{3cm} & \@department + \end{tabular} + } } \newcommand\fillingBox[3][\maxlen]{ From 039a1ec7dbe32278b487274b0235abfe20816841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Wed, 13 Nov 2024 12:37:00 +0300 Subject: [PATCH 5/7] Fix: \strjustify should be accessible in document --- tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty index e067564..9b128da 100644 --- a/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty +++ b/tex/latex/bmstu-iu8/styles/IU8-10-titlepage.sty @@ -3,7 +3,7 @@ \ProvidesPackage{IU8-10-titlepage}[2024/10/28 v1.5 Титульный лист] -\newcommand{\@strjustify}[1]{\StrCut{#1}{\\}\csA\csB \StrSubstitute{\csA}{\space}{\hfill\space}\csB} +\newcommand{\strjustify}[1]{\StrCut{#1}{\\}\csA\csB \StrSubstitute{\csA}{\space}{\hfill\space}\csB} % Команды для задания факультета и кафедры \newcommand{\faculty}[2]{\gdef\@faculty{<<#1>> (#2)}} From c7e917c2aed357633be56a13da67db4c683ebff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Fri, 7 Feb 2025 10:39:59 +0300 Subject: [PATCH 6/7] Added \zerotocindent option --- tex/latex/bmstu-iu8/styles/IU8-13-contents.sty | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tex/latex/bmstu-iu8/styles/IU8-13-contents.sty b/tex/latex/bmstu-iu8/styles/IU8-13-contents.sty index 2f8f4e7..1bc5c5f 100644 --- a/tex/latex/bmstu-iu8/styles/IU8-13-contents.sty +++ b/tex/latex/bmstu-iu8/styles/IU8-13-contents.sty @@ -12,19 +12,29 @@ \@starttoc{toc} } + +% Нулевой отступ в содержании (TestVKR) +\newcommand{\zerotocindent}{\gdef\@tocindentsec{0mm} \gdef\@tocindentsubsec{0mm} \gdef\@tocindentsubsubsec{0mm}} + +% Дефолтные значения +\providecommand{\@tocindentsec}{5mm} +\providecommand{\@tocindentsubsec}{10mm} +\providecommand{\@tocindentsubsubsec}{15mm} + + \renewcommand*\l@section{\@dottedtocline{0}{0mm}{2em}} \renewcommand*\l@structure{\@dottedtocline{0}{0mm}{0em}} % ГОСТ 7.32-2017. Пункт 5.4.1: % Обозначения подразделов приводят после абзацного отступа, % равного двум знакам, относительно обозначения разделов. -\renewcommand*\l@section{\@dottedtocline{1}{5mm}{3em}} -\renewcommand*\l@subsection{\@dottedtocline{1}{10mm}{3em}} +\renewcommand*\l@section{\@dottedtocline{1}{\@tocindentsec}{3em}} +\renewcommand*\l@subsection{\@dottedtocline{1}{\@tocindentsubsec}{3em}} % ГОСТ 7.32-2017. Пункт 5.4.1: % Обозначения пунктов приводят после абзацного отступа, % равного четырем знакам, относительно обозначения разделов. -\renewcommand*\l@subsubsection{\@dottedtocline{2}{15mm}{4em}} +\renewcommand*\l@subsubsection{\@dottedtocline{2}{\@tocindentsubsubsec}{4em}} % Остальное - индуктивно -\renewcommand*\l@paragraph{\@dottedtocline{3}{15mm}{5em}} +\renewcommand*\l@paragraph{\@dottedtocline{3}{\@tocindentsubsubsec}{5em}} \setcounter{secnumdepth}{5} % Глубина заголовков - до пятого уровня From 90bc2bc6430cd9dd16087636547b8bbc3de87eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Sat, 5 Apr 2025 21:26:40 +0300 Subject: [PATCH 7/7] Update documentation --- docs/README.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index a11f7d4..57c647c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -13,6 +13,12 @@ \KOMAoptions{fontsize=14pt} ``` +### Дополнительные макросы + +* `\strjustify{... \\ ...}` -- выравнивание сроки (поля) по ширине +* `\noitalicfooter` -- отключение курсива в нижнем колонтитуле на титульном листе +* `\zerotocindent` -- отключение отступов перед номерами разделов, подразделов и т.д. в содержании + ## Документация к полям на титульных листах В пакете существует 3 класса документов: `diploma` (ВКР), `research` (НИРС) и `ordinary` (простой отчёт a la ГОСТ). Каждый из них помимо общих имеет специфичные поля титульного листа. @@ -49,6 +55,17 @@ * `\supervisorWithDegree{...}` -- должность, ~~регалии~~ и Фамилия И.О. научного руководителя НИРС (пример: `доцент, к.т.н. Иванов И. И.`); * `\supervisor{...}` -- И.О. Фамилия руководителя, который допускает к защите. +##### Поля практики + +* Особенность: `\theme{...}` не используется. +* `\student{...}` -- полные фамилия имя и отчество студента; +* `\profile{...}` -- номер зачётки; +* `\practiceType{...}` -- тип практики; +* `\practiceKind{...}` -- вид практики; +* `\practiceBase{...}` -- база практики; +* `\supervisor{...}` -- полные фамилия имя и отчество руководителя от предприятия; +* `\departmentSupervisor{...}` -- полные фамилия имя и отчество руководителя от кафедры. + ##### Поля титульника класса ordinary * Особенность `\theme{...}`: это тип (заглавие) работы, например "Отчёт о выполнении лабораторной работы", "Домашняя работа" и т.п., после заглавия следует фраза "по дисциплине"; @@ -250,4 +267,4 @@ $$ ``` Файлик написал Fe-Ti (aka Tim Kravchenko) в 2024 году. По всем вопросам обращаться в исходный код. -``` \ No newline at end of file +```