В этом репозитории я разместил готовый шаблон для написания диплома с использованием LaTeX с учетом требований такого университета, как МГТУ им. Н.Э. Баумана. Я сам обучался в этом университете на кафедре ИУ6, поэтому, готовясь к выпускной квалификационной работе, решил сделать ее без использования Microsoft Word.
Закончив составлять данный шаблон и применив его для написания своей ВКР, я решил выложить эти исходники, чтобы еще кому-либо, кто набредет сюда, было проще сразу начать писать ВКР, чем это было мне, когда я делал все (почти) полностью самостоятельно. Другие шаблоны (а, точнее, их обрывки) меня совершенно не удовлетворили, отчего я сделал свой.
Потому что:
- преамбула шаблона составлялась в соответствии с ГОСТ 7.32 2017 (файл с ним вложен в репозиторий для ознакомления);
- выходной документ проверялся на нормоконтроле перед допуском к защите и получил одобрение;
- выходной документ проверялся специальной программой МГТУ им. Н.Э. Баумана 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.