Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Any idea how to draw this beautiful electromagnetic tetrahedron (due to F.W. Hehl and Y.N. Obukhov) using LaTeX code?

enter image description here

share|improve this question
    
If anyone is curious, the diagram is the figure 3 from page 8 of Spacetime metric from local and linear electrodynamics: a new axiomatic scheme by Friedrich W. Hehl and Yuri N. Obukhov. The caption is: Different aspects of the electromagnetic field. The four quantities H, D, E, B constitute the electromagnetic field. The excitations H, D are extensive quantities (how much?), the field strengths E, B intensive quantities (how strong?). –  przemoc Jun 18 '12 at 8:52

1 Answer 1

up vote 10 down vote accepted

My solution won't give you exactly the same result, but it is similar, thus I hope it will be acceptable for you.

\documentclass{article}
\usepackage[paperwidth=55mm,paperheight=55mm,margin=1mm]{geometry}
\usepackage{bm}
\usepackage{eucal}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.markings}
\pagestyle{empty}
\parindent=0pt
\begin{document}
\pgfdeclarelayer{-1}
\pgfsetlayers{-1,main}
\tikzset{
    zlevel/.style={%
        execute at begin scope={\pgfonlayer{#1}},
        execute at end scope={\endpgfonlayer}
    },
}
\centering
\begin{tikzpicture}[
        ball/.style={circle, shading=ball, ball color=black!15, minimum size=9mm},
        conline/.style={line width=#1, line cap=round},
        label/.style 2 args={
            postaction={decorate,transform shape,decoration={
                markings, mark=at position #1 with \node {\scriptsize\color{black}#2};
            }}
        },
        blue/.style={color=blue!60},
        red/.style={color=red!50},
        redl/.style={color=red!20},
    ]
    \def\conline<#1>[#2] (#3) (#4);{%
        \draw[conline=#1, #2] (#3) -- (#4);
    }
    \def\conwhiline (#1) (#2);{%
        \conline<10pt>[color=white] (#1) (#2);
    }
    \def\connectpos[#1] (#2) (#3) #4 #5;{%
        \conline<8pt>[color=black] (#2) (#3);
        \conline<7pt>[#1, label={#4}{#5}] (#2) (#3);
    }
    \def\connection[#1] (#2) (#3) #4;{%
        \connectpos[#1] (#2) (#3) 0.5 {#4};
    }
    \node (B) [ball]                     {$\bm{B}$};
    \node (D) [ball] at ($(B)+(95:4.4)$) {$\mathcal{D}$};

    \begin{scope}[zlevel=-1]
    \node (H) [ball] at ($(B)+(60:2.5)$) {$\mathcal{H}$};
    \node (E) [ball] at ($(B)+(155:3)$)  {$\bm{E}$};
    \connectpos[blue] (E)     (H.180) 0.35 {1-forms};
    \conwhiline       (B)     (D);
    \connection[red]  (E.-45) (B)          {field strength};
    \connection[redl] (B)     (H.-115)     {magnetic};
    \end{scope}

    \connection[red]  (D.-40) (H)          {excitation};
    \connectpos[blue] (D)     (B)     0.35 {2-forms};
    \connection[redl] (E.60)  (D)          {electric};
\end{tikzpicture}
\end{document}

enter image description here

share|improve this answer
    
Good use of \def to do tikz-like commands. –  fabikw Jul 12 '11 at 0:11
    
This is beautiful! Thanks a lot for the effort and thanks for the code! –  user1999 Jul 12 '11 at 15:20

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.