Hum, le \\ en fin de paragraphe, ça fait underfull \hbox. Pour la méthode de Poirot, je procéderais ainsi :
\documentclass[a4paper,11pt,french]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{textcomp}
\usepackage{amsthm} % Pour \qedsymbol (sinon, il y a \square dans amssymb...)
\newcommand*{\TrucEnFinDeParagraphe}[1]{% cf. TeXbook p. 106
{\unskip\nobreak\hfil\penalty50\hskip2em\hbox{}\nobreak\hfil
#1%
\parfillskip=0pt \finalhyphendemerits=0 \par}}
\newenvironment{demo}{%
\noindent \textbf{Démonstration. }\ignorespaces}{%
\unskip \TrucEnFinDeParagraphe{\qedsymbol}}
\begin{document}
\begin{demo}
Pouet pouet pouet pouet pouet pouet pouet pouet pouet.
\end{demo}
\end{document}
Sinon, apparemment, amsthm ne permet pas encore de changer proprement la police utilisée pour le mot « Démonstration » (le \proofname) de son environnement 'proof'. En attendant, on peut adapter une des techniques proposées par Bruno Le Floch comme ceci :
Comme je l'ai dit, ça fait des underfull \hbox. De plus, si la fin de la démo tombe en bas d'une page, ça va faire une page plus courte que les autres, soit parce qu'elle se termine par une ligne blanche, soit parce qu'elle commence par une ligne blanche (la fameuse ligne underfull due au \\). Après, tu fais ce que tu veux...
@ brian,
Avec le deuxième code, comment faire de sorte que la première phrase de la " Démonstration" commence à la ligne suivante après le mot "Démonstration" ?
c-à-d
Démonstration.
Soit la fonction .....
J'ai cru comprendre que nenu parlait de la deuxième méthode de mon premier message, qui me semble préférable en raison des complexités nécessaires pour bien gérer \qedhere, auquel l'environnement 'proof' d'amsmath fait très attention. En tout cas, quelle que soit la base choisie, il faut faire attention à ce qu'il ne puisse pas y avoir de coupure de page juste après la ligne contenant « Démonstration. », ce serait laid.
En s'inspirant du message suscité de Bruno Le Floch et de ce message de Barabara Beeton (qui a l'air d'être en charge d'amsmath), je proposerais ceci :
\documentclass[a4paper,11pt,french]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{textcomp}
\usepackage{amsthm}
% cf. https://tex.stackexchange.com/a/8091
\expandafter\let\expandafter\oldproof\csname\string\proof\endcsname
\let\oldendproof\endproof
\renewenvironment{proof}[1][\proofname]{%
% \nopunct évite l'ajout automatique d'un point après le mot « Démonstration »
\oldproof[\rmfamily\upshape\bfseries #1\nopunct]%
% Astuce de Barabara Beeton pour passer à la ligne suivante :
% <https://tex.stackexchange.com/a/85081>
$ $\par\nobreak\ignorespaces
}{\oldendproof}
\begin{document}
\begin{proof}
Pouet pouet pouet pouet pouet pouet pouet pouet pouet.
pouet pouet pouet pouet pouet pouet pouet pouet pouet.
Pouet pouet pouet pouet pouet pouet pouet pouet pouet.
pouet pouet pouet pouet pouet pouet pouet pouet pouet.
\end{proof}
\end{document}
N. B. : j'ai mis un \nopunct car avec cette présentation, le point automatiquement ajouté après le mot « Démonstration » par l'environnement 'proof' d'amsmath me gêne.
Sauf erreur de ma part (je ne peux pas tester pour le moment), ce que tu viens de proposer a deux problèmes :
Pas de retour à la ligne après le mot « Démonstration », contrairement à ce qu'a in fine demandé nenu.
Dans le cas où tu ne voudrais pas ce retour à la ligne, ce serait quand même inacceptable car le point suivant le mot « Démonstration » ne serait pas dans la bonne police (un point pas gras suivant un mot en gras, ça se voit !).
Edit : Les prévisions ci-dessus sont confirmées par l'expérience. Pour voir la différence entre un point en gras (dans la même police que le mot « Démonstration ») et le point automatiquement ajouté par l'environnement 'proof' avec la méthode de Héhéhé, on peut faire ceci :
\addto\captionsfrench{% l'espace après 1000 est parfaitement intentionnel
\renewcommand\proofname{\normalfont\textbf{Démonstration.\spacefactor=1000 }}}
Le deuxième point est celui qui est ajouté par l'environnement 'proof' lorsqu'il croit que ce qui précède n'est pas un signe de ponctuation (c'est pourquoi il a fallu le berner avec \spacefactor pour réaliser ce test).
@brian,
J'essaie le code posté, il m'affiche un message d'incompatibilité avec l'environnement "\begin{enumerate} pour obtenir la ligne suivante après le mot " Démonstration". Autre astuce ?
@ Hehehe,
La réponse de brian est juste: la ligne suivante après le mot " Démonstration " n'apparaît pas.
@ Poirot,
Ton code passe parfaitement. Mais y'a pas possibilité de changer " \begin{demo}...\end{demo}" en " \begin{proof}...\end{proof}" ? car dans tout le document de plus de 125 pages j'ai utilisé l'environnement "proof". Réinsérer les " demo" je trouve que ça sera du boulot.
Le code que j'ai posté a été testé, il marche parfaitement ici. Si tu ne postes pas un Exemple Complet Minimal avec :
1) le code précis qui pose problème (en retirant tout ce qui n'est pas utile pour reproduire ledit problème) ;
2) les messages de LaTeX obtenus avec ce code ;
je crains ne pas pouvoir t'aider davantage.
Concernant ta réponse à Poirot, la fonction rechercher-remplacer doit être présente dans n'importe quel éditeur de texte, sinon il est bon à jeter...
Le problème c'est que l'environnement proof préexiste, je ne sais pas s'il est possible de le remplacer via un truc du style \renewenvironment de manière similaire à \renewcommand.
Je confirme que le code posté au dernier message passe parfaitement. J'oubliais de placer l'espace entre les dollars dans la partie "% Astuce pour passer à la ligne suivante ".
Encore merci beaucoup. Tout est rentré dans l'ordre voulu.
Je l'avais recopié car j'utilisais le téléphone pour poster les messages sur ce forum. D'où l'erreur sur l'espacement entre les dollars dans la rubrique astuce pour la ligne suivante.
Encore merci
OK... maintenant que tu as un vrai environnement 'proof' d'amsthm, tu peux aussi écrire des choses comme
\begin{proof}[Preuve du théorème de nenu]
(...)
\end{proof}
Tu peux aussi placer toi-même \qedhere quand il ne se met pas de lui-même à l'endroit souhaité. Bref, tu as les fonctionnalités de l'environnement 'proof' d'amsthm.
Réponses
Plus sérieusement, le plus simple est de te créer un nouvel environnement. Voilà le mien : Il n'y a plus qu'à écrire et remplacer \textit par \textbf si tu veux que le mot "démonstration" soit en gras.
Et si la commande \QED n'est pas définie, la remplacer par qui fait un $\square$.
Alain
Merci à vous.
Avec le deuxième code, comment faire de sorte que la première phrase de la " Démonstration" commence à la ligne suivante après le mot "Démonstration" ?
c-à-d
Démonstration.
Soit la fonction .....
Merci !
Je viens d'insérer après #1 le code \par\noindent mais ça ne marche pas.
En s'inspirant du message suscité de Bruno Le Floch et de ce message de Barabara Beeton (qui a l'air d'être en charge d'amsmath), je proposerais ceci :
N. B. : j'ai mis un \nopunct car avec cette présentation, le point automatiquement ajouté après le mot « Démonstration » par l'environnement 'proof' d'amsmath me gêne.
Edit : Les prévisions ci-dessus sont confirmées par l'expérience. Pour voir la différence entre un point en gras (dans la même police que le mot « Démonstration ») et le point automatiquement ajouté par l'environnement 'proof' avec la méthode de Héhéhé, on peut faire ceci :
Le deuxième point est celui qui est ajouté par l'environnement 'proof' lorsqu'il croit que ce qui précède n'est pas un signe de ponctuation (c'est pourquoi il a fallu le berner avec \spacefactor pour réaliser ce test).
J'essaie le code posté, il m'affiche un message d'incompatibilité avec l'environnement "\begin{enumerate} pour obtenir la ligne suivante après le mot " Démonstration". Autre astuce ?
@ Hehehe,
La réponse de brian est juste: la ligne suivante après le mot " Démonstration " n'apparaît pas.
@ Poirot,
Ton code passe parfaitement. Mais y'a pas possibilité de changer " \begin{demo}...\end{demo}" en " \begin{proof}...\end{proof}" ? car dans tout le document de plus de 125 pages j'ai utilisé l'environnement "proof". Réinsérer les " demo" je trouve que ça sera du boulot.
Merci
Le code que j'ai posté a été testé, il marche parfaitement ici. Si tu ne postes pas un Exemple Complet Minimal avec :
1) le code précis qui pose problème (en retirant tout ce qui n'est pas utile pour reproduire ledit problème) ;
2) les messages de LaTeX obtenus avec ce code ;
je crains ne pas pouvoir t'aider davantage.
Concernant ta réponse à Poirot, la fonction rechercher-remplacer doit être présente dans n'importe quel éditeur de texte, sinon il est bon à jeter...
Je confirme que le code posté au dernier message passe parfaitement. J'oubliais de placer l'espace entre les dollars dans la partie "% Astuce pour passer à la ligne suivante ".
Encore merci beaucoup. Tout est rentré dans l'ordre voulu.
Je l'avais recopié car j'utilisais le téléphone pour poster les messages sur ce forum. D'où l'erreur sur l'espacement entre les dollars dans la rubrique astuce pour la ligne suivante.
Encore merci
Tu peux aussi placer toi-même \qedhere quand il ne se met pas de lui-même à l'endroit souhaité. Bref, tu as les fonctionnalités de l'environnement 'proof' d'amsthm.