On 9/1/2020 5:47 PM, mf wrote:
\unexpanded\def\groupedwordorparagraphright{\dosingleempty\dogroupedwordorparagraphright} \def\dogroupedwordorparagraphright[#1]{\groupedcommand{\setbox\scratchbox\hbox\bgroup}
{\egroup\ifdim\wd\scratchbox < \hsize
     \wordright{\unhbox\scratchbox}
   \else
     \par\penalty10000
     \startalignment[flushright]\unhbox\scratchbox\stopalignment
   \fi}}

\unexpanded\def\wordorparagraphright#1{%
   \setbox\scratchbox\hbox{#1}
   \ifdim\wd\scratchbox < \hsize
     \wordright{#1}
   \else
     \par\penalty10000
     \startalignment[flushright]\unhbox\scratchbox\stopalignment
   \fi}

\starttext
  \type{\wordorparagraphright} should use \type{\wordright} if its argument   is narrower than \type{\hsize}, or make a right-aligned paragraph with it
   when it's wider.

   Below, \type{\wordorparagraphright} is tested with a short text, that
   has enough room on the same line.
   \blank

   Reference:

   \input ward\wordright{same line, right}

   \blank

   Implementation as a grouped command (it doesn't work):

   \input ward\groupedwordorparagraphright{same line, right}

   \blank

   Normal implementation, not as a grouped command (it works):

   \input ward\wordorparagraphright{same line, right}
\stoptext
----------------------------------------------------

Unfortunately the grouped version is the one I need, because it's used in a register, and it would give an error if not defined through \groupedcommand:

\setupregister[myregister]
   [pageleft=\wordorparagraphright\bgroup,pageright=\egroup]


fortunately there is a solution that takes less code:

\unexpanded\def\whatever
  {\dosingleempty\dowhatever}

\def\dowhatever[#1]%
  {\dowithnextbox
     {\ifdim\wd\nextbox<\hsize
        \wordright{\box\nextbox}%
        \par
      \else
        \par
        \penalty10000
        \startalignment[flushright]\unhbox\nextbox\stopalignment
      \fi}\hbox}

\starttext

  \input ward \whatever{same line, right}

  \blank

  \input ward \whatever{\input tufte }

\stoptext

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to