Skip to content

Commit 350a206

Browse files
Several fixes, use LuaLaTeX
1 parent 46a6e2d commit 350a206

12 files changed

+254
-215
lines changed

.devcontainer/devcontainer.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"customizations": {
1111
"vscode": {
1212
"settings": {
13+
"files.trimTrailingWhitespace": true,
1314
"files.eol": "\n",
1415
"latex-workshop.chktex.enabled": true,
1516
"latex-workshop.latex.clean.subfolder.enabled": true,
@@ -20,14 +21,13 @@
2021
}
2122
},
2223
"extensions": [
23-
"james-yu.latex-workshop",
2424
"eamodio.gitlens",
25-
"shardulm94.trailing-spaces",
25+
"hediet.vscode-drawio",
26+
"james-yu.latex-workshop",
2627
"stkb.rewrap",
2728
"vscode-icons-team.vscode-icons",
28-
"hediet.vscode-drawio",
2929
"yzhang.markdown-all-in-one"
3030
]
3131
}
3232
}
33-
}
33+
}

.latexmkrc

+21-21
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
1-
system ("mkdir -p build/figures");
1+
system("mkdir -p build/figures");
22

33
@default_files = ('report.tex');
4-
@cus_dep_list = (@cus_dep_list, "glo gls 0 makenomenclature");
5-
sub makenomenclature {
6-
system("makeindex $_[0].glo -s nomencl.ist -o $_[0].gls"); }
7-
@generated_exts = (@generated_exts, 'glo');
8-
9-
# Custom dependency and function for nomencl package
10-
add_cus_dep( 'nlo', 'nls', 0, 'makenlo2nls' );
11-
sub makenlo2nls {
12-
system( "makeindex -s nomencl.ist -o \"$_[0].nls\" \"$_[0].nlo\"" );
13-
}
144

5+
$pdf_mode = 1;
6+
$pdflatex = 'lualatex --synctex=1 -interaction=nonstopmode --shell-escape --output-directory=build';
7+
$biber = 'biber';
8+
$bibtex_use = 2;
159
$out_dir = 'build';
16-
$pdflatex = 'xelatex --synctex=1 -interaction=nonstopmode --shell-escape';
17-
$latex = 'latex --synctex=1 -interaction=nonstopmode --shell-escape';
10+
$clean_ext .= ' bbl bcf blg aux log glo gls glg nlo nls acr acn alg pythontex-files-%R/* pythontex-files-%R';
11+
12+
add_cus_dep('acn', 'acr', 0, 'makeacronyms');
13+
sub makeacronyms {
14+
system("makeglossaries $_[0]");
15+
}
1816

19-
$clean_ext .= " pythontex-files-%R/* pythontex-files-%R";
20-
push @generated_exts, 'pytxcode';
17+
add_cus_dep('nlo', 'nls', 0, 'makenlo2nls');
18+
sub makenlo2nls {
19+
system("makeindex -s nomencl.ist -o \"$_[0].nls\" \"$_[0].nlo\"");
20+
}
2121

2222
$pythontex = 'pythontex %O %S';
23-
$extra_rule_spec{'pythontex'} = [ 'internal', '', 'mypythontex', "%Y%R.pytxcode", "%Ypythontex-files-%R/%R.pytxmcr", "%R", 1 ];
23+
$extra_rule_spec{'pythontex'} = [ 'internal', '', 'mypythontex', "%Y%R.pytxcode", "%Ypythontex-files-%R/%R.pytxmcr", "%R", 1 ];
2424

2525
sub mypythontex {
26-
my $result_dir = $aux_dir1."pythontex-files-$$Pbase";
26+
my $result_dir = $out_dir.'/aux/'."pythontex-files-$$Pbase";
2727
my $ret = Run_subst( $pythontex, 2 );
2828
rdb_add_generated( glob "$result_dir/*" );
2929
open( my $fh, "<", $$Pdest );
3030
if ($fh) {
3131
while (<$fh>) {
3232
if ( /^%PythonTeX dependency:\s+'([^']+)';/ ) {
33-
print "Found pythontex dependency '$1'\n";
34-
rdb_ensure_file( $rule, $aux_dir1.$1 );
35-
}
33+
print "Found pythontex dependency '$1'\n";
34+
rdb_ensure_file( $rule, $out_dir.'/aux/'.$1 );
35+
}
3636
}
3737
undef $fh;
3838
}
@@ -41,4 +41,4 @@ sub mypythontex {
4141
" to check dependencies\n";
4242
}
4343
return $ret;
44-
}
44+
}

.vscode/settings.json

+2
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@
33
"latex-workshop.latex.outDir": "./build",
44
"files.eol": "\n",
55
"latex-workshop.view.pdf.viewer": "browser",
6+
"latex-workshop.formatting.latex": "latexindent",
7+
"latex-workshop.latex.clean.command": "make clean",
68
}

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ FIGS_PY=$(patsubst %.py, $(BUILDDIR)/%.py.pdf, $(PYFS))
1717
FIGS=$(FIGS_SVG) $(FIGS_DIO) $(FIGS_PDF) $(FIGS_PY)
1818

1919
all: $(OUT).tex $(FIGS) | $(BUILDDIR)
20-
$(LATEXMK) -pdf
20+
$(LATEXMK) -pdf $<
2121

2222
figures: $(FIGS)
2323

README.md

+48-21
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Modèle HEIG-VD pour Rapport de Bachelor <!-- omit in toc -->
22

3-
Ce référentiel contient un modèle de document LaTeX pour la production d'un rapport de Bachelor [HEIG-VD](http://heig-vd.ch). Il peut être adapté au besoin.
3+
Ce référentiel contient le modèle de document LaTeX pour la production d'un rapport de bachelor [HEIG-VD](http://heig-vd.ch). Il peut être adapté au besoin.
44

55
- [Contexte](#contexte)
66
- [Comment démarrer / Quick Start](#comment-démarrer--quick-start)
77
- [Utilisation](#utilisation)
88
- [VsCode + Docker + LaTeX Suite](#vscode--docker--latex-suite)
99
- [Fork et Clone du référentiel](#fork-et-clone-du-référentiel)
10-
- [Demarrer vscode](#demarrer-vscode)
10+
- [Démarrer vscode](#démarrer-vscode)
1111
- [Compiler](#compiler)
1212
- [Nettoyer la base de code](#nettoyer-la-base-de-code)
1313
- [Git ?](#git-)
@@ -21,14 +21,21 @@ Ce référentiel contient un modèle de document LaTeX pour la production d'un r
2121
- [Outils utiles](#outils-utiles)
2222
- [Conventions typographiques](#conventions-typographiques)
2323
- [Locutions](#locutions)
24+
- [Release](#release)
2425
- [Technologies utilisées](#technologies-utilisées)
2526
- [Standards](#standards)
27+
- [Autres modèles LaTeX](#autres-modèles-latex)
2628
- [Références](#références)
29+
- [FAQ (Foire Aux Questions)](#faq-foire-aux-questions)
30+
- [Ma compilation est trop lente](#ma-compilation-est-trop-lente)
31+
- [J'aimerais rajouter mon nom en haut de toutes les pages](#jaimerais-rajouter-mon-nom-en-haut-de-toutes-les-pages)
2732
- [Aide et Support](#aide-et-support)
2833

2934
## Contexte
3035

31-
Cet environnement de repose pas sur [Overleaf](https://www.overleaf.com/) parce que la plateforme en ligne ne permet pas la gestion des dépendances et des artefacts et qu'elle est devenue payante avec le temps. Avec une solution en ligne les figures générées à partir de scripts (Python), les illustrations faites avec [draw.io](https://app.diagrams.net/) et la conversion de figures (`svg` en `pdf`), ne peut pas être automatisée.
36+
Cet environnement de repose pas sur [Overleaf](https://www.overleaf.com/) parce que la plateforme en ligne ne permet pas la gestion des dépendances et des artefacts et qu'elle est devenue payante avec le temps.
37+
38+
Avec une solution en ligne comme Overleaf, les figures générées à partir de scripts (Python), les illustrations faites avec [Draw.io](https://app.diagrams.net/) et la conversion automatique de figures (`svg` en `pdf`), ne peuvent pas être automatisées. En revanche, en profitant d'un environnement de développement local, avec l'appui de Docker, ces tâches peuvent être automatisées et la compilation rendue plus rapide.
3239

3340
Ce modèle de document se veut simple d'accès pour les étudiantes et les étudiants de la HEIG-VD. Il peut être adapté et est libre d'utilisation.
3441

@@ -43,8 +50,6 @@ Une fois ces logiciels installés et démarrés, vous devez configurer une exten
4350

4451
- [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
4552

46-
Il est suggéré d'utiliser WSL2 avec la distribution Ubuntu par soucis de facilité d'utilisation.
47-
4853
## Utilisation
4954

5055
L'environnement d'édition conseillé est l'éditeur [Microsoft Visual Studio Code](https://code.visualstudio.com/) couplé à [Docker](https://www.docker.com/) et au [Dev Containers](https://code.visualstudio.com/docs/remote/containers). Ceci vous évite d'installer une distribution LaTeX. Alternativement, il est possible de travailler dans [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10).
@@ -53,9 +58,9 @@ La distribution LaTeX conseillée est [TeX Live](https://www.tug.org/texlive/).
5358

5459
## VsCode + Docker + LaTeX Suite
5560

56-
Certainement l'une des plus élégante manière de développer avec LaTeX est d'utiliser Visual Studio Code avec un container POSIX contenant une distribution TeXLive.
61+
Certainement l'une des plus élégantes manières de développer avec LaTeX est d'utiliser Visual Studio Code avec un conteneur POSIX contenant une distribution TeXLive.
5762

58-
L'éditeur couplé à LaTeX Workshop de James Yu permet une éditition fluide. Le menu `commands` offre l'accès à tous les outils de base. La structure (en bas à gauche) et accessible par Ctrl+Alt+X permet de naviguer facilement dans le code. Le panneau des symboles (à droite) permet l'insertion facile de caractères mathématiques.
63+
L'éditeur couplé à LaTeX Workshop de James Yu permet une édition fluide. Le menu `commands` offre l'accès à tous les outils de base. La structure (en bas à gauche) et accessible par Ctrl+Alt+X permet de naviguer facilement dans le code. Le panneau des symboles (à droite) permet l'insertion facile de caractères mathématiques.
5964

6065
![vscode](/assets/figures/editor.png)
6166

@@ -81,19 +86,19 @@ L'éditeur de PDF [Sumatra](https://www.sumatrapdfreader.org/) est conseillé po
8186

8287
Pour bien démarrer, commencez par faire un *fork* du référentiel en cliquant sur le bouton **Fork** depuis l'interface GitHub. Ceci vous crée une copie du modèle dans votre propre organisation GitHub. Clonez ensuite le référentiel avec `git clone`.
8388

84-
### Demarrer vscode
89+
### Démarrer vscode
8590

8691
Si vous n'avez pas installé VS code et Docker, vous devez les installer au préalable.
8792

8893
Démarrez vscode et installez l'extension *Visual Studio Code Remote - Containers*.
8994

9095
Ouvrez le dossier (`CTRL+K+O`), l'environnement de développement sera automatiquement démarré.
9196

92-
**NOTE:** La construction initiale du container prend beaucoup de temps car la distribution LaTeX doit être téléchargée. Vous pouvez aller boire un café.
97+
**NOTE:** La construction initiale du conteneur prend beaucoup de temps, car la distribution LaTeX doit être téléchargée. Vous pouvez aller boire un café.
9398

9499
### Compiler
95100

96-
Pour compiler le rapport exécutez simplement la commande `make`. Normalement, votre rapport est automatiquement compilé à chaque sauvegarde de vos modifications.
101+
Pour compiler le rapport, exécutez simplement la commande `make`. Normalement, votre rapport est automatiquement compilé à chaque sauvegarde de vos modifications.
97102

98103
### Nettoyer la base de code
99104

@@ -123,7 +128,7 @@ Les figures au format `.drawio` sont converties en `.drawio.pdf` en utilisant la
123128

124129
Les figures au format `.py` sont générées à l'aide de Python.
125130

126-
Pour chacun de ces formats un exemple est donné. L'utilisateur final est libre de modifier la logique de production de ces fichiers et d'en ajouter selon ses besoins.
131+
Pour chacun de ces formats, un exemple est donné. L'utilisateur final est libre de modifier la logique de production de ces fichiers et d'en ajouter selon ses besoins.
127132

128133
Les conventions de nommage des fichiers intermédiaires sont les suivantes :
129134

@@ -152,7 +157,7 @@ L'ordre conseillé pour le sommaire d'un rapport de Bachelor est le suivant:
152157
5. Table des matières
153158
6. Liste des figures
154159
7. Liste des tables
155-
8. Liste des abbreviations *optionnel*
160+
8. Liste des abréviations *optionnel*
156161
9. Liste des symboles *optionnel*
157162
10. Liste des codes sources *optionnel*
158163
11. Introduction
@@ -178,8 +183,8 @@ Les conventions consensuelles d'usage sont les suivantes :
178183

179184
### Numérotation des pages
180185

181-
- La première et dernière page de couverture ne sont pas numérotées
182-
- Les pages vide ne sont pas numérotées
186+
- La première et dernière page de couverture n’est pas numérotée
187+
- Les pages vides ne sont pas numérotées
183188
- Les pages précédant le premier chapitre du document sont numérotées en chiffres romains.
184189
- Les pages à partir du premier chapitre du document sont numérotées en chiffres indo-arabes.
185190

@@ -201,11 +206,11 @@ Les conventions consensuelles d'usage sont les suivantes :
201206
- Les paragraphes sont soit indentés, soit espacés, mais pas les deux.
202207
- Le premier paragraphe d'une section n'est jamais indenté.
203208
- En français, les énumérations utilisent le [tiret demi-cadratin](https://fr.wikipedia.org/wiki/Tiret) (`U+2013`).
204-
- Une énumération non ordonnée est considérée comme une phrase continue, chaque entrée sera ponctuée d'une virgule ou d'un point virgule.
205-
- Une énumération ordonnée peut être constituée de phrase complètes.
206-
- Les unités de mesure sont espacée de la grandeur associée par une [espace insécable](https://fr.wikipedia.org/wiki/Espace_ins%C3%A9cable) et ne sont pas en italique ni placées entres crochets.
207-
- Les majuscules sont accentuées comme le recommande l'académie Française.
208-
- Et cetera s'écrit `etc.` et est toujours précédé d'une virgule dans une énumération. La locution peut être remplacée par des points de suspension `...`. En aucun cas, ces deux formes sont combinées (`etc...`). Les points de suspension sont toujours collés dernier caractère d'une liste énumérée. (`a, b, c...`).
209+
- Une énumération non ordonnée est considérée comme une phrase continue, chaque entrée sera ponctuée d'une virgule ou d'un point-virgule.
210+
- Une énumération ordonnée peut être constituée de phrases complètes.
211+
- Les unités de mesure sont espacées de la grandeur associée par une [espace insécable](https://fr.wikipedia.org/wiki/Espace_ins%C3%A9cable) et ne sont pas en italique ni placées entres crochets.
212+
- Les majuscules sont accentuées comme le recommande l'Académie française.
213+
- Et cetera s'écrit `etc.` et est toujours précédé d'une virgule dans une énumération. La locution peut être remplacée par des points de suspension `...`. En aucun cas, ces deux formes ne sont combinées (`etc...`). Les points de suspension sont toujours collés, dernier caractère d'une liste énumérée. (`a, b, c...`).
209214
- Les mots étrangers ou les anglicismes sont placés en italique.
210215

211216
### Locutions
@@ -230,7 +235,7 @@ Pour que github action puisse générer la release il faut donner les droits à
230235

231236
## Technologies utilisées
232237

233-
- [XeLaTeX](https://en.wikipedia.org/wiki/XeTeX) permet le support natif de l'Unicode dans la production de fichiers PDF.
238+
- [LuaLateX](https://www.luatex.org/) permet le support natif de l'Unicode dans la production de fichiers PDF.
234239
- [Inkscape](https://inkscape.org/) pour la conversion d'images SVG en PDF.
235240
- [Draw.io](https://app.diagrams.net/) pour la conversion de diagrammes au format draw.io (XML) en PDF.
236241
- [Python](https://www.python.org/) pour la génération de figures à partir d'une source de données brute, et la coloration syntaxique de code.
@@ -246,12 +251,34 @@ Pour que github action puisse générer la release il faut donner les droits à
246251
- [Diagrammes BPMN 2.0](https://www.bpmn.org/) (*Business Process Model And Notation*)
247252
- [Diagrammes UML 2.5.1](https://www.omg.org/spec/UML/About-UML/) (*Unified Modelling Language*)
248253

254+
## Autres modèles LaTeX
255+
256+
- [EPFL unofficial PhD Thesis](https://github.com/glederrey/EPFL_thesis_template)
257+
- [KaoBook de Jimmy Roussel](https://github.com/JimRou/template_kaobook)
258+
- [Zurich University of Applied Sciences](https://github.com/matteodelucchi/ZHAW_thesis-template)
259+
- [Université de la Sorbonne](https://github.com/itoumlilt/sorbonne-univ-cleanthesis)
260+
249261
## Références
250262

251263
- [Petites leçons de typographie](https://jacques-andre.fr/faqtypo/lessons.pdf) de Jaques André
252264
- [Lexique des règles typographiques en usage à l’Imprimerie
253265
nationale](https://www.payot.ch/Detail/lexique_des_regles_typographiques_en_usage_a_limprimerie_nationale-collectif-9782743304829) de l'Imprimerie Nationale française. ISBN 2-7433-0482-0
254266

267+
## FAQ (Foire Aux Questions)
268+
269+
### Ma compilation est trop lente
270+
271+
Il est vivement recommandé d'utiliser un environnement Linux (WSL2 depuis Windows ou un Linux/Unix natif pour profiter de la rapidité du système de fichier. Votre compilation sera beaucoup plus rapide. N'oubliez pas si vous êtes dans WSL2 de ne pas travailler depuis votre point de montage Windows (`/mnt/c/Users/...`) mais depuis le système de fichier Linux (`/home/user/...`).
272+
273+
### J'aimerais rajouter mon nom en haut de toutes les pages
274+
275+
Il n'est généralement pas recommandé de mettre son nom sur toutes les pages d'un livre ou d'un rapport de thèse bien que de nombreux modèles le fassent et que certains enseignants le demandent. Néanmoins il existe des conventions académiques et éditoriales qui réfutent cette pratique.
276+
277+
- Le nom de l'auteur apparaît habituellement sur la page de couverture et éventuellement dans les en-têtes des chapitres, mais pas sur chaque page.
278+
- Ce serait considéré comme inutile et redondant, car le lecteur sait déjà qui a écrit le livre.
279+
280+
Les bonnes pratiques de mise en page recommandent de ne pas surcharger les pages de texte inutile. Les en-têtes et les pieds de page sont généralement réservés aux informations utiles pour la navigation dans le document, telles que le titre du chapitre en cours, le numéro de page, etc.
281+
255282
## Aide et Support
256283

257-
Pour toute question sur l'utilisation de ce modèle de document, veuillez créer une nouvelle [issue](https://github.com/heig-vd-tin/template-tb/issues), ou vous adresser à l'auteur du modèle Prof. Yves Chevallier.
284+
Pour toute question sur l'utilisation de ce modèle de document, veuillez créer une nouvelle [issue](https://github.com/heig-vd-tin/template-tb/issues), ou vous adresser à l'auteur du modèle Prof. Yves Chevallier.

abstract.tex

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
% Francais
22
\lipsum[1]
33

4+
%% L'asterisme est un signe typographique en forme d'étoile, utilisé pour marquer une pause dans un texte ou pour séparer des paragraphes. Il est souvent utilisé pour indiquer un changement de scène dans un récit. Bien qu'il se fasse rare dans la typographie moderne, c'est un symbole de choix pour séparer les différentes langues du résumé de thèse.
45
\asterism
56

67
% English

bibliography.bib

+24-22
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,40 @@ @book{typo
22
author = {},
33
title = {Lexique des règles typographiques en usage à l'Imprimerie nationale},
44
publisher = {L'Imprimerie nationale},
5+
author = {Imprimerie nationale},
56
year = {2002},
67
address = {Paris},
78
isbn = {2-7433-0482-0}
89
}
910

1011
@online{knuthwebsite,
11-
author = "Donald Knuth",
12-
title = "Knuth: Computers and Typesetting",
13-
url = "http://www-cs-faculty.stanford.edu/~uno/abcde.html",
14-
addendum = "(accessed: 01.09.2016)",
15-
keywords = "latex,knuth"
12+
author = {Donald Knuth},
13+
title = {Knuth: Computers and Typesetting},
14+
year = {2012},
15+
url = {http://www-cs-faculty.stanford.edu/~uno/abcde.html},
16+
addendum = {(accessed: 01.09.2016)},
17+
keywords = {latex,knuth}
1618
}
1719

1820
@article{einstein,
19-
author = "Albert Einstein",
20-
title = "{Zur Elektrodynamik bewegter K{\"o}rper}. ({German})
21-
[{On} the electrodynamics of moving bodies]",
22-
journal = "Annalen der Physik",
23-
volume = "322",
24-
number = "10",
25-
pages = "891--921",
26-
year = "1905",
27-
DOI = "http://dx.doi.org/10.1002/andp.19053221004",
28-
keywords = "physics"
21+
author = {Albert Einstein},
22+
title = {{Zur Elektrodynamik bewegter K{\"o}rper}. ({German})
23+
[{On} the electrodynamics of moving bodies]},
24+
journal = {Annalen der Physik},
25+
volume = {322},
26+
number = {10},
27+
pages = {891--921},
28+
year = {1905},
29+
doi = {http://dx.doi.org/10.1002/andp.19053221004},
30+
keywords = {physics}
2931
}
3032

3133
@book{dirac,
32-
title = {The Principles of Quantum Mechanics},
33-
author = {Paul Adrien Maurice Dirac},
34-
isbn = {9780198520115},
35-
series = {International series of monographs on physics},
36-
year = {1981},
37-
publisher = {Clarendon Press},
38-
keywords = {physics}
34+
title = {The Principles of Quantum Mechanics},
35+
author = {Paul Adrien Maurice Dirac},
36+
isbn = {9780198520115},
37+
series = {International series of monographs on physics},
38+
year = {1981},
39+
publisher = {Clarendon Press},
40+
keywords = {physics}
3941
}

colophon.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
L'auteur fictive de ce document \emph{Maria Bernasconi} est un nom emprunté, par amusement, aux spécimens publiés par Postfinance.
1010

11-
Ce document a été compilé avec XeLaTeX.
11+
Ce document a été compilé avec LuaLaTeX.
1212

1313
La famille de police de caractères utilisée est \emph{Computed Modern} créée par Donald Knuth avec son logiciel METAFONT.
1414
\vfil

0 commit comments

Comments
 (0)