On 7/1/06, Idris Samawi Hamid wrote:

A question for Hans first: how can something similar be used for \sometxt?

\startMPenvironment
    \ssxx\setupinterlinespace
\stopMPenvironment

(\setupsometxt[before=,after=] ?)

> Wow... Ok, following is my present, still naive code. What I would like to
> be able to do is
>
> 1) In the first figure [square], control the relation of the front and
> back face of the cube by a single parameter. So if I use z for the front
> face coordinates, I can use z' for the rear face and define z' as a
> function of z. Then the angle of the z111--z'111 diagonal wrt the x-axis
> will change, and the label for that axis will have to change as well. I've
> been manually calculating inverse tangents to do this but can it be done
> automatically?
>
> 2. In the second figure, to in addition control the distance between the 2
> cubes by a single parameter without recalculating the dashed lines mapping
> the two.

See the example. You only have to change diag1 and diag2.

> I only started yesterday but i can see that MetaPost is going to turn me
> into a junkie if I'm not careful :-)

I can only warn you!

Here's the second square as an example without calculating the coordinates.

=============meta-test2.tex===========
% output=pdf interface=en
\setupcolors[state=start]
\setuppagenumbering[state=stop]

\def\AXIS#1#2#3{(#1) Axis #2: {\bf #3}}

\forceMPTEXcheck{LABELL}
\forceMPTEXcheck{LABELR}
\forceMPTEXcheck{LABELM}

\startMPenvironment
    \ssxx\setupinterlinespace
\stopMPenvironment

\startMPinclusions
vardef [EMAIL PROTECTED](expr s, p)= [EMAIL PROTECTED](textext("%
\framed[width=1.5cm,align=left,frame=off,autowidth=force,strut=on]{" & s &
"}"),p)
enddef ;

vardef [EMAIL PROTECTED](expr s, p)= [EMAIL PROTECTED](textext("%
\framed[width=1.5cm,align=right,frame=off,autowidth=force,strut=on]{" & s
& "}"),p)
enddef ;

vardef [EMAIL PROTECTED](expr s, p)= [EMAIL PROTECTED](textext("%
\framed[align=middle,frame=off,autowidth=force,strut=on]{" & s & "}"),p)
enddef ;

picture p ; p := dashpattern(on 1mm off 1mm) ;
color mycolor; mycolor = .625red;

\stopMPinclusions

\startstaticMPfigure{2squares}
u := 0.7cm; a := 5;
pair diag[]; diag1 = (2,1.25); diag2=(10,-2.5);

for i=0 upto 1:
  for j=0 upto 1:
    for k=0 upto 1:
      for l=0 upto 1:
        z[i+2j+4k+8l] = (((i,j) scaled a) shifted (diag1 scaled k)
                  shifted (diag2 scaled l)) scaled u;
      endfor;
    endfor;
  endfor;
endfor;

for i=0 upto 3:
        drawoptions(withcolor mycolor withpen pencircle scaled 0.4pt) ;
        % four squares
        draw z[4i]--z[4i+1]--z[4i+3]--z[4i+2]--cycle;
        % small diagonals
        draw z[i]--z[i+4];
        draw z[i+8]--z[i+12];

        drawoptions(withcolor mycolor dashed p withpen pencircle scaled 0.4pt);
        % dashed lines
        draw z[i]--z[i+8];
        draw z[i+4]--z[i+12];
endfor;

drawoptions(withcolor black);

label (textext("Sans Serif"),.5[z[3],z[4]]) ;
label (textext("Serif"),.5[z[11],z[12]]) ;

picture p; p := textext("\AXIS{a}{4}{Serif}") rotated angle(diag2);
label.bot(p,.5[z[0],z[8]]);

\stopstaticMPfigure

\starttext
\midaligned{\usestaticMPfigure[2squares]}
\stoptext
=====================================
_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to