cropping with \limitatefirstline
Sorry to bother you Hans, but the macro is not working as expected...
I can see the cropped text (\underbar + special symbols) and there is an
hyphen symbol in the text only example.
I've added the example code I used for tests with \limitatetext and
\doboundtext.
Peter
% interface=en output=pdftex
% Time-stamp:
Peter Rolf wrote:
Sorry to bother you Hans, but the macro is not working as expected...
I can see the cropped text (\underbar + special symbols) and there is an hyphen symbol in the text only example.
I've added the example code I used for tests with \limitatetext and \doboundtext.
\def\limitatefirstline#1#2#3% {\hbox\bgroup\strut \setbox\scratchbox\hbox{#1}% \ifdim\wd\scratchbox>#2\relax \setbox\scratchbox\hbox{#3}% \hsize#2\relax \advance\hsize-\wd\scratchbox \setbox\scratchbox\vbox{\forgetall\veryraggedright#1}% \setbox\scratchbox\vsplit\scratchbox to \lineheight \vbox {\unvbox\scratchbox \global\setbox\plusone\lastbox \global\setbox\plusone\hbox{\unhbox\plusone}}% \box\plusone\removeunwantedspaces#3% \else #1% \fi \egroup} of course there must be something to break (not possible with the non letters, so there you either need to add \hskip0pt's or do real clipping Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Hans Hagen wrote:
Peter Rolf wrote:
Sorry to bother you Hans, but the macro is not working as expected...
I can see the cropped text (\underbar + special symbols) and there is an hyphen symbol in the text only example.
I've added the example code I used for tests with \limitatetext and \doboundtext.
\def\limitatefirstline#1#2#3% {\hbox\bgroup\strut \setbox\scratchbox\hbox{#1}% \ifdim\wd\scratchbox>#2\relax \setbox\scratchbox\hbox{#3}% \hsize#2\relax \advance\hsize-\wd\scratchbox \setbox\scratchbox\vbox{\forgetall\veryraggedright#1}% \setbox\scratchbox\vsplit\scratchbox to \lineheight \vbox {\unvbox\scratchbox \global\setbox\plusone\lastbox \global\setbox\plusone\hbox{\unhbox\plusone}}% \box\plusone\removeunwantedspaces#3% \else #1% \fi \egroup}
of course there must be something to break (not possible with the non letters, so there you either need to add \hskip0pt's or do real clipping
I'll try to understand your code later (make no sense at 30° and I need to read again about the \lastbox trick and unboxing). The text will be generated from XML source, so there is no problem in inserting something (although clipping would be the cleaner solution). Later.... So again many thanks! Greetings, Peter
Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
_______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context
Hi, Hans Hagen wrote:
Peter Rolf wrote:
Sorry to bother you Hans, but the macro is not working as expected...
I can see the cropped text (\underbar + special symbols) and there is an hyphen symbol in the text only example.
I've added the example code I used for tests with \limitatetext and \doboundtext.
\def\limitatefirstline#1#2#3% {\hbox\bgroup\strut \setbox\scratchbox\hbox{#1}% \ifdim\wd\scratchbox>#2\relax \setbox\scratchbox\hbox{#3}% \hsize#2\relax \advance\hsize-\wd\scratchbox \setbox\scratchbox\vbox{\forgetall\veryraggedright#1}% \setbox\scratchbox\vsplit\scratchbox to \lineheight \vbox {\unvbox\scratchbox \global\setbox\plusone\lastbox \global\setbox\plusone\hbox{\unhbox\plusone}}% ^^^^
\box\plusone\removeunwantedspaces#3% \else #1% \fi \egroup}
of course there must be something to break (not possible with the non letters, so there you either need to add \hskip0pt's or do real clipping Hans
So it fails in any case of nonbreakable text. How about adding a failsafe test ala \ifdim\dimexpr\wd\plusone+\wd of sentinel\relax>#2\relax \clip[width=\wd\plusone,...]{...#1...}\removeunwantedspaced#3% \else \box\plusone\removeunwantedspaces#3% \fi One (ugly looking) partial character is still better than a bunch of characters, that cross the width border. I have played around with \clip, but it acts a little wild (vertical position and height). Can't subdue it myself... Greetings, Peter
Peter Rolf wrote:
Hi,
Hans Hagen wrote:
Peter Rolf wrote:
Sorry to bother you Hans, but the macro is not working as expected...
I can see the cropped text (\underbar + special symbols) and there is an hyphen symbol in the text only example.
I've added the example code I used for tests with \limitatetext and \doboundtext.
\def\limitatefirstline#1#2#3% {\hbox\bgroup\strut \setbox\scratchbox\hbox{#1}% \ifdim\wd\scratchbox>#2\relax \setbox\scratchbox\hbox{#3}% \hsize#2\relax \advance\hsize-\wd\scratchbox \setbox\scratchbox\vbox{\forgetall\veryraggedright#1}% \setbox\scratchbox\vsplit\scratchbox to \lineheight \vbox {\unvbox\scratchbox \global\setbox\plusone\lastbox \global\setbox\plusone\hbox{\unhbox\plusone}}%
^^^^
\box\plusone\removeunwantedspaces#3% \else #1% \fi \egroup}
of course there must be something to break (not possible with the non letters, so there you either need to add \hskip0pt's or do real clipping Hans
So it fails in any case of nonbreakable text.
How about adding a failsafe test ala
\ifdim\dimexpr\wd\plusone+\wd of sentinel\relax>#2\relax \clip[width=\wd\plusone,...]{...#1...}\removeunwantedspaced#3% \else \box\plusone\removeunwantedspaces#3% \fi
One (ugly looking) partial character is still better than a bunch of characters, that cross the width border.
I have played around with \clip, but it acts a little wild (vertical position and height). Can't subdue it myself...
\unprotect \def\limitatefirstline#1#2#3% {\hbox\bgroup\strut \setbox\scratchbox\hbox{#1}% \ifdim\wd\scratchbox>#2\relax \setbox\scratchbox\hbox{#3}% \hsize#2\relax \advance\hsize-\wd\scratchbox \setbox\scratchbox\vbox{\forgetall\veryraggedright#1}% \setbox\scratchbox\vsplit\scratchbox to \lineheight \vbox {\unvbox\scratchbox \global\setbox\plusone\lastbox \global\setbox\plusone\hbox{\unhbox\plusone}% \ifx\clip\undefined \box\plusone\removeunwantedspaces#3% \else\ifdim\wd\plusone>\hsize \hbox{\clip[\c!width=\hsize]{\box\plusone}#3}% \else \box\plusone\removeunwantedspaces#3% \fi\fi}% \else #1% \fi \egroup} \protect \ruledhbox{\limitatefirstline{xxxxxxxxxxxxxxxxxxxx}{3cm}{...}} now you owe this list at least three wiki pages -) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Hans Hagen wrote:
Peter Rolf wrote:
....
now you owe this list at least three wiki pages -)
:)) I'll do my best. 'cropping text' is allready done, but \limitatefirstline doesn't work on the wiki yet.
Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
_______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context
I'll do my best. 'cropping text' is allready done, but \limitatefirstline doesn't work on the wiki yet.
Yes, it does ;-) Patrick (... now) -- ConTeXt wiki and more: http://contextgarden.net
Hans, is this a trick to get even more wiki pages?
\clip is still running wild... :)
Greetings,
Peter
% interface=en output=pdftex
% Time-stamp:
Peter Rolf wrote:
Hans, is this a trick to get even more wiki pages? \clip is still running wild... :)
hm, clipping looks ok here; is ok here; what version do you use? what sample text? Hans -- ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Hans Hagen wrote:
Peter Rolf wrote:
Hans, is this a trick to get even more wiki pages? \clip is still running wild... :)
hm, clipping looks ok here; is ok here; what version do you use? what sample text?
seems to be my fault, but I have no time at the moment to find the cause. more tomorrow...anyhow, thanks.
Hans
Peter P.S.: I will also fix the wiki page (with \limintatefirstline support).
Peter Rolf wrote:
Hans, is this a trick to get even more wiki pages? \clip is still running wild... :)
\unprotect \def\limitatefirstline#1#2#3% {\hbox\bgroup\strut \setbox\scratchbox\hbox{#1}% \ifdim\wd\scratchbox>#2\relax \setbox\scratchbox\hbox{#3}% \hsize#2\relax \advance\hsize-\wd\scratchbox \setbox\scratchbox\vbox{\forgetall\veryraggedright#1}% \setbox\scratchbox\vsplit\scratchbox to \lineheight \vbox {\unvbox\scratchbox \global\setbox\plusone\lastbox \global\setbox\plusone\hbox{\unhbox\plusone}% \hbox to #2 {\ifx\clip\undefined \box\plusone \else\ifdim\wd\plusone>\hsize \clip[\c!width=\hsize]{\box\plusone}% \else \box\plusone \fi\fi \removeunwantedspaces\hss#3}}% \else #1% \fi \egroup} \protect indeed, 4 wiki pages now -) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
Hans Hagen
-
Patrick Gundlach
-
Peter Rolf