- main.typ: contenido de respuesta a observaciones de avance 1 - report.typ: versión opcional, tablas alineadas a la izquierda y más compactas - figures: imágenes CAD y foto del modelo actual - gitignore: excluir nvim.log y pdf/ (artefactos locales)
104 lines
3.1 KiB
Typst
104 lines
3.1 KiB
Typst
// Plantilla general de reportes del proyecto FONDEF IT24I0091 Manito.
|
|
|
|
#let project = (
|
|
code: "IT24I0091",
|
|
name: "Manito: Potenciando el aprendizaje inicial con IA y robótica colaborativa",
|
|
program: "FONDEF IT 2024 · ANID",
|
|
institution: "Universidad San Sebastián",
|
|
partner: "Servicio Local de Educación Pública Llanquihue",
|
|
)
|
|
|
|
// Typst no traduce los nombres de los meses al formatear fechas.
|
|
#let months = (
|
|
"enero", "febrero", "marzo", "abril", "mayo", "junio",
|
|
"julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre",
|
|
)
|
|
|
|
#let format-date(date) = [#date.day() de #months.at(date.month() - 1) de #date.year()]
|
|
|
|
#let title-page(title, subtitle, kind, date, version, authors) = page(header: none, footer: none)[
|
|
#set par(justify: false)
|
|
|
|
#text(size: 10pt, fill: luma(90))[#project.program #h(1fr) Proyecto #project.code]
|
|
#line(length: 100%, stroke: 0.5pt + luma(160))
|
|
#text(size: 12pt)[#project.name]
|
|
|
|
#v(1fr)
|
|
|
|
#text(size: 11pt, fill: luma(90), tracking: 0.08em)[#upper(kind)]
|
|
#v(0.4em)
|
|
#text(size: 24pt, weight: "bold")[#title]
|
|
#if subtitle != none {
|
|
v(0.2em)
|
|
text(size: 15pt)[#subtitle]
|
|
}
|
|
|
|
#v(1fr)
|
|
|
|
#table(
|
|
columns: (auto, 1fr),
|
|
stroke: none,
|
|
inset: (x: 0pt, y: 4pt),
|
|
column-gutter: 1.5em,
|
|
..(if version != none { ([*Versión*], [#version]) } else { () }),
|
|
[*Fecha*], [#format-date(date)],
|
|
[*Autores*], [#authors.map(author => author.name).join(linebreak())],
|
|
[*Institución*], [#project.institution],
|
|
[*Entidad asociada*], [#project.partner],
|
|
)
|
|
]
|
|
|
|
#let report(
|
|
title: "Título del reporte",
|
|
subtitle: none,
|
|
kind: "Informe técnico",
|
|
date: datetime.today(),
|
|
version: "1.0",
|
|
authors: (),
|
|
history: (),
|
|
body,
|
|
) = {
|
|
set document(title: title, author: authors.map(author => author.name), date: date)
|
|
set page(paper: "us-letter", margin: (x: 2.5cm, top: 2.8cm, bottom: 2.5cm))
|
|
set text(font: "New Computer Modern", size: 11pt, lang: "es", region: "cl")
|
|
set par(justify: true, leading: 0.65em)
|
|
set heading(numbering: "1.1")
|
|
show heading.where(level: 1): set block(above: 1.8em, below: 1em)
|
|
set table(stroke: 0.5pt + luma(150), inset: 6pt, align: left)
|
|
show figure.where(kind: table): set figure.caption(position: top)
|
|
|
|
title-page(title, subtitle, kind, date, version, authors)
|
|
|
|
show table.cell.where(y: 0): set text(weight: "bold")
|
|
show table: set text(size: 9pt)
|
|
show table: set par(justify: false)
|
|
|
|
set page(
|
|
header: {
|
|
set text(size: 9pt, fill: luma(90))
|
|
grid(columns: (1fr, auto), [FONDEF #project.code · #kind], [#title])
|
|
line(length: 100%, stroke: 0.4pt + luma(160))
|
|
},
|
|
footer: context {
|
|
set text(size: 9pt, fill: luma(90))
|
|
align(center)[Página #counter(page).display() de #counter(page).final().first()]
|
|
},
|
|
)
|
|
counter(page).update(1)
|
|
|
|
if history.len() > 0 {
|
|
heading(numbering: none, outlined: false)[Control de versiones]
|
|
table(
|
|
columns: (auto, auto, auto, 1fr),
|
|
[Versión], [Fecha], [Autor], [Cambios],
|
|
..history.map(entry => (entry.version, entry.date, entry.author, entry.changes)).flatten(),
|
|
)
|
|
v(1.5em)
|
|
}
|
|
|
|
outline(title: [Índice], indent: auto)
|
|
pagebreak()
|
|
|
|
body
|
|
}
|