policopié: améliore le policopié après le cours
- Ignore certains fichiers temporaires (html) et les générations en PDF. - Documnente les règles CSS les moins évidentes ou celles pour lesquels des points d'attention sont nécessaires. - Ajoute des règles pour éviter que les exemples de codes ou les figures ne soient séparées sur deux pages. - Supprime la tables des matières manuelle dans la source au format markdown et ajoute des règles CSS pour mettre en forme la table des matières générée par pandoc, avec une numérotation des chapitres. - Adapte la documentation pour l'utilisation de ce projet, afin qu'elle soit plus en accord avec ce qui est réellement possible. Co-Authored-by: iGor milhit <igor@milhit.ch>
parent
5df1cb0edf
commit
f66b54aee1
|
@ -1,5 +1,6 @@
|
||||||
*.pdf
|
*.pdf
|
||||||
*.html
|
policopié.html
|
||||||
|
test.html
|
||||||
|
|
||||||
# Created by https://www.toptal.com/developers/gitignore/api/latex
|
# Created by https://www.toptal.com/developers/gitignore/api/latex
|
||||||
# Edit at https://www.toptal.com/developers/gitignore?templates=latex
|
# Edit at https://www.toptal.com/developers/gitignore?templates=latex
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
[submodule "reveal.js"]
|
|
||||||
path = reveal.js
|
|
||||||
url = https://github.com/hakimel/reveal.js.git
|
|
170
README.md
170
README.md
|
@ -5,44 +5,83 @@ id: 20230321102247
|
||||||
tags: [README, documentation, latex, rdv-info]
|
tags: [README, documentation, latex, rdv-info]
|
||||||
---
|
---
|
||||||
|
|
||||||
## [Citation et bibliographie avec LaTeX][projet]
|
## [Citation et bibliographie avec LaTeX][1]
|
||||||
|
|
||||||
Ce répertoire contient les sources pour le *Rendez-vous de l'info* sur les
|
Ce répertoire contient les sources pour le *Rendez-vous de l'info* sur les
|
||||||
citations et les références bibliographiques avec LaTeX. Il contient :
|
citations et les références bibliographiques avec LaTeX. Il contient :
|
||||||
|
|
||||||
- La source en markdown pour le support de cours.
|
- La source en markdown pour le support de cours (`sources/policopié/`).
|
||||||
- Des exemples de fichiers `.tex`.
|
- Des exemples de fichiers `.tex` (`exercice/exercice.tex`).
|
||||||
- Un export de collection Zotero au format biblatex.
|
- Un export de collection Zotero au format biblatex
|
||||||
|
(`exercice/references-exercices.bib`).
|
||||||
|
|
||||||
Le support de cours au format PDF ainsi que les fichiers d'exercice peuvent
|
Le support de cours au format PDF ainsi que les fichiers d'exercice peuvent
|
||||||
être téléchargés dans [les publications de version][latest].
|
être téléchargés dans [les publications de version][2].
|
||||||
|
|
||||||
[latest]: https://git.milhit.ch/igor/biblatex-zotero/releases/latest
|
## Prérequis
|
||||||
|
|
||||||
## Pour démarrer
|
|
||||||
|
|
||||||
Pour pouvoir utiliser ce projet, il est nécessaire :
|
Pour pouvoir utiliser ce projet, il est nécessaire :
|
||||||
|
|
||||||
1. De cloner le projet : \
|
1. De cloner le projet : \
|
||||||
`git clone https://git.milhit.ch/igor/biblatex-zotero.git`
|
`git clone https://git.milhit.ch/igor/biblatex-zotero.git`
|
||||||
1. D'activer le module pour `reveal.js` pour la présentation au format HTML :
|
1. Pour générer les différents fichiers, les outils suivants sont nécessaires :
|
||||||
```bash
|
1. Soit `pagedjs`. Pour installer `pagedjs` : \
|
||||||
git submodule init
|
`npm install -g puppeteer pagedjs pagedjs-cli`.
|
||||||
git submodule update
|
1. Soit `pandoc` et LaTex. Pour installer `pandoc`, voir [la
|
||||||
```
|
documentation][3]. Pour la distribution LaTeX, une possibilité est de
|
||||||
1. Pour générer les différents fichiers, deux outils sont nécessaire :
|
consulter le site web [*The LaTeX project*][4] qui décline les méthodes
|
||||||
1. `pandoc`. Pour installer `pandoc`, voir [la
|
les plus habituelles pour les principaux systèmes d'exploitation. **Pour
|
||||||
documentation][pandoc-install].
|
ma part, je recommande l'usage de `tectonic` qui est un binaire à
|
||||||
1. Une distribution \LaTeX. Une possibilité est de consulter le site web
|
installer** : voir comment [installer tectonic][5].
|
||||||
[*The \LaTeX project*][latex-project] qui décline les méthodes les plus
|
|
||||||
habituelles pour les principaux systèmes d'exploitation. **Pour ma part,
|
|
||||||
je recommande l'usage de `tectonic` qui est un binaire à installer** :
|
|
||||||
voir comment [installer tectonic][tectonic-install].
|
|
||||||
|
|
||||||
## Convertir le support de cours en PDF
|
## Convertir le support de cours en PDF
|
||||||
|
|
||||||
|
### 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][6]). Dans le dossier
|
||||||
|
`sources/polycopié/` se trouvent un `template.html` utilisé par `pandoc` pour
|
||||||
|
produire un fichier HTML avec les classes et les identifiants désirés. Le
|
||||||
|
fichier `polycopié.css` contient pour sa part la mise en forme permettant
|
||||||
|
d'obtenir un fichier suivant en bonne partie la charte de l'UNIGE.
|
||||||
|
|
||||||
|
Pour pouvoir utiliser `pagedjs`, il faut avoir installé sur sa machine les
|
||||||
|
paquets `npm` suivants :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install -g puppeteer pagedjs pagedjs-cli
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Puis, on peut produire directement un PDF (**ne fonctionne pas bien**) :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pandoc --standalone --embed-resource --citeproc \
|
||||||
|
--to pdf --pdf-engine=pagedjs-cli \
|
||||||
|
--css=source/polycopié/polycopié.css \
|
||||||
|
--output=public/polycopié.pdf source/polycopié/polycopié.md
|
||||||
|
```
|
||||||
|
-->
|
||||||
|
|
||||||
|
Pour obtenir un fichier HTML, qui peut être ensuite imprimé au format PDF :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd sources/polycopié/
|
||||||
|
pandoc --citeproc --to=html \
|
||||||
|
--template=template.html --css=polycopié.css \
|
||||||
|
--output=polycopié.html polycopié.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Puis, lancer un server web local depuis la racine du projet, par exemple avec
|
||||||
|
`python -m http.server` et charger le fichier `polycopié.html` dans un
|
||||||
|
navigateur web, de préférence Chromium (ou Google Chrome), car la gestion des
|
||||||
|
liens est mieux supportée.
|
||||||
|
|
||||||
### Avec LaTeX
|
### Avec LaTeX
|
||||||
|
|
||||||
|
L'usage de LaTeX suppose une distribution LaTeX. Le résultat obtenu n'est pas
|
||||||
|
adapté à la charte de l'UNIGE.
|
||||||
|
|
||||||
Pour convertir le support de cours (`polycopié.md`) au format PDF, il faut
|
Pour convertir le support de cours (`polycopié.md`) au format PDF, il faut
|
||||||
utiliser la commande suivante :
|
utiliser la commande suivante :
|
||||||
|
|
||||||
|
@ -59,39 +98,6 @@ pandoc --citeproc --to=pdf --pdf-engine=tectonic \
|
||||||
installé.
|
installé.
|
||||||
- `--output=` spécifie le chemin et le nom du fichier généré.
|
- `--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 --standalone --embed-resource --citeproc \
|
|
||||||
--to pdf --pdf-engine=pagedjs-cli \
|
|
||||||
--css=source/polycopié/polycopié.css \
|
|
||||||
--output=public/polycopié.pdf source/polycopié/polycopié.md
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour obtenir un fichier HTML, qui peut être ensuite imprimé au format PDF :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd sources/polycopié/
|
|
||||||
pandoc --citeproc --to=html \
|
|
||||||
--template=template.html --css=polycopié.css \
|
|
||||||
--output=polycopié.html polycopié.md
|
|
||||||
```
|
|
||||||
|
|
||||||
Puis, lancer un server web local, par exemple avec `python -m http.server` et
|
|
||||||
charger le fichier `polycopié.html` dans un navigateur web.
|
|
||||||
|
|
||||||
[pagedjs]: https://pagedjs.org/
|
|
||||||
|
|
||||||
## Déroulé de la présentation
|
## Déroulé de la présentation
|
||||||
|
|
||||||
Le fichier `déroulé.md` décrit le déroulé de la présentation. Si une impression
|
Le fichier `déroulé.md` décrit le déroulé de la présentation. Si une impression
|
||||||
|
@ -110,52 +116,10 @@ Pour le PDF :
|
||||||
pandoc -t pdf --pdf-engine=tectonic -o déroulé.pdf déroulé.md
|
pandoc -t pdf --pdf-engine=tectonic -o déroulé.pdf déroulé.md
|
||||||
```
|
```
|
||||||
|
|
||||||
## Support de présentation
|
<!-- références -->
|
||||||
|
[1]: ./
|
||||||
⚠ Il n'y a pas encore de support de présentation. Le fichier est là à titre
|
[2]: https://git.milhit.ch/igor/biblatex-zotero/releases/latest
|
||||||
d'essai pour l'instant.
|
[3]: https://pandoc.org/installing.html
|
||||||
|
[4]: https://www.latex-project.org/get/
|
||||||
### Convertir la présentation au format PDF
|
[5]: https://tectonic-typesetting.github.io/en-US/install.html
|
||||||
|
[6]: https://pagedjs.org/
|
||||||
Pour obtenir la présentation au format PDF, il faut utiliser la commande
|
|
||||||
suivante :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pandoc -t beamer -V theme=AnnArbor \
|
|
||||||
-V colortheme=sidebartab presentation.md -o presentation.pdf
|
|
||||||
```
|
|
||||||
|
|
||||||
- `-t beamer` définit le format de présentation beamer.
|
|
||||||
- `-V theme=Hannover` permet de passer en variable (`-V`) le theme beamer
|
|
||||||
désiré.
|
|
||||||
- `-V colortheme=sidebartab` définit le thème de couleur.
|
|
||||||
|
|
||||||
Une galerie des thèmes et des thèmes de couleurs est disponible en ligne :
|
|
||||||
<https://deic.uab.cat/~iblanes/beamer_gallery/>.
|
|
||||||
|
|
||||||
Il peut être nécessaire de définir l'installation de \LaTeX, par exemple
|
|
||||||
pour `tectonic` :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pandoc -t beamer -V theme=AnnArbor -V colortheme=sidebartab \
|
|
||||||
--pdf-engine=tectonic presentation.md -o presentation.pdf
|
|
||||||
```
|
|
||||||
|
|
||||||
### Pour convertir la présentation au format HTML (`reveal.js`)
|
|
||||||
|
|
||||||
Il faut s'assurer que `pandoc` soit installé et que le submodule `reveal.js`
|
|
||||||
soit bien activé. Puis, il suffit de taper la commande suivante :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pandoc -t revealjs --self-contained -o presentation.html presentation.md
|
|
||||||
```
|
|
||||||
|
|
||||||
- `-t revealjs` définit le format de présentation `reveal.js`.
|
|
||||||
- `--self-contained` assure que tous les fichiers nécessaires à la présentation
|
|
||||||
seront bien contenu dans un seul fichier HTML.
|
|
||||||
|
|
||||||
|
|
||||||
[projet]: ./
|
|
||||||
[pandoc-install]: https://pandoc.org/installing.html
|
|
||||||
[latex-project]: https://www.latex-project.org/get/
|
|
||||||
[tectonic-install]: https://tectonic-typesetting.github.io/en-US/install.html
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
% \setdefaultlanguage{french}
|
% \setdefaultlanguage{french}
|
||||||
% URL and link management. Mandatory for Vancouver
|
% URL and link management. Mandatory for Vancouver
|
||||||
% Management of the French language with PdfLaTeX
|
% Management of the French language with PdfLaTeX
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
\usepackage[french]{babel}
|
\usepackage[french]{babel}
|
||||||
\usepackage{hyperref}
|
\usepackage{hyperref}
|
||||||
% Améliore le rendu des guillemets selon la langue, conseillé avec polyglossia
|
% Améliore le rendu des guillemets selon la langue, conseillé avec polyglossia
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 724c4fee274914dd2d997b7584cf603c44e96c72
|
|
|
@ -1,15 +1,18 @@
|
||||||
@media print {
|
@media print {
|
||||||
body {
|
body {
|
||||||
font-family: TheSans, "Open Sans", Arial, Helvetica, sans-serif;
|
font-family: TheSans, "Open Sans", Arial, Helvetica, sans-serif;
|
||||||
counter-reset: figureNumber;
|
/* Définit les deux variable de compteur nécessaires */
|
||||||
|
counter-reset: figureNumber toc;
|
||||||
}
|
}
|
||||||
/* Définit que string(date) contient la date */
|
/* Définit que string(date) contient la date indiquée dans le frontmatter
|
||||||
|
* de la source markdown */
|
||||||
.date {
|
.date {
|
||||||
string-set: date content(text)
|
string-set: date content(text)
|
||||||
}
|
}
|
||||||
@page {
|
@page {
|
||||||
size: A4;
|
size: A4;
|
||||||
margin: 25mm 0;
|
margin-top: 25mm;
|
||||||
|
margin-bottom: 25mm;
|
||||||
bleed: 6mm;
|
bleed: 6mm;
|
||||||
@bottom-center {
|
@bottom-center {
|
||||||
content: counter(page)
|
content: counter(page)
|
||||||
|
@ -38,6 +41,8 @@
|
||||||
content: string(date);
|
content: string(date);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* Attention, il faut adapter au nombre effectif de pages ! *
|
||||||
|
* Cette règle n'affiche pas de numré de page à la dernière page */
|
||||||
@page:nth(11) {
|
@page:nth(11) {
|
||||||
@bottom-center {
|
@bottom-center {
|
||||||
content: none;
|
content: none;
|
||||||
|
@ -47,8 +52,8 @@
|
||||||
color: #d80669;
|
color: #d80669;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
/* Ajouter ou supprimer les ID de titre pour un saut de page */
|
||||||
#principes-généraux,
|
#principes-généraux,
|
||||||
#utilisation-de-biblatex,
|
|
||||||
#bibliographie,
|
#bibliographie,
|
||||||
.footnotes {
|
.footnotes {
|
||||||
break-before: page;
|
break-before: page;
|
||||||
|
@ -72,6 +77,7 @@
|
||||||
border-radius: .5em;
|
border-radius: .5em;
|
||||||
margin: 1em;
|
margin: 1em;
|
||||||
padding: .5em 1em;
|
padding: .5em 1em;
|
||||||
|
break-inside: avoid;
|
||||||
}
|
}
|
||||||
code {
|
code {
|
||||||
font-family:'Courier New', Courier, monospace;
|
font-family:'Courier New', Courier, monospace;
|
||||||
|
@ -95,6 +101,7 @@
|
||||||
border: 2px solid #d80669;
|
border: 2px solid #d80669;
|
||||||
border-radius: .5em;
|
border-radius: .5em;
|
||||||
padding: .5em;
|
padding: .5em;
|
||||||
|
break-inside: avoid;
|
||||||
}
|
}
|
||||||
figure img {
|
figure img {
|
||||||
max-width: 85%;
|
max-width: 85%;
|
||||||
|
@ -127,4 +134,21 @@
|
||||||
max-width: 50%;
|
max-width: 50%;
|
||||||
padding: .5em;
|
padding: .5em;
|
||||||
}
|
}
|
||||||
|
/* Les 3 règles suivantes mettent en forme la table des matières :*
|
||||||
|
* Suppression des liste à puce et numérotation des chapitres. */
|
||||||
|
#TOC ul {
|
||||||
|
list-style-type: none;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
#TOC li {
|
||||||
|
counter-increment: toc;
|
||||||
|
}
|
||||||
|
#TOC li::before {
|
||||||
|
content: counter(toc) ". ";
|
||||||
|
}
|
||||||
|
#TOC a::after {
|
||||||
|
content: target-counter(attr(href url), page);
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,22 +13,6 @@ nocite: '@*'
|
||||||
link-citations: true
|
link-citations: true
|
||||||
---
|
---
|
||||||
|
|
||||||
## Table des matières
|
|
||||||
|
|
||||||
1. [Objectifs][toc0].
|
|
||||||
1. [Principes généraux][toc1].
|
|
||||||
1. [Structure d'une référence dans un fichier `.bib`][toc2].
|
|
||||||
1. [Créer un fichier .bib via Zotero][toc3].
|
|
||||||
1. [Utilisation de BibLaTeX][toc6].
|
|
||||||
1. [Bibliographie][toc7].
|
|
||||||
|
|
||||||
[toc0]: #objectifs
|
|
||||||
[toc1]: #principes-généraux
|
|
||||||
[toc2]: #structure-dune-référence-dans-un-fichier-.bib
|
|
||||||
[toc3]: #créer-un-fichier-.bib-via-zotero
|
|
||||||
[toc6]: #utilisation-de-biblatex
|
|
||||||
[toc7]: #refs
|
|
||||||
|
|
||||||
## Objectifs
|
## Objectifs
|
||||||
|
|
||||||
Au terme de cet atelier, vous serez en mesure de :
|
Au terme de cet atelier, vous serez en mesure de :
|
||||||
|
@ -211,7 +195,7 @@ Pour installer l'extension (au format `.xpi`) *Better BibTeX* :
|
||||||
|
|
||||||
### Autres fonctionnalités de Better BibTeX
|
### Autres fonctionnalités de Better BibTeX
|
||||||
|
|
||||||
Better BibTeX propose des fonctionnalités plus avancées :
|
*Better BibTeX* propose des fonctionnalités plus avancées :
|
||||||
|
|
||||||
- Création et gestion de clés uniques.
|
- Création et gestion de clés uniques.
|
||||||
- Conversion des caractères UTF-8 et des éventuels balisages HTML
|
- Conversion des caractères UTF-8 et des éventuels balisages HTML
|
||||||
|
|
|
@ -69,9 +69,7 @@ $endif$
|
||||||
$endif$
|
$endif$
|
||||||
$if(toc)$
|
$if(toc)$
|
||||||
<nav id="$idprefix$TOC" role="doc-toc">
|
<nav id="$idprefix$TOC" role="doc-toc">
|
||||||
$if(toc-title)$
|
<h2 id="$idprefix$toc-title">Table des matières</h2>
|
||||||
<h2 id="$idprefix$toc-title">$toc-title$</h2>
|
|
||||||
$endif$
|
|
||||||
$table-of-contents$
|
$table-of-contents$
|
||||||
</nav>
|
</nav>
|
||||||
$endif$
|
$endif$
|
||||||
|
|
Loading…
Reference in New Issue