summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-05-17 16:10:33 +0000
committerKarl Berry <karl@freefriends.org>2010-05-17 16:10:33 +0000
commit0fbe3bb2fe6072a4909daddb5cfb7304dce43981 (patch)
tree4a016a5a590831850d8aab9aebf0bf87cc6c3536
parent7fe9b95e32b8a9ec7f8fb1465ef797c3fe282301 (diff)
new pstricks package pst-magneticfield (16may10)
git-svn-id: svn://tug.org/texlive/trunk@18313 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/pst-magneticfield/Changes2
-rw-r--r--Master/texmf-dist/doc/generic/pst-magneticfield/README8
-rw-r--r--Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.bib70
-rw-r--r--Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.pdfbin0 -> 8014720 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.tex307
-rw-r--r--Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.bib70
-rw-r--r--Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.pdfbin0 -> 8017590 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.tex301
-rw-r--r--Master/texmf-dist/source/generic/pst-magneticfield/Makefile70
-rw-r--r--Master/texmf-dist/tex/generic/pst-magneticfield/pst-magneticfield.tex379
-rw-r--r--Master/texmf-dist/tex/latex/pst-magneticfield/pst-magneticfield.sty9
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
-rw-r--r--Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/pst-magneticfield.tlpsrc0
15 files changed, 1219 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-magneticfield/Changes b/Master/texmf-dist/doc/generic/pst-magneticfield/Changes
new file mode 100644
index 00000000000..1238b04d333
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-magneticfield/Changes
@@ -0,0 +1,2 @@
+pst-magneticfield.tex --------
+1.10 2010-05-16 - first CTAN version
diff --git a/Master/texmf-dist/doc/generic/pst-magneticfield/README b/Master/texmf-dist/doc/generic/pst-magneticfield/README
new file mode 100644
index 00000000000..a7776adf323
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-magneticfield/README
@@ -0,0 +1,8 @@
+Save the files pst-magneticfield.sty|tex in a directory, which is part of your
+local TeX tree.
+Then do not forget to run texhash to update this tree.
+For more information see the documentation of your LATEX distribution
+on installing packages into your LATEX distribution or the
+TeX Frequently Asked Questions:
+(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages).
+
diff --git a/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.bib b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.bib
new file mode 100644
index 00000000000..d02a96688b8
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.bib
@@ -0,0 +1,70 @@
+%% -*-bibtex-*-
+@STRING{tugboat = {TUGboat} }
+@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+
+@Book{companion,
+ author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss},
+ title = {The {\LaTeX} {G}raphics {C}ompanion},
+ publisher = {{Addison-Wesley Publishing Company}},
+ edition = {second},
+ year = {2007},
+ address = {Reading, Mass.}
+}
+
+@Article{girou:01:,
+ author = {Denis Girou},
+ title = {Pr\'esentation de {PST}ricks},
+ journal = {Cahier {GUT}enberg},
+ year = 1994,
+ volume = {16},
+ month = apr,
+ pages = {21-70}
+}
+
+@Article{girou:02:,
+ author = {{Timothy Van} Zandt and Denis Girou},
+ title = {Inside {PST}ricks},
+ journal = TUGboat,
+ year = 1994,
+ volume = {15},
+ month = sep,
+ pages = {239-246}
+}
+
+@Book{PostScript,
+ Author = {Kollock, Nikolai G.},
+ Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum
+ praktischen {E}insatz},
+ Publisher = {IWT},
+ Address = {Vaterstetten},
+ year = 1989,
+}
+
+@Manual{multido,
+ Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN:/graphics/pstricks/generic/multido.tex}},
+ Note = {},
+ year = 1997
+}
+
+@Book{PSTricks2,
+ author = {Herbert Vo\ss{}},
+ title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+ edition = {fifth},
+ publisher = {DANTE -- Lehmanns},
+ year = {2008},
+ address = {Heidelberg/Hamburg}
+}
+
+@Book{abramowitz,
+ author = {M. Abramowitz and I. A. Stegun },
+ year = 1964,
+ title = {Handbook of {M}athematical {F}unctions with {F}ormulas, {G}raphs, and
+ {M}athematical {T}ables},
+ publisher = {National Bureau of Standards Applied Mathematics Series,
+ U.S. Government Printing Office},
+ address = {Washington, D.C., USA},
+ Note = { Corrections appeared in later printings up to the 10th Printing},
+}
diff --git a/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.pdf b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.pdf
new file mode 100644
index 00000000000..8918afea004
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.tex b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.tex
new file mode 100644
index 00000000000..56d872d40af
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docEN.tex
@@ -0,0 +1,307 @@
+%% $Id: pst-magneticfield-docEN.tex 322 2010-05-16 08:07:26Z herbert $
+\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
+ headexclude,footexclude,oneside]{pst-doc}
+\usepackage[latin1]{inputenc}
+\usepackage{pst-magneticfield}
+\let\pstMFfv\fileversion
+\lstset{pos=t,language=PSTricks,
+ morekeywords={psmagneticfield,psmagneticfieldThreeD},basicstyle=\footnotesize\ttfamily}
+\newcommand\Cadre[1]{\psframebox[fillstyle=solid,fillcolor=black,linestyle=none,framesep=0]{#1}}
+\def\bgImage{%
+\psset{unit=0.5cm}
+\begin{pspicture}(-7,-6)(7,6)
+\psmagneticfieldThreeD[N=2,R=2,L=2,linecolor=blue](-7,-8)(7,8)
+\ThreeDput{\rput(0,-7){\textbf{Bobines de HELMHOLTZ}}}
+\end{pspicture}
+}
+%
+\begin{document}
+
+\title{\texttt{pst-magneticfield}}
+\subtitle{Magnetic field lines of a solenoid; v.\pstMFfv}
+\author{Juergen Gilg\\ Manuel Luque\\Herbert Vo\ss}
+%\docauthor{Juergen Gilg\\Manuel Luque\\Herbert Vo\ss}
+\date{\today}
+\maketitle
+
+
+\clearpage%
+\begin{abstract}
+The package \LPack{pst-magneticfield} aims to trace the shape of field lines
+af a solenoid. The physical parameters are the radius of the solenoid, the number of
+turns and the length, the default values are given below:
+
+\begin{enumerate}
+ \item the number of turns: \LKeyset{N=6} ;
+ \item the radius : \LKeyset{R=2} ;
+ \item the length : \LKeyset{L=4}.
+\end{enumerate}
+
+The line was calculated with the Runge-Kutta 2 algorithm, which, after several tries,
+seems to be the best compromise between speed and accuracy of calculations of the path.
+The calculation of elliptic integrals for the evaluation of magnetic field
+was achieved by polynomial approximations from the "Handbook of Mathematical
+Functions With Formulas, Graph, And Mathematical Tables" by Milton Abramowitz and
+Irene.A. Stegun (\url{http://www.math.sfu.ca/~cbm/aands/}).~\cite{abramowitz}
+\end{abstract}
+
+\clearpage
+\tableofcontents
+
+
+\clearpage
+
+\section{Introduction}
+
+The route options, with the default values are as follows:
+\begin{enumerate}
+ \item The maximum number of points on each line of the entire coil: \LKeyset{pointsB=500};
+ \item the maximum number of points on lines around turns selected: \LKeyset{pointsS=1000};
+ \item the number of lines of the entire coil: \LKeyset{nL=8};
+ \item not the route for the lines of the entire coil: \LKeyset{PasB=0.02};
+ \item not the route for the lines around turns selected: \LKeyset{PasS=0.00275};
+ \item the choice of individual coils to improve the rendering of
+ layout: \LKeyset{numSpires=\{\}}, we place following the sign "=" the numbers of turns \textsf{1 2 3 etc.}
+ starting from the top of the spire. By default, all the turns are targeted.
+ \item The number of field lines around the turns selected: \LKeyset{nS=1}.
+ \item We may decide not to represent the solenoid with the option \LKeyset{drawSelf=false}
+ is useful for 3D representation.
+ \item the route options of the turns (color, thickness, arrows) are:
+ \begin{enumerate}
+ \item The color and thickness of the coils: \Lkeyset{styleSpire=styleSpire};
+ \item the current direction signs: \Lkeyset{styleCourant=sensCourant}.
+ \end{enumerate}
+\begin{verbatim}
+\newpsstyle{styleSpire}{linecap=1,linecolor=red,linewidth=2\pslinewidth}
+\newpsstyle{sensCourant}{linecolor=red,linewidth=2\pslinewidth,arrowinset=0.1}
+\end{verbatim}
+
+ \item The color and thickness of the field lines can be adjusted with the parameters
+ usual \LPack{pstricks}: \Lkeyword{linecolor} and \Lkeyword{linewidth}
+\end{enumerate}
+
+A command \Lcs{psmagneticfieldThreeD} allows 3D visualization of the solenoid and
+field lines.
+
+\clearpage
+\section{Influence of physical parameters on the map magnetic field}
+\subsection{The length of the solenoid}
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5cm}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=3,R=2,nS=1]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{L=4}},N=3,R=2,nS=1]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},L=8,N=3,R=2,nS=1,PasB=0.0025,pointsB=5500]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{L=8}},N=3,R=2,nS=1]}
+\end{pspicture*}
+\end{LTXexample}
+
+\textbf{Note:} To refine the layout of the second solenoid, we had to increase the
+points and lower the pitch of the route: \Cadre{\textcolor{white}{pointsB=5500,PasB=0.0025}}, which
+lengthens the calculations.
+
+
+
+\clearpage
+
+\subsection{The number of turns}
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=1,R=2,nS=0]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{N=1}},R=2,nS=0]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=2,R=2,L=2,PasS=0.003,nS=2]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,7)(7,8)
+\rput(0,7.5){\Cadre{\textcolor{white}{Bobines de Helmholtz}}}
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{N=2}},R=2,L=2,PasS=0.003,nS=2]}
+\end{pspicture*}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=4,R=2,numSpires=2 3]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{N=4}},R=2,L=4]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=5,R=2,L=5,PasS=0.004,nS=2 3 4]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{N=5}},R=2,L=5]}
+\end{pspicture*}
+\end{LTXexample}
+
+
+\clearpage
+\section{The three route options}
+\subsection{The number of field lines}
+
+Due to the symmetry of the problem the number of field lines given
+\Lkeyword{nL} option is half the number actually represented with an added line
+confused with the axis of revolution. We must also add the lines around the turns \Lkeyword{nS},
+these turns can be selected individually \Lkeyword{numSpires}.
+
+
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{000099}},N=1,R=2]
+\psframe*[linecolor={[HTML]{3399FF}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{nL=8}},N=1,R=2]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{000099}},N=1,R=2,nL=12]
+\psframe*[linecolor={[HTML]{3399FF}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{nL=12}},N=1,R=2]}
+\end{pspicture*}
+\end{LTXexample}
+
+\clearpage
+\subsection{The number of points for the path}
+ The plot of field lines is achieved by a numerical method (RK2) and
+follows the step of the route and the number of selected points affect the accuracy of the route,
+as in the two examples below:
+
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{660066}},N=2,R=2,L=2,PasB=0.1,nS=0,nL=7,pointsB=100]
+\psframe*[linecolor={[HTML]{996666}}](-7,7)(7,8)
+\rput(0,7.5){\Cadre{\textcolor{white}{Bobines de Helmholtz}}}
+\psframe*[linecolor={[HTML]{996666}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{PasB=0.1,nL=4,pointsB=100}}]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{660066}},N=2,R=2,L=2,PasB=0.4,nS=0,nL=7,pointsB=100]
+\psframe*[linecolor={[HTML]{996666}}](-7,7)(7,8)
+\rput(0,7.5){\Cadre{\textcolor{white}{Bobines de Helmholtz}}}
+\psframe*[linecolor={[HTML]{996666}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{PasS=0.4,pointsB=100}}]}
+\end{pspicture*}
+\end{LTXexample}
+
+
+If the defaults do not suit it must be found by testing the
+values that give a correct path.
+
+
+
+\clearpage
+
+\section{The parameter \nxLkeyword{numSpires}}
+\begin{LTXexample}[pos=t,wide]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-8,-10)(8,10)
+\psset{linecolor=blue}
+\psmagneticfield[R=2,L=12,N=8,pointsS=500,nL=14,nS=1,numSpires=1 3 6 8,PasB=0.075]
+\psframe*[linecolor={[HTML]{99FF66}}](-8,-10)(8,-9)
+\rput(0,-9.5){[\Cadre{\textcolor{white}{numSpires=1 3 6 8}},R=2,L=14]}
+\multido{\i=0+1}{8}{\rput[l](!6 6 12 7 div \i\space mul sub){\the\multidocount}}
+\end{pspicture*}\quad
+\begin{pspicture*}[showgrid](0,-10)(16,10)
+\psset{linecolor=blue}
+\psmagneticfield[R=2,L=12,N=8,pointsS=500,nL=14,numSpires=,nS=1,PasB=0.075]
+\psframe*[linecolor={[HTML]{99FF66}}](0,-10)(16,-9)
+\rput(8,-9.5){[\Cadre{\textcolor{white}{numSpires=all}},R=2,L=14]}
+\multido{\i=0+1}{8}{\rput[l](!6 6 12 7 div \i\space mul sub){\the\multidocount}}
+\end{pspicture*}
+\end{LTXexample}
+
+\clearpage
+\section{The parameter \nxLkeyword{AntiHelmholtz}}
+\begin{LTXexample}[pos=t]
+\psset{unit=0.75,AntiHelmholtz,
+ R=2,pointsB=500,pointsS=2000,PasB=0.02,PasS=0.00275,nS=10,
+ nL=2,drawSelf=true,styleSpire=styleSpire,styleCourant=sensCourant}
+\newpsstyle{grille}{subgriddiv=0,gridcolor=blue!50,griddots=10}
+\newpsstyle{cadre}{linecolor=yellow!50}
+\begin{pspicture*}[showgrid](-7,-6)(7,6)
+\psframe*[linecolor={[HTML]{996666}}](-7,7)(7,8)
+\psmagneticfield[linecolor={[HTML]{660066}}]
+\end{pspicture*}
+\end{LTXexample}
+
+
+
+\clearpage
+\section{3D views}
+3D views are possible with the macros
+
+\begin{BDef}
+\Lcs{psmagneticfield}\OptArgs\coord1\coord2\\
+\Lcs{psmagneticfieldThreeD}\OptArgs\coord1\coord2
+\end{BDef}
+
+in which options are settings \Lcs{psmagneticfield} and \verb+(x1,y1)(x2,y2)+
+coordinates of bottom left corner and upper right framework
+is encapsulated as the field map for \Lcs{psframe}. We can use the option
+\Lkeyword{viewpoint} of \LPack{pst-3d} package to change the view.
+ The options framework are by default, the following:
+\begin{verbatim}
+\newpsstyle{grille}{subgriddiv=0,gridcolor=lightgray,griddots=10}
+\newpsstyle{cadre}{linecolor=green!20}
+\end{verbatim}
+
+ So it is that they must change if we want change, as in
+Example below.
+\begin{LTXexample}[pos=t]
+\psset{unit=0.7cm}
+\newpsstyle{grille}{subgriddiv=0,gridcolor=blue!50,griddots=10}
+\newpsstyle{cadre}{linecolor=yellow!50}
+\begin{pspicture}(-7,-6)(7,6)
+\psmagneticfieldThreeD[N=8,R=2,L=8,pointsB=1200,linecolor=blue,pointsS=2000](-7,-8)(7,8)
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.7cm}
+\begin{pspicture}(-7,-6)(7,6)
+\psmagneticfieldThreeD[N=2,R=2,L=2,linecolor=blue](-7,-8)(7,8)
+\ThreeDput{\rput(0,-7){\textbf{Bobines de HELMHOLTZ}}}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.75cm,AntiHelmholtz,
+ R=2,pointsB=500,pointsS=2000,PasB=0.02,PasS=0.00275,nS=10,
+ nL=2,drawSelf,styleSpire=styleSpire,styleCourant=sensCourant}
+\newpsstyle{grille}{subgriddiv=0,gridcolor=blue!50,griddots=10}
+\newpsstyle{cadre}{linecolor=yellow!50}
+\begin{pspicture}(-7,-6)(7,6)
+\psmagneticfieldThreeD[linecolor={[HTML]{660066}}](-7,-6)(7,6)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\clearpage
+\section{List of all optional arguments for \texttt{pst-magneticfield}}
+
+\xkvview{family=pst-magneticfield,columns={key,type,default}}
+
+\nocite{*}
+\bgroup
+\raggedright
+\bibliographystyle{plain}
+\bibliography{\jobname}
+\egroup
+
+
+\printindex
+
+
+
+
+\end{document}
diff --git a/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.bib b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.bib
new file mode 100644
index 00000000000..d02a96688b8
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.bib
@@ -0,0 +1,70 @@
+%% -*-bibtex-*-
+@STRING{tugboat = {TUGboat} }
+@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+
+@Book{companion,
+ author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss},
+ title = {The {\LaTeX} {G}raphics {C}ompanion},
+ publisher = {{Addison-Wesley Publishing Company}},
+ edition = {second},
+ year = {2007},
+ address = {Reading, Mass.}
+}
+
+@Article{girou:01:,
+ author = {Denis Girou},
+ title = {Pr\'esentation de {PST}ricks},
+ journal = {Cahier {GUT}enberg},
+ year = 1994,
+ volume = {16},
+ month = apr,
+ pages = {21-70}
+}
+
+@Article{girou:02:,
+ author = {{Timothy Van} Zandt and Denis Girou},
+ title = {Inside {PST}ricks},
+ journal = TUGboat,
+ year = 1994,
+ volume = {15},
+ month = sep,
+ pages = {239-246}
+}
+
+@Book{PostScript,
+ Author = {Kollock, Nikolai G.},
+ Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum
+ praktischen {E}insatz},
+ Publisher = {IWT},
+ Address = {Vaterstetten},
+ year = 1989,
+}
+
+@Manual{multido,
+ Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN:/graphics/pstricks/generic/multido.tex}},
+ Note = {},
+ year = 1997
+}
+
+@Book{PSTricks2,
+ author = {Herbert Vo\ss{}},
+ title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+ edition = {fifth},
+ publisher = {DANTE -- Lehmanns},
+ year = {2008},
+ address = {Heidelberg/Hamburg}
+}
+
+@Book{abramowitz,
+ author = {M. Abramowitz and I. A. Stegun },
+ year = 1964,
+ title = {Handbook of {M}athematical {F}unctions with {F}ormulas, {G}raphs, and
+ {M}athematical {T}ables},
+ publisher = {National Bureau of Standards Applied Mathematics Series,
+ U.S. Government Printing Office},
+ address = {Washington, D.C., USA},
+ Note = { Corrections appeared in later printings up to the 10th Printing},
+}
diff --git a/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.pdf b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.pdf
new file mode 100644
index 00000000000..e97e584cf38
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.tex b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.tex
new file mode 100644
index 00000000000..1ba114629d4
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-magneticfield/pst-magneticfield-docFR.tex
@@ -0,0 +1,301 @@
+%% $Id: pst-magneticfield-docFR.tex 322 2010-05-16 08:07:26Z herbert $
+\documentclass[11pt,english,french,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
+ headexclude,footexclude,oneside]{pst-doc}
+\usepackage[latin1]{inputenc}
+\usepackage{pst-magneticfield}
+\let\pstMFfv\fileversion
+\lstset{pos=t,language=PSTricks,
+ morekeywords={psmagneticfield,psmagneticfieldThreeD},basicstyle=\footnotesize\ttfamily}
+\newcommand\Cadre[1]{\psframebox[fillstyle=solid,fillcolor=black,linestyle=none,framesep=0]{#1}}
+\def\bgImage{%
+\psset{unit=0.5cm}
+\begin{pspicture}(-7,-6)(7,6)
+\psmagneticfieldThreeD[N=2,R=2,L=2,linecolor=blue](-7,-8)(7,8)
+\ThreeDput{\rput(0,-7){\textbf{Bobines de HELMHOLTZ}}}
+\end{pspicture}
+}
+%
+\begin{document}
+
+\title{\texttt{pst-magneticfield}}
+\subtitle{Magnetic field lines of a solenoid; v.\pstMFfv}
+\author{Juergen Gilg\\ Manuel Luque\\Herbert Vo\ss}
+%\docauthor{Juergen Gilg\\Manuel Luque\\Herbert Vo\ss}
+\date{\today}
+\maketitle
+
+
+\clearpage%
+\begin{abstract}
+Le package \LPack{pst-magneticfield} a pour objet de tracer l'allure des lignes de
+champ d'un solénoïde. Les paramètres physiques du solénoïde sont le rayon, le nombre
+de spires et la longueur, les valeurs par défaut sont données ci-dessous :
+\begin{enumerate}
+ \item le nombre de spires : \LKeyset{N=6} ;
+ \item le rayon : \LKeyset{R=2} ;
+ \item la longueur : \LKeyset{L=4}.
+\end{enumerate}
+Le tracé a été modélisé avec la méthode de Runge-Kutta 2 qui, après plusieurs essais,
+semble être le meilleur compromis entre rapidité des calculs et précision du tracé.
+Le calcul des intégrales elliptiques nécessaires à l'évaluation du champ magnétique
+a été réalisé par des approximations polynômiales tirées du ``\textit{Handbook of
+Mathematical Functions With Formulas, Graph, And Mathematical Tables}'' de
+Milton Abramowitz et Irene.A. Stegun \url{http://www.math.sfu.ca/~cbm/aands/}.
+\end{abstract}
+
+\clearpage
+\tableofcontents
+
+
+\clearpage
+
+\section{Introduction}
+Les options de tracé, avec les valeurs par défaut, sont les suivantes :
+\begin{enumerate}
+ \item Le nombre de points maximum sur chaque ligne de l'ensemble de la bobine : \LKeyset{pointsB=500} ;
+ \item le nombre de points maximum sur des lignes autour de spires choisies : \LKeyset{pointsS=1000} ;
+ \item le nombre de lignes de l'ensemble de la bobine : \LKeyset{nL=8} ;
+ \item le pas du tracé pour les lignes de l'ensemble de la bobine : \LKeyset{PasB=0.02} ;
+ \item le pas du tracé pour les lignes autour de spires choisies : \LKeyset{PasS=0.00275} ;
+ \item la possibilité de choisir individuellement des spires pour améliorer le rendu
+ du tracé : \LKeyset{numSpires=\{\}} , on place à la suite du signe ``='' les numéros
+ des spires \textsf{1 2 3 etc.} en partant de la spire du haut. Par défaut,
+ toutes les spires sont ciblées.
+ \item Le nombre de lignes de champ autour des spires choisies : \LKeyset{nS=1}.
+ \item On peut décider de ne pas représenter le solénoïde avec l'option \LKeyset{drawSelf=false},
+ c'est utile pour la représentation en 3D.
+ \item les options de tracé des spires (couleur, épaisseur, flèches) sont :
+ \begin{enumerate}
+ \item La couleur et l'épaisseur du trait des spires : \Lkeyset{styleSpire=styleSpire} ;
+ \item le fléchage du sens du courant : \Lkeyset{styleCourant=sensCourant}.
+ \end{enumerate}
+
+\begin{verbatim}
+\newpsstyle{styleSpire}{linecap=1,linecolor=red,linewidth=2\pslinewidth}
+\newpsstyle{sensCourant}{linecolor=red,linewidth=2\pslinewidth,arrowinset=0.1}
+\end{verbatim}
+
+ \item La couleur et l'épaisseur des lignes de champ se règlent avec les paramètres usuels
+ de \LPack{pstricks} : \Lkeyword{linecolor} et \Lkeyword{linewidth}.
+\end{enumerate}
+Une commande \Lcs{psmagneticfieldThreeD} permet la visualisation en 3D du solénoïde et
+des lignes de champ.
+
+\clearpage
+\section{Influence des paramètres physiques sur la carte du champ magnétique}
+\subsection{La longueur du solénoïde}
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5cm}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=3,R=2,nS=1]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{L=4}},N=3,R=2,nS=1]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},L=8,N=3,R=2,nS=1,PasB=0.0025,pointsB=5500]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{L=8}},N=3,R=2,nS=1]}
+\end{pspicture*}
+\end{LTXexample}
+
+\textbf{Remarque :} pour affiner le tracé du deuxième solénoïde, on a du augmenter
+le nombre de points et diminuer le pas du tracé : \Cadre{\textcolor{white}{pointsB=5500,PasB=0.0025}},
+ce qui rallonge la durée des calculs.
+
+
+
+\clearpage
+
+\subsection{Le nombre de spires}
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=1,R=2,nS=0]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{N=1}},R=2,nS=0]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=2,R=2,L=2,PasS=0.003,nS=2]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,7)(7,8)
+\rput(0,7.5){\Cadre{\textcolor{white}{Bobines de Helmholtz}}}
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{N=2}},R=2,L=2,PasS=0.003,nS=2]}
+\end{pspicture*}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=4,R=2,numSpires=2 3]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{N=4}},R=2,L=4]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{006633}},N=5,R=2,L=5,PasS=0.004,nS=2 3 4]
+\psframe*[linecolor={[HTML]{99FF66}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{N=5}},R=2,L=5]}
+\end{pspicture*}
+\end{LTXexample}
+
+
+\clearpage
+\section{Les options de tracé}
+\subsection{Le nombre de lignes de champ}
+En raison de la symétrie du phénomène le nombre de lignes de champ donné en option
+\Lkeyword{nL} est la moitié du nombre réellement représenté auquel il faut ajouter
+la ligne confondue avec l'axe de révolution. Il faut aussi rajouter les lignes
+autour des spires \Lkeyword{nS}, ces spires pouvant être choisies individuellement
+avec \Lkeyword{numSpires}.
+
+
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{000099}},N=1,R=2]
+\psframe*[linecolor={[HTML]{3399FF}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{nL=8}},N=1,R=2]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{000099}},N=1,R=2,nL=12]
+\psframe*[linecolor={[HTML]{3399FF}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{nL=12}},N=1,R=2]}
+\end{pspicture*}
+\end{LTXexample}
+
+\clearpage
+\subsection{Le nombre de points et le pas du tracé}
+Le tracé des lignes de champ est réalisé par une méthode numérique (RK2) et il s'ensuit
+le pas du tracé et le nombre de points choisis influent sur la précision du tracé,
+comme dans les deux exemples ci-dessous :
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{660066}},N=2,R=2,L=2,PasB=0.1,nS=0,nL=7,pointsB=100]
+\psframe*[linecolor={[HTML]{996666}}](-7,7)(7,8)
+\rput(0,7.5){\Cadre{\textcolor{white}{Bobines de Helmholtz}}}
+\psframe*[linecolor={[HTML]{996666}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{PasB=0.1,nL=4,pointsB=100}}]}
+\end{pspicture*}
+\begin{pspicture*}[showgrid](-7,-8)(7,8)
+\psmagneticfield[linecolor={[HTML]{660066}},N=2,R=2,L=2,PasB=0.4,nS=0,nL=7,pointsB=100]
+\psframe*[linecolor={[HTML]{996666}}](-7,7)(7,8)
+\rput(0,7.5){\Cadre{\textcolor{white}{Bobines de Helmholtz}}}
+\psframe*[linecolor={[HTML]{996666}}](-7,-8)(7,-7)
+\rput(0,-7.5){[\Cadre{\textcolor{white}{PasS=0.4,pointsB=100}}]}
+\end{pspicture*}
+\end{LTXexample}
+
+Si les valeurs par défaut ne conviennent pas il faut donc trouver par des
+essais les valeurs qui donnent un tracé correct.
+
+
+\clearpage
+
+\section{Le paramètre: numSpires}
+\begin{LTXexample}[pos=t,wide]
+\psset{unit=0.5}
+\begin{pspicture*}[showgrid](-8,-10)(8,10)
+\psset{linecolor=blue}
+\psmagneticfield[R=2,L=12,N=8,pointsS=500,nL=14,nS=1,numSpires=1 3 6 8,PasB=0.075]
+\psframe*[linecolor={[HTML]{99FF66}}](-8,-10)(8,-9)
+\rput(0,-9.5){[\Cadre{\textcolor{white}{numSpires=1 3 6 8}},R=2,L=14]}
+\multido{\i=0+1}{8}{\rput[l](!6 6 12 7 div \i\space mul sub){\the\multidocount}}
+\end{pspicture*}\quad
+\begin{pspicture*}[showgrid](0,-10)(16,10)
+\psset{linecolor=blue}
+\psmagneticfield[R=2,L=12,N=8,pointsS=500,nL=14,numSpires=,nS=1,PasB=0.075]
+\psframe*[linecolor={[HTML]{99FF66}}](0,-10)(16,-9)
+\rput(8,-9.5){[\Cadre{\textcolor{white}{numSpires=all}},R=2,L=14]}
+\multido{\i=0+1}{8}{\rput[l](!6 6 12 7 div \i\space mul sub){\the\multidocount}}
+\end{pspicture*}
+\end{LTXexample}
+
+
+\clearpage
+\section{The parameter \nxLkeyword{AntiHelmholtz}}
+\begin{LTXexample}[pos=t]
+\psset{unit=0.75,AntiHelmholtz,
+ R=2,pointsB=500,pointsS=2000,PasB=0.02,PasS=0.00275,nS=10,
+ nL=2,drawSelf=true,styleSpire=styleSpire,styleCourant=sensCourant}
+\newpsstyle{grille}{subgriddiv=0,gridcolor=blue!50,griddots=10}
+\newpsstyle{cadre}{linecolor=yellow!50}
+\begin{pspicture*}[showgrid](-7,-6)(7,6)
+\psframe*[linecolor={[HTML]{996666}}](-7,7)(7,8)
+\psmagneticfield[linecolor={[HTML]{660066}}]
+\end{pspicture*}
+\end{LTXexample}
+
+
+\clearpage
+\section{La vue en 3D}
+La vue en 3D utilise la commande
+
+\begin{BDef}
+\Lcs{psmagneticfield}\OptArgs\coord1\coord2\\
+\Lcs{psmagneticfieldThreeD}\OptArgs\coord1\coord2
+\end{BDef}
+
+dans laquelle les options sont les paramètres de
+\Lcs{psmagneticfield} et \verb+(x1,y1)(x2,y2)+ les coordonnées des coins
+inférieur gauche et supérieur droit du cadre dans lequel est encapsulée
+la carte du champ comme pour \Lcs{psframe}. On pourra utiliser l'option \Lkeyword{viewpoint} du
+package \LPack{pst-3d} pour modifier le point de vue.
+
+Les options du cadre sont, par défaut, les suivantes :
+\begin{verbatim}
+\newpsstyle{grille}{subgriddiv=0,gridcolor=lightgray,griddots=10}
+\newpsstyle{cadre}{linecolor=green!20}
+\end{verbatim}
+
+Ce sont donc celles-ci qu'il faudra modifier si on souhaite en changer, comme dans l'exemple ci-dessous.
+\begin{LTXexample}[pos=t]
+\psset{unit=0.7}
+\newpsstyle{grille}{subgriddiv=0,gridcolor=blue!50,griddots=10}
+\newpsstyle{cadre}{linecolor=yellow!50}
+\begin{pspicture}(-7,-6)(7,6)
+\psmagneticfieldThreeD[N=8,R=2,L=8,pointsB=1200,linecolor=blue,pointsS=2000](-7,-8)(7,8)
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.7}
+\begin{pspicture}(-7,-6)(7,6)
+\psmagneticfieldThreeD[N=2,R=2,L=2,linecolor=blue](-7,-8)(7,8)
+\ThreeDput{\rput(0,-7){\textbf{Bobines de HELMHOLTZ}}}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.75cm,AntiHelmholtz,
+ R=2,pointsB=500,pointsS=2000,PasB=0.02,PasS=0.00275,nS=10,
+ nL=2,drawSelf,styleSpire=styleSpire,styleCourant=sensCourant}
+\newpsstyle{grille}{subgriddiv=0,gridcolor=blue!50,griddots=10}
+\newpsstyle{cadre}{linecolor=yellow!50}
+\begin{pspicture}(-7,-6)(7,6)
+\psmagneticfieldThreeD[linecolor={[HTML]{660066}}](-7,-6)(7,6)
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+\section{List of all optional arguments for \texttt{pst-magneticfield}}
+
+\xkvview{family=pst-magneticfield,columns={key,type,default}}
+
+\nocite{*}
+\bgroup
+\raggedright
+\bibliographystyle{plain}
+\bibliography{\jobname}
+\egroup
+
+
+\printindex
+
+
+
+
+\end{document}
diff --git a/Master/texmf-dist/source/generic/pst-magneticfield/Makefile b/Master/texmf-dist/source/generic/pst-magneticfield/Makefile
new file mode 100644
index 00000000000..96b8b8a3ef4
--- /dev/null
+++ b/Master/texmf-dist/source/generic/pst-magneticfield/Makefile
@@ -0,0 +1,70 @@
+
+# `Makefile' for `pst-magneticfield.pdf', hv, 2007/03/17
+
+.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps
+
+PACKAGE = pst-magneticfield
+
+MAIN = $(PACKAGE)-docFR
+
+TDS = ~/PSTricks/PSTricks-TDS
+
+LATEX = latex
+
+ARCHNAME = $(MAIN)-$(shell date +%y%m%d)
+
+ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile
+
+all : doc clean tds
+doc: $(MAIN).pdf
+
+$(MAIN).pdf : $(MAIN).ps
+ GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $<
+
+$(MAIN).ps : $(MAIN).dvi
+ dvips $<
+
+$(MAIN).dvi : $(MAIN).tex
+ $(LATEX) $<
+ $(LATEX) $<
+ if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi
+ if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi
+ makeindex -t $(basename $<).ilg -s pst-doc.ist -o $(basename $<).ind $(basename $<).idx
+ makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \
+ $(basename $<).glo
+ bibtex $(basename $<)
+ $(LATEX) $<
+ $(LATEX) $<
+
+clean :
+ $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .bbl )
+ $(RM) $(addprefix $(MAIN), .dvi .ps .xcp)
+
+veryclean : clean
+ $(RM) $(addprefix $(MAIN), .pdf .bbl .blg)
+
+arch :
+ zip $(ARCHNAME).zip $(ARCHFILES)
+
+tds:
+ cp -u Changes $(TDS)/doc/generic/$(PACKAGE)/
+ cp -u README $(TDS)/doc/generic/$(PACKAGE)/
+ cp -u $(MAIN).pdf $(TDS)/doc/generic/$(PACKAGE)/
+#
+ cp -u Changes $(TDS)/tex/latex/$(PACKAGE)/
+ cp -u $(PACKAGE).sty $(TDS)/tex/latex/$(PACKAGE)/
+#
+ cp -u Changes $(TDS)/tex/generic/$(PACKAGE)/
+ cp -u $(PACKAGE).tex $(TDS)/tex/generic/$(PACKAGE)/
+#
+# cp -u Changes $(TDS)/dvips/$(PACKAGE)/
+# cp -u $(PACKAGE).pro $(TDS)/dvips/$(PACKAGE)/
+# cp -u $(PACKAGE).pro ~/Links/dvips-local/
+#
+ cp -u Changes $(TDS)/source/$(PACKAGE)/
+ cp -u $(MAIN).tex $(TDS)/source/$(PACKAGE)/
+ cp -u $(MAIN).bib $(TDS)/source/$(PACKAGE)/
+ cp -u Makefile $(TDS)/source/$(PACKAGE)/
+
+
+# EOF
diff --git a/Master/texmf-dist/tex/generic/pst-magneticfield/pst-magneticfield.tex b/Master/texmf-dist/tex/generic/pst-magneticfield/pst-magneticfield.tex
new file mode 100644
index 00000000000..8d8e583baba
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-magneticfield/pst-magneticfield.tex
@@ -0,0 +1,379 @@
+%% Package `pst-magneticfield.tex'
+%%
+%% Manuel Luque
+%% Jürgen Gilg
+%% Herbert Voß
+%%
+%% This program can be redistributed and/or modified under
+%% the terms of the LaTeX Project Public License Distributed
+%% from CTAN archives in directory macros/latex/base/lppl.txt.
+%%
+%% A PSTricks related package to draw magnetic field lines
+%% It uses the method from Heun
+%%
+\csname PSTMagneticFieldLoaded\endcsname
+\let\PSTMagneticFieldLoaded\endinput
+%
+% Requires some packages
+\ifx\PSTricksLoaded\endinput\else \input pstricks \fi
+\ifx\PSTthreeDLoaded\endinput\else\input pst-3d \fi
+\ifx\MultidoLoaded\endinput\else \input multido.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
+%
+\def\fileversion{1.10}
+\def\filedate{2010/05/16}
+\message{`pst-magneticfield' v\fileversion, \filedate\space (ml,jg,hv)}
+%
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+%
+\SpecialCoor
+\pst@addfams{pst-magneticfield}
+% the first three parameter cannot be read with \pst@getint, because \pstFP.. do not like
+% the values ... used in \psmagenticfieldThreeD
+\define@key[psset]{pst-magneticfield}{R}[1]{\def\psk@magneticfieldR{#1}}% rayon d'une spire
+\define@key[psset]{pst-magneticfield}{N}[6]{\def\psk@magneticfieldN{#1}}% nombre de spires
+\define@key[psset]{pst-magneticfield}{L}[4]{\def\psk@magneticfieldL{#1}}% Longueur de la bobine
+\define@key[psset]{pst-magneticfield}{nL}[8]{\pst@getint{#1}\psk@magneticfieldNL}% nombre de lignes de champ
+\define@key[psset]{pst-magneticfield}{numSpires}[]{\def\psk@magneticfieldChoixSpires{#1}}% choix individuel des spires
+\psset[pst-magneticfield]{numSpires=}% toutes les spires par défaut
+\define@key[psset]{pst-magneticfield}{pointsB}[500]{\pst@getint{#1}\psk@magneticfieldB}
+\define@key[psset]{pst-magneticfield}{pointsS}[1000]{\pst@getint{#1}\psk@magneticfieldS}% nombre de points autour de chaque spire
+\define@key[psset]{pst-magneticfield}{PasB}[0.02]{\pst@checknum{#1}\psk@magneticfieldPasB}% incrément du tracé autour de la bobine
+\define@key[psset]{pst-magneticfield}{PasS}[0.00275]{\pst@checknum{#1}\psk@magneticfieldPasS}% incrément du tracé autour de chaque spire
+\define@key[psset]{pst-magneticfield}{nS}[1]{\pst@getint{#1}\psk@magneticfieldNS}% nombre de lignes autour de chaque spire
+\define@key[psset]{pst-magneticfield}{styleSpire}[styleSpire]{\def\psk@styleSpire{#1}}
+\define@key[psset]{pst-magneticfield}{styleCourant}[sensCourant]{\def\psk@styleCourant{#1}}
+%
+\newpsstyle{styleSpire}{linecap=1,linecolor=red,linewidth=2\pslinewidth}
+\newpsstyle{sensCourant}{linecolor=red,linewidth=2\pslinewidth,arrowinset=0.1}
+\newpsstyle{grille}{subgriddiv=0,gridcolor=lightgray,griddots=10}
+\newpsstyle{cadre}{linecolor=green!20}
+%
+\define@boolkey[psset]{pst-magneticfield}[Pst@]{drawSelf}[true]{}
+\define@boolkey[psset]{pst-magneticfield}[Pst@]{AntiHelmholtz}[true]{}
+%
+\psset[pst-magneticfield]{R=1,L=4,N=6,pointsB=500,pointsS=1000,
+ PasB=0.02,PasS=0.00275,nS=1,nL=8,drawSelf,styleSpire=styleSpire,
+ styleCourant=sensCourant,AntiHelmholtz=false}
+%
+\def\psmagneticfield{\pst@object{psmagneticfield}}
+\def\psmagneticfield@i{%
+ \pst@killglue%
+% \ifPst@AntiHelmholtz\addto@par{N=2}\fi
+ \begin@SpecialObj%
+ \pst@Verb{% make it global
+ /NombreSpires \psk@magneticfieldN\space def
+ /Radius \psk@magneticfieldR\space def
+ /nombreLignes \psk@magneticfieldNL\space def
+ /TableauSpires [\psk@magneticfieldChoixSpires] def
+ \ifPst@AntiHelmholtz
+ TableauSpires length 0 eq {/TS [1 2] def}
+ {/TS TableauSpires def } ifelse
+ \else
+ TableauSpires length 0 eq {/TS [1 1 NombreSpires {} for] def}
+ {/TS TableauSpires def } ifelse
+ \fi
+ /StepLines Radius nombreLignes 1 add div def
+ NombreSpires 1 eq
+ { /Longueur 0 def
+ /inter 0 def }
+ { /Longueur \psk@magneticfieldL\space def
+ /inter Longueur NombreSpires 1 sub div def } ifelse % intervalle entre 2 spires
+ /NbrePointsB \psk@magneticfieldB\space def
+ /NbrePointsS \psk@magneticfieldS\space def
+ \ifPst@AntiHelmholtz
+ /inter Radius def
+ /yA Radius 2 div def
+ \else
+ /yA Longueur 2 div def
+ \fi
+ /PasB \psk@magneticfieldPasB\space def
+ /PasS \psk@magneticfieldPasS\space def
+ /nS \psk@magneticfieldNS\space def
+ }%
+ \addto@pscode{
+ /fleche {
+ gsave
+ x2 y2 moveto
+ y2 y1 sub x2 x1 sub atan rotate % 1 1 scale
+ -1 CLW mul 2 CLW mul rlineto
+ 7 CLW mul -2 CLW mul rlineto
+ -7 CLW mul -2 CLW mul rlineto
+ closepath
+ fill
+ grestore
+ } def
+ /Calcul_B_Spires {
+ /Bx 0 def
+ /By 0 def
+ 1 1 NombreSpires { % on calcule le champ resultant de toutes les spires
+ /iS ED % numero de la spire
+ /yi yA iS 1 sub inter mul sub def % position de la spire
+ /Bx0 {
+ /arz {1 Radius xP add dup mul yP yi add dup mul add sqrt div} def
+ yP yi add xP div arz mul
+ EllipticK neg
+ Radius dup mul xP dup mul add yP yi add dup mul add
+ Radius xP sub dup mul yP yi add dup mul add div
+ EllipticE mul
+ add
+ mul
+ } def
+ /By0 {
+ /arz {1 Radius xP add dup mul yP yi add dup mul add sqrt div} def
+ arz
+ EllipticK
+ Radius dup mul xP dup mul sub yP yi add dup mul sub
+ Radius xP sub dup mul yP yi add dup mul add div
+ EllipticE mul
+ add
+ mul
+ } def
+ \ifPst@AntiHelmholtz
+ iS 2 eq {/Bx0 Bx0 neg def /By0 By0 neg def} if
+ \fi
+ /Bx Bx Bx0 add def
+ /By By By0 add def
+ } for
+ } def
+ /EllipticKE{
+ /K {2 Radius xP mul sqrt mul arz mul} def
+ /m1 {1 K dup mul sub} def
+ /m2 {m1 dup mul} def
+ /m3 {m2 m1 mul} def
+ /m4 {m2 dup mul} def
+ /m_1 {1 m1 div} def
+ /EllipticK {
+ 0.5
+ 0.12498593597 m1 mul add
+ 0.06880248576 m2 mul add
+ 0.03328355376 m3 mul add
+ 0.00441787012 m4 mul add
+ m_1 ln mul
+ 1.38629436112 add
+ 0.09666344259 m1 mul add
+ 0.03590092383 m2 mul add
+ 0.03742563713 m3 mul add
+ 0.01451196212 m4 mul add
+ } def
+ /EllipticE {
+ 0.24998368310 m1 mul
+ 0.09200180037 m2 mul add
+ 0.04069697526 m3 mul add
+ 0.00526449639 m4 mul add
+ m_1 ln mul
+ 1 add
+ 0.44325141463 m1 mul add
+ 0.062606012206 m2 mul add
+ 0.04757383546 m3 mul add
+ 0.01736506451 m4 mul add
+ } def
+ Calcul_B_Spires
+% au point Pi
+ /xPi xP def
+ /yPi yP def
+ /NormeB Bx dup mul By dup mul add sqrt def
+ /dX Bx NormeB div Pas mul def
+ /dXi dX def
+ /dY By NormeB div Pas mul def
+ /dYi dY def
+ /xCi xPi dX add def
+ /yCi yPi dY add def
+ /xP xCi def
+ /yP yCi def
+ Calcul_B_Spires
+% au point C
+ /NormeB Bx dup mul By dup mul add sqrt def
+ /dX Bx NormeB div Pas mul def
+ /dY By NormeB div Pas mul def
+ /yP yPi dY dYi add 2 div add def
+ } def
+%
+ 0 0 translate
+ /Lignes_Champ {
+ /Ligne_Champ [
+ NbrePoints {%
+ EllipticKE
+ [ xP yP \tx@ScreenCoor ]
+ trace 1 eq {By 0 lt Bx 0 lt and {exit} if} if
+ } repeat
+ ] def
+%
+ Ligne_Champ 0 get aload pop moveto % xP yP
+ 1 1 Ligne_Champ length 1 sub {
+ /iCompteur exch def
+ Ligne_Champ iCompteur get aload pop lineto
+ } for
+ stroke
+% les flèches (xP,yP)
+ Ligne_Champ dup length 1 sub 3 div cvi get aload pop /y1 exch def /x1 exch def
+ Ligne_Champ dup length 1 sub 3 div cvi 1 add get aload pop /y2 exch def /x2 exch def
+ nCount 0 eq {/yAxe1 y1 def /yAxe2 y2 def} if
+ fleche
+%
+ Ligne_Champ 0 get aload pop neg moveto % xP -yP
+ 1 1 Ligne_Champ length 1 sub {
+ /iCompteur ED
+ Ligne_Champ iCompteur get aload pop neg lineto
+ } for
+ stroke
+ trace 1 eq {
+% (xP,-yP)
+ Ligne_Champ dup length 1 sub 3 div cvi get aload pop /y2 exch neg def /x2 ED
+ Ligne_Champ dup length 1 sub 3 div cvi 1 add get aload pop /y1 exch neg def /x1 ED
+ fleche
+ } if
+ Ligne_Champ 0 get aload pop exch neg exch moveto % -xP yP
+ 1 1 Ligne_Champ length 1 sub {
+ /iCompteur ED
+ Ligne_Champ iCompteur get aload pop exch neg exch lineto
+ } for
+ stroke
+% (-xP,yP)
+ Ligne_Champ dup length 1 sub 3 div cvi get aload pop /y1 exch def /x1 exch neg def
+ Ligne_Champ dup length 1 sub 3 div cvi 1 add get aload pop /y2 exch def /x2 exch neg def
+ fleche
+ Ligne_Champ 0 get aload pop exch neg exch neg moveto % -xP -yP
+ 1 1 Ligne_Champ length 1 sub {
+ /iCompteur ED
+ Ligne_Champ iCompteur get aload pop exch neg exch neg lineto
+ } for
+ stroke
+ trace 1 eq {
+% (-xP,-yP)
+ Ligne_Champ dup length 1 sub 3 div cvi get aload pop /y2 exch neg def /x2 exch neg def
+ Ligne_Champ dup length 1 sub 3 div cvi 1 add get aload pop /y1 exch neg def /x1 exch neg def
+ fleche
+ } if
+ } def
+%
+% lignes de champ de l'ensemble de la bobine
+ /trace 1 def
+ /nCount 0 def
+% 0.1 Radius mul StepLines Radius mul 0.9 Radius mul {
+ StepLines StepLines Radius 1.5 StepLines mul sub {
+ /NbrePoints NbrePointsB def
+ /xStart ED
+ /yStart 0 def
+ /Pas PasB def
+ /xP xStart def
+ /yP yStart Pas sub def
+ Lignes_Champ
+ /nCount nCount 1 add def
+ } for
+ \ifPst@AntiHelmholtz\else
+ % l'axe orienté de la bobine
+ 0 -10 \tx@ScreenCoor moveto
+ 0 10 \tx@ScreenCoor lineto
+ stroke
+ /x1 0 def
+ /y1 yAxe1 def
+ /y2 yAxe2 def
+ /x2 0 def
+ fleche
+ %/x1 0 def
+ /y1 yAxe2 neg def
+ /y2 yAxe1 neg def
+ %/x2 0 def
+ fleche
+ \fi
+ % quelques lignes de champ autour de chaque spire
+ /trace 0 def
+ /increment 0.25 Radius mul def
+ \ifPst@AntiHelmholtz
+ /Pas PasS def
+ /NbrePoints NbrePointsS def
+ \fi
+ nS { % nS lignes
+ 0 1 TS length 1 sub {
+ /nTemp ED
+ /iS TS nTemp get def % numero de la spire en partant du haut
+ iS 0 eq { /iS 1 def } if % iS ne peut pas = 0
+ iS NombreSpires gt { /iS NombreSpires def } if % iS ne peut pas > nbre spires
+ /yi yA iS 1 sub inter mul sub def % position du centre de la spire
+ \ifPst@AntiHelmholtz\else
+ /NbrePoints NbrePointsS def
+ /Pas PasS def
+ \fi
+ /xStart Radius increment add def
+ /yStart yi def
+ /xP xStart def
+ /yP yStart Pas sub def
+ Lignes_Champ
+ } for
+ \ifPst@AntiHelmholtz /NbrePoints NbrePoints 750 add def \fi
+ /increment increment 0.2 Radius mul add def
+ } repeat
+ }%
+ \ifPst@drawSelf
+ \ifPst@AntiHelmholtz
+ \psline[style=\psk@styleSpire](!Radius neg Radius 2 div)(!Radius Radius 2 div)
+ \psline[style=\psk@styleCourant]{<-}(!-0.2 Radius 2 div)(!0.2 Radius 2 div)
+ \psline[style=\psk@styleSpire](!Radius neg Radius 2 div neg)(!Radius Radius 2 div neg)
+ \psline[style=\psk@styleCourant]{->}(!-0.2 Radius 2 div neg)(!0.2 Radius 2 div neg)
+ \else
+ \multido{\i=1+1}{\psk@magneticfieldN}{% numero de la spire
+ \pst@Verb{ /Yspire yA \i\space 1 sub inter mul sub def } % position de la spire
+ \psline[style=\psk@styleSpire](! Radius neg Yspire)(! Radius Yspire)
+ \psline[style=\psk@styleCourant]{->}(!-0.2 Yspire)(!0.2 Yspire)}
+ \fi
+ \fi%
+ \end@SpecialObj%
+ \ignorespaces}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%\psmagneticfieldThreeD%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def\psmagneticfieldThreeD{\pst@object{psmagneticfieldThreeD}}
+\def\psmagneticfieldThreeD@i(#1,#2)(#3,#4){%
+% \ifPst@AntiHelmholtz\addto@par{N=2}\fi
+ \begingroup
+ \use@par
+ \ifPst@AntiHelmholtz
+ \pstFPdiv\yA{\psk@magneticfieldR}{2}
+ \ThreeDput{%
+ \begin{psclip}{\psframe(#1,#2)(#3,#4)}
+ \psframe*[style=cadre](#1,#2)(#3,#4)
+ \psgrid[style=grille](#1,#2)(#3,#4)
+ \psmagneticfield[drawSelf=false]%
+ \end{psclip}}
+ \ThreeDput[normal=0 1 0](0,\yA,0){%
+ \psarc[linecolor=red,linewidth=3\pslinewidth](0,0){\psk@magneticfieldR}{0}{180}
+ \psarc[linecolor=red,linewidth=3\pslinewidth]{<-}(0,0){\psk@magneticfieldR}{80}{90}
+ \psarc[linecolor=red,linewidth=1\pslinewidth,linestyle=dashed](0,0){\psk@magneticfieldR}{180}{360}}
+ \ThreeDput[normal=0 1 0](0,-\yA,0){%
+ \psarc[linecolor=red,linewidth=3\pslinewidth](0,0){\psk@magneticfieldR}{0}{180}
+ \psarc[linecolor=red,linewidth=3\pslinewidth]{->}(0,0){\psk@magneticfieldR}{80}{90}
+ \psarc[linecolor=red,linewidth=1\pslinewidth,linestyle=dashed](0,0){\psk@magneticfieldR}{180}{360}}
+ \else
+ \ifnum\psk@magneticfieldN=1
+ \def\MF@inter{0}
+ \def\yA{0}
+ \else
+ \pstFPsub\CalcIntermediaire{\psk@magneticfieldN}{1}
+ \pstFPdiv\MF@inter{\psk@magneticfieldL}{\CalcIntermediaire}
+ \pstFPdiv\yA{\psk@magneticfieldL}{2}
+ \fi
+ \ThreeDput{%
+ \begin{psclip}{\psframe(#1,#2)(#3,#4)}
+ \psframe*[style=cadre](#1,#2)(#3,#4)
+ \psgrid[style=grille](#1,#2)(#3,#4)
+ \psmagneticfield[drawSelf=false]%
+ \end{psclip}}
+ \multido{\iN=1+1,\iS=0+1}{\psk@magneticfieldN}{%
+ \pstFPmul\MF@calcA{\iS}{\MF@inter}
+ \pstFPsub\posSpire{\yA}{\MF@calcA}
+ \ThreeDput[normal=0 1 0](0,\posSpire,0){%
+ \psarc[linecolor=red,linewidth=3\pslinewidth](0,0){\psk@magneticfieldR}{0}{180}
+ \psarc[linecolor=red,linewidth=3\pslinewidth]{->}(0,0){\psk@magneticfieldR}{80}{90}
+ \psarc[linecolor=red,linewidth=1\pslinewidth,linestyle=dashed](0,0){\psk@magneticfieldR}{180}{360}}%
+ }%
+ \fi
+ \endgroup}
+%
+\catcode`\@=\PstAtCode\relax
+%
+%% END
+\endinput
+
diff --git a/Master/texmf-dist/tex/latex/pst-magneticfield/pst-magneticfield.sty b/Master/texmf-dist/tex/latex/pst-magneticfield/pst-magneticfield.sty
new file mode 100644
index 00000000000..3ae0e4bd760
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pst-magneticfield/pst-magneticfield.sty
@@ -0,0 +1,9 @@
+\RequirePackage{pstricks}
+\RequirePackage{pst-3d}
+\RequirePackage{multido}
+\ProvidesPackage{pst-magneticfield}[2010/05/15 package wrapper for
+ pst-magneticfield.tex]
+\input{pst-magneticfield.tex}
+\ProvidesFile{pst-magneticfield.tex}
+ [\filedate\space v\fileversion\space `pst-magneticfield' (ML&JG)]
+\endinput
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 058be613765..df2f8e8b416 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -245,7 +245,7 @@ my @TLP_working = qw(
pst-eps pst-eucl pst-exa pst-fill
pst-fr3d pst-fractal pst-fun pst-func
pst-gantt pst-geo pst-grad pst-infixplot pst-jtree pst-knot pst-labo
- pst-lens pst-light3d pst-math pst-mirror pst-node
+ pst-lens pst-light3d pst-magneticfield pst-math pst-mirror pst-node
pst-ob3d pst-optexp pst-optic
pst-osci pst-pad pst-pdgr pst-platon pst-plot pst-poly pst-pdf
pst-qtree
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index d581675d0b6..e885c1892e0 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -540,6 +540,7 @@ $Master = "$mydir/../..";
'pst-labo', "&MAKEpst",
'pst-lens', "&MAKEpst",
'pst-light3d', "&MAKEpst",
+ 'pst-magneticfield', "&MAKEpst",
'pst-math', "&MAKEpst",
'pst-mirror', "&MAKEpst",
'pst-node', "&MAKEpst",
diff --git a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
index 9397e17385d..83199663d0b 100644
--- a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
@@ -41,6 +41,7 @@ depend pst-knot
depend pst-labo
depend pst-lens
depend pst-light3d
+depend pst-magneticfield
depend pst-math
depend pst-mirror
depend pst-node
diff --git a/Master/tlpkg/tlpsrc/pst-magneticfield.tlpsrc b/Master/tlpkg/tlpsrc/pst-magneticfield.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/pst-magneticfield.tlpsrc