diff --git a/.gitignore b/.gitignore index a4cca1f..b4c43ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.pdf -*.html +policopié.html +test.html # Created by https://www.toptal.com/developers/gitignore/api/latex # Edit at https://www.toptal.com/developers/gitignore?templates=latex diff --git a/.gitmodules b/.gitmodules index 12123b5..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "reveal.js"] - path = reveal.js - url = https://github.com/hakimel/reveal.js.git diff --git a/README.md b/README.md index 140836b..d15d44b 100644 --- a/README.md +++ b/README.md @@ -5,44 +5,83 @@ id: 20230321102247 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 citations et les références bibliographiques avec LaTeX. Il contient : -- La source en markdown pour le support de cours. -- Des exemples de fichiers `.tex`. -- Un export de collection Zotero au format biblatex. +- La source en markdown pour le support de cours (`sources/policopié/`). +- Des exemples de fichiers `.tex` (`exercice/exercice.tex`). +- 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 -ê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 - -## Pour démarrer +## Prérequis Pour pouvoir utiliser ce projet, il est nécessaire : 1. De cloner le projet : \ `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 : - ```bash - git submodule init - git submodule update - ``` -1. Pour générer les différents fichiers, deux outils sont nécessaire : - 1. `pandoc`. Pour installer `pandoc`, voir [la - documentation][pandoc-install]. - 1. Une distribution \LaTeX. Une possibilité est de consulter le site web - [*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]. +1. Pour générer les différents fichiers, les outils suivants sont nécessaires : + 1. Soit `pagedjs`. Pour installer `pagedjs` : \ + `npm install -g puppeteer pagedjs pagedjs-cli`. + 1. Soit `pandoc` et LaTex. Pour installer `pandoc`, voir [la + documentation][3]. Pour la distribution LaTeX, une possibilité est de + consulter le site web [*The LaTeX project*][4] 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][5]. ## 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 +``` + + + +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 +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 utiliser la commande suivante : @@ -59,39 +98,6 @@ pandoc --citeproc --to=pdf --pdf-engine=tectonic \ 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 --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 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 ``` -## Support de présentation - -⚠ Il n'y a pas encore de support de présentation. Le fichier est là à titre -d'essai pour l'instant. - -### Convertir la présentation au format PDF - -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 : -. - -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 + +[1]: ./ +[2]: https://git.milhit.ch/igor/biblatex-zotero/releases/latest +[3]: https://pandoc.org/installing.html +[4]: https://www.latex-project.org/get/ +[5]: https://tectonic-typesetting.github.io/en-US/install.html +[6]: https://pagedjs.org/ diff --git a/exercice/exercice.tex b/exercice/exercice.tex index 11d65a3..fee7763 100644 --- a/exercice/exercice.tex +++ b/exercice/exercice.tex @@ -9,6 +9,7 @@ % \setdefaultlanguage{french} % URL and link management. Mandatory for Vancouver % Management of the French language with PdfLaTeX +\usepackage[utf8]{inputenc} \usepackage[french]{babel} \usepackage{hyperref} % Améliore le rendu des guillemets selon la langue, conseillé avec polyglossia diff --git a/reveal.js b/reveal.js deleted file mode 160000 index 724c4fe..0000000 --- a/reveal.js +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 724c4fee274914dd2d997b7584cf603c44e96c72 diff --git a/sources/polycopié/polycopié.css b/sources/polycopié/polycopié.css index ce3b09c..45288fe 100644 --- a/sources/polycopié/polycopié.css +++ b/sources/polycopié/polycopié.css @@ -1,15 +1,18 @@ @media print { body { 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 { string-set: date content(text) } @page { size: A4; - margin: 25mm 0; + margin-top: 25mm; + margin-bottom: 25mm; bleed: 6mm; @bottom-center { content: counter(page) @@ -38,6 +41,8 @@ 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) { @bottom-center { content: none; @@ -47,8 +52,8 @@ color: #d80669; text-decoration: underline; } + /* Ajouter ou supprimer les ID de titre pour un saut de page */ #principes-généraux, - #utilisation-de-biblatex, #bibliographie, .footnotes { break-before: page; @@ -72,6 +77,7 @@ border-radius: .5em; margin: 1em; padding: .5em 1em; + break-inside: avoid; } code { font-family:'Courier New', Courier, monospace; @@ -95,6 +101,7 @@ border: 2px solid #d80669; border-radius: .5em; padding: .5em; + break-inside: avoid; } figure img { max-width: 85%; @@ -127,4 +134,21 @@ max-width: 50%; 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; + } } diff --git a/sources/polycopié/polycopié.md b/sources/polycopié/polycopié.md index dfbf819..db35664 100644 --- a/sources/polycopié/polycopié.md +++ b/sources/polycopié/polycopié.md @@ -13,22 +13,6 @@ nocite: '@*' 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 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 -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. - Conversion des caractères UTF-8 et des éventuels balisages HTML diff --git a/sources/polycopié/template.html b/sources/polycopié/template.html index f3bd0fc..77febbf 100644 --- a/sources/polycopié/template.html +++ b/sources/polycopié/template.html @@ -69,9 +69,7 @@ $endif$ $endif$ $if(toc)$ $endif$