export: génère le polycopié en PDF avec `paged.js`

- Ajoute un modèle HTML contenant les éléments nécessaires pour utiliser
  `paged.js` dans un navigateur web.
- Ajoute une feuille de style pour définir les styles utilisés pour le
  PDF, de manière à s'approcher de la charte de l'UNIGE.
- Ajoute également la feuille de style pour l'interface de `pagedjs`,
  afin de pouvoir avoir un rendu paginé dans le navigateur web.
- Documente l'usage de `paged.js`.
- Crée un dossier `sources` avec des sous-répertoires pour le polycopié
  et la présentation. S'y trouvent les sources et les fichiers
  nécessaires pour les différentes conversions de fichiers.
- Renomme le dossier `media` en `medias`, ce qui a plus de sens, et
  place le dossier dans le répertoire des sources.
- Utilise le style de citation et de bibliographie Haute École de
  Gestion de Genève, ISO 690.
- Apporte quelques petites corrections au polycopié lui-même.

Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
iGor milhit 2023-04-04 13:45:27 +02:00
parent 26dc23d101
commit 9322cfa031
Signed by: igor
GPG Key ID: 5785C84B21C88AE6
16 changed files with 972 additions and 18 deletions

View File

@ -41,17 +41,50 @@ Pour pouvoir utiliser ce projet, il est nécessaire:
## Convertir le support de cours en PDF
### Avec LaTeX
Pour convertir le support de cours (`polycopié.md`) au format PDF, il faut
utiliser la commande suivante:
```bash
pandoc --citeproc -t pdf --pdf-engine=tectonic -o polycopié.pdf polycopié.md
pandoc --citeproc --to=pdf --pdf-engine=tectonic \
--output=public/polycopié.pdf \
source/polycopié/polycopié.md
```
- `--citeproc` traite les citations et génère la bibliographie.
- `--to=pdf` détermine le format de sortie, ici PDF.
- `--pdf-engine` définit le moteur de compilation a utiliser pour produire le
PDF, ici `tectonic`, mais `xelatex` devrait fonctionner aussi, si il est
installé.
- `--output=` spécifie le chemin et le nom du fichier généré.
### Avec `paged.js`
Avec cet outil, il est possible de définir les styles des éléments dans le PDF
au moyen de règles CSS (voir [paged.js][pagedjs]). Pour pouvoir l'utiliser, il
faut avoir installé sur sa machine les paquets `npm` suivants:
```bash
npm install -g puppeteer pagedjs pagedjs-cli
```
Puis, on peut soit produire directement un PDF:
```bash
pandoc --self-contained --citeproc --t pdf --pdf-engine=pagedjs-cli \
--css=source/polycopié/polycopié.css \
--output=public/polycopié.pdf polycopié.md
```
```bash
pandoc --self-contained --citeproc --t html \
--template=source/polycopié/template.html \
--css=source/polycopié/polycopié.css \
-o test.html polycopié.md
```
[pagedjs]: https://pagedjs.org/
## Déroulé de la présentation

View File

Before

Width:  |  Height:  |  Size: 229 KiB

After

Width:  |  Height:  |  Size: 229 KiB

View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,562 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="never">
<info>
<title>Haute école de gestion de Genève - ISO 690</title>
<title-short>HEG Genève - ISO 690</title-short>
<id>http://www.zotero.org/styles/haute-ecole-de-gestion-de-geneve-iso-690</id>
<link href="http://www.zotero.org/styles/haute-ecole-de-gestion-de-geneve-iso-690" rel="self"/>
<link href="http://www.zotero.org/styles/iso690-author-date-en" rel="template"/>
<link href="https://www.hesge.ch/heg/campus/infotheque/citations-et-references-bibliographiques" rel="documentation"/>
<author>
<name>Melissa Paez</name>
<email>paez.melissa@gmail.com</email>
</author>
<author>
<name>Raphael Grolimund</name>
<email>grolimur@protonmail.ch</email>
</author>
<category citation-format="author-date"/>
<category field="generic-base"/>
<updated>2022-03-21T10:00:00+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="fr-FR">
<terms>
<term name="no date">[sans date]</term>
<term name="in">in</term>
<term name="online">[en&#160;ligne]</term>
<term name="accessed">consulté&#160;le</term>
<term name="retrieved">disponible</term>
<term name="from">à l'adresse</term>
<term name="translator" form="short">trad.</term>
<term name="editor" form="short">éd.</term>
</terms>
</locale>
<locale xml:lang="en-US">
<terms>
<term name="online">Online</term>
</terms>
</locale>
<macro name="editor">
<names variable="editor">
<name and="text" name-as-sort-order="all" sort-separator=", " delimiter=", " delimiter-precedes-last="never">
<name-part name="family" text-case="uppercase"/>
</name>
<label prefix=" (" form="short" suffix=".)"/>
</names>
</macro>
<macro name="translator">
<names variable="translator">
<name and="text" name-as-sort-order="all" sort-separator=", " delimiter=", " delimiter-precedes-last="never">
<name-part name="family" text-case="uppercase"/>
</name>
<label prefix=" (" form="short" suffix=".)"/>
</names>
</macro>
<macro name="responsability">
<names variable="author">
<name and="text" name-as-sort-order="all" sort-separator=", " delimiter=", " delimiter-precedes-last="never">
<name-part name="family" text-case="uppercase"/>
</name>
<substitute>
<text macro="editor"/>
<text macro="translator"/>
<text macro="title"/>
</substitute>
</names>
<choose>
<if variable="author editor translator" match="any">
<text macro="year-date" prefix=", "/>
</if>
</choose>
</macro>
<macro name="author-citation">
<names variable="author">
<name form="short"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text variable="title" font-style="italic"/>
</substitute>
</names>
</macro>
<macro name="container-author">
<names variable="container-author">
<name and="text" name-as-sort-order="all" sort-separator=", " delimiter=", " delimiter-precedes-last="never">
<name-part name="family" text-case="uppercase"/>
</name>
</names>
</macro>
<macro name="container-responsability">
<choose>
<if variable="container-author">
<text macro="container-author"/>
</if>
<else-if variable="editor">
<text macro="editor"/>
</else-if>
<else>
<text macro="translator"/>
</else>
</choose>
</macro>
<macro name="year-date">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="year" form="long"/>
</date>
</if>
<else>
<text term="no date"/>
</else>
</choose>
</macro>
<macro name="title">
<choose>
<if type="book thesis map motion_picture song manuscript" match="any">
<choose>
<if variable="author editor translator" match="any">
<text variable="title" font-style="italic" suffix="."/>
</if>
<else>
<text variable="title" font-style="italic" suffix=", "/>
<text macro="year-date" suffix=". "/>
</else>
</choose>
</if>
<else-if type="paper-conference speech chapter article-journal article-magazine article-newspaper entry entry-dictionary entry-encyclopedia post-weblog post webpage broadcast" match="any">
<choose>
<if variable="author editor translator" match="any">
<text variable="title" suffix=". "/>
</if>
<else>
<text variable="title" suffix=", "/>
<text macro="year-date" suffix=". "/>
</else>
</choose>
<choose>
<if type="chapter paper-conference" match="any">
<text term="in" text-case="capitalize-first" suffix=": "/>
</if>
</choose>
<choose>
<if variable="container-author editor translator" match="any">
<text macro="container-responsability"/>
<choose>
<if variable="container-title event" match="any">
<text value=", "/>
</if>
</choose>
</if>
</choose>
<choose>
<if variable="container-title">
<text variable="container-title" font-style="italic" suffix="."/>
</if>
<else>
<text variable="event" font-style="italic" suffix="."/>
</else>
</choose>
</else-if>
<else-if type="report">
<choose>
<if variable="author editor translator" match="any">
<text variable="title" font-style="italic"/>
</if>
<else>
<text variable="number" suffix=": "/>
<text variable="title" font-style="italic" suffix=", "/>
<text macro="year-date" suffix=". "/>
</else>
</choose>
</else-if>
<else-if type="patent">
<choose>
<if variable="author editor translator" match="any">
<text variable="title"/>
</if>
<else>
<text variable="title" suffix=", "/>
<text macro="year-date" suffix=". "/>
</else>
</choose>
</else-if>
<else>
<choose>
<if variable="author editor translator" match="any">
<text variable="title" font-style="italic" suffix=". "/>
</if>
<else>
<text variable="title" font-style="italic" suffix=", "/>
<text macro="year-date" suffix=". "/>
</else>
</choose>
</else>
</choose>
<choose>
<if variable="URL">
<text term="online" prefix=" "/>
</if>
</choose>
</macro>
<macro name="number">
<text variable="number"/>
</macro>
<macro name="medium">
<text variable="medium" prefix=" [" suffix="]"/>
</macro>
<macro name="genre">
<choose>
<if type="map">
<choose>
<if variable="genre">
<text variable="genre" prefix="[" suffix="]"/>
</if>
<else>
<text value="map" prefix="[" suffix="]"/>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="date">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" suffix=" "/>
<date-part name="year"/>
</date>
</if>
</choose>
</macro>
<macro name="edition">
<text variable="edition" form="long"/>
</macro>
<macro name="publisher-group">
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</macro>
<macro name="issue">
<group delimiter=", ">
<text variable="volume" prefix="Vol.&#160;"/>
<choose>
<if variable="volume">
<text variable="issue" prefix="no.&#160;"/>
<text variable="page" prefix="pp.&#160;"/>
</if>
<else-if variable="issue">
<text variable="issue" prefix="No.&#160;"/>
<text variable="page" prefix="pp.&#160;"/>
</else-if>
<else>
<text variable="page" prefix="pp.&#160;"/>
</else>
</choose>
</group>
</macro>
<macro name="accessed">
<choose>
<if variable="URL">
<group prefix=" [" suffix="]">
<text term="accessed" text-case="capitalize-first"/>
<date variable="accessed">
<date-part name="day" prefix="&#160;"/>
<date-part name="month" prefix="&#160;"/>
<date-part name="year" prefix="&#160;"/>
</date>
</group>
</if>
</choose>
</macro>
<macro name="collection">
<group delimiter=", ">
<text variable="collection-title"/>
<text variable="collection-number"/>
</group>
</macro>
<macro name="page">
<choose>
<if type="book thesis manuscript" match="any">
<text variable="number-of-pages" suffix="&#160;p"/>
</if>
<else-if type="chapter paper-conference article-newspaper" match="any">
<text variable="page" prefix="pp.&#160;"/>
</else-if>
<else-if type="report patent" match="any">
<text variable="page" suffix="&#160;p"/>
</else-if>
</choose>
</macro>
<macro name="isbn">
<text variable="ISBN" prefix="ISBN&#160;"/>
</macro>
<macro name="doi">
<text variable="DOI" prefix="DOI&#160;"/>
</macro>
<macro name="url">
<choose>
<if variable="DOI" match="none">
<choose>
<if variable="URL">
<group>
<text term="retrieved" suffix=" " text-case="capitalize-first"/>
<text term="from" suffix=": "/>
<text variable="URL"/>
</group>
</if>
</choose>
</if>
</choose>
</macro>
<macro name="archive">
<group delimiter=":&#160;">
<text variable="archive"/>
<text macro="archive_location"/>
</group>
</macro>
<macro name="archive_location">
<choose>
<if variable="archive_location">
<text variable="archive_location"/>
</if>
<else>
<text variable="call-number"/>
</else>
</choose>
</macro>
<citation et-al-min="4" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" collapse="year" year-suffix-delimiter=", " after-collapse-delimiter="; ">
<layout prefix="(" suffix=")" delimiter="; ">
<group delimiter=", ">
<group delimiter=" ">
<text macro="author-citation"/>
<text macro="year-date"/>
</group>
<group>
<label variable="locator" suffix=".&#160;" form="short" strip-periods="true"/>
<text variable="locator"/>
</group>
</group>
</layout>
</citation>
<bibliography>
<sort>
<key macro="responsability"/>
<key macro="year-date"/>
</sort>
<layout>
<choose>
<if type="book map" match="any">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text variable="version" prefix="version " suffix=". "/>
<!-- used for software until type="software" is implemented -->
<text macro="genre" suffix=". "/>
<text macro="edition" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="collection" suffix=". "/>
<text macro="isbn" suffix=". "/>
<text macro="url"/>
</if>
<else-if type="article-journal article-magazine" match="any">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="edition" suffix=". "/>
<text macro="date" suffix=". "/>
<text macro="issue" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="doi" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="article-newspaper">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="edition" suffix=". "/>
<text macro="publisher-group" suffix=", "/>
<text macro="date" suffix=". "/>
<text macro="page" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="chapter entry entry-dictionary entry-encyclopedia" match="any">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="edition" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="page" suffix=". "/>
<text macro="collection" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="isbn" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="speech">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="genre" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="date" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="page" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="paper-conference">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="genre" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="date" suffix=". "/>
<text macro="page" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="collection" suffix=". "/>
<text macro="isbn" suffix=". "/>
<text macro="doi" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="thesis">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="genre" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="post-weblog post webpage" match="any">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="date" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="broadcast motion_picture song" match="any">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="medium" suffix=". "/>
<text macro="publisher-group" suffix=", "/>
<text macro="date" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="collection" suffix=". "/>
<text macro="isbn" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="report">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="genre" suffix=". "/>
<text macro="edition" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="collection" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="manuscript">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="genre" suffix=". "/>
<text macro="edition" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="collection" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="patent">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="number" suffix=". "/>
<text macro="date" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="collection" suffix=". "/>
<text macro="url"/>
</else-if>
<else-if type="software">
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text variable="version" prefix="version " suffix=". "/>
<text macro="date" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="url"/>
</else-if>
<else>
<text macro="responsability" suffix=". "/>
<choose>
<if variable="author editor translator" match="any">
<text macro="title" suffix=". "/>
</if>
</choose>
<text macro="medium" suffix=". "/>
<text macro="genre" suffix=". "/>
<text macro="date" suffix=". "/>
<text macro="edition" suffix=". "/>
<text macro="publisher-group" suffix=". "/>
<text macro="number" suffix=". "/>
<text macro="accessed" suffix=". "/>
<text macro="collection" suffix=". "/>
<text macro="page" suffix=". "/>
<text macro="isbn" suffix=". "/>
<text macro="url"/>
</else>
</choose>
<text variable="note"/>
<group display="right-inline">
<text macro="archive"/>
</group>
</layout>
</bibliography>
</style>

View File

@ -0,0 +1,180 @@
/* CSS for Paged.js interface v0.4 */
/* Change the look */
:root {
--color-background: whitesmoke;
--color-pageSheet: #cfcfcf;
--color-pageBox: violet;
--color-paper: white;
--color-marginBox: transparent;
--pagedjs-crop-color: black;
--pagedjs-crop-shadow: white;
--pagedjs-crop-stroke: 1px;
}
/* To define how the book look on the screen: */
@media screen, pagedjs-ignore {
body {
background-color: var(--color-background);
}
.pagedjs_pages {
display: flex;
width: calc(var(--pagedjs-width) * 2);
flex: 0;
flex-wrap: wrap;
margin: 0 auto;
}
.pagedjs_page {
background-color: var(--color-paper);
box-shadow: 0 0 0 1px var(--color-pageSheet);
margin: 0;
flex-shrink: 0;
flex-grow: 0;
margin-top: 10mm;
}
.pagedjs_first_page {
margin-left: var(--pagedjs-width);
}
.pagedjs_page:last-of-type {
margin-bottom: 10mm;
}
.pagedjs_pagebox{
box-shadow: 0 0 0 1px var(--color-pageBox);
}
.pagedjs_left_page{
z-index: 20;
width: calc(var(--pagedjs-bleed-left) + var(--pagedjs-pagebox-width))!important;
}
.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-crop {
border-color: transparent;
}
.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-middle{
width: 0;
}
.pagedjs_right_page{
z-index: 10;
position: relative;
left: calc(var(--pagedjs-bleed-left)*-1);
}
/* show the margin-box */
.pagedjs_margin-top-left-corner-holder,
.pagedjs_margin-top,
.pagedjs_margin-top-left,
.pagedjs_margin-top-center,
.pagedjs_margin-top-right,
.pagedjs_margin-top-right-corner-holder,
.pagedjs_margin-bottom-left-corner-holder,
.pagedjs_margin-bottom,
.pagedjs_margin-bottom-left,
.pagedjs_margin-bottom-center,
.pagedjs_margin-bottom-right,
.pagedjs_margin-bottom-right-corner-holder,
.pagedjs_margin-right,
.pagedjs_margin-right-top,
.pagedjs_margin-right-middle,
.pagedjs_margin-right-bottom,
.pagedjs_margin-left,
.pagedjs_margin-left-top,
.pagedjs_margin-left-middle,
.pagedjs_margin-left-bottom {
box-shadow: 0 0 0 1px inset var(--color-marginBox);
}
/* uncomment this part for recto/verso book : ------------------------------------ */
/*
.pagedjs_pages {
flex-direction: column;
width: 100%;
}
.pagedjs_first_page {
margin-left: 0;
}
.pagedjs_page {
margin: 0 auto;
margin-top: 10mm;
}
.pagedjs_left_page{
width: calc(var(--pagedjs-bleed-left) + var(--pagedjs-pagebox-width) + var(--pagedjs-bleed-left))!important;
}
.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-crop{
border-color: var(--pagedjs-crop-color);
}
.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-middle{
width: var(--pagedjs-cross-size)!important;
}
.pagedjs_right_page{
left: 0;
}
*/
/*--------------------------------------------------------------------------------------*/
/* uncomment this par to see the baseline : -------------------------------------------*/
/* .pagedjs_pagebox {
--pagedjs-baseline: 22px;
--pagedjs-baseline-position: 5px;
--pagedjs-baseline-color: cyan;
background: linear-gradient(transparent 0%, transparent calc(var(--pagedjs-baseline) - 1px), var(--pagedjs-baseline-color) calc(var(--pagedjs-baseline) - 1px), var(--pagedjs-baseline-color) var(--pagedjs-baseline)), transparent;
background-size: 100% var(--pagedjs-baseline);
background-repeat: repeat-y;
background-position-y: var(--pagedjs-baseline-position);
} */
/*--------------------------------------------------------------------------------------*/
}
/* Marks (to delete when merge in paged.js) */
.pagedjs_marks-crop{
z-index: 999999999999;
}
.pagedjs_bleed-top .pagedjs_marks-crop,
.pagedjs_bleed-bottom .pagedjs_marks-crop{
box-shadow: 1px 0px 0px 0px var(--pagedjs-crop-shadow);
}
.pagedjs_bleed-top .pagedjs_marks-crop:last-child,
.pagedjs_bleed-bottom .pagedjs_marks-crop:last-child{
box-shadow: -1px 0px 0px 0px var(--pagedjs-crop-shadow);
}
.pagedjs_bleed-left .pagedjs_marks-crop,
.pagedjs_bleed-right .pagedjs_marks-crop{
box-shadow: 0px 1px 0px 0px var(--pagedjs-crop-shadow);
}
.pagedjs_bleed-left .pagedjs_marks-crop:last-child,
.pagedjs_bleed-right .pagedjs_marks-crop:last-child{
box-shadow: 0px -1px 0px 0px var(--pagedjs-crop-shadow);
}

View File

@ -0,0 +1,101 @@
@media print {
body {
font-family: TheSans, "Open Sans", Arial, Helvetica, sans-serif;
counter-reset: figureNumber;
}
@page {
size: A4;
margin: 25mm 0;
bleed: 6mm;
@bottom-center {
content: counter(page)
}
}
@page:left {
margin-left: 25mm;
margin-right: 15mm;
}
@page:right {
margin-left: 15mm;
margin-right: 25mm;
}
@page:first {
@bottom-center {
content: none;
}
}
@page:nth(11) {
@bottom-center {
content: none;
}
}
h2 {
color: #d80669;
text-decoration: underline;
}
#principes-généraux,
#utilisation-de-biblatex,
#bibliographie,
.footnotes {
break-before: page;
}
#title-block-header {
text-align: center;
margin-bottom: 8em;
}
.author {
display: inline;
padding-right: 10px;
}
pre {
font-family:'Courier New', Courier, monospace;
font-size: 90%;
background-color: #f2f1f1;
border: 2px solid #d80669;
border-radius: .5em;
margin: 1em;
padding: .5em 1em;
}
code {
font-family:'Courier New', Courier, monospace;
font-size: 90%;
background-color: #f2f1f1;
padding: 2px;
border-radius: 5px;
}
.footnotes::before {
content: "Notes";
color: #d80669;
font-size: 120%;
font-weight: bold;
}
figure {
display: flex;
flex-direction: column;
border: 2px solid #d80669;
border-radius: .5em;
padding: .5em;
}
figure img {
max-width: 85%;
margin: 0 auto;
}
figcaption {
text-align: center;
font-size: 90%;
counter-increment: figureNumber;
padding-top: .5em;
}
figcaption::before {
content: "Figure " counter(figureNumber) ": ";
}
blockquote {
font-style: italic;
}
blockquote em {
font-style: normal;
}
div.csl-entry {
padding: .5em;
}
}

View File

@ -1,5 +1,5 @@
---
title: "Citer ses références et créer une bibliographie avec \\LaTeX"
title: "Citer ses références et créer une bibliographie avec LaTeX et Zotero"
date: 2023-03-30
creation_date: 2023-03-24T08:25:47+01:00
id: 20230324082557
@ -9,7 +9,7 @@ author:
- Igor Milhit^[Bibliothèque de l'UNIGE, site CMU]
lang: fr
bibliography: references-support.bib
reference-section-title: Bibliographie
csl: heg-iso-690.csl
nocite: '@*'
link-citations: true
---
@ -46,7 +46,7 @@ Au terme de cet atelier, vous serez en mesure de:
&nbsp;
![Logo de la licence CC BY-SA 4.0](media/by-sa.png) \
![Logo de la licence CC BY-SA 4.0](../medias/by-sa.png) \
Ce document est sous licence [*CC BY-SA 4.0*][cc-by-sa]. \
Les sources sont sur <https://git.milhit.ch/igor/biblatex-zotero>
@ -192,22 +192,25 @@ L'extension *Better BibTeX for Zotero* résout deux problèmes des fichiers
contenu de celui-ci sera mis à jour automatiquement lorsque la collection
correspondante dans Zotero sera modifiée**. Pour cela, il faut choisir le
format d'exportation *Better BibTeX* ou *Better BibLaTeX* et sélectionner
l'option *Garder à jour.* \
![Dialogue Better BibTex](./media/better-bibtex-a-jour.png)
l'option *Garder à jour*. (Figure 1) \
1. Elle permet de **modifier une clé de citation (citekey) manuellement ou de
créer un format de citekey par défaut.**
![Fenêtre de dialogue de Better BibTex](../medias/better-bibtex-a-jour.png)
Pour installer l'extension (au format `.xpi`) *Better BibTeX* :
- Se rendre sur <https://github.com/retorquere/zotero-better-bibtex/releases/latest>.
- Télécharger le fichier `Zotero-better-bibtex-X.X.X.xpi`.
- Dans Zotero, choisir le menu *Outils / Extensions*. \
![Menu «outils» de Zotero](./media/menu-outils.png)
- Dans Zotero, choisir le menu *Outils / Extensions*. (Figure 2) \
- Cliquer sur la roue crantée en haut à droite et sélectionner *Install Add-on
from file*. \
![Installer un fichier `.xpi`](./media/install-add-on.png)
from file*. (Figure 3) \
- Sélectionner le fichier téléchargé.
![Menu «outils» de Zotero](../medias/menu-outils.png)
![Installer un fichier `.xpi`](../medias/install-add-on.png)
### Autres fonctionnalités de Better BibTeX
Better BibTeX propose des fonctionnalités plus avancées:
@ -222,8 +225,7 @@ Ces fonctionnalités ne seront pas décrites en détail dans ce document.
Les informations supplémentaires à ce sujet sont disponibles sur le site
<https://retorque.re/zotero-better-BibTeX/>.
## Configuer la compilation
## Configurer la compilation
Pour générer le fichier PDF à partir des sources `.tex` et `.bib`, il est
nécessaire de configurer le système de composition que l'on va utiliser. Il
@ -241,9 +243,10 @@ donc lui préciser lequel on utilise:
1. Menu Options.
1. Configurer Texmaker.
1. Dans l'onglet *Commandes*, chercher l'entrée *Bib(la)tex* et entrer `biber
%`. \
![Configuer Biber pour BibLaTeX](./media/texmaker-biber.png)
1. Dans l'onglet *Commandes*, chercher l'entrée *Bib(la)tex* et entrer
`biber %`. (Figure 4) \
![Configuer Biber pour BibLaTeX](../medias/texmaker-biber.png)
Lorsque l'on compile avec des références bibliographiques, il est nécessaire de
le faire quatre fois:
@ -252,6 +255,7 @@ le faire quatre fois:
1. Biber.
1. LaTeX.
1. LaTeX.
1. Afficher le PDF.
Heureusement Texmaker permet de configure une *Compilation rapide* qui lance
tout seul ces quatre itération:
@ -264,12 +268,12 @@ tout seul ces quatre itération:
Dans le cas de l'exercice présenté, une bonne solution est d'utiliser XeLaTeX.
Pour cela, il faut choisir l'option *Utilisateur* et utiliser l'assistant.
![Assistant de configuration de compil rapide](./media/compil-rapide-assistant.png)
![Assistant de configuration de compil rapide](../medias/compil-rapide-assistant.png)
Puis, dans l'assistant, sélectionner les commandes à ajouter, une à une, dans
l'ordre.
![Ajout des commandes](./media/compil-rapide-liste.png)
![Ajout des commandes](../medias/compil-rapide-liste.png)
Les outils comme Overleaf ou `tectonic`[^5] prennent eux-mêmes en charge ce
genre de complexité.
@ -332,7 +336,7 @@ la *cheatsheet*), pour les différents cas. La syntaxe est la suivante:
exemple `[voir]` permet d'obtenir `(voir Auteur, date)`.
- `[<post>]`, optionnel, ajoute du texte après l'appel à citation, comme un
numérotation de pages.
- `{<ke>}`, obligatoire, est la clé de citation indiquant de quelle référence
- `{<key>}`, obligatoire, est la clé de citation indiquant de quelle référence
il s'agit. Par exemple `{slaweckiParadigmsQualitativeResearch2018}`.
Voici les appels de citation les plus utiles:
@ -387,3 +391,4 @@ Sous Windows la commande ne prend qu'un tiret pour le paramètre:
kpsewhich -var-value TEXMFLOCAL
```
## Bibliographie

View File

@ -0,0 +1,73 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
$for(author-meta)$
<meta name="author" content="$author-meta$" />
$endfor$
$if(date-meta)$
<meta name="dcterms.date" content="$date-meta$" />
$endif$
$if(keywords)$
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
$endif$
$if(description-meta)$
<meta name="description" content="$description-meta$" />
$endif$
<title>$if(title-prefix)$$title-prefix$ $endif$$pagetitle$</title>
<style>
$styles.html()$
</style>
$for(css)$
<link rel="stylesheet" href="$css$" />
$endfor$
<link href="interface.css" rel="stylesheet" type="text/css" />
<script src="https://unpkg.com/pagedjs/dist/paged.polyfill.js"></script>
$for(header-includes)$
$header-includes$
$endfor$
$if(math)$
$math$
$endif$
</head>
<body>
$for(include-before)$
$include-before$
$endfor$
$if(title)$
<header id="title-block-header">
<h1 class="title">$title$</h1>
$if(subtitle)$
<p class="subtitle">$subtitle$</p>
$endif$
$for(author)$
<p class="author">$author$</p>
$endfor$
$if(date)$
<p class="date">$date$</p>
$endif$
$if(abstract)$
<div class="abstract">
<div class="abstract-title">$abstract-title$</div>
$abstract$
</div>
$endif$
</header>
$endif$
$if(toc)$
<nav id="$idprefix$TOC" role="doc-toc">
$if(toc-title)$
<h2 id="$idprefix$toc-title">$toc-title$</h2>
$endif$
$table-of-contents$
</nav>
$endif$
$body$
$for(include-after)$
$include-after$
$endfor$
</body>
</html>