@@ -27,6 +27,8 @@
2727\RequirePackage{enumitem}
2828\RequirePackage{tocloft}
2929\RequirePackage{caption}
30+\RequirePackage{etoolbox}
31+\RequirePackage{iflang}
3032
3133\setcounter{secnumdepth}{4}
3234
@@ -43,13 +45,12 @@
4345
4446
4547\setenumerate[1]{label={\arabic*)}}
46−\setenumerate[2]{label={\asbuk*)}}
47−\setenumerate[3]{label={\roman*)}}
48−
48+\setenumerate[2]{label={--}}
49+\setenumerate[3]{label={\asbuk*)}}
4950
5051\DeclareUnicodeCharacter{306}{{\color{red} \textbf{По всей видимости либо ты откуда-то не очень хорошо скопировал, либо у тебя с вводом что-то не то, потому что буква Й у тебя состоит из двух скаляров юникода. Удали этот Й и напечатай его заново. (Выйди и зайди нормально)} }}
5152
52−\RequirePackage[main=russian,english]{babel}
53+\RequirePackage[russian,english]{babel}
5354
5455\titlelabel{\thetitle.~}
5556
@@ -70,17 +71,17 @@
7071}
7172
7273\geometry{left=20mm, right=10mm, top=25mm, bottom=25mm, headheight=25mm}
73−
74+
7475\DeclareCaptionLabelSeparator{emdash}{ --- }
7576\captionsetup{
76− justification=raggedright,
77+ justification=centering,
7778 singlelinecheck=false,
7879 labelsep=emdash
7980}
8081
81−
82+
8283 %% Header
83−
84+
8485\pagestyle{fancy}
8586\fancyhf{}
8687\fancyhead[C]{
@@ -96,11 +97,11 @@
9697 \begin{tabular}{|p{0.30\linewidth}|p{0.14\linewidth}|p{0.15\linewidth}|p{0.14\linewidth}|p{0.14\linewidth}|}
9798 \hline
9899 & & & & \\ \hline
99− Изм. & Лист & \textnumero~докум. & Подп. & Дата\\
100+ \IfLanguageName{english}{Change}{Изм.} & \IfLanguageName{english}{Page}{Лист} & \IfLanguageName{english}{Document num.}{\textnumero~докум.} & \IfLanguageName{english}{Signature}{Подп.} & \IfLanguageName{english}{Date}{Дата}\\
100101 \hline
101102 \footnotesize{\@documentCode}& & & &\\
102103 \hline
103− Инв. \textnumero~подл. & Подп. и дата & Взам. инв. \textnumero & Инв. \textnumero~дубл.& Подп. и дата \\
104+ \IfLanguageName{english}{inv. num. of orig.}{Инв. \textnumero~подл.} & \IfLanguageName{english}{Sig. and date}{Подп. и дата} & \IfLanguageName{english}{inv. num.}{Взам. инв. \textnumero} & \IfLanguageName{english}{inv. num. of copy}{Инв. \textnumero~дубл.}& \IfLanguageName{english}{Sig. and date}{Подп. и дата} \\
104105 \hline
105106 \end{tabular}
106107 }
@@ -126,15 +127,21 @@
126127 \renewcommand{\@title}{#1}
127128}
128129
129−\newcommand{\@institute}{правительство российской федерации\\
130+\newcommand{\@institute}{
131+ \IfLanguageName{english}
132+ {national research university\\<<higher school of economics>>}
133+ {правительство российской федерации\\
130134 национальный исследовательский университет \\
131− «высшая школа экономики»}
135+ «высшая школа экономики»}}
132136\newcommand{\institute}[1]{
133137 \renewcommand{\@institute}{#1}
134138}
135139
136−\newcommand{\@faculty}{Факультет компьютерных наук\\
137− Департамент программной инженерии}
140+\newcommand{\@faculty}{
141+ \IfLanguageName{english}
142+ {Faculty of Computer Science}
143+ {Факультет компьютерных наук\\
144+ Департамент программной инженерии}}
138145\newcommand{\faculty}[1]{
139146 \renewcommand{\@faculty}{#1}
140147}
@@ -146,9 +153,12 @@
146153 \renewcommand{\@academicTeacherName}{#2}
147154}
148155
149−\newcommand{\@academicSupervisorName}{В. В. Шилов}
150−\newcommand{\@academicSupervisorTitle}{Академический руководитель образовательной программы «Программная инженерия»
151− профессор департамента программной инженерии, канд. техн. наук}
156+\newcommand{\@academicSupervisorName}{\IfLanguageName{english}{V. V. Shilov}{В. В. Шилов}}
157+\newcommand{\@academicSupervisorTitle}{
158+ \IfLanguageName{english}
159+ {Academic supervisor of the <<software engineering>> programme, PhD}
160+ {Академический руководитель образовательной программы «Программная инженерия»
161+ профессор департамента программной инженерии, канд. техн. наук}}
152162\newcommand{\academicSupervisor}[2]{
153163 \renewcommand{\@academicSupervisorTitle}{#1}
154164 \renewcommand{\@academicSupervisorName}{#2}
@@ -176,7 +186,7 @@
176186 \renewcommand{\@year}{#1}
177187}
178188
179−\newcommand{\@city}{Москва}
189+\newcommand{\@city}{\IfLanguageName{english}{Moscow}{Москва}}
180190\newcommand{\city}[1]{
181191 \renewcommand{\@city}{#1}
182192}
@@ -184,11 +194,11 @@
184194\newcommand{\@titleTable}{
185195\reversemarginpar\marginpar{\rotatebox{90}{\begin{tabular}{|p{25mm}|p{35mm}|p{25mm}|p{25mm}|p{35mm}|}
186196 \hline
187− \rule{0mm}{5mm}Инв. \textnumero~подл & Подп. и дата & Взам. инв. \textnumero& Инв. \textnumero~дубл.&Подп. и дата\\
197+ \rule{0mm}{5mm}\IfLanguageName{english}{inv. num. of orig.}{Инв. \textnumero~подл} & \IfLanguageName{english}{Sig. and date}{Подп. и дата} & \IfLanguageName{english}{inv. num}{Взам. инв. \textnumero}& \IfLanguageName{english}{inv. num. of copy}{Инв. \textnumero~дубл.}&\IfLanguageName{english}{Sig. and date}{Подп. и дата}\\
188198 \hline
189199 \rule{0mm}{7mm}& & & & \\
190200 \hline
191−\end{tabular}}}
201+\end{tabular}}}
192202}
193203
194204\titleformat{\subsection}{\normalfont\large\bfseries\raggedright}{\thesubsection.~}{0mm}{}
@@ -210,7 +220,7 @@
210220 \@startAdditions
211221 \stepcounter{section}
212222 \begin{flushright}
213− \Large \textbf{\textsc{приложение \asbuk{section}}}
223+ \Large \textbf{\textsc{\IfLanguageName{english}{appendix}{приложение} \asbuk{section}}}
214224 \end{flushright}
215225 \setcounter{@tempSection}{\arabic{section}}
216226 \setcounter{secnumdepth}{0}
@@ -223,51 +233,51 @@
223233\newcommand{\@LU}{
224234 \begin{center}
225235 \textsc{\textbf{\@institute}}
226− \par\vspace{5mm}
236+ \par\vspace{5mm}
227237 \upshape\mdseries
228238 \@faculty
229239
230− \par\vspace{10mm}
231−
240+ \par\vspace{10mm}
241+
232242 \begin{tabular}[h!]{P{0.45\textwidth} P{0.45\textwidth}}
233−
234− \textit{СОГЛАСОВАНО} & \textsl{УТВЕРЖДАЮ}\\
243+
244+ \textit{\IfLanguageName{english}{COORDINATED}{СОГЛАСОВАНО}} & \textsl{\IfLanguageName{english}{APPROVED}{УТВЕРЖДАЮ}}\\
235245 & \\
236− \@academicTeacherTitle & \@academicSupervisorTitle \\
246+ \@academicTeacherTitle & \@academicSupervisorTitle \\
237247 & \\
238− \underline{\hspace{4cm}} \@academicTeacherName & \underline{\hspace{4cm}} \@academicSupervisorName \\
239− <<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} г. & <<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} г.\\
248+ \underline{\hspace{4cm}} \@academicTeacherName & \underline{\hspace{4cm}} \@academicSupervisorName \\
249+ <<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} \IfLanguageName{english}{}{г.} & <<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} \IfLanguageName{english}{}{г.}\\
240250 \end{tabular}
241251
242−
252+
243253 \vspace{15mm}
244254 {\LARGE{\textsc{\textbf{\MakeLowercase{\@title}}}}}
245−
255+
246256 \vspace{6mm}
247257
248258 \textbf{\@documentTitle}
249−
259+
250260 \vspace{6mm}
251261
252− \textbf{\textsc{Лист Утверждения}}
262+ \textbf{\textsc{\IfLanguageName{english}{Approval Sheet}{Лист Утверждения}}}
253263
254264 \vspace{6mm}
255265
256266 \textbf{\@documentCode{}-ЛУ}
257267
258268 \end{center}
259−
260−
269+
270+
261271 \vfill
262272 \hfill
263273 \begin{tabular}{c}
264− \\
265− Исполнитель: \@authorTitle
266− \\
274+ \\
275+ \IfLanguageName{english}{Author}{Исполнитель}: \@authorTitle
276+ \\
267277 \underline{\hspace{4cm}} \@author
268− \\
269− <<\underline{\hspace{1cm}}>> \underline{\hspace{4cm}} \@year~г.
270− \end{tabular}
278+ \\
279+ <<\underline{\hspace{1cm}}>> \underline{\hspace{4cm}} \@year\IfLanguageName{english}{}{~г.}
280+ \end{tabular}
271281
272282 \@titleTable
273283
@@ -276,7 +286,7 @@
276286 \begin{center}
277287 \@city~\@year
278288 \end{center}
279−
289+
280290 \vspace{-20mm}
281291}
282292
@@ -287,52 +297,52 @@
287297\renewcommand{\maketitle}{
288298 \pagestyle{empty}
289299 \clearpage
290−
300+
291301 \begin{titlepage}
292−
302+
293303 \@LU
294−
304+
295305 \newpage
296−
297− \textbf{\textsc{Утверждён}}
298−
306+
307+ \textbf{\textsc{\IfLanguageName{english}{Approved}{Утверждён}}}
308+
299309 \textbf{\@documentCode{}-ЛУ}
300−
310+
301311 \vspace{40mm}
302−
312+
303313 \begin{center}
304− {\LARGE{\textsc{\textbf{\MakeLowercase{\@title}}}}}
305−
314+ {\LARGE{\textsc{\textbf{\MakeLowercase{\@title}}}}}
315+
306316 \vspace{6mm}
307−
317+
308318 \textbf{\@documentTitle}
309−
319+
310320 \vspace{6mm}
311−
321+
312322 \textbf{\@documentCode}
313−
323+
314324 \vspace{6mm}
315−
316− \textbf{Листов \pageref{LastPage}}
325+
326+ \textbf{\IfLanguageName{english}{\pageref{LastPage} pages}{Листов \pageref{LastPage}}}
317327
318328 \end{center}
319−
329+
320330 \vfill
321−
331+
322332 \@titleTable
323−
333+
324334 \vspace{80mm}
325335
326336 \begin{center}
327337 \@city~\@year
328338 \end{center}
329−
339+
330340 \vspace{-20mm}
331341
332342 \end{titlepage}
333−
343+
334344 \pagestyle{fancy}
335−
345+
336346 \setcounter{page}{2}
337347}
338348
@@ -340,20 +350,20 @@
340350\newcommand{\registrationList}{%
341351 \clearpage
342352 \newpage
343−
353+
344354 \@startAdditions
345−
355+
346356 % \setcounter{secnumdepth}{0}
347− \section*{Лист регистрации изменений}
357+ \section*{\IfLanguageName{english}{Change registration sheet}{Лист регистрации изменений}}
348358 % \setcounter{secnumdepth}{4}
349−
359+
350360 \cfoot{}
351−
361+
352362 \begin{tabular}{|p{0.05\linewidth}|p{0.04\linewidth}|p{0.06\linewidth}|p{0.06\linewidth}|p{0.06\linewidth}|p{0.1\linewidth}|p{0.1\linewidth}|p{0.12\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|}
353−
363+
354364 \hline
355− \multirow{2}{*}{Изм.} & \multicolumn{4}{c|}{Номера листов} & Всего листов в документе & \textnumero{} доку-мента & Входящий \textnumero{} сопрово-дит.~докум. и дата & Под-пись & Дата \\ [5ex] \cline{2-5}
356− & из-ме-нен-ных & заме-нен-ных & но-вых & анну-лиро-ван-ных & & & & & \\[10ex]
365+ \multirow{2}{*}{\IfLanguageName{english}{\shortstack[l]{Cha-\\nge}}{Изм.}} & \multicolumn{4}{c|}{\IfLanguageName{english}{Page number}{Номера листов}} & \IfLanguageName{english}{Total number of pages}{Всего листов в документе} & \IfLanguageName{english}{Document number}{\textnumero{} доку-мента} & \IfLanguageName{english}{Number of accompanying documents and date}{Входящий \textnumero{} сопрово-дит.~докум. и дата} & \IfLanguageName{english}{Sig-na-ture}{Под-пись} & \IfLanguageName{english}{Date}{Дата} \\ [5ex] \cline{2-5}
366+ & \IfLanguageName{english}{Mo-di-fied}{из-ме-нен-ных} & \IfLanguageName{english}{Re-pla-ced}{заме-нен-ных} & \IfLanguageName{english}{Ad-ded}{но-вых} & \IfLanguageName{english}{An-nul-led}{анну-лиро-ван-ных} & & & & & \\[10ex]
357367 \hline
358368 & & & & & & & & & \\[5ex]
359369 \hline
@@ -382,7 +392,7 @@
382392 & & & & & & & & & \\[5ex]
383393 \hline
384394 \end{tabular}
385−
395+
386396 \newpage
387397 \cfoot{
388398 \@foot
@@ -393,10 +403,10 @@
393403%% Code
394404
395405\newcommand{\programmingLanguage}[1]{
396− \lstset{language=#1}
406+ \lstset{language=#1}
397407}
398408
399−%% [#1]: ref id
409+%% [#1]: ref id
400410%% #2: file
401411%% #3: caption
402412\newcommand{\floatCode}[3][]{
@@ -408,7 +418,17 @@
408418}
409419
410420\newcommand{\code}[1]{%
411− \lstinputlisting[frame=single,basicstyle=\footnotesize\ttfamily]{#1}
421+ \lstinputlisting[frame=single,basicstyle=\footnotesize\ttfamily]{#1}
422+}
423+
424+\renewcommand{\code}[2]{%
425+ \lstinputlisting [frame=single, basicstyle=\footnotesize\ttfamily, caption={#2}, captionpos=b] {#1}
426+}
427+
428+\newcommand{\lcode}[1]{
429+ \begin{lstlisting}%
430+#1
431+ \end{lstlisting}%
412432}
413433
414434% [#1]: caption
@@ -445,4 +465,8 @@
445465
446466\titleformat{\section}[block]{\Large\bfseries\filcenter}{\thesection.}{0mm}{~}
447467
468+\newcommand{\sectionsAreChapters}{
469+ \titleformat{\section}[block]{\Large\bfseries\filcenter}{\IfLanguageName{english}{Chapter}{Глава} \thesection.}{0mm}{~}
470+}
471+
448472\newcommand{\sectionbreak}{\clearpage}