99 lines
3.6 KiB
Python
99 lines
3.6 KiB
Python
"""Титульный лист по бланку «ОТЧЁТ ПО УЧЕБНОЙ ПРАКТИКЕ» кафедры ИУ9."""
|
||
|
||
from __future__ import annotations
|
||
|
||
from md2gost.latex.titlepages._common import field, ministry_lines
|
||
|
||
|
||
def render(fm: dict[str, str]) -> str:
|
||
faculty = field(fm, "факультет")
|
||
department = field(fm, "кафедра")
|
||
student_short = field(fm, "студент")
|
||
student_full = field(fm, "студент_полностью") or student_short
|
||
group = field(fm, "группа")
|
||
practice = field(fm, "тип_практики")
|
||
company = field(fm, "предприятие")
|
||
team = field(fm, "команда")
|
||
repo = field(fm, "хранилище")
|
||
advisor = field(fm, "руководитель")
|
||
year = field(fm, "год", "2026")
|
||
|
||
team_line = f"{team} (хранилище {repo})" if repo else team
|
||
|
||
return (
|
||
"\\begin{titlepage}\n"
|
||
"\\thispagestyle{empty}\n"
|
||
"\n"
|
||
"% --- Шапка в рамке с разделителем, как в бланке ---\n"
|
||
"\\vspace*{-45pt}\n"
|
||
"\\noindent\\begin{tabular}"
|
||
"{|@{\\hspace{\\ptpheadpad}}c@{\\hspace{\\ptpheadpad}}"
|
||
"|@{\\hspace{\\ptpheadpad}}c@{\\hspace{\\ptpheadpad}}|}\n"
|
||
"\\hline\n"
|
||
"\\begin{minipage}{\\ptpemblemwidth}\\centering\\vspace{3pt}\n"
|
||
"\\includegraphics[width=0.92\\textwidth]{emblem}\n"
|
||
"\\vspace{3pt}\\end{minipage}\n"
|
||
"&\n"
|
||
"\\begin{minipage}{\\ptpheadwidth}\\small\\bfseries\n"
|
||
"\\vspace*{2pt}\n"
|
||
f"{ministry_lines(fm)}\n"
|
||
"\\vspace*{0.5ex}\n"
|
||
"\\end{minipage} \\\\\n"
|
||
"\\hline\n"
|
||
"\\end{tabular}\n"
|
||
"\n"
|
||
"% --- Полосы ---\n"
|
||
"\\vspace{6pt}\n"
|
||
"\\noindent\\rule{\\textwidth}{2.3pt}\n"
|
||
"\n"
|
||
"\\vspace*{-18pt}\n"
|
||
"\\noindent\\rule{\\textwidth}{0.4pt}\n"
|
||
"\n"
|
||
"% --- Факультет и кафедра ---\n"
|
||
"\\vspace{2.5ex}\n"
|
||
f"\\ptpfield[2.8cm]{{ФАКУЛЬТЕТ}}{{{faculty}}}\n"
|
||
"\n"
|
||
"\\vspace{1.5ex}\n"
|
||
f"\\ptpfield[2.8cm]{{КАФЕДРА}}{{{department}}}\n"
|
||
"\n"
|
||
"% --- Заголовок ---\n"
|
||
"\\vspace{3.5em}\n"
|
||
"\\begin{center}\n"
|
||
"{\\Large\\bfseries\\underline{ОТЧЁТ ПО УЧЕБНОЙ ПРАКТИКЕ}}\n"
|
||
"\\end{center}\n"
|
||
"\n"
|
||
"% --- Поля ---\n"
|
||
"\\vspace{2.5em}\n"
|
||
f"\\ptpfieldnote[2.4cm]{{Студент}}{{{student_full}}}{{фамилия, имя, отчество}}\n"
|
||
"\n"
|
||
"\\vspace{1.8ex}\n"
|
||
f"\\ptpfieldw[2.4cm]{{Группа}}{{{group}}}{{5cm}}\n"
|
||
"\n"
|
||
"\\vspace{1.8ex}\n"
|
||
f"\\ptpfield[4.6cm]{{Тип практики}}{{{practice}}}\n"
|
||
"\n"
|
||
"\\vspace{1.8ex}\n"
|
||
f"\\ptpfield[4.6cm]{{Название предприятия}}{{{company}}}\n"
|
||
"\n"
|
||
"\\vspace{1.8ex}\n"
|
||
f"\\ptpfieldpar[2.4cm]{{Команда}}{{{team_line}}}\n"
|
||
"\n"
|
||
"% --- Подписи ---\n"
|
||
"\\vfill\n"
|
||
f"\\ptpsig{{Студент}}{{{student_short}}}{{фамилия, и.о.}}\n"
|
||
"\n"
|
||
"\\vspace{2em}\n"
|
||
f"\\ptpsig{{Руководитель практики}}{{{advisor}}}{{фамилия, и.о.}}\n"
|
||
"\n"
|
||
"% --- Оценка ---\n"
|
||
"\\vspace{2em}\n"
|
||
"\\noindent Оценка \\rule{0.5\\textwidth}{0.4pt}\n"
|
||
"\n"
|
||
"\\vfill\n"
|
||
"\\begin{center}\n"
|
||
f"\\textsl{{{year} г.}}\n"
|
||
"\\end{center}\n"
|
||
"\n"
|
||
"\\end{titlepage}"
|
||
)
|