-
Notifications
You must be signed in to change notification settings - Fork 450
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
16 changed files
with
1,007 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
MIT No Attribution | ||
|
||
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. | ||
|
||
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
# PSL University PhD thesis template | ||
|
||
This is a Typst template for a thesis manuscript at Paris Sciences et Lettres (PSL) | ||
University. Original covers in Word and LaTeX format are available on [PSL's | ||
website](https://psl.eu/formation/choisir-sa-formation/college-doctoral-de-luniversite-psl). | ||
Front and back covers are generated using images by Pierre Guillou, available | ||
[here](https://pierre.guillou.net/psl-cover/2018/). A similar LaTeX template by Arthur | ||
Chavignon is available on | ||
[Overleaf](https://www.overleaf.com/latex/templates/template-phd-psl-university-paris-sciences-et-lettres/jtntgmybzjxn). | ||
|
||
## Usage | ||
|
||
You can use this template in the Typst web app by clicking "Start from tempate" on the | ||
dashboard and searching for `psl-thesis`. | ||
|
||
Alternatively, you can use the CLI to kick this project off using the command | ||
|
||
```bash | ||
typst init @preview/psl-thesis | ||
``` | ||
|
||
Typst will create a new directory with all the files needed to get you started. | ||
|
||
## Configuration | ||
|
||
This template exports the `psl-thesis-covers` function with the following named | ||
arguments: | ||
|
||
- `title`: The title of the thesis. | ||
- `author`: The author of the thesis. | ||
- `date`: The denfense date. | ||
- `institute`: The institute where the thesis was prepared. | ||
- `institute-logo`: A content (e.g. result of the `image` function) to place in the | ||
front cover footer, or `none`. | ||
- `doctoral-school`: Dictionnary containing the `name` and `number` of the doctoral | ||
school. | ||
- `specialty`: The specialty of the thesis. | ||
- `jury`: An array of dictionaries containing the `firstname`, `lastname`, `title` and | ||
`role` of each jury member. | ||
- `abstracts`: A dictionary containing the thesis abstracts in French and English, | ||
displayed on the back cover. | ||
- `keywords`: A dictionary containing the thesis keywords in French and English, | ||
displayed on the back cover. | ||
|
||
The function also accepts a single, positional argument for the body of the thesis. The | ||
front cover language can be either French or English, and is set by calling the `text` | ||
function with the `lang` argument before calling `psl-thesis-covers`. | ||
|
||
The template will initialize your package with a sample call to the `psl-thesis-covers` | ||
function in a show rule. Example sections and chapter styling are also included. If you | ||
want to use your own thesis layout with only the front and back covers, you can use the | ||
`psl-thesis-covers` function alone: | ||
|
||
```typst | ||
#import "@preview/psl-thesis:0.1.0": psl-thesis-covers | ||
// Choose between fr and en to set the front cover language. | ||
#set text(lang: "fr", font: "Montserrat", size: 11pt) | ||
#show: psl-thesis-covers.with( | ||
title: [Recherches sur les substances radioactives], | ||
author: [Marie Skłodowska-Curie], | ||
date: [le 25 juin 1903], | ||
doctoral-school: (name: [Faculté des sciences], number: [123]), | ||
institute: [à la Faculté des Sciences de Paris], | ||
institute-logo: image("./logo-institute.svg", height: 3.5cm), | ||
specialty: [Sciences Physiques], | ||
jury: ( | ||
( | ||
firstname: "Name", | ||
lastname: "Surname", | ||
title: "PhD, Affiliation", | ||
role: "President", | ||
), | ||
( | ||
firstname: "Name", | ||
lastname: "Surname", | ||
title: "PhD, Affiliation", | ||
role: "Referee", | ||
), | ||
( | ||
firstname: "Name", | ||
lastname: "Surname", | ||
title: "PhD, Affiliation", | ||
role: "Referee", | ||
), | ||
( | ||
firstname: "Name", | ||
lastname: "Surname", | ||
title: "MD, PhD, Affiliation", | ||
role: "Member", | ||
), | ||
( | ||
firstname: "Name", | ||
lastname: "Surname", | ||
title: "PhD, Affiliation", | ||
role: "PhD supervisor", | ||
), | ||
), | ||
abstracts: (fr: lorem(128), en: lorem(128)), | ||
keywords: (fr: lorem(4), en: lorem(4)), | ||
) | ||
// Your thesis content goes here. | ||
``` | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
[conf] | ||
default-lang = "en" | ||
|
||
[lang.en] | ||
conducted_at = "Conducted at" | ||
presented_by = "Presented by" | ||
doctoral_school = "Doctoral school n°" | ||
specialty = "Specialty" | ||
jury = "Jury members" | ||
|
||
[lang.fr] | ||
conducted_at = "Préparée" | ||
presented_by = "Soutenue par" | ||
doctoral_school = "École doctorale n°" | ||
specialty = "Spécialité" | ||
jury = "Composition du jury" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,228 @@ | ||
#import "@preview/linguify:0.4.1": * | ||
|
||
#let database = toml("lang.toml") | ||
|
||
#let colors = ( | ||
psl: rgb(36, 56, 141), | ||
) | ||
|
||
#let psl-front-cover( | ||
// The thesis title. | ||
title: [PhD title], | ||
// The thesis author. | ||
author: [Thesis author], | ||
// The institution name. | ||
institute: [Institute name], | ||
// Path to the institute logo, or none. | ||
institute-logo: none, | ||
// The doctoral school name and number. | ||
doctoral-school: ( | ||
name: [Doctoral school name], | ||
number: [Doctoral school number], | ||
), | ||
// The thesis specialty. | ||
specialty: [Thesis specialty], | ||
// The defense date. | ||
date: [Defense date], | ||
// The jury members. | ||
jury: ( | ||
( | ||
firstname: "Name", | ||
lastname: "Surname", | ||
title: "PhD, Affiliation", | ||
role: "President", | ||
), | ||
( | ||
firstname: "Name", | ||
lastname: "Surname", | ||
title: "PhD, Affiliation", | ||
role: "Referee", | ||
), | ||
), | ||
) = { | ||
// Page setup. | ||
set page( | ||
background: image("assets/front-bg.jpg"), | ||
margin: (left: 2cm, right: 1.5cm, top: 2cm, bottom: 6cm), | ||
footer: [ | ||
#if institute-logo != none { | ||
align(center)[#institute-logo] | ||
} | ||
], | ||
) | ||
set text(size: 14pt) | ||
|
||
// Institute name. | ||
v(5.6cm) | ||
block(text(linguify("conducted_at", from: database) + [ #institute], fill: colors.psl), width: 10cm) | ||
|
||
// Thesis title. | ||
v(1cm) | ||
align(center)[ | ||
#text([*#title*], size: 16pt) | ||
] | ||
|
||
// Thesis author, doctoral school, specialty, and jury members. | ||
v(0.5cm) | ||
|
||
let make-jury-table = { | ||
set text(size: 11pt) | ||
table( | ||
columns: (1fr, 0.6fr), | ||
stroke: none, | ||
align: (left, right), | ||
inset: 0cm, | ||
row-gutter: 0.5cm, | ||
column-gutter: 1cm, | ||
..jury | ||
.map(member => { | ||
( | ||
[#member.firstname #smallcaps([#member.lastname])\ #member.title], | ||
[_#member.role _], | ||
) | ||
}) | ||
.flatten() | ||
) | ||
} | ||
|
||
set rect( | ||
inset: 0.3cm, | ||
fill: luma(240), | ||
width: 100%, | ||
) | ||
|
||
grid( | ||
columns: (0.6fr, 1fr), | ||
rows: 3, | ||
gutter: 1cm, | ||
[ | ||
#v(0.3cm) | ||
#text(linguify("presented_by", from: database), fill: colors.psl)\ | ||
#text([*#author*], size: 16pt)\ | ||
#date | ||
], | ||
grid.cell( | ||
rowspan: 3, | ||
rect[ | ||
#text(linguify("jury", from: database), fill: colors.psl)\ | ||
#make-jury-table | ||
], | ||
), | ||
[ | ||
#text(linguify("doctoral_school", from: database) + [ #doctoral-school.number], fill: colors.psl)\ | ||
#text([*#doctoral-school.name*], size: 16pt) | ||
], | ||
[ | ||
#text(linguify("specialty", from: database), fill: colors.psl)\ | ||
#text([*#specialty*], size: 16pt) | ||
], | ||
) | ||
|
||
pagebreak() | ||
} | ||
|
||
#let psl-back-cover( | ||
// The thesis abstracts, in French and English. | ||
abstracts: ( | ||
fr: [Résumé], | ||
en: [Abstract], | ||
), | ||
// The thesis keywords, in French and English. | ||
keywords: ( | ||
fr: [mot clé 1, mot clé 2, mot clé 3, mot clé 4], | ||
en: [keyword 1, keyword 2, keyword 3, keyword 4], | ||
), | ||
) = { | ||
pagebreak() | ||
|
||
set page( | ||
background: place(top + left, image("assets/back-bg.png")), | ||
margin: (left: 2cm, right: 1.5cm, top: 2cm, bottom: 4.5cm), | ||
) | ||
|
||
show heading: it => { | ||
set text(fill: colors.psl, weight: "light") | ||
block(smallcaps(it.body)) | ||
v(-0.5cm) | ||
line(length: 100%, stroke: colors.psl) | ||
} | ||
|
||
set par(justify: true) | ||
align(horizon)[ | ||
#heading(level: 1, outlined: false)[Résumé] | ||
#text(size: 0.9em)[#abstracts.fr] | ||
|
||
#heading(level: 1, outlined: false)[Mots clés] | ||
#text(size: 0.9em)[#keywords.fr] | ||
|
||
#heading(level: 1, outlined: false)[Abstract] | ||
#text(size: 0.9em)[#abstracts.en] | ||
|
||
#heading(level: 1, outlined: false)[Keywords] | ||
#text(size: 0.9em)[#keywords.en] | ||
] | ||
} | ||
|
||
#let psl-thesis-covers( | ||
// The thesis title. | ||
title: [PhD title], | ||
// The thesis author. | ||
author: [Thesis author], | ||
// The defense date. | ||
date: [Defense date], | ||
// The institute where the thesis was prepared. | ||
institute: [Institute name], | ||
// A content (e.g. result of the `image` function) to place in the front cover footer, | ||
// or none. | ||
institute-logo: none, | ||
// The doctoral school name and number. | ||
doctoral-school: ( | ||
name: [Doctoral school name], | ||
number: [Doctoral school number], | ||
), | ||
// The thesis specialty. | ||
specialty: [Thesis specialty], | ||
// The jury members. | ||
jury: ( | ||
( | ||
firstname: "Name", | ||
lastname: "Surname", | ||
title: "PhD, Affiliation", | ||
role: "President", | ||
), | ||
( | ||
firstname: "Name", | ||
lastname: "Surname", | ||
title: "PhD, Affiliation", | ||
role: "Referee", | ||
), | ||
), | ||
// The thesis abstracts, in French and English. | ||
abstracts: ( | ||
fr: [Abstract in French], | ||
en: [Abstract in English], | ||
), | ||
// The thesis keywords, in French and English. | ||
keywords: ( | ||
fr: [Keywords in French], | ||
en: [Keywords in English], | ||
), | ||
// The thesis body. | ||
doc, | ||
) = { | ||
psl-front-cover( | ||
author: author, | ||
title: title, | ||
institute: institute, | ||
institute-logo: institute-logo, | ||
doctoral-school: doctoral-school, | ||
specialty: specialty, | ||
date: date, | ||
jury: jury, | ||
) | ||
|
||
doc | ||
|
||
pagebreak(to: "odd", weak: false) | ||
psl-back-cover(abstracts: abstracts, keywords: keywords) | ||
} |
Empty file.
10 changes: 10 additions & 0 deletions
10
packages/preview/psl-thesis/0.1.0/template/content/back/conclusion.typ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
= Conclusions | ||
|
||
== General conclusions | ||
|
||
#lorem(128) | ||
|
||
== Perspectives | ||
|
||
#lorem(128) | ||
|
Oops, something went wrong.