TeX - LaTeX Asked on April 10, 2021
Is there any possible way to draw Aston curve without using begin{pspicture}
, because here in this website they used it but I didn’t get their method, here’s the code they’ve used :
documentclass{article}
usepackage[T1]{fontenc}
usepackage[latin1]{inputenc}
usepackage[a4paper]{geometry}
usepackage{lmodern}
usepackage{pst-plot,pst-node,pst-blur,url}
usepackage{frenchle}
SpecialCoor
newcommandencadre[2][0.8]{begin{center}
psframebox[fillstyle=solid,fillcolor=blue!20,linestyle=none,shadow=true,shadowcolor=gray,shadowsize=0.15cm,blur=true]{
begin{minipage}{#1linewidth}
{#2}
end{minipage}}
end{center}}
makeatletter
defpnodeAston{defpst@par{}pst@object{pnodeAston}}
defpnodeAston@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}
I prefer if it’s with TikZ, it’s more understandable than this.
Use foreach
with two variables like foreach x/y in {x1/y1,x2/y2...}
.
The list on graph plot below is copied and edited to be on format "x/y," instead of "x y".
Code:
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}
Correct answer by Miguel V. S. Frasson on April 10, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP