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