Remplacer du texte par des points, avec la même longueur

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Remplacer du texte par des points, avec la même longueur

Messagepar Romain Janvier » Lundi 30 Août 2010, 22:36

Bonjour,

Ca fait un moment que je cherche, mais je n'ai toujours pas trouvé comment faire.

Dans Beamer, j'aimerai bien pourvoir masquer les reponses de certaines questions, ou certains mots de vocabulaire, et les reveler au moment voulu. Pour cela il y a la commande \uncover qui marche très bien, puisque qu'elle reserve l'espace à l'avance.

Seulement voila, je n'aime pas ce grand blanc au milieu des phrases. Je prefererai les remplacer par des "..." de la bonne longueur. J'ai fait la commande suivante (il faut calc):

Code: Tout sélectionner
\newsavebox{\reponse}
\newlength{\repwidth}
\newcounter{previousslide}%
\newcommand\uncoverdot[2]{%
\setcounter{previousslide}{#1-1}%
\savebox{\reponse}{#2}%
\settowidth{\repwidth}{\usebox{\reponse}}%
\only<-\value{previousslide}>{\makebox[\repwidth]{\dotfill}}%
\only<#1->{#2}%
}


Cela marche bien tant que la reponse reste sur une seule ligne. Il suffit de taper \uncoverdot{4}{médiatrice} et "médiatrice" remplacera les points à partir du 4e transparent.
Mais si le texte est trop long ou en fin de ligne, cela ne marche pas puisque les ... vont tous à la ligne suivante.

Est-ce que vous auriez une autre solution?
Merci.
Romain Janvier
Kilo-utilisateur
 
Messages: 146
Inscription: Lundi 23 Août 2010, 13:57
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Remplacer du texte par des points, avec la meme longueur

Messagepar rebouxo » Mardi 31 Août 2010, 09:39

Moi non, mais il y a eu sur fctt une discussion sur ce sujet :

ceci

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6977
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Remplacer du texte par des points, avec la meme longueur

Messagepar Romain Janvier » Mardi 31 Août 2010, 11:48

Merci beaucoup.

C'est pas mal du tout. Il faut que je reprenne cela, parce que je ne veux pas qu'on voit le nombre de mots ou de lettres, mais comme je ne connais pas tex... Il va falloir que je m'y mette.
Romain Janvier
Kilo-utilisateur
 
Messages: 146
Inscription: Lundi 23 Août 2010, 13:57
Statut actuel: Actif et salarié | Enseignant

Re: Remplacer du texte par des points, avec la même longueur

Messagepar rebouxo » Mardi 31 Août 2010, 15:16

En faite il me semblait qu'il y avait eu une discussion plus récente sur le sujet. Mais je ne l'ai pas retrouvé.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6977
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Remplacer du texte par des points, avec la même longueur

Messagepar Romain Janvier » Mardi 31 Août 2010, 16:19

J'ai essayé de faire ma propre macro, en utilisant multido et en mettant autant de . que necessaire pour remplir l'espace nécessaire, mais j'ai des problemes de cesure...
Romain Janvier
Kilo-utilisateur
 
Messages: 146
Inscription: Lundi 23 Août 2010, 13:57
Statut actuel: Actif et salarié | Enseignant

Re: Remplacer du texte par des points, avec la même longueur

Messagepar fadila » Mercredi 01 Septembre 2010, 00:46

Bonjour
Est-ce que ceci peut t'aider ?
latex-f6/impossible-t2320.html
A bientot
fadila
Kilo-utilisateur
 
Messages: 213
Inscription: Samedi 12 Août 2006, 09:02
Localisation: Nantes

Re: Remplacer du texte par des points, avec la même longueur

Messagepar pg » Mercredi 01 Septembre 2010, 17:25

Javier Bezos vient de publier sur comp.text.tex un code qui permet de faire ce genre de choses de manière transparente, si on compile avec pdflatex (deux compilations sont nécessaires). Voici le code :

dots_mots_invisibles.png
dots_mots_invisibles.png (7.98 Kio) Vu 981 fois


Code: Tout sélectionner
%http://groups.google.fr/group/comp.text.tex/msg/2def75815e19ca68
\documentclass{article}

\usepackage[latin1]{inputenc}
\usepackage{xcolor}
\usepackage{soul}% utiliser soulutf8 avec \usepackage[utf8]{inputenc}

\makeatletter

\newcount\ulpos@poscnt
\newcount\ulpos@ulcnt

\def\ulpos@ulnum{\z@}

\def\ulpos@{ulpos@@\ulpos@ulnum-}

\def\ulsavepos#1#2#3#4{%
   \ifnum\ulpos@ulnum=#1 %
     \ifnum#4<\ulpos@ypos
       \count@\ulpos@xprev
       \advance\count@-\ulpos@xbase
       \expandafter\xdef\csname\ulpos@\ulpos@ulprev\endcsname{\the\count@}%
       \edef\ulpos@xbase{#3}%
       \edef\ulpos@ulprev{#2}%
     \fi
   \else
     \ifnum\ulpos@ulnum>\z@
       \count@\ulpos@xprev
       \advance\count@-\ulpos@xbase
       \expandafter\xdef\csname\ulpos@\ulpos@ulprev\endcsname{\the\count@}%
     \fi
     \def\ulpos@ulprev{#2}%
     \def\ulpos@ulnum{#1}%
     \def\ulpos@xbase{#3}%
   \fi
   \def\ulpos@xprev{#3}%
   \def\ulpos@ypos{#4}}

\AtEndDocument{%
   \global\advance\ulpos@ulcnt\@ne
   \protected@write\@auxout{}% Dummy. Forces calc of last ul.
       {\string\ulsavepos{\the\ulpos@ulcnt}{0}{0}{0}}%
    \def\ulsavepos#1#2#3#4{}}

\def\ulpos@stepput{\ulpos@step\ulpos@put}
\def\ulpos@step{\global\advance\ulpos@poscnt\@ne}

\def\ulpos@put{%
   \hb@xt@\z@\bgroup
     \@ifundefined{\ulpos@\the\ulpos@poscnt}{}%
       {\edef\ulwidth{\@nameuse{\ulpos@\the\ulpos@poscnt}sp}%
        \ulpos@draw}%

\global\expandafter\let\csname\ulpos@\the\ulpos@poscnt\endcsname\@undefined
     \hss % Must be here, not before, not after
     \pdfsavepos
     \protected@write\@auxout{}%
       {\string\ulsavepos{\ulpos@ulnum}{\the\ulpos@poscnt}%
       {\noexpand\the\pdflastxpos}{\noexpand\the\pdflastypos}}
   \egroup}

\def\ulpos@kern{.02em }

\def\defineulpos#1#2{%
   \DeclareRobustCommand*#1{%
     \def\SOUL@preamble{%
       \def\ulpos@draw{#2}%
       \global\advance\ulpos@ulcnt\@ne
       \xdef\ulpos@ulnum{\the\ulpos@ulcnt}%
       \ulpos@poscnt\z@
       \SOUL@setkern{-\ulpos@kern}%
       \ulpos@stepput
       \SOUL@setkern\ulpos@kern}%
    \def\SOUL@everyspace####1{\ulpos@stepput####1\space\ulpos@stepput}%
    \def\SOUL@postamble{%
      \SOUL@setkern\ulpos@kern
      \ulpos@stepput
      \SOUL@setkern{-\ulpos@kern}}%
    \def\SOUL@everyhyphen{%
      \ulpos@step \ulpos@step
      \discretionary
        {\SOUL@setkern\SOUL@hyphkern
         \SOUL@sethyphenchar
         \global\advance\ulpos@poscnt\m@ne
         \ulpos@put
         \ulpos@step}%
        {\ulpos@put}%
        {}}%
   \def\SOUL@everysyllable{}%
   \def\SOUL@everytoken{\the\SOUL@token}%
\SOUL@}}

% Styles
% ------------

\defineulpos\ap{%
  \mbox{%
    \color{teal}%
    \raisebox{-.5ex}{\xleaders\hbox to.2em{{\color{gray}\hss$_.$\hss}}\hskip\ulwidth}}}

\makeatother

\begin{document}

Voici une phrase mystère : {\color{white}\ap{bla bla bla bla bla bla bla anticonstitutionnellement}}.

Voici une phrase mystère : bla bla bla bla bla bla bla anticonstitutionnellement.

\end{document}
pg
Modérateur
 
Messages: 2599
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Remplacer du texte par des points, avec la même longueur

Messagepar StephC » Vendredi 20 Mars 2020, 15:21

Bonjour pg,
Magnifique votre code, je teste, et cela fonctionne parfaitement pour changer de ligne et/ou de page. Donc un grand merci.
En fait,
Je reviens vers vous pour savoir si, il est possible d'ajouter une option aux commandes, ou une autre commande, qui permettrait de donner le texte comme dans

Voici une phrase mystère : bla bla bla bla bla bla bla anticonstitutionnellement.

mais souligné avec les mêmes pointillés ou ligne hachuré, en fait les mêmes paramètres qu'avec la commande \ap, lorsque on écrit :

Voici une phrase mystère : {\color{white}\ap{bla bla bla bla bla bla bla anticonstitutionnellement}}

de façon à ce que le texte apparaisse ainsi que les pointillés en dessous du texte?

Je suis allé sur Texnia et sur cop.text.tex pour chercher des réferences sur Jose Bezos, mais je m'y perds, je ne comprends pas du tout le code TeX.

Merci bien.

PS: j'ai vu qu'il existe le package dashundergaps mais j'ai la première version, et je n'arrive pas à supprimer la numérotation lié à la commande \gap. Je suis sous linux, sans vraiment m'y connaître, pour éviter le plus possible les logiciels privés, et les virus ou antivirus lié à Windows. Sur le dépot, de linuxmint, j'ai seulement cette version de latex, un peu vieille (enfin je le crois)
StephC
Utilisateur
 
Messages: 5
Inscription: Vendredi 20 Mars 2020, 14:55
Statut actuel: Lycée

Re: Remplacer du texte par des points, avec la même longueur

Messagepar pg » Vendredi 20 Mars 2020, 16:23

Pas sûr de bien comprendre, mais si le but est de faire apparaître à la fois le texte et les pointillés, il suffit d'enlever le \color{white} :
Code: Tout sélectionner
Voici une phrase mystère : \ap{bla bla bla bla bla bla bla anticonstitutionnellement}.

ap.png
ap.png (4.9 Kio) Vu 146 fois
pg
Modérateur
 
Messages: 2599
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Remplacer du texte par des points, avec la même longueur

Messagepar StephC » Vendredi 20 Mars 2020, 19:53

C'est parfaitement ce que je voulais dire, vous m'avez parfaitement bien compris, même si effectivement ce n'était pas très clair.
Merci beaucoup, pour cela.

Puis-je me permettre une autre question concernant le package dashundergaps. Avez-vous tester la deuxième version ou plus de ce package? Si oui, a-t-il du point de vue de la commande dont on parle (faire des pointillées à la taille d'un texte avec possibilité de changer de ligne ou de page) un intérêt? Si non merci encore pour votre réponse précédente.

Quoiqu'il en soit, il faudra bien que je mette ma version de texlive-full à jour puisque j'ai une version qui semble dater de 5 ans:
apt-cache policy texlive donne:
texlive:
Installé : (aucun) %Je m'interroge sur cette ligne que je trouve bizarre. Je vais aller voir sur le forum ce qui ce dit à ce sujet.
Candidat : 2015.20160320-1ubuntu0.1
Table de version :
2015.20160320-1ubuntu0.1 500
500 http://ubuntu.univ-nantes.fr/ubuntu xenial-updates/universe amd64 Packages
500 http://ubuntu.univ-nantes.fr/ubuntu xenial-updates/universe i386 Packages
500 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages
500 http://security.ubuntu.com/ubuntu xenial-security/universe i386 Packages
2015.20160320-1 500
500 http://ubuntu.univ-nantes.fr/ubuntu xenial/universe amd64 Packages
500 http://ubuntu.univ-nantes.fr/ubuntu xenial/universe i386 Packages

Encore merci à vous.
StephC
Utilisateur
 
Messages: 5
Inscription: Vendredi 20 Mars 2020, 14:55
Statut actuel: Lycée

Re: Remplacer du texte par des points, avec la même longueur

Messagepar pg » Samedi 21 Mars 2020, 08:12

dashundergaps a l'air pas mal et fait la même chose, mais ne vaut sûrement pas le coup de mettre à jour sa distribution pour cela. Si la solution précédente convient, inutile d'aller chercher ailleurs.
pg
Modérateur
 
Messages: 2599
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Remplacer du texte par des points, avec la même longueur

Messagepar StephC » Samedi 21 Mars 2020, 12:29

Encore merci.
StephC
Utilisateur
 
Messages: 5
Inscription: Vendredi 20 Mars 2020, 14:55
Statut actuel: Lycée

Re: Remplacer du texte par des points, avec la même longueur

Messagepar rebouxo » Samedi 21 Mars 2020, 14:13

En faite installer une Texlive en plus de celle des dépôts ne pose aucun problème. Et vu l'ancienneté de celle de ta distrib' cela vaudrait le coup.
https://www.tug.org/texlive/doc/texlive-fr/texlive-fr.html
Une doc en français, et il y a certainement d'autres document sur le site de Denis Bitouzé.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6977
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot], Grapeshot [Crawler] et 31 invités