LaTeX-documentation/styledoc19.sty

522 lines
16 KiB
Plaintext
Raw Permalink Normal View History

2018-08-18 21:32:48 +03:00
%%% Работа с русским языком
\usepackage{cmap} % поиск в PDF
\usepackage{mathtext} % русские буквы в формулах
\usepackage[T2A]{fontenc} % кодировка
\usepackage[utf8]{inputenc} % кодировка исходного текста
\usepackage[english,russian]{babel} % локализация и переносы
\usepackage{subcaption}
\captionsetup{compatibility=false}
2018-08-18 21:32:48 +03:00
%%% Дополнительная работа с математикой
\usepackage{amsmath,amsfonts,amssymb,amsthm,mathtools} % AMS
\usepackage{icomma} % "Умная" запятая: $0,2$ --- число, $0, 2$ --- перечисление
\usepackage{amsthm}
2018-08-18 21:32:48 +03:00
\usepackage{enumitem}
2018-08-18 21:32:48 +03:00
%% Номера формул
%\mathtoolsset{showonlyrefs=true} % Показывать номера только у тех формул, на которые есть \eqref{} в тексте.
2018-08-18 21:32:48 +03:00
%\usepackage{leqno} % Нумерация формул слева
% for tables added 12.11.18
%\usepackage[format=simple,labelsep=space,tableposition=below]{caption}
\usepackage{float} % for H and HT options
\usepackage[section]{placeins}
\usepackage{caption}
\DeclareCaptionLabelSeparator{emdash}{ --- }
\captionsetup{
justification=raggedright,
singlelinecheck=false,
labelsep=emdash
}
\usepackage{listings}
\renewcommand\labelitemi{--}
\setcounter{secnumdepth}{4}
\usepackage[figurename=Рисунок]{caption}
\newcommand{\programmingLanguage}[1]{
\lstset{language=#1}
}
\usepackage{titlesec}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{etoolbox}
\usepackage{lastpage}
2018-08-18 21:32:48 +03:00
%% Перенос знаков в формулах (по Львовскому)
\newcommand*{\hm}[1]{#1\nobreak\discretionary{}
{\hbox{$\mathsurround=0pt #1$}}{}}
\usepackage{indentfirst} % пакет для первой красной строки по ГОСТам РФ
2018-08-18 21:32:48 +03:00
%%% Работа с картинками
\usepackage{graphicx} % Для вставки рисунков
\graphicspath{{images/}{images2/}} % папки с картинками
\setlength\fboxsep{3pt} % Отступ рамки \fbox{} от рисунка
\setlength\fboxrule{1pt} % Толщина линий рамки \fbox{}
\usepackage{wrapfig} % Обтекание рисунков текстом
%%% BF for row
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
2018-08-18 21:32:48 +03:00
%%% Работа с таблицами
\usepackage{array,tabularx,tabulary,booktabs} % Дополнительная работа с таблицами
\usepackage{longtable} % Длинные таблицы
\usepackage{multirow} % Слияние строк в таблице
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % centered version of 'p' column type
2018-08-18 21:32:48 +03:00
%%% Теоремы
\theoremstyle{plain} % Это стиль по умолчанию, его можно не переопределять.
\newtheorem{theorem}{Теорема}[section]
\newtheorem{proposition}[theorem]{Утверждение}
\theoremstyle{definition} % "Определение"
\newtheorem{corollary}{Следствие}[theorem]
\newtheorem{problem}{Задача}[section]
\theoremstyle{remark} % "Примечание"
\newtheorem*{nonum}{Решение}
\usepackage{array} % aligning text inside the tabular
%%% Программирование
\usepackage{etoolbox} % логические операторы
\usepackage{layout}
%%% Страница
\usepackage{extsizes} % Возможность сделать 14-й шрифт
\usepackage{geometry} % Простой способ задавать поля
\geometry{top=2cm}
\geometry{bottom=20mm}
\geometry{left=30mm}
\geometry{right=15mm}
\geometry{bindingoffset=0cm}
\geometry{bottom = 1in}
%
\usepackage{fancybox}
\usepackage{fancyhdr} % Колонтитулы
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0mm} % Толщина линейки, отчеркивающей верхний колонтитул
%\lfoot{Нижний левый}
%\rfoot{Нижний правый}
%\rhead{Верхний правый}
%\chead{Верхний в центре}
%\lhead{Верхний левый}
\cfoot{Москва \@year{}} % По умолчанию здесь номер страницы
2018-08-18 21:32:48 +03:00
\usepackage{setspace} % Интерлиньяж
%\onehalfspacing % Интерлиньяж 1.5
%\doublespacing % Интерлиньяж 2
\singlespacing % Интерлиньяж 1
\usepackage{lastpage} % Узнать, сколько всего страниц в документе.
\usepackage{soulutf8} % Модификаторы начертания
\usepackage{hyperref}
\usepackage[usenames,dvipsnames,svgnames,table,rgb]{xcolor}
\hypersetup{ % Гиперссылки
unicode=true, % русские буквы в раздела PDF
pdftitle={Заголовок}, % Заголовок
pdfauthor={Автор}, % Автор
pdfsubject={Тема}, % Тема
pdfcreator={Создатель}, % Создатель
pdfproducer={Производитель}, % Производитель
pdfkeywords={keyword1} {key2} {key3}, % Ключевые слова
colorlinks=true, % false: ссылки в рамках; true: цветные ссылки
linkcolor=black, % внутренние ссылки
citecolor=black , % на библиографию
filecolor=black , % на файлы
urlcolor=black % на URL
}
% define year
\newcommand{\@year}{2019}
\renewcommand{\year}[1]{
\renewcommand{\@year}{#1}
}
% define doc number
\newcommand{\@docNumber}{{\color{red}{TODO}}}
\newcommand{\docNumber}[1]{
\renewcommand{\@docNumber}{#1}
}
% define doc number
\newcommand{\@supervPos}{{\color{red}{TODO}}}
\newcommand{\@supervName}{{\color{red}{TODO}}}
\newcommand{\supervisor}[2]{
\renewcommand{\@supervPos}{#1}
\renewcommand{\@supervName}{#2}
}
% define student name and group
\newcommand{\@student}{{\color{red}{TODO}}}
\newcommand{\@groupName}{{\color{red}{TODO}}}
\newcommand{\student}[2]{
\renewcommand{\@student}{#2}
\renewcommand{\@groupName}{#1}
}
% define doc project name
\newcommand{\@project}{{\color{red}{TODO}}}
\newcommand{\project}[1]{
\renewcommand{\@project}{#1}
}
% define doc format
\newcommand{\@docFormat}{{\color{red}{FORMAT TODO}}}
\newcommand{\docFormat}[1]{
\renewcommand{\@docFormat}{#1}
}
%%% for code and listings
\newcommand{\code}[1]{%
\lstinputlisting[frame=single,basicstyle=\footnotesize\ttfamily]{#1}
2018-08-18 21:32:48 +03:00
}
\renewcommand{\code}[2]{%
\lstinputlisting [frame=single, basicstyle=\footnotesize\ttfamily, caption={#2}, captionpos=b,language=TeX,breaklines] {#1}
}
\newcommand{\@startAdditions}{
\setcounter{section}{0}
\renewcommand{\sectionbreak}{}
\titleformat{\section}[block]{\Large\bfseries\filright}{}{0mm}{}
\renewcommand{\@startAdditions}{}
}
\newcounter{@tempSection}
\newcommand{\sectionbreak}{\clearpage}
\newcommand{\customlabel}[2]{%
\protected@write \@auxout {}{\string \newlabel {#1}{{#2}{\thepage}{#2}{#1}{}} }%
\hypertarget{#1}{}
}
%%% addition. example: ПРИЛОЖЕНИЕ А
\newcommand{\addition}[2]{%
\clearpage
\newpage
\@startAdditions
\stepcounter{section}
\begin{flushright}
\Large \textbf{\textsc{приложение \alph{section}}}
\end{flushright}
\setcounter{@tempSection}{\arabic{section}}
\setcounter{secnumdepth}{0}
\section[Приложение \Alph{@tempSection}]{#1}
\setcounter{secnumdepth}{4}
\customlabel{#2}{\Alph{section}}
}
%% [#1]: ref id
%% #2: file
%% #3: caption
\newcommand{\floatCode}[3][]{
\begin{figure}[hbp]
\lstinputlisting [frame=single,basicstyle=\footnotesize\ttfamily] {#2}
\ifblank{#3}{}{\caption{#3}}
\ifblank{#1}{}{\label{#1}}
\end{figure}
}
2018-08-18 21:32:48 +03:00
%% Свои команды
\DeclareMathOperator{\sgn}{\mathop{sgn}}
\newcommand{\tabForFirstPage}
{\reversemarginpar\marginpar{\rotatebox{90}{\begin{tabular}{|l|l|l|l|l|}
\hline
Инв. \text{№} подл & Подп. и дата & Взам. инв. \text{№} & Инв. \text{№} дубл.&Подп. и дата\\
\hline
& & & & \\
\hline
\end{tabular}}}}
\setlength{\oddsidemargin}{0mm}
\newcommand{\itsHSE}{\begin{center}
\scshape \bfseries правительство российской федерации\\
национальный исследовательский университет \\
«высшая школа экономики»
\par\vspace{5mm}
\upshape\mdseries
\rmfamily\normalsize
Факультет компьютерных наук\\
Департамент программной инженерии
\end{center}}
2018-08-18 21:32:48 +03:00
\newcommand{\academicTeacher}[2]{
\begin{table}[h]
\begin{center}
\begin{tabular}{ >{\centering\arraybackslash}p{0.5\textwidth} >{\centering\arraybackslash}p{0.45\textwidth} }
\textsl{СОГЛАСОВАНО} & \textsl{УТВЕРЖДАЮ}\\
#1 & Академический руководитель образовательной программы «Программная инженерия»
профессор департамента программной инженерии, канд. техн. наук\\
& \\
\underline{\hspace{4cm}} #2 & \underline{\hspace{4cm}} В. В. Шилов\\
<<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} г.&<<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} г.\\
2018-08-18 21:32:48 +03:00
\end{tabular}
\end{center}
\end{table}
}
\newcommand{\academicTeacherVKR}{
\vspace{1cm}
\hfill\begin{tabular}{>{\centering\arraybackslash}p{0.45\textwidth} }
\textsl{УТВЕРЖДАЮ}\\
Академический руководитель образовательной программы «Программная инженерия»
профессор департамента программной инженерии, канд. техн. наук\\
\\
\underline{\hspace{4cm}} В. В. Шилов\\
<<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} г.\\
\end{tabular}
}
\newcommand{\secondPage}{
\pagestyle{fancy}
\lhead{УТВЕРЖДЕН \newline
\@docNumber{}-ЛУ}
\vspace*{9cm}
\begingroup
\centering
\projectName{\@project{}}
\titleListTwo{\@docFormat{}}
\listNumber{\textbf{Листов \pageref{LastPage}}}
\endgroup
\vspace{8cm}
\tabForFirstPage
\vspace*{\fill}
}
\newcommand{\anonsection}[1]{\section*{#1}\addcontentsline{toc}{section}{#1}}
\newcommand{\anonsubsection}[1]{\subsection*{#1}\addcontentsline{toc}{subsection}{#1}}
\newcommand{\sectionVKR}[1]{\section*{Глава \thesection. #1}\addcontentsline{toc}{section}{Глава \thesection. #1}}
\newcommand{\thirdPage}{
\lhead{ }
\chead{\vfill \thepage \vfill \@docNumber{}}
\rhead{ }
\cfoot{ }
\cfoot{\tabForTZ}
\tableofcontents
}
\newcommand{\thirdPageWithoutTOC}{
\lhead{ }
\chead{\vfill \thepage \vfill \@docNumber{}}
\rhead{ }
\cfoot{ }
\cfoot{\tabForTZ}
}
\newcommand{\clearPage}{
\lhead{ }
\chead{ }
\rhead{ }
\cfoot{ }
\cfoot{\thepage}
}
\newcommand{\projectName}[1]{
\begin{center}
2018-08-18 21:32:48 +03:00
\large{\textsc{\textbf{#1}}}
\end{center}
}
\newcommand{\projectNameDraft}[1]{
\vspace*{3cm}
\begin{center}
\large{ОТЧЕТ \\
по преддипломной практике \\
Подготовка ВКР на тему \\
\vspace*{1cm}
\textsc{\textbf{#1}}}
\end{center}
\vspace*{1cm}
}
\newcommand{\projectNameVKR}[1]{
\vspace*{2cm}
\begin{center}
\large{\textbf{Выпускная квалификационная работа} на тему \\
\vspace*{0.5cm}
\textbf{<<#1>>} \\
\vspace*{0.5cm}
по направлению подготовки 09.03.04 <<Программная инженерия>>
}
\end{center}
\vspace*{2cm}
}
\newcommand{\checked}[3]{
\vspace{15mm}
\begin{tabular}{p{0.33\textwidth} p{0.33\textwidth} p{0.33\textwidth}}
\multicolumn{3}{l}{\textbf{#2}}\\
\multicolumn{3}{l}{#3}\\
\multicolumn{3}{l}{}\\
Дата: {#1} & $\underset{\text{(оценка)}}{\underline{\hspace{4cm}}}$ & $\underset{\text{(подпись)}}{\underline{\hspace{4cm}}}$ \\
\end{tabular}
\begin{tabular}{p{0.33\textwidth} p{0.33\textwidth} p{0.33\textwidth}}
\multicolumn{3}{l}{\textbf{Оценка комиссии}}\\
\multicolumn{3}{l}{}\\
$\underset{\text{(дата)}}{\underline{\hspace{4cm}}}$ & $\underset{\text{(оценка)}}{\underline{\hspace{4cm}}}$ & $\underset{\text{(подпись)}}{\underline{\hspace{4cm}}}$ \\
\end{tabular}
}
2018-08-18 21:32:48 +03:00
%\renewcommand{\familydefault}{\sfdefault} % Начертание шрифта
\newcommand{\titleList}{
2018-08-18 21:32:48 +03:00
\begin{center}
\par\vspace{4mm}
\textbf{\@docFormat{}}
2018-08-18 21:32:48 +03:00
\par\vspace{6mm}
\textbf{
ЛИСТ УТВЕРЖДЕНИЯ}
\par\vspace{6mm}
\textbf{\@docNumber{}-ЛУ}
\par\vspace{60mm}
\end{center}}
\newcommand{\titleListTwo}[2]{
\begin{center}
\par\vspace{4mm}
\textbf{#1}
\par\vspace{6mm}
\textbf{\@docNumber{}}
2018-08-18 21:32:48 +03:00
\end{center}}
\newcommand{\firstPage}{
\itsHSE
\academicTeacher{\@supervPos{}}{\@supervName{}}
\projectName{\@project{}}
\titleList
\nameOfAuthor
\tabForFirstPage
}
\newcommand{\draftVKR}{
\itsHSE
\projectNameDraft{\@project{}}
\nameOfAuthorDraft
\checked{26.04.21}{Руководитель практики от НИУ ВШЭ}{Доцент департамента программной инженерии Салех Хади Мухаммед}
}
\newcommand{\VKR}{
\itsHSE
\academicTeacherVKR
\projectNameVKR{\@project{}}
\nameOfAuthorVKR
}
\newcommand{\nameOfAuthorDraft}{
\hfill\begin{tabular}{r}
\\
Выполнила студентка
\\
образовательной программы
\\
09.03.04 <<Программная инженерия>>
\\
группы \@groupName{}
\\
\@student{}
\\
<<\underline{\hspace{1cm}}>> \underline{\hspace{3cm}} \@year{} г.
\end{tabular}
\vspace{1cm}
}
\newcommand{\nameOfAuthorVKR}{
\begin{table}[h]
\begin{flushleft}
\begin{tabular}{ >{\arraybackslash}p{0.5\textwidth} >{\arraybackslash}p{0.45\textwidth} }
\@supervPos{} & Выполнила студентка \vfill образовательной программы \vfill 09.03.04 <<Программная инженерия>> \vfill группы \@groupName{} \\
\@supervName{} & \@student{} \\
& \\
$\underset{\text{(дата, подпись)}}{\underline{\hspace{5cm}}}$ & $\underset{\text{(дата, подпись)}}{\underline{\hspace{5cm}}}$ \\
\end{tabular}
\end{flushleft}
\end{table}
}
\newcommand{\nameOfAuthor}{
2018-08-18 21:32:48 +03:00
\hfill\begin{tabular}{c}
\\
Исполнитель: студент группы \@groupName{}
2018-08-18 21:32:48 +03:00
\\
\underline{\hspace{4cm}} \@student{}
2018-08-18 21:32:48 +03:00
\\
<<\underline{\hspace{1cm}}>> \underline{\hspace{4cm}} \@year{} г.
2018-08-18 21:32:48 +03:00
\end{tabular}
}
\newcommand{\listNumber}[1]{\textbf{Листов #1}}
\newcommand{\listRegistration}{%
\cfoot{ }
2018-08-18 21:32:48 +03:00
\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}|}
\hline
\multicolumn{10}{|c|}{\textbf{Лист регистрации изменений}}\\
\hline
\multirow{2}{*}{Изм.} & \multicolumn{4}{c|}{Номера листов} & Всего листов в документе& $\text{№}$ документа& Входящий $\text{№}$ сопроводит. докум. и дата& Под-пись& Дата\\[5ex] \cline{2-5}
&из-ме-нен-ных&заме-нен-ных&но-вых&аннул-лиро-ван-ных& & & & & \\[10ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
& & & & & & & & & \\[5ex]
\hline
2018-08-18 21:32:48 +03:00
\end{tabular}
}
\newcommand{\tabForTZ}{%
\begin{tabular}{|p{0.31\linewidth}|p{0.15\linewidth}|p{0.16\linewidth}|p{0.16\linewidth}|p{0.15\linewidth}|}
\hline
Изм. & Лист & $\text{№}$ докум. & Подп. & Дата\\
\hline
\scriptsize{\@docNumber{}}& & & &\\
2018-08-18 21:32:48 +03:00
\hline
Инв. $\text{№}$ подл. & Подп. и дата & Взам. инв. $\text{№}$ & Инв. $\text{№}$ дубл.& Подп. и дата \\
\hline
\end{tabular}
}
\usepackage{multicol} % Несколько колонок