如何使用 TikZ 绘制阿斯顿曲线?

如何使用 TikZ 绘制阿斯顿曲线?

在此处输入图片描述

有没有可能的方法来绘制阿斯顿曲线而不使用\begin{pspicture},因为在这个网站上他们使用了它,但我没有得到他们的方法,这是他们使用的代码:

 \documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{lmodern}
\usepackage{pst-plot,pst-node,pst-blur,url}
\usepackage{frenchle}
\SpecialCoor
\newcommand\encadre[2][0.8]{\begin{center}
\psframebox[fillstyle=solid,fillcolor=blue!20,linestyle=none,shadow=true,shadowcolor=gray,shadowsize=0.15cm,blur=true]{
  \begin{minipage}{#1\linewidth}
  {#2}
  \end{minipage}}
\end{center}}
\makeatletter
\def\pnodeAston{\def\pst@par{}\pst@object{pnodeAston}}
\def\pnodeAston@i(#1,#2,#3)#4{{%
  \begin@ClosedObj
\pnode(!%
    /m_e 0.000549 def % masse de l'électron
    /m_n 1.008665 def % masse du neutron
    /m_p 1.007287 def % masse du proton
    /u 931.5 def % unité de masse atomique en MeV
    /N_nu #1 def % nombre de nucléons
    /N_p #2 def  % nombre de protons
    /m_A #3 def  % masse atomique en u
    /N_ne N_nu N_p sub def % nombre de neutrons
    /M_c N_p m_p mul N_ne m_n mul add def % masse des constituants
    /M_nu m_A N_p m_e mul sub def % masse des nucléons
    /D_m M_c M_nu sub def % défaut de masse
    /Energy D_m u mul def % Énergie de liaison du noyau
    /E_B Energy N_nu div def  % Énergie de liaison du noyau/nucléon
    /x_A N_nu 20 div def
    x_A
    E_B neg
 ){#4}%
   \end@ClosedObj}}
\makeatother
\savedata{\NucleonsEnergy}[ %
 2 -1.12
 3 -2.83
 3 -2.58
 4 -7.08
 6 -5.34
 7 -5.61
 9 -6.47
 10 -6.48
 11 -6.93
 12 -6.032
 13 -7.47
 15 -7.7
 19 -7.78
 23 -8.11
 27 -8.33
 35 -8.52
 40 -8.55
 45 -8.62
 52 -8.78
 56 -8.79
 58 -8.74
 63 -8.76
 69 -8.73
 75 -8.7
 85 -8.7
 93 -8.67
 94 -8.597
 98 -8.64
 109 -8.55
 120 -8.51
 127 -8.45
 133 -8.42
 139 -8.312
 140 -8.376
 165 -8.15
 184 -8.01
 200 -7.91
 210 -7.84
 235 -7.591
 238 -7.57]
 %
%
\savedata{\NucleonsEnergyClip}[ %
 40 -8.55
 45 -8.62
 52 -8.78
 56 -8.79
 58 -8.74
 63 -8.76
 69 -8.73
 75 -8.7
 85 -8.7
 93 -8.67
 94 -8.597
 98 -8.64
 109 -8.55
 120 -8.51
 127 -8.45
 133 -8.42
 139 -8.312
 140 -8.376
 ]
\title{Courbe d'\textsc{Aston}}
\author{Manuel Luque}
\date{29 octobre 2\,006}
\begin{document}
\maketitle
\begin{abstract}
C'est un essai de dessin de la courbe d'\textsc{Aston}, laquelle représente l'opposé de l'énergie de liaison par nucléon en fonction du nombre de
nucléons, avec une commande \verb+\pnodeAston+ permettant de placer sur la courbe un noyau quelconque défini par le triplet $(A,Z,\mathrm{m})$ où
$A$ est le nombre de nucléons, $Z$ le nombre de protons et $\mathrm{m}$ la masse atomique en unité de masse atomique.
\end{abstract}
\section{Courbe d'Aston}
\begin{center}
\begin{pspicture}(0,2)(12,-10)
\pnodeAston(190,74,189.96318){W190}
\pnodeAston(40,20,39.96259){Ca40}
\pscustom[linestyle=none]{%
\psline(W190)(!190 20 div 0)\psline(!190 20 div 0)(!40 20 div 0)
\psline(!40 20 div 0)(Ca40)
\listplot[xunit=0.05]{\NucleonsEnergyClip}
\fill[fillstyle=solid,fillcolor=yellow!50]}%
\listplot[xunit=0.05,showpoints=true]{\NucleonsEnergy}
\psgrid[gridlabels=0pt,subgriddiv=0](12,-10)%
\psaxes[Dx=20,xunit=0.05](240,-10)
\psline[xunit=0.05]{->}(250,0)
\uput[u](12.5,0){$A$}
\psline{->}(0,1)
\uput[r](0,1){$\displaystyle -\frac{E_l}{A}$ en MeV par nucléon}
% fission
\psset{dotsize=6pt}
\pnodeAston(235,92,235.0439){U235}
\psdot[dotstyle=o,dotsize=7pt](U235)
\psdot[linecolor=red](U235)
\uput[d](U235){$\mathrm{^{235}_{\hphantom{2}{92}}U}$}%
\pnodeAston(139,54,138.918793){Xe139}
\uput[d](Xe139){$\mathrm{^{139}_{\hphantom{1}{54}}Xe}$}
\pnodeAston(94,38,93.915361){Sr94}
\uput[d](Sr94){$\mathrm{^{94}_{{38}}Sr}$}
\nccurve[angleA=120,angleB=60,arrowsize=.2,arrowinset=0.2,linecolor=red,nodesepB=5pt]{->}{U235}{Xe139}
\nccurve[angleA=120,angleB=60,arrowsize=.2,arrowinset=0.2,linecolor=red,nodesepB=5pt]{->}{U235}{Sr94}
\psdot[dotstyle=o,dotsize=7pt](Xe139)
\psdot[dotstyle=o,dotsize=7pt](Sr94)
\psdot[linecolor=red](Xe139)\psdot[linecolor=red](Sr94)
% fusion
\pnodeAston(2,1,2.014101){H2}
\psdot[dotstyle=o,dotsize=7pt](H2)
\psdot[linecolor=green](H2)
\uput[r](H2){$\mathrm{^2_2H}$}%
\pnodeAston(3,1,3.016049){H3}
\psdot[dotstyle=o,dotsize=7pt](H3)
\psdot[linecolor=green](H3)
\uput[r](H3){$\mathrm{^3_1H}$}
\pnodeAston(4,2,4.002603){He4}
\uput[d](He4){$\mathrm{^4_2He}$}
\nccurve[angleA=0,angleB=30,arrowsize=.2,arrowinset=0.2,linecolor=green,nodesepB=5pt]{->}{H2}{He4}
\nccurve[angleA=0,angleB=30,arrowsize=.2,arrowinset=0.2,linecolor=green,nodesepB=5pt]{->}{H3}{He4}
\psdot[dotstyle=o,dotsize=7pt](He4)
\psdot[linecolor=green](He4)
\pnodeAston(56,26,55.934937){Fe}
\psdot[dotstyle=o,dotsize=7pt](Fe)
\psdot[linecolor=blue](Fe)
\uput[d](Fe){\blue$\mathrm{^{56}_{26}Fe}$}
\end{pspicture}
\end{center}
\section{Quelques considérations}
Les calculs sont faits en \textsf{postscript} en utilisant les relations classiques pour déterminer
l'énergie de liaison des noyaux. S'agissant de calculs relativement simples, ceux-ci pourraient aussi bien
être effectués en \TeX{}, peut-être dans une autre version ? Y-a-t-il un volontaire ?
 
La courbe est tracée à partir d'un fichier de valeurs pré-calculées, qui peut lui aussi, être complété :
\encadre[0.62]{$\mathsf{\backslash listplot[xunit=0.05,showpoints=true]\{\backslash NucleonsEnergy\}}$}
Par contre les calculs de la commande :
\encadre[0.25]{$\mathsf{\backslash pnodeAston(A,Z,m)\{X\}}$} sont effectués, comme précisé ci-dessus, en \textsf{postscript}.
\begin{verbatim}
    /m_e 0.000549 def % masse de l'électron
    /m_n 1.008665 def % masse du neutron
    /m_p 1.007287 def % masse du proton
    /u 931.5 def % unité de masse atomique en MeV
    /N_nu #1 def % nombre de nucléons
    /N_p #2 def  % nombre de protons
    /m_A #3 def  % masse atomique en u
    /N_ne N_nu N_p sub def % nombre de neutrons
    /M_c N_p m_p mul N_ne m_n mul add def % masse des constituants
    /M_nu m_A N_p m_e mul sub def % masse des nucléons
    /D_m M_c M_nu sub def % défaut de masse
    /Energy D_m u mul def % Énergie de liaison du noyau
    /E_B Energy N_nu div def  % Énergie de liaison du noyau/nucléon
\end{verbatim}
\section{Un tableau de quelques masses atomiques}
Ce tableau ne demande, évidemment, qu'à être complété.
\begin{center}
\input{massesatomiques.tex}
\end{center}
\section{Quelques références}
Les données concernant les masses atomiques et les énergies de liaison sont sur le site :
\encadre[0.65]{\url{http://www-nds.iaea.org/masses/mass.mas03round}}
\end{document}

我更喜欢使用 TikZ,它比这更容易理解。

答案1

\foreach与两个变量一起使用,如\foreach \x/\y in {x1/y1,x2/y2...}

下方图表上的列表被复制并编辑为“x/y”格式,而不是“x y”。

输出: 代码输出

代码:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
  % x-axis
  \draw[->] (-0.3,0) -- (240*0.05+1,0) node[above] {$A$};

  % y-axis
  \draw[->] (0,-10.3) -- (0,1) node[right] {$-\frac{E_\ell}{A}$ (MeV par nucl\'eon)};

  % grid and labels
  \foreach \x in {20,40,...,240}
  {
    \draw (\x*0.05,0) node[above] {\small \x};
    \draw[lightgray] (\x*0.05,0) -- ++(0,-10);
  }
  \foreach \y in {-10,-9,...,-1}
  {
    \draw (0,\y) node[left] {\small \y};
    \draw[lightgray] (0,\y) -- ++(240*0.05,0);
  }
  \draw (0,0) node[above left] {0};
  
  % graph  
  \draw[fill=black] (2*0.05,-1.12) % first point here 
  \foreach \x/\y in {
    2/-1.12, % ... and here
    3/-2.83,
    3/-2.58,
    4/-7.08,
    6/-5.34,
    7/-5.61,
    9/-6.47,
    10/-6.48,
    11/-6.93,
    12/-6.032,
    13/-7.47,
    15/-7.7,
    19/-7.78,
    23/-8.11,
    27/-8.33,
    35/-8.52,
    40/-8.55,
    45/-8.62,
    52/-8.78,
    56/-8.79,
    58/-8.74,
    63/-8.76,
    69/-8.73,
    75/-8.7,
    85/-8.7,
    93/-8.67,
    94/-8.597,
    98/-8.64,
    109/-8.55,
    120/-8.51,
    127/-8.45,
    133/-8.42,
    139/-8.312,
    140/-8.376,
    165/-8.15,
    184/-8.01,
    200/-7.91,
    210/-7.84,
    235/-7.591,
    238/-7.57}
  {  -- (\x*0.05,\y) circle[radius=0.05] };

  % FE label
  \draw[red,fill] (56*0.05,-8.79) circle[radius=0.06]
     node[below] {$^{56}_{26}$Fe};
\end{tikzpicture}

\end{document}

相关内容