-
Notifications
You must be signed in to change notification settings - Fork 0
/
disstyles.tex
195 lines (167 loc) · 11.3 KB
/
disstyles.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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
%%% Переопределение именований, если иначе не сработает %%%
%\gappto\captionsrussian{
% \renewcommand{\chaptername}{Глава}
% \renewcommand{\appendixname}{Приложение} % (ГОСТ Р 7.0.11-2011, 5.7)
%}
%%% Изображения %%%
\graphicspath{{images/}{Dissertation/images/}} % Пути к изображениям
%%% Интервалы %%%
%% По ГОСТ Р 7.0.11-2011, пункту 5.3.6 требуется полуторный интервал
%% Реализация средствами класса (на основе setspace) ближе к типографской классике.
%% И правит сразу и в таблицах (если со звёздочкой)
%\DoubleSpacing* % Двойной интервал
\OnehalfSpacing* % Полуторный интервал
%\setSpacing{1.42} % Полуторный интервал, подобный Ворду (возможно, стоит включать вместе с предыдущей строкой)
%%% Макет страницы %%%
% Выставляем значения полей (ГОСТ 7.0.11-2011, 5.3.7)
\geometry{a4paper, top=2cm, bottom=2cm, left=2.5cm, right=1cm, nofoot, nomarginpar} %, heightrounded, showframe
\setlength{\topskip}{0pt} %размер дополнительного верхнего поля
\setlength{\footskip}{12.3pt} % снимет warning, согласно https://tex.stackexchange.com/a/334346
%%% Выравнивание и переносы %%%
%% http://tex.stackexchange.com/questions/241343/what-is-the-meaning-of-fussy-sloppy-emergencystretch-tolerance-hbadness
%% http://www.latex-community.org/forum/viewtopic.php?p=70342#p70342
\tolerance 1414
\hbadness 1414
\emergencystretch 1.5em % В случае проблем регулировать в первую очередь
\hfuzz 0.3pt
\vfuzz \hfuzz
%\raggedbottom
%\sloppy % Избавляемся от переполнений
\clubpenalty=10000 % Запрещаем разрыв страницы после первой строки абзаца
\widowpenalty=10000 % Запрещаем разрыв страницы после последней строки абзаца
\brokenpenalty=4991 % Ограничение на разрыв страницы, если строка заканчивается переносом
%%% Блок управления параметрами для выравнивания заголовков в тексте %%%
\newlength{\otstuplen}
\setlength{\otstuplen}{\theotstup\parindent}
\ifnumequal{\value{headingalign}}{0}{% выравнивание заголовков в тексте
\newcommand{\hdngalign}{\centering} % по центру
\newcommand{\hdngaligni}{}% по центру
\setlength{\otstuplen}{0pt}
}{%
\newcommand{\hdngalign}{} % по левому краю
\newcommand{\hdngaligni}{\hspace{\otstuplen}} % по левому краю
} % В обоих случаях вроде бы без переноса, как и надо (ГОСТ Р 7.0.11-2011, 5.3.5)
%%% Оглавление %%%
\renewcommand{\cftchapterdotsep}{\cftdotsep} % отбивка точками до номера страницы начала главы/раздела
%% Переносить слова в заголовке не допускается (ГОСТ Р 7.0.11-2011, 5.3.5). Заголовки в оглавлении должны точно повторять заголовки в тексте (ГОСТ Р 7.0.11-2011, 5.2.3). Прямого указания на запрет переносов в оглавлении нет, но по той же логике невнесения искажений в смысл, лучше в оглавлении не переносить:
\setrmarg{2.55em plus1fil} %To have the (sectional) titles in the ToC, etc., typeset ragged right with no hyphenation
\renewcommand{\cftchapterpagefont}{\normalfont} % нежирные номера страниц у глав в оглавлении
\renewcommand{\cftchapterleader}{\cftdotfill{\cftchapterdotsep}}% нежирные точки до номеров страниц у глав в оглавлении
%\renewcommand{\cftchapterfont}{} % нежирные названия глав в оглавлении
\ifnumgreater{\value{headingdelim}}{0}{%
\renewcommand\cftchapteraftersnum{.\space} % добавляет точку с пробелом после номера раздела в оглавлении
}{}
\ifnumgreater{\value{headingdelim}}{1}{%
\renewcommand\cftsectionaftersnum{.\space} % добавляет точку с пробелом после номера подраздела в оглавлении
\renewcommand\cftsubsectionaftersnum{.\space} % добавляет точку с пробелом после номера подподраздела в оглавлении
\renewcommand\cftsubsubsectionaftersnum{.\space} % добавляет точку с пробелом после номера подподподраздела в оглавлении
\AfterEndPreamble{% без этого polyglossia сама всё переопределяет
\setsecnumformat{\csname the#1\endcsname.\space}
}
}{%
\AfterEndPreamble{% без этого polyglossia сама всё переопределяет
\setsecnumformat{\csname the#1\endcsname\quad}
}
}
\renewcommand*{\cftappendixname}{\appendixname\space} % Слово Приложение в оглавлении
%%% Колонтитулы %%%
% Порядковый номер страницы печатают на середине верхнего поля страницы (ГОСТ Р 7.0.11-2011, 5.3.8)
\makeevenhead{plain}{}{\rmfamily\thepage}{}
\makeoddhead{plain}{}{\rmfamily\thepage}{}
\makeevenfoot{plain}{}{}{}
\makeoddfoot{plain}{}{}{}
\pagestyle{plain}
%%% добавить Стр. над номерами страниц в оглавлении
%%% http://tex.stackexchange.com/a/306950
\newif\ifendTOC
\newcommand*{\tocheader}{
\ifnumequal{\value{pgnum}}{1}{%
\ifendTOC\else\hbox to \linewidth%
{\noindent{}~\hfill{Стр.}}\par%
\ifnumless{\value{page}}{3}{}{%
\vspace{0.5\onelineskip}
}
\afterpage{\tocheader}
\fi%
}{}%
}%
%%% Оформление заголовков глав, разделов, подразделов %%%
%% Работа должна быть выполнена ... размером шрифта 12-14 пунктов (ГОСТ Р 7.0.11-2011, 5.3.8). То есть не должно быть надписей шрифтом более 14. Так и поставим.
%% Эти установки будут давать одинаковый результат независимо от выбора базовым шрифтом 12 пт или 14 пт
\newcommand{\basegostsectionfont}{\fontsize{14pt}{16pt}\selectfont\bfseries}
\makechapterstyle{thesisgost}{%
\chapterstyle{default}
\setlength{\beforechapskip}{0pt}
\setlength{\midchapskip}{0pt}
\setlength{\afterchapskip}{\theintvl\curtextsize}
\renewcommand*{\chapnamefont}{\basegostsectionfont}
\renewcommand*{\chapnumfont}{\basegostsectionfont}
\renewcommand*{\chaptitlefont}{\basegostsectionfont}
\renewcommand*{\chapterheadstart}{}
\ifnumgreater{\value{headingdelim}}{0}{%
\renewcommand*{\afterchapternum}{.\space} % добавляет точку с пробелом после номера раздела
}{%
\renewcommand*{\afterchapternum}{\quad} % добавляет \quad после номера раздела
}
\renewcommand*{\printchapternum}{\hdngaligni\hdngalign\chapnumfont \thechapter}
\renewcommand*{\printchaptername}{}
\renewcommand*{\printchapternonum}{\hdngaligni\hdngalign}
}
\makeatletter
\makechapterstyle{thesisgostchapname}{%
\chapterstyle{thesisgost}
\renewcommand*{\printchapternum}{\chapnumfont \thechapter}
\renewcommand*{\printchaptername}{\hdngaligni\hdngalign\chapnamefont \@chapapp} %
}
\makeatother
\chapterstyle{thesisgost}
\setsecheadstyle{\basegostsectionfont\hdngalign}
\setsecindent{\otstuplen}
\setsubsecheadstyle{\basegostsectionfont\hdngalign}
\setsubsecindent{\otstuplen}
\setsubsubsecheadstyle{\basegostsectionfont\hdngalign}
\setsubsubsecindent{\otstuplen}
\sethangfrom{\noindent #1} %все заголовки подразделов центрируются с учетом номера, как block
\ifnumequal{\value{chapstyle}}{1}{%
\chapterstyle{thesisgostchapname}
\renewcommand*{\cftchaptername}{\chaptername\space} % будет вписано слово Глава перед каждым номером раздела в оглавлении
}{}%
%%% Интервалы между заголовками
\setbeforesecskip{\theintvl\curtextsize}% Заголовки отделяют от текста сверху и снизу тремя интервалами (ГОСТ Р 7.0.11-2011, 5.3.5).
\setaftersecskip{\theintvl\curtextsize}
\setbeforesubsecskip{\theintvl\curtextsize}
\setaftersubsecskip{\theintvl\curtextsize}
\setbeforesubsubsecskip{\theintvl\curtextsize}
\setaftersubsubsecskip{\theintvl\curtextsize}
%%% Вертикальные интервалы глав (\chapter) в оглавлении как и у заголовков
% раскомментировать следующие 2
% \setlength{\cftbeforechapterskip}{0pt plus 0pt} % ИЛИ эти 2 строки из учебника
% \renewcommand*{\insertchapterspace}{}
% или эту
% \renewcommand*{\cftbeforechapterskip}{0em}
%%% Блок дополнительного управления размерами заголовков
\ifnumequal{\value{headingsize}}{1}{% Пропорциональные заголовки и базовый шрифт 14 пт
\renewcommand{\basegostsectionfont}{\large\bfseries}
\renewcommand*{\chapnamefont}{\Large\bfseries}
\renewcommand*{\chapnumfont}{\Large\bfseries}
\renewcommand*{\chaptitlefont}{\Large\bfseries}
}{}
%%% Счётчики %%%
%% Упрощённые настройки шаблона диссертации: нумерация формул, таблиц, рисунков
\ifnumequal{\value{contnumeq}}{1}{%
\counterwithout{equation}{chapter} % Убираем связанность номера формулы с номером главы/раздела
}{}
\ifnumequal{\value{contnumfig}}{1}{%
\counterwithout{figure}{chapter} % Убираем связанность номера рисунка с номером главы/раздела
}{}
\ifnumequal{\value{contnumtab}}{1}{%
\counterwithout{table}{chapter} % Убираем связанность номера таблицы с номером главы/раздела
}{}
\AfterEndPreamble{
%% регистрируем счётчики в системе totcounter
\regtotcounter{totalcount@figure}
\regtotcounter{totalcount@table} % Если иным способом поставить в преамбуле то ошибка в числе таблиц
\regtotcounter{TotPages} % Если иным способом поставить в преамбуле то ошибка в числе страниц
\newtotcounter{totalappendix}
\newtotcounter{totalchapter}
}