Figure (dualityInR3Fig1.eps) showing the R3 dual plane to a vector graphically.  The scaling of the dual plane was only for illustration purposes and did not match the length of the vector.

<<peeters`

(*relative to ~/physicsplay*)
peeters`setGitDir[ "../project/figures/GAelectrodynamics" ]

ClearAll[a,b,x, xp, e1, e2, e3, o]

a = 3;
b = 1;
{e1,e2,e3} = IdentityMatrix[3];
o = {0,0,0};
x = {a,b,0};
xp = {-b,a,0};

ClearAll[ fs, esub, bold]
fs = Style[#,FontSize->14]&;
bold = Style[#, Bold] &;
esub = fs[Subscript[ "e" // bold , #]] &;
(*rcaptxt = OverHat["r" ] // bold // fs;
tcaptxt = OverHat["θ" ] // bold // fs;*)

Show[{


Graphics3D[{
Arrow[Tube[{o,e1}]],
Arrow[Tube[{o,e2}]],
Arrow[Tube[{o,e3}]],
Text[esub[1],1.1 e1],
Text[esub[2] ,1.1 e2],
Text[esub[3], 1.1 e3],
Blue,
Arrow[Tube[{o, x}]],
Red,
Arrow[Tube[{o,xp}]],
Arrow[Tube[{xp, xp + e3}]],
Blue,
Text[Row[{"x" // bold //fs, " = a " // fs, esub[1], " + b " // fs, esub[2]}], x + 0.1 (Normalize[x]-e3)],
Black,
Text[esub[3]//fs, xp + 1.1 e3],
Text[Row[{"-b " // fs, esub[1], " + a " // fs, esub[2]}], xp + 0.1 (Normalize[xp]-e3)],
Black,
Text[Row[{"I " // fs, "x" // bold//fs}],xp +(- Normalize[xp] + e3)/2],
Opacity[0.1],
Parallelepiped[ o,0.3{(xp // Normalize) ,e3,  x/100}],
Blue,
Parallelepiped[ o,0.3{(x // Normalize) ,(xp // Normalize),  e3/100}],
Red,
Parallelepiped[ xp,{-Normalize[xp],e3}]

},
Boxed -> False],
ParametricPlot3D[ xp + (- Normalize[xp] + e3 + e3 Cos[t] + Normalize[xp] Sin[t])/2, 
{t,0, 2 Pi-0.5}(*, 
Boxed -> False,
Axes -> None*)
] /. Line[x_]:>Sequence[Arrowheads[{-0.03,0}],Arrow[Tube[{x}]]]
}]

p = ;

peeters`exportForLatex["dualityInR3Fig1", p]