manage different university logos

This commit is contained in:
Jean-Marie Mineau 2025-06-19 16:23:13 +02:00
parent f95adbc96f
commit 3f3eb37339
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
21 changed files with 203 additions and 28 deletions

View file

@ -1,4 +1,4 @@
#import "etablissements.typ": etablissements-data
#let assets-folder = "../assets/"
@ -22,6 +22,7 @@
})
#let abstracts(
university: "UR",
title-fr: "",
keywords-fr: (),
abstract-fr: [],
@ -48,7 +49,7 @@
)
set text(font: heading-font, fill: black)
place(dx: 100mm, dy: -15mm, image(assets-folder + "UR.png", width: 6cm))
place(dx: 100mm, dy: -15mm, etablissements-data.at(university).logo)
place(dx: 0mm, dy: -15mm, image(assets-folder + "logo.png", width: 7.5cm))
v(2cm)

View file

@ -1,5 +1,6 @@
#let assets-folder = "../assets/"
#import "etablissements.typ": etablissements-data
#let cover(
title-en: "",
@ -9,7 +10,7 @@
defense-place: "",
defense-date: "",
jury-content: [],
university: [],
university: "UR",
speciality: "Informatique",
heading-font: "TeX Gyre Heros",
) = {
@ -21,27 +22,13 @@
)
set text(font: heading-font, fill: black)
place(dx: 110mm, dy: -15mm, image(assets-folder + "UR.png", width: 6cm))
place(dx: 110mm, dy: -15mm, etablissements-data.at(university).logo)
place(dx: 0mm, dy: -15mm, image(assets-folder + "logo.png", width: 7.5cm))
v(2.1cm)
text(size: 2em, smallcaps[Thèse de doctorat de])
v(2.25cm)
set text(fill: white)
text(size: 1.5em, smallcaps(university))
v(.01cm)
text(size: 1.2em)[
#smallcaps[École Doctorale 601] \
_Mathématiques, Télécommunications, Informatique, \
Signal, Systèmes, Électronique_ \
Spécialité : _ #speciality _ \
#v(.1cm) #h(.6cm) Par \
]
// Add a blue background with the width of the page
context {
let y-start = locate(<cover:title-en>).position().y - 1cm
//let y-start = locate(<cover:title-en>).position().y - 1cm
let y-start = 14.5cm // should match background, more or less
let y-end = locate(<cover:defense-info>).position().y + measure(query(<cover:defense-info>).first()).height + .5cm
let height = 5em
@ -57,6 +44,22 @@
)
}
v(2.1cm)
text(size: 2em, smallcaps[Thèse de doctorat de])
v(2.25cm)
set text(fill: white)
text(size: 1.5em, smallcaps(etablissements-data.at(university).name))
v(.01cm)
text(size: 1.2em)[
#smallcaps[École Doctorale 601] \
_Mathématiques, Télécommunications, Informatique, \
Signal, Systèmes, Électronique_ \
Spécialité : _ #speciality _ \
#v(.1cm) #h(.6cm) Par \
]
// Author name
v(0em)
h(.6cm)

109
lib/etablissements.typ Normal file
View file

@ -0,0 +1,109 @@
#let logo-folder = "../assets/logos-etablissements/"
#let etablissements-data = (
CS: (
logo: image(logo-folder + "CS.png", width: 6cm),
name: [CentralSupélec],
),
EHESP: (
logo: image(logo-folder + "EHESP.png", width: 6cm),
name: [l'École des Hautes Études \ en Santé Publique],
),
ENIB: (
logo: image(logo-folder + "ENIB.png", width: 6cm),
name: [l'École Nationale d'Ingénieurs de Brest],
),
ENS: (
logo: image(logo-folder + "ENS.jpg", width: 6cm),
name: [l'École Normale Supérieure de Rennes],
),
ENSAI: (
logo: image(logo-folder + "ENSAI.png", width: 6cm),
name: [l'École Nationale de la Statistique \ et de l'Analyse de l'Information],
),
ENSCR: (
logo: image(logo-folder + "ENSCR.png", width: 6cm),
name: [l'École Nationale Supérieure \ de Chimie Rennes],
),
ENSTA: (
logo: image(logo-folder + "ENSTA.jpg", width: 6cm),
name: [l'École Nationale Supérieure \ de Technique Avancées Bretagne],
),
IMTA: (
logo: image(logo-folder + "IMTA.png", width: 6cm),
name: [l'École Nationale Supérieure \ Mines-Télécom Atlantique Bretagne \ Pays de la Loire -- IMT Atalntique],
),
INSA: (
logo: image(logo-folder + "INSA.svg", width: 6cm),
name: [l'Institut National des \ Sciences Appliquées de Rennes],
),
InstitutAgro: (
logo: image(logo-folder + "InstitutAgro.png", width: 6cm),
name: [l'Institut Agro Rennes Angers],
),
UBO: (
logo: image(logo-folder + "UBO.png", width: 6cm),
name: [l'Université de Bretagne Occidentale],
),
UBS: (
logo: image(logo-folder + "UBS.png", width: 6cm),
name: [l'Université Bretagne Sud],
),
UR: (
logo: image(logo-folder + "UR.png", width: 6cm),
name: [l'Université de Rennes],
),
UR2: (
logo: image(logo-folder + "UR2.png", width: 6cm),
name: [l'Université de Rennes 2],
),
ENSAB-UR2: (
logo: stack(
dir:ttb,
image(logo-folder + "ENSAB.png", width: 6cm),
image(logo-folder + "UR2.png", width: 6cm),
),
name: [l'École Nationale Supérieure \ d'Architecture de Bretagne \ délivrée conjointement avec \ l'Université de Rennes 2],
),
UR2-UR: (
logo: stack(
dir:ttb,
image(logo-folder + "UR2.png", width: 6cm),
image(logo-folder + "UR.png", width: 6cm),
),
name: [l'Université de Rennes 2 \ délivrée conjointement avec \ l'Université de Rennes],
),
EHESP-UR: (
logo: stack(
dir:ttb,
image(logo-folder + "EHESP.png", width: 6cm),
image(logo-folder + "UR.png", width: 6cm),
),
name: [l'École des Hautes Études \ en Santé Publique \ délivrée conjointement avec \ L'Université de Rennes],
),
InstitutAgro-UR2: (
logo: stack(
dir:ttb,
image(logo-folder + "InstitutAgro.png", width: 6cm),
image(logo-folder + "UR2.png", width: 6cm),
),
name: [l'Institut Agro \ Rennes Angers \ délivrée conjointement avec \ L'Université de Rennes],
),
InstitutAgro-UBO: (
logo: stack(
dir:ttb,
image(logo-folder + "ENIB.png", width: 6cm),
image(logo-folder + "UBO.png", width: 6cm),
),
name: [l'École Nationale \ d'Ingénieurs de Brest \ délivrée conjointement avec \ L'Université de Bretagne Occientale],
),
)
#let assert-etablissements(etablissements) = {
assert(
etablissements in etablissements-data,
message: "'" + etablissements + "'" + " not in : [" + etablissements-data.keys().join(", ") + "]",
)
}

View file

@ -3,6 +3,7 @@
#import "cover.typ": cover
#import "abstracts.typ": abstracts
#import "todos.typ": todos, show-todos
#import "etablissements.typ": *
#let matisse-thesis(
// English title, will be used for the document title metadata
@ -13,7 +14,7 @@
defense-place: "",
defense-date: "",
jury-content: [],
university: [l'Université de Rennes],
university: "UR",
speciality: "Informatique",
// List of keyword for the abstract
keywords-en: (),
@ -33,6 +34,7 @@
school-color-verso: rgb("0054a0"),
body
) = {
assert-etablissements(university)
if draft {
todos()
@ -218,6 +220,7 @@
// ---------- ABSTRACT ----------
abstracts(
university: university,
title-fr: title-fr, keywords-fr: keywords-fr, abstract-fr: abstract-fr,
title-en: title-en, keywords-en: keywords-en, abstract-en: abstract-en,
heading-font: heading-font, school-color-verso: school-color-verso,