povoleni breaku

Zdenek Wagner wagner at cesnet.cz
Tue Mar 12 09:57:35 CET 2002


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}

Prvni a treti \hskip se kompenzuji, takze zbyde normalni mezislovni mezera
(jeste lepsi by bylo nastaveni druheho \hskip'u podle udaju \fontdimen).
Pokud dojde k radkovemu zlomu, zustane prvni \hskip a ty dalsi odpadnou,
protoze to jsou odstranitelne elementy.

Nejsem si jist, co se stane, kdyz uprostred takto zlomeneho radku bude
dalsi dlouhe slovo. Pak pred nim bude kombinace "plus 1fil" a "plus -1fil"
a na konci radku bude taky "plus 1fil". Pokud se "plus -1fil" vyrusi s tim
poslednim, vznikne dira uprostred. Podobne triky delam ve vertikalnim
rezimu a problemy nevznikaji, ale vertikalni material se prece jen lame
trosku jinak nez horizontalni.

> Dekuji za jakekoliv navrhy.
>
> Tomas Bures
>
>
>
>

Zdenek Wagner
e-mail: wagner at mbox.cesnet.cz  or  wagner at icpf.cas.cz

see also http://www.icpf.cas.cz/wagner/
         http://icebearsoft.euweb.cz






More information about the csTeX mailing list