// 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 }