[UPDATE] титульник: шапка по образцу, студент/преподаватель, год курсивом, Docker --user fix
This commit is contained in:
@@ -47,6 +47,15 @@ PREAMBLE = r"""\documentclass[a4paper, 14pt]{extarticle}
|
||||
\usepackage{amsthm,amsfonts,amsmath,amssymb,amscd}
|
||||
\usepackage{mathtools}
|
||||
\usepackage[perpage]{footmisc}
|
||||
\usepackage{tabularx}
|
||||
|
||||
\newcommand{\sigline}[3][4cm]{%
|
||||
\begin{tabular}[t]{@{}c@{}}%
|
||||
\makebox[#1][c]{\strut #2} \\[-1em]%
|
||||
\rule{#1}{0.4pt} \\[-1em]%
|
||||
{\scriptsize #3}%
|
||||
\end{tabular}%
|
||||
}
|
||||
|
||||
\begin{document}"""
|
||||
|
||||
|
||||
+45
-38
@@ -4,85 +4,92 @@ from __future__ import annotations
|
||||
def render_titlepage(fm: dict[str, str]) -> str:
|
||||
faculty = fm.get("факультет", "")
|
||||
department = fm.get("кафедра", "")
|
||||
report_type = fm.get("тип", "")
|
||||
title = fm.get("название", "")
|
||||
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"\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)
|
||||
ministry_lines = (
|
||||
"\\vspace*{-0.7ex}\n"
|
||||
"\\hspace*{-6pt}\\centerline{Министерство науки и высшего образования Российской Федерации}\n"
|
||||
"\\vspace*{-0.7ex}\n"
|
||||
"\\centerline{Федеральное государственное бюджетное образовательное учреждение }\n"
|
||||
"\\vspace*{-0.7ex}\n"
|
||||
"\\centerline{высшего образования}\n"
|
||||
"\\vspace*{-0.7ex}\n"
|
||||
"\\centerline{<<Московский государственный технический университет}\n"
|
||||
"\\vspace*{-0.7ex}\n"
|
||||
"\\centerline{имени Н.Э. Баумана>>}\n"
|
||||
"\\vspace*{-0.7ex}\n"
|
||||
"\\centerline{(национальный исследовательский университет)}\n"
|
||||
"\\vspace*{-0.7ex}\n"
|
||||
"\\centerline{(МГТУ им. Н.Э. Баумана)}"
|
||||
)
|
||||
|
||||
return (
|
||||
titlepage = (
|
||||
"\\begin{titlepage}\n"
|
||||
"\\thispagestyle{empty}\n"
|
||||
"\\newpage\n"
|
||||
"\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"
|
||||
"\\begin{minipage}{0.67\\textwidth}\\small \\textbf{"
|
||||
)
|
||||
titlepage += ministry_lines
|
||||
titlepage += (
|
||||
"}\\end{minipage}\n"
|
||||
"\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"
|
||||
"% --- Факультет и кафедра ---\n"
|
||||
"\\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"
|
||||
"\\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"
|
||||
"\\vspace{6em}\n"
|
||||
"\n"
|
||||
"\\begin{center}\n"
|
||||
f"\\fontsize{{22pt}}{{26pt}}\\selectfont \\bfseries {title} \\\\\n"
|
||||
"\\end{center}\n"
|
||||
"\n"
|
||||
"\\vspace{8em}\n"
|
||||
"\n"
|
||||
"\\noindent Студент группы " + group + "\n"
|
||||
"\\hfill \\underline{\\hspace{3cm}} \\hfill \\underline{\\hspace{4cm}} \\\\\n"
|
||||
"\\hfill (Группа) \\hfill (Подпись, дата) \\hfill (И.О. Фамилия) \\\\\n"
|
||||
"\\vspace{2ex}\n"
|
||||
"\n"
|
||||
"\\noindent Преподаватель " + advisor + "\n"
|
||||
"\\hfill \\underline{\\hspace{3cm}} \\hfill \\underline{\\hspace{4cm}} \\\\\n"
|
||||
"\\hfill \\hfill (Подпись, дата) \\hfill (И.О. Фамилия)\n"
|
||||
f"\\Large {{\\bf {report_type}}} \\\\\n"
|
||||
f"\\large {title}\n"
|
||||
"\\end{center}\\normalsize\n"
|
||||
"\n"
|
||||
"% --- Подписи (tabularx) ---\n"
|
||||
"\\vfill\n"
|
||||
"\n"
|
||||
"\\noindent\n"
|
||||
"\\begin{tabularx}{\\textwidth}{@{}l X c c@{}}\n"
|
||||
f" Студент \\quad \\sigline[2.5cm]{{{group}}}{{(Группа)}} & & "
|
||||
f"\\sigline{{}}{{(Подпись, дата)}} & \\sigline{{{student}}}{{(И.О. Фамилия)}} \\\\ [1.5cm]\n"
|
||||
" Преподаватель & & "
|
||||
f"\\sigline{{}}{{(Подпись, дата)}} & \\sigline{{{advisor}}}{{(И.О. Фамилия)}} \\\\\n"
|
||||
"\\end{tabularx}\n"
|
||||
"\n"
|
||||
"% --- Год ---\n"
|
||||
"\\begin{center}\n"
|
||||
f"\\textsl{{{year} г.}}\n"
|
||||
"\\end{center}\n"
|
||||
"\n"
|
||||
"\\end{titlepage}"
|
||||
)
|
||||
return titlepage
|
||||
|
||||
Reference in New Issue
Block a user