%%% Проверка используемого 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 }{}