This commit is contained in:
Arseny
2026-07-15 10:45:23 +03:00
commit 9e1d5c3c7e
24 changed files with 992 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
from md2gost.latex.preamble import END_DOCUMENT, PREAMBLE
from md2gost.latex.titlepage import render_titlepage
__all__ = ["END_DOCUMENT", "PREAMBLE", "render_titlepage"]
+49
View File
@@ -0,0 +1,49 @@
PREAMBLE = r"""\documentclass[a4paper, 14pt]{extarticle}
\usepackage{geometry}
\geometry{a4paper,tmargin=2cm,bmargin=2cm,lmargin=3cm,rmargin=1cm}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english, main=russian]{babel}
\usepackage{textcomp}
\usepackage{indentfirst}
\usepackage{graphicx}
\graphicspath{ {./images/} }
\usepackage{wrapfig}
\linespread{1.3}
\sloppy
\clubpenalty=10000
\widowpenalty=10000
\usepackage{enumitem}
\usepackage{caption}
\usepackage{hyperref}
\hypersetup {unicode=true}
\DeclareCaptionLabelSeparator*{emdash}{~--- }
\captionsetup[figure]{labelsep=emdash,font=onehalfspacing,position=bottom}
\usepackage{mathptmx}
\usepackage{listings}
\lstset{
basicstyle=\ttfamily\footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=t,
inputencoding=utf8,
frame=single,
keepspaces=true,
keywordstyle=\bf,
numbers=left,
numbersep=5pt,
xleftmargin=25pt,
xrightmargin=25pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
stepnumber=1,
tabsize=2,
}
\usepackage{amsthm,amsfonts,amsmath,amssymb,amscd}
\usepackage{mathtools}
\usepackage[perpage]{footmisc}
\begin{document}"""
END_DOCUMENT = r"\end{document}"
+84
View File
@@ -0,0 +1,84 @@
from __future__ import annotations
def render_titlepage(fm: dict[str, str]) -> str:
faculty = fm.get("факультет", "")
department = fm.get("кафедра", "")
title = fm.get("название", "")
student = fm.get("студент", "")
advisor = fm.get("преподаватель", "")
group = fm.get("группа", "")
header_lines = [
r"\vspace*{-0.7ex}",
r"\hspace*{-6pt}\centerline{Министерство науки и высшего образования Российской Федерации}",
r"\vspace*{-0.7ex}",
r"\centerline{Федеральное государственное бюджетное образовательное учреждение }",
r"\vspace*{-0.7ex}",
r"\centerline{высшего образования}",
r"\vspace*{-0.7ex}",
r"\centerline{<<Московский государственный технический университет}",
r"\vspace*{-0.7ex}",
r"\centerline{имени Н.Э. Баумана>>}",
r"\vspace*{-0.7ex}",
r"\centerline{(МГТУ им. Н.Э. Баумана)}",
]
header = "\n".join(header_lines)
return (
"\\begin{titlepage}\n"
"\\thispagestyle{empty}\n"
"\\newpage\n"
"\n"
"\\vspace*{-60pt}\n"
"\\hspace{-65pt}\n"
"\\begin{minipage}{0.3\\textwidth}\n"
"\\hspace*{-20pt}\\centering\n"
"\\includegraphics[width=\\textwidth]{emblem}\n"
"\\end{minipage}\n"
f"\\begin{{minipage}}{{0.67\\textwidth}}\\small \\textbf{{\n"
f"{header}\n"
"}}\n"
"\\end{minipage}\n"
"\n"
"\\vspace{-25pt}\n"
"\\hspace{-35pt}\\rule{\\textwidth}{2.3pt}\n"
"\n"
"\\vspace*{-20.3pt}\n"
"\\hspace{-35pt}\\rule{\\textwidth}{0.4pt}\n"
"\n"
f"\\vspace{{1.5ex}}\n"
f"\\hspace{{-35pt}} \\noindent \\small ФАКУЛЬТЕТ\\hspace{{80pt}} {faculty}\n"
"\n"
"\\vspace*{-16pt}\n"
"\\hspace{47pt}\\rule{0.83\\textwidth}{0.4pt}\n"
"\n"
f"\\vspace{{0.5ex}}\n"
f"\\hspace{{-35pt}} \\noindent \\small КАФЕДРА\\hspace{{50pt}} {department}\n"
"\n"
"\\vspace*{-16pt}\n"
"\\hspace{30pt}\\rule{0.866\\textwidth}{0.4pt}\n"
"\n"
"\\vspace{11em}\n"
"\n"
"\\begin{center}\n"
f"\\Large {{\\bf {title}}} \\\\\n"
"\\end{center}\\normalsize\n"
"\n"
"\\vspace{8em}\n"
"\n"
"\\begin{flushright}\n"
f" {{Студент группы {group} {student} \\hspace*{{15pt}}\\\\\n"
" \\vspace{2ex}\n"
f" Преподаватель {advisor}\\hspace*{{15pt}}}}\n"
"\\end{flushright}\n"
"\n"
"\\bigskip\n"
"\n"
"\\vfill\n"
"\n"
"\\begin{center}\n"
"\\textsl{Москва 2025}\n"
"\\end{center}\n"
"\\end{titlepage}"
)