Browse Source

Premier versionnage des headers

master
Bruno Pagani 5 months ago
commit
127bc69ae2
9 changed files with 323 additions and 0 deletions
  1. +12
    -0
      README.md
  2. +16
    -0
      headers_exp.sty
  3. +49
    -0
      headers_figs.sty
  4. +31
    -0
      headers_fonts.sty
  5. +3
    -0
      headers_lectures.sty
  6. +93
    -0
      headers_refs.sty
  7. +38
    -0
      headers_science.sty
  8. +41
    -0
      layout_style.sty
  9. +40
    -0
      macros.sty

+ 12
- 0
README.md View File

@ -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

+ 16
- 0
headers_exp.sty View File

@ -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}

+ 49
- 0
headers_figs.sty View File

@ -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}

+ 31
- 0
headers_fonts.sty View File

@ -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}

+ 3
- 0
headers_lectures.sty View File

@ -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}

+ 93
- 0
headers_refs.sty View File

@ -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]
}
}
}

+ 38
- 0
headers_science.sty View File

@ -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}}

+ 41
- 0
layout_style.sty View File

@ -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

+ 40
- 0
macros.sty View File

@ -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}}

Loading…
Cancel
Save