--- myst: html_meta: keywords: LaTeX,mathématiques,ce qu'il fallait démontrer,ὅπερ ἔδει δεῖξαι,carré blanc,carré noir,signe de fin de démonstration --- # Comment ajouter un carré en fin de démonstration ? Ce symbole est utilisé pour remplacer l'expression latine « *quod erat demonstrandum* » (QED), autrement dit notre [CQFD](wpfr:CQFD_(mathématiques)). Il est parfois appelé « halmos », du nom du mathématicien [Paul Halmos](wpfr:Paul_Halmos). L'obtention de ce symbole n'est pas compliquée, il s'agit du symbole LaTeX mathématique `\square`. La problématique tient plus à son positionnement sur la ligne du document où elle vient conclure la démonstration. ## Avec l'extension « amsthm » L'extension fournit un environnement `proof` qui ajoute automatiquement ce symbole en fin de démonstration : ``` \documentclass{article} \usepackage{amsthm} \usepackage[french]{babel} \pagestyle{empty} \begin{document} \begin{proof} (...) Et, par récurrence : \[ (X+Y)^{n} = \sum_{{k=0}}^{n} {n \choose k} X^{{n-k}} Y^{k} \] Ce qui généralise l'\emph{identité polynomiale}. \end{proof} \end{document} ``` Cependant, si la démonstration se termine par une formule en exergue, le symbole CQFD risque d'apparaître trop bas. Son placement pourra être corrigé en utilisant la commande `\qedhere` comme étiquette de formule, avec la commande `\tag` : **Sans correction:** ``` \documentclass{article} \usepackage[width=6cm]{geometry} \usepackage{amsthm,amsmath} \usepackage[french]{babel} \pagestyle{empty} \begin{document} \begin{proof} Texte... \begin{equation*} maths... \end{equation*} \end{proof} \end{document} ``` **Avec correction:** ``` \documentclass{article} \usepackage[width=6cm]{geometry} \usepackage{amsthm,amsmath} \usepackage[french]{babel} \pagestyle{empty} \begin{document} \begin{proof} Texte... \begin{equation*} maths... \tag*{\qedhere} \end{equation*} \end{proof} \end{document} ``` ### Comment obtenir un carré noir ? Il est très simple de changer le symbole de fin de démonstration, en redéfinissant la commande `\qedsymbol` : ``` \documentclass{article} \usepackage[width=6cm]{geometry} \usepackage{amsthm,amssymb} \usepackage[french]{babel} \pagestyle{empty} \renewcommand{\qedsymbol}{$\blacksquare$} \begin{document} \begin{proof} Et nous y voilà. \end{proof} \end{document} ``` De la même façon, il est très simple de faire disparaître le carré, en redéfinissant `\qedsymbol` pour qu'elle ne fasse rien : ``` \documentclass{article} \usepackage[width=6cm]{geometry} \usepackage{amsthm} \usepackage[french]{babel} \pagestyle{empty} \renewcommand{\qedsymbol}{} \begin{document} \begin{proof} Et nous y voilà. \end{proof} \end{document} ``` ## Avec l'extension « ntheorem » L'extension vous permet de définir de nouveaux styles de théorèmes, de lemme, de démonstration, etc. Avec l'option `standard`, elle vous fournit un ensemble d'environnements prédéfinis, dont `Proof` pour les démonstrations. En ajoutant l'option `thmmarks`, on fait apparaître des marques de fin de démonstration : ``` \documentclass{article} \usepackage[standard,thmmarks]{ntheorem} \usepackage[french]{babel} \pagestyle{empty} \begin{document} \begin{Proof} (...) Et, par récurrence : \[ (X+Y)^{n} = \sum_{{k=0}}^{n} {n \choose k} X^{{n-k}} Y^{k} \] Ce qui généralise l'\emph{identité polynomiale}. \end{Proof} \end{document} ``` La [documentation de « ntheorem »](texdoc:ntheorem) reste un peu théorique. Vous trouverez [ici des exemples pédagogique et en français](https://zestedesavoir.com/tutoriels/1126/des-theoremes-personnalises-en-latex/). ## Avec l'extension « QED » L'extension , de Paul Taylor, définit un environnement de preuve, `Proof`, et une commande `\qed`. Vous devrez charger manuellement l'extension pour disposer du symbole carré. Vous aurez également à disposition ces variantes : | Commande | Rendu | Signification | |----------|-----------|--------------------------------------------------------| | `\qed` | $\square$ | *Quod erat demonstrandum* / Ce qu'il fallait démontrer | | `\QED` | Q.E.D. | *Quod erat demonstrandum* / Ce qu'il fallait démontrer | | `\QEI` | Q.E.I. | *Quod erat inveniendum* / Ce qu'il fallait trouver | | `\QEF` | Q.E.F. | *Quod erat faciendum* / Ce qu'il fallait faire | :::{important} Ces commandes (`\qed`, `\QED`, etc) n'ont pas d'effet si elles ne suivent pas une commande qui démarre une preuve (`\begin{Proof}` ou `\Proof`). ::: :::{warning} L'extension a été développée en 1993-1995. Avec elle, Paul Taylor a apporté une solution automatique à un problème délicat : en effet, certaines preuves se terminent par une équation en exergue, d'autres non. Si le fichier d'entrée contient `...\] \end{proof}`, LaTeX termine de composer les maths, puis se prépare immédiatement pour une nouvelle ligne, avant même de lire le code de la fin de démonstration. Cette extention a donc un intérêt historique, et son code est très intéressant. Mais les autres solutions proposées sont préférables si vous travaillez sur un document récent. ::: ## Avec des modifications manuelles Si vos besoins sont simples, une commande `\qed` peut être définie manuellement : ```{noedit} \def\myhfill{ \parfillskip=0pt \widowpenalty=10000 \displaywidowpenalty=10000 \finalhyphendemerits=0 \unskip\nobreak\null\hfil\penalty50 \hskip2em\null\hfill } \def\qedsymbol{\ensuremath\square} \def\qed{\myhfill\qedsymbol\par} ``` Le symbole de fin de démonstration sera placé à droite, sur la ligne s'il reste de la place, sur la ligne d'en-dessous dans le cas contraire. :::{sources} - [Signe de fin d'article](wpfr:Signe_de_fin_d'article), - [QED symbol in latex](https://stackoverflow.com/questions/1910493/qed-symbol-in-latex), - [Solid black box in the proof environment](https://tex.stackexchange.com/questions/98382/solid-black-box-in-the-proof-environment), - [Proof environment](faquk:FAQ-proof). :::