|
@@ -39,12 +39,31 @@
|
|
|
#let label-gap = 2.8mm // зазор от черты до подписи
|
|
#let label-gap = 2.8mm // зазор от черты до подписи
|
|
|
#let label-lift = 10.5pt // компенсация верхнего интервала строки подписи
|
|
#let label-lift = 10.5pt // компенсация верхнего интервала строки подписи
|
|
|
|
|
|
|
|
-#let field(value, label, width: 100%) = box(width: width)[
|
|
|
|
|
|
|
+// ── Личная подпись студента ─────────────────────────────────────────────
|
|
|
|
|
+// Файл лежит в .private/ (исключён в .gitignore) и в git не попадает.
|
|
|
|
|
+#let student-signature = ".private/signature.png"
|
|
|
|
|
+#let signature-height = 7mm // высота картинки подписи
|
|
|
|
|
+#let signature-gap = 1mm // зазор между подписью и чертой
|
|
|
|
|
+
|
|
|
|
|
+// Единый помощник. Одна и та же геометрия у всех полей листа:
|
|
|
|
|
+// черты соседних полей всегда лежат на одной горизонтали, подпись —
|
|
|
|
|
+// всегда под чертой на одинаковом расстоянии.
|
|
|
|
|
+// value = none → пустая черта (для подписи), требуется width;
|
|
|
|
|
+// signature → картинка подписи над пустой чертой.
|
|
|
|
|
+#let field(value, label, width: 100%, signature: none) = box(width: width)[
|
|
|
#grid(
|
|
#grid(
|
|
|
columns: 100%,
|
|
columns: 100%,
|
|
|
inset: 0pt,
|
|
inset: 0pt,
|
|
|
align: center + top,
|
|
align: center + top,
|
|
|
- rows: (slot-height, auto),
|
|
|
|
|
|
|
+ rows: (0pt, slot-height, auto),
|
|
|
|
|
+ // строка нулевой высоты: подпись висит над чертой, ничего не сдвигая
|
|
|
|
|
+ [
|
|
|
|
|
+ #if signature != none [
|
|
|
|
|
+ #move(dy: blank-line-dy - signature-gap - signature-height)[
|
|
|
|
|
+ #align(center)[#image(signature, height: signature-height)]
|
|
|
|
|
+ ]
|
|
|
|
|
+ ]
|
|
|
|
|
+ ],
|
|
|
// черта со значением (или пустая черта для подписи)
|
|
// черта со значением (или пустая черта для подписи)
|
|
|
[
|
|
[
|
|
|
#if value == none [
|
|
#if value == none [
|
|
@@ -111,7 +130,7 @@
|
|
|
#table(
|
|
#table(
|
|
|
columns: (34mm, 49mm, 8mm, 27mm, 11mm, 41mm),
|
|
columns: (34mm, 49mm, 8mm, 27mm, 11mm, 41mm),
|
|
|
stroke: none,
|
|
stroke: none,
|
|
|
- inset: (x: 0pt, y: 2.2mm),
|
|
|
|
|
|
|
+ inset: (x: 0pt, y: 3.2mm),
|
|
|
align: (left, center, center, center, center, center),
|
|
align: (left, center, center, center, center, center),
|
|
|
|
|
|
|
|
table.cell(colspan: 2)[Преподаватель],
|
|
table.cell(colspan: 2)[Преподаватель],
|
|
@@ -123,7 +142,7 @@
|
|
|
[Студент],
|
|
[Студент],
|
|
|
field(task.group, [номер группы, зачетной книжки]),
|
|
field(task.group, [номер группы, зачетной книжки]),
|
|
|
[],
|
|
[],
|
|
|
- field(none, [подпись, дата], width: 27mm),
|
|
|
|
|
|
|
+ field(none, [подпись, дата], width: 27mm, signature: student-signature),
|
|
|
[],
|
|
[],
|
|
|
field(task.student_short_name, [инициалы, фамилия]),
|
|
field(task.student_short_name, [инициалы, фамилия]),
|
|
|
)
|
|
)
|