On Mon, Jun 9, 2008 at 3:06 AM, Uwe Koloska
Hello,
for a CD-Cover I have to fit a given text into a fixed box. I have tried to achieve this with the help of mag-0010 "Good looking shapes" but was not successful :-(
Can you help me with this?
The conditions: - the text is of fixed length - the area is of given size (has a given ratio) - the text has to fit completely inside this area - the last line must be justified, too - the fontsize of the text is the variable that can be changed - I have the current minimal context installation
and as an addition: - if possible the words should not be hyphenated at all or hyphenated at an arbitrary character without a hyphenation mark (the text consists of names)
A possible algorithm (similar to the one from mag-0010) 1 start with a small box with the given ratio 2 fill the text into the box 3 if all text fits in with a small penalty we are ready 4 make the box a bit larger 5 goto 2
Unfortunately, I'm not able to understand the code from the mag nor can I code the algorithm in context ...
I would appreciate any input on this problem!
Thank you Uwe Koloska
Not perfect but you could use it as a start. I used ruledvbox only to take a look at the boxsize. There is a parameter to disable the indenting for the last line but I don't know it's name without looking into a TeX book. \startbuffer[cover] \input ward \stopbuffer \definetwopasslist{cover} \newbox\cover \newdimen\coverheight \coverheight= 7cm \newdimen\coverwidth \coverwidth = 7cm \newdimen\coverfont \coverfont =12pt \newdimen\fontstep \fontstep = 1pt \starttext \definefont[Cover][Sans at \the\coverfont] \gettwopassdata{cover} \iftwopassdatafound \coverfont\twopassdata \definefont[Cover][Sans at \the\coverfont] \fi \setbox\cover\ruledvbox {\hsize\coverwidth \Cover\setupinterlinespace \setupalign[nothyphenated] \emergencystretch\maxdimen \getbuffer[cover]} \ifdim\ht\cover<\coverheight \advance\coverfont\fontstep \savetwopassdata{cover}{1}{\the\coverfont} \else \advance\coverfont-\fontstep \savetwopassdata{cover}{1}{\the\coverfont} \fi \ruledvbox to 7cm{\box\cover} \stoptext Wolfgang