SPB Git

spb/uqo_cours_public Public

UQO — matériel de cours en évaluation immobilière (version publique, sans examens ni corrigés).

TeX 89.1% Python 10.9%
18.8 KB · 462 lines latex
Raw Blame History
1% =============================================================================2% Style UQO pour présentations Beamer — IMM10033% Université du Québec en Outaouais4% Auteur : Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca5% © 2026 Simon-Pierre Boucher6% Design moderne « flat » : Fira Sans, accents dorés, barre de progression,7% page titre avec photo du pavillon Lucien-Brault (images/)8% =============================================================================9\ProvidesPackage{uqo-style}1011% --- Packages requis ---12\RequirePackage[utf8]{inputenc}13\RequirePackage[T1]{fontenc}14\RequirePackage[french]{babel}15\RequirePackage{lmodern}16\RequirePackage[sfdefault,scaled=0.92]{FiraSans}17\RequirePackage{amsmath,amssymb}18\RequirePackage{graphicx}19\RequirePackage{booktabs}20\RequirePackage{array}21\RequirePackage{multirow}22\RequirePackage{colortbl}23\RequirePackage{tikz}24\RequirePackage{pgfplots}25\RequirePackage{hyperref}26\RequirePackage{fontawesome5}27\RequirePackage{tcolorbox}28% enumitem retiré car incompatible avec Beamer29\RequirePackage[backend=biber, style=authoryear, sorting=nyt, maxbibnames=6]{biblatex}30\addbibresource{references.bib}31\renewcommand*{\bibfont}{\footnotesize}32\setlength\bibitemsep{0.55\baselineskip}33\RequirePackage{listings}34\RequirePackage{eurosym}35\RequirePackage{textcomp}36\RequirePackage{pifont}37\RequirePackage{calc}38\RequirePackage{appendixnumberbeamer}3940\pgfplotsset{compat=1.18}41\usetikzlibrary{shapes,arrows,arrows.meta,positioning,calc,decorations.pathreplacing,shadows,fit}4243% --- Couleurs UQO ---44\definecolor{uqoBleu}{RGB}{0, 62, 126}         % Bleu principal UQO45\definecolor{uqoBleuClair}{RGB}{41, 118, 187}  % Bleu clair46\definecolor{uqoOr}{RGB}{204, 164, 36}         % Or/doré UQO47\definecolor{uqoGris}{RGB}{96, 102, 112}       % Gris foncé48\definecolor{uqoGrisClair}{RGB}{208, 213, 220} % Gris clair49\definecolor{uqoBlanc}{RGB}{255, 255, 255}     % Blanc50\definecolor{uqoVert}{RGB}{16, 124, 78}        % Vert accent51\definecolor{uqoRouge}{RGB}{178, 42, 32}       % Rouge accent52\definecolor{uqoBgClair}{RGB}{242, 246, 250}   % Fond clair53\definecolor{uqoNavy}{RGB}{9, 26, 51}          % Bleu nuit (pages titre/section)54\definecolor{uqoInk}{RGB}{38, 43, 52}          % Texte courant5556% =============================================================================57% THÈME — base neutre, tout est redéfini à la main (design flat)58% =============================================================================59\usetheme{default}60\usefonttheme{professionalfonts}6162\setbeamercolor{background canvas}{bg=uqoBlanc}63\setbeamercolor{normal text}{fg=uqoInk}64\setbeamercolor{structure}{fg=uqoBleu}65\setbeamercolor{alerted text}{fg=uqoRouge}66\setbeamercolor{example text}{fg=uqoVert}6768\setbeamercolor{title}{fg=uqoBlanc}69\setbeamercolor{subtitle}{fg=uqoOr}70\setbeamercolor{frametitle}{fg=uqoBleu, bg=uqoBlanc}71\setbeamercolor{framesubtitle}{fg=uqoGris}72\setbeamercolor{author}{fg=uqoGris}73\setbeamercolor{institute}{fg=uqoGris}74\setbeamercolor{date}{fg=uqoGris}7576\setbeamercolor{block title}{bg=uqoBleu, fg=uqoBlanc}77\setbeamercolor{block body}{bg=uqoBgClair, fg=uqoInk}78\setbeamercolor{block title alerted}{bg=uqoRouge, fg=uqoBlanc}79\setbeamercolor{block body alerted}{bg=uqoBgClair, fg=uqoInk}80\setbeamercolor{block title example}{bg=uqoVert, fg=uqoBlanc}81\setbeamercolor{block body example}{bg=uqoBgClair, fg=uqoInk}8283\setbeamercolor{item}{fg=uqoBleu}84\setbeamercolor{subitem}{fg=uqoOr}85\setbeamercolor{subsubitem}{fg=uqoGris}8687\setbeamercolor{section in toc}{fg=uqoBleu}88\setbeamercolor{subsection in toc}{fg=uqoGris}8990\setbeamercolor{bibliography entry author}{fg=uqoInk}91\setbeamercolor{bibliography entry title}{fg=uqoBleu}92\setbeamercolor{bibliography entry location}{fg=uqoGris}93\setbeamercolor{bibliography entry note}{fg=uqoGris}9495% --- Polices ---96\setbeamerfont{title}{size=\huge, series=\bfseries}97\setbeamerfont{subtitle}{size=\footnotesize, series=\bfseries}98\setbeamerfont{frametitle}{size=\large, series=\bfseries}99\setbeamerfont{framesubtitle}{size=\small}100\setbeamerfont{block title}{size=\small, series=\bfseries}101\setbeamerfont{footnote}{size=\tiny}102\setbeamerfont{footline}{size=\tiny}103104% --- Navigation ---105\setbeamertemplate{navigation symbols}{}106107% --- Espacement généreux : marges larges, texte aéré ---108\setlength{\parskip}{3pt}109\setbeamersize{text margin left=9mm, text margin right=9mm}110\beamerdefaultoverlayspecification{}111\linespread{1.06}112113% =============================================================================114% TITRE DE CADRE — titre bleu, tiret doré + filet fin115% =============================================================================116\setbeamertemplate{frametitle}{%117  \nointerlineskip118  \vskip2.6mm119  \begin{beamercolorbox}[wd=\textwidth]{frametitle}120    \usebeamerfont{frametitle}\insertframetitle%121    \ifx\insertframesubtitle\@empty\else122      \\[0.3ex]{\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle}%123    \fi124  \end{beamercolorbox}125  \vskip1.2mm126  \leavevmode\hbox{%127    {\color{uqoOr}\rule[0.6pt]{9mm}{1.6pt}}%128    \hspace{1.5pt}%129    {\color{uqoGrisClair}\rule[1.1pt]{\dimexpr\textwidth-9mm-1.5pt\relax}{0.5pt}}%130  }%131  \vskip2mm132}133\setbeamertemplate{frametitle continuation}[from second][{\normalsize\color{uqoGris}~(suite)}]134135% =============================================================================136% PIED DE PAGE — barre de progression dorée + infos discrètes137% =============================================================================138\setbeamertemplate{footline}{%139  \leavevmode%140  \hbox to \paperwidth{\hspace*{6mm}%141    {\usebeamerfont{footline}\color{uqoGris}%142      \insertshorttitle\ \textbullet\ \insertshortauthor\ \textbullet\ UQO}%143    \hfill144    {\usebeamerfont{footline}\color{uqoGris}%145      \insertframenumber\,/\,\inserttotalframenumber}%146    \hspace*{6mm}}%147  \vskip0.8mm148  \begin{tikzpicture}149    \fill[uqoBgClair] (0,0) rectangle (\paperwidth,0.55mm);150    \pgfmathsetlengthmacro{\uqoprogress}{%151      \paperwidth*min(1,\insertframenumber/max(1,\inserttotalframenumber))}152    \fill[uqoOr] (0,0) rectangle (\uqoprogress,0.55mm);153  \end{tikzpicture}%154  \vskip0pt%155}156157% =============================================================================158% PUCES ET NUMÉROTATION159% =============================================================================160\setbeamertemplate{itemize item}{\raisebox{0.28ex}{\scriptsize\color{uqoBleu}$\blacktriangleright$}}161\setbeamertemplate{itemize subitem}{\raisebox{0.32ex}{\tiny\color{uqoOr}$\blacktriangleright$}}162\setbeamertemplate{itemize subsubitem}{\raisebox{0.25ex}{\scriptsize\color{uqoGris}--}}163164\setbeamertemplate{enumerate item}{%165  \tikz[baseline=-0.68ex]\node[fill=uqoBleu, text=uqoBlanc, circle,166    inner sep=0.4pt, minimum size=2.1ex, font=\scriptsize\bfseries]{\insertenumlabel};}167\setbeamertemplate{enumerate subitem}{%168  \tikz[baseline=-0.68ex]\node[draw=uqoBleuClair, text=uqoBleuClair, circle,169    line width=0.5pt, inner sep=0.4pt, minimum size=1.9ex, font=\tiny\bfseries]{\insertsubenumlabel};}170171\addtobeamertemplate{itemize/enumerate body begin}{\setlength{\itemsep}{5pt}\setlength{\parsep}{0pt}\setlength{\topsep}{4pt}\setlength{\partopsep}{0pt}}{}172\addtobeamertemplate{itemize/enumerate body end}{}{}173174% =============================================================================175% TABLE DES MATIÈRES — pastilles numérotées176% =============================================================================177\setbeamertemplate{section in toc}{%178  \vskip4pt179  \leavevmode180  \tikz[baseline=-0.68ex]\node[fill=uqoBleu, text=uqoBlanc, circle,181    inner sep=0.4pt, minimum size=2.3ex, font=\scriptsize\bfseries]{\inserttocsectionnumber};%182  \hspace{0.6em}{\color{uqoBleu}\bfseries\inserttocsection}\par183}184\setbeamertemplate{subsection in toc}{%185  \vskip2pt186  \leavevmode\hspace{2.4em}%187  {\color{uqoOr}\scriptsize$\blacktriangleright$}\hspace{0.5em}%188  {\color{uqoGris}\small\inserttocsubsection}\par189}190191% =============================================================================192% BIBLIOGRAPHIE193% =============================================================================194\setbeamertemplate{bibliography item}{\color{uqoOr}\small\faIcon{book}}195196% =============================================================================197% PAGE DE SECTION — pleine page bleu nuit, grand numéro, filet doré198% =============================================================================199\newcommand{\uqoSectionNum}{\ifnum\insertsectionnumber<10 0\fi\insertsectionnumber}200201\AtBeginSection[]{%202  \begin{frame}[plain,noframenumbering]203    \begin{tikzpicture}[remember picture,overlay]204      \fill[uqoNavy] (current page.south west) rectangle (current page.north east);205      % décorations géométriques206      \draw[uqoBleuClair, opacity=0.20, line width=0.9pt]207        ([xshift=-18mm,yshift=-6mm]current page.north east) circle (24mm);208      \draw[uqoBleuClair, opacity=0.12, line width=0.9pt]209        ([xshift=-6mm,yshift=-18mm]current page.north east) circle (33mm);210      \draw[uqoOr, opacity=0.55, line width=0.8pt]211        ([xshift=-34mm,yshift=-24mm]current page.north east) circle (9mm);212      \fill[uqoOr] ([xshift=-48mm,yshift=-12mm]current page.north east) circle (1mm);213      % grand numéro en filigrane214      \node[anchor=south east, text=uqoBlanc, opacity=0.08,215        font=\fontsize{88}{88}\selectfont\bfseries]216        at ([xshift=-6mm,yshift=-3mm]current page.south east) {\uqoSectionNum};217      % étiquette218      \node[anchor=west, text=uqoOr, font=\footnotesize\bfseries]219        at ([xshift=14mm,yshift=10mm]current page.west) {SECTION~\insertsectionnumber};220      \fill[uqoOr] ([xshift=14mm,yshift=7mm]current page.west) rectangle ++(11mm,0.55mm);221      % titre de section222      \node[anchor=north west, text=uqoBlanc, font=\LARGE\bfseries,223        text width=125mm, align=left]224        at ([xshift=14mm,yshift=4.5mm]current page.west) {\insertsectionhead};225      % rappel du cours en bas226      \node[anchor=south west, text=uqoGrisClair, font=\tiny]227        at ([xshift=14mm,yshift=6mm]current page.south west)228        {\insertshorttitle\ \textbullet\ \insertshortauthor\ \textbullet\ UQO};229    \end{tikzpicture}230  \end{frame}231}232233% =============================================================================234% PAGE TITRE — panneau bleu nuit + zone blanche (auteur, logo)235%              + bandeau photo : pavillon Lucien-Brault (UQO)236% =============================================================================237\defbeamertemplate*{title page}{uqo}[1][]238{%239  \begin{tikzpicture}[remember picture,overlay]240    % panneau bleu nuit241    \fill[uqoNavy] (current page.north west) rectangle242      ([yshift=-50mm]current page.north east);243    \fill[uqoOr] ([yshift=-50mm]current page.north west) rectangle244      ([yshift=-48.9mm]current page.north east);245    % décorations géométriques (limitées au panneau)246    \begin{scope}247      \clip (current page.north west) rectangle ([yshift=-50mm]current page.north east);248      \draw[uqoBleuClair, opacity=0.28, line width=1pt]249        ([xshift=-22mm,yshift=-4mm]current page.north east) circle (25mm);250      \draw[uqoBleuClair, opacity=0.16, line width=1pt]251        ([xshift=-8mm,yshift=-18mm]current page.north east) circle (34mm);252      \draw[uqoOr, opacity=0.65, line width=0.9pt]253        ([xshift=-38mm,yshift=-30mm]current page.north east) circle (10mm);254      \fill[uqoOr] ([xshift=-52mm,yshift=-13mm]current page.north east) circle (1.1mm);255    \end{scope}256    % sous-titre (accroche dorée)257    \node[anchor=north west, text=uqoOr, font=\footnotesize\bfseries]258      at ([xshift=12mm,yshift=-9.5mm]current page.north west)259      {\MakeUppercase{\insertsubtitle}};260    \fill[uqoOr] ([xshift=12mm,yshift=-14.7mm]current page.north west)261      rectangle ++(11mm,0.55mm);262    % titre principal263    \node[anchor=north west, text=uqoBlanc, font=\LARGE\bfseries,264      text width=118mm, align=left,265      execute at begin node={\hyphenpenalty=10000\exhyphenpenalty=10000\relax}]266      at ([xshift=12mm,yshift=-18mm]current page.north west) {\inserttitle};267    % date (pastille, dans le panneau)268    \node[anchor=south west, text=uqoBlanc, font=\footnotesize,269      draw=uqoOr, line width=0.7pt, rounded corners=2pt,270      inner xsep=7pt, inner ysep=4pt]271      at ([xshift=12mm,yshift=44mm]current page.south west)272      {\faIcon{calendar-alt}\hspace{5pt}\insertdate};273    % zone blanche : auteur et coordonnées (gauche) + logo (droite)274    \node[anchor=north west, align=left]275      at ([xshift=12mm,yshift=-52mm]current page.north west)276      {\begin{minipage}{105mm}\raggedright277        {\normalsize\bfseries\color{uqoBleu}\insertauthor\par}278        \vspace{1mm}279        {\footnotesize\color{uqoGris}\insertinstitute\par}280        \vspace{1.3mm}281        {\footnotesize\color{uqoGris}%282          \textcolor{uqoOr}{\faIcon{envelope}}\hspace{4pt}%283          \href{mailto:simon-pierre.boucher@uqo.ca}{simon-pierre.boucher@uqo.ca}%284          \hspace{9pt}%285          \textcolor{uqoOr}{\faIcon{map-marker-alt}}\hspace{4pt}%286          Pavillon Lucien-Brault, Gatineau\par}287      \end{minipage}};288    \node[anchor=north east]289      at ([xshift=-10mm,yshift=-53.5mm]current page.north east)290      {\includegraphics[height=11mm]{uqo-logo.png}};291    % bandeau photo : pavillon Lucien-Brault292    \node[anchor=south west, inner sep=0pt] (plb)293      at (current page.south west)294      {\includegraphics[width=\paperwidth,height=18mm]{images/pavillon-lucien-brault-banner.jpg}};295    \fill[uqoNavy, opacity=0.22]296      (current page.south west) rectangle ([yshift=18mm]current page.south east);297    \fill[uqoOr] ([yshift=18mm]current page.south west)298      rectangle ([yshift=18.8mm]current page.south east);299    % crédit photo (attribution CC BY-SA)300    \node[anchor=south east, text=uqoBlanc, opacity=0.75, font=\fontsize{3.4}{4}\selectfont]301      at ([xshift=-1.5mm,yshift=0.8mm]current page.south east)302      {Pavillon Lucien-Brault --- photo : Denis Yuen, Wikimedia Commons, CC BY-SA 2.5};303  \end{tikzpicture}%304}305306% =============================================================================307% BOÎTES tcolorbox — style « admonition » moderne (filet gauche + fond teinté)308% =============================================================================309\tcbuselibrary{skins,breakable}310311\tcbset{uqobox/.style={312  enhanced,313  boxrule=0pt, frame hidden,314  arc=1.5pt,315  left=9pt, right=9pt, top=5pt, bottom=5pt,316  before skip=6pt, after skip=6pt,317  fontupper=\small,318  detach title,319  before upper={\tcbtitle\par\vspace{3pt}},320  fonttitle=\bfseries\small321}}322323\newtcolorbox{defbox}[1][Définition]{324  uqobox,325  colback=uqoBleu!6,326  borderline west={2.5pt}{0pt}{uqoBleu},327  coltitle=uqoBleu,328  title={\faIcon{book-open}\hspace{5pt}#1}329}330331\newtcolorbox{importbox}[1][Important]{332  uqobox,333  colback=uqoRouge!6,334  borderline west={2.5pt}{0pt}{uqoRouge},335  coltitle=uqoRouge,336  title={\faIcon{exclamation-triangle}\hspace{5pt}#1}337}338339\newtcolorbox{exbox}[1][Exemple]{340  uqobox,341  colback=uqoVert!7,342  borderline west={2.5pt}{0pt}{uqoVert},343  coltitle=uqoVert,344  title={\faIcon{lightbulb}\hspace{5pt}#1}345}346347\newtcolorbox{notebox}[1][Note]{348  uqobox,349  colback=uqoOr!9,350  borderline west={2.5pt}{0pt}{uqoOr},351  coltitle=uqoOr!50!uqoGris,352  title={\faIcon{pen}\hspace{5pt}#1}353}354355\newtcolorbox{quizbox}[1][Question]{356  uqobox,357  colback=uqoBleuClair!8,358  borderline west={2.5pt}{0pt}{uqoBleuClair},359  coltitle=uqoBleuClair!75!uqoNavy,360  title={\faIcon{question-circle}\hspace{5pt}#1}361}362363% =============================================================================364% STYLES TikZ PARTAGÉS — diagrammes de flux et cartes365% =============================================================================366\tikzset{367  uqoflow/.style={rectangle, rounded corners, draw=uqoBleu, fill=uqoBgClair,368    text centered, font=\small, minimum height=0.58cm},369  uqostep/.style={uqoflow, text width=10.5cm},370  uqocard/.style={rectangle, rounded corners=6pt, draw=uqoBleu, fill=uqoBgClair,371    text centered, font=\small},372  uqoarrow/.style={->, thick, uqoBleu},373}374375% =============================================================================376% LISTINGS377% =============================================================================378\lstset{379  basicstyle=\ttfamily\scriptsize,380  keywordstyle=\color{uqoBleu}\bfseries,381  commentstyle=\color{uqoGris}\itshape,382  stringstyle=\color{uqoVert},383  backgroundcolor=\color{uqoBgClair},384  frame=single,385  rulecolor=\color{uqoGrisClair},386  breaklines=true,387  showstringspaces=false,388  numbers=left,389  numberstyle=\tiny\color{uqoGris},390  tabsize=2391}392393% =============================================================================394% GRAPHIQUES pgfplots — habillage discret par défaut395% =============================================================================396\pgfplotsset{397  /pgf/number format/1000 sep={},398  every axis/.append style={399    axis line style={uqoGris!55},400    tick style={uqoGris!55},401    tick label style={font=\scriptsize, color=uqoGris},402    label style={font=\small, color=uqoInk},403    legend style={font=\tiny, draw=uqoGrisClair, fill=white, fill opacity=0.9},404  },405}406407% --- Anti-overflow pour tableaux ---408\renewcommand{\arraystretch}{1.08}409410% =============================================================================411% COMMANDES UTILES412% =============================================================================413\newcommand{\uqotitle}[1]{\textcolor{uqoBleu}{\textbf{#1}}}414\newcommand{\uqohighlight}[1]{\textcolor{uqoOr!75!uqoGris}{\textbf{#1}}}415\newcommand{\uqoalert}[1]{\textcolor{uqoRouge}{\textbf{#1}}}416\newcommand{\uqogreen}[1]{\textcolor{uqoVert}{\textbf{#1}}}417418% Séparateur visuel419\newcommand{\uqosep}{%420  \begin{center}421    \tikz{422      \fill[uqoOr] (0,0) circle (0.5mm);423      \draw[uqoGrisClair, line width=0.5pt] (0.25,0) -- (2.6,0);424      \draw[uqoGrisClair, line width=0.5pt] (-2.6,0) -- (-0.25,0);425    }%426  \end{center}427}428429% =============================================================================430% SLIDE DE CONTACT431% =============================================================================432\newcommand{\contactslide}[1][]{%433  \begin{center}434  \tikz[baseline]{\node[fill=uqoBleu, text=uqoBlanc, circle, minimum size=10mm]435    {\faIcon{comments}};}\\[1.5mm]436  {\Large\color{uqoBleu}\textbf{Questions et discussion}}437438  \vspace{0.2cm}439  \begin{tcolorbox}[enhanced, width=0.72\textwidth, boxrule=0pt, frame hidden,440      colback=uqoBgClair, arc=2.5pt,441      borderline north={1.4pt}{0pt}{uqoOr},442      left=10pt, right=10pt, top=8pt, bottom=8pt]443    \centering444    {\large\textbf{\color{uqoBleu}Simon-Pierre Boucher}}\\[1.5pt]445    {\small\color{uqoGris}\textit{Professeur} --- Département des sciences administratives}\\[5pt]446    {\small\textcolor{uqoOr}{\faIcon{envelope}}\hspace{5pt}%447      \href{mailto:simon-pierre.boucher@uqo.ca}{simon-pierre.boucher@uqo.ca}}\\[3pt]448    {\small\textcolor{uqoOr}{\faIcon{map-marker-alt}}\hspace{5pt}%449      Gatineau --- Pavillon Lucien-Brault}\\[1pt]450    {\footnotesize\color{uqoGris}101, rue Saint-Jean-Bosco, Gatineau (Québec) J8X~3X7}451  \end{tcolorbox}452453  \ifx\\#1\\%454  \else455    \vspace{0.2cm}456    {\small\color{uqoGris}\faIcon{arrow-circle-right}\hspace{4pt}\textit{#1}}457  \fi458  \end{center}459}460461\endinput462