-
Notifications
You must be signed in to change notification settings - Fork 1
/
styles.tex
142 lines (121 loc) · 9.32 KB
/
styles.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
%%% Макет страницы %%%
% Выставляем значения полей (ГОСТ 7.0.11-2011, 5.3.7)
\geometry{a4paper,top=2cm,bottom=2cm,left=2.5cm,right=1cm}
%%% Кодировки и шрифты %%%
\ifxetexorluatex
\setmainlanguage[babelshorthands=true]{russian} % Язык по-умолчанию русский с поддержкой приятных команд пакета babel
\setotherlanguage{english} % Дополнительный язык = английский (в американской вариации по-умолчанию)
\setmonofont{Courier New}
\newfontfamily\cyrillicfonttt{Courier New}
\ifXeTeX
\defaultfontfeatures{Ligatures=TeX,Mapping=tex-text}
\else
\defaultfontfeatures{Ligatures=TeX}
\fi
\setmainfont{Times New Roman}
\newfontfamily\cyrillicfont{Times New Roman}
\setsansfont{Arial}
\newfontfamily\cyrillicfontsf{Arial}
\else
\IfFileExists{pscyr.sty}{\renewcommand{\rmdefault}{ftm}}{}
\fi
%%% Интервалы %%%
%linespread-реализация ближе к реализации полуторного интервала в ворде.
%setspace реализация заточена под шрифты 10, 11, 12pt, под остальные кегли хуже, но всё же ближе к типографской классике.
%\linespread{1.42} % Полуторный интервал (ГОСТ Р 7.0.11-2011, 5.3.6)
%%% Выравнивание и переносы %%%
\sloppy % Избавляемся от переполнений
\clubpenalty=10000 % Запрещаем разрыв страницы после первой строки абзаца
\widowpenalty=10000 % Запрещаем разрыв страницы после последней строки абзаца
%%% Подписи %%%
\captionsetup{%
singlelinecheck=off, % Многострочные подписи, например у таблиц
skip=2pt, % Вертикальная отбивка между подписью и содержимым рисунка или таблицы определяется ключом
justification=centering, % Центрирование подписей, заданных командой \caption
}
%%% Рисунки %%%
\DeclareCaptionLabelSeparator*{emdash}{~--- } % (ГОСТ 2.105, 4.3.1)
\captionsetup[figure]{labelsep=emdash,font=onehalfspacing,position=bottom}
%%% Таблицы %%%
\ifthenelse{\equal{\thetabcap}{0}}{%
\newcommand{\tabcapalign}{\raggedright} % по левому краю страницы или аналога parbox
}
\ifthenelse{\equal{\thetablaba}{0} \AND \equal{\thetabcap}{1}}{%
\newcommand{\tabcapalign}{\raggedright} % по левому краю страницы или аналога parbox
}
\ifthenelse{\equal{\thetablaba}{1} \AND \equal{\thetabcap}{1}}{%
\newcommand{\tabcapalign}{\centering} % по центру страницы или аналога parbox
}
\ifthenelse{\equal{\thetablaba}{2} \AND \equal{\thetabcap}{1}}{%
\newcommand{\tabcapalign}{\raggedleft} % по правому краю страницы или аналога parbox
}
\ifthenelse{\equal{\thetabtita}{0} \AND \equal{\thetabcap}{1}}{%
\newcommand{\tabtitalign}{\raggedright} % по левому краю страницы или аналога parbox
}
\ifthenelse{\equal{\thetabtita}{1} \AND \equal{\thetabcap}{1}}{%
\newcommand{\tabtitalign}{\centering} % по центру страницы или аналога parbox
}
\ifthenelse{\equal{\thetabtita}{2} \AND \equal{\thetabcap}{1}}{%
\newcommand{\tabtitalign}{\raggedleft} % по правому краю страницы или аналога parbox
}
\DeclareCaptionFormat{tablenocaption}{\tabcapalign #1\strut} % Наименование таблицы отсутствует
\ifthenelse{\equal{\thetabcap}{0}}{%
\DeclareCaptionFormat{tablecaption}{\tabcapalign #1#2#3}
\captionsetup[table]{labelsep=emdash} % тире как разделитель идентификатора с номером от наименования
}{%
\DeclareCaptionFormat{tablecaption}{\tabcapalign #1#2\par% % Идентификатор таблицы на отдельной строке
\tabtitalign{#3}} % Наименование таблицы строкой ниже
\captionsetup[table]{labelsep=space} % пробельный разделитель идентификатора с номером от наименования
}
\captionsetup[table]{format=tablecaption,singlelinecheck=off,font=onehalfspacing,position=top,skip=0pt} % многострочные наименования и прочее
\DeclareCaptionLabelFormat{continued}{Продолжение таблицы~#2}
%%% Подписи подрисунков %%%
\renewcommand{\thesubfigure}{\asbuk{subfigure}} % Буквенные номера подрисунков
\captionsetup[subfigure]{font={normalsize}, % Шрифт подписи названий подрисунков (не отличается от основного)
labelformat=brace, % Формат обозначения подрисунка
justification=centering, % Выключка подписей (форматирование), один из вариантов
}
%\DeclareCaptionFont{font12pt}{\fontsize{12pt}{13pt}\selectfont} % объявляем шрифт 12pt для использования в подписях, тут же надо интерлиньяж объявлять, если не наследуется
%\captionsetup[subfigure]{font={font12pt}} % Шрифт подписи названий подрисунков (всегда 12pt)
%%% Настройки гиперссылок %%%
\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},
}
%%% Шаблон %%%
\DeclareRobustCommand{\todo}{\textcolor{red}} % решаем проблему превращения названия цвета в результате \MakeUppercase, http://tex.stackexchange.com/a/187930/79756 , \DeclareRobustCommand protects \todo from expanding inside \MakeUppercase
\setlength{\parindent}{2.5em} % Абзацный отступ. Должен быть одинаковым по всему тексту и равен пяти знакам (ГОСТ Р 7.0.11-2011, 5.3.7).
%%% Списки %%%
% Используем короткое тире (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)}
\setlist{nosep,% % Единый стиль для всех списков (пакет enumitem), без дополнительных интервалов.
labelindent=\parindent,leftmargin=*% % Каждый пункт, подпункт и перечисление записывают с абзацного отступа (ГОСТ 2.105-95, 4.1.8)
}