Dank Piet, helemaal helder. Alleen: je zegt dat TeX die \discretionary toevoegt. Bedoel je niet LaTeX? Want in een \vbox treedt het probleem niet op, terwijl die, voor x-x bijvoorbeeld, wel netjes aan afbreken doet. Is het dus niet een latex-bug? En waar het ook gebeurt - het is toch niet logisch een \discretionary toe te voegen aan een - als die eindstandig is? Nog ter aanvulling: hetzelfde probleem is te zien in tabulars en longtables met een te smalle kolom. On 2012-02-26 00:25, Piet van Oostrum wrote:
Nog een paar stapjes verder:
Wat TeX doet is achter het -teken (wanneer dit het hyphenteken van het font is) een \discretionary{}{}{} toevoegen. Je krijgt het verschijnsel dus ook als je in plaats van een -teken de tekst b\discretionary{}{}{} gebruikt.
Als je het iets algemener neemt: b\discretionary{c}{d}{e} De discretionary zegt dat als er op die plek afgebroken wordt dan wordt de c gebruikt voor de afbreking (dus aan het eind van de regel) en d op de volgende regel. De e wordt gebruikt als er niet afgebroken wordt. In ons geval met de superkorte regels wordt na deze d natuurlijk weer afgebroken. Als de regels wat groter zouden zijn dan zou de volgende x er ook nog bij passen.
Met de kleine breedte en de tekst b\discretionary{c}{d}{e} is het duidelijk dat er tussen de c en de d afgebroken wordt. Je krijgt dan dus:
x bc d x
(Als de minipage wat breder was geweest dan zou de x achter de d staan.)
Echter met c en d leeg breekt hij dus ook op dit punt af en je krijgt dan dus:
x b
x
Waarom een afbreking daar beter zou zijn dan geen afbreking is niet helemaal duidelijk. Het kan zijn dat die afbreking evenveel penalty veroorzaakt als niet afbreken en dat wel afbreken toevallig gekozen wordt.
In een normale minipage zou je het verschijnsel niet merken omdat de x dan achter de lege tweede parameter van de \discretionary komt te staan en alles daarom normaal lijkt. Als je de breedte van de minipage op de breedte van de x zet is er al niks meer aan de hand. Zie dit voorbeeld:
\newlength{\minipagewidth} \settowidth{\minipagewidth}{x} \begin{minipage}[b]{\minipagewidth} m x x b\discretionary{c}{}{e} x - x x \end{minipage}
-- Wybo