[UPDATE] рефакторинг: handlers, fontspec, Docker optimization

This commit is contained in:
Arseny
2026-07-15 14:09:25 +03:00
parent 9e1d5c3c7e
commit f1cc6f0fa2
9 changed files with 154 additions and 51 deletions
+9 -5
View File
@@ -1,25 +1,29 @@
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{fontspec}
\setmainfont{Liberation Serif}
\setsansfont{Liberation Sans}
\setmonofont{Liberation Mono}
\usepackage[english, main=russian]{babel}
\usepackage{textcomp}
\usepackage{indentfirst}
\setlength{\parindent}{1.25cm}
\usepackage{setspace}
\onehalfspacing
\usepackage{graphicx}
\graphicspath{ {./images/} }
\graphicspath{ {./} {./images/} }
\usepackage{wrapfig}
\linespread{1.3}
\sloppy
\clubpenalty=10000
\widowpenalty=10000
\usepackage{enumitem}
\setlist[enumerate,1]{label=\arabic*., leftmargin=1.25cm, itemsep=0pt, parsep=0pt}
\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,
+14 -10
View File
@@ -8,12 +8,13 @@ def render_titlepage(fm: dict[str, str]) -> str:
student = fm.get("студент", "")
advisor = fm.get("преподаватель", "")
group = fm.get("группа", "")
year = fm.get("год", "2026")
header_lines = [
r"\vspace*{-0.7ex}",
r"\hspace*{-6pt}\centerline{Министерство науки и высшего образования Российской Федерации}",
r"\vspace*{-0.7ex}",
r"\centerline{Федеральное государственное бюджетное образовательное учреждение }",
r"\centerline{Федеральное государственное автономное образовательное учреждение}",
r"\vspace*{-0.7ex}",
r"\centerline{высшего образования}",
r"\vspace*{-0.7ex}",
@@ -21,6 +22,8 @@ def render_titlepage(fm: dict[str, str]) -> str:
r"\vspace*{-0.7ex}",
r"\centerline{имени Н.Э. Баумана>>}",
r"\vspace*{-0.7ex}",
r"\centerline{(национальный исследовательский университет)>>}",
r"\vspace*{-0.7ex}",
r"\centerline{(МГТУ им. Н.Э. Баумана)}",
]
header = "\n".join(header_lines)
@@ -62,23 +65,24 @@ def render_titlepage(fm: dict[str, str]) -> str:
"\\vspace{11em}\n"
"\n"
"\\begin{center}\n"
f"\\Large {{\\bf {title}}} \\\\\n"
"\\end{center}\\normalsize\n"
f"\\fontsize{{22pt}}{{26pt}}\\selectfont \\bfseries {title} \\\\\n"
"\\end{center}\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"
"\\noindent Студент группы " + group + "\n"
"\\hfill \\underline{\\hspace{3cm}} \\hfill \\underline{\\hspace{4cm}} \\\\\n"
"\\hfill (Группа) \\hfill (Подпись, дата) \\hfill (И.О. Фамилия) \\\\\n"
"\\vspace{2ex}\n"
"\n"
"\\bigskip\n"
"\\noindent Преподаватель " + advisor + "\n"
"\\hfill \\underline{\\hspace{3cm}} \\hfill \\underline{\\hspace{4cm}} \\\\\n"
"\\hfill \\hfill (Подпись, дата) \\hfill (И.О. Фамилия)\n"
"\n"
"\\vfill\n"
"\n"
"\\begin{center}\n"
"\\textsl{Москва 2025}\n"
f"\\textsl{{{year} г.}}\n"
"\\end{center}\n"
"\\end{titlepage}"
)