\documentclass[a4paper,11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french]{babel}
\usepackage[a4paper,top=3.2cm,bottom=2cm,left=2cm,right=2cm]{geometry}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
\usepackage{fancyhdr}
\usepackage{qrcode}
\usepackage[table]{xcolor}
\usepackage{amsmath,amssymb}
\usepackage{enumitem}
% Puces nettes (babel-french remplace sinon la puce par un tiret « – » peu pro).
% Vaut pour TOUTES les fiches qui importent ce module. AtBeginDocument pour
% passer après la personnalisation des listes faite par babel-french.
\AtBeginDocument{%
  \setlist[itemize]{leftmargin=1.8em,itemsep=0.5ex,topsep=0.4ex,parsep=0pt}%
  \setlist[itemize,1]{label=\textcolor{red!75!black}{\small\textbullet}}%
  \setlist[itemize,2]{label=\textcolor{red!75!black}{\scriptsize\textbullet}}%
}
% Titres compacts (gain de place vertical, fiches plus denses) — vaut pour tous.
\usepackage{titlesec}
\titlespacing*{\section}{0pt}{1.4ex}{0.6ex}
\titlespacing*{\subsection}{0pt}{1.0ex}{0.3ex}
% multicol : listes denses (calcul mental) sur 2 colonnes — neutre tant qu'il
% n'est pas utilisé, dispo pour tous les générateurs.
\usepackage{multicol}
\setlength{\columnsep}{1.5em}
% needspace : empêche un titre d'exercice de rester orphelin en bas de page
% (réserve quelques lignes ; sinon le titre passe à la page suivante avec sa
% liste). Neutre tant qu'il n'est pas appelé — dispo pour tous les générateurs.
\usepackage{needspace}
\usepackage{tikz}
\usetikzlibrary{decorations.text}

\usepackage{tgheros}
\pagestyle{fancy}
\fancyhf{}
\setlength{\headheight}{75pt}
\setlength{\headsep}{10pt}

\newcommand{\logowouf}{%
\begin{tikzpicture}[baseline={(current bounding box.center)},scale=0.55,
                    line cap=round,line join=round]
    \path[use as bounding box] (-2.20,-1.45) rectangle (2.20,2.20);
    \path[
        postaction={decorate},
        decoration={
            text along path,
            text={|\fontfamily{qhv}\bfseries\fontsize{9}{9}\selectfont|site2wouf.fr},
            text align={center},
            raise=0.03ex
        }
    ] (-1.29,0.48) arc[start angle=160,end angle=20,radius=1.29];
    \begin{scope}[xshift=-0.06cm]
        \fill[black] (-0.66,0.14) ellipse (0.21 and 0.31);
        \fill[black] ( 0.66,0.14) ellipse (0.21 and 0.31);
        \fill[black] (-0.23,0.49) ellipse (0.22 and 0.35);
        \fill[black] ( 0.23,0.49) ellipse (0.22 and 0.35);
        \fill[black]
            (0,-0.10)
            .. controls (-0.36,-0.02) and (-0.63,-0.24) .. (-0.58,-0.58)
            .. controls (-0.52,-0.93) and (-0.16,-1.12) .. (0,-0.90)
            .. controls (0.16,-1.12) and (0.52,-0.93) .. (0.58,-0.58)
            .. controls (0.63,-0.24) and (0.36,-0.02) .. (0,-0.10)
            -- cycle;
    \end{scope}
\end{tikzpicture}%
}

% Numérotation CALQUÉE sur le HTML des leçons : I / A / 1 / a (façon de planifier
% de l'utilisateur) — indispensable pour retrouver le même plan sur PDF et en ligne.
\renewcommand{\thesection}{\Roman{section}}
\renewcommand{\thesubsection}{\Alph{subsection}}
\renewcommand{\thesubsubsection}{\arabic{subsubsection}}
\renewcommand{\theparagraph}{\alph{paragraph}}
\setcounter{secnumdepth}{4}   % numérote aussi le 4e niveau (\paragraph → a, b, c)
\makeatletter
\renewcommand{\@seccntformat}[1]{\csname the#1\endcsname.\hspace{0.6em}}
% \paragraph = vrai titre de niveau 4 (sur sa ligne, gras), pas run-in
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
  {1.4ex \@plus 1ex \@minus .2ex}{0.5ex \@plus .2ex}%
  {\normalfont\normalsize\bfseries}}
\makeatother
\usepackage{colortbl}   % \rowcolor / \arrayrulecolor pour tableaux stylés (fiches mémo…)
\usepackage{needspace}  % \needspace{...} : garder un bloc (déf + figure) sur une même page
\usepackage{tcolorbox}
\tcbuselibrary{skins,breakable}
\tcbset{lecbox/.style={
    enhanced, breakable, boxrule=0pt, leftrule=4pt, arc=2pt,
    left=10pt, right=8pt, top=6pt, bottom=6pt,
    fonttitle=\bfseries, coltitle=white,
}}
\newtcolorbox{definition}{lecbox, colback=blue!6, colframe=blue!55!black,
    title={Définition}}
\newtcolorbox{propriete}{lecbox, colback=orange!8, colframe=orange!70!black,
    title={Propriété}}
\newtcolorbox{theoreme}{lecbox, colback=orange!8, colframe=orange!70!black,
    title={Théorème}}
\newtcolorbox{exemple}{lecbox, colback=green!6, colframe=green!55!black,
    title={Exemple}}
\newtcolorbox{remarque}{lecbox, colback=gray!8, colframe=gray!60!black,
    title={Remarque}}
% Application : reformulation « sur la figure », sans titre, en gris.
\newtcolorbox{application}{enhanced, boxrule=0pt, colback=gray!5,
    borderline west={2pt}{0pt}{gray!50}, left=10pt, right=8pt, top=4pt,
    bottom=4pt, arc=1pt, coltext=black!75}
% Symboles maths courants écrits en UNICODE dans le corps (→ copiables en HTML,
% pandoc les passe tels quels) et rendus en PDF via newunicodechar. Évite le
% mode math $...$ qui casse le copier-coller (MathJax non copiable).
\usepackage{newunicodechar}
\newunicodechar{∈}{\ensuremath{\in}}
\newunicodechar{∉}{\ensuremath{\notin}}
\newunicodechar{⊥}{\ensuremath{\perp}}
\newunicodechar{≈}{\ensuremath{\approx}}
\newunicodechar{×}{\ensuremath{\times}}
\newunicodechar{≠}{\ensuremath{\neq}}
\newunicodechar{≤}{\ensuremath{\leqslant}}
\newunicodechar{≥}{\ensuremath{\geqslant}}
\newunicodechar{°}{\ifmmode{^\circ}\else\textdegree\fi}
\newunicodechar{²}{\ensuremath{^2}}
\newunicodechar{³}{\ensuremath{^3}}
\newunicodechar{÷}{\ensuremath{\div}}
\newunicodechar{−}{\ensuremath{-}}
% numeration : tableau de numération centré. En PDF, simple \begin{center} ;
% en HTML, pandoc émet <div class="numeration"> stylé par css2026/lecon.css
% (couleurs des cellules, perdues sinon car pandoc ignore \cellcolor).
\newenvironment{numeration}{\begin{center}}{\end{center}}
% pose : opération posée (addition/multiplication). En PDF, tabular en
% \ttfamily centré ; en HTML pandoc émet <div class="pose"> (monospace +
% colonnes alignées via css2026/lecon.css). Chiffres copiables.
\newenvironment{pose}{\begin{center}\ttfamily}{\end{center}}
% calcul : un calcul isolé, centré, seul sur sa ligne (jamais coupé en plein
% milieu). En PDF \begin{center}\large ; en HTML pandoc émet <div class="calcul">
% (centré, sans retour ligne interne) via css2026/lecon.css.
\newenvironment{calcul}{\begin{center}\large}{\par\end{center}}
\usepackage{tikz}\usetikzlibrary{calc}
\newcommand{\titre}{Distance et tangente}
\newcommand{\soustitre}{Cycle 4 — Quatrième · Espace et géométrie}

\fancyhead[C]{%
\raisebox{4pt}{%
\begin{minipage}[c]{0.15\textwidth}
    \centering
    \logowouf
\end{minipage}
\begin{minipage}[c]{0.62\textwidth}
    \centering
    {\Large\bfseries \titre\par}
    {\small\color{gray} \soustitre}
\end{minipage}
\begin{minipage}[c]{0.21\textwidth}
    \centering
    \qrcode[height=1.5cm]{https://site2wouf.fr/tangente.php}\\[2pt]
    {\small\ttfamily\bfseries\color{red} LEC4TANG}
\end{minipage}%
}
}

\begin{document}

% Corps maître « Distance et tangente » (4e). Nouveau programme cycle 4.

\section{Distance d'un point à une droite}

\subsection{Définition}

\begin{definition}
Soit une droite (D) et un point A. On appelle \textbf{distance du point A à la
droite (D)} la distance de A au \textbf{pied H de la perpendiculaire} à (D)
passant par A.
\end{definition}

\begin{center}
  {\shorthandoff{!:;?}\resizebox{0.45\linewidth}{!}{\begin{tikzpicture}[line cap=round,thick]
  \draw (-0.5,0)--(6,0) node[right]{(D)};
  \coordinate (A) at (2.2,2.4);\coordinate (H) at (2.2,0);\coordinate (N) at (4.6,0);
  \draw[dashed] (A)--(H); \draw (A)--(N);
  \draw (2.2,0.34)--(2.54,0.34)--(2.54,0);
  \foreach \p in {A,H,N}\fill (\p) circle(1.4pt);
  \node[above] at (A){A};\node[below] at (H){H};\node[below] at (N){N};
\end{tikzpicture}}}
\end{center}

\subsection{Propriété}

\begin{propriete}
Cette distance $AH$ est la \textbf{plus petite} distance de A à un point de la
droite (D) : pour tout autre point N de (D), $AH < AN$.
\end{propriete}

\section{Tangente à un cercle}

\subsection{Définition}

\begin{definition}
On appelle \textbf{tangente} au cercle $\mathcal{C}$ de centre O en un point A du
cercle la droite passant par A et \textbf{perpendiculaire au rayon} $[OA]$.
\end{definition}

\begin{center}
  {\shorthandoff{!:;?}\resizebox{0.4\linewidth}{!}{\begin{tikzpicture}[line cap=round,thick]
  \def\R{2}\coordinate (O) at (0,0);\coordinate (A) at (40:\R);
  \draw (O) circle(\R);
  \draw (O)--(A);
  \draw ($(A)!-2cm!90:(O)$)--($(A)!2cm!90:(O)$) node[above right]{(T)};
  \draw ($(A)!0.32cm!(O)$)--($($(A)!0.32cm!(O)$)!0.32cm!90:(O)$)--($(A)!0.32cm!90:(O)$);
  \foreach \p in {O,A}\fill (\p) circle(1.4pt);
  \node[below left] at (O){O};\node[above right] at (A){A};
\end{tikzpicture}}}
\end{center}

\subsection{Construction}

Pour construire la tangente en A : on trace la droite $(OA)$, puis la
\textbf{perpendiculaire} à $(OA)$ passant par A.

\subsection{Propriété}

\begin{propriete}
Si (T) est la tangente au cercle $\mathcal{C}$ en A, alors A est le
\textbf{seul point d'intersection} entre (T) et $\mathcal{C}$.
\end{propriete}

\end{document}
