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. Il est parfois appelé « halmos », du nom du mathématicien 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.
1. Avec l’extension amsthm#
L’extension amsthm fournit un environnement proof
qui ajoute
automatiquement ce symbole en fin de démonstration :
\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage{amsthm}
\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}
Notez bien que amsthm propose par des défauts
des dénominations anglaises (comme Proof). Vous devez donc
charger babel et passer l’option french
pour retrouver
une terminologie francisée.
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
. En voici un exemple :
\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage{amsthm,mathtools}
\begin{document}
Sans correction :
\begin{proof}
Texte...
\begin{equation*}
maths...
\end{equation*}
\end{proof}
Avec correction :
\begin{proof}
Texte...
\begin{equation*}
maths... \tag*{\qedhere}
\end{equation*}
\end{proof}
\end{document}
1.1. Changer le symbole de fin de démonstration#
Il est très simple de changer le symbole de fin de démonstration,
en redéfinissant la commande \qedsymbol
:
\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage{amsthm,amssymb}
\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[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage{amsthm}
\renewcommand{\qedsymbol}{}
\begin{document}
\begin{proof}
Et nous y voilà.
\end{proof}
\end{document}
2. Avec l’extension ntheorem#
L’extension ntheorem 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
, vous ferez apparaître des marques de fin de démonstration :
\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage[standard,thmmarks]{ntheorem}
\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}
Malgré l’usage de l’extension babel et de l’option french
,
le terme anglais Proof reste utilisé. L’extension ne propose en effet
pas d’options de localisation en français et babel ne permet pas
non plus de résoudre ce point. Cependant, l’extension dispose de commandes
pour créer (\newtheorem
) et paramétrer
de nouveaux environnements mathématiques. Dès lors, il est possible
de dupliquer les environnements comme Proof
et de les franciser,
comme dans l’exemple suivant.
\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage[standard,thmmarks]{ntheorem}
\theoremheaderfont{\scshape} % Police du titre du "théorème"
\theorembodyfont{\normalfont} % Police du texte du "théorème"
\theoremstyle{nonumberplain} % Style du "théorème" (ici, sans numéro)
\theoremseparator{} % Séparateur en cas numérotation
\theoremsymbol{% % Symbole de fin de "théorème"
\ensuremath{_\blacksquare}}
\newtheorem{dem}{Démonstration} % Définition de notre nouvel environnement
% avec les paramètres qui précèdent
\begin{document}
\begin{dem}
(...) 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{dem}
\end{document}
Les définitions par défaut des environnements de l’extension ntheorem sont données dans sa documentation à la section 4 Examples (dans notre exemple, nous avons également modifié le symbole de fin).
Par ailleurs, si la documentation de cette extension reste un peu théorique, vous trouverez sur le site du Zeste de Savoir des exemples bien plus pédagogiques en français.
3. Avec l’extension QED#
L’extension QED, de Paul Taylor, définit un environnement de preuve,
Proof
, et une commande \qed
. Vous devrez charger manuellement l’extension
amssymb pour disposer du symbole carré.
Vous aurez également à disposition ces variantes :
Commande |
Rendu |
Signification |
---|---|---|
|
\(\square\) |
Quod erat demonstrandum / Ce qu’il fallait démontrer |
|
Q.E.D. |
Quod erat demonstrandum / Ce qu’il fallait démontrer |
|
Q.E.I. |
Quod erat inveniendum / Ce qu’il fallait trouver |
|
Q.E.F. |
Quod erat faciendum / Ce qu’il fallait faire |
Notez que 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
).
Avertissement
L’extension QED 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 achève la composition
des mathématiques, 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 reste intéressant. Mais les autres solutions proposées sont préférables si vous travaillez sur un document récent.
4. Avec des modifications manuelles#
Si vos besoins sont simples, une commande \qed
peut être définie
manuellement (pour du texte) :
\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage{mathtools, amssymb}
% Définition d'un symbole \qed
\newcommand{\monhfill}{
\parfillskip=0pt
\widowpenalty=10000
\displaywidowpenalty=10000
\finalhyphendemerits=0
\unskip\nobreak\null\hfil\penalty50
\hskip2em\null\hfill
}
\newcommand{\symboleqed}{\ensuremath{\square}}
\newcommand{\qed}{\monhfill\symboleqed\par}
\begin{document}
(...) 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}.\qed
\end{document}
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.