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