| @ -0,0 +1,12 @@ | |||||
| Fichiers d’en-tête communs pour LaTeX | |||||
| Ordre d’inclusion [opt=optionnel] : | |||||
| * \usepackage{headers_science} % Mathématiques, unités | |||||
| * \usepackage{headers_lectures} % Outils pour écrire un cours [opt] | |||||
| * \usepackage{headers_refs} % Références, bibliographies, tables des figures, index [opt] | |||||
| * \usepackage{headers_fonts} % Polices et langues | |||||
| * \usepackage{headers_figs} % Inclusions de figures, TikZ | |||||
| * \usepackage{headers_exp} % Outils pour la mise en page de sujets de TP [opt] | |||||
| * \usepackage{layout_style} % Adaptation de la mise en page | |||||
| * \usepackage{macros} % Commandes persos | |||||
| @ -0,0 +1,16 @@ | |||||
| % Pour les symboles spéciaux utilisés | |||||
| \usepackage{dictsym} | |||||
| % Environnements pour les listes de matériels et les mesures | |||||
| \usepackage{enumitem} | |||||
| \newenvironment{matos}{\begin{itemize}[label=\dstechnical, noitemsep, topsep=3pt, partopsep=0pt]}{\end{itemize}} | |||||
| \newenvironment{solutions}{\begin{itemize}[label=\dschemical, noitemsep, topsep=3pt, partopsep=0pt]}{\end{itemize}} | |||||
| \newenvironment{mesures}{\begin{itemize}[label=\dsmathematical, noitemsep, topsep=3pt, partopsep=0pt]}{\end{itemize}} | |||||
| \usepackage{tcolorbox} | |||||
| \tcbuselibrary{breakable} | |||||
| \newtcolorbox{experience}[3]{parbox=false,breakable,title=\dsrailways : \textbf{#1} \hfill \fontspec{FreeSerif.otf}{\symbol{"231B}} : \SI{#2}{\min}\\\dsliterary : {#3}} | |||||
| % Coloration syntaxique des codes python | |||||
| \usepackage{minted} | |||||
| \usemintedstyle{friendly} | |||||
| @ -0,0 +1,49 @@ | |||||
| % Schémas en tous genres, objets graphiques… | |||||
| \usepackage{tikz} | |||||
| \usepackage{standalone} % Figure TikZ externes | |||||
| \usepackage{tikzscale} % Redimensionnement des figures TikZ via \includegraphics | |||||
| %TODO: TikZ externalization | |||||
| \usetikzlibrary{calc,decorations.markings,decorations.pathmorphing,shapes} | |||||
| \usepackage[ | |||||
| RPvoltages, % Tensions positives | |||||
| straightvoltages, % Représentées par des flèches droites | |||||
| europeanresistors, % Conducteur ohmique rectangulaires | |||||
| cuteinductors, % Bobines à la française | |||||
| siunitx % Utilisation des unités dans les labels | |||||
| ]{circuitikz} | |||||
| \tikzset{EVS/.style={european voltage source,bipole/is voltage=false,voltage/distance from node=0.3}} | |||||
| \tikzset{pile/.style={battery1,bipole/is voltage=false,voltage/distance from node=0.2}} | |||||
| % Cf. https://github.com/circuitikz/circuitikz/issues/410 + v^> | |||||
| % Couleurs de Matplotlib | |||||
| \definecolor{C0}{HTML}{1F77B4} | |||||
| \definecolor{C1}{HTML}{FF7F0E} | |||||
| \definecolor{C2}{HTML}{2CA02C} | |||||
| \definecolor{C3}{HTML}{D62728} | |||||
| \definecolor{C4}{HTML}{9467BD} | |||||
| \definecolor{C5}{HTML}{8C564B} | |||||
| \definecolor{C6}{HTML}{E377C2} | |||||
| \definecolor{C7}{HTML}{7F7F7F} | |||||
| \definecolor{C8}{HTML}{BCBD22} | |||||
| \definecolor{C9}{HTML}{17BECF} | |||||
| % Inclusion de figures | |||||
| \usepackage{graphicx} | |||||
| % Figures centrées | |||||
| \makeatletter | |||||
| \g@addto@macro\@floatboxreset\centering | |||||
| \makeatother | |||||
| % Pour tracer un contour noir autour d’une figure avec \fbox si nécessaire | |||||
| \setlength\fboxrule{0.5pt} | |||||
| \setlength\fboxsep{-0.5pt} % Pour éviter un “Overfull \hbox” de 1pt | |||||
| % Gestion des légendes des figures, doit être après babel | |||||
| \usepackage[ | |||||
| format=plain, | |||||
| labelfont={sc,small}, | |||||
| textfont={small} | |||||
| ]{caption} | |||||
| \usepackage{subcaption} % Sous-figures & légendes associées | |||||
| \captionsetup[subfigure]{margin=5pt} | |||||
| @ -0,0 +1,31 @@ | |||||
| % Définition des polices du document | |||||
| \usepackage{fontspec} | |||||
| \defaultfontfeatures[EBGaramond]{Ligatures=TeX,Numbers={Lining,Proportional}} | |||||
| \setmainfont[ | |||||
| Extension = .otf, | |||||
| UprightFont = *-Regular, | |||||
| ItalicFont = *-Italic, | |||||
| BoldFont = *-Bold, | |||||
| BoldItalicFont = *-BoldItalic | |||||
| ]{EBGaramond} | |||||
| % Police pour les mathématiques | |||||
| \usepackage[math-style=french]{unicode-math} | |||||
| \setmathfont[StylisticSet={2}]{Garamond-Math.otf} | |||||
| %StylisticSet | |||||
| %2 → Curved \partial | |||||
| %7 → \int variant | |||||
| %8 → Garamond-compatible \mathcal (experimental) | |||||
| % Micro-typography | |||||
| \usepackage[factor=500,tracking,babel=true]{microtype} | |||||
| \SetTracking{encoding={*}, shape=sc}{0} % Fix bug with microtype tracking in TeX Live 2019+ | |||||
| % Lettrine | |||||
| \usepackage{lettrine} | |||||
| \setcounter{DefaultLines}{4} | |||||
| \renewcommand{\LettrineFontHook}{\color[gray]{0.5}} | |||||
| % Utilisation de babel pour les paramètres de langues | |||||
| \usepackage[english,main=french]{babel} | |||||
| \frenchbsetup{ItemLabels=\textendash} | |||||
| @ -0,0 +1,3 @@ | |||||
| % Example pseudo-env | |||||
| \newcommand{\example}[1]{\subparagraph{\color{gray}Exemple :\hspace{-1.25ex}} \textcolor{gray}{#1}\ifhmode\newline\fi} | |||||
| \newcommand{\application}[1]{\subparagraph{\color{gray}Application :\hspace{-1.25ex}} \textcolor{gray}{#1}\ifhmode\newline\fi} | |||||
| @ -0,0 +1,93 @@ | |||||
| % Ajouts dans la table des matières | |||||
| \KOMAoption{toc}{bibliography} | |||||
| %\KOMAoption{toc}{bibliography,index} | |||||
| % Références croisées | |||||
| \usepackage{cleveref} | |||||
| % Bibliographie | |||||
| \usepackage[ | |||||
| natbib=true, % Pour pouvoir garder/utiliser les commandes natbib | |||||
| backref=true, % Indique les pages citant les articles dans la bibliographie | |||||
| style=authoryear-comp, % Style Auteur(s)-Année avec compression | |||||
| labelnumber, % Pour pouvoir faire aussi des citation numériques | |||||
| defernumbers, % Pour séparer les deux numérotations | |||||
| sorting=nyvt, % Tri par nom, année, volume, titre pour la biblio | |||||
| sortcites=false, % Mais pas de tri lors des citations | |||||
| uniquelist=minyear, % Éviter les citations trop verbeuses | |||||
| uniquename=init, % Ne considérer que l’initiale du prénom pour décider l’unicité d’un auteur | |||||
| maxcitenames=2, % Pas plus de deux noms pour les citations | |||||
| maxbibnames=4, % Jusqu’à 4 noms affichés dans la biblio | |||||
| minbibnames=4, % Et pas moins si ça dépasse | |||||
| dashed=false, % Répétition des noms dans la bibliographie | |||||
| doi=false, % Ne pas afficher le DOI, en lien sur le titre | |||||
| url=false, % Ne pas afficher l’URL, en lien sur le titre | |||||
| isbn=false, % Ne pas afficher l’ISBN | |||||
| autolang=hyphen % Hyphénation en fonction de la langue | |||||
| ]{biblatex} | |||||
| % Guillemets en fonction de la langue dans la bibliographie | |||||
| \usepackage{csquotes} | |||||
| \makeatletter | |||||
| \def\blx@hook@initlang{\csq@reset=0\csq@setstyle{\abx@field@langid}} | |||||
| \makeatletter | |||||
| % Nom, Prénom pour tous | |||||
| \DeclareNameAlias{sortname}{family-given} | |||||
| % Pas de “In :” pour les articles | |||||
| \renewbibmacro{in:}{\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}} | |||||
| % Citations numériques pour les articles choisis | |||||
| \newbibmacro*{cite:num}{\printtext[bibhyperref]{\printfield{labelnumber}}} | |||||
| \DeclareCiteCommand{\citenum} | |||||
| {\bibopenbracket} | |||||
| {\usebibmacro{prenote}\usebibmacro{citeindex}\usebibmacro{cite:num}\usebibmacro{postnote}} | |||||
| {\multicitedelim} | |||||
| {\bibclosebracket} | |||||
| % Ajouts des numéros dans la bibliographie par conséquent | |||||
| \DeclareFieldFormat[book,inbook,proceedings,thesis]{labelnumber}{\RN{#1}} % Numérotation romaine séparée | |||||
| \DeclareFieldFormat{labelnumberwidth}{#1.} | |||||
| \defbibenvironment{bibliography}{% | |||||
| \list{% | |||||
| \printtext[labelnumberwidth]{% | |||||
| \printfield{labelprefix}% | |||||
| \printfield{labelnumber}% | |||||
| }% | |||||
| }{% | |||||
| \setlength{\labelwidth}{\labelnumberwidth}% | |||||
| \setlength{\leftmargin}{\labelwidth}% | |||||
| \setlength{\labelsep}{\biblabelsep}% | |||||
| \addtolength{\leftmargin}{\labelsep}% | |||||
| \setlength{\itemsep}{\bibitemsep}% | |||||
| \setlength{\parsep}{\bibparsep}}% | |||||
| \renewcommand*{\makelabel}[1]{\hss##1}% | |||||
| }% | |||||
| {\endlist}% | |||||
| {\item}% | |||||
| % DOI/URL comme lien sur le titre au lieu de l’affichage | |||||
| \newbibmacro{string+doiurl}[1]{% | |||||
| \iffieldundef{doi}{% | |||||
| \iffieldundef{url}{% | |||||
| #1% | |||||
| }{% | |||||
| \href{\thefield{url}}{#1}% | |||||
| }% | |||||
| }{% | |||||
| \href{https://dx.doi.org/\thefield{doi}}{#1}% | |||||
| }% | |||||
| } | |||||
| \DeclareFieldFormat{title}{\usebibmacro{string+doiurl}{\mkbibemph{#1}}} | |||||
| \DeclareFieldFormat[article,inproceedings,inbook]{title}{\usebibmacro{string+doiurl}{\mkbibquote{#1}}} | |||||
| \DeclareFieldFormat{url}{} % Désactiver l’affichage de l’URL aussi pour les @online | |||||
| % Déclarer les articles comme en anglais par défaut | |||||
| \DeclareSourcemap{ | |||||
| \maps[datatype=bibtex]{ | |||||
| \map{ | |||||
| \step[fieldset=langid,fieldvalue=english] | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,38 @@ | |||||
| %% Paquets utile pour les maths/la science | |||||
| \usepackage{mathtools} % La base | |||||
| % Corrections de l’espacement autour des \left et \right | |||||
| \usepackage{mleftright} | |||||
| \mleftright | |||||
| % Pour de belles frations et dérivées | |||||
| \usepackage{xfrac} | |||||
| \usepackage{esdiff} | |||||
| % Mise en formes des unités | |||||
| \protected\def\numpi{\text{\ensuremath{\pi}}} | |||||
| \usepackage{siunitx} | |||||
| \sisetup{ | |||||
| number-unit-product = \,, | |||||
| inter-unit-product = \ensuremath{\!\cdot\!}, | |||||
| list-units = single, | |||||
| multi-part-units = single, | |||||
| range-units = single, | |||||
| input-signs = {+ − ±}, | |||||
| input-symbols = {π …}, | |||||
| input-comparators = {< = > ≈ ≥ ≫ ≤ ≪ ∼ ≲ ≳ ≃} | |||||
| } | |||||
| \newcommand{\numtrange}[2]{\numrange[range-phrase = --]{#1}{#2}} | |||||
| \newcommand{\SItrange}[3]{\SIrange[range-phrase = --]{#1}{#2}{#3}} | |||||
| % Éléments atomiques, réactions, molécules | |||||
| \usepackage[version=4,arrows=pgf{latex}{0.09ex}]{mhchem} | |||||
| \usepackage{chemfig} | |||||
| % Gestion avancée des tableaux | |||||
| \usepackage{multirow} | |||||
| \usepackage{makecell} | |||||
| \usepackage{booktabs} | |||||
| \usepackage{longtable} % Tableaux sur plusieurs pages (utilisé pour les acronymes, constantes et symboles) | |||||
| \newcolumntype{d}{@{}c@{}} | |||||
| \newcolumntype{C}[1]{>{\centering}m{#1}} | |||||
| @ -0,0 +1,41 @@ | |||||
| % Style avancée pour l’en-tête et les pieds-de-page | |||||
| %\usepackage{scrlayer-scrpage} | |||||
| %\ofoot*{∼\thepage∼} % Partie externe du pied de page | |||||
| \recalctypearea % Recompute typearea after selecting the font | |||||
| \usepackage{geometry} % Use geometry for some advance layout | |||||
| % Since top is half of bottom, we had half of top to topmargin to get vmarginratio={1:1} without changing the textheight or headersep | |||||
| \addtolength{\topmargin}{.5\topmargin} % Start with topmargin, else the .5in is already added | |||||
| \addtolength{\topmargin}{.5in} | |||||
| \addtolength{\topmargin}{.5\headsep} | |||||
| \addtolength{\topmargin}{.5\headheight} | |||||
| % Reduce a bit the footskip | |||||
| \setlength{\footskip}{2\headsep} | |||||
| % Règles typographiques de l’imprimerie nationale | |||||
| \usepackage[parindent,lastparline,nosingleletter]{impnattypo} | |||||
| % Lignes orphelines | |||||
| \usepackage[all]{nowidow} | |||||
| % Custom minitoc | |||||
| \usepackage{etoc} | |||||
| \newcommand{\minitoc}{% | |||||
| \etocsettocstyle{\subsection*{Sommaire\vspace{-1em}\\\rule{\textwidth}{0.5pt}}}{}% | |||||
| \etocsetstyle{section}{}{}{\etocsavedsectiontocline{\bfseries\numberline{\etocnumber}\etocname}{\bfseries\etocpage}}{}% | |||||
| \etocsetstyle{subsection}{}{}{\etocsavedsubsectiontocline{\numberline{\etocnumber}\etocname}{\etocpage}}{}% | |||||
| {\small\localtableofcontents}% | |||||
| \noindent\rule{\textwidth}{0.5pt}% | |||||
| \vspace{1em} | |||||
| } | |||||
| % Nombres tabulés pour les numéros de pages dans les tables des matières | |||||
| \DeclareTOCStyleEntry[pagenumberformat={\bfseries\addfontfeatures{Numbers=Monospaced}}]{default}{part} | |||||
| \DeclareTOCStyleEntry[pagenumberformat={\bfseries\addfontfeatures{Numbers=Monospaced}}]{default}{chapter} | |||||
| \DeclareTOCStyleEntry[pagenumberformat={\addfontfeatures{Numbers=Monospaced}}]{default}{section} | |||||
| \DeclareTOCStyleEntry[pagenumberformat={\addfontfeatures{Numbers=Monospaced}}]{default}{subsection} | |||||
| \makeatletter | |||||
| \renewcommand{\@pnumwidth}{1.6em} % Compensation de l’espace supplémentaire occupé | |||||
| \makeatother | |||||
| @ -0,0 +1,40 @@ | |||||
| % Quelques commandes personnalisées | |||||
| % Tables globales | |||||
| \newenvironment{chaptable}[2]{ | |||||
| \addchap*{#1} | |||||
| \begin{longtable}{#2} | |||||
| }{% | |||||
| \end{longtable} | |||||
| \addtocounter{table}{-1}% Ne pas compter comme une table | |||||
| } | |||||
| % En-têtes de tableau | |||||
| \setlength{\heavyrulewidth}{0.1em} | |||||
| % Typographie | |||||
| \newcommand{\chapterend}{\vspace{1em}\begin{center}\large ☙❧\end{center}} % Cul-de-lampe | |||||
| \newcommand{\siecle}[1]{\textsc{\romannumeral #1}\ieme{}~siècle} | |||||
| \newcommand{\eg}{\textit{e.g.}} | |||||
| \newcommand{\cf}{\textit{cf.} } | |||||
| % Outils mathématiques | |||||
| \AtBeginDocument{% Requis par unicode-math | |||||
| \renewcommand{\vec}{\symbf} | |||||
| \renewcommand{\nabla}{\vec{∇}} | |||||
| \renewcommand{\div}[1]{\nabla · #1} | |||||
| } | |||||
| % Opérateurs usuels | |||||
| \DeclareMathOperator{\di}{d\!} | |||||
| \newcommand{\mean}[1]{\left<#1\right>} | |||||
| \newcommand{\grad}[1]{\nabla\left(#1\right)} | |||||
| \newcommand{\rot}[1]{\nabla × #1} | |||||
| % Expressions parenthésées | |||||
| \newcommand{\pa}[1]{\left(#1\right)} | |||||
| \newcommand{\logp}[1]{\log\pa{#1}} | |||||
| \newcommand{\fracp}[2]{\pa{\frac{#1}{#2}}} | |||||
| % Grandeurs physiques classiques | |||||
| \newcommand{\Ec}{ℰ_\text{c}} | |||||
| \newcommand{\Ep}{ℰ_\text{p}} | |||||
| \newcommand{\Em}{ℰ_\text{m}} | |||||