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
___________________________________________________________________________________
next prev 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).