texlive[74108] branches/branch2024.final/Master: omgtudoc-asoiu
commits+karl at tug.org
commits+karl at tug.org
Tue Feb 18 22:15:47 CET 2025
Revision: 74108
https://tug.org/svn/texlive?view=revision&revision=74108
Author: karl
Date: 2025-02-18 22:15:47 +0100 (Tue, 18 Feb 2025)
Log Message:
-----------
omgtudoc-asoiu (branch) (18feb25)
Modified Paths:
--------------
branches/branch2024.final/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
Added Paths:
-----------
branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/
branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/README.md
branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/courseproj.tpt
branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/labreport.tpt
branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/minimal.tpt
branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/omgtudoc-asoiu.pdf
branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/
branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/omgtudoc-asoiu.dtx
branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/omgtudoc-asoiu.ins
branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/
branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/omgtu-gost-numeric.bbx
branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/omgtudoc-asoiu.cls
branches/branch2024.final/Master/tlpkg/tlpsrc/omgtudoc-asoiu.tlpsrc
Added: branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/README.md
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/README.md (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/README.md 2025-02-18 21:15:47 UTC (rev 74108)
@@ -0,0 +1,62 @@
+# otuasoiu class
+
+The otuasoiu class to be used for documents which are prepared
+on the "Automatic systems for information processing and
+control" (ASOIU) of Omsk State Technical University, Omsk,
+Russia. This class is based on article class and requires XeLaTeX
+or LuaLaTeX for its proper working. Formatting complies with the
+instruction issued at January 29, 2024 and GOST 7.32-2017.
+
+Since this class file is created for Russian students who wants
+to use TeX, most of instructions are written in Russian.
+
+To extract omgtudoc-asoiu class files execute this command:
+
+ xetex omgtudoc-asoiu.ins
+
+Then you'll have following files:
+
+- `omgtudoc-asoiu.cls` - class file;
+
+- `labreport.tpt`, `courseproj.tpt`, `minimal.tpt` - document format files;
+
+- `omgtu-gost-numeric.bbx` - biblatex bibliography format.
+
+You should copy these files into `tex/latex/omgtudoc-asoiu` directory.
+
+The otuasoiu class 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.3c or later is part of all distributions of
+LaTeX version 2008-05-04 or later.
+
+# Класс otuasoiu
+
+Класс otuasoiu предназначен для документов,
+подготавливаемых на кафедре «Автоматизированные системы
+обработки информации и управления» Омского государственного
+технического университета. Он основан на классе article и
+для своей работы требует XeTeX или LuaLaTeX. Оформление
+соответствует рабочей инструкции, введённой 29 января 2024 года,
+и ГОСТ 7.32-2017.
+
+Для установки класса необходимо сначала получить все необходимые
+файлы командой:
+
+ xetex omgtudoc-asoiu.ins
+
+После этого вам будут предоставлены файлы:
+
+- `omgtudoc-asoiu.cls` - файл класса;
+
+- `labreport.tpt`, `courseproj.tpt`, `minimal.tpt` - файлы
+форматов документов;
+
+- `omgtu-gost-numeric.bbx` - формат библиографии для biblatex.
+
+Эти файлы необходимо скопировать в папку `tex/latex/omgtudoc-asoiu`,
+которую, скорее всего, нужно будет создать.
\ No newline at end of file
Property changes on: branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/courseproj.tpt
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/courseproj.tpt (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/courseproj.tpt 2025-02-18 21:15:47 UTC (rev 74108)
@@ -0,0 +1,171 @@
+%%
+%% This is file `courseproj.tpt',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% omgtudoc-asoiu.dtx (with options: `courseproj')
+%% Класс omgtudoc-asoiu предназначен для документов,
+%% подготавливаемых на кафедре "Автоматизированные системы
+%% обработки информации и управления" Омского государственного
+%% технического университета. Он основан на классе article и
+%% для своей работы требует XeTeX или LuaLaTeX.
+%%
+%% The omgtudoc-asoiu class is to be used for documents which are
+%% prepared on the "Automated systems of information
+%% processing and control" (ASOIU) of Omsk State Technical
+%% University. This class is based on article class
+%% and requires XeTeX or LuaLaTeX for proper working.
+%%
+%% Copyright (C) 2025 Danila A. Kondratenko
+%%
+%% This file 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.3c or later is part of all distributions of
+%% LaTeX version 2008-05-04 or later.
+\ProvidesFile{courseproj.tpt}
+ [2025-02-18 v1.1a
+ASOIU course project document template for omgtudoc-asoiu]
+\long\def\@titlepage at template{%
+ \begin{center}
+ Министерство науки и высшего образования Российской Федерации
+
+ Федеральное государственное автономное образовательное
+ учреждение высшего образования
+
+ <<Омский государственный технический университет>>
+
+ Кафедра <<Автоматизированные системы обработки информации и
+ управления>>
+ ~\par
+ ~\par
+ ~\par
+ {\bfseries КУРСОВОЙ ПРОЕКТ}\par
+ на тему <<\@courseproj at theme>>\par
+ по дисциплине <<\@courseproj at subject>>\par
+ студента \@student at surname@g\ \@student at name@g\space
+ \@student at fathername@g\ группы \@student at group\par
+ ~\par
+ ~\par
+ {\bfseries Пояснительная записка}\par
+ Шифр проекта КП-02068999-43-\@student at id-ПЗ\par
+ \@student at direction@a\space \@student at direction@id\space
+ \@student at direction@name\par
+ \vfill
+ \@professor at value\hfill \@professor at initials\par
+ ~\par
+ Студент \hfill \@student at initials\par
+ ~\par
+ {\raggedleft К защите:\hfill}
+ \vskip\baselineskip
+ \begin{tabular}{|c|c|c|}
+ \hline
+ \begin{minipage}[t]{5.5cm}
+ \begin{center}
+ \setlength{\parindent}{0em}
+ Выполнение и подготовка к защите, баллы
+ \end{center}
+ \end{minipage} &
+ \begin{minipage}[t]{5cm}
+ \begin{center}
+ Защита КП, баллы
+ \end{center}
+ \end{minipage} &
+ \begin{minipage}[t]{5cm}
+ \begin{center}
+ Итоговый рейтинг, баллы
+ \end{center}
+ \end{minipage} \\
+ \hline
+ ~&~&~ \\ \hline
+ \end{tabular}\par
+ \vskip\baselineskip
+ \end{center}
+ \begin{flushleft}
+ {Проект защищён с оценкой:}\par
+ \end{flushleft}
+ \vfill
+ \begin{center}
+ Омск \@doc at year
+ \setlength{\parindent}{12.5mm}
+ \end{center}
+}
+\gdef\@student at surname@n{\ClassError{omgtudoc-asoiu}{Не указана фамилия
+студента}}
+\gdef\@student at surname@g{\ClassError{omgtudoc-asoiu}{Не указана фамилия
+студента}}
+\gdef\@student at name@n{\ClassError{omgtudoc-asoiu}{Не указано имя
+студента}}
+\gdef\@student at name@g{\ClassError{omgtudoc-asoiu}{Не указано имя
+студента}}
+\gdef\@student at fathername@n{\ClassError{omgtudoc-asoiu}{Не указано отчество
+студента}}
+\gdef\@student at fathername@g{\ClassError{omgtudoc-asoiu}{Не указано отчество
+студента}}
+\ExplSyntaxOn
+\str_new:N \l__otuasoiu_nameinitial_str
+\str_new:N \l__otuasoiu_fathernameinitial_str
+\tl_new:N \l__otuasoiu_shortname_tl
+\newcommand{\studentname}[6]{%
+ \xdef\@student at surname@n{#1}%
+ \xdef\@student at name@n{#2}%
+ \xdef\@student at fathername@n{#3}%
+ \xdef\@student at surname@g{#4}%
+ \xdef\@student at name@g{#5}%
+ \xdef\@student at fathername@g{#6}%
+ \str_set:Ne \l__otuasoiu_nameinitial_str
+ { \str_item:Nn { \@student at name@n } {1} }
+ \str_set:Ne \l__otuasoiu_fathernameinitial_str
+ { \str_item:Nn { \@student at fathername@n } {1} }
+ \tl_set:Nn \l__otuasoiu_shortname_tl {
+ \text_uppercase:n { \str_use:N \l__otuasoiu_nameinitial_str } .~
+ \text_uppercase:n { \str_use:N \l__otuasoiu_fathernameinitial_str } .~
+ \@student at surname@n }
+ \xdef\@student at initials{\tl_use:N \l__otuasoiu_shortname_tl}
+}
+\ExplSyntaxOff
+\gdef\@student at group{\ClassError{omgtudoc-asoiu}{Не указана группа студента}}
+\newcommand{\studentgroup}[1]{\gdef\@student at group{#1}}
+\gdef\@student at id{\ClassError{omgtudoc-asoiu}{Не указан номер зачётной
+книжки/студенческого билета}}
+\newcommand{\studentid}[1]{\gdef\@student at id{#1}}
+\gdef\@student at direction@a{\ClassError{omgtudoc-asoiu}{Не указано
+направление студента}}
+\gdef\@student at direction@id{\ClassError{omgtudoc-asoiu}{Не указано
+направление студента}}
+\gdef\@student at direction@name{\ClassError{omgtudoc-asoiu}{Не указано
+направление студента}}
+\newcommand{\speciality}[3]{%
+ \gdef\@student at direction@a{#1}%
+ \gdef\@student at direction@id{#2}%
+ \gdef\@student at direction@name{#3}%
+}
+\newcommand{\directionIVT}{\speciality{Направление}%
+{09.03.01}{Информатика и вычислительная техника}}
+\newcommand{\directionPIN}{\speciality{Направление}%
+{09.03.04}{Программная инженерия}}
+\newcommand{\directionPIN}{\speciality{Специальность}%
+{09.05.01}{Применение и эксплуатация автоматизированных систем %
+специального назначения}}
+\gdef\@courseproj at subject{\ClassError{omgtudoc-asoiu}{Не указана дисциплина,
+по которой выполнен курсовой проект}}
+\newcommand{\courseprojsubject}[1]{\gdef\@courseproj at subject{#1}}
+\gdef\@courseproj at theme{\ClassError{omgtudoc-asoiu}{Не указана тема курсового
+проекта}}
+\newcommand{\courseprojtheme}[1]{\gdef\@courseproj at theme{#1}}
+\gdef\@professor at value{\ClassError{omgtudoc-asoiu}{Не указан
+преподаватель}}
+\gdef\@professor at initials{\ClassError{omgtudoc-asoiu}{Не указан
+преподаватель}}
+\newcommand{\professorvalue}[1]{\gdef\@professor at value{#1}}
+\newcommand{\professorinitials}[1]{\gdef\@professor at initials{#1}}
+\gdef\@doc at year{\the\year}
+\newcommand{\docyear}[1]{\gdef\@doc at year{#1}}
+\endinput
+%%
+%% End of file `courseproj.tpt'.
Added: branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/labreport.tpt
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/labreport.tpt (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/labreport.tpt 2025-02-18 21:15:47 UTC (rev 74108)
@@ -0,0 +1,146 @@
+%%
+%% This is file `labreport.tpt',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% omgtudoc-asoiu.dtx (with options: `labreport')
+%% Класс omgtudoc-asoiu предназначен для документов,
+%% подготавливаемых на кафедре "Автоматизированные системы
+%% обработки информации и управления" Омского государственного
+%% технического университета. Он основан на классе article и
+%% для своей работы требует XeTeX или LuaLaTeX.
+%%
+%% The omgtudoc-asoiu class is to be used for documents which are
+%% prepared on the "Automated systems of information
+%% processing and control" (ASOIU) of Omsk State Technical
+%% University. This class is based on article class
+%% and requires XeTeX or LuaLaTeX for proper working.
+%%
+%% Copyright (C) 2025 Danila A. Kondratenko
+%%
+%% This file 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.3c or later is part of all distributions of
+%% LaTeX version 2008-05-04 or later.
+\ProvidesFile{labreport.tpt}
+ [2025-02-18 v1.1a
+Laboratory report document template for omgtudoc-asoiu]
+\long\def\@titlepage at template{%
+ \begin{center}%
+ Министерство науки и высшего образования Российской Федерации
+
+ Федеральное государственное автономное образовательное
+ учреждение высшего образования
+
+ <<Омский государственный технический университет>>
+
+ Кафедра <<Автоматизированные системы обработки информации и
+ управления>>
+ ~\par
+ ~\par
+ ~\par
+ \textbf{ОТЧЁТ}\par
+ о лабораторной работе\@laboratory at index\@laboratory at theme
+ по дисциплине
+ <<\@laboratory at subject>>\par
+ студента \@student at surname@g\ \@student at name@g\space
+ \@student at fathername@g\ группы \@student at group\par
+ ~\par
+ ~\par
+ \textbf{Пояснительная записка}\par
+ Шифр проекта ЛР-02068999-43-\@student at id-ПЗ\par
+ \@student at direction@a\ \@student at direction@id\space
+ \@student at direction@name\par
+ \vfill
+ \@professor at value \hfill \@professor at initials\par
+ ~\par
+ Студент \hfill \@student at initials\par
+ \vfill
+ Омск \@doc at year
+ \end{center}
+}
+\gdef\@student at surname@n{\ClassError{omgtudoc-asoiu}{Не указана фамилия
+студента}}
+\gdef\@student at surname@g{\ClassError{omgtudoc-asoiu}{Не указана фамилия
+студента}}
+\gdef\@student at name@n{\ClassError{omgtudoc-asoiu}{Не указано имя
+студента}}
+\gdef\@student at name@g{\ClassError{omgtudoc-asoiu}{Не указано имя
+студента}}
+\gdef\@student at fathername@n{\ClassError{omgtudoc-asoiu}{Не указано отчество
+студента}}
+\gdef\@student at fathername@g{\ClassError{omgtudoc-asoiu}{Не указано отчество
+студента}}
+\ExplSyntaxOn
+\str_new:N \l__otuasoiu_nameinitial_str
+\str_new:N \l__otuasoiu_fathernameinitial_str
+\tl_new:N \l__otuasoiu_shortname_tl
+\newcommand{\studentname}[6]{%
+ \xdef\@student at surname@n{#1}%
+ \xdef\@student at name@n{#2}%
+ \xdef\@student at fathername@n{#3}%
+ \xdef\@student at surname@g{#4}%
+ \xdef\@student at name@g{#5}%
+ \xdef\@student at fathername@g{#6}%
+ \str_set:Ne \l__otuasoiu_nameinitial_str
+ { \str_item:Nn { \@student at name@n } {1} }
+ \str_set:Ne \l__otuasoiu_fathernameinitial_str
+ { \str_item:Nn { \@student at fathername@n } {1} }
+ \tl_set:Nn \l__otuasoiu_shortname_tl {
+ \text_uppercase:n { \str_use:N \l__otuasoiu_nameinitial_str } .~
+ \text_uppercase:n { \str_use:N \l__otuasoiu_fathernameinitial_str } .~
+ \@student at surname@n }
+ \xdef\@student at initials{\tl_use:N \l__otuasoiu_shortname_tl}
+}
+\ExplSyntaxOff
+\gdef\@student at group{\ClassError{omgtudoc-asoiu}{Не указана группа студента}}
+\newcommand{\studentgroup}[1]{\gdef\@student at group{#1}}
+\gdef\@student at id{\ClassError{omgtudoc-asoiu}{Не указан номер зачётной
+книжки/студенческого билета}}
+\newcommand{\studentid}[1]{\gdef\@student at id{#1}}
+\gdef\@student at direction@a{\ClassError{omgtudoc-asoiu}{Не указано
+направление студента}}
+\gdef\@student at direction@id{\ClassError{omgtudoc-asoiu}{Не указано
+направление студента}}
+\gdef\@student at direction@name{\ClassError{omgtudoc-asoiu}{Не указано
+направление студента}}
+\newcommand{\speciality}[3]{%
+ \gdef\@student at direction@a{#1}%
+ \gdef\@student at direction@id{#2}%
+ \gdef\@student at direction@name{#3}%
+}
+\newcommand{\directionIVT}{\speciality{Направление}%
+{09.03.01}{Информатика и вычислительная техника}}
+\newcommand{\directionPIN}{\speciality{Направление}%
+{09.03.04}{Программная инженерия}}
+\newcommand{\directionPIN}{\speciality{Специальность}%
+{09.05.01}{Применение и эксплуатация автоматизированных систем %
+специального назначения}}
+\gdef\@laboratory at index{\ClassWarning{omgtudoc-asoiu}{Не указан номер
+лабораторной работы}}
+\ExplSyntaxOn
+\newcommand{\laboratoryid}[1]{\gdef\@laboratory at index{~№#1~}}
+\ExplSyntaxOff
+\gdef\@laboratory at theme{\ClassWarning{omgtudoc-asoiu}{Не указана тема
+лабораторной работы}\par}
+\newcommand{\laboratorytheme}[1]{\gdef\@laboratory at theme{\par<<#1>>\par}}
+\gdef\@laborartory at subject{\ClassError{omgtudoc-asoiu}{Не указана
+дисциплина, по которой выполнена лабораторная работа}}
+\newcommand{\laboratorysubject}[1]{\gdef\@laboratory at subject{#1}}
+\gdef\@professor at value{\ClassError{omgtudoc-asoiu}{Не указан
+преподаватель}}
+\gdef\@professor at initials{\ClassError{omgtudoc-asoiu}{Не указан
+преподаватель}}
+\newcommand{\professorvalue}[1]{\gdef\@professor at value{#1}}
+\newcommand{\professorinitials}[1]{\gdef\@professor at initials{#1}}
+\gdef\@doc at year{\the\year}
+\newcommand{\docyear}[1]{\gdef\@doc at year{#1}}
+\endinput
+%%
+%% End of file `labreport.tpt'.
Added: branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/minimal.tpt
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/minimal.tpt (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/minimal.tpt 2025-02-18 21:15:47 UTC (rev 74108)
@@ -0,0 +1,39 @@
+%%
+%% This is file `minimal.tpt',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% omgtudoc-asoiu.dtx (with options: `minimal')
+%% Класс omgtudoc-asoiu предназначен для документов,
+%% подготавливаемых на кафедре "Автоматизированные системы
+%% обработки информации и управления" Омского государственного
+%% технического университета. Он основан на классе article и
+%% для своей работы требует XeTeX или LuaLaTeX.
+%%
+%% The omgtudoc-asoiu class is to be used for documents which are
+%% prepared on the "Automated systems of information
+%% processing and control" (ASOIU) of Omsk State Technical
+%% University. This class is based on article class
+%% and requires XeTeX or LuaLaTeX for proper working.
+%%
+%% Copyright (C) 2025 Danila A. Kondratenko
+%%
+%% This file 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.3c or later is part of all distributions of
+%% LaTeX version 2008-05-04 or later.
+\ProvidesFile{minimal.tpt}
+ [2025-02-18 v1.1a
+Minimal document template for omgtudoc-asoiu]
+\ClassWarning{omgtudoc-asoiu}{Minimal document type is selected: %
+ no metadata setting commands are available, title page %
+ won't be created.}
+\endinput
+%%
+%% End of file `minimal.tpt'.
Added: branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/omgtudoc-asoiu.pdf
===================================================================
(Binary files differ)
Index: branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/omgtudoc-asoiu.pdf
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/omgtudoc-asoiu.pdf 2025-02-18 21:10:22 UTC (rev 74107)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/omgtudoc-asoiu.pdf 2025-02-18 21:15:47 UTC (rev 74108)
Property changes on: branches/branch2024.final/Master/texmf-dist/doc/latex/omgtudoc-asoiu/omgtudoc-asoiu.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/omgtudoc-asoiu.dtx
===================================================================
--- branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/omgtudoc-asoiu.dtx (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/omgtudoc-asoiu.dtx 2025-02-18 21:15:47 UTC (rev 74108)
@@ -0,0 +1,1393 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2025 Danila A. Kondratenko
+%
+% This file 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.3c or later is part of all distributions of
+% LaTeX version 2008-05-04 or later.
+%
+% \fi
+% \iffalse
+% \begin{macrocode}
+%<class>\NeedsTeXFormat{LaTeX2e}
+%<class>\ProvidesClass{omgtudoc-asoiu}
+%<labreport>\ProvidesFile{labreport.tpt}
+%<courseproj>\ProvidesFile{courseproj.tpt}
+%<minimal>\ProvidesFile{minimal.tpt}
+%<bibstyle>\ProvidesFile{omgtu-gost-numeric.bbx}
+%<*driver>
+\ProvidesFile{\jobname.drv}
+%</driver>
+ [2025-02-18 v1.1a
+%<class>Class for ASOIU documents]
+%<labreport>Laboratory report document template for omgtudoc-asoiu]
+%<courseproj>ASOIU course project document template for omgtudoc-asoiu]
+%<minimal>Minimal document template for omgtudoc-asoiu]
+%<bibstyle>Modification of biblatex-gost gost-numeric style for omgtudoc-asoiu]
+%<*driver>
+]
+\documentclass{ltxdoc}
+\newcommand*{\rfrac}[2]{{}^{#1}\!/_{#2}}
+\newcommand{\ToDo}[1]{}
+\usepackage{shortvrb}
+\usepackage[T2A]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[russian]{babel}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\SetupDoc{reportchangedates}
+\MakeShortVerb\|
+\GlossaryPrologue{\clearpage\section*{{Таблица изменений}}%
+ \markboth{{Таблица изменений}}{{Таблица изменений}}}
+\begin{document}
+\DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+% ^^A \def\filedate{2025-01-16}\def\fileversion{v1.0}
+% ^^A \def\filedate{2025-01-17}\def\fileversion{v1.0a}
+% ^^A \def\filedate{2025-01-20}\def\fileversion{v1.0b}
+% ^^A \def\filedate{2025-02-04}\def\fileversion{v1.0c}
+% ^^A \def\filedate{2025-02-06}\def\fileversion{v1.0d}
+% ^^A \def\filedate{2025-02-14}\def\fileversion{v1.0e}
+% ^^A \def\filedate{2025-02-16}\def\fileversion{v1.1}
+% ^^A \def\filedate{2025-02-18}\def\fileversion{v1.1a}
+% \GetFileInfo{\jobname.drv}
+%
+% \changes{v1.0}{2025-01-16}{Первый выпуск}
+% \changes{v1.0a}{2025-01-17}{Добавлена нумерация в пределах раздела,
+% счётчики страниц, рисунков, таблиц, уравнений, приложений,
+% источников, исправлен стиль заголовков и оглавления}
+% \changes{v1.0d}{2025-02-06}{Параметры документа вынесены в файлы
+% определения параметра документа}
+% \changes{v1.1a}{2025-02-18}{Изменено название пакета с otuasoiu
+% на omgtudoc-asoiu}
+%
+% \NewDocElement[macrolike=false,toplevel=false,idxtype=option,
+% idxgroup=Параметры класса,printtype=\textit{параметр}]
+% {Option}{option}
+% \RenewDocElement[macrolike=false,toplevel=false,idxtype=env.,
+% idxgroup=Среда,printtype=\textit{среда}]
+% {Env}{environment}
+%
+% \title{\texttt{omgtudoc-asoiu}~--- класс документов кафедры АСОИУ}
+%
+% \author{Данила А. Кондратенко}
+%
+% \date{\filedate}
+%
+% \MaybeStop{^^A
+% \PrintChanges
+% }
+%
+% \maketitle
+%
+% \begin{abstract}
+% Класс \texttt{omgtudoc-asoiu} предназначен для создания отчётов по
+% лабораторным, практическим работам, пояснительных записок по
+% курсовым проектам и выпускным квалификационным работам. Оформление
+% соответствует рабочей инструкции, введённой 29 января 2024 года.
+% \end{abstract}
+%
+% \section{Введение}
+%
+% На кафедре АСОИУ действует стандарт оформления документов, описанный в
+% соответствующей рабочей инструкции. В ней сказано, что все документы,
+% которые делают студенты, магистранты и аспиранты кафедры, должны
+% подчиняться этому стандарту. Проблемой является то, что те, кто хочет
+% делать документы с использованием \LaTeX, испытывают трудности в
+% приведении документов в полное соответствие с этим нормативным
+% документом. Данный класс позволит сократить затраты и в полной мере
+% реализовать первоначальную цель \LaTeX'а~--- отделить содержимое от
+% стилей.
+%
+% Класс |omgtudoc-asoiu| основан на стандартном классе |article|,
+% который сам по себе предоставляет практически все необходимые
+% возможности для создания документов в системе LaTeX. Проблемой его
+% является то, что форматирование этого класса не соответствует нормам
+% оформления ГОСТ 7.32-2017, а именно:
+%
+% \begin{itemize}
+% \item не соответствует шрифт;
+% \item не соответствует размер листа и поля;
+% \item заголовки оформляются неправильно;
+% \item неправильно оформляется абзацный отступ;
+% \end{itemize}
+%
+% И это далеко не полный список проблем с использованием стандартного
+% класса |article|. Обычно эту проблему решают с применением
+% дополнительных пакетов, в которых довольно сложно запутаться, в
+% результате чего на оформление уходит больше времени, чем на написание
+% самого отчёта.
+%
+% \section{Использование}
+%
+% Для того, чтобы использовать класс |omgtudoc-asoiu|, достаточно в преамбуле
+% документа указать |\documentclass{omgtudoc-asoiu}|\relax.
+%
+% \subsection{Дополнительные команды}
+%
+% Класс |omgtudoc-asoiu| вводит следующие команды:
+%
+% \DescribeMacro{\appendix}
+% Заголовок обязательного приложения. Принимает на вход обязательный
+% аргумент \marg{name}, который указывает название приложения.
+%
+% \DescribeMacro{\appendixrec}
+% Заголовок рекомендуемого приложения. Аналогично \cs{appendix}.
+%
+% \DescribeMacro{\appendixhelp}
+% Заголовок справочного приложения. Аналогично \cs{appendix}.
+%
+% \DescribeMacro{\theappendix}
+% Номер приложения.
+%
+% \DescribeMacro{\appendices}
+% Переход в режим приложений. В этом режиме рисунки, таблицы и формулы
+% нумеруются в пределах приложения.
+%
+% \DescribeMacro{\paragraph}
+% Определение именованного пункта.
+%
+% \DescribeMacro{\paragraph*}
+% Определение неименованного нумерованного пункта.
+%
+% \DescribeMacro{\subparagraph}
+% Определение именованного подпункта.
+%
+% \DescribeMacro{\subparagraph*}
+% Определение неименованного нумерованного подпункта.
+%
+% \DescribeMacro{\totalappendices}
+% Количество приложений.
+%
+% \DescribeMacro{\totalfigures}
+% Количество изображений.
+%
+% \DescribeMacro{\totaltables}
+% Количество таблиц.
+%
+% \DescribeMacro{\totalpages}
+% Общее количество страниц.
+%
+% \DescribeMacro{\totalsources}
+% Количество источников.
+%
+% \subsection{Параметры}
+%
+% Кроме того, класс |omgtudoc-asoiu| определяет следующие типы документов:
+%
+% \DescribeOption{courseproj}
+% Курсовой проект.
+%
+% \DescribeOption{labreport}
+% Отчёт о лабораторной работе.
+%
+% \DescribeOption{minimal}
+% Минимальный документ со стандартным форматированием.
+% Титульные листы не предусмотрены.
+%
+% Также существуют дополнительные параметры:
+%
+% \DescribeOption{withinsection}
+% Нумерация таблиц, рисунков, формул в пределах раздела.
+%
+% \MaybeStop{\PrintChanges\PrintIndex}
+%
+% \section{Реализация}
+%
+% \subsection{Размеры бумаги и поля}
+%
+% Начнём с загрузки стандартных параметров класса |article|.
+% Естественно, необходимо указать правильный размер бумаги~--- A4.
+% \begin{macrocode}
+%<*class>
+\LoadClass[a4paper,12pt]{article}
+% \end{macrocode}
+%
+% Далее укажем размер полей при помощи пакета |geometry|: левое поле~---
+% 30 мм, правое~--- 15 мм, верхнее и нижнее~--- по 20 мм.
+% \begin{macrocode}
+\RequirePackage[left=30mm,right=15mm,top=20mm,bottom=20mm]{geometry}
+% \end{macrocode}
+%
+% \subsection{Параметры}
+%
+% Для того, чтобы можно было выбрать подкласс документа, необходимо
+% определить параметры класса.
+%
+% \changes{v1.1}{2025-02-16}{Добавлен тип документов minimal, он
+% установлен по умолчанию}
+%
+% \begin{macrocode}
+\newcommand\@document at type{}
+\def\CurrentOption{}
+\newif\if at within@section
+\@within at sectionfalse
+\DeclareOption{labreport}{\renewcommand\@document at type{labreport}}
+\DeclareOption{courseproj}{\renewcommand\@document at type{courseproj}}
+\DeclareOption{minimal}{\renewcommand\@document at type{minimal}}
+\DeclareOption{withinsection}{\@within at sectiontrue}
+\ExecuteOptions{minimal}
+\ProcessOptions
+\input{\@document at type.tpt}
+% \end{macrocode}
+%
+% \subsection{Языковые настройки}
+%
+% Установим русский язык для создаваемого документа.
+%
+% \begin{macrocode}
+\RequirePackage{polyglossia}
+\setdefaultlanguage[forceheadingpunctuation=false]{russian}
+% \end{macrocode}
+%
+% Далее нужно установить формат подписей к рисункам и таблицам. Подпись
+% состоит из обозначения объекта (таблица или рисунок) и длинного тире
+% между ними.
+%
+% \begin{macrocode}
+\addto\captionsrussian{%
+ \renewcommand\figurename{Рисунок}%
+ \renewcommand\tablename{Таблица}%
+}
+\RequirePackage{caption}
+\DeclareCaptionLabelSeparator{emdash}{~---~}
+\captionsetup[figure]{labelsep=emdash,justification=centerlast}
+\captionsetup[table]{labelsep=emdash,justification=justified,singlelinecheck=false}
+% \end{macrocode}
+%
+% \subsection{Общее форматирование текста}
+%
+% Укажем шрифт Tempora, который похож на Times New Roman, для обычного
+% текста, и шрифт из пакета \texttt{newtxmath}.
+%
+% \changes{v1.0e}{2025-02-14}{Исправлены проблемы с лигатурами \TeX\ и определением
+% кириллицы в шрифтах: шрифты заменены на Tempora и newtxmath}
+%
+% \begin{macrocode}
+\renewcommand*{\rmdefault}{minntx}
+\RequirePackage[]{newtxmath}
+\RequirePackage{tempora}
+\RequirePackage[no-math]{fontspec}
+\setmainfont{tempora}
+% \end{macrocode}
+%
+% Установим шрифт в 14 пт и прочие соответствующие шрифты.
+%
+% \changes{v1.0b}{2025-01-20}{Исправлены настройки шрифтов}
+%
+% \begin{macrocode}
+\renewcommand\normalsize{\@setfontsize\normalsize{14}{16}%
+ \abovedisplayskip 14pt plus 3pt minus 7pt%
+ \abovedisplayshortskip 0pt plus 4pt%
+ \belowdisplayshortskip 7pt plus 4pt minus 3pt%
+ \belowdisplayskip \abovedisplayskip}
+\renewcommand\small{\@setfontsize\small\@xiipt{14}%
+ \abovedisplayskip 12pt plus 3pt minus 7pt%
+ \abovedisplayshortskip 0pt plus 3pt%
+ \belowdisplayshortskip 6pt plus 3pt minus 3pt%
+ \belowdisplayskip \abovedisplayskip}
+\renewcommand\footnotesize{\@setfontsize\footnotesize\@xpt\@xiipt}
+\renewcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+\renewcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\renewcommand\large{\@setfontsize\large\@xviipt{22}}
+\renewcommand\Large{\@setfontsize\Large\@xxpt{25}}
+\renewcommand\LARGE{\@setfontsize\LARGE\@xxvpt{30}}
+\renewcommand\huge{\@setfontsize\huge{30}{35}}
+\renewcommand\Huge{\@setfontsize\Huge{36}{40}}
+\normalsize
+% \end{macrocode}
+%
+% \begin{macro}{\linespread}
+% Установим межстрочный интервал в 130%.
+% \begin{macrocode}
+\linespread{1.3}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\parskip}
+% Дополнительных промежутков между абзацами быть не должно.
+% \begin{macrocode}
+\setlength\parskip{0pt}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\parindent}
+% Установим абзацный отступ в 12,5 мм.
+% \begin{macrocode}
+\setlength\parindent{12.5mm}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps at plain}
+% Зададим стиль страниц по умолчанию (это необходимо, чтобы на всех страницах
+% номер писался одним и тем же шрифтом):
+% \begin{macrocode}
+\def\ps at plain{\let\@mkboth\@gobbletwo
+ \let\@oddhead\@empty\def\@oddfoot{\hfil\rmfamily\thepage
+ \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
+\pagestyle{plain}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Заголовки}
+%
+% Изменим стиль заголовков первых двух уровней. Разделы должны
+% начинаться с новой страницы, сами заголовки от остальных абзацев
+% отличаются не сильно, каждый заголовок раздела начинается с абзацного
+% отступа, за которым идёт номер и название раздела.
+% \begin{macrocode}
+\renewcommand\section{\clearpage\@startsection{section}{1}{\parindent}%
+ {0pt}{1sp}{\normalfont\normalsize\bfseries}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\parindent}%
+ {0pt}{1sp}{\normalfont\normalsize\bfseries}}
+% \end{macrocode}
+%
+% \subsection{Переопределение модели структуры документа}
+%
+% Кафедральная инструкция определяет, что существует четыре уровня
+% дробления разделов:
+%
+% \begin{itemize}
+% \item разделы;
+% \item подразделы;
+% \item пункты;
+% \item подпункты.
+% \end{itemize}
+%
+% \begin{macrocode}
+\setcounter{secnumdepth}{4}
+% \end{macrocode}
+%
+% Определим команды \cs{paragraph} и \cs{paragraph*},
+% \cs{subparagraph} и \cs{subparagraph*}.
+%
+% \begin{macro}{\paragraph}\oarg{tocname}\marg{name}. Записывает пункт в
+% содержание под названием \marg{name} или \oarg{tocname}, если имеется,
+% и выдаёт пункт с названием, выделенным полужирным шрифтом.
+% \begin{macrocode}
+\renewcommand\paragraph{\@startparagraph{paragraph}{3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\paragraph*} Выдаёт неназванный нумерованный пункт.
+% \end{macro}
+%
+% \begin{macro}{\subparagraph}\oarg{tocname}\marg{name}. Выдаёт подпункт
+% с заголовком, выделенным жирным шрифтом.
+% \begin{macrocode}
+\renewcommand\subparagraph{\@startparagraph{subparagraph}{4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subparagraph*} Выдаёт неназванный нумерованный
+% подпункт.
+% \end{macro}
+%
+% Поскольку эти команды имеют много общего, определим общую команду
+% \cs{@startparagraph}:
+%
+% \begin{macro}{\@startparagraph}\marg{name}\marg{level}*\oarg{tocname}\marg{name}.
+% \begin{macrocode}
+\def\@startparagraph#1#2{
+ \if #2>\c at secnumdepth%
+ \else%
+ \refstepcounter{#1}%
+ \fi%
+ \@ifstar{{}\unnamed at paragraph{#1}{#2}}{\@dblarg{\named at paragraph{#1}{#2}}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\named at paragraph}\marg{name}\marg{level}\oarg{tocname}\marg{name}
+% \begin{macrocode}
+\def\named at paragraph#1#2[#3]#4{%
+ \addcontentsline{toc}{#1}{%
+ \protect\numberline{%
+ \csname the#1\endcsname\space}%
+ #3%
+ }%\par
+ \def\otu at partitle{{#4}}%
+ \paragraph at heading{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\unnamed at paragraph}\marg{name}\marg{level}
+% \begin{macrocode}
+\def\unnamed at paragraph#1#2{
+ \let\otu at partitle\@empty%
+ \paragraph at heading{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Теперь нужно будет сделать так, чтобы название пункта/подпункта соединялось
+% со следующим абзацем. Код был заимствован из стандартной поставки \LaTeX
+% и изначально отвечал за печать заголовков со значением отступа после
+% заголовка меньше 0.
+%
+% \begin{macro}{\paragraph at heading}\marg{name}
+% \changes{v1.0d}{2025-02-06}{Исправлено размещение пробела между номером пункта
+% и остальным текстом}
+% \begin{macrocode}
+\def\paragraph at heading#1{%
+ \@nobreakfalse
+ \global\@noskipsectrue
+ \everypar{%
+ \if at noskipsec
+ \global\@noskipsecfalse
+ {\setbox\z@\lastbox}%
+ \clubpenalty\@M
+ \begingroup%
+ \hskip\parindent%
+ \normalfont\normalsize\bfseries
+ \csname the#1\endcsname\,%
+ \ifx\otu at partitle\empty\relax\else\otu at partitle\relax\fi\,%
+ \endgroup
+ \unskip
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi}%
+ \ignorespaces%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Далее переопределим связи между счётчиками уровней.
+%
+% \begin{macrocode}
+\counterwithout{paragraph}{subsubsection}
+\counterwithout{subsubsection}{subsection}
+\counterwithout{subsubsection}{section}
+\counterwithin{paragraph}{subsection}
+% \end{macrocode}
+%
+% Далее определим формат нумерации для всех уровней. Разделы,
+% подразделы, пункты и подпункты нумеруются арабскими цифрами, все цифры
+% объединяются через точки.
+%
+% \begin{macrocode}
+\renewcommand\theparagraph{\thesubsection.\@arabic\c at paragraph}
+\renewcommand\thesubparagraph{\theparagraph.\@arabic\c at subparagraph}
+% \end{macrocode}
+%
+% В стандартном классе \LaTeX{} между пунктами и подпунктами имеется ещё
+% одна степень дробления~--- подподразделы. Её необходимо исключить:
+%
+% \begin{macrocode}
+\let\subsubsection\@@@undefined@@@
+\let\l at subsubsection\@@@undefined@@@
+\let\c at subsubsection\@@@undefined@@@
+% \end{macrocode}
+%
+% \subsection{Содержание}
+%
+% Теперь приступим к форматированию содержания. В \LaTeX за это отвечают
+% команды вида \cs{l@}\meta{level}. Необходимо, чтобы в содержании после
+% заголовков каждого элемента стояло отточие и чтобы соблюдались отступы
+% подразделов и пунктов в 2 и 4 знака соответственно.
+%
+% \begin{macro}{\l at section,\l at subsection,\l at paragraph}
+% \begin{macrocode}
+\renewcommand*\l at section[2]{\@dottedtocline{1}{0em}{1em}{\textbf{#1}}{#2}}
+\renewcommand*\l at subsection{\@dottedtocline{2}{2ex}{2em}}
+\renewcommand*\l at paragraph{\@dottedtocline{3}{4ex}{3em}}
+%</class>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Библиография}
+%
+% Для библиографии будем использовать пакет |biblatex| и
+% |biblatex-gost|.
+%
+% Для начала исправим один изъян в генерации библиографии.
+% Библиографические записи должны начинаться с абзацного отступа и
+% нумероваться. Для того, чтобы это реализовать, необходимо исправить
+% стилевой файл библиографии:
+%
+% \begin{macrocode}
+%<*bibstyle>
+\RequireBibliographyStyle{gost-standard}
+\ExecuteBibliographyOptions{labelnumber,bibisbn,biburl,bibdoi,bibeprint}
+
+\providebool{bbx:subentry}
+
+\DeclareBibliographyOption{subentry}[true]{%
+ \setbool{bbx:subentry}{#1}}
+
+\DeclareFieldFormat{bibentrysetcount}{\mkbibparens{\mknumalph{#1}}}
+\DeclareFieldFormat{labelnumberwidth}{#1\addperiod}
+\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
+
+\defbibenvironment{bibliography}
+ {\list
+ {\printtext[labelnumberwidth]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}}}
+ {\setlength{\labelwidth}{0pt}%
+ \setlength{\leftmargin}{0pt}%
+ \setlength{\labelsep}{0pt}%
+ \setlength{\itemindent}{\parindent}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{0pt}}%
+% \end{macrocode}
+% В этой строке устанавливается формат номера в библиографии. Такая же
+% модификация сделана для короткой записи библиографии (|shorthand|).
+% \begin{macrocode}
+ \renewcommand*{\makelabel}[1]{##1\>}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{\hspace{12.5mm}\hss##1\>}}}
+ {\endlist}
+ {\item}
+
+\DeclareBibliographyDriver{set}{%
+ \entryset
+ {\ifbool{bbx:subentry}
+ {\printfield[bibentrysetcount]{entrysetcount}%
+ \printunit*{\addnbspace}}
+ {}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \finentry}
+%</bibstyle>
+% \end{macrocode}
+%
+% Теперь можно подключать пакет |biblatex|:
+% \begin{macrocode}
+%<*class>
+\RequirePackage[sorting=none,bibstyle=omgtu-gost-numeric,%
+citestyle=gost-numeric]{biblatex}
+% \end{macrocode}
+%
+% \subsection{Заголовки структурных частей документа}
+%
+% Стандарт предполагает следующие структурные части:
+%
+% \begin{itemize}
+% \item содержание;
+% \item введение;
+% \item перечень сокращений и обозначений;
+% \item термины и определения (может быть объединена с предыдущим
+% пунктом под названием <<определения, сокращения и обозначения>>;
+% \item заключение;
+% \item список использованных источников;
+% \item реферат;
+% \item список исполнителей.
+% \end{itemize}
+%
+% Заголовки этих структурных частей размещаются посередине. Реализуем
+% команды для их помещения.
+%
+% Для начала реализуем общую команду для подобного рода заголовков
+% \cs{centered at heading}, которая будет помещать ненумерованный
+% отцентрованный заголовок в текст и в содержание.
+%
+% \begin{macro}{\centered at heading}
+% \changes{v1.0d}{2025-02-06}{Исправлено выравнивание заголовка
+% отцентрованного ненумерованного с помещением в содержание}
+% Заголовок отцентрованный ненумерованный, помещается на уровень раздела
+% в содержание.
+% \begin{macrocode}
+\def\centered at heading#1{%
+ \clearpage%
+ \par%
+ \addcontentsline{toc}{section}{#1}%
+ \begingroup%
+ \centering\normalfont\normalsize\bfseries\MakeUppercase%
+ {\hfill #1 \hfill}
+ \endgroup \par
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\centered at heading@nontoc}
+% \changes{v1.0d}{2025-02-06}{Исправлено выравнивание заголовка
+% отцентрованного ненумерованного без помещения в содержание}
+% Заголовок отцентрованный ненумерованный, в содержание не помещается.
+% \begin{macrocode}
+\def\centered at heading@nontoc#1{%
+ \begingroup%
+ \centering\normalfont\normalsize\bfseries\MakeUppercase%
+ {\hfill #1 \hfill}
+ \endgroup \par
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Далее~--- определим уже сами макросы.
+%
+% \begin{macro}{\preface} Заголовок введения.
+% \begin{macrocode}
+\newcommand{\preface}{\centered at heading{Введение}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\conclusion} Заголовок заключения.
+% \begin{macrocode}
+\newcommand{\conclusion}{\centered at heading{Заключение}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\abbreviations} Заголовок перечня сокращений и
+% обозначений.
+% \begin{macrocode}
+\newcommand{\abbreviations}{\centered at heading{Перечень сокращений и
+обозначений}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\terms} Заголовок списка терминов и определений.
+% \begin{macrocode}
+\newcommand{\terms}{\centered at heading{Термины и определения}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\termsandabbrev} Заголовок списка терминов и
+% сокращений.
+% \begin{macrocode}
+\newcommand{\termsandabbrev}{\centered at heading{Определения,
+сокращения и обозначения}}
+% \end{macrocode}
+% \end{macro}
+%
+% Определим также заголовок содержания. Параметры его находятся в
+% команде \cs{tableofcontents}, которую необходимо переопределить:
+%
+% \changes{v1.0d}{2025-02-06}{Убраны избыточные команды из определения оглавления}
+%
+% \begin{macrocode}
+\renewcommand\tableofcontents{%
+ \centered at heading@nontoc{\contentsname}%
+ \@starttoc{toc}%
+ }
+% \end{macrocode}
+%
+% Определим также заголовок для списка использованных источников:
+% \begin{macro}{otuasoiubibliography}
+% \changes{v1.0d}{2025-02-06}{Убраны избыточные команды из определения
+% заголовка библиографии}
+% Стиль заголовка для списка использованных источников в соответствии с
+% ГОСТ 7.32-2017 и рабочей инструкцией.
+% \begin{macrocode}
+\defbibheading{otuasoiubibliography}[\bibname]{%
+ \centered at heading{#1}}
+\DeclarePrintbibliographyDefaults{heading=otuasoiubibliography}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Формулы}
+%
+% Согласно инструкции, формулы обязательно нумеруются, сама формула
+% помещается по центру, а номер формулы помещается справа. Для того,
+% чтобы добиться такого вида, необходимо использовать пакет |amsmath|.
+%
+% \begin{macrocode}
+\RequirePackage{amsmath}
+% \end{macrocode}
+%
+% Ссылки на формулы указываются в скобках: для этого используется команда
+% \cs{eqref}.
+%
+% \subsection{Нумерация}
+%
+% Нумерация рисунков, таблиц и формул может осуществляться как по всему
+% документу, так и по разделам. Для установки нумерации по разделам
+% применяется параметр |withinsection|.
+%
+% \begin{macrocode}
+\if at within@section
+\numberwithin{equation}{section}
+\counterwithin{table}{section}
+\counterwithin{figure}{section}
+\fi
+% \end{macrocode}
+%
+% \subsection{Счётчики}
+%
+% Несмотря на введение |withinsection|, необходимо считать количество
+% таблиц и рисунков. Тем не менее, при установке счётчиков в 0
+% информация о количестве может потеряться.
+%
+% \begin{macrocode}
+\RequirePackage{totcount}
+\RequirePackage{assoccnt}
+\RequirePackage{xspace}
+% \end{macrocode}
+%
+% \begin{macro}{\totalfigures} Количество рисунков.
+% \begin{macrocode}
+\newtotcounter{@figures}
+\regtotcounter{figure}
+\DeclareAssociatedCounters{figure}{@figures}
+\newcommand\totalfigures{\total{@figures}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\totaltables} Количество таблиц.
+% \begin{macrocode}
+\newtotcounter{@tables}
+\regtotcounter{table}
+\DeclareAssociatedCounters{table}{@tables}
+\newcommand\totaltables{\total{@tables}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\totalappendices} Количество приложений.
+% \begin{macrocode}
+\newtotcounter{@appendices}
+\setcounter{@appendices}{0}
+\DeclareAssociatedCounters{appendix}{@appendices}
+\newcommand\totalappendices{\total{@appendices}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\totalequations} Количество уравнений.
+% \begin{macrocode}
+\newtotcounter{@equations}
+\DeclareAssociatedCounters{equation}{@equations}
+\newcommand\totalequations{\total{@equations}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\totalpages} Количество страниц.
+% \begin{macrocode}
+\regtotcounter{page}
+\newcommand\totalpages{\total{page}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\totalsources} Количество источников.
+% \begin{macrocode}
+\newtotcounter{@sourceref}
+\AtEveryBibitem{\stepcounter{@sourceref}}
+\newcommand\totalsources{\total{@sourceref}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Приложения}
+%
+% Теперь реализуем приложения. Для отделения основного текста от
+% приложений будем использовать команду \cs{appendices}, которая
+% переопределяет некоторые счётчики.
+%
+% Для нумерации приложений будут использоваться заглавные буквы русского
+% алфавита за исключением Ё, З, Й, О, Ч, Ъ, Ы, Ь. З, О и Ч похожи на
+% цифры 3, 0 и 4. Доступ к этим буквам можно будет получить через
+% команду \cs{GostAsbuk}.
+%
+% \begin{macrocode}
+\def\gostasbuk at Alph#1{\ifcase#1\or
+ А\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\ClassError{omgtudoc-asoiu}{Invalid value of counter}\fi
+}
+\def\GostAsbuk#1{\expandafter\gostasbuk at Alph\csname c@#1\endcsname}
+% \end{macrocode}
+%
+% Теперь можно реализовать команду \cs{appendices}, которая переведёт
+% дальнейший документ в режим приложений. В этом режиме в оглавление
+% будут попадать только заголовки самих приложений, но не их
+% подразделов.
+%
+% \begin{macro}{\appendices}
+% \begin{macrocode}
+\newtotcounter{appendix}
+\newcommand\appendices{%
+ \counterwithin{section}{appendix}%
+ \addtocontents{toc}{\setcounter{tocdepth}{0}}%
+ \renewcommand\thesection{\theappendix.\arabic{section}}%
+ \renewcommand\section{\@startsection{section}{1}{\parindent}%
+ {0pt}{1sp}{\normalfont\normalsize\bfseries}}%
+ \renewcommand\theappendix{\GostAsbuk{appendix}}%
+% \end{macrocode}
+%
+% Далее нужно будет переопределить счётчики.
+%
+% \begin{macrocode}
+ \counterwithout{equation}{section}%
+ \counterwithout{figure}{section}%
+ \counterwithout{table}{section}%
+ \numberwithin{equation}{appendix}%
+ \counterwithin{figure}{appendix}%
+ \counterwithin{table}{appendix}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Теперь приложения начинаются с команд вида
+% \cs{appendix}\meta{type}\oarg{tocname}\marg{name}. Существует три типа
+% приложений:
+%
+% \begin{itemize}
+% \item обязательное (команда \cs{appendix});
+% \item рекомендуемое (команда \cs{appendixrec});
+% \item справочное (команда \cs{appendixhelp})
+% \end{itemize}
+%
+% Эти три команды имеют общую структру, поэтому они будут вызывать более
+% общую команду \cs{@startappendix}:
+%
+% \begin{macro}{\@startappendix}\marg{type}\marg{name}
+%
+% Печатает заголовок приложения с типом \meta{type} и названием
+% \meta{name}.
+%
+% \begin{macrocode}
+\def\@startappendix#1#2{
+ \clearpage%
+ \SuspendCounters{@figures}%
+ \SuspendCounters{@tables}%
+ \SuspendCounters{@equations}%
+ \refstepcounter{appendix}%
+ \ResumeSuspendedCounters%
+ \addcontentsline{toc}{appendix}{Приложение \theappendix\space (#1) #2}%
+ \begingroup
+ \centering\normalfont\normalsize\bfseries%
+ ПРИЛОЖЕНИЕ \theappendix{}\\
+ \centering ({#1})\\
+ \centering {\hfill #2 \hfill}
+ \endgroup
+ \par
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\appendix,\appendixhelp,\appendixrec}
+% \begin{macrocode}
+\renewcommand{\appendix}{\@startappendix{обязательное}}
+\newcommand{\appendixhelp}{\@startappendix{справочное}}
+\newcommand{\appendixrec}{\@startappendix{рекомендуемое}}
+% \end{macrocode}
+% \end{macro}
+%
+% Определим также стиль пункта оглавления для приложений.
+%
+% \begin{macrocode}
+\newcommand*\l at appendix[2]{\@dottedtocline{0}{0em}{3em}{\textbf{#1}}{#2}}
+% \end{macrocode}
+%
+% \subsection{Титульные листы} \label{titlepage}
+%
+% Первой страницей любого отчёта является титульный лист, который не
+% нумеруется и содержит все основные данные о работе.
+%
+% \begin{macro}{\maketitle} Создаёт титульный лист.
+%
+% \changes{v1.1}{2025-02-16}{Титульный лист не создаётся, если не определена
+% команда \cs{@titlepage at template}}
+%
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+\renewcommand\maketitle{%
+ \ifcsdef{@titlepage at template}{\@titlepage at template%
+ \thispagestyle{empty}%
+ \newpage}{}
+}
+%</class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@titlepage at template}
+% Команда \cs{@titlepage at template} определяется в одном из файлов с
+% расширением |tpt|, который соответствует переданному параметру.
+%
+% \begin{macrocode}
+%<*labreport>
+\long\def\@titlepage at template{%
+ \begin{center}%
+ Министерство науки и высшего образования Российской Федерации
+
+ Федеральное государственное автономное образовательное
+ учреждение высшего образования
+
+ <<Омский государственный технический университет>>
+
+ Кафедра <<Автоматизированные системы обработки информации и
+ управления>>
+ ~\par
+ ~\par
+ ~\par
+ \textbf{ОТЧЁТ}\par
+ о лабораторной работе\@laboratory at index\@laboratory at theme
+ по дисциплине
+ <<\@laboratory at subject>>\par
+ студента \@student at surname@g\ \@student at name@g\space
+ \@student at fathername@g\ группы \@student at group\par
+ ~\par
+ ~\par
+ \textbf{Пояснительная записка}\par
+ Шифр проекта ЛР-02068999-43-\@student at id-ПЗ\par
+ \@student at direction@a\ \@student at direction@id\space
+ \@student at direction@name\par
+ \vfill
+ \@professor at value \hfill \@professor at initials\par
+ ~\par
+ Студент \hfill \@student at initials\par
+ \vfill
+ Омск \@doc at year
+ \end{center}
+}
+%</labreport>
+%<*courseproj>
+\long\def\@titlepage at template{%
+ \begin{center}
+ Министерство науки и высшего образования Российской Федерации
+
+ Федеральное государственное автономное образовательное
+ учреждение высшего образования
+
+ <<Омский государственный технический университет>>
+
+ Кафедра <<Автоматизированные системы обработки информации и
+ управления>>
+ ~\par
+ ~\par
+ ~\par
+ {\bfseries КУРСОВОЙ ПРОЕКТ}\par
+ на тему <<\@courseproj at theme>>\par
+ по дисциплине <<\@courseproj at subject>>\par
+ студента \@student at surname@g\ \@student at name@g\space
+ \@student at fathername@g\ группы \@student at group\par
+ ~\par
+ ~\par
+ {\bfseries Пояснительная записка}\par
+ Шифр проекта КП-02068999-43-\@student at id-ПЗ\par
+ \@student at direction@a\space \@student at direction@id\space
+ \@student at direction@name\par
+ \vfill
+ \@professor at value\hfill \@professor at initials\par
+ ~\par
+ Студент \hfill \@student at initials\par
+ ~\par
+ {\raggedleft К защите:\hfill}
+ \vskip\baselineskip
+ \begin{tabular}{|c|c|c|}
+ \hline
+ \begin{minipage}[t]{5.5cm}
+ \begin{center}
+ \setlength{\parindent}{0em}
+ Выполнение и подготовка к защите, баллы
+ \end{center}
+ \end{minipage} &
+ \begin{minipage}[t]{5cm}
+ \begin{center}
+ Защита КП, баллы
+ \end{center}
+ \end{minipage} &
+ \begin{minipage}[t]{5cm}
+ \begin{center}
+ Итоговый рейтинг, баллы
+ \end{center}
+ \end{minipage} \\
+ \hline
+ ~&~&~ \\ \hline
+ \end{tabular}\par
+ \vskip\baselineskip
+ \end{center}
+ \begin{flushleft}
+ {Проект защищён с оценкой:}\par
+ \end{flushleft}
+ \vfill
+ \begin{center}
+ Омск \@doc at year
+ \setlength{\parindent}{12.5mm}
+ \end{center}
+}
+%</courseproj>
+% \end{macrocode}
+%
+% Для типа документа |minimal| титульный лист не предусмотрен.
+% \begin{macrocode}
+%<*minimal>
+\ClassWarning{omgtudoc-asoiu}{Minimal document type is selected: %
+ no metadata setting commands are available, title page %
+ won't be created.}
+%</minimal>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Параметры документа}
+%
+% Класс |otuasoiu| определяет следующие общие параметры:
+%
+% \begin{macro}{\studentname}\marg{surnamen}\marg{namen}
+% \marg{fathernamen}\marg{surnameg}\marg{nameg}\marg{fathernameg}.
+%
+% Определяет имя студента в именительном и родительном падежах.
+%
+% \changes{v1.0c}{2025-02-04}{Исправлено получение инициалов студента}
+% \changes{v1.0d}{2025-02-06}{Все параметры студента (ФИО) перемещены
+% ближе к определению \cs{studentname}}
+% \ToDo{вынести получение инициалов в отдельную функцию}
+% \ToDo{реализовать склонение для имён - склонение вынести в отдельный пакет}
+%
+% \begin{macrocode}
+%<*labreport|courseproj>
+\gdef\@student at surname@n{\ClassError{omgtudoc-asoiu}{Не указана фамилия
+студента}}
+\gdef\@student at surname@g{\ClassError{omgtudoc-asoiu}{Не указана фамилия
+студента}}
+\gdef\@student at name@n{\ClassError{omgtudoc-asoiu}{Не указано имя
+студента}}
+\gdef\@student at name@g{\ClassError{omgtudoc-asoiu}{Не указано имя
+студента}}
+\gdef\@student at fathername@n{\ClassError{omgtudoc-asoiu}{Не указано отчество
+студента}}
+\gdef\@student at fathername@g{\ClassError{omgtudoc-asoiu}{Не указано отчество
+студента}}
+\ExplSyntaxOn
+\str_new:N \l__otuasoiu_nameinitial_str
+\str_new:N \l__otuasoiu_fathernameinitial_str
+\tl_new:N \l__otuasoiu_shortname_tl
+\newcommand{\studentname}[6]{%
+ \xdef\@student at surname@n{#1}%
+ \xdef\@student at name@n{#2}%
+ \xdef\@student at fathername@n{#3}%
+ \xdef\@student at surname@g{#4}%
+ \xdef\@student at name@g{#5}%
+ \xdef\@student at fathername@g{#6}%
+ \str_set:Ne \l__otuasoiu_nameinitial_str
+ { \str_item:Nn { \@student at name@n } {1} }
+ \str_set:Ne \l__otuasoiu_fathernameinitial_str
+ { \str_item:Nn { \@student at fathername@n } {1} }
+ \tl_set:Nn \l__otuasoiu_shortname_tl {
+ \text_uppercase:n { \str_use:N \l__otuasoiu_nameinitial_str } .~
+ \text_uppercase:n { \str_use:N \l__otuasoiu_fathernameinitial_str } .~
+ \@student at surname@n }
+ \xdef\@student at initials{\tl_use:N \l__otuasoiu_shortname_tl}
+}
+\ExplSyntaxOff
+%</labreport|courseproj>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\studentgroup}\marg{group}.
+%
+% Определяет группу студента.
+%
+% \begin{macrocode}
+%<*labreport|courseproj>
+\gdef\@student at group{\ClassError{omgtudoc-asoiu}{Не указана группа студента}}
+\newcommand{\studentgroup}[1]{\gdef\@student at group{#1}}
+%</labreport|courseproj>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\studentid}\marg{id}.
+%
+% Определяет номер студента.
+%
+% \begin{macrocode}
+%<*labreport|courseproj>
+\gdef\@student at id{\ClassError{omgtudoc-asoiu}{Не указан номер зачётной
+книжки/студенческого билета}}
+\newcommand{\studentid}[1]{\gdef\@student at id{#1}}
+%</labreport|courseproj>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\speciality}\marg{spec}\marg{id}\marg{name}.
+%
+% Определяет специальность студента. В поле \marg{spec} вписывается обычно или
+% <<Направление>>, или <<Специальность>>.
+%
+% \begin{macrocode}
+%<*labreport|courseproj>
+\gdef\@student at direction@a{\ClassError{omgtudoc-asoiu}{Не указано
+направление студента}}
+\gdef\@student at direction@id{\ClassError{omgtudoc-asoiu}{Не указано
+направление студента}}
+\gdef\@student at direction@name{\ClassError{omgtudoc-asoiu}{Не указано
+направление студента}}
+\newcommand{\speciality}[3]{%
+ \gdef\@student at direction@a{#1}%
+ \gdef\@student at direction@id{#2}%
+ \gdef\@student at direction@name{#3}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.1}{2025-02-16}{Добавление макросов для конкретных значений направления:
+% \cs{directionIVT}, \cs{directionPIN}, \cs{specialityPE}}
+%
+% \begin{macro}{\directionIVT}
+% Задаёт направление 09.03.01 <<Информатика и вычислительная техника>>
+% \begin{macrocode}
+\newcommand{\directionIVT}{\speciality{Направление}%
+ {09.03.01}{Информатика и вычислительная техника}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\directionPIN}
+% Задаёт направление 09.03.04 <<Программная инженерия>>
+% \begin{macrocode}
+\newcommand{\directionPIN}{\speciality{Направление}%
+ {09.03.04}{Программная инженерия}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\specialityPE}
+% Задаёт специальность 09.05.01 <<Применение и эксплуатация автоматизированных
+% систем специального назначения>>.
+% \begin{macrocode}
+\newcommand{\directionPIN}{\speciality{Специальность}%
+ {09.05.01}{Применение и эксплуатация автоматизированных систем %
+ специального назначения}}
+%</labreport|courseproj>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\laboratoryid}\marg{id}.
+%
+% Определяет номер лабораторной работы. Только для типа документа |labreport|.
+%
+% \begin{macrocode}
+%<*labreport>
+\gdef\@laboratory at index{\ClassWarning{omgtudoc-asoiu}{Не указан номер
+лабораторной работы}}
+\ExplSyntaxOn
+\newcommand{\laboratoryid}[1]{\gdef\@laboratory at index{~№#1~}}
+\ExplSyntaxOff
+%</labreport>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\laboratorytheme}{\marg{name}}.
+%
+% Определяет тему лабораторной работы. Только для типа документа |labreport|.
+%
+% \begin{macrocode}
+%<*labreport>
+\gdef\@laboratory at theme{\ClassWarning{omgtudoc-asoiu}{Не указана тема
+лабораторной работы}\par}
+\newcommand{\laboratorytheme}[1]{\gdef\@laboratory at theme{\par<<#1>>\par}}
+%</labreport>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\laboratorysubject}\marg{name}.
+%
+% Определяет дисциплину, по которой выполнена лабораторная работа. Только для
+% типа документа |labreport|.
+%
+% \changes{v1.0e}{2025-02-14}{Исправлена ошибка: непонятный 0 в
+% определении}
+% \begin{macrocode}
+%<*labreport>
+\gdef\@laborartory at subject{\ClassError{omgtudoc-asoiu}{Не указана
+дисциплина, по которой выполнена лабораторная работа}}
+\newcommand{\laboratorysubject}[1]{\gdef\@laboratory at subject{#1}}
+%</labreport>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\courseprojsubject}\marg{name}.
+%
+% Дисциплина, по которой сдаётся курсовой проект. Только для типа документа
+% |courseproj|.
+%
+% \begin{macrocode}
+%<*courseproj>
+\gdef\@courseproj at subject{\ClassError{omgtudoc-asoiu}{Не указана дисциплина,
+по которой выполнен курсовой проект}}
+\newcommand{\courseprojsubject}[1]{\gdef\@courseproj at subject{#1}}
+%</courseproj>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\courseprojtheme}\marg{name}.
+%
+% Тема курсового проекта. Только для типа документа |courseproj|.
+%
+% \begin{macrocode}
+%<*courseproj>
+\gdef\@courseproj at theme{\ClassError{omgtudoc-asoiu}{Не указана тема курсового
+проекта}}
+\newcommand{\courseprojtheme}[1]{\gdef\@courseproj at theme{#1}}
+%</courseproj>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\professorvalue}\marg{value}.
+%
+% Должность и степень преподавателя.
+%
+% \begin{macrocode}
+%<*labreport|courseproj>
+\gdef\@professor at value{\ClassError{omgtudoc-asoiu}{Не указан
+преподаватель}}
+\gdef\@professor at initials{\ClassError{omgtudoc-asoiu}{Не указан
+преподаватель}}
+\newcommand{\professorvalue}[1]{\gdef\@professor at value{#1}}
+%</labreport|courseproj>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\professorinitials}\marg{initials}.
+%
+% Фамилия и инициалы преподавателя.
+%
+% \begin{macrocode}
+%<*labreport|courseproj>
+\newcommand{\professorinitials}[1]{\gdef\@professor at initials{#1}}
+%</labreport|courseproj>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\docyear}\marg{year}
+%
+% Год создания документа. По умолчанию \cs{year}.
+%
+% \begin{macrocode}
+%<*labreport|courseproj>
+\gdef\@doc at year{\the\year}
+\newcommand{\docyear}[1]{\gdef\@doc at year{#1}}
+%</labreport|courseproj>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Перечисления}
+%
+% \changes{v1.0e}{2025-02-14}{Устранение дублирования исходного текста во всех
+% файлах}
+% \changes{v1.1}{2025-02-16}{Отказ от использования пакета enumitem}
+% \textit{Из класса article.} Следующие команды используются, чтобы выставить
+% значения по умолчанию для параметров списка (среды list) (см. мануал \LaTeX\
+% для объяснения значений этих параметров). Начальные установки таковы:
+% для начала правое поле списка \cs{rightmargin}, абзацный отступ
+% внутри списка \cs{listparindent} и отступ элемента \cs{itemindent}
+% устанавливаются в 0~пт. Затем для |K|-го уровня списка вызывается команда
+% \cs{@listK}, где |K| обозначает римскую цифру от 1 до 6 (i, ii, ..., vi).
+% По умолчанию, \cs{@listK} должна устанавливать левое поле списка \cs{leftmargin} в
+% значение \cs{leftmarginK}.
+%
+% \ToDo{сделать настройку для дополнительных отступов}
+%
+% \begin{macro}{\leftmargini,\leftmarginii,\leftmarginiii,\leftmarginiv,\leftmarginv,\leftmarginvi,\itemindent,\listparindent}
+% В ГОСТ предусмотрено, что элементы списков ведут себя как обычные абзацы:
+% начинаются они с абзацного отступа, затем за ними идёт маркер или номер, а далее
+% сам текст элемента. Никаких отступов от левого края страницы не предусмотрено.
+%
+% \begin{macrocode}
+%<*class>
+\setlength\leftmargini{0pt}
+\setlength\leftmarginii{0pt}
+\setlength\leftmarginiii{0pt}
+\setlength\leftmarginiv{0pt}
+\setlength\leftmarginv{0pt}
+\setlength\leftmarginvi{0pt}
+\setlength\itemindent{\parindent}
+\setlength\listparindent{\parindent}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\labelsep,\labelwidth}
+% Между маркером/номером и текстом элемента списка стоит пробел, сам маркер/номер
+% должен иметь естественную ширину.
+%
+% Обычно размер пробела составляет $\rfrac16$ размера шрифта.
+%
+% \begin{macrocode}
+\setlength\labelwidth{0pt}
+\setlength\labelsep{.16667em}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@listi,\@listii,\@listiii,\@listiv,\@listv,\@listvi}
+% Никаких дополнительных межстрочных отступов не предусмотрено.
+% \begin{macrocode}
+\def\@listI{\leftmargin=\leftmargini
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\let\@listi\@listI
+\def\@listii{\leftmargin=\leftmarginii
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\def\@listiii{\leftmargin=\leftmarginiii
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\def\@listiv{\leftmargin=\leftmarginiv
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\def\@listv{\leftmargin=\leftmarginv
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\def\@listvi{\leftmargin=\leftmarginvi
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\gostasbuk}\oarg{counter}
+% Представляет значение счётчика в виде буквы русского алфавита, за
+% исключением ё, з, й, о, ч, ъ, ы, ь.
+% \begin{macrocode}
+\def\gostasbuk at alph#1{\ifcase#1\or
+ а\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\ClassError{omgtudoc-asoiu}{Invalid value of counter}\fi
+}
+\def\gostasbuk#1{\expandafter\gostasbuk at alph\csname c@#1\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% Далее определим перечисления, пункты которых начинаются по стандарту.
+%
+% \begin{macrocode}
+\renewcommand\labelitemi{--- }
+\renewcommand\labelitemii{--- }
+\renewcommand\labelitemiii{--- }
+\renewcommand\labelitemiv{--- }
+\renewcommand\labelenumi{\gostasbuk{enumi}) }
+\renewcommand\labelenumii{\gostasbuk{enumii}) }
+\renewcommand\labelenumiii{\gostasbuk{enumiii}) }
+\renewcommand\labelenumiv{\gostasbuk{enumiv}) }
+%</class>
+% \end{macrocode}
+%
+% \Finale
+\endinput
+% vi: ts=2 sw=2 expandtab tw=72 formatoptions+=t linebreak
Property changes on: branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/omgtudoc-asoiu.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/omgtudoc-asoiu.ins
===================================================================
--- branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/omgtudoc-asoiu.ins (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/source/latex/omgtudoc-asoiu/omgtudoc-asoiu.ins 2025-02-18 21:15:47 UTC (rev 74108)
@@ -0,0 +1,52 @@
+\input docstrip
+\askforoverwritefalse
+\preamble
+Класс omgtudoc-asoiu предназначен для документов,
+подготавливаемых на кафедре "Автоматизированные системы
+обработки информации и управления" Омского государственного
+технического университета. Он основан на классе article и
+для своей работы требует XeTeX или LuaLaTeX.
+
+The omgtudoc-asoiu class is to be used for documents which are
+prepared on the "Automated systems of information
+processing and control" (ASOIU) of Omsk State Technical
+University. This class is based on article class
+and requires XeTeX or LuaLaTeX for proper working.
+
+Copyright (C) 2025 Danila A. Kondratenko
+
+This file 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.3c or later is part of all distributions of
+LaTeX version 2008-05-04 or later.
+\endpreamble
+\usedir{tex/latex/omgtudoc-asoiu}
+\generate{\file{\jobname.cls}{\from{\jobname.dtx}{class}}
+ \file{omgtu-gost-numeric.bbx}{\from{\jobname.dtx}{bibstyle}}
+ \file{labreport.tpt}{\from{\jobname.dtx}{labreport}}
+ \file{courseproj.tpt}{\from{\jobname.dtx}{courseproj}}
+ \file{minimal.tpt}{\from{\jobname.dtx}{minimal}}}
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following files into a directory searched by TeX}
+\Msg{* (such as tex/latex/omgtudoc-asoiu):}
+\Msg{*}
+\Msg{* \space\space \jobname.cls}
+\Msg{* \space\space omgtu-gost-numeric.bbx}
+\Msg{* \space\space labreport.tpt}
+\Msg{* \space\space courseproj.tpt}
+\Msg{* \space\space minimal.tpt}
+\Msg{*}
+\Msg{* To produce the documentation run the file}
+\Msg{* \space\space \jobname.dtx}
+\Msg{* through pdfLaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+\endbatchfile
Added: branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/omgtu-gost-numeric.bbx
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/omgtu-gost-numeric.bbx (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/omgtu-gost-numeric.bbx 2025-02-18 21:15:47 UTC (rev 74108)
@@ -0,0 +1,86 @@
+%%
+%% This is file `omgtu-gost-numeric.bbx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% omgtudoc-asoiu.dtx (with options: `bibstyle')
+%% Класс omgtudoc-asoiu предназначен для документов,
+%% подготавливаемых на кафедре "Автоматизированные системы
+%% обработки информации и управления" Омского государственного
+%% технического университета. Он основан на классе article и
+%% для своей работы требует XeTeX или LuaLaTeX.
+%%
+%% The omgtudoc-asoiu class is to be used for documents which are
+%% prepared on the "Automated systems of information
+%% processing and control" (ASOIU) of Omsk State Technical
+%% University. This class is based on article class
+%% and requires XeTeX or LuaLaTeX for proper working.
+%%
+%% Copyright (C) 2025 Danila A. Kondratenko
+%%
+%% This file 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.3c or later is part of all distributions of
+%% LaTeX version 2008-05-04 or later.
+\ProvidesFile{omgtu-gost-numeric.bbx}
+ [2025-02-18 v1.1a
+Modification of biblatex-gost gost-numeric style for omgtudoc-asoiu]
+\RequireBibliographyStyle{gost-standard}
+\ExecuteBibliographyOptions{labelnumber,bibisbn,biburl,bibdoi,bibeprint}
+
+\providebool{bbx:subentry}
+
+\DeclareBibliographyOption{subentry}[true]{%
+ \setbool{bbx:subentry}{#1}}
+
+\DeclareFieldFormat{bibentrysetcount}{\mkbibparens{\mknumalph{#1}}}
+\DeclareFieldFormat{labelnumberwidth}{#1\addperiod}
+\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
+
+\defbibenvironment{bibliography}
+ {\list
+ {\printtext[labelnumberwidth]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}}}
+ {\setlength{\labelwidth}{0pt}%
+ \setlength{\leftmargin}{0pt}%
+ \setlength{\labelsep}{0pt}%
+ \setlength{\itemindent}{\parindent}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{0pt}}%
+ \renewcommand*{\makelabel}[1]{##1\>}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{\hspace{12.5mm}\hss##1\>}}}
+ {\endlist}
+ {\item}
+
+\DeclareBibliographyDriver{set}{%
+ \entryset
+ {\ifbool{bbx:subentry}
+ {\printfield[bibentrysetcount]{entrysetcount}%
+ \printunit*{\addnbspace}}
+ {}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \finentry}
+\endinput
+%%
+%% End of file `omgtu-gost-numeric.bbx'.
Added: branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/omgtudoc-asoiu.cls
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/omgtudoc-asoiu.cls (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/omgtudoc-asoiu.cls 2025-02-18 21:15:47 UTC (rev 74108)
@@ -0,0 +1,323 @@
+%%
+%% This is file `omgtudoc-asoiu.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% omgtudoc-asoiu.dtx (with options: `class')
+%% Класс omgtudoc-asoiu предназначен для документов,
+%% подготавливаемых на кафедре "Автоматизированные системы
+%% обработки информации и управления" Омского государственного
+%% технического университета. Он основан на классе article и
+%% для своей работы требует XeTeX или LuaLaTeX.
+%%
+%% The omgtudoc-asoiu class is to be used for documents which are
+%% prepared on the "Automated systems of information
+%% processing and control" (ASOIU) of Omsk State Technical
+%% University. This class is based on article class
+%% and requires XeTeX or LuaLaTeX for proper working.
+%%
+%% Copyright (C) 2025 Danila A. Kondratenko
+%%
+%% This file 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.3c or later is part of all distributions of
+%% LaTeX version 2008-05-04 or later.
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{omgtudoc-asoiu}
+ [2025-02-18 v1.1a
+Class for ASOIU documents]
+\LoadClass[a4paper,12pt]{article}
+\RequirePackage[left=30mm,right=15mm,top=20mm,bottom=20mm]{geometry}
+\newcommand\@document at type{}
+\def\CurrentOption{}
+\newif\if at within@section
+\@within at sectionfalse
+\DeclareOption{labreport}{\renewcommand\@document at type{labreport}}
+\DeclareOption{courseproj}{\renewcommand\@document at type{courseproj}}
+\DeclareOption{minimal}{\renewcommand\@document at type{minimal}}
+\DeclareOption{withinsection}{\@within at sectiontrue}
+\ExecuteOptions{minimal}
+\ProcessOptions
+\input{\@document at type.tpt}
+\RequirePackage{polyglossia}
+\setdefaultlanguage[forceheadingpunctuation=false]{russian}
+\addto\captionsrussian{%
+ \renewcommand\figurename{Рисунок}%
+ \renewcommand\tablename{Таблица}%
+}
+\RequirePackage{caption}
+\DeclareCaptionLabelSeparator{emdash}{~---~}
+\captionsetup[figure]{labelsep=emdash,justification=centerlast}
+\captionsetup[table]{labelsep=emdash,justification=justified,singlelinecheck=false}
+\renewcommand*{\rmdefault}{minntx}
+\RequirePackage[]{newtxmath}
+\RequirePackage{tempora}
+\RequirePackage[no-math]{fontspec}
+\setmainfont{tempora}
+\renewcommand\normalsize{\@setfontsize\normalsize{14}{16}%
+ \abovedisplayskip 14pt plus 3pt minus 7pt%
+ \abovedisplayshortskip 0pt plus 4pt%
+ \belowdisplayshortskip 7pt plus 4pt minus 3pt%
+ \belowdisplayskip \abovedisplayskip}
+\renewcommand\small{\@setfontsize\small\@xiipt{14}%
+ \abovedisplayskip 12pt plus 3pt minus 7pt%
+ \abovedisplayshortskip 0pt plus 3pt%
+ \belowdisplayshortskip 6pt plus 3pt minus 3pt%
+ \belowdisplayskip \abovedisplayskip}
+\renewcommand\footnotesize{\@setfontsize\footnotesize\@xpt\@xiipt}
+\renewcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+\renewcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\renewcommand\large{\@setfontsize\large\@xviipt{22}}
+\renewcommand\Large{\@setfontsize\Large\@xxpt{25}}
+\renewcommand\LARGE{\@setfontsize\LARGE\@xxvpt{30}}
+\renewcommand\huge{\@setfontsize\huge{30}{35}}
+\renewcommand\Huge{\@setfontsize\Huge{36}{40}}
+\normalsize
+\linespread{1.3}
+\setlength\parskip{0pt}
+\setlength\parindent{12.5mm}
+\def\ps at plain{\let\@mkboth\@gobbletwo
+ \let\@oddhead\@empty\def\@oddfoot{\hfil\rmfamily\thepage
+ \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
+\pagestyle{plain}
+\renewcommand\section{\clearpage\@startsection{section}{1}{\parindent}%
+ {0pt}{1sp}{\normalfont\normalsize\bfseries}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\parindent}%
+ {0pt}{1sp}{\normalfont\normalsize\bfseries}}
+\setcounter{secnumdepth}{4}
+\renewcommand\paragraph{\@startparagraph{paragraph}{3}}
+\renewcommand\subparagraph{\@startparagraph{subparagraph}{4}}
+\def\@startparagraph#1#2{
+ \if #2>\c at secnumdepth%
+ \else%
+ \refstepcounter{#1}%
+ \fi%
+ \@ifstar{{}\unnamed at paragraph{#1}{#2}}{\@dblarg{\named at paragraph{#1}{#2}}}%
+}
+\def\named at paragraph#1#2[#3]#4{%
+ \addcontentsline{toc}{#1}{%
+ \protect\numberline{%
+ \csname the#1\endcsname\space}%
+ #3%
+ }%\par
+ \def\otu at partitle{{#4}}%
+ \paragraph at heading{#1}%
+}
+\def\unnamed at paragraph#1#2{
+ \let\otu at partitle\@empty%
+ \paragraph at heading{#1}%
+}
+\def\paragraph at heading#1{%
+ \@nobreakfalse
+ \global\@noskipsectrue
+ \everypar{%
+ \if at noskipsec
+ \global\@noskipsecfalse
+ {\setbox\z@\lastbox}%
+ \clubpenalty\@M
+ \begingroup%
+ \hskip\parindent%
+ \normalfont\normalsize\bfseries
+ \csname the#1\endcsname\,%
+ \ifx\otu at partitle\empty\relax\else\otu at partitle\relax\fi\,%
+ \endgroup
+ \unskip
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi}%
+ \ignorespaces%
+}
+\counterwithout{paragraph}{subsubsection}
+\counterwithout{subsubsection}{subsection}
+\counterwithout{subsubsection}{section}
+\counterwithin{paragraph}{subsection}
+\renewcommand\theparagraph{\thesubsection.\@arabic\c at paragraph}
+\renewcommand\thesubparagraph{\theparagraph.\@arabic\c at subparagraph}
+\let\subsubsection\@@@undefined@@@
+\let\l at subsubsection\@@@undefined@@@
+\let\c at subsubsection\@@@undefined@@@
+\renewcommand*\l at section[2]{\@dottedtocline{1}{0em}{1em}{\textbf{#1}}{#2}}
+\renewcommand*\l at subsection{\@dottedtocline{2}{2ex}{2em}}
+\renewcommand*\l at paragraph{\@dottedtocline{3}{4ex}{3em}}
+\RequirePackage[sorting=none,bibstyle=omgtu-gost-numeric,%
+citestyle=gost-numeric]{biblatex}
+\def\centered at heading#1{%
+ \clearpage%
+ \par%
+ \addcontentsline{toc}{section}{#1}%
+ \begingroup%
+ \centering\normalfont\normalsize\bfseries\MakeUppercase%
+ {\hfill #1 \hfill}
+ \endgroup \par
+}
+\def\centered at heading@nontoc#1{%
+ \begingroup%
+ \centering\normalfont\normalsize\bfseries\MakeUppercase%
+ {\hfill #1 \hfill}
+ \endgroup \par
+}
+\newcommand{\preface}{\centered at heading{Введение}}
+\newcommand{\conclusion}{\centered at heading{Заключение}}
+\newcommand{\abbreviations}{\centered at heading{Перечень сокращений и
+обозначений}}
+\newcommand{\terms}{\centered at heading{Термины и определения}}
+\newcommand{\termsandabbrev}{\centered at heading{Определения,
+сокращения и обозначения}}
+\renewcommand\tableofcontents{%
+ \centered at heading@nontoc{\contentsname}%
+ \@starttoc{toc}%
+ }
+\defbibheading{otuasoiubibliography}[\bibname]{%
+ \centered at heading{#1}}
+\DeclarePrintbibliographyDefaults{heading=otuasoiubibliography}
+\RequirePackage{amsmath}
+\if at within@section
+\numberwithin{equation}{section}
+\counterwithin{table}{section}
+\counterwithin{figure}{section}
+\fi
+\RequirePackage{totcount}
+\RequirePackage{assoccnt}
+\RequirePackage{xspace}
+\newtotcounter{@figures}
+\regtotcounter{figure}
+\DeclareAssociatedCounters{figure}{@figures}
+\newcommand\totalfigures{\total{@figures}\xspace}
+\newtotcounter{@tables}
+\regtotcounter{table}
+\DeclareAssociatedCounters{table}{@tables}
+\newcommand\totaltables{\total{@tables}\xspace}
+\newtotcounter{@appendices}
+\setcounter{@appendices}{0}
+\DeclareAssociatedCounters{appendix}{@appendices}
+\newcommand\totalappendices{\total{@appendices}\xspace}
+\newtotcounter{@equations}
+\DeclareAssociatedCounters{equation}{@equations}
+\newcommand\totalequations{\total{@equations}\xspace}
+\regtotcounter{page}
+\newcommand\totalpages{\total{page}\xspace}
+\newtotcounter{@sourceref}
+\AtEveryBibitem{\stepcounter{@sourceref}}
+\newcommand\totalsources{\total{@sourceref}\xspace}
+\def\gostasbuk at Alph#1{\ifcase#1\or
+ А\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\ClassError{omgtudoc-asoiu}{Invalid value of counter}\fi
+}
+\def\GostAsbuk#1{\expandafter\gostasbuk at Alph\csname c@#1\endcsname}
+\newtotcounter{appendix}
+\newcommand\appendices{%
+ \counterwithin{section}{appendix}%
+ \addtocontents{toc}{\setcounter{tocdepth}{0}}%
+ \renewcommand\thesection{\theappendix.\arabic{section}}%
+ \renewcommand\section{\@startsection{section}{1}{\parindent}%
+ {0pt}{1sp}{\normalfont\normalsize\bfseries}}%
+ \renewcommand\theappendix{\GostAsbuk{appendix}}%
+ \counterwithout{equation}{section}%
+ \counterwithout{figure}{section}%
+ \counterwithout{table}{section}%
+ \numberwithin{equation}{appendix}%
+ \counterwithin{figure}{appendix}%
+ \counterwithin{table}{appendix}
+}
+\def\@startappendix#1#2{
+ \clearpage%
+ \SuspendCounters{@figures}%
+ \SuspendCounters{@tables}%
+ \SuspendCounters{@equations}%
+ \refstepcounter{appendix}%
+ \ResumeSuspendedCounters%
+ \addcontentsline{toc}{appendix}{Приложение \theappendix\space (#1) #2}%
+ \begingroup
+ \centering\normalfont\normalsize\bfseries%
+ ПРИЛОЖЕНИЕ \theappendix{}\\
+ \centering ({#1})\\
+ \centering {\hfill #2 \hfill}
+ \endgroup
+ \par
+}
+\renewcommand{\appendix}{\@startappendix{обязательное}}
+\newcommand{\appendixhelp}{\@startappendix{справочное}}
+\newcommand{\appendixrec}{\@startappendix{рекомендуемое}}
+\newcommand*\l at appendix[2]{\@dottedtocline{0}{0em}{3em}{\textbf{#1}}{#2}}
+\RequirePackage{etoolbox}
+\renewcommand\maketitle{%
+ \ifcsdef{@titlepage at template}{\@titlepage at template%
+ \thispagestyle{empty}%
+ \newpage}{}
+}
+\setlength\leftmargini{0pt}
+\setlength\leftmarginii{0pt}
+\setlength\leftmarginiii{0pt}
+\setlength\leftmarginiv{0pt}
+\setlength\leftmarginv{0pt}
+\setlength\leftmarginvi{0pt}
+\setlength\itemindent{\parindent}
+\setlength\listparindent{\parindent}
+\setlength\labelwidth{0pt}
+\setlength\labelsep{.16667em}
+\def\@listI{\leftmargin=\leftmargini
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\let\@listi\@listI
+\def\@listii{\leftmargin=\leftmarginii
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\def\@listiii{\leftmargin=\leftmarginiii
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\def\@listiv{\leftmargin=\leftmarginiv
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\def\@listv{\leftmargin=\leftmarginv
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\def\@listvi{\leftmargin=\leftmarginvi
+ \itemindent\parindent
+ \listparindent\parindent
+ \itemsep=0pt
+ \parsep=0pt
+ \topsep=0pt}
+\def\gostasbuk at alph#1{\ifcase#1\or
+ а\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\ClassError{omgtudoc-asoiu}{Invalid value of counter}\fi
+}
+\def\gostasbuk#1{\expandafter\gostasbuk at alph\csname c@#1\endcsname}
+\renewcommand\labelitemi{--- }
+\renewcommand\labelitemii{--- }
+\renewcommand\labelitemiii{--- }
+\renewcommand\labelitemiv{--- }
+\renewcommand\labelenumi{\gostasbuk{enumi}) }
+\renewcommand\labelenumii{\gostasbuk{enumii}) }
+\renewcommand\labelenumiii{\gostasbuk{enumiii}) }
+\renewcommand\labelenumiv{\gostasbuk{enumiv}) }
+\endinput
+%%
+%% End of file `omgtudoc-asoiu.cls'.
Property changes on: branches/branch2024.final/Master/texmf-dist/tex/latex/omgtudoc-asoiu/omgtudoc-asoiu.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: branches/branch2024.final/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
===================================================================
--- branches/branch2024.final/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc 2025-02-18 21:10:22 UTC (rev 74107)
+++ branches/branch2024.final/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc 2025-02-18 21:15:47 UTC (rev 74108)
@@ -172,6 +172,7 @@
depend nostarch
depend nrc
depend nxuthesis
+depend omgtudoc-asoiu
depend onrannual
depend opteng
depend oststud
Added: branches/branch2024.final/Master/tlpkg/tlpsrc/omgtudoc-asoiu.tlpsrc
===================================================================
More information about the tex-live-commits
mailing list.