on 64a3a63 help sign in
TechDoc.cls+89−136
since splitsnapshots
unifiedsplit
@@ -1,7 +1,3 @@
1−% creator: ilyakooo0
2−% extra credit: dashared
3−% version: 1.0.4
4−
5\NeedsTeXFormat{LaTeX2e}
1\NeedsTeXFormat{LaTeX2e}
6
2
7\ProvidesClass{TechDoc}
3\ProvidesClass{TechDoc}
@@ -27,8 +23,6 @@
27\RequirePackage{enumitem}
23\RequirePackage{enumitem}
28\RequirePackage{tocloft}
24\RequirePackage{tocloft}
29\RequirePackage{caption}
25\RequirePackage{caption}
30−\RequirePackage{etoolbox}
31−\RequirePackage{iflang}
32
26
33\setcounter{secnumdepth}{4}
27\setcounter{secnumdepth}{4}
34
28
@@ -45,12 +39,13 @@
45
39
46
40
47\setenumerate[1]{label={\arabic*)}}
41\setenumerate[1]{label={\arabic*)}}
48−\setenumerate[2]{label={--}}
42+\setenumerate[2]{label={\asbuk*)}}
49−\setenumerate[3]{label={\asbuk*)}}
43+\setenumerate[3]{label={\roman*)}}
44+
50
45
51−\DeclareUnicodeCharacter{306}{{\color{red} \textbf{По всей видимости либо ты откуда-то не очень хорошо скопировал, либо у тебя с вводом что-то не то, потому что буква Й у тебя состоит из двух скаляров юникода. Удали этот Й и напечатай его заново. (Выйди и зайди нормально)} }}
46+\DeclareUnicodeCharacter{306}{{\color{red} \textbf{По всей видимости либо ты откуда-то не очень хорошо скопировал, либо у тиебя с вводом что-то не то потому что буква Й у тебя состоит из двух скаляров юникода. Удали этот Й и напечатай его заново. (Выйди и зайди норимально)} }}
52
47
53−\RequirePackage[russian,english]{babel}
48+\RequirePackage[main=russian,english]{babel}
54
49
55\titlelabel{\thetitle.~}
50\titlelabel{\thetitle.~}
56
51
@@ -71,17 +66,9 @@
71}
66}
72
67
73\geometry{left=20mm, right=10mm, top=25mm, bottom=25mm, headheight=25mm}
68\geometry{left=20mm, right=10mm, top=25mm, bottom=25mm, headheight=25mm}
74−
69+
75−\DeclareCaptionLabelSeparator{emdash}{ --- }
76−\captionsetup{
77− justification=centering,
78− singlelinecheck=false,
79− labelsep=emdash
80−}
81−
82−
83 %% Header
70 %% Header
84−
71+
85\pagestyle{fancy}
72\pagestyle{fancy}
86\fancyhf{}
73\fancyhf{}
87\fancyhead[C]{
74\fancyhead[C]{
@@ -91,24 +78,20 @@
91}
78}
92\renewcommand\headrulewidth{0pt}
79\renewcommand\headrulewidth{0pt}
93
80
94−\newcommand{\@foot}{
95− \vspace{-7mm}
96− \footnotesize{
97− \begin{tabular}{|p{0.30\linewidth}|p{0.14\linewidth}|p{0.15\linewidth}|p{0.14\linewidth}|p{0.14\linewidth}|}
98− \hline
99− & & & & \\ \hline
100− \IfLanguageName{english}{Change}{Изм.} & \IfLanguageName{english}{Page}{Лист} & \IfLanguageName{english}{Document num.}{\textnumero~докум.} & \IfLanguageName{english}{Signature}{Подп.} & \IfLanguageName{english}{Date}{Дата}\\
101− \hline
102− \footnotesize{\@documentCode}& & & &\\
103− \hline
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}{Подп. и дата} \\
105− \hline
106− \end{tabular}
107− }
108−}
109−
110\cfoot{
81\cfoot{
111−\@foot
82+\vspace{-7mm}
83+\footnotesize{
84+\begin{tabular}{|p{0.30\linewidth}|p{0.14\linewidth}|p{0.15\linewidth}|p{0.14\linewidth}|p{0.14\linewidth}|}
85+ \hline
86+ & & & & \\ \hline
87+ Изм. & Лист & \textnumero~докум. & Подп. & Дата\\
88+ \hline
89+ \footnotesize{\@documentCode}& & & &\\
90+ \hline
91+ Инв. \textnumero~подл. & Подп. и дата & Взам. инв. \textnumero & Инв. \textnumero~дубл.& Подп. и дата \\
92+ \hline
93+ \end{tabular}
94+}
112}
95}
113
96
114\setcounter{page}{2}
97\setcounter{page}{2}
@@ -127,21 +110,15 @@
127 \renewcommand{\@title}{#1}
110 \renewcommand{\@title}{#1}
128}
111}
129
112
130−\newcommand{\@institute}{
131− \IfLanguageName{english}
132− {national research university\\<<higher school of economics>>}
133− {правительство российской федерации\\
113+\newcommand{\@institute}{правительство российской федерации\\
134 национальный исследовательский университет \\
114 национальный исследовательский университет \\
135− «высшая школа экономики»}}
115+ «высшая школа экономики»}
136\newcommand{\institute}[1]{
116\newcommand{\institute}[1]{
137 \renewcommand{\@institute}{#1}
117 \renewcommand{\@institute}{#1}
138}
118}
139
119
140−\newcommand{\@faculty}{
141− \IfLanguageName{english}
142− {Faculty of Computer Science}
143− {Факультет компьютерных наук\\
120+\newcommand{\@faculty}{Факультет компьютерных наук\\
144− Департамент программной инженерии}}
121+ Департамент программной инженерии}
145\newcommand{\faculty}[1]{
122\newcommand{\faculty}[1]{
146 \renewcommand{\@faculty}{#1}
123 \renewcommand{\@faculty}{#1}
147}
124}
@@ -153,12 +130,9 @@
153 \renewcommand{\@academicTeacherName}{#2}
130 \renewcommand{\@academicTeacherName}{#2}
154}
131}
155
132
156−\newcommand{\@academicSupervisorName}{\IfLanguageName{english}{V. V. Shilov}{В. В. Шилов}}
133+\newcommand{\@academicSupervisorName}{В. В. Шилов}
157−\newcommand{\@academicSupervisorTitle}{
158− \IfLanguageName{english}
159− {Academic supervisor of the <<software engineering>> programme, PhD}
160− {Академический руководитель образовательной программы «Программная инженерия»
134+\newcommand{\@academicSupervisorTitle}{Академический руководитель образовательной программы «Программная инженерия»
161− профессор департамента программной инженерии, канд. техн. наук}}
135+ профессор департамента программной инженерии, канд. техн. наук}
162\newcommand{\academicSupervisor}[2]{
136\newcommand{\academicSupervisor}[2]{
163 \renewcommand{\@academicSupervisorTitle}{#1}
137 \renewcommand{\@academicSupervisorTitle}{#1}
164 \renewcommand{\@academicSupervisorName}{#2}
138 \renewcommand{\@academicSupervisorName}{#2}
@@ -186,19 +160,19 @@
186 \renewcommand{\@year}{#1}
160 \renewcommand{\@year}{#1}
187}
161}
188
162
189−\newcommand{\@city}{\IfLanguageName{english}{Moscow}{Москва}}
163+\newcommand{\@city}{Москва}
190\newcommand{\city}[1]{
164\newcommand{\city}[1]{
191 \renewcommand{\@city}{#1}
165 \renewcommand{\@city}{#1}
192}
166}
193
167
194\newcommand{\@titleTable}{
168\newcommand{\@titleTable}{
195−\reversemarginpar\marginpar{\rotatebox{90}{\begin{tabular}{|p{25mm}|p{35mm}|p{25mm}|p{25mm}|p{35mm}|}
169+\reversemarginpar\marginpar{\rotatebox{90}{\begin{tabular}{|l|l|l|l|l|}
196 \hline
170 \hline
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}{Подп. и дата}\\
171+ Инв. \textnumero~подл & Подп. и дата & Взам. инв. \textnumero& Инв. \textnumero~дубл.&Подп. и дата\\
198 \hline
172 \hline
199− \rule{0mm}{7mm}& & & & \\
173+ & & & & \\
200 \hline
174 \hline
201−\end{tabular}}}
175+\end{tabular}}}
202}
176}
203
177
204\titleformat{\subsection}{\normalfont\large\bfseries\raggedright}{\thesubsection.~}{0mm}{}
178\titleformat{\subsection}{\normalfont\large\bfseries\raggedright}{\thesubsection.~}{0mm}{}
@@ -220,11 +194,11 @@
220 \@startAdditions
194 \@startAdditions
221 \stepcounter{section}
195 \stepcounter{section}
222 \begin{flushright}
196 \begin{flushright}
223− \Large \textbf{\textsc{\IfLanguageName{english}{appendix}{приложение} \asbuk{section}}}
197+ \Large \textbf{\textsc{приложение \arabic{section}}}
224 \end{flushright}
198 \end{flushright}
225 \setcounter{@tempSection}{\arabic{section}}
199 \setcounter{@tempSection}{\arabic{section}}
226 \setcounter{secnumdepth}{0}
200 \setcounter{secnumdepth}{0}
227− \section[Приложение \Asbuk{@tempSection}]{#1}
201+ \section[Приложение \arabic{@tempSection}]{#1}
228 \setcounter{secnumdepth}{4}
202 \setcounter{secnumdepth}{4}
229}
203}
230
204
@@ -233,51 +207,51 @@
233\newcommand{\@LU}{
207\newcommand{\@LU}{
234 \begin{center}
208 \begin{center}
235 \textsc{\textbf{\@institute}}
209 \textsc{\textbf{\@institute}}
236− \par\vspace{5mm}
210+ \par\vspace{5mm}
237 \upshape\mdseries
211 \upshape\mdseries
238 \@faculty
212 \@faculty
239
213
240− \par\vspace{10mm}
214+ \par\vspace{10mm}
241−
215+
242 \begin{tabular}[h!]{P{0.45\textwidth} P{0.45\textwidth}}
216 \begin{tabular}[h!]{P{0.45\textwidth} P{0.45\textwidth}}
243−
217+
244− \textit{\IfLanguageName{english}{COORDINATED}{СОГЛАСОВАНО}} & \textsl{\IfLanguageName{english}{APPROVED}{УТВЕРЖДАЮ}}\\
218+ \textit{СОГЛАСОВАНО} & \textsl{УТВЕРЖДАЮ}\\
245 & \\
219 & \\
246− \@academicTeacherTitle & \@academicSupervisorTitle \\
220+ \@academicTeacherTitle & \@academicSupervisorTitle \\
247 & \\
221 & \\
248− \underline{\hspace{4cm}} \@academicTeacherName & \underline{\hspace{4cm}} \@academicSupervisorName \\
222+ \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}{}{г.}\\
223+ <<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} г. & <<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} г.\\
250 \end{tabular}
224 \end{tabular}
251
225
252−
226+
253 \vspace{15mm}
227 \vspace{15mm}
254 {\LARGE{\textsc{\textbf{\MakeLowercase{\@title}}}}}
228 {\LARGE{\textsc{\textbf{\MakeLowercase{\@title}}}}}
255−
229+
256 \vspace{6mm}
230 \vspace{6mm}
257
231
258 \textbf{\@documentTitle}
232 \textbf{\@documentTitle}
259−
233+
260 \vspace{6mm}
234 \vspace{6mm}
261
235
262− \textbf{\textsc{\IfLanguageName{english}{Approval Sheet}{Лист Утверждения}}}
236+ \textbf{\textsc{Лист Утверждения}}
263
237
264 \vspace{6mm}
238 \vspace{6mm}
265
239
266 \textbf{\@documentCode{}-ЛУ}
240 \textbf{\@documentCode{}-ЛУ}
267
241
268 \end{center}
242 \end{center}
269−
243+
270−
244+
271 \vfill
245 \vfill
272 \hfill
246 \hfill
273 \begin{tabular}{c}
247 \begin{tabular}{c}
274− \\
248+ \\
275− \IfLanguageName{english}{Author}{Исполнитель}: \@authorTitle
249+ Исполнитель: \@authorTitle
276− \\
250+ \\
277 \underline{\hspace{4cm}} \@author
251 \underline{\hspace{4cm}} \@author
278− \\
252+ \\
279− <<\underline{\hspace{1cm}}>> \underline{\hspace{4cm}} \@year\IfLanguageName{english}{}{~г.}
253+ <<\underline{\hspace{1cm}}>> \underline{\hspace{4cm}} \@year~г.
280− \end{tabular}
254+ \end{tabular}
281
255
282 \@titleTable
256 \@titleTable
283
257
@@ -286,7 +260,7 @@
286 \begin{center}
260 \begin{center}
287 \@city~\@year
261 \@city~\@year
288 \end{center}
262 \end{center}
289−
263+
290 \vspace{-20mm}
264 \vspace{-20mm}
291}
265}
292
266
@@ -297,52 +271,52 @@
297\renewcommand{\maketitle}{
271\renewcommand{\maketitle}{
298 \pagestyle{empty}
272 \pagestyle{empty}
299 \clearpage
273 \clearpage
300−
274+
301 \begin{titlepage}
275 \begin{titlepage}
302−
276+
303 \@LU
277 \@LU
304−
278+
305 \newpage
279 \newpage
306−
280+
307− \textbf{\textsc{\IfLanguageName{english}{Approved}{Утверждён}}}
281+ \textbf{\textsc{Утверждён}}
308−
282+
309 \textbf{\@documentCode{}-ЛУ}
283 \textbf{\@documentCode{}-ЛУ}
310−
284+
311 \vspace{40mm}
285 \vspace{40mm}
312−
286+
313 \begin{center}
287 \begin{center}
314− {\LARGE{\textsc{\textbf{\MakeLowercase{\@title}}}}}
288+ {\LARGE{\textsc{\textbf{\MakeLowercase{\@title}}}}}
315−
289+
316 \vspace{6mm}
290 \vspace{6mm}
317−
291+
318 \textbf{\@documentTitle}
292 \textbf{\@documentTitle}
319−
293+
320 \vspace{6mm}
294 \vspace{6mm}
321−
295+
322 \textbf{\@documentCode}
296 \textbf{\@documentCode}
323−
297+
324 \vspace{6mm}
298 \vspace{6mm}
325−
299+
326− \textbf{\IfLanguageName{english}{\pageref{LastPage} pages}{Листов \pageref{LastPage}}}
300+ \textbf{Листов \pageref{LastPage}}
327
301
328 \end{center}
302 \end{center}
329−
303+
330 \vfill
304 \vfill
331−
305+
332 \@titleTable
306 \@titleTable
333−
307+
334 \vspace{80mm}
308 \vspace{80mm}
335
309
336 \begin{center}
310 \begin{center}
337 \@city~\@year
311 \@city~\@year
338 \end{center}
312 \end{center}
339−
313+
340 \vspace{-20mm}
314 \vspace{-20mm}
341
315
342 \end{titlepage}
316 \end{titlepage}
343−
317+
344 \pagestyle{fancy}
318 \pagestyle{fancy}
345−
319+
346 \setcounter{page}{2}
320 \setcounter{page}{2}
347}
321}
348
322
@@ -350,20 +324,18 @@
350\newcommand{\registrationList}{%
324\newcommand{\registrationList}{%
351 \clearpage
325 \clearpage
352 \newpage
326 \newpage
353−
327+
354 \@startAdditions
328 \@startAdditions
355−
329+
356− % \setcounter{secnumdepth}{0}
330+ \setcounter{secnumdepth}{0}
357− \section*{\IfLanguageName{english}{Change registration sheet}{Лист регистрации изменений}}
331+ \section{Лист регистрации изменений}
358− % \setcounter{secnumdepth}{4}
332+ \setcounter{secnumdepth}{4}
359−
333+
360− \cfoot{}
361−
362 \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}|}
334 \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}|}
363−
335+
364 \hline
336 \hline
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}
337+ \multirow{2}{*}{Изм.} & \multicolumn{4}{c|}{Номера листов} & Всего листов в документе & \textnumero{} доку-мента & Входящий \textnumero{} сопрово-дит.~докум. и дата & Под-пись & Дата \\ [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]
338+ & из-ме-нен-ных & заме-нен-ных & но-вых & аннул-лиро-ван-ных & & & & & \\[10ex]
367 \hline
339 \hline
368 & & & & & & & & & \\[5ex]
340 & & & & & & & & & \\[5ex]
369 \hline
341 \hline
@@ -392,21 +364,16 @@
392 & & & & & & & & & \\[5ex]
364 & & & & & & & & & \\[5ex]
393 \hline
365 \hline
394 \end{tabular}
366 \end{tabular}
395−
396− \newpage
397− \cfoot{
398− \@foot
399− }
400}
367}
401
368
402
369
403%% Code
370%% Code
404
371
405\newcommand{\programmingLanguage}[1]{
372\newcommand{\programmingLanguage}[1]{
406− \lstset{language=#1}
373+ \lstset{language=#1}
407}
374}
408
375
409−%% [#1]: ref id
376+%% [#1]: ref id
410%% #2: file
377%% #2: file
411%% #3: caption
378%% #3: caption
412\newcommand{\floatCode}[3][]{
379\newcommand{\floatCode}[3][]{
@@ -418,17 +385,7 @@
418}
385}
419
386
420\newcommand{\code}[1]{%
387\newcommand{\code}[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}
388+ \lstinputlisting[frame=single,basicstyle=\footnotesize\ttfamily]{#1}
426−}
427−
428−\newcommand{\lcode}[1]{
429− \begin{lstlisting}%
430−#1
431− \end{lstlisting}%
432}
389}
433
390
434% [#1]: caption
391% [#1]: caption
@@ -465,8 +422,4 @@
465
422
466\titleformat{\section}[block]{\Large\bfseries\filcenter}{\thesection.}{0mm}{~}
423\titleformat{\section}[block]{\Large\bfseries\filcenter}{\thesection.}{0mm}{~}
467
424
468−\newcommand{\sectionsAreChapters}{
469− \titleformat{\section}[block]{\Large\bfseries\filcenter}{\IfLanguageName{english}{Chapter}{Глава} \thesection.}{0mm}{~}
470−}
471−
472\newcommand{\sectionbreak}{\clearpage}
425\newcommand{\sectionbreak}{\clearpage}
example/tz.pdf

Binary file not shown.

example/tz.tex+2−4
@@ -1,8 +1,6 @@
1% creator: ilyakooo0
1% creator: ilyakooo0
2% extra credit: dashared
2% extra credit: dashared
3−% version: 1.0.1
3+% version: 1.0
4−
5−\PassOptionsToPackage{main=russian,english}{babel}
6
4
7\documentclass{../TechDoc}
5\documentclass{../TechDoc}
8
6
@@ -31,7 +29,7 @@
31 \subsection{Требования к интерфейсу}
29 \subsection{Требования к интерфейсу}
32
30
33 \input{includes/interface}
31 \input{includes/interface}
34−
32+
35 \subsection{Требования к формату входных и выходных данных}
33 \subsection{Требования к формату входных и выходных данных}
36
34
37 \subsubsection{Входные данные}
35 \subsubsection{Входные данные}