1. Dans LaTeX les espaces sont ignorés, en mettre 1 ou en mettre 10 revient au même. Comment alors faire un texte à trou (avec des espaces pour laisser la possibilité de compléter la phrase) ?
  2. Existe-t-il une commande qui permettrait de choisir le nombre d'espaces que l'on désire placer à un endroit dans la phrase
  3. L'idéal serait que cette commande hypothétique puisse aussi placer un autre caractère qu'un simple espace, pour marquer l'emplacement des mots et ou des lettres à compléter.

Cette commande serait du genre \commande[type de caractère à placer]{nombre de caractère à placer}

... ou bien plus simplement existe-t-il des packages pour faire des textes à trou ?

Posée 03 Jul '19, 07:42

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 03 Jul '19, 07:56

Bonjour. Ce serait sur une seule ligne ?

(03 Jul '19, 14:09) Bernard Bernard's gravatar image

Hello, non il faudrait que ça puisse faire des phrases sur plusieurs lignes. Tu me fait penser qu'on pourrait travailler plus en substitution qu'en insertion.

La commande pourrait prendre dans le texte le mot à mettre vide et le remplacer par une chaîne de longueur équivalente soit avec des blancs soit un autre caractère.

Et si on donne un bout de phrase (plusieurs mots consécutifs) en argument, il faudrait conserver des séparateurs de mots dans la substitution

Juste une idée qui me vient mais peu importe le moyen, le but c'est le texte à trou de la façon la plus pratique possible.

(03 Jul '19, 14:23) idefix idefix's gravatar image
1

@idefix. J'aurais fait un bête \phantom{3cm} par exemple, mais bon… Quand j'en fais, je fais \phantom{texte à remplacer par une ligne}, et j'ai un espace vide d'une largeur équivalente au texte à remplacer. Prévoir que les remplisseurs font écrire manuellement, donc plus gros. Pour séparer les espaces (faut-y pas être vicieux, quand même), \phantom{texte} \phantom{à} \phantom{remplacer}.

(03 Jul '19, 18:48) fred02840 fred02840's gravatar image

Le package dashundergaps est exactement conçu pour cela.

Ouvrir dans l'éditeur Overleaf
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{dashundergaps}
\usepackage[a4paper]{geometry}
\usepackage{babel}
\begin{document}
texte \gap*{texte texte texte texte texte texte texte texte texte texte texte
  texte texte texte texte texte texte texte texte texte texte texte texte texte
  texte texte texte texte texte texte texte texte texte texte texte texte} texte

texte \gap*[-]{texte texte texte texte texte texte texte texte texte texte texte
  texte texte texte texte texte texte texte texte texte texte texte texte texte
  texte texte texte texte texte texte texte texte texte texte texte texte} texte

\TeacherModeOn

texte \gap*{texte texte texte texte texte texte texte texte texte texte texte
  texte texte texte texte texte texte texte texte texte texte texte texte texte
  texte texte texte texte texte texte texte texte texte texte texte texte} texte

texte \gap*[-]{texte texte texte texte texte texte texte texte texte texte texte
  texte texte texte texte texte texte texte texte texte texte texte texte texte
  texte texte texte texte texte texte texte texte texte texte texte texte} texte
\end{document}
Lien permanent

Publiée 03 Jul '19, 15:44

denis's gravatar image

denis ♦♦
7.0k1510
Taux d'acceptation : 52%

Modifiée 03 Jul '19, 15:50

Une autre possibilité est d'utiliser l'extension cloze (nécessite lualatex), qui semble très complète et paramétrable (pas testée, toutefois).

Lien permanent

Publiée 03 Jul '19, 15:44

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Ce qu'on fait avec pdfLaTeX fonctionne avec luaLaTeX ? (mais pas toujours l'inverse ?). Et ... c'est mieux luaLaTeX ?

(03 Jul '19, 19:40) idefix idefix's gravatar image

Ça ajoute des fonctionnalités – on peut insérer du code Lua et utiliser directement, via fontspec, les polices du système (.otf et truetype), du moins pour le mode texte.

(03 Jul '19, 19:54) Bernard Bernard's gravatar image

Y-a-t-il possibilité de garder les espaces entre les mots quand ils sont remplacé par des traits (des traits longs comme les mots avec entre les traits les espaces que l'on a entre les mots).

But : que la personne qui remplit le texte à trou sache combien de mots elle doit mettre à tel ou tel endroit

(03 Jul '19, 19:57) idefix idefix's gravatar image

Remarque : l'ECM fournit ne fonctionne pas sous Overleaf (indefined control sequence), mais fonctionne parfaitement chez moi (TeXstudio 2.12 , MiKTeX 2.9 et windows10)

(03 Jul '19, 20:01) idefix idefix's gravatar image
1

Mais est-ce que vous avez compilé avec lualatex dans Overleaf?

(03 Jul '19, 22:37) Bernard Bernard's gravatar image

@idefix https://www.overleaf.com/read/bqtzjghtvdch fonctionne sans problèmes avec lualatex

(03 Jul '19, 22:47) samcarter samcarter's gravatar image

@bernard et @samcarter je parlais du code de la réponse avec le package dashundergaps(ma question était mal contextualisée). Mais du coup j'ai découvert les options de construction sur Overleaf :)

(03 Jul '19, 23:52) idefix idefix's gravatar image
Affichage de 5 parmi 7 Afficher 2 commentaire(s) en plus

Je définis une nouvelle commande (je mets des pointillés pour avoir un support d'écriture discret) et dans le préambule on déclare le package TikZ :

Ouvrir dans l'éditeur Overleaf
\usepackage{tikz}
\newcommand{\point}[1]{%
\begin{tikzpicture} 
\draw [dotted] (0,0)--(#1,0);
\end{tikzpicture}}

On appelle cette nouvelle commande en écrivant :

Ouvrir dans l'éditeur Overleaf
\point{4}

L'argument est la longueur de l'espace souhaité.

Lien permanent

Publiée 17 Jul '19, 16:52

Emma's gravatar image

Emma
1651410
Taux d'acceptation : 25%

Il y a une très belle réponse de @egreg sur tex.stackexchange (https://tex.stackexchange.com/a/22199/36296) :

Ouvrir dans l'éditeur Overleaf
\documentclass{book}

\newcommand{\piece}{\hskip1sp\kern-1sp\hbox to .5cm{\hrulefill}}
\newcommand{\nbpiece}{\hbox to .5cm{\hrulefill}}

\makeatletter
\newcommand{\build}[2]{\leavevmode
  \count@=\z@ \toks@={}%
  \loop\ifnum\count@<\numexpr#1\relax
    \toks@=\expandafter{\the\toks@#2}%
    \advance\count@\@ne
  \repeat
  \the\toks@}
\makeatletter

\newcommand{\blank}[2][1]{%
  \build{#1}{\nbpiece}\build{2*(#2-#1)}{\piece}\build{#1}{\nbpiece}}

\begin{document}

texte texte \blank{20} texte texte

\end{document}

alt text

Sans les lignes :

Ouvrir dans l'éditeur Overleaf
\documentclass{book}

\newcommand{\piece}{\hskip1sp\kern-1sp\hbox to .5cm{\hfill}}
\newcommand{\nbpiece}{\hbox to .5cm{\hfill}}

\makeatletter
\newcommand{\build}[2]{\leavevmode
  \count@=\z@ \toks@={}%
  \loop\ifnum\count@<\numexpr#1\relax
    \toks@=\expandafter{\the\toks@#2}%
    \advance\count@\@ne
  \repeat
  \the\toks@}
\makeatletter

\newcommand{\blank}[2][3]{%
  \build{#1}{\nbpiece}\build{2*(#2-#1)}{\piece}\build{#1}{\nbpiece}}

\begin{document}

texte texte \blank{20} texte texte

\end{document}

alt text

Lien permanent

Publiée 03 Jul '19, 15:29

samcarter's gravatar image

samcarter
8.2k2817
Taux d'acceptation : 57%

Modifiée 03 Jul '19, 15:47

Joli mais bien technique. Je n'y comprends rien pour le moment et je pense qu'il va me falloir un moment pour digérer tout ça. Le relax et les expandafter m'inquiètent un peu

(03 Jul '19, 19:34) idefix idefix's gravatar image

@idefix Si vous ne voulez pas voir le code, vous pouvez le cacher dans une extension.

(03 Jul '19, 22:53) samcarter samcarter's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.