[Conseil] comment limiter les overfull \vbox
J'ai bien suivi la discussion #256.
Je demande ici juste un conseil: quel est le meilleur moyen de limiter l'étendue de ces dépassements? Car ceux que j'ai dans mon édition dépassent parfois de loin le pied de page. Certains dépassent même la page tout court, comme ici. Faut-il jouer sur \goalfraction? Autre chose? Ou bien n'y a-t-il carrément aucun moyen actuellement?
Merci.

Je précise que j'utilise la classe book + geometry pour faire les réglages. Avec zwpagelayout, les résultats sont un peu meilleurs (et encore), mais zwpagelayout ne permet pas de régler les marges de reliure.
malheureusement je n'ai pas de solution. Sinon j'aurai répondu au ticket plus clairement.
- le pagegoal n'a une influence que pour eledpar. Il determine quand on arrête de mettre des lignes de texte, et du coup quand commencent les notes Donc oui cela détermine en parti les choses, mais ce n'est pas optimal, car au détriment
- visiblement le mieux serait d'augmenter footfudgefiddle. Par exemple de 64 à 68, ou plus.
Je me parle à moi même, mais peut être aura tu un avis. Il faut voir comment avoir une longueur optimal de footfudgefiddle.
Rappel du pb mathématique.
Soit w_1, w_2, w_3, w_n la largeur naturelle d'une note paragraphée 1, 2, 3, n, comprenant aussi les espaces de fin de notes.
Soit H_c la hauteur calculée de ces notes.
Soit H_e la hauteur effective de ces notes
Le problème est donc de faire en sorte que H_c tendent vers H_e. (dans un sens où l'autre, sachant qu'il y aura tjr un écart)
Sachant que H_c = \Sigma W_n \mult f_c
ou f_c est le facteur multiplicateur définie par eledmac au moment du calcul
Appellons f_e facteur multiplicateur théorique, c'est à dire celui qui répond au critère
H_e = \Sigma W_n \mult f_e
Notre problème est de trouver le bon f_e.
H_e = \Sigm W_n \mult f_e
f_e = H_e / \Sigm W_n
Donc la solution pour arriver au bout de plusieurs compilations à trouver le bon facteur multiplicateur serait :
- à chaque fois qu'on ajoute une note paragraphée, ajouter sa largeur à un compteur
- à chaque fois qu'on affiche les notes paragraphées, trouver la hauteur effective et l'ajouter à un compteur
- à la fin de la compilation document, stocker dans un fichier (pas le .aux mais un autre) le rapport entre les 2, ou plus exactement le footfudgefiddle correspondant au rapport entre les 2
- à la compilation suivante, utiliser cette valeur.
Quelques pb algorithmiques non résolus
- faut-il distinguer les ≠ series? sans doute oui, mais cela complique un peu le code
- comme à la deuxième compilation on modifie le footfudgefiddle, on va avoir, ce qu'on espère, les notes réparties autrement. Du coup on va remodifier le footfudglle. Etc etc. Donc il faudrait imaginer une marge d'erreur acceptable (1%?) à partir de laquelle on ne modifie plus le footfudgefiddle, sinon on tourne en rond. Remarque cela pourrait être "plus de overfull vbox lors des notes de bas de page", mais je ne sais pas si on peut stocker en interne à chaque fois qu'une overfull vbox est integré.
Algorithmiquement c'est intéressant comme problème !
autre point : assure toi d'appeler \footparagraph après les règlages de geometry.
J'ai beaucoup réfléchi sur la façon de poser le problème, et j'ai surtout fait des essais dans tous les sens. Je fais donc le point ce soir.
- le problème de mathématique: j'ai lu avec grand intérêt la position du problème, mais après avoir relu mon code, il me semble (c'est à confirmer) que j'atteins une limite qui dépasse la question de l'évaluation de la longueur des notes: il arrive en effet qu'à une seule ligne de texte soient attachées 4 ou 5 lignes d'apparat critique. Tu vois tout de suite où est le problème quand cette ligne est la dernière ligne d'une page donnée:
- ou bien je maintiens la ligne, et alors j'ai un
overfull \vboximportant; - ou bien je la fais passer à la page suivante, et alors j'ai un espace blanc disgracieux équivalent à la ligne de texte + le
overfull \vboxentre le texte et le début de l'apparat critique.
- ou bien je maintiens la ligne, et alors j'ai un
- cependant
\footfudgefiddle{}m'a permis de faire une avancée importante. Remarques:- il faut faire ce réglage avant
\footparagraph{X}: c'est un point à préciser dans la documentation; \footfudgefiddle{68}permet de réduire considérablement leoverfull \vboxjusqu'à une valeur acceptable: en gros 2 lignes au maximum.
- il faut faire ce réglage avant
- une fois cela fait, si on veut que le texte tienne parfaitement dans le cadre de page, il faut prendre une décision au cas par cas (voir point 1.) et je ne vois pour cela que le recours à
\ledpbpour décider de passer une ligne de texte avec les notes associées à la page suivante. De ce fait, on a un espace blanc entre le texte et l'apparat, mais d'une valeur très tolérable, grâce à l'ajustage de\footfudgefiddle{}.
Cela m'a permis de découvrir un autre problème relatif cette fois à shiftedpstarts. J'ouvre tout de suite un ticket.
j'avoue ne pas savoir que faire. il y a visiblement un probl�me algorithmique, mais personne n'a trouv� pour le moment de solution. Je ne suis du reste plus certain du pb math�matique,
D'un point de vue algorithmique, que faire quand on arrive à la limite que j'ai décrite, à savoir une seule ligne qui crée soit un excédent soit un manque équivalent? Je me demande quelle séquence peut permettre à la fin de prendre une décision, puisqu'il y a une décision de typographe à prendre à la fin.
Ou alors, on cherche une séquence pour obtenir à la fin systématiquement le passage à la page suivante. Mais est-ce souhaitable? Comme tu l'as remarqué dans le ticket #256, un dépassement de 1 à 2 lignes n'est pas forcément problématique.
D'un point de vue algorithmique, que faire quand on arrive � la limite que j'ai d�crite, � savoir une seule ligne qui cr�e soit un exc�dent soit un manque �quivalent? Je me demande quelle s�quence peut permettre � la fin de prendre une d�cision, puisqu'il y a une d�cision de typographe � prendre � la fin.
en fait je n'arrive pas � saisir actuellement PQ on a cela.
N'est-ce pas inhérent à l'appréciation de la longueur des notes paragraphées? À la fin, on a toujours un petit excédent.
Toute la question est de limiter la différence entre valeur appréciée et valeur réelle à un résultat tolérable: 2 lignes maximum. Ensuite, eh bien on décide quel résultat on préfére: blanc au milieu du texte ou excédent en bas de page.
Mais c'est forcément l'un ou l'autre à moins de jouer, dans le texte en haut de la page, sur l'espacement entre les mots pour «casser» les lignes auquelles trop de notes sont attachées. Mais ça, c'est de la typographie d'artiste.
Mais c'est peut-être moi qui pose mal le problème.
disons que telle que sont impl�ment�es les notes paragraph� avec TeX, c'est effectivement inh�rent � l'appr�ciation de leur longueur. Mais on pourrait imaginer autrement les choses du pt de vue typographique.
L� je fatigue sur le sujet. J'ai besoin de tps pour y voir plus clair...
Veuillez m'excuser, mais mon français étant trop mauvais, je vous écris en anglais.
I have problems with long paragraphed notes in 2 of my own projects. As I am not completely free in deciding the layout, I cannot do a lot against this.
In the first project, longer and shorter paragraphed notes are mixed and usually the overfull \vbox is only 1 or 2 lines. Only in rare circumstances is it more than this and in these cases manual intervention is necessary anyway.
The other project, though, has a lot more and longer paragraphed notes and the page is more than overfull, to the bottom and further (up to 3 or 4 lines outside of the page) and there is not difference how often I run it. I have tried different values for \footfudgefiddle (set immediately after loading reledmac) yet there seems to be (almost?) no difference in the output.
I could of course work with \ledpb but as the texts are still changing heavily (and the files are actually generated from XML files), this would be a major overhead. If there is a way to reduce the overfullness to only a few lines, this would help greatly.
If it is any help, I can of course send these two projects to you. Also, if I can assist you in finding a solution in any way, I'd be glad to help.
Thank you very much, Dario
I am sorry, but for now I have
- no idea to solve this problem
- no time.
@dariok : do you use non standard class (for example scrbook or memoir) ?
@maieul, I am using scrbook 3.18 (2015/07/02). If you need any other information or I can be of any help, please let me know. Thanks, Dario
@dariok. Yes. It is the same problem as @tweh. The problem is that the parameter as \textheight and \vsize are modified after the \begin{document}, and, consequently, reledmac don't use the correct parameter to determine the height devoted to notes.
You MUST use in your preamble
\AtBeginDocument{\Xmaxhnotes{0.33\textheight}}
\AtBeginDocument{\maxhnotesX{0.33\textheight}}
(you can change the 0.33 value)
@ralessi what I said to dariok should be also true for standard class. Could you try it ?
@maieul Thank you very much! I have been playing around with this for a bit and found a setting*) that reduces the number of overfull boxes from several hundred to a handful and those are less than one line overfull. Thank you very much for your support and indeed for all the work you spend in developing this package!
*) In this case, as I use only familiar notes, I set \AtBeginDocument{\maxhnotesX{0.55\textheight}}
less than one line overfull > we comme back to the pb #256.