povoleni breaku

Petr Olsak olsak at math.feld.cvut.cz
Tue Mar 12 10:34:44 CET 2002



On Tue, 12 Mar 2002, Zdenek Wagner wrote:

> On Tue, 12 Mar 2002, Tomas Bures wrote:
>
> > Dobry den,
> >
> > sazim programatorskou dokumentaci a vyskytuji se mi v ni
> > velmi casto dlouha nedelitelna slova (nazvy trid, funkci, apod.)
> > Zarovnavam text do bloku. TeX si nevi rady s takovymto slovem,
> > pokud mu prijde prilis blizko praveho okraje, a bud ho da na novy
> > radek a dodela velke mezery mezi slovy, nebo ho napise pres pravy
> > okraj. Obe dve reseni jsou spatna.
> > Chtel bych, aby, kdyz dojde na takoveto slovo a TeXu nejde rozumne
> > zalomit, aby tedy rezignoval na lamani do bloku, vlozil do konce
> > radky hfil a slovem pokracoval az na dalsi radce.
> > Dokazal bych tato slova v textu oznacit a uzavrit do nejakeho makra,
> > ale s tim odskocenim, kdyz by to spatne dopadlo si nevim rady.
> >
> Jestli si to dobre pamatuji z TBN, mohlo by zabrat:
> \def\MakroProVelmiDlouheSlovo{\ifhmode
>   \hskip 0mm plus 1fil % roztazitelna mezera
>   \hskip .333em plus .166em minus .083em % normalni mezislovni mezera
>   \hskip 0mm plus -1fil % kompenzace nekonecneho roztazeni
> \fi}

Pan Wagner mel dobrou ideu, jen to, mam dojem, nedotahl do konce.
Chybi mi tam penalta, ve ktere se to zlomi, pokud je slovo dlouhe.

Mozny nastrel reseni je tento:

\def\zlom{\unskip
   \hskip 0pt plus 1fil\penalty1000 \space \hskip 0pt plus-1fil\relax}

\hsize=5cm

aa aaaa aaa aaa aaa aaa aaa aaa \zlom bbbbbbbbbb aaa aaa aaa aaa aaa aaa

\end

Tu hodnotu penalty asi bude potreba overit experimentalne. Nebo, kdo chce
zde zaperlit a spocitat to exaktne, muze. Ta penalta by mela byt (tusim)
vyssi nez badness radku, kterou jeste povazujeme za snesitelnou v pripade,
ze se slovo bbbbbbbbbbb do toho radku vmestna nebo odejde na dalsi radek,
ale predchozi radek zustane zarovnany do bloku.

Petr Olsak







More information about the csTeX mailing list