Orezavanie

Zdenek Wagner wagner at cesnet.cz
Tue Mar 11 13:10:41 CET 2003


On Tue, 11 Mar 2003, David Necas (Yeti) wrote:

> On Tue, Mar 11, 2003 at 12:53:40PM +0100, Petr Mandys wrote:
> > On Tue, 11 Mar 2003, Milan Vancura wrote:
> >
> > > > vyrabam v plaine formular a potrebujem do \hbox to pevna_sirka vpisat
> > > > priezvisko. Stava sa vsak, ze dlzka priezviska je vacsia ako pevna_sirka.
> > > > Chcel by som priezvisko spracovat tak, aby sa orezavalo od konca po pismenach
> > > > dovtedy, pokial nebude mat vhodnu dlzku.
> > >
> > > Nikdy jsem to nepotreboval, ale napadaji me dve mozna reseni:
> > >
> > > 1. v cyklu odebirat posledni pismenko, dokud nema box pozadovanou sirku
> > >    Podobne priklady na spolupraci vice maker naleznete v TBN. I kdyz tam neni
> > >    primo tento priklad, potrebne principy pochopite.
>
> Je tam \prostrkej (str. 106-107), které řeší to rozebírání
> po písmenku (zepředu samozřejmě), porovnat délky nějkých
> boxů, to už je pak hračka :-)
>
> > No to ano, ale prave odebirani posledniho pismenka (obecne tokenu) neni v
> > TeXu tak uplne jednoducha vec... Nemate nekdo hezke makro, ktere to
> > dela...
>
> Ono je asi jednodušší to po písmenku přidávat, dokud se to
> vejde -- to samo o sobě je kvadratický algoritmus (pokud se
> v každém kroku musí sestavit box, abych se mohl podívat na
> jeho délku), počítám, že odebírání bude aspoň kubický...
>
Ono by to slo resit tak, ze pomoci \prostrkej by se mezi pismena naskladal
\hskip (bud nulovy nebo odpovidajici kerningu) To by se skladalo do
\vboxu, ktery ma odpovidajicim zkusobem nastaveny \hsize. Kazdy \hskip je
vhodne misto pro radkovy zlom. Pak by se pomoci \vsplit ukousl prvni radek
a zbytek by se zahodil.

> Yeti
>

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

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





More information about the csTeX mailing list