Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Commande pour faire des textes à trou...

68 views
Skip to first unread message

JoE

unread,
Sep 15, 2010, 11:03:04 AM9/15/10
to
Bonjour,

J'étais tombé, il y a quelques temps déjà, sur une macro qui
permettait de faire très simplement des textes à trou : \trou{blabla}
met des pointillés à la place de blabla, dans une largeur correcte,
qui va éventuellement à la ligne et qui est indépendant du mode
(texte, math dans le texte, math hors-texte).

Voici cette commande :

%**************************************************************************************************************************
% J'ai mis du \Large et les pointillés en gris
% RMQ : Il faut évidemment que le document maitre définisse la
variable \trouer...
% p => texte troué ; pas p => texte normal
\newsavebox{\toto}
\newsavebox{\tata}
\newlength{\longpoint}
\savebox{\tata}{\hbox{\color{gray}.}}

\newcommand{\trou}[2][\trouer]{\leavevmode%
\ifthenelse{\equal{#1}{p}}{%
\ifmmode%si mathmode
\ifinner%si encapsulé, cad dans le texte
\savebox{\toto}{\Large$#2$}%
\else%pas encapsulé
\savebox{\toto}{\Large$\displaystyle#2$}%
\fi%
\else%pas mathmode
\savebox{\toto}{\Large#2}
\fi%
\setlength{\longpoint}{0pt}%
\whiledo{\longpoint<\wd\toto}%
{%
\hbox{\Large\rule{0pt}{\baselineskip}\usebox{\tata}}%
\penalty0\advance\longpoint%
by\wd\tata%
}%
}%Fin equals(p), fin de "troué"
{{\Large\color{blue}#2}}}
%**************************************************************************************************************************

Encore merci à celui (s'il se reconnait) qui l'avait écrite, elle est
géniale ! Je me suis juste permis de changer un petit truc : mettre en
Large et en bleu pour la version "non-trouée"... En bleu pour que ça
se voie bien, en Large pour que le texte "non-troué" soit de même
taille que le texte troué.

Cette commande est vraiment géniale, mais il reste un petit couac :
dans certains cas (il me semble que c'est lors du mode math hors
texte...), il y a une différence de hauteur entre le texte troué et le
texte non troué... Pour de petits documents, c'est pas un soucis, mais
lorsque le document grandit, ça peut vite devenir embêtant : la
"version prof" et la "version élève" sont 2 versions différentes, le
texte se décale au fur et à mesure... "Voyez à la page 50... Ah...
Non, chez vous c'est la page 44" ...

J'ai entamé la compréhension du code ... Pas évident, mais le problème
vient sans doute du \baselineskip... Je pense qu'il faut mettre la
hauteur de la boite \toto à la place :

\hbox{\Large\rule{0pt}{\ht\toto}\usebox{\tata}}%

j'ai essayé mais ça marche pas :-(

D'avance, merci !

pluton

unread,
Sep 15, 2010, 11:17:23 AM9/15/10
to
ça n'aide pas trop mais le document serait-il celui-ci (de Manuel) :

http://people.math.jussieu.fr/~mpg/lm204/files/cours.pdf

plus précisément, page 84.

Francois Lafont

unread,
Sep 15, 2010, 1:22:38 PM9/15/10
to
Le 15/09/2010 17:03, JoE a écrit :

> Encore merci à celui (s'il se reconnait) qui l'avait écrite, elle est
> géniale !

Cette commande, c'est François Pétiard qui l'avait écrite et j'en
profite aussi pour le remercier au passage, car c'est sur un de mes
posts ici même qu'il m'avais donné une réponse clé en main pour ainsi dire.

http://groups.google.fr/group/fr.comp.text.tex/browse_thread/thread/6f9ab5f1876659a0/438aaaf02590b4ed#438aaaf02590b4ed

Cette commande m'a bien servi. En revanche, je ne peux t'aider JoE car
1) je n'ai jamais constaté le problème utilisant cette commande sur de
petits documents 2) le code me dépasse complètement.


--
François Lafont

JoE

unread,
Sep 15, 2010, 1:53:29 PM9/15/10
to
On 15 sep, 19:22, Francois Lafont <francois.laf...@nospam.invalid>
wrote:

> Le 15/09/2010 17:03, JoE a écrit :
>
> > Encore merci à celui (s'il se reconnait) qui l'avait écrite, elle est
> > géniale !
>
> Cette commande, c'est François Pétiard qui l'avait écrite et j'en
> profite aussi pour le remercier au passage, car c'est sur un de mes
> posts ici même qu'il m'avais donné une réponse clé en main pour ainsi dire.
>
> http://groups.google.fr/group/fr.comp.text.tex/browse_thread/thread/6...

>
> Cette commande m'a bien servi. En revanche, je ne peux t'aider JoE car
> 1) je n'ai jamais constaté le problème utilisant cette commande sur de
> petits documents 2) le code me dépasse complètement.
>
> --
> François Lafont

Merci pour le lien ... Dès que possible, je posterai une réponse dans
le fil indiqué, j'ai plus de chances de tomber sur l'auteur là-bas
qu'ici ^^

Pétiard François

unread,
Sep 15, 2010, 2:52:08 PM9/15/10
to
Le 15/09/2010 17:03, JoE a écrit :
> Bonjour,
>
> J'étais tombé, il y a quelques temps déjà, sur une macro qui
> permettait de faire très simplement des textes à trou : \trou{blabla}
> met des pointillés à la place de blabla, dans une largeur correcte,
> qui va éventuellement à la ligne et qui est indépendant du mode
> (texte, math dans le texte, math hors-texte).
>
> Voici cette commande :
>

<couic>


>
> Encore merci à celui (s'il se reconnait) qui l'avait écrite, elle est
> géniale ! Je me suis juste permis de changer un petit truc : mettre en
> Large et en bleu pour la version "non-trouée"... En bleu pour que ça
> se voie bien, en Large pour que le texte "non-troué" soit de même
> taille que le texte troué.
>
> Cette commande est vraiment géniale, mais il reste un petit couac :
> dans certains cas (il me semble que c'est lors du mode math hors
> texte...), il y a une différence de hauteur entre le texte troué et le
> texte non troué... Pour de petits documents, c'est pas un soucis, mais
> lorsque le document grandit, ça peut vite devenir embêtant : la
> "version prof" et la "version élève" sont 2 versions différentes, le
> texte se décale au fur et à mesure... "Voyez à la page 50... Ah...
> Non, chez vous c'est la page 44" ...
>
> J'ai entamé la compréhension du code ... Pas évident, mais le problème
> vient sans doute du \baselineskip... Je pense qu'il faut mettre la
> hauteur de la boite \toto à la place :
>
> \hbox{\Large\rule{0pt}{\ht\toto}\usebox{\tata}}%
>
> j'ai essayé mais ça marche pas :-(
>
> D'avance, merci !


Si effectivement le problème est en mode math hors-texte, alors ce n'est
pas le \baselineskip qui pose problème puisque là où il est placé, c'est
en mode non-mathématique.

Pourriez-vous poster un ECM qui montre le problème ?

François


--
Quand j'imagine un "morceau" à envoyer dans le formulaire, je suppose
que l'auteur (c.-à-d. moi dans ce cas) est assez intelligent (mais
là-dessus vous me faites douter :-) ) pour ne pas faire n'importe quoi
et utilisera ses environnements amsmath de manière à ce que cela
fonctionne.
-+- Strange Fruit in fr.comp.text.tex -+-

JoE

unread,
Sep 15, 2010, 3:54:45 PM9/15/10
to
On 15 sep, 20:52, Pétiard François

Je ne comprends pas ... Je ne vois pas que le \baselineskip est en
mode math ou pas, il se situe dans la boucle qui permet de tracer les
pointillés, la boucle se situe après les tests sur mode math.
D'après ce que je comprends de votre code, on crée une boite (qui
contient quelque chose de différent selon qu'on soit en mode texte,
mode math dans texte ou mode math hors texte), et on se sert de la
largeur de cette boite pour créer la bonne largeur de pointillés (via
la boucle)... Ai-je bien compris ?
Si oui, c'est ce qui m'avait "motivé" à tester comme hauteur de la
"boite de pointillés" : \ht\toto ... mais ça ne marche pas non
plus ... :-(

Voici un ECM qui montre la chose ... C'est pas flagrant, mais on peut
voir, si on trace une ligne horizontale au niveau du \ldots qu'il
n'est pas tout à fait au même endroit :

%
*****************************************************************************************
\documentclass[a4paper,12pt]{report}

\usepackage{multido}
\usepackage{ifthen}
\usepackage{color}
\usepackage{xcolor}

\usepackage[applemac]{inputenc}

\newcommand{\trouer}{a} %Le texte sera troué si ce paramètre est p

\newsavebox{\toto}
\newsavebox{\tata}
\newlength{\longpoint}
\savebox{\tata}{\hbox{\color{gray}.}}

\newcommand{\trou}[2][\trouer]{\leavevmode%
\ifthenelse{\equal{#1}{p}}{%
\ifmmode%si mathmode
\ifinner%si encapsulé, cad dans le texte
\savebox{\toto}{\Large$#2$}%
\else%pas encapsulé
\savebox{\toto}{\Large$\displaystyle#2$}%
\fi%
\else%pas mathmode
\savebox{\toto}{\Large#2}
\fi%
\setlength{\longpoint}{0pt}%
\whiledo{\longpoint<\wd\toto}%
{%
\hbox{\Large\rule{0pt}{\baselineskip}\usebox{\tata}}%
\penalty0\advance\longpoint%
by\wd\tata%
}%
}%Fin equals(p), fin de "troué"
{{\Large\color{blue}#2}}}

\begin{document}

\begin{minipage}{0.45\linewidth}
On remarque que le capital obtenu augmente avec le nombre de
capitalisations ! Le capital de 1euro placé pendant 1 an au taux
annuel 100\% avec $n$ capitalisations est donné par : \[C_n = \trou[a]
{1\cdot\left(1+\frac{1}{n}\right)^n}\]
Imaginer des capitalisations \emph{instantanées} revient à imaginer
qu'il y a une infinité de capitalisations\ldots Voyons ce qu'il se
passe lorsque le nombre de capitalisations $n$ tend vers l'infini :
\ldots
\end{minipage}
\hfill
\begin{minipage}{0.45\linewidth}
On remarque que le capital obtenu augmente avec le nombre de
capitalisations ! Le capital de 1euro placé pendant 1 an au taux
annuel 100\% avec $n$ capitalisations est donné par : \[C_n = \trou[p]
{1\cdot\left(1+\frac{1}{n}\right)^n}\]
Imaginer des capitalisations \emph{instantanées} revient à imaginer
qu'il y a une infinité de capitalisations\ldots Voyons ce qu'il se
passe lorsque le nombre de capitalisations $n$ tend vers l'infini :
\ldots
\end{minipage}

\end{document}
%
*****************************************************************************************

Bon, j'avoue que c'est pas flagrant, mais sur tout mon chapitre, j'ai
par exemple, un titre qui apparait en bas de la page 13 dans un doc
(le doc prof) et en haut de la page 14 dans l'autre doc (élève), ça
devient gênant...

Un grand merci, en tous cas !

PS : j'ai peut-être pas choisi le meilleur ECM... Je pense que les
endroits qui posent le plus de problème sont quand je fais quelque
chose qui peut paraitre bizarre :

%
*****************************************************************************************
\[
\begin{aligned}
f'(0) = & \lim_{h\to 0}\frac{\trou{f(0+h)-f(0)}}{\trou{h}}\\
= & \lim_{h\to 0}\frac{\trou{e^{0+h}-e^0}}{\trou{h}}\\
= & \lim_{h\to 0}\frac{\trou{e^h-1}}{\trou{h}}\\
1 = & \lim_{h\to 0}\frac{\trou{e^h-1}}{\trou{h}}\\
\end{aligned}
\]
%
*****************************************************************************************
Je trouve ça assez joli de laisser la barre de fraction dans le texte
à compléter ;-)

Sinon, 2 autres images pour comparer :

http://www.imageshotel.org/images/johaneloi/eleve.jpg

http://www.imageshotel.org/images/johaneloi/prof.jpg

Pétiard François

unread,
Sep 16, 2010, 2:48:53 AM9/16/10
to
Le 15/09/2010 21:54, JoE a écrit :
> Je ne comprends pas ... Je ne vois pas que le \baselineskip est en
> mode math ou pas, il se situe dans la boucle qui permet de tracer les
> pointillés, la boucle se situe après les tests sur mode math.
> D'après ce que je comprends de votre code, on crée une boite (qui
> contient quelque chose de différent selon qu'on soit en mode texte,
> mode math dans texte ou mode math hors texte), et on se sert de la
> largeur de cette boite pour créer la bonne largeur de pointillés (via
> la boucle)... Ai-je bien compris ?
> Si oui, c'est ce qui m'avait "motivé" à tester comme hauteur de la
> "boite de pointillés" : \ht\toto ... mais ça ne marche pas non
> plus ... :-(
>

Heu, j'ai dit une grosse bêtise... :-(

Voilà quelque chose qui devrait convenir.
Attention, j'ai un peu changé la syntaxe : il n'y a plus de paramètre
optionnel ; il faut taper \trou{quelque chose} si on veut les pointillés
et \trou*{quelque chose} si on veut le texte.

François

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,12pt]{report}

\usepackage{multido}
\usepackage{ifthen}
\usepackage{color}
\usepackage{xcolor}

\usepackage{calc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[autolanguage]{numprint}
\usepackage{microtype}
\usepackage{lipsum}

\usepackage[applemac]{inputenc}

\newsavebox{\toto}
\newsavebox{\tata}
\newlength{\longpoint}
\savebox{\tata}{\hbox{\color{gray}.}}

\makeatletter
\newcommand{\trou}{%
\@ifstar{\@nontrou}{\@trou}}
\newcommand{\@trou}[1]{\leavevmode%


\ifmmode%si mathmode
\ifinner%si encapsulé, cad dans le texte

\savebox{\toto}{\Large$#1$}%
\else%pas encapsulé
\savebox{\toto}{\Large$\displaystyle#1$}%
\fi%
\else%pas mathmode
\savebox{\toto}{\Large#1}%


\fi%
\setlength{\longpoint}{0pt}%
\whiledo{\longpoint<\wd\toto}%
{%

\hbox{\rule[-\dp\toto]{0pt}{\ht\toto+\dp\toto}\Large\usebox{\tata}}%


\penalty0\advance\longpoint%
by\wd\tata%
}%

}%fin de "troué"
\newcommand{\@nontrou}[1]{%
\ifmmode%
\ifinner%
\hbox{\Large\color{blue}$#1$}%
\else%
\hbox{\Large\color{blue}$\displaystyle#1$}%
\fi%
\else%
{\Large\color{blue}#1}%
\fi}
\makeatother
\begin{document}

\fbox{\begin{minipage}{0.45\linewidth}


On remarque que le capital obtenu augmente avec le nombre de
capitalisations ! Le capital de 1euro placé pendant 1 an au taux
annuel 100\% avec $n$ capitalisations est donné par :

\[C_n =\trou*{1\cdot\left(1+\frac{1}{n}\right)^n}\]


Imaginer des capitalisations \emph{instantanées} revient à imaginer
qu'il y a une infinité de capitalisations\ldots Voyons ce qu'il se
passe lorsque le nombre de capitalisations $n$ tend vers l'infini :
\ldots

\end{minipage}}
\hfill
\fbox{\begin{minipage}{0.45\linewidth}


On remarque que le capital obtenu augmente avec le nombre de
capitalisations ! Le capital de 1euro placé pendant 1 an au taux
annuel 100\% avec $n$ capitalisations est donné par :

\[C_n = \trou{1\cdot\left(1+\frac{1}{n}\right)^n}\]


Imaginer des capitalisations \emph{instantanées} revient à imaginer
qu'il y a une infinité de capitalisations\ldots Voyons ce qu'il se
passe lorsque le nombre de capitalisations $n$ tend vers l'infini :
\ldots

\end{minipage}}

\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

--
<mpg> C'est à ce genre de détails qu'on voit que Knuth est plus sympa
que Dieu (l'autre, je veux dire).
<Prof Méphisto> Pourquoi ? Je trouve pourtant que Jean-Côme est
sympa...
-+- in fr.comp.text.tex -+-

JoE

unread,
Sep 16, 2010, 2:52:13 PM9/16/10
to
Bonsoir !

D'abord, un grand merci de cette réponse rapide et performante pour le
problème posé!

Par contre, je ne suis pas très fan de la version étoilée, je préfère
largement définir un paramètre valable pour tout le document, ça me
permet de facilement passer du document "prof" au document "élève" ! Y
a-t-il une raison "technique" de passer à cette façon de faire plutôt
que de garder la variable \trouer ? (tant que j'y suis dans le
"technique", et si vous avez le temps : à quoi servent les commandes
\makeatletter et sa cousine \makeatother et pourquoi utiliser le
symbole @ dans les noms des commandes ? --- j'imagine que les 2
questions sont liées...--- )

J'ai néanmoins encore un problème, après avoir fait quelques tests, on
voit que ça continue de prendre plus de place ... Pas que en mode
texte, d'ailleurs ... Il semblerait, comme on peut le voir sur
l'exemple qui suit, qu'il y a dans la version non trouée, un espace
avant la boite...
Je suis incapable de faire tout ça, mais j'aimerai que cette commande
permette d'avoir exactement la même taille (aussi bien en largeur de
texte qu'en hauteur de texte) dans les 2 versions : profs et élève...
Une commande à laquelle je pense est la commande \phantom, qu'il
suffirait de souligner ... Le problème est pour les passage à la
lignes, pour les mode math, ... Enfin, bref ... Encore merci !

Voici l'exemple dont je parlais (j'ai remplacé \hbox par \fbox, on
voit "mieux" ce qui se passe...)


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,12pt]{report}

\usepackage{multido}
\usepackage{ifthen}
\usepackage{color}
\usepackage{xcolor}
\usepackage{calc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[autolanguage]{numprint}
\usepackage{microtype}
\usepackage{lipsum}
\usepackage[applemac]{inputenc}

\usepackage[hmargin=2cm]{geometry}

         \fbox{\Large\color{blue}$#1$}%
     \else%
         \fbox{\Large\color{blue}$\displaystyle#1$}%


     \fi%
\else%
     {\Large\color{blue}#1}%
\fi}
\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\fbox{
\begin{minipage}[t]{0.45\linewidth}


On remarque que le capital obtenu augmente avec le nombre de
capitalisations ! Le capital de 1euro placé pendant 1 an au taux
annuel 100\% avec $n$ capitalisations est donné par : \[C_n =
\trou*{1\cdot\left(1+\frac{1}{n}\right)^n}\]
Imaginer des capitalisations \emph{instantanées} revient à imaginer
qu'il y a une infinité de capitalisations\ldots Voyons ce qu'il se
passe lorsque le nombre de capitalisations $n$ tend vers l'infini :
\ldots

L'équation $\trou*{ax^2+bx+c=0}$ se résout par $\trou*{\Delta=b^2-4ac}
$ et puis $\trou*{\frac{-b\pm\sqrt{\Delta}}{2a}}$

Blablabla \trou*{mot mot mot mot mot mot mot mot mot mot mot mot mot
mot mot mot mot mot mot mot mot mot mot mot mot} blablabla blablabla
blablabla blablabla

\end{minipage}
}
\hfill
\fbox{
\begin{minipage}[t]{0.45\linewidth}


On remarque que le capital obtenu augmente avec le nombre de
capitalisations ! Le capital de 1euro placé pendant 1 an au taux
annuel 100\% avec $n$ capitalisations est donné par : \[C_n =
\trou{1\cdot\left(1+\frac{1}{n}\right)^n}\]
Imaginer des capitalisations \emph{instantanées} revient à imaginer
qu'il y a une infinité de capitalisations\ldots Voyons ce qu'il se
passe lorsque le nombre de capitalisations $n$ tend vers l'infini :
\ldots


L'équation $\trou{ax^2+bx+c=0}$ se résout par $\trou{\Delta=b^2-4ac}$
et puis $\trou{\frac{-b\pm\sqrt{\Delta}}{2a}}$

Blablabla \trou{mot mot mot mot mot mot mot mot mot mot mot mot mot
mot mot mot mot mot mot mot mot mot mot mot mot} blablabla blablabla
blablabla blablabla

\end{minipage}
}

\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Pétiard François

unread,
Sep 16, 2010, 3:36:32 PM9/16/10
to
Le 16/09/2010 20:52, JoE a écrit :
> Bonsoir !
>
> D'abord, un grand merci de cette réponse rapide et performante pour le
> problème posé!
>
> Par contre, je ne suis pas très fan de la version étoilée, je préfère
> largement définir un paramètre valable pour tout le document, ça me
> permet de facilement passer du document "prof" au document "élève" ! Y
> a-t-il une raison "technique" de passer à cette façon de faire plutôt
> que de garder la variable \trouer ?

Non, pas de raison technique, c'était une autre proposition.
Dans l'exemple ci-dessous, c'est encore une autre façon de faire, avec
un booléen (ça se rapproche de la version avec le paramètre \trouer mais
ça me semble plus clair).

> (tant que j'y suis dans le
> "technique", et si vous avez le temps : à quoi servent les commandes
> \makeatletter et sa cousine \makeatother et pourquoi utiliser le
> symbole @ dans les noms des commandes ? --- j'imagine que les 2
> questions sont liées...--- )

En effet ; pour la version étoilée, on a besoin de tester si le
caractère suivant la commande est * ou non. Pour ceci, latex fournit la
commande \@ifstar qui n'est a priori pas accessible directement (à cause
du \@) sauf à l'encadrer par les commandes \makeatletter et \makeatother.

> J'ai néanmoins encore un problème, après avoir fait quelques tests, on
> voit que ça continue de prendre plus de place ... Pas que en mode
> texte, d'ailleurs ... Il semblerait, comme on peut le voir sur
> l'exemple qui suit, qu'il y a dans la version non trouée, un espace
> avant la boite...
> Je suis incapable de faire tout ça, mais j'aimerai que cette commande
> permette d'avoir exactement la même taille (aussi bien en largeur de
> texte qu'en hauteur de texte) dans les 2 versions : profs et élève...
> Une commande à laquelle je pense est la commande \phantom, qu'il
> suffirait de souligner ... Le problème est pour les passage à la
> lignes, pour les mode math, ... Enfin, bref ... Encore merci !
>
> Voici l'exemple dont je parlais (j'ai remplacé \hbox par \fbox, on
> voit "mieux" ce qui se passe...)
>

Là, je ne peux plus rien faire ; cela vient du mode de composition de
LaTeX : dans la version non trouée, il va composer tout le paragraphe
puis ensuite couper les lignes où il pense que c'est le mieux en
espaçant éventuellement les mots dans des limites acceptables pour lui.
Donc il va composer tout le paragraphe commençant par :
L'équation {\Large\color{blue}$ax^2+bx+c=0$} et se terminant par
l'expression des solutions.

Alors que dans la version trouée, il va composer le paragraphe
commençant par :
L'équation {\Large\color{gray}.......} et se terminant par ....

Donc les coupures de lignes ne se font pas nécessairement au même endroit.

François

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,12pt]{report}
\usepackage{multido}
\usepackage{ifthen}
\usepackage{color}
\usepackage{xcolor}
\usepackage{calc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[autolanguage]{numprint}
\usepackage{microtype}

\usepackage[hmargin=2cm]{geometry}

\newsavebox{\toto}
\newsavebox{\tata}
\newlength{\longpoint}
\savebox{\tata}{\hbox{\color{gray}.}}

\newif\iftrouer
\trouerfalse

\newcommand{\trou}[1]{\leavevmode%


\ifmmode%si mathmode
\ifinner%si encapsulé, cad dans le texte
\savebox{\toto}{\Large$#1$}%
\else%pas encapsulé
\savebox{\toto}{\Large$\displaystyle#1$}%
\fi%
\else%pas mathmode
\savebox{\toto}{\Large#1}%
\fi%

\iftrouer%


\setlength{\longpoint}{0pt}%
\whiledo{\longpoint<\wd\toto}%
{%

\hbox{\rule[-\dp\toto]{0pt}{\ht\toto+\dp\toto}\Large\usebox{\tata}}%
\penalty0\advance\longpoint%
by\wd\tata%

}%fin de "troué"
\else%
\ifmmode%
\ifinner%
\hbox{\Large\color{blue}$#1$}%
\else%
\hbox{\Large\color{blue}$\displaystyle#1$}%


\fi%
\else%
{\Large\color{blue}#1}%

\fi%
\fi}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\fbox{
\begin{minipage}[t]{0.45\linewidth}
On remarque que le capital obtenu augmente avec le nombre de
capitalisations ! Le capital de 1euro placé pendant 1 an au taux
annuel 100\% avec $n$ capitalisations est donné par : \[C_n =

\trou{1\cdot\left(1+\frac{1}{n}\right)^n}\]
Imaginer des capitalisations \emph{instantanées} revient à imaginer
qu'il y a une infinité de capitalisations\ldots Voyons ce qu'il se
passe lorsque le nombre de capitalisations $n$ tend vers l'infini :
\ldots

L'équation $\trou{ax^2+bx+c=0}$ se résout par
$\trou{\Delta=b^2-4ac}$ et puis $\trou{\frac{-b\pm\sqrt{\Delta}}{2a}}$

Blablabla \trou{mot mot mot mot mot mot mot mot mot mot mot mot mot
mot mot mot mot mot mot mot mot mot mot mot mot} blablabla blablabla
blablabla blablabla

\end{minipage}
}
\hfill
\trouertrue


\fbox{
\begin{minipage}[t]{0.45\linewidth}
On remarque que le capital obtenu augmente avec le nombre de
capitalisations ! Le capital de 1euro placé pendant 1 an au taux
annuel 100\% avec $n$ capitalisations est donné par : \[C_n =
\trou{1\cdot\left(1+\frac{1}{n}\right)^n}\]
Imaginer des capitalisations \emph{instantanées} revient à imaginer
qu'il y a une infinité de capitalisations\ldots Voyons ce qu'il se
passe lorsque le nombre de capitalisations $n$ tend vers l'infini :
\ldots


L'équation $\trou{ax^2+bx+c=0}$ se résout par $\trou{\Delta=b^2-4ac}$
et puis $\trou{\frac{-b\pm\sqrt{\Delta}}{2a}}$

Blablabla \trou{mot mot mot mot mot mot mot mot mot mot mot mot mot
mot mot mot mot mot mot mot mot mot mot mot mot} blablabla blablabla
blablabla blablabla

\end{minipage}
}

\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

--
Ouais, alors notamment j'ai eu beaucoup de mal à comprendre les \if et
à mettre les bons tests (de non-vacuité par exemple) où il fallait
(j'ai essayé de refaire le truc moi-même). Je pense qu'en me
concentrant assez fort je comprends maintenant, mais ces trucs de
double récursion avec des macros à arguments délimités est quand même
bien savonneux.
-+- mpg in fr.comp.text.tex -+-

JoE

unread,
Sep 16, 2010, 4:16:08 PM9/16/10
to
Votre nouveau code ne compile malheureusement pas ... :-(

Voici la fin du log de la compilation :

Underfull \hbox (badness 10000) in paragraph at lines 74--74
[]\T1/cmr/m/n/12 L'?quation $[][]$ se

Underfull \hbox (badness 3179) in paragraph at lines 74--74
\T1/cmr/m/n/12 r?-sout par $[][]$ et puis
! Missing $ inserted.
<inserted text>
$
l.96 }

Sinon, je comprends ce que vous dites au sujet du dernier problème
dont je parlais tantôt, lié au mode de composition de Latex... Que
pensez-vous de mon idée (de novice, je le concède ;-) ) d'utiliser la
commande \phantom soulignée ? Ou alors une autre macro
\phantomAmelioree qui gèrerait correctement les retour à la ligne
etc... ? ? ?

Encore merci pour tout ce temps passé !

Johan

Pétiard François

unread,
Sep 16, 2010, 4:31:44 PM9/16/10
to
Le 16/09/2010 22:16, JoE a écrit :
> Votre nouveau code ne compile malheureusement pas ... :-(
>
> Voici la fin du log de la compilation :
>
> Underfull \hbox (badness 10000) in paragraph at lines 74--74
> []\T1/cmr/m/n/12 L'?quation $[][]$ se
>
> Underfull \hbox (badness 3179) in paragraph at lines 74--74
> \T1/cmr/m/n/12 r?-sout par $[][]$ et puis
> ! Missing $ inserted.
> <inserted text>
> $
> l.96 }
>
>

Cela vient du fait qu'il y a une ligne vide qui s'est créée lors du
copier-coller entre

{%

et \hbox{\rule[-\dp\toto]...


> Sinon, je comprends ce que vous dites au sujet du dernier problème
> dont je parlais tantôt, lié au mode de composition de Latex... Que
> pensez-vous de mon idée (de novice, je le concède ;-) ) d'utiliser la
> commande \phantom soulignée ?

Le problème (que vous soulevez d'ailleurs juste après) est que \phantom
met tout dans une seule boîte horizontale, donc pas de coupures de lignes...

> Ou alors une autre macro
> \phantomAmelioree qui gèrerait correctement les retour à la ligne
> etc... ? ? ?

Certes, mais c'est bien là le problème... Je ne connais pas une telle
commande. Si un gourou passe par ici...

François

--
Je pense qu'Arnaud va pouvoir passer sa dernière dan de LaTeX, encore
un peu il deviendra Gourou.
-+- Olivier R. in fr.comp.text.tex -+-

Alain Ketterlin

unread,
Sep 16, 2010, 5:01:58 PM9/16/10
to
Pétiard François <petiard.point.francois@_at_free.point.fr> writes:

>> Ou alors une autre macro
>> \phantomAmelioree qui gèrerait correctement les retour à la ligne
>> etc... ? ? ?
>
> Certes, mais c'est bien là le problème... Je ne connais pas une telle
> commande.

Il y a des choses dans soul.sty, mais bien sûr avec des limitations.

Je pense qu'il n'y a pas de solution complète à cette question. La vraie
solution serait que le moteur place les caractères sans les dessiner. Ca
n'existe pas je crois. L'autre solution serait de créer pour chaque
fonte une fausse fonte avec les mêmes métriques mais qui ne dessine
rien. Un boulot de fou, impossible à maintenir. On peut aussi écrire en
blanc, mais ça n'empêche pas de copier-coller...

(Outre le problème de composition que décrivait François, il me semble
qu'il y avait aussi une \fbox dans un case et pas dans l'autre, qui elle
aussi changeait la composition.)

-- Alain.

Francois Lafont

unread,
Sep 16, 2010, 5:32:22 PM9/16/10
to
Le 16/09/2010 23:01, Alain Ketterlin a écrit :

> Je pense qu'il n'y a pas de solution complète à cette question. La vraie
> solution serait que le moteur place les caractères sans les dessiner.

Tous ces trucs sont bien trop techniques pour moi, mais pour mettre des
caractères sans les dessiner on peut faire un truc du genre :

blabla {\color{white} ça c'est le trou} blabla blabla.

Mais le problème c'est qu'on a plus de pointillés.


--
François Lafont

Francois Lafont

unread,
Sep 16, 2010, 5:37:33 PM9/16/10
to
Le 16/09/2010 23:01, Alain Ketterlin a écrit :

> On peut aussi écrire en
> blanc, mais ça n'empêche pas de copier-coller...

Ah, désolé pour mon message précédent, je n'avais pas lu tout le message
d'Alain. (je referai plus :-))

À mon avis, le problème du copier-coller n'est pas trop grave car, si
j'ai bien compris la situation de JoE, les documents sont en format papier.


--
François Lafont

JoE

unread,
Sep 17, 2010, 1:15:45 AM9/17/10
to
Pétiard François :

>> Ou alors une autre macro
>> \phantomAmelioree qui gèrerait correctement les retour à la ligne
>> etc... ? ? ?

> Certes, mais c'est bien là le problème... Je ne connais pas une telle

> commande. Si un gourou passe par ici...

Bah ... Vous n'êtes pas loin d'être un gourou, hein ! ;-)


Alain Ketterlin :


> Je pense qu'il n'y a pas de solution complète à cette question.

:-( ... Il me semblait que nous n'en étions pourtant pas très
loin . . .

> La vraie solution serait que le moteur place les caractères sans les dessiner. Ca
n'existe pas je crois.

Re :-( . . . Personne pour créer cette macro magique ? Un
gourou ? ;-)


> On peut aussi écrire en blanc, mais ça n'empêche pas de copier-coller...

Pas de problème pour moi, c'est le document "papier" que je veux
donner à mes élèves ...

> (Outre le problème de composition que décrivait François, il me semble qu'il y avait
> aussi une \fbox dans un case et pas dans l'autre, qui elle aussi changeait la composition.)

Dans la macro originale de François, c'est une \hbox... J'ai mis \fbox
pour mieux voir comment les blocs sont gérés (voir à quels endroits la
place était perdue par rapport à l'autre doc...)

Au final ... Mmmhhhh ... Si je comprends bien, il "suffirait" d'écrire
en blanc et de souligner par des pointillés ces caractères blancs...
Est-ce possible ? ? ?

Encore bien merci à tous ! ! !

Johan

JoE

unread,
Sep 17, 2010, 1:31:39 AM9/17/10
to
Une idée ... (mais ... je n'ai aucune idée de comment la réaliser ...
est-elle seulement réalisable ? ? ?)

Faire une "boite" (avec penalty0, qui gère les retour à la ligne...)
dans laquelle on mettrait :
- pour le document troué : le texte en \Large blanc souligné par des
pointillés en gris
- pour le doc non troué : le texte en \Large bleu souligné par des
pointillés en blanc

Les 2 "boites" (je mets boite entre guillemets, parce que je ne suis
pas sur que le vocabulaire convienne ici...) seraient identiques, mis
à part la couleur... Plus de problème !

Maintenant ... Est-ce faisable ? ? ? :-/ Comment ? ? ? :-\

zappathustra

unread,
Sep 17, 2010, 2:06:48 AM9/17/10
to

Pas une mauvaise idée.
Sinon, il reste la solution d'avenir: LuaTeX. On remplace le texte
_après_ que le paragraphe a été construit.

Paul

Alain Ketterlin

unread,
Sep 17, 2010, 3:58:10 AM9/17/10
to
JoE <johan...@gmail.com> writes:

>> Je pense qu'il n'y a pas de solution complète à cette question.
> :-( ... Il me semblait que nous n'en étions pourtant pas très
> loin . . .

La solution de François est parfaitement adaptée au problème qu'elle
résout (laisser un espace de taille à peu près équivalente à un certain
texte).

Ton problème est différent : tu veux deux modalités d'affichage
distinctes pour le même fragment de texte. Dans les deux cas, le dit
fragment doit être composé (ce que ne fait pas la version avec les
points) afin d'obtenir un placement identique.

>> La vraie solution serait que le moteur place les caractères sans les
>> dessiner. Ca n'existe pas je crois.

> Re :-( . . . Personne pour créer cette macro magique ? Un
> gourou ? ;-)

Quand je parle du "moteur" c'est précisément pour insister sur le fait
qu'on ne peut pas le faire avec une macro... en tout cas personne n'y
est jamais parvenu, et c'est lié au fonctionnement "intime" de TeX.

>> On peut aussi écrire en blanc, mais ça n'empêche pas de copier-coller...
> Pas de problème pour moi, c'est le document "papier" que je veux
> donner à mes élèves ...

(voir plus bas)

>> (Outre le problème de composition que décrivait François, il me
>> semble qu'il y avait aussi une \fbox dans un case et pas dans
>> l'autre, qui elle aussi changeait la composition.)

> Dans la macro originale de François, c'est une \hbox... J'ai mis \fbox
> pour mieux voir comment les blocs sont gérés (voir à quels endroits la
> place était perdue par rapport à l'autre doc...)

Attention : \fbox{...} prend de la place en soi. Elle ajoute des espaces
autour du texte (\fboxsep), et un filet qui lui aussi prend de l'espace
(\fboxrule).

> Au final ... Mmmhhhh ... Si je comprends bien, il "suffirait" d'écrire
> en blanc et de souligner par des pointillés ces caractères blancs...
> Est-ce possible ? ? ?

\usepackage{soul}

ensuite \ul{...} pour souligner (mais pas en pointillé), et \color ou
\textcolor pour la couleur. Mais soul.sty a des restrictions (la doc est
assez détaillée à ce sujet), souvent rédhibitoires. Perso, je ne suis
jamais arrivé à l'utiliser de manière satisfaisante.

-- Alain.

JoE

unread,
Sep 17, 2010, 4:35:44 PM9/17/10
to
Je continue de chercher, évidemment dans la voie de la commande de
François...

J'ai pensé à un truc : d'après ce que je lis, on ne sait pas manipuler
le moteur Tex pour l'endroit des passages à la ligne... Il me semble
que c'est ça qui pose problème dans mon dernier exemple... Surtout
lorsque nous sommes en mathmode...

Je me suis dit : "pourquoi ne pas enlever le \penalty0 ?" ... Je n'y
connais pas grand chose, mais il m'a semblé que c'est ça qui permet le
passage à la ligne des pointillés... Or, dans une équation, la plupart
du temps, il ne la coupe pas trop...

J'ai donc modifié un peu la commande : les pointillés n'ont pas le
même comportement si on est en mode math ou en mode texte :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,12pt]{report}
\usepackage{multido}
\usepackage{ifthen}
\usepackage{color}
\usepackage{xcolor}
\usepackage{calc}

\usepackage[applemac]{inputenc}

\usepackage[french]{babel}
\usepackage[autolanguage]{numprint}
\usepackage{microtype}
\usepackage[hmargin=2cm]{geometry}

\newcommand{\cotan}{\mathrm{cotan}} % cotangente

\newsavebox{\toto}
\newsavebox{\tata}
\newlength{\longpoint}
\savebox{\tata}{\hbox{\color{gray}.}}
\newif\iftrouer
\trouerfalse

\newcommand{\trou}[1]{\leavevmode%
\ifmmode%si mathmode
\ifinner%si encapsulé, cad dans le texte
\savebox{\toto}{\Large$#1$}%
\else%pas encapsulé
\savebox{\toto}{\Large$\displaystyle#1$}%
\fi%
\else%pas mathmode
\savebox{\toto}{\Large#1}%
\fi%
\iftrouer%
\setlength{\longpoint}{0pt}%

\ifmmode%


\whiledo{\longpoint<\wd\toto}%
{%
\hbox{\rule[-\dp\toto]{0pt}{\ht\toto+\dp\toto}\Large\usebox{\tata}}%

\advance\longpoint%
by\wd\tata%

}%fin mathmode
\else%


\whiledo{\longpoint<\wd\toto}%
{%
\hbox{\rule[-\dp\toto]{0pt}{\ht\toto+\dp\toto}\Large\usebox{\tata}}%
\penalty0\advance\longpoint%
by\wd\tata%

}%fin non math mode
\fi %fin de "troué"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%

\begin{document}

Ca marche (un peu) mieux... Il me reste, sur cet exemple, un truc
inattendu que je vous laisse découvrir...

Merci !

JoE

unread,
Sep 19, 2010, 4:03:09 AM9/19/10
to
Que pensez-vous de cette idée ? ? ?
Il reste juste le \emph{petit} problème observé en fin d'exemple... Et
ça, si j'ai bien compris, c'est du à la manière dont fonctionne le
moteur de composition... Toujours est-il que ce problème n'en est pas
un vrai pour moi ... A priori, les textes à trou sont juste pour des
mots uniques ou alors 3-4 mots max... J'ai une autre macro qui me
permet de faire des pointillés sur n lignes (là, par contre, la
version "prof" est la même que celle de l'élève... Faudra que je
cogite pour améliorer ça ;-) )

Bref ... Il y a de moins en moins de problèmes ... Et ... C'est sans
doute contre la philosophie Latex, mais s'il ne reste que très peu de
problème, je peux toujours corriger le tir manuellement...

N'hésitez pas à me donner vos avis ... Merci ;-)

Christophe Jorssen

unread,
Sep 19, 2010, 7:38:47 AM9/19/10
to
On Thu, 16 Sep 2010 23:06:48 -0700, zappathustra wrote:

> Sinon, il reste la solution d'avenir: LuaTeX. On remplace le texte
> _après_ que le paragraphe a été construit.

Bonjour,

Ça c'est une idée très intéressante. Aurais-tu un exemple ?

Sinon, cette question de poly à trous, je l'ai déjà posée et je n'ai
toujours pas résolu un problème d'esthétique. Il arrive qu'une toute
petite portion du texte troué se situe en début de ligne. Quand on
remplace le texte par des pointillés, il n'est donc pas rare d'avoir
0,25cm de pointillés en début de ligne, ce qui est moche. Est-ce que
LuaTeX permettrait de ne pas avoir ça ?

Par exemple

Texte formaté par TeX sans
trou. Blabla blabla

Texte ....................
..... Blabla blabla


Merci

--
Christophe

zappathustra

unread,
Sep 19, 2010, 11:49:50 AM9/19/10
to
On 19 sep, 13:38, Christophe Jorssen

<christophe.jors...@libre.fr.invalid> wrote:
> On Thu, 16 Sep 2010 23:06:48 -0700, zappathustra wrote:
> > Sinon, il reste la solution d'avenir: LuaTeX. On remplace le texte
> > _après_ que le paragraphe a été construit.
>
> Bonjour,
>
> Ça c'est une idée très intéressante. Aurais-tu un exemple ?

Il faut marquer le texte à trouer avec un attribut; ensuite, dans le
"post_linebreak_filter", on analyse chaque ligne, et on remplace
chaque séquence de glyphes/glues/kerns marqués par ledit attribute par
un leader de la même taille. Ce n'est pas très compliqué (j'utilise
quelque chose de semblable pour souligner), mais malheureusement là je
n'ai pas le temps de proposer un code. [Pas le courage, non plus, faut
bien dire, hein, ça demande pas non plus que deux lignes de code.]

> Sinon, cette question de poly à trous, je l'ai déjà posée et je n'ai
> toujours pas résolu un problème d'esthétique. Il arrive qu'une toute
> petite portion du texte troué se situe en début de ligne. Quand on
> remplace le texte par des pointillés, il n'est donc pas rare d'avoir
> 0,25cm de pointillés en début de ligne, ce qui est moche. Est-ce que
> LuaTeX permettrait de ne pas avoir ça ?
>
> Par exemple
>
> Texte formaté par TeX sans
> trou. Blabla blabla
>
> Texte ....................
> ..... Blabla blabla

Ça devrait être faisable; dans le code envisagé précédemment, il
suffit de rajouter un conditionnel: si on est en début de ligne, et
que le leader a une taille inférieure à une certaine constante, on ne
le met pas, et on "remet la ligne en boîte" en étirant les espaces
pour combler le vide. Au delà d'une certaine taille, la ligne risque
d'être moche, par contre. Dans ton exemple, ça donnerait quelque chose
comme:

Texte ....................
Blabla blabla

où le blanc central est un espace intermot, pas un trou.

Paul

JoE

unread,
Sep 19, 2010, 3:20:02 PM9/19/10
to
C'est vrai qu'il y a aussi un problème esthétique dans l'affaire ...
Perso, je me contenterai d'une macro qui produise la même taille de
texte, que ce soit le texte "prof" ou le texte "troué" (comblé par des
pointillés, dans ce cas là...)

Pfiou ... C'est compliqué tout ça :-/ ... Glyphes, glues, kern,
leader de même taille ... Je comprends rien :-\ ... Mais je vous
fait confiance! ;-)

Christophe Jorssen

unread,
Sep 19, 2010, 5:25:38 PM9/19/10
to
On Sun, 19 Sep 2010 08:49:50 -0700, zappathustra wrote:


>> Sinon, cette question de poly à trous, je l'ai déjà posée et je n'ai
>> toujours pas résolu un problème d'esthétique. Il arrive qu'une toute
>> petite portion du texte troué se situe en début de ligne. Quand on
>> remplace le texte par des pointillés, il n'est donc pas rare d'avoir
>> 0,25cm de pointillés en début de ligne, ce qui est moche. Est-ce que
>> LuaTeX permettrait de ne pas avoir ça ?
>>
>> Par exemple
>>
>> Texte formaté par TeX sans
>> trou. Blabla blabla
>>
>> Texte ....................
>> ..... Blabla blabla
>
> Ça devrait être faisable; dans le code envisagé précédemment, il suffit
> de rajouter un conditionnel: si on est en début de ligne, et que le
> leader a une taille inférieure à une certaine constante, on ne le met
> pas, et on "remet la ligne en boîte" en étirant les espaces pour combler
> le vide. Au delà d'une certaine taille, la ligne risque d'être moche,
> par contre. Dans ton exemple, ça donnerait quelque chose comme:
>
> Texte ....................
> Blabla blabla
>
> où le blanc central est un espace intermot, pas un trou.

Géniaaaaaaal. Alors tu vois, je ne suis pas pressé, alors si tu as le
temps un jour, je suis preneur du code de base pour faire fonctionner ça.

Cela dit, je croyais que TeX formattait un paragraphe entier à la fois et
pas une ligne. Donc, je ne comprends pas bien comment LuaTeX pourra s'y
prendre ?... (non, non, ce n'est pas une incitation à produire un code
minimal ;-) ).

--
Christophe

zappathustra

unread,
Sep 21, 2010, 10:15:02 AM9/21/10
to
On 19 sep, 23:25, Christophe Jorssen

Ça fait partie de la magie LuaTeX: on laisse TeX construire le
paragraphe (on peut aussi le faire soi-même, remarque, mais c'est une
autre affaire), et on le récupère, i.e. on récupère les lignes de
texte plus ce qui va au milieu (essentiellement des glues et des
penalties); ce que je propose travaille sur une ligne déjà faite: on
enlève les points (s'ils ne prennent pas assez d'espace) et on étire
les espaces de la ligne pour qu'elle comble le vide. C'est le principe
du callback: à certains moments-clés du traitement de TeX, on peut
insérer du code; ici le moment-clé c'est le "post_linebreak_filter",
dont "l'argument" est le paragraphe construit.

Paul

zappathustra

unread,
Sep 24, 2010, 5:52:34 AM9/24/10
to
On 19 sep, 23:25, Christophe Jorssen
<christophe.jors...@libre.fr.invalid> wrote:
> On Sun, 19 Sep 2010 08:49:50 -0700, zappathustra wrote:
> >> Sinon, cette question de poly à trous, je l'ai déjà posée et je n'ai
> >> toujours pas résolu un problème d'esthétique. Il arrive qu'une toute
> >> petite portion du texte troué se situe en début de ligne. Quand on
> >> remplace le texte par des pointillés, il n'est donc pas rare d'avoir
> >> 0,25cm de pointillés en début de ligne, ce qui est moche. Est-ce que
> >> LuaTeX permettrait de ne pas avoir ça ?
>
> >> Par exemple
>
> >> Texte formaté par TeX sans
> >> trou. Blabla blabla
>
> >> Texte ....................
> >> ..... Blabla blabla
>
> > Ça devrait être faisable; dans le code envisagé précédemment, il suffit
> > de rajouter un conditionnel: si on est en début de ligne, et que le
> > leader a une taille inférieure à une certaine constante, on ne le met
> > pas, et on "remet la ligne en boîte" en étirant les espaces pour combler
> > le vide. Au delà d'une certaine taille, la ligne risque d'être moche,
> > par contre. Dans ton exemple, ça donnerait quelque chose comme:
>
> > Texte ....................
> > Blabla          blabla
>
> > où le blanc central est un espace intermot, pas un trou.
>
> Géniaaaaaaal. Alors tu vois, je ne suis pas pressé, alors si tu as le
> temps un jour, je suis preneur du code de base pour faire fonctionner ça.

Si ça intéresse encore quelqu'un:

http://paulisambert.free.fr/tex/trous.tex
http://paulisambert.free.fr/tex/trous.pdf

Ce n'est pas très flexible, mais le principal y est.
Syntaxe:

\trouminimal<dimension> établit la taille minimale d'un trou à gauche
de la ligne [même si l'exemple dit "à droite", faut pas faire gaffe --
il faudrait faire à droite aussi, d'ailleurs], en deçà duquel le trou
est supprimé.
\trou<texte> remplace <texte> par des pointillés.

Le fichier source peut être compilé avec plain TeX, bien sûr sous
LuaTeX.

Paul

0 new messages