% Fichiers pour des commandes personnelles
% Dans cet exemple : commandes pour le tableau de Mendeleiev en annexe

%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Table de Mendeleïev %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Couleur pour :
% métaux alcalins
\definecolor{PM@ma@color} {cmyk}{0.00,0.22,0.11,0.00}
% métaux alcalino-terreux
\definecolor{PM@mat@color}{cmyk}{0.00,0.33,0.22,0.00}
% métaux de transition
\definecolor{PM@mt@color} {cmyk}{0.00,0.44,0.36,0.00}
% halogènes
\definecolor{PM@h@color}  {cmyk}{0.00,0.66,0.55,0.00}
% gaz inertes
\definecolor{PM@gi@color} {cmyk}{0.00,0.88,0.77,0.00}

% Affichage d'une case
\newcount \MendX
\newcount \MendY
\newcount \MendN
\newcommand\E[3][0]{%
  % #1 (optionnel) = couleur case (de 0 à 5)
  % #2 = symbole
  % #3 = masse molaire
  % Le numéro atomique est incrémenté automatiquement
  \advance\MendN 1
  \ifcase #1
    \psset{fillcolor=white}
  \or
    \psset{fillcolor=PM@ma@color}
  \or
    \psset{fillcolor=PM@mat@color}
  \or
    \psset{fillcolor=PM@mt@color}
  \or
    \psset{fillcolor=PM@h@color}
  \or
    \psset{fillcolor=PM@gi@color}
  \fi
  \rput(\the\MendX,\the\MendY){%
    \psframe(0,0)(1,1)
    \rput[r]{90}(0.15,0.9){\footnotesize \the\MendN}
    \rput[B]{90}(0.6,0.5){\bfseries #2}
    \rput{90}(0.85,0.5){\footnotesize #3}
  }
  \e
  \ignorespaces
}
\newcommand\e{%
  \advance\MendY 1
  \ifnum\MendY=18
    \MendY 0
    \advance\MendX 1
  \fi
}
% Ombres
% à droite (après la case)
\newcommand\Ed{%
  \rput(\the\MendX,\the\MendY){%
    \pspolygon[fillcolor=PM@mat@color,linewidth=0.2pt]
    (0,0)(0.25,0.25)(1.25,0.25)(1,0)
  }
  \ignorespaces
}
% en bas à droite (après la case)
\newcommand\Edb{%
  \rput(\the\MendX,\the\MendY){%
    \pspolygon[fillcolor=PM@mat@color,linewidth=0.2pt]
    (1,0)(1.25,0.25)(1.25,-0.75)(1,-1)
  }
  \ignorespaces
}
% à gauche (avant la case)
\newcommand\Eg{%
  \rput(\the\MendX,\the\MendY){%
    \pspolygon[fillcolor=PM@mat@color,linewidth=0.2pt]
    (0,0)(0.25,-0.25)(1.25,-0.25)(1,0)
  }
  \ignorespaces
}
