Message: 12
Date: Mon, 23 Feb 2004 10:14:38 +0100
To: [EMAIL PROTECTED]
From: Hans Hagen <[EMAIL PROTECTED]>
Subject: Re: [NTG-context] alignment of marginal material
Reply-To: [EMAIL PROTECTED]

At 21:40 22/02/2004, Jonathan Nicholl wrote:

I am trying to write a macro which places a picture in the margin. I would
like the centre of the picture to be aligned vertically with the centre of
the paragraph in which I call the macro. The following works in simple cases:


\def\hazard#1{%
        \setbox0=\vbox{#1}%
        \inleft [low] {%
                \framed%
                        [height=\ht0,%
                        top=\vss,%
                        bottom=\vss,%
                        frame=off]%
                        {\externalfigure [sharp turn sign]}%
                }%
        #1}%

If I type something like

\hazard{…paragraph text…}

this produces what I want. But it breaks down with mathematics.

\hazard{%
        \startformula
                …mathematics…
        \stopformula
}

produces the picture aligned with the bottom of the mathematics.

A solution to this problem escapes me. Can anyone suggest an improved macro?

Here is my 10 minute solution ... if i'm in the mood i can make an option of it

Maybe other people would like some support for this kind of thing. Certainly I would find it useful if, when I wrote `\inmargin…' somewhere inside a paragraph, I could specify an option to determine the vertical alignment of the marginal material. Suppose `top' aligned the top of the marginal material with the top of the paragraph, `mid' the middle of the marginal material with the midpoint of the paragraph, and `bot' the bottom of the marginal material with the bottom of the paragraph. That would be good.


\newcounter\CurrentFigPar

\def\StartFigPar#1%
{\doglobal\increment\CurrentFigPar
\placefigure
[leftmargin,line,none]{}
{\setbox\scratchbox\hbox{#1}%
\ifnum\MPp{figpar:b:\CurrentFigPar}=\MPp{figpar:e: \CurrentFigPar}\relax
\scratchdimen\MPy{figpar:b:\CurrentFigPar}%
\advance\scratchdimen-\MPy{figpar:e:\CurrentFigPar}%
\advance\scratchdimen-\ht\scratchbox
\advance\scratchdimen\lineheight
\else
\scratchdimen\zeropoint
\fi
\vbox{\vskip.5\scratchdimen\box\scratchbox}}%
\indent\hpos{figpar:b:\CurrentFigPar}{\strut}\ignorespaces}


\def\StopFigPar
{\removeunwantedspaces\hpos{figpar:e:\CurrentFigPar}{\strut}\endgraf}


\starttext

\input tufte

\StartFigPar{\externalfigure[cow.pdf][width=1cm]} \input tufte \StopFigPar

\input tufte

\stoptext=20

Thank you very much indeed, Hans. This puts cow.pdf in the right place in the margin. One problem remains. Surrounding a paragraph by \StartFigPar…\StopFigPar often messes up the inter-paragraph vertical spacing. In particular, surrounding \startformula…\stopformula by \StartFigPar…\StopFigPar introduces big spaces above and below the mathematics.


Is there a simple way to stop this? It would be good if introducing a few \StartFigPar…\StopFigPar pairs to a document had no effect at all on the main body of the document, and just put figures in the margin.

-----------------------

Jonathan Nicholl
Department of Philosophy
King's College London


_______________________________________________ ntg-context mailing list [EMAIL PROTECTED] http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to