/LaTeX-GOST-BMSTU-Diploma

Шаблон для написания диплома по ГОСТ, используя LaTeX

Primary LanguageTeX

Шаблон для написания диплома по ГОСТ с использованием LaTeX

Предисловие

В этом репозитории я разместил готовый шаблон для написания диплома с использованием LaTeX с учетом требований такого университета, как МГТУ им. Н.Э. Баумана. Я сам обучался в этом университете на кафедре ИУ6, поэтому, готовясь к выпускной квалификационной работе, решил сделать ее без использования Microsoft Word.

Закончив составлять данный шаблон и применив его для написания своей ВКР, я решил выложить эти исходники, чтобы еще кому-либо, кто набредет сюда, было проще сразу начать писать ВКР, чем это было мне, когда я делал все (почти) полностью самостоятельно. Другие шаблоны (а, точнее, их обрывки) меня совершенно не удовлетворили, отчего я сделал свой.

Почему оно, по твоим словам, соответствует ГОСТ?

Потому что:

  1. преамбула шаблона составлялась в соответствии с ГОСТ 7.32 2017 (файл с ним вложен в репозиторий для ознакомления);
  2. выходной документ проверялся на нормоконтроле перед допуском к защите и получил одобрение;
  3. выходной документ проверялся специальной программой МГТУ им. Н.Э. Баумана TestVKR (.exe сборкой 162 вложен в репозиторий для ознакомления) и получил одобрение.

Как начать писать?

Достаточно лишь загрузить нужный файл (или взять его исходники) и начать писать, собирая документ и смотря на результат.

Примечания

Сам я пользовался сборкой MiKTeX, но и под TeXLive или любой другой дистрибутив LaTeX должно собираться без особых проблем.

Необходимо учитывать некоторые моменты:

  • Отступ по левому краю для нумерованных или ненумерованных списков первого уровня вложенности должен задаваться для каждого из списков так:

     \begin{itemize}[leftmargin=1.6\parindent]
     	\item[---] ...
     \end{itemize}
    
     \begin{enumerate}[leftmargin=1.6\parindent]
     	\item[1)] ...
     \end{enumerate}

    Также для тип разделителя необходимо прописывать самостоятельно - будь то это точка, длинное тире (---) или скобка или точка ($\bullet$). Сделано это для полного контроля за нумерацией для себя самого. Если необходимо, чтобы это проставлялось автоматически - настройте в преамбуле.

    Используется 1.6\parindent в качестве leftmargin для того, чтобы \enumerate и \itemize были сдвинуты согласно абзацному отсупу.

  • Если TeX неправильно работает с русскими словами или с длинными словами, соединенными специальными символами, вроде / или -, то это можно обойти самостоятельно расставив разделение для TeX как в следующем примере с помощью символа \-:

     Это обычный текст, повествующий о буднях клиент\-серверной архитектуры.
    
     % Результат с переносом (используем \-):
     % Это обычный текст, повествующий о буднях клиент-
     % серверной архитектуры.
    
     % Результат без переноса (не используем \-):
     % Это обычный текст, повествующий о буднях клиент-серверной
     % архитектуры.

    В принципе, данный метод можно использовать вообще где угодно и где захочется.

  • Если для TeX размер пункта/подпункта/и так далее слишком большой и, на ваш взгляд, TeX переносит в результате неправильно, то можно тоже задать разделение на свое усмотрение отдельно для содержания, отдельно для текста:

     \section[Невероятно длинный, сложный и очень // важный раздел]{Невероятно длинный, сложный и очень важный // раздел}
    
     % Здесь в [] (опционально т.е.) - то, что отображается в содержании, а в {} - то, что отображается в тексте. Притом, можно их не делать одинаковыми, но для диплома это критично.
  • Выставление ссылок осуществляется при помощи соответствующих команд \label{} и ~\ref{}. Название кодовое для ссылки можно выбирать какое угодно. Ссылки проставляются просто как по примеру:

     % Например, на изображение
     \begin{figure}[hbtp]
     	\centering
     	\includegraphics[scale=1]{...}
     	\caption{Схема структурная}
     	\label{fig:main_schema}
     	\vspace*{-6mm}
     \end{figure}
    
     % Или на таблицу
     \begin{table}
     	\centering
     	\caption{Результаты линейной регрессии}
     	\begin{tabular}{|c|c|}
     		...
     	\end{tabular}
     	\label{tab:regression}
     \end{table}
    
     % Или на подраздел
     \subsection{Диаграмма классов пространства имен}
     \label{subsec:namespace_diagram}
    
     На рисунке~\ref{fig:main_schema} изображено...
     Как уже было выявлено из таблицы~\ref{tab:regression}...
     Из пункта~\ref{subsec:namespace_diagram}...
    
     % В результате:
     % На рисунке 1 изображено...
     % Как уже выявлено из таблицы 1...
     % Из пункта 0.1...

    В данном примере в \figure внесено дополнительное изменение -- \vspace*{-6mm}. Это сделано, поскольку необходим 1.5 интервал между блоком текста после рисунка и \caption{} рисунка.

  • Для выставления кавычек использовать следует символы << и >> (для математических "во много раз меньше" и "во много раз больше" существуют специальные символы для математического окружения $\ll$ и $\gg$ соответственно).

  • Для сборки используется XeLaTeX.

  • Для работы с листингами используется пакет listings. К сожалению, в 2019 г. он все еще не умеет в UTF-8, отчего поддержка и подсветка комментариев, включающих кириллицу ограничена. Задать листинг можно следующим образом:

     \begin{lstlisting}[caption=Код с 'Hello, world!']
     using System;
    
     namespace Program {
     	public class Program {
     		public static void Main() {
     			Console.Writeline("Hello, world!");
     		}
     	}
     }
     \end{lstlisting}

Если есть вопросы/пожелания/предложения - отпишитесь в issues или сделайте pull request.