Skip to content

Commit 8098dc0

Browse files
Add content callout
1 parent aadf318 commit 8098dc0

File tree

6 files changed

+308
-48
lines changed

6 files changed

+308
-48
lines changed

.latexmkrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ system("mkdir -p build/figures");
33
@default_files = ('report.tex');
44

55
$pdf_mode = 1;
6-
$pdflatex = 'lualatex -pdf --synctex=1 -file-line-error -interaction=nonstopmode --shell-escape --output-directory=build';
6+
$pdflatex = 'lualatex -pdf --synctex=1 -file-line-error --shell-escape --output-directory=build';
77
$biber = 'biber';
88
$bibtex_use = 2;
99
$out_dir = 'build';

appendix/examples.tex

+84
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,43 @@ \section{Figures}
116116

117117
\fig[H, width=12cm]{Diagramme de Bode généré à la volée}{bode.py}
118118

119+
\subsection{Sous figures}
119120

121+
Vous pouvez insérer des sous-figures, par exemple ici 4 figures côte à côte (2 colonnes et deux lignes). Les images sont remplacées par \verb!\tikz\randuck! permettant de générer un canard aléatoire à chaque compilation.
122+
123+
\begin{figure}[H]
124+
\centering
125+
\begin{subfigure}{0.45\textwidth}
126+
\centering
127+
\begin{tikzpicture}
128+
\randuck
129+
\end{tikzpicture}
130+
\caption{Canard 1}
131+
\end{subfigure}
132+
\begin{subfigure}{0.45\textwidth}
133+
\centering
134+
\begin{tikzpicture}
135+
\randuck
136+
\end{tikzpicture}
137+
\caption{Canard 2}
138+
\end{subfigure}
139+
140+
\begin{subfigure}{0.45\textwidth}
141+
\centering
142+
\begin{tikzpicture}
143+
\randuck
144+
\end{tikzpicture}
145+
\caption{Canard 3}
146+
\end{subfigure}
147+
\begin{subfigure}{0.45\textwidth}
148+
\centering
149+
\begin{tikzpicture}
150+
\randuck
151+
\end{tikzpicture}
152+
\caption{Canard 4}
153+
\end{subfigure}
154+
\caption{Quatre canards}
155+
\end{figure}
120156

121157
\subsection{Dessins techniques}
122158
La présentation de dessins mécaniques est préférée en vue filaire. SolidWorks conserve la représentation vectorielle à l'exportation, mais pas lorsqu'il y a des textures ou des rendus. À partir du PDF généré, l'image peut être isolée et sauvegardée en format SVG.
@@ -243,6 +279,54 @@ \section{Unités de mesure}
243279

244280
Pour afficher simplement une unité comme le \si{\kilo\gram} on utilise la commande \mintinline{text}{\si{\kilo\gram}}.
245281

282+
\section{Mise en forme}
283+
284+
\subsection{Multi-colonnes}
285+
286+
Si vous avez de longues listes, ou pour certains paragraphes, il peut être utile d'utiliser l'environnement \verb|\multicols| pour afficher le texte sur plusieurs colonnes. Cela permet de gagner de la place et d'améliorer la lisibilité. Par exemple, voici un extrait de l'article de la Constitution fédérale suisse de 1999.
287+
288+
\begin{multicols}{2}
289+
\begin{enumerate}
290+
\item La Confédération et les cantons veillent à ce que les enfants et les jeunes soient protégés contre la négligence et la violence, contre l'exploitation et la discrimination et qu'ils puissent se développer de manière saine.
291+
\item Ils veillent à ce que les enfants et les jeunes puissent exercer leurs droits et assumer leurs responsabilités.
292+
\item Ils encouragent les parents à assumer leur rôle d'éducateurs et leur apportent leur soutien.
293+
\item Ils tiennent compte des intérêts de l'enfant lorsqu'ils prennent des décisions qui le concernent.
294+
\item Ils veillent à ce que les enfants et les jeunes soient informés de leurs droits et de leurs devoirs.
295+
\item Ils encouragent les institutions et les organisations qui s'engagent en faveur de l'enfance et de la jeunesse.
296+
\end{enumerate}
297+
\end{multicols}
298+
299+
\subsection{Colonnes parallèles}
300+
301+
\maraja{Un pangramme est une phrase contenant toutes les lettres de l'alphabet.}Le module \verb!parcolumns! permet de créer des colonnes parallèles. Cela peut être utile pour comparer des textes en plusieurs langues ou pour afficher des traductions. Voici un exemple de \emph{pangramme} en différentes langues.\par
302+
303+
\begin{parcolumns}{4}
304+
\colchunk{Le vif zéphyr jubile sur les kumquats du clown gracieux.}
305+
\colchunk{The quick brown fox jumps over the lazy dog.}
306+
\colchunk{Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich.}
307+
\colchunk{Quel fez sghembo copre davanti.}
308+
\end{parcolumns}
309+
310+
\subsection{Boîtes colorées}
311+
312+
\maraja{Les boîtes disponibles sont: note, info, tip, success, warning, important, hint, bug, example} Il est parfois utile de mettre en évidence certaines parties, pour indiquer une astuce, un point important, un exemple, etc. Voici quelques exemples mais un conseil, n'en abusez pas.
313+
314+
\begin{callout}[callout tip]
315+
\lipsum[1][1]
316+
\end{callout}
317+
318+
\begin{callout}[callout info]
319+
\lipsum[1][2]
320+
\end{callout}
321+
322+
\begin{callout}[callout success]
323+
\lipsum[1][3]
324+
\end{callout}
325+
326+
\begin{callout}[callout warning]
327+
\lipsum[1][4]
328+
\end{callout}
329+
246330
\section{Code source}
247331

248332
Ce modèle vous offre deux environnements pour afficher du code source. Le plus traditionnel est l'environnement Listing et le second est l'environnement Minted. Le premier est plus simple à utiliser, mais le second offre une coloration syntaxique plus précise et utilise Python comme backend pour la coloration syntaxique.

appendix/faq.tex

+19-1
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,22 @@ \section{Comment obtenir de l'aide sur LaTeX ?}
1919

2020
La meilleure ressource est \url{https://www.overleaf.com/learn}. Overleaf est un éditeur en ligne de documents LaTeX qui propose une documentation très complète et des exemples pour vous aider à démarrer. Vous pouvez également consulter le site \url{https://tex.stackexchange.com/} qui est une mine d'or pour les questions et réponses sur LaTeX.
2121

22-
Certains professeurs de la HEIG-VD connaissent très bien LaTeX et peuvent vous aider. N'hésitez pas à leur demander de l'aide.
22+
Certains professeurs de la HEIG-VD connaissent très bien LaTeX et peuvent vous aider. N'hésitez pas à leur demander de l'aide.
23+
24+
\section{Que faire si j'ai une erreur de compilation ?}
25+
26+
Lorsque vous exécutez \verb!make! vous pouvez parfois avoir une erreur de compilation comme :
27+
28+
\begin{verbatim}
29+
./appendix/examples.tex:125: LaTeX Error: Environment subfigure undefined.
30+
31+
See the LaTeX manual or LaTeX Companion for explanation.
32+
Type H <return> for immediate help.
33+
...
34+
35+
l.125 \begin{subfigure}
36+
{0.45\textwidth}
37+
?
38+
\end{verbatim}
39+
40+
Dans ce cas, il vous faut chercher dans le fichier \verb!appendix/examples.tex! à la ligne 125 pour voir ce qui ne va pas. Le prompt \verb!?! vous permet de continuer la compilation ou de quitter. Pour continuer la compilation, tapez \verb!H <return>!. Pour quitter, tapez \verb!X <return>!.

appendix/structure.tex

+36-35
Original file line numberDiff line numberDiff line change
@@ -54,41 +54,42 @@ \section{Structure Classique}
5454

5555
\section{Ingénierie appliquée}
5656

57-
\item Introduction générale
58-
\begin{itemize}
59-
\item Contexte industriel
60-
\item Justification du projet
61-
\item Objectifs spécifiques
62-
\item Plan du rapport
63-
\end{itemize}
64-
\item Analyse des besoins
65-
\begin{itemize}
66-
\item Cahier des charges
67-
\item Spécifications techniques
68-
\item Analyse des contraintes
69-
\end{itemize}
70-
\item Conception et développement
71-
\begin{itemize}
72-
\item Choix des matériaux et des technologies
73-
\item Design et architecture système
74-
\item Implémentation technique
75-
\end{itemize}
76-
\item Tests et validation
77-
\begin{itemize}
78-
\item Méthodologie de test
79-
\item Résultats expérimentaux
80-
\item Évaluation des performances
81-
\end{itemize}
82-
\item Discussion et recommandations
83-
\begin{itemize}
84-
\item Analyse critique des résultats
85-
\item Propositions d'amélioration
86-
\end{itemize}
87-
\item Conclusion
88-
\begin{itemize}
89-
\item Résumé des contributions
90-
\item Limites et perspectives
91-
\end{itemize}
57+
\begin{enumerate}
58+
\item Introduction générale
59+
\begin{itemize}
60+
\item Contexte industriel
61+
\item Justification du projet
62+
\item Objectifs spécifiques
63+
\item Plan du rapport
64+
\end{itemize}
65+
\item Analyse des besoins
66+
\begin{itemize}
67+
\item Cahier des charges
68+
\item Spécifications techniques
69+
\item Analyse des contraintes
70+
\end{itemize}
71+
\item Conception et développement
72+
\begin{itemize}
73+
\item Choix des matériaux et des technologies
74+
\item Design et architecture système
75+
\item Implémentation technique
76+
\end{itemize}
77+
\item Tests et validation
78+
\begin{itemize}
79+
\item Méthodologie de test
80+
\item Résultats expérimentaux
81+
\item Évaluation des performances
82+
\end{itemize}
83+
\item Discussion et recommandations
84+
\begin{itemize}
85+
\item Analyse critique des résultats
86+
\item Propositions d'amélioration
87+
\end{itemize}
88+
\item Conclusion
89+
\begin{itemize}
90+
\item Résumé des contributions
91+
\item Limites et perspectives
92+
\end{itemize}
9293

9394
\end{enumerate}
9495

heig-tb.cls

+151-3
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,39 @@
6565
% Insertion de figures \includegraphics
6666
% LuaLaTeX support les formats PDF, PNG, JPEG et EPS
6767
\RequirePackage{graphicx}
68+
69+
% Utile pour obtenir le numéro de la dernière page du document
70+
% \fancyfoot[C]{Page \thepage{} sur \pageref{LastPage}}
71+
% (non utilisé ici)
6872
\RequirePackage{lastpage}
69-
\RequirePackage{lipsum}
73+
74+
% Alternative à minted pour afficher du code source
75+
% Plus traditionnel et plus rapide à compiler
76+
% Ne nécessite pas --shell-escape
7077
\RequirePackage{listings}
78+
79+
% Meilleure gestion des espacements entre les mots et
80+
% les lettres (microtypographie), meilleure gestion des
81+
% césures. Très utile quand la font n'est pas CM.
7182
\RequirePackage{microtype}
83+
84+
% Pour gérer l'index. Nécessite une compilation avec makeindex
85+
% Automatiquement géré par latexmkrc
7286
\RequirePackage{makeidx}
87+
88+
% Permet des encadrés personnalisés, par exemple pour du code
7389
\RequirePackage{mdframed}
90+
91+
% Autorise plus de environ 18 flottents en attente de placement,
92+
% évite l'erreur ! LaTeX Error: Too many unprocessed floats.
7493
\RequirePackage{morefloats}
94+
95+
% Permet de gérer plusieurs colonnes avec l'environnement multicols
7596
\RequirePackage{multicol}
97+
98+
% Permet de gérer plusieurs figures dans un environnement figure
99+
\RequirePackage{subcaption}
100+
76101
\RequirePackage{nomencl}
77102
\RequirePackage{parskip}
78103
\RequirePackage{rotating}
@@ -81,10 +106,12 @@
81106
\RequirePackage{tikz}
82107
\RequirePackage{makecell}
83108
\RequirePackage{bold-extra}
84-
\RequirePackage{tcolorbox}
109+
\RequirePackage[many]{tcolorbox}
85110
\RequirePackage{unicode-math}
86111
\RequirePackage{cellspace}
87112
\RequirePackage{expkv-cs}
113+
\RequirePackage{fontawesome5}
114+
88115

89116
% Coloration syntaxique du code source avec Python
90117
% Nécessite la compilation avec --shell-escape
@@ -329,4 +356,125 @@
329356
\newcommand{\thegenre}{\@genre}
330357
\newcommand{\theauthor}{\@author}
331358
\newcommand{\thesignature}{\@signature}
332-
\makeatother
359+
\makeatother
360+
361+
%% Admonitions / Callout
362+
363+
\definecolor{calloutNoteBg}{HTML}{ECF3FF}
364+
\definecolor{calloutNoteFrame}{HTML}{448AFF}
365+
366+
\definecolor{calloutAbstractBg}{HTML}{E5F7FF}
367+
\definecolor{calloutAbstractFrame}{HTML}{00B0FF}
368+
369+
\definecolor{calloutInfoBg}{HTML}{E5F8FB}
370+
\definecolor{calloutInfoFrame}{HTML}{00B8D4}
371+
372+
\definecolor{calloutTipBg}{HTML}{E5F8F6}
373+
\definecolor{calloutTipFrame}{HTML}{00BFA5}
374+
375+
\definecolor{calloutSuccessBg}{HTML}{E5F9ED}
376+
\definecolor{calloutSuccessFrame}{HTML}{00C853}
377+
378+
\definecolor{calloutQuestionBg}{HTML}{EFFCE7}
379+
\definecolor{calloutQuestionFrame}{HTML}{64DD17}
380+
381+
\definecolor{calloutWarningBg}{HTML}{FFF4E5}
382+
\definecolor{calloutWarningFrame}{HTML}{FF9E1D}
383+
384+
\definecolor{calloutFailureBg}{HTML}{FFEDED}
385+
\definecolor{calloutFailureFrame}{HTML}{FF5252}
386+
387+
\definecolor{calloutDangerBg}{HTML}{FFE7EC}
388+
\definecolor{calloutDangerFrame}{HTML}{FF1744}
389+
390+
\definecolor{calloutBugBg}{HTML}{FEE5EE}
391+
\definecolor{calloutBugFrame}{HTML}{F50057}
392+
393+
\definecolor{calloutExampleBg}{HTML}{F2EDFF}
394+
\definecolor{calloutExampleFrame}{HTML}{7C4DFF}
395+
396+
\tcbset{
397+
callout note/.style={
398+
colbacktitle=calloutNoteBg,
399+
colframe=calloutNoteFrame,
400+
coltitle=calloutNoteFrame!80!black,
401+
borderline west={0.3mm}{0mm}{calloutNoteFrame},
402+
title={\makebox[1.3em][c]{\faBookmark}~\textbf{Note}},
403+
},
404+
callout info/.style={
405+
colbacktitle=calloutInfoBg,
406+
colframe=calloutInfoFrame,
407+
coltitle=calloutInfoFrame!80!black,
408+
borderline west={0.3mm}{0mm}{calloutInfoFrame},
409+
title={\makebox[1.3em][c]{\faComment}~\textbf{Information}},
410+
},
411+
callout tip/.style={
412+
colbacktitle=calloutTipBg,
413+
colframe=calloutTipFrame,
414+
coltitle=calloutTipFrame!80!black,
415+
borderline west={0.3mm}{0mm}{calloutTipFrame},
416+
title={\makebox[1.3em][c]{\faLightbulb}~\textbf{Astuce}},
417+
},
418+
callout success/.style={
419+
colbacktitle=calloutSuccessBg,
420+
colframe=calloutSuccessFrame,
421+
coltitle=calloutSuccessFrame!80!black,
422+
borderline west={0.3mm}{0mm}{calloutSuccessFrame},
423+
title={\makebox[1.3em][c]{\faCheck}~\textbf{Succès}},
424+
},
425+
callout warning/.style={
426+
colbacktitle=calloutWarningBg,
427+
colframe=calloutWarningFrame,
428+
coltitle=calloutWarningFrame!80!black,
429+
borderline west={0.3mm}{0mm}{calloutWarningFrame},
430+
title={\makebox[1.3em][c]{\faBolt}~\textbf{Avertissement}},
431+
},
432+
callout important/.style={
433+
colbacktitle=calloutDangerBg,
434+
colframe=calloutDangerFrame,
435+
coltitle=calloutDangerFrame!80!black,
436+
borderline west={0.3mm}{0mm}{calloutDangerFrame},
437+
title={\makebox[1.3em][c]{\faExclamationTriangle}~\textbf{Danger}},
438+
},
439+
callout hint/.style={
440+
colbacktitle=calloutTipBg,
441+
colframe=calloutTipFrame,
442+
coltitle=calloutTipFrame!80!black,
443+
borderline west={0.3mm}{0mm}{calloutTipFrame},
444+
title={\makebox[1.3em][c]{\faLightbulb}~\textbf{Indice}},
445+
},
446+
callout bug/.style={
447+
colbacktitle=calloutBugBg,
448+
colframe=calloutBugFrame,
449+
coltitle=calloutBugFrame!80!black,
450+
borderline west={0.3mm}{0mm}{calloutBugFrame},
451+
title={\makebox[1.3em][c]{\faBomb}~\textbf{Bogue}},
452+
},
453+
callout example/.style={
454+
colbacktitle=calloutExampleBg,
455+
colframe=calloutExampleFrame,
456+
coltitle=calloutExampleFrame!80!black,
457+
borderline west={0.3mm}{0mm}{calloutExampleFrame},
458+
title={\makebox[1.3em][c]{\faFlask}~\textbf{Exemple}},
459+
},
460+
callout default/.style={
461+
colbacktitle=gray!40!white,
462+
463+
title={\textcolor{black}{\makebox[1.3em][l]{\faComment}}},
464+
}
465+
}
466+
467+
\newtcolorbox{callout}[1][]{%
468+
breakable,
469+
enhanced,
470+
arc=0mm,
471+
boxrule=0mm,
472+
titlerule=0mm,
473+
lefttitle=1mm,
474+
leftupper=1mm,
475+
colback=white,
476+
parbox=false, % Allow paragraph breaks inside the box
477+
frame hidden,
478+
borderline west={0.3mm}{0mm}{black!70},
479+
#1
480+
}

0 commit comments

Comments
 (0)