definitions.tex 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. \usepackage{fix-cm}
  2. \usepackage{calc}
  3. \usepackage[
  4. top=0.06734007\paperheight, bottom=0.06734007\paperheight,
  5. right=0.1190476\paperwidth, left=0.0952381\paperwidth
  6. ]{geometry}
  7. \usepackage{amsmath,amsfonts,amssymb}
  8. \usepackage[cmintegrals,cmbraces]{newtxmath}
  9. \usepackage{xltxtra}
  10. \usepackage{polyglossia}
  11. \usepackage{verbatim,fancyvrb,framed}
  12. \usepackage{longtable,multirow}
  13. \usepackage{adjustbox}
  14. \usepackage{indentfirst}
  15. \usepackage{placeins}
  16. \usepackage{etoolbox}
  17. \usepackage[symbol]{footmisc}
  18. \usepackage{caption}
  19. %
  20. % language and fonts
  21. %
  22. \setmainlanguage{russian}
  23. \setotherlanguage{english}
  24. \setkeys{russian}{babelshorthands=true}
  25. \defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text}
  26. \setmainfont{Garamond Premier Pro}
  27. \setromanfont{Garamond Premier Pro}
  28. \setsansfont{CMU Sans Serif}
  29. \newfontfamily{\cyrillicfont}{Garamond Premier Pro}
  30. \newfontfamily{\cyrillicfontrm}{Garamond Premier Pro}
  31. \newfontfamily{\cyrillicfontsf}{CMU Sans Serif}
  32. \defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text,LetterSpace=-3}
  33. \setmonofont{Nimbus Mono}[
  34. BoldFont = * ,
  35. ItalicFont = CMU Typewriter Text Italic ,
  36. BoldItalicFont = CMU Typewriter Text Bold Italic
  37. ]
  38. \newfontfamily{\cyrillicfonttt}{Nimbus Mono}[
  39. BoldFont = * ,
  40. ItalicFont = CMU Typewriter Text Italic ,
  41. BoldItalicFont = CMU Typewriter Text Bold Italic
  42. ]
  43. \RequirePackage{ebgaramond-maths}
  44. %
  45. % graphics
  46. %
  47. \RequirePackage[matrix,arrow,curve]{xy}
  48. \RequirePackage{subfigure, graphicx, float}
  49. \graphicspath{{images/}}
  50. %
  51. % links
  52. %
  53. \RequirePackage{hyperref}
  54. \hypersetup{colorlinks=true,linkcolor={black},urlcolor={blue}}
  55. %
  56. % additional pagestyle options
  57. %
  58. \RequirePackage{fancyhdr}
  59. \pagestyle{fancy}
  60. \fancyhf{}
  61. \setlength{\headheight}{17pt}
  62. \fancyhead[LE,RO]{\thepage}
  63. \fancyhead[RE]{\itshape\nouppercase{\leftmark}}
  64. \fancyhead[LO]{\itshape\nouppercase{\rightmark}}
  65. \frenchspacing
  66. \sloppy
  67. \raggedbottom
  68. %
  69. % additional table of contents options
  70. %
  71. \setcounter{tocdepth}{3}
  72. %
  73. % index
  74. %
  75. \usepackage[xindy]{imakeidx}
  76. \makeindex[options = -C utf8 -M texindy -M index_style_and_order ]
  77. %
  78. % new definitions
  79. % and some redefinitions of defaults
  80. %
  81. \setlength{\parindent}{0.0604762\paperwidth}%
  82. \newlength{\codeIndent}\setlength{\codeIndent}{0.0846667\paperwidth}%
  83. \newlength{\codeIndentBk}\setlength{\codeIndentBk}{\codeIndent}%
  84. \newlength{\doubleCodeIndent}\setlength{\doubleCodeIndent}{2\codeIndent}%
  85. \newcommand{\SetLenVarWithWidth}[2]{%
  86. \ifdefined #1 \else%
  87. \newlength{#1}%
  88. \fi%
  89. \settowidth{#1}{#2}%
  90. }%
  91. \newcommand{\SetLenVarWithVal}[2]{%
  92. \ifdefined #1 \else%
  93. \newlength{#1}%
  94. \fi%
  95. \setlength{#1}{#2}%
  96. }%
  97. \newenvironment{LongCodePar}
  98. {\setlength{\partopsep}{-1ex}%
  99. \Verbatim[xleftmargin=\codeIndent]}
  100. {\endVerbatim}
  101. %
  102. \newenvironment{ShortCodePar}
  103. {\setlength{\partopsep}{-1ex}%
  104. \Verbatim[samepage=true,xleftmargin=\codeIndent]}
  105. {\endVerbatim}
  106. %
  107. \newenvironment{ShortCodeParWithCC}[1]
  108. {\setlength{\partopsep}{-1ex}%
  109. \Verbatim[samepage=true,xleftmargin=\codeIndent,commandchars=#1]}
  110. {\endVerbatim}
  111. %
  112. \newenvironment{LongCodeParWithCC}[1]
  113. {\setlength{\partopsep}{-1ex}%
  114. \Verbatim[xleftmargin=\codeIndent,commandchars=#1]}
  115. {\endVerbatim}
  116. %
  117. \newenvironment{ShortGramDecsWithCC}[1]
  118. {\setlength{\partopsep}{-1ex}%
  119. \Verbatim[samepage=true,xleftmargin=\codeIndent,fontsize=\small,
  120. commandchars=#1]}
  121. {\endVerbatim}
  122. %
  123. \newenvironment{ShortGramDecsWithCCFinBlock}[1]
  124. {\setlength{\partopsep}{-1ex}%
  125. \Verbatim[samepage=true,xleftmargin=\codeIndent,fontsize=\footnotesize,
  126. commandchars=#1]}
  127. {\endVerbatim}
  128. %
  129. \newenvironment{LongGramDecsWithCC}[1]
  130. {\setlength{\partopsep}{-1ex}%
  131. \Verbatim[xleftmargin=\codeIndent,fontsize=\small,commandchars=#1]}
  132. {\endVerbatim}
  133. %
  134. \newenvironment{ApxComment}
  135. {\setlength{\leftskip}{0.1209524\paperwidth}
  136. \setlength{\parindent}{0\paperwidth}}
  137. %
  138. \newenvironment{ApxDescript}
  139. {\setlength{\leftskip}{0.0604762\paperwidth}
  140. \setlength{\parindent}{-0.0604762\paperwidth}
  141. \bigskip}
  142. %
  143. \newenvironment{LongRtAlTab2cols}[3]%
  144. % длинная (рабиваемая на страницы) таблица из двух столбцов прижатая вправо
  145. % 1-ый аргумент левый отступ до текста
  146. % 2-ой аргумент правый отступ до текста
  147. % 3-ий аргумент текст определяющий ширину первого столбца
  148. % текст должен удовлетворять требованиям \settowidth
  149. %
  150. {\setlength{\leftskip}{0pt}\setlength{\parindent}{0.0604762\paperwidth}%
  151. \setlength{\linewidth}{\textwidth}% грязный хак для включения таблиц в списки
  152. \setlength{\LTpre}{\smallskipamount}\setlength{\LTpost}{\smallskipamount}%
  153. \setlength{\LTleft}{(#1)-\tabcolsep}%
  154. \SetLenVarWithWidth{\colAlen}{#3}%
  155. \begin{longtable}%
  156. {p{\colAlen}p{\linewidth-\LTleft-\colAlen-3\tabcolsep-(#2)}}}
  157. {\end{longtable}}
  158. %
  159. \newenvironment{LongRtAlTab3cols}[4]%
  160. % длинная (рабиваемая на страницы) таблица из трёх столбцов прижатая вправо
  161. % 1-ый аргумент левый отступ до текста
  162. % 2-ой аргумент правый отступ до текста
  163. % 3-ий аргумент текст определяющий ширину первого столбца
  164. % 4-ий аргумент текст определяющий ширину второго столбца
  165. % тексты должны удовлетворять требованиям \settowidth
  166. %
  167. {\setlength{\leftskip}{0pt}\setlength{\parindent}{0.0604762\paperwidth}%
  168. \setlength{\linewidth}{\textwidth}% грязный хак для включения таблиц в списки
  169. \setlength{\LTpre}{\smallskipamount}\setlength{\LTpost}{\smallskipamount}%
  170. \setlength{\LTleft}{(#1)-\tabcolsep}
  171. \SetLenVarWithWidth{\colAlen}{#3}%
  172. \SetLenVarWithWidth{\colBlen}{#4}%
  173. \begin{longtable}%
  174. {p{\colAlen}p{\colBlen}p{\linewidth-\LTleft-\colAlen-\colBlen-5\tabcolsep-(#2)}}}
  175. {\end{longtable}}
  176. %