You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

229 lines
11 KiB
TeX

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

%%% Проверка используемого TeX-движка %%%
\newif\ifxetexorluatex % определяем новый условный оператор (http://tex.stackexchange.com/a/47579)
\ifxetex
\xetexorluatextrue
\else
\ifluatex
\xetexorluatextrue
\else
\xetexorluatexfalse
\fi
\fi
\newif\ifsynopsis % Условие, проверяющее, что документ --- автореферат
\usepackage{etoolbox}[2015/08/02] % Для продвинутой проверки разных условий
\providebool{presentation}
\usepackage{comment} % Позволяет убирать блоки текста (добавляет
% окружение comment и команду \excludecomment)
%%% Поля и разметка страницы %%%
\usepackage{pdflscape} % Для включения альбомных страниц
\usepackage{geometry} % Для последующего задания полей
%%% Математические пакеты %%%
\usepackage{amsthm,amsmath,amscd} % Математические дополнения от AMS
\usepackage{amsfonts,amssymb} % Математические дополнения от AMS
\usepackage{mathtools} % Добавляет окружение multlined
\usepackage{xfrac} % Красивые дроби
\usepackage[
locale = DE,
list-separator = {;\,},
list-final-separator = {;\,},
list-pair-separator = {;\,},
list-units = single,
range-units = single,
range-phrase={\text{\ensuremath{-}}},
% quotient-mode = fraction, % красивые дроби могут не соответствовать ГОСТ
fraction-function = \sfrac,
separate-uncertainty,
]{siunitx}[=v2] % Размерности SI
\sisetup{inter-unit-product = \ensuremath{{}\cdot{}}}
% Кириллица в нумерации subequations
% Для правильной работы требуется выполнение сразу после загрузки пакетов
\patchcmd{\subequations}{\def\theequation{\theparentequation\alph{equation}}}
{\def\theequation{\theparentequation\asbuk{equation}}}
{\typeout{subequations patched}}{\typeout{subequations not patched}}
%%%% Установки для размера шрифта 14 pt %%%%
%% Формирование переменных и констант для сравнения (один раз для всех подключаемых файлов)%%
%% должно располагаться до вызова пакета fontspec или polyglossia, потому что они сбивают его работу
\newlength{\curtextsize}
\newlength{\bigtextsize}
\setlength{\bigtextsize}{13.9pt}
\makeatletter
%\show\f@size % неплохо для отслеживания, но вызывает стопорение процесса,
% если документ компилируется без команды -interaction=nonstopmode
\setlength{\curtextsize}{\f@size pt}
\makeatother
%%% Кодировки и шрифты %%%
\ifxetexorluatex
\ifpresentation
\providecommand*\autodot{} % quick fix for polyglossia 1.50
\fi
\PassOptionsToPackage{no-math}{fontspec} % https://tex.stackexchange.com/a/26295/104425
\usepackage{polyglossia}[2014/05/21] % Поддержка многоязычности
% (fontspec подгружается автоматически)
\else
%%% Решение проблемы копирования текста в буфер кракозябрами
\ifnumequal{\value{usealtfont}}{0}{}{
\input glyphtounicode.tex
\input glyphtounicode-cmr.tex %from pdfx package
\pdfgentounicode=1
}
\usepackage{cmap} % Улучшенный поиск русских слов в полученном pdf-файле
\ifnumequal{\value{usealtfont}}{2}{}{
\defaulthyphenchar=127 % Если стоит до fontenc, то переносы
% не впишутся в выделяемый текст при
% копировании его в буфер обмена
}
\usepackage{textcomp}
\usepackage[T1,T2A]{fontenc} % Поддержка русских букв
\ifnumequal{\value{usealtfont}}{1}{% Используется pscyr, при наличии
\IfFileExists{pscyr.sty}{\usepackage{pscyr}}{} % Подключение pscyr
}{}
\usepackage[utf8]{inputenc}[2014/04/30] % Кодировка utf8
\usepackage[english, russian]{babel}[2014/03/24]% Языки: русский, английский
\makeatletter\AtBeginDocument{\let\@elt\relax}\makeatother % babel 3.40 fix
\ifnumequal{\value{usealtfont}}{2}{
% http://dxdy.ru/post1238763.html#p1238763
\usepackage[scaled=0.914]{XCharter}[2017/12/19] % Подключение русифицированных шрифтов XCharter
\usepackage[charter, vvarbb, scaled=1.048]{newtxmath}[2017/12/14]
\ifpresentation
\else
\setDisplayskipStretch{-0.078}
\fi
}{}
\fi
%%% Оформление абзацев %%%
\ifpresentation
\else
\indentafterchapter % Красная строка после заголовков типа chapter
\usepackage{indentfirst}
\fi
%%% Цвета %%%
\ifpresentation
\else
\usepackage[dvipsnames, table, hyperref]{xcolor} % Совместимо с tikz
\fi
%%% Таблицы %%%
\usepackage{longtable,ltcaption} % Длинные таблицы
\usepackage{multirow,makecell} % Улучшенное форматирование таблиц
\usepackage{tabu, tabulary} % таблицы с автоматически подбирающейся
% шириной столбцов (tabu обязательно
% до hyperref вызывать)
\makeatletter
%https://github.com/tabu-issues-for-future-maintainer/tabu/issues/26
\@ifpackagelater{longtable}{2020/02/07}{
\def\tabuendlongtrial{%
\LT@echunk \global\setbox\LT@gbox \hbox{\unhbox\LT@gbox}\kern\wd\LT@gbox
\LT@get@widths
}%
}{}
\makeatother
\usepackage{threeparttable} % автоматический подгон ширины подписи таблицы
%%% Общее форматирование
\usepackage{soulutf8}% Поддержка переносоустойчивых подчёркиваний и зачёркиваний
\usepackage{icomma} % Запятая в десятичных дробях
%%% Оптимизация расстановки переносов и длины последней строки абзаца
\IfFileExists{impnattypo.sty}{% проверка установленности пакета impnattypo
\ifluatex
\ifnumequal{\value{draft}}{1}{% Черновик
\usepackage[hyphenation, lastparline, nosingleletter, homeoarchy,
rivers, draft]{impnattypo}
}{% Чистовик
\usepackage[hyphenation, lastparline, nosingleletter]{impnattypo}
}
\else
\usepackage[hyphenation, lastparline]{impnattypo}
\fi
}{}
%% Векторная графика
\usepackage{tikz} % Продвинутый пакет векторной графики
\usetikzlibrary{chains} % Для примера tikz рисунка
\usetikzlibrary{shapes.geometric} % Для примера tikz рисунка
\usetikzlibrary{shapes.symbols} % Для примера tikz рисунка
\usetikzlibrary{arrows} % Для примера tikz рисунка
%%% Гиперссылки %%%
\ifxetexorluatex
\let\CYRDZE\relax
\fi
\usepackage{hyperref}[2012/11/06]
%%% Изображения %%%
\usepackage{graphicx}[2014/04/25] % Подключаем пакет работы с графикой
\usepackage{caption} % Подписи рисунков и таблиц
\usepackage{subcaption} % Подписи подрисунков и подтаблиц
\usepackage{pdfpages} % Добавление внешних pdf файлов
%%% Счётчики %%%
\usepackage{aliascnt}
\usepackage[figure,table]{totalcount} % Счётчик рисунков и таблиц
\usepackage{totcount} % Пакет создания счётчиков на основе последнего номера
% подсчитываемого элемента (может требовать дважды
% компилировать документ)
\usepackage{totpages} % Счётчик страниц, совместимый с hyperref (ссылается
% на номер последней страницы). Желательно ставить
% последним пакетом в преамбуле
%%% Продвинутое управление групповыми ссылками (пока только формулами) %%%
\ifpresentation
\else
\usepackage[russian]{cleveref} % cleveref имеет сложности со считыванием
% языка из babel. Такое решение русификации вывода выбрано вместо
% определения в documentclass из опасности что-то лишнее передать во все
% остальные пакеты, включая библиографию.
% Добавление возможности использования пробелов в \labelcref
% https://tex.stackexchange.com/a/340502/104425
\usepackage{kvsetkeys}
\makeatletter
\let\org@@cref\@cref
\renewcommand*{\@cref}[2]{%
\edef\process@me{%
\noexpand\org@@cref{#1}{\zap@space#2 \@empty}%
}\process@me
}
\makeatother
\fi
\usepackage{placeins} % для \FloatBarrier
\ifnumequal{\value{draft}}{1}{% Черновик
\usepackage[firstpage]{draftwatermark}
\SetWatermarkText{DRAFT}
\SetWatermarkFontSize{14pt}
\SetWatermarkScale{15}
\SetWatermarkAngle{45}
}{}
%%% Цитата, не приводимая в автореферате:
% возможно, актуальна только для biblatex
%\newcommand{\citeinsynopsis}[1]{\ifsynopsis\else ~\cite{#1} \fi}
% если текущий процесс запущен библиотекой tikz-external, то прекомпиляция должна быть включена
\ifdefined\tikzexternalrealjob
\setcounter{imgprecompile}{1}
\fi
\ifnumequal{\value{imgprecompile}}{1}{% Только если у нас включена предкомпиляция
\usetikzlibrary{external} % подключение возможности предкомпиляции
\tikzexternalize[prefix=images/cache/,optimize command away=\includepdf] % activate! % здесь можно указать отдельную папку для скомпилированных файлов
\ifxetex
\tikzset{external/up to date check={diff}}
\fi
}{}