├── example ├── example.pdf ├── main.c ├── bibliography.bib └── example.tex ├── .gitignore ├── LICENSE ├── inputs ├── toc.tex ├── title.tex └── preamble.tex └── README.md /example/example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vpunch/gost732/HEAD/example/example.pdf -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.aux 2 | *.bbl 3 | *.bcf 4 | *.blg 5 | *.fdb_latexmk 6 | *.fls 7 | *.log 8 | *.run.xml 9 | *.gz 10 | *.synctex(busy) 11 | *.toc 12 | -------------------------------------------------------------------------------- /example/main.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) 4 | { 5 | printf("Hello, world!\nHello, world!\nHello, world!\nHello, world!\n"); 6 | return 0; 7 | } 8 | -------------------------------------------------------------------------------- /example/bibliography.bib: -------------------------------------------------------------------------------- 1 | @Article{ml, 2 | author = {Thushan Ganegedara}, 3 | translator = {Станислав Рунов}, 4 | title = {Word2Vec: как работать с векторными представлениями слов}, 5 | year = {2018}, 6 | origlanguage = {english}, 7 | language = {russian}, 8 | media = {eresource}, 9 | note = {Режим доступа: \url{https://neurohive.io/ru/osnovy-data-science/word2vec-vektornye-predstavlenija-slov-dlja-mashinnogo-obuchenija/}}, 10 | } 11 | @Manual{bib, 12 | author = {Олег Доманов}, 13 | title = {Оформление библиографии по ГОСТ 7.0.5-2008}, 14 | year = {2020}, 15 | language = {russian}, 16 | } 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Panchishin Ivan (rot1tweiler@gmail.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /inputs/toc.tex: -------------------------------------------------------------------------------- 1 | \begingroup 2 | 3 | \parindent 0pt 4 | \newlength{\pagewidth}\setlength{\pagewidth}{1.1em} 5 | 6 | \newlength{\sectnum}\setlength{\sectnum}{8.4em} 7 | \newlength{\ssectnum}\setlength{\ssectnum}{1em} 8 | \newlength{\sssectnum}\setlength{\sssectnum}{2em} 9 | 10 | \newlength{\sssectindent}\setlength{\sssectindent}{2em} 11 | 12 | \newcommand*{\entrybody}{% 13 | \raggedright% 14 | \etocname\nobreak% 15 | \leaders\etoctoclineleaders\hfill% 16 | \rlap{\makebox[\pagewidth][r]{\etocpage}}% 17 | \vspace{0.56em}% хак для отступа 18 | } 19 | 20 | \etocsetstyle{section} 21 | {} 22 | {\leavevmode\etocifnumbered{\leftskip \sectnum}{\leftskip 0}} 23 | {\normalsize\etocifnumbered% 24 | {\llap{\makebox[\sectnum][l]{ПРИЛОЖЕНИЕ \etocnumber}}% 25 | \parbox[t][][t]{\textwidth-\sectnum-\pagewidth}{\entrybody}}% 26 | {\parbox[t][][t]{\textwidth-\pagewidth}{\entrybody}}\par} 27 | {} 28 | \etocsetstyle{subsection} 29 | {} 30 | {\leavevmode\leftskip \ssectnum} 31 | {\normalsize\llap{\makebox[\ssectnum][l]{\etocnumber}}% 32 | \parbox[t][][t]{\textwidth-\ssectnum-\pagewidth}{\entrybody}\par} 33 | {} 34 | \etocsetstyle{subsubsection} 35 | {} 36 | {\leavevmode\setlength{\leftskip}{\sssectnum+\sssectindent}\relax} 37 | {\normalsize\llap{\makebox[\sssectnum][l]{\etocnumber}}% 38 | \parbox[t][][t]{\textwidth-\sssectnum-\pagewidth-\sssectindent}{\entrybody}\par} 39 | {} 40 | 41 | \etocsettocstyle{\hidedstructel{СОДЕРЖАНИЕ}}{} 42 | 43 | \tableofcontents 44 | 45 | \endgroup 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # gost732 2 | 3 | ## Описание 4 | 5 | Преамбула и другие части LaTeX-документа для соответствия ГОСТ 6 | 7.32-2017. Во время разработки стиля упор делался на лаконичность и 7 | использование актуальных и поддерживаемых инструментов. 8 | 9 | Увидеть пример использования, некоторые рассуждения и представление 10 | документа можно в `example`. 11 | 12 | Список добавленных команд: 13 | 14 | - `\structel{НАЗВАНИЕ}` - создать структурный элемент, 15 | - `\hidedstructel{НАЗВАНИЕ}` - то же, но не попадает в сожержание, 16 | - `\annex{Название}` - создать приложение, 17 | - `\sect{Название}` - создать раздел, 18 | - `\subsect{Название}` - создать подраздел, 19 | - `\parag Содержание` - создать пункт, 20 | - `\subparag Содержание` - создать подпункт, 21 | - окружение `asblist` - создать список, 22 | - `\fig[0.8]{path/to/file}{Название}` - вставить рисунок, 23 | - `\lst{path/to/file}{Название}` - вставить листинг из файла, 24 | - окружение `codepiece` - вставить листинг из документа, 25 | - `tbl{метка}{Название}{N{3cm}N{3cm}}` - создать простую таблицу, 26 | - `thead<>[2]{6cm+2\tabcolsep}{Название}` - создать заголовок таблицы, 27 | - `tabcode` - вставить код в таблицу, 28 | - `longtbl{метка}{Название}{N{1cm}N{2cm}N{3cm}}` - создать длинную таблцу, 29 | - `\showbib` - вывести раздел с источниками. 30 | 31 | ## Библиография 32 | 33 | Для формирования библиографии используется программа `biber`. Она должна быть 34 | установлена. Пример установки для *ArchLinux*: `sudo pacman -S biber`. 35 | 36 | Список литературы должен быть определен в файле `bibliography.bib`, как это 37 | сделано в примере (см. `example`). 38 | -------------------------------------------------------------------------------- /inputs/title.tex: -------------------------------------------------------------------------------- 1 | \newcommand{\signplace}{\underline{\hspace{40mm}}} 2 | \newcommand{\dateblank}{% 3 | <<\underline{\hspace{10mm}}>> \underline{\hspace{30mm}} 2020 г.% 4 | } 5 | \newlength{\twointerv}\setlength{\twointerv}{28.34pt} 6 | 7 | \begin{titlepage} 8 | \singlespacing 9 | \setlength{\parindent}{0pt} 10 | \begin{center} 11 | Министерство науки и высшего образования Российской Федерации\\ 12 | Фереральное государственное бюджетное образовательное учреждение 13 | высшего образования\\ 14 | ЮГОРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ\\ 15 | (ЮГУ) 16 | \end{center} 17 | 18 | \vspace{\twointerv} 19 | 20 | УДК: 004.89 21 | 22 | \vspace{\twointerv} 23 | 24 | \setlength{\tabcolsep}{0pt} 25 | \begin{tabular}{N{0.5\textwidth}N{80mm}} 26 | СОГЛАСОВАНО & УТВЕРЖДАЮ\\ 27 | Доцент ИЦЭ, & Директор ИЦЭ,\\ 28 | к.т.н & к.э.н\\ 29 | \signplace{} Л.Н. Толстой & \signplace{} А.П. Чехов\\ 30 | \dateblank{} & \dateblank{} 31 | \end{tabular} 32 | 33 | \vspace{\twointerv} 34 | 35 | \begin{center} 36 | ПОЯСНИТЕЛЬНАЯ ЗАПИСКА\\ 37 | К ВЫПОЛНЕННОЙ РАБОТЕ\\ 38 | \vspace{\twointerv} 39 | СТИЛЬ, ОБЕСПЕЧИВАЮЩИЙ СООТВЕТСТВИЕ ДОКУМЕНТОВ, ВЫПОЛНЕННЫХ В СИСТЕМЕ 40 | ВЕРСТКИ LATEX, ГОСТ 7.32-2017\\ 41 | (заключительный) 42 | \end{center} 43 | 44 | \vfill 45 | 46 | \begin{tabular}{N{70mm}N{80mm}} 47 | Научный руководитель,\\ 48 | к.т.н & \signplace{} А.С. Пушкин\\ 49 | \vspace{5mm} 50 | Исполнитель,\\ 51 | студент группы 1162б & \signplace{} И.Р. Панчишин 52 | \end{tabular} 53 | 54 | \vfill 55 | 56 | \begin{center} 57 | Ханты-Мансийск 2020 58 | \end{center} 59 | \end{titlepage} 60 | 61 | \setcounter{page}{2} 62 | -------------------------------------------------------------------------------- /inputs/preamble.tex: -------------------------------------------------------------------------------- 1 | \documentclass[a4paper,14pt]{extarticle} 2 | 3 | % кодировка 4 | \usepackage[utf8]{inputenc} 5 | \usepackage[T2A]{fontenc} 6 | 7 | % поля 8 | \usepackage[left=30mm,right=15mm,top=20mm,bottom=20mm]{geometry} 9 | 10 | % переносы слов 11 | \usepackage[english,russian]{babel} 12 | 13 | % шрифт Таймс 14 | \usepackage{tempora} 15 | \usepackage{newtxmath} 16 | 17 | % межстрочный интервал 18 | \usepackage[onehalfspacing]{setspace} 19 | 20 | % отступ первой строки 21 | \usepackage{indentfirst} 22 | \setlength{\parindent}{1.25cm} 23 | 24 | % скрытый структурный элемент 25 | \newcommand{\hidedstructel}[1]{% 26 | \clearpage 27 | \section*{#1}% 28 | } 29 | 30 | % структурный элемент 31 | \newcommand{\structel}[1]{% 32 | \hidedstructel{#1} 33 | \addcontentsline{toc}{section}{#1}% 34 | } 35 | 36 | % счетчик приложений 37 | \usepackage{totcount} 38 | \newtotcounter{annexcount} 39 | 40 | % приложение 41 | \renewcommand{\thesection}{\Asbuk{section}} 42 | \newcommand{\annex}[1]{% 43 | \stepcounter{annexcount}% 44 | \clearpage 45 | \section{#1}% 46 | } 47 | 48 | % оформление структурного элемента и приложения 49 | \usepackage{titlesec} 50 | \titleformat{\section} 51 | [display] % форма 52 | {\filcenter\bfseries} % формат полностью 53 | {ПРИЛОЖЕНИЕ \thesection} % метка 54 | {} % отступ от метки 55 | {} % код перед телом 56 | 57 | % раздел 58 | \newcommand{\sect}[1]{% 59 | \clearpage 60 | \setcounter{figure}{0} % сбросить нумерацию внутри раздела 61 | \setcounter{table}{0} 62 | \setcounter{listing}{0} 63 | \subsection{#1} 64 | \renewcommand{\theparagraph}{\thesubsection.\arabic{paragraph}}% 65 | } 66 | \titleformat{\subsection}{\filright\bfseries}{}{}{\thesubsection\hspace{1em}} 67 | \titlespacing*{\subsection} 68 | {\parindent} % отступ слева 69 | {} % сверху 70 | {} % снизу 71 | \renewcommand{\thesubsection}{\arabic{subsection}} 72 | 73 | % подраздел 74 | \usepackage{placeins} 75 | \newcommand{\subsect}[1]{% 76 | \FloatBarrier 77 | \subsubsection{#1} 78 | \renewcommand{\theparagraph}{\thesubsubsection.\arabic{paragraph}} 79 | } 80 | \titleformat{\subsubsection}{\filright\bfseries}{}{}{\thesubsubsection\hspace{1em}} 81 | \titlespacing*{\subsubsection}{\parindent}{}{} 82 | 83 | % пункт 84 | \newcommand{\parag}{ 85 | \paragraph{} 86 | } 87 | \titleformat{\paragraph}[runin]{}{\theparagraph}{1em}{ } % для отступа 88 | \titlespacing*{\paragraph}{\parindent}{}{} 89 | 90 | % подпункт 91 | \newcommand{\subparag}{ 92 | \subparagraph{} 93 | } 94 | \titleformat{\subparagraph}[runin]{}{\thesubparagraph}{1em}{ } 95 | \titlespacing*{\subparagraph}{\parindent}{}{} 96 | 97 | % содержание 98 | \usepackage{etoc} 99 | \setcounter{tocdepth}{3} 100 | 101 | % глубина нумерации разделов 102 | \setcounter{secnumdepth}{5} 103 | 104 | % перечисления 105 | \usepackage{enumitem} 106 | \setlist{ 107 | topsep=0, % отступ сверху и снизу списка 108 | partopsep=0, % то же самое 109 | leftmargin=0, % отступ слева 110 | labelsep=0, % отступ метки 111 | align=left, % выравнивание метки 112 | listparindent=\parindent, % отступ первой строки абзаца 113 | itemsep=0, % отступ между элементами 114 | parsep=0 % отступ между абзацами и элементами 115 | } 116 | \setlist[itemize]{ 117 | label=--~, % в списках тире короткое, в тексте - длинное 118 | labelwidth=1.2em, 119 | itemindent=\parindent+\labelwidth 120 | } 121 | \setlist[enumerate]{ 122 | label=\arabic*), 123 | labelwidth=1.4em, 124 | itemindent=\parindent+\labelwidth 125 | } 126 | 127 | % перечисление с буквенными метками 128 | \AddEnumerateCounter*{\asbuk}{\c@asbuk}{7} 129 | \newlist{asblist}{enumerate}{2} 130 | \setlist[asblist]{ 131 | label=\asbuk*), 132 | labelwidth=1.4em, 133 | itemindent=\parindent+\labelwidth 134 | } 135 | 136 | % подписи 137 | \usepackage[singlelinecheck=false]{caption} 138 | \DeclareCaptionLabelSeparator{gost}{~---~} 139 | \captionsetup{labelsep=gost} 140 | 141 | % иллюстрация 142 | \newcommand{\fig}[3][1]{ 143 | \begin{figure}[h] 144 | \centering 145 | \includegraphics[width=#1\textwidth]{#2} 146 | \caption{#3}\label{#2} 147 | \end{figure} 148 | } 149 | \renewcommand{\thefigure}{\thesubsection.\arabic{figure}} 150 | \DeclareCaptionLabelFormat{gostfigure}{Рисунок #2} 151 | \captionsetup[figure]{justification=centering, labelformat=gostfigure, position=bottom} 152 | % font=singlespacing по умолчанию 153 | %skip=-6pt 154 | 155 | % листинг 156 | \usepackage[newfloat, cache=false]{minted} 157 | \newcommand{\lst}[2]{ 158 | \begin{listing}[h] 159 | \centering 160 | \caption{#2}\label{#1} 161 | \begin{minipage}[t]{.8\textwidth} 162 | \inputminted[ 163 | fontsize=\small, 164 | frame=single, 165 | breaklines, 166 | linenos 167 | ]{text}{#1} 168 | \end{minipage} 169 | \end{listing} 170 | } 171 | \renewcommand{\thelisting}{\thesubsection.\arabic{listing}} 172 | \DeclareCaptionLabelFormat{custlisting}{Листинг #2} 173 | \captionsetup[listing]{justification=raggedright, labelformat=custlisting, position=top} 174 | 175 | % размер номера строки 176 | \renewcommand{\theFancyVerbLine}{\rmfamily{\small \oldstylenums{\arabic{FancyVerbLine}}}} 177 | 178 | % код в документе 179 | \newenvironment{codepiece}[2] 180 | { 181 | \VerbatimEnvironment 182 | \begin{listing}[h] 183 | \centering 184 | \caption{#2}\label{lst:#1} 185 | \begin{minipage}[t]{.8\textwidth} 186 | \begin{minted}[ 187 | fontsize=\small, 188 | frame=single, 189 | breaklines, 190 | linenos 191 | ]{text} 192 | }{ 193 | \end{minted} 194 | \end{minipage} 195 | \end{listing} 196 | } 197 | 198 | % таблица 199 | \newenvironment{tbl}[3] 200 | { 201 | \begin{table}[h] 202 | \small 203 | \centering 204 | \caption{#2}\label{tbl:#1} 205 | \begin{tabular}{|#3|} 206 | \hline 207 | }{ 208 | \hline 209 | \end{tabular} 210 | \end{table} 211 | } 212 | \renewcommand{\thetable}{\thesubsection.\arabic{table}} 213 | \DeclareCaptionLabelFormat{gosttable}{Таблица #2} 214 | \captionsetup[table]{justification=raggedright, labelformat=gosttable, position=top} 215 | 216 | \usepackage{tabularx} 217 | 218 | % объединение строк 219 | \usepackage{multirow} 220 | \newcommand{\mr}[2]{\multirow[t]{#1}{=}{#2}} 221 | 222 | % колонки 223 | \usepackage{array} 224 | \newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}} 225 | \newcolumntype{N}[1]{>{\raggedright\arraybackslash}p{#1}} 226 | 227 | % заголовок таблицы 228 | \usepackage{xparse} 229 | \NewExpandableDocumentCommand\thead{t< t> O{1} m m}{% 230 | \IfBooleanTF{#1}{% 231 | \IfBooleanTF{#2}{% 232 | \multicolumn{#3}{|M{#4}|}{#5}% 233 | }{% 234 | \multicolumn{#3}{|M{#4}}{#5}% 235 | } 236 | }{% 237 | \IfBooleanTF{#2}{% 238 | \multicolumn{#3}{M{#4}|}{#5}% 239 | }{% 240 | \multicolumn{#3}{M{#4}}{#5}% 241 | }% 242 | }% 243 | } 244 | 245 | % код в таблице 246 | \newenvironment{tabcode}[1] 247 | { 248 | \VerbatimEnvironment 249 | \begin{minipage}[t]{#1\textwidth} 250 | \begin{minted}[fontsize=\small, breaklines]{text} 251 | }{ 252 | \end{minted} 253 | \end{minipage} 254 | } 255 | 256 | % длинная таблица 257 | \usepackage{longtable} 258 | \newenvironment{longtbl}[3] 259 | { 260 | \small 261 | \begin{longtable}{|#3|} 262 | \caption{#2}\label{tbl:#1}\\ 263 | \hline 264 | }{ 265 | \hline 266 | \end{longtable} 267 | } 268 | 269 | % математика 270 | \usepackage{mathtools} % amsmath 271 | \numberwithin{equation}{subsection} 272 | 273 | % графики 274 | \usepackage{tikz, pgfplots} 275 | \pgfplotsset{compat=newest} 276 | 277 | \usepackage{adjustbox} 278 | \usepackage{float} 279 | \usepackage{url} 280 | 281 | % источники 282 | \usepackage[% 283 | backend=biber,% 284 | bibstyle=gost-numeric% 285 | ]{biblatex} 286 | \addbibresource{bibliography.bib} 287 | \newcommand{\showbib}{% 288 | \structel{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ}% 289 | \printbibliography[heading=none]% 290 | } 291 | 292 | % отступы в источниках 293 | \defbibenvironment{bibliography} 294 | {\list 295 | {} 296 | {\setlength{\leftmargin}{0}% 297 | \setlength{\itemindent}{\parindent}% 298 | \setlength{\itemsep}{0}% 299 | \setlength{\parsep}{0}}} 300 | {\endlist} 301 | {\item 302 | \printtext[labelnumberwidth]{% 303 | \printfield{labelprefix}% 304 | \printfield{labelnumber}% 305 | }% 306 | \hspace{0.5em}} 307 | 308 | % метка без точки 309 | \DeclareFieldFormat{labelnumberwidth}{#1} 310 | 311 | % номер последней страницы 312 | \usepackage{lastpage} 313 | 314 | % счетчик источников 315 | \newtotcounter{bibcount} 316 | \AtEveryBibitem{ 317 | \stepcounter{bibcount}% 318 | } 319 | 320 | % счетчики таблиц и рисунков 321 | \usepackage{xassoccnt} 322 | \newtotcounter{tblcount} 323 | \DeclareAssociatedCounters{table}{tblcount} 324 | \newtotcounter{figcount} 325 | \DeclareAssociatedCounters{figure}{figcount} 326 | 327 | % для отладки 328 | %\usepackage{showframe} 329 | %\renewcommand\ShowFrameLinethickness{0.25pt} 330 | %\renewcommand*\ShowFrameColor{\color{red}} 331 | %\usepackage{graphicx} 332 | -------------------------------------------------------------------------------- /example/example.tex: -------------------------------------------------------------------------------- 1 | \input{../inputs/preamble} 2 | 3 | \begin{document} 4 | 5 | \input{../inputs/title} 6 | 7 | \hidedstructel{РЕФЕРАТ} 8 | 9 | Пояснительная записка \pageref{LastPage} с., \total{figcount} рис., 10 | \total{tblcount} табл., \total{bibcount} источн., \total{annexcount} прил. 11 | 12 | ДЕМОНСТРАЦИЯ, СТИЛЬ, СТАНДАРТ, ПРИМЕР ИСПОЛЬЗОВАНИЯ. 13 | 14 | Объектом исследования в данной работе является межгосударственный стандарт под 15 | номером 7.32. 16 | 17 | Цель работы --- написать стиль для системы верски \LaTeX, обеспечивающий 18 | соответствие документов стандарту ГОСТ 7.32-2017. 19 | 20 | \input{../inputs/toc} 21 | 22 | \structel{ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ} 23 | 24 | В настоящей пояснительной записке применяют следующие термины с 25 | соответствующими определениями: 26 | 27 | Обозначение 28 | 29 | Заголовок 30 | 31 | \structel{ВВЕДЕНИЕ ВВЕДЕНИЕ ВВЕДЕНИЕ ВВЕДЕНИЕ ВВЕДЕНИЕ ВВЕДЕНИЕ} 32 | 33 | Рассматриваемый стандарт не является строгим: он не описывает все детали 34 | оформления документа. Это позволяет использующим стандарт организациям уточнять 35 | его по своему усмотрению или сочетать с другими стандартами. 36 | 37 | Данный документ использует разработанный стиль, поэтому вы имеете возможность 38 | оценить его во время чтения. В документе будут приводиться ссылки на внесенные 39 | изменения. 40 | 41 | Используется полуторный межстрочный интервал в ожидании, что объем документа 42 | меньше 500 страниц. 43 | 44 | Размер шрифта состовляет 14 пунктов, хотя стандарт допускает и 12 пунктов. 45 | 46 | В стандарте рекомендуется использовать семейство шрифтов <>, 47 | но оно не является свободным. Поэтому здесь используется семейство со схожим 48 | начертанием. 49 | 50 | Полужирный шрифт используется только в заголовках. \emph{Термины можно выделять 51 | курсивом}. 52 | 53 | Абзацный отступ равен 1,25 см, левое поле --- 30 мм, правое --- 15 мм, верхнее 54 | и нижнее --- 20 мм. 55 | 56 | Номер страницы ставится внизу посередине, титульный лист включается в 57 | нумерацию, но на нем номер не ставится. 58 | 59 | \sect{Оформление содержания} 60 | 61 | \subsect{Анализ рекомендаций} 62 | 63 | Про содержание в стандарте написано в подразделах 5.4 и 6.13. 64 | 65 | Каждая запись выравнена по левому краю, номер страницы --- по правому. Номер 66 | страницы соединяется отточием. Подразделы начинаются после абзацного отступа, 67 | равного двум знакам. 68 | 69 | Про межстрочный интервал и расстояние между записями ничего не написано, но 70 | указано, что <<запись содержания оформляют как отдельный абзац>>, поэтому 71 | данные параметры те же, что и в основной части документа. 72 | 73 | Заголовок раздела при переносе продолжается от уровня своего начала, заголовок 74 | приложения --- <<от уровня записи обозначения этого приложения>>. Рекомендация 75 | по приложению может быть не ясна. Чтобы точно понять, какой отступ у заголовка 76 | приложения на новой строке, можно обратиться к ГОСТ 1.5-2001. По этому госту 77 | оформляются другие госты, и в нем содежится та же рекомендация, с той же 78 | формулировкой. Это значит, что можно посмотреть на отступ, например, в ГОСТ 79 | 7.32 и сделать так же. 80 | 81 | \subsect{Про пункты в содержании} 82 | 83 | В содержание не включаются пункты. По этому поводу в стандарте имеются 84 | противоречия. В пункте 6.2.3 написано, что <<пункты и подпункты могут иметь 85 | только порядковый номер без заголовка>>, но несмотря на это, в 5.4 допускается, 86 | что пункт может иметь заголовок. 87 | 88 | \sect{Оформление обозначений} 89 | 90 | \parag 91 | 92 | Раздел может быть разбит на пункты. Обозначение пунктов состоит из обозначения 93 | включающего уровня и прядкового номера в его пределах, разделенных точкой. Этим 94 | рекомендациям также соответствуют подпункты, разделы и подразделы. 95 | 96 | Про расстояние между обозначением и заголовком в стандарте ничего не 97 | сказано. Я определил его длиной одного символа. 98 | 99 | \parag 100 | 101 | Один пункт не нумеруется, поэтому их два. 102 | 103 | \subparag 104 | 105 | Пункт может быть разбит на подпункты. 106 | 107 | \subparag 108 | 109 | Смысла разбивать пункт на подпункты, если подпункт один --- нет. 110 | 111 | \sect{Заголовок, который состоит из двух предложений. Они отделяются точной} 112 | 113 | Переносы слов в заголовках не допускаются, поэтому он выравнивается по левому 114 | краю. 115 | 116 | В стандарте не сказано, как продолжать заголовок на следующей строке, но есть 117 | пример. Отступ сверху и снизу заголовка также не определяется. 118 | 119 | \subsect{Подраздел, разбитый на пункты} 120 | 121 | \parag 122 | 123 | Подраздел также может быть разбит на пункты и подпункты. 124 | 125 | \parag 126 | 127 | Нумерация пунктов и подпунктов включает нумерацию предыдущего уровня. 128 | 129 | Про перечисления в госте написано в пункте 6.4.6 130 | Пример сложного перечисления из госта: 131 | 132 | \begin{itemize} 133 | \item в машиностроении: 134 | \begin{enumerate} 135 | \item для очистки отливок от формовочной смеси; 136 | \item для очистки лопат ок т урбин авиационных двигателей; 137 | \item для холодной штамповки из лист а; 138 | \end{enumerate} 139 | \item в ремонте техники: 140 | \begin{enumerate} 141 | \item устранение наслоений на внут ренних стенках труб; 142 | \item очистка каналов и отверстий небольшого диаметра от грязи. 143 | \end{enumerate} 144 | \end{itemize} 145 | 146 | В стандарте в одном из примеров можно увидеть использование нескольких абзацев 147 | в одном элементе перечисления. Здесь можно так же. 148 | 149 | Стандарт не определяет отступ вложенных перечислений, но судя по приведенным примерам в госте, 150 | его нет. Здесь я тоже его убрал. 151 | 152 | \begin{asblist} 153 | \item Допускается использовать лиюбой из трех типов меток элементов, 154 | \item вне зависимости от расположения перечисления и вложенности (на этот необходимо ссылаться). 155 | \end{asblist} 156 | 157 | \subsect{Иллюстрации, листинги, таблицы} 158 | 159 | Пример иллюстрации, уменьшенной в 2 раза, приведен на рисунке~\ref{example-image-a}. 160 | 161 | \fig[0.5]{example-image-a}{Очень длинное название иллюстрации, которое имеет один межстрочный интервал} 162 | 163 | Иллюстрация располагается как можно ближе к ссыке, ссылка указывается обязательно. 164 | Иллюстрации нумеруются в пределах раздела, хотя допускается общая нумерация. 165 | Иллюстрации могут не имень названия, как в случае с рисунком~\ref{example-image-b}. 166 | 167 | \fig[0.6]{example-image-b}{} 168 | 169 | Содержимое файла с программным кодом представлено в листинге~\ref{main.c}. 170 | 171 | \lst{main.c}{Привет, C!} 172 | 173 | В стандарте нет рекомендаций по оформлению листингов. Я сделал листинги похожими на таблицу. 174 | 175 | Можно писать код в файле документа. Такой код представлен в листинге~\ref{lst:in-place code}. 176 | 177 | Оформление таблиц схоже с оформлением иллюстраций. 178 | Если графы или строки таблицы были пронумерованы, 179 | в первой части, то в последующих можно указывать только их. Заголовки граф и строк указываются 180 | без точки вконце, в единственном числе. Заголовки граф выравниваются по центру, строк --- по 181 | левому краю. Горизонтальные и вертикальные линии \emph{внутри} таблицы допускается не проводить. 182 | Текст в таблице может быть меньше основного текста. 183 | 184 | Таблица~\ref{tbl:simple} служит простым примером. 185 | 186 | \begin{tbl}{simple} 187 | {Среднемесячная начисленная заработная плата наёмных работников в 188 | организациях, у индивидуальных предпринимателей и физических лиц} 189 | {N{5cm}*{5}{M{1cm}}} 190 | 191 | \thead<{5cm}{Субъект} & \thead>[5]{5cm+8\tabcolsep}{Год} \\ 192 | & \thead{1cm}{2015} & \thead{1cm}{2016} & \thead{1cm}{2017} & 193 | \thead{1cm}{2018} & \thead>{1cm}{2019} \\\hline 194 | 195 | ХМАО & 54815 & 58060 & 60147 & 63150 & 64622 \\\hline 196 | Московская область & 38172 & 38830 & 41921 & 45377 & 46417 \\\hline 197 | г. Москва & 57971 & 59823 & 62186 & 68176 & 72331 \\\hline 198 | Ленинградская область & 29305 & 31462 & 34549 & 38372 & 39280 \\\hline 199 | г. Cанкт-Петербург & 41540 & 42001 & 46516 & 51098 & 54244 \\\hline 200 | Республика Саха (Якутия) & 48955 & 53031 & 55512 & 61474 & 64437 \\\hline 201 | Чукотский авт. округ & 71690 & 79502 & 83969 & 89976 & 97125 \\\hline 202 | Республика Дагестан & 15702 & 17301 & 18633 & 21121 & 21225 \\ 203 | 204 | \end{tbl} 205 | 206 | Большую тарблицу допускается переносить на другую страницу. Перенесенные части 207 | тиблицы имеют специальный заголовок. 208 | 209 | Таблица~\ref{tbl:long} разбита на несколько страниц. 210 | 211 | \begin{codepiece}{in-place code}{Привет, LaTeX!} 212 | \newcommand{\sayhello}{Привет, мир!} 213 | \sayhello 214 | \end{codepiece} 215 | 216 | \begin{longtbl}{long} 217 | {CD-требования} 218 | {N{0.4cm}|N{6.5cm}|N{6.5cm}|N{0.4cm}} 219 | 220 | № & \thead>{6.5cm}{С-требование} & \thead>{6.5cm}{D-требование} & № \\\hline 221 | \endfirsthead 222 | 223 | \caption*{Продолжение таблицы \thetable} \\ 224 | \hline 225 | № & \thead>{6.5cm}{С-требование} & \thead>{6.5cm}{D-требование} & № \\\hline 226 | \endhead 227 | 228 | \mr{3}{1} & \mr{3}{Игрок может нарисовать себе флаг} 229 | & Имеется режим редактирования рисунка на флаге & 1 \\\cline{3-4} 230 | && Приложение предоставляет несколько цветов для рисования & 2 \\\cline{3-4} 231 | && Если игрок не рисует флаг, то он считается пустым & 2 \\\cline{3-4} 232 | && Имеется кнопка для очистки флага & 3 \\\hline 233 | \mr{4}{2} & \mr{4}{Во время игры можно отправлять сообщения сопернику} 234 | & Соперник видит сообщение в виде всплываюего текста на противоположном поле & 4 \\\cline{3-4} 235 | && Пользователь не может ввести больше 100 символов в сообщении & 5 \\\cline{3-4} 236 | && Сообщение исчезает после 10 секунд & 6 \\\cline{3-4} 237 | && Сообщение появляется в случайном месте в пределах поля соперника & 7 \\ 238 | 239 | \end{longtbl} 240 | 241 | Значение четвертого члена числовой последовательности Фибоначчи определяется 242 | по формуле~\eqref{eq:fib}. 243 | 244 | \begin{multline}\label{eq:fib} 245 | F(4) = F(3) + F(2) = \\ 246 | = F(2) + F(1) + F(1) + F(0) = F(1) + F(0) + \\ 247 | + F(1) + F(1) + F(0) = 3F(1) + 2F(0) = 3 248 | \end{multline} 249 | 250 | где $F(1)$ --- первый член последовательности, равный $1$,\\ 251 | $F(0)$ --- нулевой член последовательности, равный $0$. 252 | 253 | Документация \cite{bib}. 254 | 255 | Хорошая статья \cite{ml}. 256 | 257 | \showbib 258 | 259 | \annex{Очень интересная схема Очень интересная схема Очень интересная схема} 260 | 261 | \annex{Другая схема} 262 | 263 | \end{document} 264 | --------------------------------------------------------------------------------