\usepackage{fix-cm}
\usepackage{calc}
\usepackage[
	top=0.06734007\paperheight,	bottom=0.06734007\paperheight,
	right=0.1190476\paperwidth,	left=0.0952381\paperwidth
]{geometry}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage[cmintegrals,cmbraces]{newtxmath}
\usepackage{xltxtra}
\usepackage{polyglossia}
\usepackage{verbatim,fancyvrb,framed}
\usepackage{longtable,multirow}
\usepackage{adjustbox}
\usepackage{indentfirst}
\usepackage{placeins}
\usepackage{etoolbox}
\usepackage[symbol]{footmisc}
\usepackage{caption}

%
% language and fonts
%
\setmainlanguage{russian}
\setotherlanguage{english}
\setkeys{russian}{babelshorthands=true}
\defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text}
\setmainfont{Garamond Premier Pro}
\setromanfont{Garamond Premier Pro}
\setsansfont{CMU Sans Serif}
\newfontfamily{\cyrillicfont}{Garamond Premier Pro}
\newfontfamily{\cyrillicfontrm}{Garamond Premier Pro}
\newfontfamily{\cyrillicfontsf}{CMU Sans Serif}
\defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text,LetterSpace=-3}
\setmonofont{Nimbus Mono}[
BoldFont = * ,
ItalicFont = CMU Typewriter Text Italic ,
BoldItalicFont = CMU Typewriter Text Bold Italic
]
\newfontfamily{\cyrillicfonttt}{Nimbus Mono}[
BoldFont = * ,
ItalicFont = CMU Typewriter Text Italic ,
BoldItalicFont = CMU Typewriter Text Bold Italic
]
\RequirePackage{ebgaramond-maths}

%
% graphics
%
\RequirePackage[matrix,arrow,curve]{xy}
\RequirePackage{subfigure, graphicx, float}
\graphicspath{{images/}}

%
% links
%
\RequirePackage{hyperref}
\hypersetup{colorlinks=true,linkcolor={black},urlcolor={blue}}

%
% additional pagestyle options
%
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\setlength{\headheight}{17pt}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\itshape\nouppercase{\leftmark}}
\fancyhead[LO]{\itshape\nouppercase{\rightmark}}

\frenchspacing
\sloppy
\raggedbottom

%
% additional table of contents options
%
\setcounter{tocdepth}{3}

%
% index
%
\usepackage[xindy]{imakeidx}
\makeindex[options = -C utf8 -M texindy -M index_style_and_order ]

%
% new definitions
% and some redefinitions of defaults
%
\setlength{\parindent}{0.0604762\paperwidth}%
\newlength{\codeIndent}\setlength{\codeIndent}{0.0846667\paperwidth}%
\newlength{\codeIndentBk}\setlength{\codeIndentBk}{\codeIndent}%
\newlength{\doubleCodeIndent}\setlength{\doubleCodeIndent}{2\codeIndent}%

\newcommand{\SetLenVarWithWidth}[2]{%
 \ifdefined #1 \else%
  \newlength{#1}%
 \fi%
 \settowidth{#1}{#2}%
}%

\newcommand{\SetLenVarWithVal}[2]{%
 \ifdefined #1 \else%
  \newlength{#1}%
 \fi%
 \setlength{#1}{#2}%
}%

\newenvironment{LongCodePar}
    {\setlength{\partopsep}{-1ex}%
     \Verbatim[xleftmargin=\codeIndent]}
    {\endVerbatim}
%

\newenvironment{ShortCodePar}
    {\setlength{\partopsep}{-1ex}%
     \Verbatim[samepage=true,xleftmargin=\codeIndent]}
    {\endVerbatim}
%

\newenvironment{ShortCodeParWithCC}[1]
    {\setlength{\partopsep}{-1ex}%
     \Verbatim[samepage=true,xleftmargin=\codeIndent,commandchars=#1]}
    {\endVerbatim}
%

\newenvironment{LongCodeParWithCC}[1]
    {\setlength{\partopsep}{-1ex}%
     \Verbatim[xleftmargin=\codeIndent,commandchars=#1]}
    {\endVerbatim}
%

\newenvironment{ShortGramDecsWithCC}[1]
    {\setlength{\partopsep}{-1ex}%
     \Verbatim[samepage=true,xleftmargin=\codeIndent,fontsize=\small,
     commandchars=#1]}
    {\endVerbatim}
%
\newenvironment{ShortGramDecsWithCCFinBlock}[1]
    {\setlength{\partopsep}{-1ex}%
     \Verbatim[samepage=true,xleftmargin=\codeIndent,fontsize=\footnotesize,
     commandchars=#1]}
    {\endVerbatim}
%

\newenvironment{LongGramDecsWithCC}[1]
    {\setlength{\partopsep}{-1ex}%
     \Verbatim[xleftmargin=\codeIndent,fontsize=\small,commandchars=#1]}
    {\endVerbatim}
%

\newenvironment{ApxComment}
    {\setlength{\leftskip}{0.1209524\paperwidth}
     \setlength{\parindent}{0\paperwidth}}
%

\newenvironment{ApxDescript}
    {\setlength{\leftskip}{0.0604762\paperwidth}
     \setlength{\parindent}{-0.0604762\paperwidth}
     \bigskip}
%

\newenvironment{LongRtAlTab2cols}[3]%
% длинная (рабиваемая на страницы) таблица из двух столбцов прижатая вправо
% 1-ый аргумент левый отступ до текста
% 2-ой аргумент правый отступ до текста
% 3-ий аргумент текст определяющий ширину первого столбца
%               текст должен удовлетворять требованиям \settowidth
%
    {\setlength{\leftskip}{0pt}\setlength{\parindent}{0.0604762\paperwidth}%
     \setlength{\linewidth}{\textwidth}% грязный хак для включения таблиц в списки
     \setlength{\LTpre}{\smallskipamount}\setlength{\LTpost}{\smallskipamount}%
     \setlength{\LTleft}{(#1)-\tabcolsep}%
     \SetLenVarWithWidth{\colAlen}{#3}%
     \begin{longtable}%
     {p{\colAlen}p{\linewidth-\LTleft-\colAlen-3\tabcolsep-(#2)}}}
    {\end{longtable}}
%

\newenvironment{LongRtAlTab3cols}[4]%
% длинная (рабиваемая на страницы) таблица из трёх столбцов прижатая вправо
% 1-ый аргумент левый отступ до текста
% 2-ой аргумент правый отступ до текста
% 3-ий аргумент текст определяющий ширину первого столбца
% 4-ий аргумент текст определяющий ширину второго столбца
%               тексты должны удовлетворять требованиям \settowidth
%
    {\setlength{\leftskip}{0pt}\setlength{\parindent}{0.0604762\paperwidth}%
     \setlength{\linewidth}{\textwidth}% грязный хак для включения таблиц в списки
     \setlength{\LTpre}{\smallskipamount}\setlength{\LTpost}{\smallskipamount}%
     \setlength{\LTleft}{(#1)-\tabcolsep}
     \SetLenVarWithWidth{\colAlen}{#3}%
     \SetLenVarWithWidth{\colBlen}{#4}%
     \begin{longtable}%
     {p{\colAlen}p{\colBlen}p{\linewidth-\LTleft-\colAlen-\colBlen-5\tabcolsep-(#2)}}}
    {\end{longtable}}
%