|
|
%%% Шаблон %%%
|
|
|
\DeclareRobustCommand{\fixme}{\textcolor{red}} % решаем проблему превращения
|
|
|
% названия цвета в результате \MakeUppercase,
|
|
|
% http://tex.stackexchange.com/a/187930,
|
|
|
% \DeclareRobustCommand protects \fixme
|
|
|
% from expanding inside \MakeUppercase
|
|
|
\AtBeginDocument{%
|
|
|
\setlength{\parindent}{2.5em} % Абзацный отступ. Должен быть одинаковым по всему тексту и равен пяти знакам (ГОСТ Р 7.0.11-2011, 5.3.7).
|
|
|
}
|
|
|
|
|
|
%%% Таблицы %%%
|
|
|
\DeclareCaptionLabelSeparator{tabsep}{\tablabelsep} % нумерация таблиц
|
|
|
\DeclareCaptionFormat{split}{\splitformatlabel#1\par\splitformattext#3}
|
|
|
|
|
|
\captionsetup[table]{
|
|
|
format=\tabformat, % формат подписи (plain|hang)
|
|
|
font=normal, % нормальные размер, цвет, стиль шрифта
|
|
|
skip=.0pt, % отбивка под подписью
|
|
|
parskip=.0pt, % отбивка между параграфами подписи
|
|
|
position=above, % положение подписи
|
|
|
justification=\tabjust, % центровка
|
|
|
indent=\tabindent, % смещение строк после первой
|
|
|
labelsep=tabsep, % разделитель
|
|
|
singlelinecheck=\tabsinglecenter, % не выравнивать по центру, если умещается в одну строку
|
|
|
}
|
|
|
|
|
|
%%% Рисунки %%%
|
|
|
\DeclareCaptionLabelSeparator{figsep}{\figlabelsep} % нумерация рисунков
|
|
|
|
|
|
\captionsetup[figure]{
|
|
|
format=plain, % формат подписи (plain|hang)
|
|
|
font=normal, % нормальные размер, цвет, стиль шрифта
|
|
|
skip=.0pt, % отбивка под подписью
|
|
|
parskip=.0pt, % отбивка между параграфами подписи
|
|
|
position=below, % положение подписи
|
|
|
singlelinecheck=true, % выравнивание по центру, если умещается в одну строку
|
|
|
justification=centerlast, % центровка
|
|
|
labelsep=figsep, % разделитель
|
|
|
}
|
|
|
|
|
|
%%% Подписи подрисунков %%%
|
|
|
\DeclareCaptionSubType{figure}
|
|
|
\renewcommand\thesubfigure{\asbuk{subfigure}} % нумерация подрисунков
|
|
|
\ifsynopsis
|
|
|
\DeclareCaptionFont{norm}{\fontsize{10pt}{11pt}\selectfont}
|
|
|
\newcommand{\subfigureskip}{2.pt}
|
|
|
\else
|
|
|
\DeclareCaptionFont{norm}{\fontsize{14pt}{16pt}\selectfont}
|
|
|
\newcommand{\subfigureskip}{0.pt}
|
|
|
\fi
|
|
|
|
|
|
\captionsetup[subfloat]{
|
|
|
labelfont=norm, % нормальный размер подписей подрисунков
|
|
|
textfont=norm, % нормальный размер подписей подрисунков
|
|
|
labelsep=space, % разделитель
|
|
|
labelformat=brace, % одна скобка справа от номера
|
|
|
justification=centering, % центровка
|
|
|
singlelinecheck=true, % выравнивание по центру, если умещается в одну строку
|
|
|
skip=\subfigureskip, % отбивка над подписью
|
|
|
parskip=.0pt, % отбивка между параграфами подписи
|
|
|
position=below, % положение подписи
|
|
|
}
|
|
|
|
|
|
%%% Настройки ссылок на рисунки, таблицы и др. %%%
|
|
|
% команды \cref...format отвечают за форматирование при помощи команды \cref
|
|
|
% команды \labelcref...format отвечают за форматирование при помощи команды \labelcref
|
|
|
|
|
|
\ifpresentation
|
|
|
\else
|
|
|
\crefdefaultlabelformat{#2#1#3}
|
|
|
|
|
|
% Уравнение
|
|
|
\crefformat{equation}{(#2#1#3)} % одиночная ссылка с приставкой
|
|
|
\labelcrefformat{equation}{(#2#1#3)} % одиночная ссылка без приставки
|
|
|
\crefrangeformat{equation}{(#3#1#4) \cyrdash~(#5#2#6)} % диапазон ссылок с приставкой
|
|
|
\labelcrefrangeformat{equation}{(#3#1#4) \cyrdash~(#5#2#6)} % диапазон ссылок без приставки
|
|
|
\crefmultiformat{equation}{(#2#1#3)}{ и~(#2#1#3)}{, (#2#1#3)}{ и~(#2#1#3)} % перечисление ссылок с приставкой
|
|
|
\labelcrefmultiformat{equation}{(#2#1#3)}{ и~(#2#1#3)}{, (#2#1#3)}{ и~(#2#1#3)} % перечисление без приставки
|
|
|
|
|
|
% Подуравнение
|
|
|
\crefformat{subequation}{(#2#1#3)} % одиночная ссылка с приставкой
|
|
|
\labelcrefformat{subequation}{(#2#1#3)} % одиночная ссылка без приставки
|
|
|
\crefrangeformat{subequation}{(#3#1#4) \cyrdash~(#5#2#6)} % диапазон ссылок с приставкой
|
|
|
\labelcrefrangeformat{subequation}{(#3#1#4) \cyrdash~(#5#2#6)} % диапазон ссылок без приставки
|
|
|
\crefmultiformat{subequation}{(#2#1#3)}{ и~(#2#1#3)}{, (#2#1#3)}{ и~(#2#1#3)} % перечисление ссылок с приставкой
|
|
|
\labelcrefmultiformat{subequation}{(#2#1#3)}{ и~(#2#1#3)}{, (#2#1#3)}{ и~(#2#1#3)} % перечисление без приставки
|
|
|
|
|
|
% Глава
|
|
|
\crefformat{chapter}{#2#1#3} % одиночная ссылка с приставкой
|
|
|
\labelcrefformat{chapter}{#2#1#3} % одиночная ссылка без приставки
|
|
|
\crefrangeformat{chapter}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок с приставкой
|
|
|
\labelcrefrangeformat{chapter}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок без приставки
|
|
|
\crefmultiformat{chapter}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление ссылок с приставкой
|
|
|
\labelcrefmultiformat{chapter}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление без приставки
|
|
|
|
|
|
% Параграф
|
|
|
\crefformat{section}{#2#1#3} % одиночная ссылка с приставкой
|
|
|
\labelcrefformat{section}{#2#1#3} % одиночная ссылка без приставки
|
|
|
\crefrangeformat{section}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок с приставкой
|
|
|
\labelcrefrangeformat{section}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок без приставки
|
|
|
\crefmultiformat{section}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление ссылок с приставкой
|
|
|
\labelcrefmultiformat{section}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление без приставки
|
|
|
|
|
|
% Приложение
|
|
|
\crefformat{appendix}{#2#1#3} % одиночная ссылка с приставкой
|
|
|
\labelcrefformat{appendix}{#2#1#3} % одиночная ссылка без приставки
|
|
|
\crefrangeformat{appendix}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок с приставкой
|
|
|
\labelcrefrangeformat{appendix}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок без приставки
|
|
|
\crefmultiformat{appendix}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление ссылок с приставкой
|
|
|
\labelcrefmultiformat{appendix}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление без приставки
|
|
|
|
|
|
% Рисунок
|
|
|
\crefformat{figure}{#2#1#3} % одиночная ссылка с приставкой
|
|
|
\labelcrefformat{figure}{#2#1#3} % одиночная ссылка без приставки
|
|
|
\crefrangeformat{figure}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок с приставкой
|
|
|
\labelcrefrangeformat{figure}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок без приставки
|
|
|
\crefmultiformat{figure}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление ссылок с приставкой
|
|
|
\labelcrefmultiformat{figure}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление без приставки
|
|
|
|
|
|
% Таблица
|
|
|
\crefformat{table}{#2#1#3} % одиночная ссылка с приставкой
|
|
|
\labelcrefformat{table}{#2#1#3} % одиночная ссылка без приставки
|
|
|
\crefrangeformat{table}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок с приставкой
|
|
|
\labelcrefrangeformat{table}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок без приставки
|
|
|
\crefmultiformat{table}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление ссылок с приставкой
|
|
|
\labelcrefmultiformat{table}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление без приставки
|
|
|
|
|
|
% Листинг
|
|
|
\crefformat{lstlisting}{#2#1#3} % одиночная ссылка с приставкой
|
|
|
\labelcrefformat{lstlisting}{#2#1#3} % одиночная ссылка без приставки
|
|
|
\crefrangeformat{lstlisting}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок с приставкой
|
|
|
\labelcrefrangeformat{lstlisting}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок без приставки
|
|
|
\crefmultiformat{lstlisting}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление ссылок с приставкой
|
|
|
\labelcrefmultiformat{lstlisting}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление без приставки
|
|
|
|
|
|
% Листинг
|
|
|
\crefformat{ListingEnv}{#2#1#3} % одиночная ссылка с приставкой
|
|
|
\labelcrefformat{ListingEnv}{#2#1#3} % одиночная ссылка без приставки
|
|
|
\crefrangeformat{ListingEnv}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок с приставкой
|
|
|
\labelcrefrangeformat{ListingEnv}{#3#1#4 \cyrdash~#5#2#6} % диапазон ссылок без приставки
|
|
|
\crefmultiformat{ListingEnv}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление ссылок с приставкой
|
|
|
\labelcrefmultiformat{ListingEnv}{#2#1#3}{ и~#2#1#3}{, #2#1#3}{ и~#2#1#3} % перечисление без приставки
|
|
|
\fi
|
|
|
|
|
|
%%% Настройки гиперссылок %%%
|
|
|
\ifluatex
|
|
|
\hypersetup{
|
|
|
unicode, % Unicode encoded PDF strings
|
|
|
}
|
|
|
\fi
|
|
|
|
|
|
\hypersetup{
|
|
|
linktocpage=true, % ссылки с номера страницы в оглавлении, списке таблиц и списке рисунков
|
|
|
% linktoc=all, % both the section and page part are links
|
|
|
% pdfpagelabels=false, % set PDF page labels (true|false)
|
|
|
plainpages=false, % Forces page anchors to be named by the Arabic form of the page number, rather than the formatted form
|
|
|
colorlinks, % ссылки отображаются раскрашенным текстом, а не раскрашенным прямоугольником, вокруг текста
|
|
|
linkcolor={linkcolor}, % цвет ссылок типа ref, eqref и подобных
|
|
|
citecolor={citecolor}, % цвет ссылок-цитат
|
|
|
urlcolor={urlcolor}, % цвет гиперссылок
|
|
|
% hidelinks, % Hide links (removing color and border)
|
|
|
pdftitle={\thesisTitle}, % Заголовок
|
|
|
pdfauthor={\thesisAuthor}, % Автор
|
|
|
pdfsubject={\thesisSpecialtyNumber\ \thesisSpecialtyTitle}, % Тема
|
|
|
% pdfcreator={Создатель}, % Создатель, Приложение
|
|
|
% pdfproducer={Производитель},% Производитель, Производитель PDF
|
|
|
pdfkeywords={\keywords}, % Ключевые слова
|
|
|
pdflang={ru},
|
|
|
}
|
|
|
\ifnumequal{\value{draft}}{1}{% Черновик
|
|
|
\hypersetup{
|
|
|
draft,
|
|
|
}
|
|
|
}{}
|
|
|
|
|
|
%%% Списки %%%
|
|
|
% Используем короткое тире (endash) для ненумерованных списков (ГОСТ 2.105-95, пункт 4.1.7, требует дефиса, но так лучше смотрится)
|
|
|
\renewcommand{\labelitemi}{\normalfont\bfseries{--}}
|
|
|
|
|
|
% Перечисление строчными буквами латинского алфавита (ГОСТ 2.105-95, 4.1.7)
|
|
|
%\renewcommand{\theenumi}{\alph{enumi}}
|
|
|
%\renewcommand{\labelenumi}{\theenumi)}
|
|
|
|
|
|
% Перечисление строчными буквами русского алфавита (ГОСТ 2.105-95, 4.1.7)
|
|
|
\makeatletter
|
|
|
\AddEnumerateCounter{\asbuk}{\russian@alph}{щ} % Управляем списками/перечислениями через пакет enumitem, а он 'не знает' про asbuk, потому 'учим' его
|
|
|
\makeatother
|
|
|
%\renewcommand{\theenumi}{\asbuk{enumi}} %первый уровень нумерации
|
|
|
%\renewcommand{\labelenumi}{\theenumi)} %первый уровень нумерации
|
|
|
\renewcommand{\theenumii}{\asbuk{enumii}} %второй уровень нумерации
|
|
|
\renewcommand{\labelenumii}{\theenumii)} %второй уровень нумерации
|
|
|
\renewcommand{\theenumiii}{\arabic{enumiii}} %третий уровень нумерации
|
|
|
\renewcommand{\labelenumiii}{\theenumiii)} %третий уровень нумерации
|
|
|
|
|
|
\setlist{nosep,% % Единый стиль для всех списков (пакет enumitem), без дополнительных интервалов.
|
|
|
labelindent=\parindent,leftmargin=*% % Каждый пункт, подпункт и перечисление записывают с абзацного отступа (ГОСТ 2.105-95, 4.1.8)
|
|
|
}
|
|
|
|
|
|
%%% Правильная нумерация приложений, рисунков и формул %%%
|
|
|
%% По ГОСТ 2.105, п. 4.3.8 Приложения обозначают заглавными буквами русского алфавита,
|
|
|
%% начиная с А, за исключением букв Ё, З, Й, О, Ч, Ь, Ы, Ъ.
|
|
|
%% Здесь также переделаны все нумерации русскими буквами.
|
|
|
\ifxetexorluatex
|
|
|
\makeatletter
|
|
|
\def\russian@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\xpg@ill@value{#1}{russian@Alph}\fi}
|
|
|
\def\russian@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\xpg@ill@value{#1}{russian@alph}\fi}
|
|
|
\def\cyr@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\xpg@ill@value{#1}{cyr@Alph}\fi}
|
|
|
\def\cyr@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\xpg@ill@value{#1}{cyr@alph}\fi}
|
|
|
\makeatother
|
|
|
\else
|
|
|
\makeatletter
|
|
|
\if@uni@ode
|
|
|
\def\russian@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\@ctrerr\fi}
|
|
|
\else
|
|
|
\def\russian@Alph#1{\ifcase#1\or
|
|
|
\CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRZH\or
|
|
|
\CYRI\or\CYRK\or\CYRL\or\CYRM\or\CYRN\or
|
|
|
\CYRP\or\CYRR\or\CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or
|
|
|
\CYRC\or\CYRSH\or\CYRSHCH\or\CYREREV\or\CYRYU\or
|
|
|
\CYRYA\else\@ctrerr\fi}
|
|
|
\fi
|
|
|
\if@uni@ode
|
|
|
\def\russian@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\@ctrerr\fi}
|
|
|
\else
|
|
|
\def\russian@alph#1{\ifcase#1\or
|
|
|
\cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrzh\or
|
|
|
\cyri\or\cyrk\or\cyrl\or\cyrm\or\cyrn\or
|
|
|
\cyrp\or\cyrr\or\cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or
|
|
|
\cyrc\or\cyrsh\or\cyrshch\or\cyrerev\or\cyryu\or
|
|
|
\cyrya\else\@ctrerr\fi}
|
|
|
\fi
|
|
|
\makeatother
|
|
|
\fi
|
|
|
|
|
|
|
|
|
%%http://www.linux.org.ru/forum/general/6993203#comment-6994589 (используется totcount)
|
|
|
\makeatletter
|
|
|
\def\formtotal#1#2#3#4#5{%
|
|
|
\newcount\@c
|
|
|
\@c\totvalue{#1}\relax
|
|
|
\newcount\@last
|
|
|
\newcount\@pnul
|
|
|
\@last\@c\relax
|
|
|
\divide\@last 10
|
|
|
\@pnul\@last\relax
|
|
|
\divide\@pnul 10
|
|
|
\multiply\@pnul-10
|
|
|
\advance\@pnul\@last
|
|
|
\multiply\@last-10
|
|
|
\advance\@last\@c
|
|
|
#2%
|
|
|
\ifnum\@pnul=1#5\else%
|
|
|
\ifcase\@last#5\or#3\or#4\or#4\or#4\else#5\fi
|
|
|
\fi
|
|
|
}
|
|
|
\makeatother
|
|
|
|
|
|
\newcommand{\formbytotal}[5]{\total{#1}~\formtotal{#1}{#2}{#3}{#4}{#5}}
|
|
|
|
|
|
%%% Команды рецензирования %%%
|
|
|
\ifboolexpr{ (test {\ifnumequal{\value{draft}}{1}}) or (test {\ifnumequal{\value{showmarkup}}{1}})}{
|
|
|
\newrobustcmd{\todo}[1]{\textcolor{red}{#1}}
|
|
|
\newrobustcmd{\note}[2][]{\ifstrempty{#1}{#2}{\textcolor{#1}{#2}}}
|
|
|
\newenvironment{commentbox}[1][]%
|
|
|
{\ifstrempty{#1}{}{\color{#1}}}%
|
|
|
{}
|
|
|
}{
|
|
|
\newrobustcmd{\todo}[1]{}
|
|
|
\newrobustcmd{\note}[2][]{}
|
|
|
\excludecomment{commentbox}
|
|
|
}
|