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
143●4●10
Taux d'acceptation :
50%
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.
L'utilisation de
minipage
est nécessaire puisque, dans la plupart des cas, le dialogue ne doit surtout pas être coupé. Je vais regardernowidow
si cela peut m'inspirer.il suffit de taper
\usepackage[defaultlines=N,all]{nowidow}
pour que LaTeX ne coupe pas un paragraphe de moins de2N
lignes. i.e. Il faut avoir au moinsN
lignes avant etN
lignes après le coupeur de page.