diff --git a/packages/preview/unofficial-eirb-report/0.1.1/LICENSE b/packages/preview/unofficial-eirb-report/0.1.1/LICENSE new file mode 100644 index 0000000000..1dc7d3d495 --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 floriandelage + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/preview/unofficial-eirb-report/0.1.1/README.md b/packages/preview/unofficial-eirb-report/0.1.1/README.md new file mode 100644 index 0000000000..e0b2a8ea42 --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/README.md @@ -0,0 +1,130 @@ +# Enseirb-Matmeca Typst Template for Reports +[![GitHub release](https://img.shields.io/github/v/release/floriandelage/unofficial-eirb-report)](https://github.com/floriandelage/unofficial-eirb-report/releases) + +An unofficial [Typst](https://typst.app/) template for [Enseirb-Matmeca](https://enseirb-matmeca.bordeaux-inp.fr/fr) + +*Disclaimer: This template is not affiliated with Enseirb-Matmeca.* + +## Assets and trademarks + +This package includes official branding assets from Enseirb-Matmeca / Bordeaux INP. + +These assets are **not covered by the package license** and remain the property of their respective copyright holders. + +- Enseirb-Matmeca branding guidelines and assets: https://enseirb-matmeca.bordeaux-inp.fr/fr/outils-de-communication-inp + +Use of these assets is subject to the terms provided by the copyright holder. + +

+ View example PDF output +

+ +## Getting Started + +1. **Font Installation (optional, but recommended)** + - The template uses [Linux Libertine](https://www.dafont.com/linux-libertine.font) for the main text + - The template also uses [JetBrains Mono](https://www.jetbrains.com/lp/mono/) for code blocks and raw text + - There is a fallback system that will use "New Computer Modern", the default Typst font + +2. **Configure the template** + - Edit the template parameters in `main.typ` to set your details: + ```typ + #show: template.with( + sector: "Filière Informatique", + document-type: "Rapport de Projet", + + title: "Implémentation d'un modèle de rapport académique", + + authors: ( + (name: "Alexandrine Mercier", email: "alexandrine.mercier@enseirb.fr"), + (name: "Narcisse Fay", email: "narcisse.fay@enseirb.fr"), + (name: "Johanne Reyer", email: "johanne.reyer@enseirb.fr"), + (name: "Modestine Lapointe", email: "modestine.lapointe@enseirb.fr"), + ), + author-columns: 2, + + advisers: ( + (name: "Adelphe Félix", email: "adelphe.felix@enseirb.fr"), + ), + adviser-columns: 1, + + date: "Mai 2025", + abstract: include "sections/0-abstract.typ", + ) + ``` + +3. **Write your content** + - The sections are split into files for organisation (see the `sections` folder) + - If you add sections, don't forget to add them in the `main.typ` file + +4. **Compile your document** + ```bash + typst compile main.typ + ``` + - Or watch for changes and recompile automatically: + ```bash + typst watch main.typ + ``` + +## Getting Started with Typst + +### Resources +- [Typst for LaTeX users](https://typst.app/docs/guides/guide-for-latex-users/) +- [Official Typst Documentation](https://typst.app/docs) +- [Typst Examples Book](https://sitandr.github.io/typst-examples-book/book/) + +### Installation +> **Note:** Typst also provides an online editor at [typst.app](https://typst.app/) + +1. **Install Typst** + - [Typst GitHub Repository](https://github.com/typst/typst?tab=readme-ov-file#installation) + +2. **Editor Integration** + - [TinyMist Extension](https://github.com/Myriad-Dreamin/tinymist?tab=readme-ov-file#installation) for VSCode, NeoVim, etc. + +## For Internship reports + +You can add the company logo of your internship, which will be placed next to the school logo in the title page and the footer, like that: + +```typ +#show: template.with( + company-logo: image("path_to_company_logo.png", width: 50%), +) +``` + +You can also override the school logo if you want to by using `school-logo`. + +Finally, you can also disable the abstract by setting it to `none`. + +## Working with References + +### Subfigures + +This template includes the package [subpar](https://typst.app/universe/package/subpar/), which allows you to easily create and reference subfigures, a feature that is not natively supported in Typst. + +You can create subfigures and label them like this: + +```typst +#import "@preview/unofficial-eirb-report:0.1.1": subfig + +#subfig( + figure(image("./assets/figure.png"), caption: [Première sous-figure]), + , + figure(image("./assets/figure.png"), caption: [Seconde sous-figure]), + , + columns: (1fr, 1fr), + caption: [Une figure contenant deux sous-figures.], + label: , +) +``` + +### Bibliography +- Add references to `bib.yaml` +- Reference in text using `@citation_key` or `#ref()` +- The bibliography is generated automatically at the end fo the document +- Supports articles, books, proceedings, web resources, and more + +## Credits +This template is built on the foundation provided by [onyx-itu-unofficial](https://github.com/FrederikBertelsen/onyx-itu-unofficial) by FrederikBertelsen. +The original work has been expanded with additional features, French language support, +and Enseirb-Matmeca styling. diff --git a/packages/preview/unofficial-eirb-report/0.1.1/docs/example.pdf b/packages/preview/unofficial-eirb-report/0.1.1/docs/example.pdf new file mode 100644 index 0000000000..fdb3f886e7 Binary files /dev/null and b/packages/preview/unofficial-eirb-report/0.1.1/docs/example.pdf differ diff --git a/packages/preview/unofficial-eirb-report/0.1.1/src/assets/logo.png b/packages/preview/unofficial-eirb-report/0.1.1/src/assets/logo.png new file mode 100644 index 0000000000..a0e5aee6c8 Binary files /dev/null and b/packages/preview/unofficial-eirb-report/0.1.1/src/assets/logo.png differ diff --git a/packages/preview/unofficial-eirb-report/0.1.1/src/lib.typ b/packages/preview/unofficial-eirb-report/0.1.1/src/lib.typ new file mode 100644 index 0000000000..f64c5ae23a --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/src/lib.typ @@ -0,0 +1,369 @@ +// ========================================================================== +// Packages +// ========================================================================== + +#import "@preview/subpar:0.2.2" + +// ========================================================================== +// Typography Constants +// ========================================================================== + +#let _default-font-body = "New Computer Modern" +#let _default-font-mono = "New Computer Modern Mono" +#let _font-size = 11pt +#let _line-spacing = 0.65em +#let _par-spacing = 1.2em + +// ========================================================================== +// Header +// ========================================================================== + +#let _current-chapter = state("chapter", none) +#let _current-section = state("section", none) + +#let _build-main-header(content) = { + align(center, smallcaps(content)) + line(length: 100%) +} + +#let _build-secondary-header(chapter, section) = { + smallcaps(chapter) + h(1fr) + emph(section) + line(length: 100%) +} + +#let _header = context { + let chapter = _current-chapter.get() + let section = _current-section.get() + + let next-chapter = query(heading.where(level: 1)).find(h => ( + h.location().page() == here().page() + )) + + if next-chapter != none { + _build-main-header(next-chapter.body) + } else if chapter == none { + [] + } else if section != none { + _build-secondary-header(chapter, section) + } else { + _build-main-header(chapter) + } +} + +// ========================================================================== +// Footer +// ========================================================================== + +#let _build-footer( + school-logo, + company-logo, +) = context { + line(length: 100%) + grid( + columns: (1fr, 1fr, 1fr), + align: (left, center, right), + if (company-logo != none) { + company-logo + } else { + [] + }, + text(1.2em, counter(page).display("1 / 1", both: true)), + school-logo, + ) +} +// ========================================================================== +// Subfigures +// ========================================================================== + +#let subfig = subpar.grid.with( + numbering: n => { + let chapter = counter(heading.where(level: 1)).get().first() + numbering("I", chapter) + "." + str(n) + }, + numbering-sub: (m, n) => { + let chapter = counter(heading.where(level: 1)).get().first() + numbering("I", chapter) + "." + str(m) + " (" + numbering("a", n) + ")" + }, + numbering-sub-ref: (m, n) => { + let chapter = counter(heading.where(level: 1)).get().first() + numbering("I", chapter) + "." + str(m) + " (" + numbering("a", n) + ")" + }, +) + +// ========================================================================== +// Page Components +// ========================================================================== + +#let _person-grid(people, columns) = { + let cols = calc.min(columns, people.len()) + grid( + columns: (1fr,) * cols, + gutter: 2em, + ..people.map(p => align(center, text(1.2em, [ + #strong(p.name) \ + #emph(p.email) + ]))) + ) +} + +#let _title-page( + school-logo, + company-logo, + sector, + document-type, + title, + authors, + author-columns, + advisers, + adviser-columns, + date, +) = { + if (company-logo != none) { + grid( + columns: (1fr, 1fr), + align: (left, right), + school-logo, company-logo, + ) + } else { + align(center, school-logo) + } + + if sector != none { + align(center, smallcaps(text(1.4em, sector))) + } + + v(4em) + + if document-type != none { + align(center, smallcaps(text(1.6em, document-type))) + v(1em) + } else { + v(4em) + } + + align(center, text(2.6em, weight: "bold", title)) + + align(center, [ + #line(length: 60%, stroke: 0.5pt + gray) + #v(1em) + #text(1.2em, smallcaps[Réalisé par]) + #v(1em) + ]) + _person-grid(authors, author-columns) + + if advisers.len() > 0 { + v(8em) + align(center, text(1.2em, smallcaps[Supervisé par])) + v(0.8em) + _person-grid(advisers, adviser-columns) + } + + place(bottom + center, text(1.2em, date)) + pagebreak() +} + +#let _abstract-page(abstract) = { + if (abstract != none) { + v(1fr) + align(center, heading(outlined: false, numbering: none, text( + 0.85em, + smallcaps[Abstract], + ))) + abstract + v(1.618fr) + pagebreak() + } +} + +#let _toc-page() = { + outline(depth: 3) + pagebreak() +} + +#let _heading-num(it) = { + if it.numbering != none { + numbering(it.numbering, ..counter(heading).at(it.location())) + [ ] + } + it.body +} + +// ========================================================================== +// Template +// ========================================================================== + +#let template( + school-logo: image("./assets/logo.png", width: 50%), + company-logo: none, + + sector: none, + document-type: none, + title: "", + authors: (), + author-columns: 1, + advisers: (), + adviser-columns: 1, + date: datetime.today().display("[month repr:long] [year]"), + abstract: [], + + font-body: "Linux Libertine", + font-mono: "JetBrains Mono", + chapter-break: true, + + body, +) = { + // -- Document metadata --------------------------------------------------- + set document(author: authors.map(a => a.name), title: title) + + // -- Page ----------------------------------------------------------------- + + set page(paper: "a4", margin: 2.5cm) + + // -- Text ----------------------------------------------------------------- + + set text( + font: (font-body, _default-font-body), + size: _font-size, + lang: "fr", + ) + + set par( + justify: true, + leading: _line-spacing, + first-line-indent: 1.5em, + spacing: _par-spacing, + ) + + // -- Math ----------------------------------------------------------------- + + set math.equation(numbering: it => { + let chapter = counter(heading.where(level: 1)).get().first() + numbering("(I.1)", chapter, it) + }) + + show math.equation: it => { + set text(weight: "regular") + it + } + + // -- Code blocks ---------------------------------------------------------- + + show raw: set text( + font: (font-mono, _default-font-mono), + size: 0.9em, + ) + + // -- Figures -------------------------------------------------------------- + + set figure( + numbering: n => { + let chapter = counter(heading.where(level: 1)).get().first() + numbering("I", chapter) + "." + str(n) + }, + placement: none, + ) + + show figure: it => { + v(1em) + it + v(1em) + } + + show figure.where(kind: raw): it => { + show raw: it => block( + stroke: 1pt + luma(150), + fill: luma(240), + inset: 1em, + radius: 2pt, + width: auto, + it, + ) + it + } + + // -- Headings -------------------------------------------------------------- + + set heading(numbering: "I.1.a") + + show heading.where(level: 1): it => { + if it.outlined { + counter(figure.where(kind: image)).update(0) + counter(figure.where(kind: table)).update(0) + counter(figure.where(kind: raw)).update(0) + counter(math.equation).update(0) + if chapter-break { pagebreak(weak: true) } + _current-chapter.update(it.body) + _current-section.update(none) + } + v(2em) + block( + width: 100%, + inset: (left: 1em), + stroke: (left: 3pt + black), + text(1.6em, weight: "bold", _heading-num(it)), + ) + v(1em) + } + + show heading.where(level: 2): it => { + if it.outlined { _current-section.update(it.body) } + v(1.2em) + { + set par(first-line-indent: 0em) + text(1.2em, weight: "bold", smallcaps(_heading-num(it))) + } + v(0.6em) + } + + show heading.where(level: 3): it => { + v(0.8em) + { + set par(first-line-indent: 0em) + text(1em, weight: "bold", style: "italic", _heading-num(it)) + } + v(0.4em) + } + + show heading: it => { + if (it.level > 3) { + set par(first-line-indent: 0em) + text(1em, weight: "bold", style: "italic", it.body) + } else { + it + } + } + + // -- Front matter -------------------------------------------------------------- + + _title-page( + school-logo, + company-logo, + sector, + document-type, + title, + authors, + author-columns, + advisers, + adviser-columns, + date, + ) + + _abstract-page(abstract) + + _toc-page() + + set page( + header: _header, + footer: _build-footer( + school-logo, + company-logo, + ), + numbering: "1", + ) + + counter(page).update(1) + + body +} diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/bib.yaml b/packages/preview/unofficial-eirb-report/0.1.1/template/bib.yaml new file mode 100644 index 0000000000..9d80a758af --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/bib.yaml @@ -0,0 +1,7 @@ +typst: + type: misc + title: Typst + author: Laurenz Mädje + year: 2025 + url: https://typst.app + note: A modern typesetting system diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/main.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/main.typ new file mode 100644 index 0000000000..060134e4c5 --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/main.typ @@ -0,0 +1,53 @@ +#import "@preview/unofficial-eirb-report:0.1.1": template + +// ========================================================================== +// Template +// ========================================================================== + +#show: template.with( + sector: "Filière Informatique", + document-type: "Rapport de Projet", + + title: "Implémentation d'un modèle de rapport académique", + + authors: ( + (name: "Alexandrine Mercier", email: "alexandrine.mercier@enseirb.fr"), + (name: "Narcisse Fay", email: "narcisse.fay@enseirb.fr"), + (name: "Johanne Reyer", email: "johanne.reyer@enseirb.fr"), + (name: "Modestine Lapointe", email: "modestine.lapointe@enseirb.fr"), + ), + author-columns: 2, + + advisers: ((name: "Adelphe Félix", email: "adelphe.felix@enseirb.fr"),), + adviser-columns: 1, + + date: "Mai 2025", + abstract: include "sections/0-abstract.typ", +) + +// ========================================================================== +// Sections +// ========================================================================== + +#include "sections/1-introduction.typ" +#include "sections/2-analyse.typ" +#include "sections/3-modelisation.typ" +#include "sections/4-implementation.typ" +#include "sections/5-tests.typ" +#include "sections/6-conclusion.typ" + +// ========================================================================== +// End of Document +// ========================================================================== + +#set page(header: none) + +#pagebreak(weak: true) + += Bibliographie +#bibliography( + "bib.yaml", + style: "ieee", + title: none, + full: true, +) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/sections/0-abstract.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/0-abstract.typ new file mode 100644 index 0000000000..ad021bfdf0 --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/0-abstract.typ @@ -0,0 +1 @@ +#lorem(500) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/sections/1-introduction.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/1-introduction.typ new file mode 100644 index 0000000000..448e8492cd --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/1-introduction.typ @@ -0,0 +1,13 @@ += Introduction + +== Contexte +#lorem(250) + +== Présentation du sujet +#lorem(250) + +== Objectifs pédagogiques +#lorem(250) + +== Plan du rapport +#lorem(250) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/sections/2-analyse.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/2-analyse.typ new file mode 100644 index 0000000000..e454a9f4cb --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/2-analyse.typ @@ -0,0 +1,13 @@ += Analyse du sujet + +== Compréhension du problème +#lorem(250) + +== Identification des contraintes +#lorem(250) + +== Cas limites et ambiguïtés +#lorem(250) + +== Hypothèses retenues +#lorem(250) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/sections/3-modelisation.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/3-modelisation.typ new file mode 100644 index 0000000000..3152b3f64e --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/3-modelisation.typ @@ -0,0 +1,13 @@ += Modélisation & Conception + +== Modélisation du problème +#lorem(250) + +== Choix algorithmiques +#lorem(250) + +== Diagrammes +#lorem(250) + +== Lien avec les notions du cours +#lorem(250) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/sections/4-implementation.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/4-implementation.typ new file mode 100644 index 0000000000..48e15db2ae --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/4-implementation.typ @@ -0,0 +1,10 @@ += Implémentation + +== Structure du code +#lorem(250) + +== Points techniques clés +#lorem(250) + +== Difficultés rencontrées +#lorem(250) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/sections/5-tests.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/5-tests.typ new file mode 100644 index 0000000000..24e2e9f1ad --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/5-tests.typ @@ -0,0 +1,13 @@ += Tests & Résultats + +== Jeux de tests +#lorem(250) + +== Résultats obtenus +#lorem(250) + +== Performance +#lorem(250) + +== Limites +#lorem(250) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/sections/6-conclusion.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/6-conclusion.typ new file mode 100644 index 0000000000..5f87f85249 --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/sections/6-conclusion.typ @@ -0,0 +1,10 @@ += Conclusion + +== Bilan +#lorem(250) + +== Recul critique +#lorem(250) + +== Apprentissages +#lorem(250) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/assets/figure.png b/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/assets/figure.png new file mode 100644 index 0000000000..b11f739883 Binary files /dev/null and b/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/assets/figure.png differ diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/figures.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/figures.typ new file mode 100644 index 0000000000..39419fd52b --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/figures.typ @@ -0,0 +1,54 @@ +#import "@preview/unofficial-eirb-report:0.1.1": subfig + += Exemples de figures + +== Figure d'une image + +#figure( + image("./assets/figure.png", width: 70%), + caption: [Une figure contenant une image et une description.], +) + +Noter la balise `` permettant de référencer cette figure, vous pouvez +la référencer comme ceci : @basic-fig. + +== Figure d'un tableau + +#figure( + table( + columns: (auto, auto, auto), + table.header([*Nom*], [*Âge*], [*Rôle*]), + [Alice], [28], [Designer], + [Bob], [34], [Développeur], + [Charlie], [45], [Manager], + ), + caption: [Une figure contenant un tableau et une description.], +) + +Voir @table-fig pour les valeurs. + +== Figure d'un code + +#figure( + ```c + #include + int main(int argc, char *argv[]) + { + printf("Hello, World!\n"); + return 0; + } + ```, + caption: [Une figure contenant du code.], +) + +== Sous-figures + +#subfig( + figure(image("./assets/figure.png"), caption: [Première sous-figure]), + , + figure(image("./assets/figure.png"), caption: [Seconde sous-figure]), + , + columns: (1fr, 1fr), + caption: [Une figure contenant deux sous-figures.], + label: , +) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/listes.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/listes.typ new file mode 100644 index 0000000000..15faf3fa17 --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/listes.typ @@ -0,0 +1,56 @@ += Exemple de listes + +== Listes non ordonnées +Les listes sont créées avec le symbole `-` : + +- Ceci est le premier élément +- Ceci est le deuxième élément +- Ceci est le troisième élément + +== Listes ordonnées +Les énumérations sont créées avec le symbole `+` : + ++ Premier élément ordonné ++ Deuxième élément ordonné ++ Troisième élément ordonné + +== Listes imbriquées + +Vous pouvez créer des listes imbriquées en ajoutant une indentation : + +- Fruits + - Pommes + - Bananes + - Oranges +- Légumes + - Carottes + - Brocoli + - Épinards + +== Listes mixtes + ++ Étape un ++ Étape deux + - Sous-élément A + - Sous-élément B ++ Étape trois + +== Listes de termes + +Les listes de termes (similaires aux listes de définitions) utilisent `/` : + +/ Terme 1: Ceci est la définition du premier terme. +/ Terme 2: Ceci est la définition du deuxième terme. +/ Typst: Un système de composition basé sur un langage de balisage. + +== Listes personnalisées + +#set enum(numbering: "1.a)") ++ Élément de premier niveau + + Élément imbriqué a) + + Élément imbriqué b) ++ Un autre élément de premier niveau + +#set list(marker: [→]) +- Élément avec puce personnalisée +- Un autre élément avec puce personnalisée diff --git a/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/tableaux.typ b/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/tableaux.typ new file mode 100644 index 0000000000..3a7a00b660 --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/template/typst-basic/tableaux.typ @@ -0,0 +1,55 @@ += Exemples de tableaux + +== Tableaux de base + +#table( + columns: (auto, auto, auto), + align: center, + inset: 1em, + [*Nom*], [*Âge*], [*Rôle*], + [Alice], [28], [Designer], + [Bob], [34], [Développeur], + [Charlie], [45], [Manager], +) + +== Tableau dans une figure + +#figure( + table( + columns: (auto, auto, auto), + align: center, + inset: 1em, + [*Nom*], [*Âge*], [*Rôle*], + [Alice], [28], [Designer], + [Bob], [34], [Développeur], + [Charlie], [45], [Manager], + ), + caption: "Un tableau simple avec une légende", +) + +== Style de tableau + +#table( + columns: (1fr, auto, auto), + inset: 1em, + fill: (_, row) => if row == 0 { rgb("#dfebf6") } else if calc.odd(row) { + rgb("#f7f7f7") + } else { white }, + stroke: 0.7pt + rgb("#5c8db7"), + [*Produit*], [*Prix*], [*Quantité*], + [Ordinateur portable], [\$999], [5], + [Clavier], [\$25], [10], + [Souris], [\$85], [7], + [Écran], [\$249], [3], +) + +== Dimensionnement des colonnes + +#table( + columns: (20%, 50%, 30%), + inset: 1em, + [*Colonne 1*], [*Colonne 2*], [*Colonne 3*], + [Ceci est du texte dans la première colonne], + [Cette colonne est plus large et offre plus d’espace pour le contenu], + [Retour à une colonne plus étroite], +) diff --git a/packages/preview/unofficial-eirb-report/0.1.1/thumbnail.png b/packages/preview/unofficial-eirb-report/0.1.1/thumbnail.png new file mode 100644 index 0000000000..47dfcc5ebb Binary files /dev/null and b/packages/preview/unofficial-eirb-report/0.1.1/thumbnail.png differ diff --git a/packages/preview/unofficial-eirb-report/0.1.1/typst.toml b/packages/preview/unofficial-eirb-report/0.1.1/typst.toml new file mode 100644 index 0000000000..a16a98080b --- /dev/null +++ b/packages/preview/unofficial-eirb-report/0.1.1/typst.toml @@ -0,0 +1,26 @@ +[package] +name = "unofficial-eirb-report" +version = "0.1.1" +entrypoint = "src/lib.typ" +authors = ["Florian Delage"] +license = "MIT" +description = "An unofficial report template for Enseirb-Matmeca" +repository = "https://github.com/floriandelage/report-eirb" +keywords = ["report","project","enseirb"] +categories = ["report"] +disciplines = ["engineering","computer-science"] +exclude = [ + ".github", + "docs", + "scripts", + "tests", + ".typstignore", + "Justfile", + "thumbnail-dark.svg", + "thumbnail-light.svg", +] + +[template] +path = "template" +entrypoint = "main.typ" +thumbnail = "thumbnail.png"