![如何使用 TikZ 绘制阿斯顿曲线?](https://linux22.com/image/427296/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20TikZ%20%E7%BB%98%E5%88%B6%E9%98%BF%E6%96%AF%E9%A1%BF%E6%9B%B2%E7%BA%BF%EF%BC%9F.png)
有没有可能的方法来绘制阿斯顿曲线而不使用\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}