J'ai créé une classe fscenario qui permet de rédiger un scénario. En principe, dans un dialogue de scénario, le texte dit par un acteur ne doit pas être coupé sur plusieurs pages. Il y a pourtant des cas où cela se fait quand même, lorsque le texte est trop long, surtout s'il ne peut tenir sur une seule page.

Avec la classe frscenario, lorsqu'on est dans un dialogue (qui est en fait une minipage), on peut utiliser la commande \coupe qui permet de poursuivre le dialogue sur la page suivante. L'inconvénient, c'est que dans ce cas, la coupure est fixe, ce qui veut dire que si le texte bouge et qu'il tient finalement sur une page, il faudra penser à manuellement supprimer la commande \coupe. Vous pouvez voir un exemple d'utilisation de cette commande dans le fichier d'exemple livré avec la classe.

Ce que j'aimerais, c'est trouver un moyen à chaque fin de paragraphe, de détecter si le texte restant est trop long et insérer la commande \coupe automatiquement. Je pensais pour cela redéfinir la commande \par, utiliser \pagegoal, \pagetotal et \settoheight, mais ne sais pas vraiment comment faire. Auriez-vous une idée ou avez-vous un exemple faisant quelque chose de similaire ?

Posée 03 Déc '17, 01:26

sveyret's gravatar image

sveyret
143410
Taux d'acceptation : 50%

Modifiée 03 Déc '17, 01:49

Pathe's gravatar image

Pathe ♦♦
7.5k38201251

Il suffit de ne pas utiliser minipage.

Une autre approche est d'utiliser l'extension nowidow, sinon vous pouvez vous inspirer de l'extension needspace.

(03 Déc '17, 20:46) touhami touhami's gravatar image

L'utilisation de minipage est nécessaire puisque, dans la plupart des cas, le dialogue ne doit surtout pas être coupé. Je vais regarder nowidow si cela peut m'inspirer.

(03 Déc '17, 22:11) sveyret sveyret's gravatar image

il suffit de taper \usepackage[defaultlines=N,all]{nowidow} pour que LaTeX ne coupe pas un paragraphe de moins de 2N lignes. i.e. Il faut avoir au moins N lignes avant et N lignes après le coupeur de page.

(03 Déc '17, 23:00) touhami touhami's gravatar image
Soyez le premier à répondre à cette question !
(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.