ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <pragma@wxs.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Cc: "Mikael P. Sundqvist" <mickep@gmail.com>
Subject: Re: Q about hangaround commands
Date: Thu, 06 Dec 2012 17:57:49 +0100	[thread overview]
Message-ID: <50C0CE8D.9090401@wxs.nl> (raw)
In-Reply-To: <CAHy-LL_NHFEutps42zQCc2zDfMzS5XOEtJJ0idHtUQNz1uwo_w@mail.gmail.com>

On 12/6/2012 10:58 AM, Mikael P. Sundqvist wrote:
> On Wed, Nov 3, 2010 at 7:51 AM, Wolfgang Schuster
> <schuster..wolfgang@googlemail.com
> <mailto:schuster.wolfgang@googlemail.com>> wrote:
>
>
>     Am 03.11.2010 um 05:47 schrieb Vladimir Lomov:
>
>      > Hi.
>      >
>      > Some answers I found myself :)
>      >
>      > P.S. I have feeling that feature like 'hangaround' doesn't fit well
>      > with tex (page layout ...?) model.
>
>     Hangaround is a very robust command and works in more cases than
>     \placefigure[left] but you have a conflict with the \item command
>     which place the itemize symbol before the following text which
>     is indented in your case.
>
>     \unprotect
>
>     \def\stophangaround
>        {\endgraf
>         \egroup}
>
>     \def\starthangaround
>        {\dosingleempty\dostarthangaround}
>
>     \def\dostarthangaround[#1]%
>        {\doifelse{#1}{\v!right}
>           {\dostartrighthangaround}
>           {\dostartlefthangaround }}
>
>     \def\dostartlefthangaround
>        {\noindent\bgroup
>         \dowithnextbox
>           {\ifdim\nextboxht>\strutht\setbox\nextbox\tbox{\flushnextbox}\fi
>            \setbox\nextbox\hbox{\flushnextbox\hskip\@@hadistance}%
>            \getboxheight\scratchdimen\of\box\nextbox
>            \getnoflines\scratchdimen
>            \nextboxht\strutht
>            \nextboxdp\strutdp
>            \hangindent\nextboxwd
>            \hangafter-\noflines
>            \llap{\flushnextbox}\ignorespaces}
>         \hbox}
>
>     \def\dostartrighthangaround
>        {\noindent\bgroup
>         \dowithnextbox
>           {\ifdim\nextboxht>\strutht\setbox\nextbox\tbox{\flushnextbox}\fi
>            \setbox\nextbox\hbox{\hskip\@@hadistance\flushnextbox}%
>            \getboxheight\scratchdimen\of\box\nextbox
>            \getnoflines\scratchdimen
>            \nextboxht\strutht
>            \nextboxdp\strutdp
>            \hangindent-\nextboxwd
>            \hangafter-\noflines
>            \rlap{\hskip\hsize\llap{\flushnextbox}}\ignorespaces}
>         \hbox}
>
>     \protect
>
>     \starttext
>
>     \starthangaround{\externalfigure[cow][scale=500]}
>     \input tufte
>     \stophangaround
>
>     \blank
>
>     \starthangaround[right]{\externalfigure[cow][scale=500]}
>     \input tufte
>     \stophangaround
>
>     \stoptext

as mkiv has a starthangaround but uses a different parameter handler, 
this works:

\unexpanded\def\starthangaround
   {\dontleavehmode\bgroup
    \dosingleempty\spac_hanging_around_start}

\def\spac_hanging_around_start[#1]%
   {\edef\m_spac_hanging_location{#1}%
    \dowithnextboxcs\spac_hanging_around_finish\hbox}

\def\spac_hanging_around_finish
   {\scratchdistance\directhangingparameter\c!distance\relax
    \ifdim\ht\nextbox>\strutht
      \setbox\nextbox\tbox{\box\nextbox}%
    \fi
    \getboxheight\scratchdimen\of\box\nextbox
    \getnoflines\scratchdimen
    \ht\nextbox\strutht
    \dp\nextbox\strutdp
    \hangafter-\noflines
    \scratchwidth\dimexpr\wd\nextbox+\scratchdistance\relax
    \ifx\m_spac_hanging_location\v!right
      \hangindent-\scratchwidth
      \rlap{\hskip\dimexpr\hsize-\wd\nextbox\relax\box\nextbox}%
    \else
      \hangindent\scratchwidth
      \llap{\box\nextbox\hskip\scratchdistance}%
    \fi
    \ignorespaces}

i adapted the core code

>     Wolfgang
>
>     ___________________________________________________________________________________
>     If your question is of interest to others as well, please add an
>     entry to the Wiki!
>
>     maillist : ntg-context@ntg.nl <mailto:ntg-context@ntg.nl> /
>     http://www.ntg.nl/mailman/listinfo/ntg-context
>     webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
>     archive  : http://foundry.supelec.fr/projects/contextrev/
>     wiki     : http://contextgarden.net
>     ___________________________________________________________________________________
>
>
> Dear ConTeXt list,
>
> I apologize for digging up an old thread. I was searching for
> \starthangaround[right] and found this thread. I tried the code that
> Wolfgang gave in this thread but I guess something has changed since
> then, because it does not work with latest minimals. Would it be
> possible to get (a working) version of \starthangaround[right]? I think
> it even would be nice to have it in the core.
>
> As a minimal nonworking example, see the email from Wolgang in this thread.
>
> With best regards, Mikael
>
>
> ___________________________________________________________________________________
> 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://tex.aanhet.net
> archive  : http://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________
>


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                              | 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


  parent reply	other threads:[~2012-12-06 16:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-26  6:26 Vladimir Lomov
2010-11-03  4:47 ` Vladimir Lomov
2010-11-03  6:51   ` Wolfgang Schuster
2010-11-03  7:28     ` Vladimir Lomov
2012-12-06  9:58     ` Mikael P. Sundqvist
2012-12-06 10:44       ` Otared Kavian
2012-12-06 16:53         ` Mikael P. Sundqvist
2012-12-06 17:23         ` Wolfgang Schuster
2012-12-06 16:57       ` Hans Hagen [this message]
2012-12-06 17:49         ` Hans Hagen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50C0CE8D.9090401@wxs.nl \
    --to=pragma@wxs.nl \
    --cc=mickep@gmail.com \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).