summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-01-03 22:29:20 +0000
committerKarl Berry <karl@freefriends.org>2021-01-03 22:29:20 +0000
commit6e95eb9f5ffa8d677a43a498ee09248674790abc (patch)
treed3a44b77349ddff1654a2fa1f1efe78984a29253 /Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
parent044381dbe44969b9b093562cb26d8385ac635cb9 (diff)
mcf2graph (3jan21)
git-svn-id: svn://tug.org/texlive/trunk@57310 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf')
-rw-r--r--Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf141
1 files changed, 77 insertions, 64 deletions
diff --git a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
index 6fa08622710..49c50f02635 100644
--- a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
+++ b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.54 Copyright (c) 2013-2020 Akira Yamaji
+% mcf2graph ver 4.55 Copyright (c) 2013-2021 Akira Yamaji
%
% Permission is hereby granted, free of charge, to any person obtaining a copy of this software
% and associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -38,11 +38,11 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tracingstats:=1;
message "---------------------------------------------";
-message "This is mcf2graph ver 4.54 2020.12";
+message "This is mcf2graph ver 4.55 2021.01";
message "---------------------------------------------";
%-------------------------------------------------------------------------------------------------
-newinternal cntA,cntB,cntM,minX,minY,sftX,sftY,com,par,nA,nB,nC,nD,nE,nF,nN,nP,nU,nP,nL,nR,nS,nW,
- xpos,ypos;
+newinternal cntA,cntB,cntM,minX,minY,maxX,maxY,sftX,sftY,com,par,envT,envB,lenT,lineT,angT,rotT,
+ crR,nA,nB,nC,nD,nE,nF,nN,nP,nU,nP,nL,nR,nS,nW,xpos,ypos,markA,markB,saveA,saveB,bondL;
numeric save_num[],comD[][],parD[][],adrD[][],cntD[],tbl_atom[],tbl_group[][],f_char[],
tbl_atom_wt[],tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],andA[],and_rot[],chargeA[],
com_group[][],par_group[][],cnt_group[],colorA[],colorB[],sumA[],bondC[],hideH[],
@@ -207,8 +207,8 @@ def parameter_list=
offset_bond_gap,thickness_fframe,thickness_mframe,thickness_aframe,offset_thickness,
numberA_start,numberA_end,numberB_start,numberB_end,defaultsize,defaultscale,labeloffset,mangle,
fsize,fmargin,msize,mposition,defaultfont,atomfont,dottedline_gap,
- Me,Et,Pr,Bu,iPr,tBu,CF3,CCl3,CBr3,CH3,NH,NH2,NO2,OH,CHO,COOH,CN,SH,OMe,OEt,SMe,SEt,
- !CH3,!NH2,!NO2,!OH,!CHO,!COOH,!CN,!SH,!2CH3,!2NH2,!2NO2,!2OH,!2CHO,!2COOH,!2CN,!2SH
+ Me,Et,Pr,Bu,iPr,tBu,CH3,NH,NH2,NO2,OH,CHO,COOH,CN,SH,
+ !CH3,!NH2,!NO2,!OH,!CHO,!COOH,!CN,!SH
enddef;
%--------------------------------------------------------------------------------------------------
def ]]]=] ] ] enddef;
@@ -338,13 +338,12 @@ def set_def_MC=
tertiarydef a~b == if known b:: (_tmp_line,b),a else:: _nop,a fi enddef;
tertiarydef a>b == if known b:: (_tmp_env,b),a else:: _nop,a fi enddef;
def # == _connect_at enddef; def @ == _jump_at enddef; primarydef a@#b == a:@,b:# enddef;
- def \ == @,0 enddef; def \\ == \~dm enddef;
- def *\ == \~wf enddef; def \* == \~zf enddef; def *\* == \~wv enddef;
+ def \ == @,0 enddef; def \\ == \~dm enddef; def *\ == \~wf enddef; def \* == \~zf enddef;
+ def *\* == \~wv enddef;
def | == (_com,_mark) enddef; def || == (_com,_moff) enddef; def ||| == (_com,_term) enddef;
def |< == (_com,_len_s) enddef; def >| == (_com,_len_e) enddef;
def |<< == (_com,_len_ss) enddef; def >>| == (_com,_len_ee) enddef;
- def |=primary n == |<,(_chg_len,n) enddef; def =| == >| enddef;
- def :| == (_com,_rest) enddef;
+ def |=primary n == |<,(_chg_len,n) enddef; def =| == >| enddef; def :| == (_com,_rest) enddef;
def /secondary n == if known n:: (_group_si,n) else:: _nop fi enddef;
def //secondary n == /n~dm enddef; def */secondary n == /n~wf enddef;
def /*secondary n == /n~zf enddef; def */*secondary n == /n~wv enddef;
@@ -412,7 +411,7 @@ enddef;
%-------------------------------------------------------------------------------------------------
def fuse_ring_bonds(expr a,b,c) =
CP(_jp_bond,xpart(a)) CP(_rot_ang,180) CP(_com,_len_s)
- if b==6:: CP(_chg_len,_ring_len) for i==1 upto c-1:: CP(_mk_bond,60) endfor
+ if b==6:: CP(_chg_len,1) for i==1 upto c-1:: CP(_mk_bond,60) endfor
elseif b==5:: if c==2:: CP(_chg_len,1.25) CP(_mk_bond,80)
elseif c==3:: CP(_chg_len,1.1) CP(_mk_bond,78) CP(_mk_bond,72) fi
elseif b==4:: CP(_chg_len,1.225) CP(_mk_bond,105) fi
@@ -464,9 +463,18 @@ vardef change_atom(expr a,b)=
parts_int:=parts_int+1;
nCP:=0;
if numeric b::
- if (b>=H)and(b<=U):: CPe(a)(_chg_atom,b)
- ef b==NH:: CPe(a)(_chg_atom,N) CP(_tmp_line,nl)
- CP(_com,_group_s) CPx(a)(_group_si,H) CP(_com,_group_e)
+ if (b GT parts_emb_start)and(b<=parts_atom_end):: CPe(a)(_chg_atom,b)
+ ef b==NH:: CPe(a)(_chg_atom,N) CP(_tmp_line,nl)
+ CP(_com,_group_s) CPx(a)(_group_si,H) CP(_com,_group_e)
+ ef b==N!:: CPe(a)(_chg_atom,N) CP(_com,_group_s) CPx(a)(_group_si,_) CP(_com,_group_e)
+ ef b==N!2:: CPe(a)(_chg_atom,N) CP(_com,_group_s) CPx(a)(_group_si,!) CP(_com,_group_e)
+ ef b==??:: CP(_com,_group_s) CP(_tmp_rot,35) CPx(a)(_group_si,_)
+ CP(_tmp_rot,-35) CPx(a)(_group_si,_) CP(_com,_group_e)
+ ef b==SOO:: CPe(a)(_chg_atom,S) CP(_com,_group_s)
+ CP(_tmp_line,dm) CP(_tmp_rot,35) CPx(a)(_group_si,O)
+ CP(_tmp_line,dm) CP(_tmp_rot,-35) CPx(a)(_group_si,O) CP(_com,_group_e)
+ ef b==SO:: CPe(a)(_chg_atom,S) CP(_com,_group_s) CP(_tmp_line,dm)
+ CPx(a)(_group_si,O) CP(_com,_group_e)
ef b==_jump_at:: CP(_jp_atom,a)
ef b==_connect_at:: CP(_cyc,a)
fi
@@ -739,9 +747,8 @@ enddef;
%-------------------------------------------------------------------------------------------------
def MC(text TXT)=
begingroup
- save markA,markB,saveA,saveB,f_bra,envT,envB,lenT,lineT,strAT,cnt_group,bondL,temp_lenE,
- temp_lenF,temp_cntB,f_end,f_term,rotT,f_at,f_lineT,f_rotT,f_lenT,f_envT,angT,
- maxX,maxY,sA,sC,factor,m_wd,m_ht,crR,defaultsize,defaultscale;
+ save f_bra,strAT,cnt_group,temp_lenE,temp_lenF,temp_cntB,f_end,f_term,f_at,f_lineT,f_rotT,
+ f_lenT,f_envT,sA,sC,factor,m_wd,m_ht,defaultsize,defaultscale;
%-----------------------------------------------------------------------------------------------
string sA,sC;
%-----------------------------------------------------------------------------------------------
@@ -1251,7 +1258,7 @@ enddef;
%=================================================================================================
parts_int:=parts_emi_start;
parts_cnt:=parts_emb_start;
-%=================================================================================================
+%-------------------------------------------------------------------------------------------------
C:= STa("C" ,12.0107, 12.0000000); H:= STa("H" , 1.00794, 1.00782503223);
Al:=STa("{Al}",26.9815, 26.98153853); As:=STa("{As}",74.9216, 74.92159457);
B:= STa("B" ,10.811, 11.00930536); Br:=STa("{Br}",79.904, 78.9183376);
@@ -1271,54 +1278,54 @@ U:= STa("U", 238.0289, 238.05079); Zn:=STa("{Zn}",65.409, 63.929142
tbl_atom_end:=tbl_cnt;
%-------------------------------------------------------------------------------------------------
CH3:=STb("C{H_3_}")(C,H,H,H); CH2:=STb("C{H_3_}")(C,H,H); CN:=STb("CN")(C,N); OH:=STb("OH")(O,H);
-CF3:=STb("C{F_3_}")(C,F,F,F); COOH:=STb("COOH")(C,O,O,H); SH:= STb("SH")(S,H);
-CHO:= STb("CHO")(C,H,O); NO2:=STb("N{O_2_}")(N,O,O); NH2:=STb("N{H_2_}")(N,H,H);
-H2:= STb("{H_2_}")(H,H); ONa:=STb("O{Na}")(O,Na); SO3:= STb("S{O_3_}")(S,O,O,O);
+COOH:=STb("COOH")(C,O,O,H); SH:= STb("SH")(S,H); CHO:=STb("CHO")(C,H,O);
+NO2:=STb("N{O_2_}")(N,O,O); NH2:=STb("N{H_2_}")(N,H,H);
+ONa:=STb("O{Na}")(O,Na); SO3Na:=STb("S{O_3_}{Na}")(S,O,O,O,Na);
+%-------------------------------------------------------------------------------------------------
+str_plus:=str_cnt;
+N[1]:=STb("{N^+^}")(N); H[1]:=STb("{H^+^}")(H); Na[1]:=STb("{Na^+^}")(Na); K[1]:=STb("{K^+^}")(K);
+NH3[1]:= STb("{N^+^}{H_3_}")(N,H,H,H); NH4[1]:= STb("{N^+^}{H_4_}")(N,H,H,H,H);
+S[1]:= STb("{S^+^}")(S);
+str_minus:=str_cnt;
+O[-1]:=STb("{O^-^}")(O); COO[-1]:=STb("COO^-^")(C,O,O); SO3[-1]:=STb("S{O_3_}^-^")(S,O,O,O);
+Cl[-1]:=STb("{Cl^-^}")(Cl); Br[-1]:=STb("{Br^-^}")(Br); I[-1]:=STb("{I^-^}")(I);
%-------------------------------------------------------------------------------------------------
-Br[-1]:=STb("{Br^-^}")(Br); Cl[-1]:=STb("{Cl^-^}")(Cl);
-N[1]:= STb("{N^+^}")(N); N[-1]:= STb("{N^-^}")(N);
-O[1]:= STb("{O^p^}")(O); O[-1]:= STb("{O^-^}")(O);
-S[1]:= STb("{S^p^}")(S); S[-1]:= STb("{S^m^}")(S);
+str_minus_end:=str_cnt;
tbl_group_end:=tbl_cnt;
+parts_atom_end:=parts_cnt;
%=================================================================================================
-lr:='(60 for i==1 upto 10:: ,-60,60 endfor); rl:='(-60,lr);
for i==3 upto 20: ?[i]:='(|<<,(_get_len,_ring_len),<((-180 DIV i)-90)
for j==2 upto i:: ,(360 DIV i) endfor,(_cyc_sB,1-i),>>|); endfor
Ph:=Ph1:='(?6,-2=dl,-4=dl,-6=dl); Ph2:='(?6,-1=dl,-3=dl,-5=dl);
!:=!1:='((_mk_bond,_arg_ang)); !!:='(!~db); !!!:='(!~tm);
for i==2 upto 20: ![i]:='(|<<,(_get_len,_tmp_len),! for j==2 upto i::,! endfor ,>>|); endfor
-Me:='(); Et:='(!); Pr:='(!,!); Bu:='(!,!,!);
-for i=4,5,6: for j=2 upto i-2: ?[i][j]:='((_fuse,i),(j,0)); endfor endfor
-for i=5,6,7,8: for j=11 upto 15: ?[i][j]:='((_fuse,i),(j,0)); endfor endfor
+Me:='(); Et:='(!); Pr:='(!,!); Bu:='(!,!,!); iPr:=?!:='(/_,!); tBu:=??!:='(/_,/_^60,60);
%-------------------------------------------------------------------------------------------------
-NH:='(N,/H~nl); NMe:=N!:='(N,/_); iPr:=Me!:='(/_,60); tBu:='(/_,/_^60,60);
-SO:='(S,//O); SOO:='(S,//O^-35,//O^35);
-OMe:=O!:='(O,!); OEt:=O!2:='(O,!,!); OPr:=O!3:='(O,!,!,!); OiPr:=OMe!:='(O,!,iPr);
-SMe:=S!:='(S,!); SEt:=S!2:='(S,!,!); SPr:=S!3:='(S,!,!,!); SiPr:=SMe!:='(S,!,iPr);
+NH:='(N,/H~nl); N!:='(N,/_); N!2:='(N,/!); SO:='(S,//O); SOO:='(S,//O^-35,//O^35);
+O!:='(O,!); O!2:='(O,!,!); O!3:='(O,!,!,!); O!?!:='(O,!,?!); O!??!:='(O,!,??!);
+S!:='(S,!); S!2:='(S,!,!); S!3:='(S,!,!,!); S!?!:='(S,!,?!); S!??!:='(S,!,??!);
%-------------------------------------------------------------------------------------------------
-COO:='(//O,!,O); COOMe:=COO!:='(COO,!); COOEt:=COO!2:='(COO,!,!); COOiPr:=COOMe!:='(COO,!,iPr);
-COOPr:=COO!3:='(COO,!,!,!); COOtBu:='(COO,!,tBu);
-COMe:=CO!:='(//O,!); COEt:=CO!2:='(//O,!,!); COPr:=CO!3:='(//O,!,!,!);
-OCOMe:=OCO!:='(O,!,//O,!); NMeMe:=NMe!:=N!_:='(N!,!); NMeEt:=NMe!2:=N!2_:='(N!,!,!);
-NHMe:=NH!:='(NH,!); NHEt:=NH!2:='(NH,!,!); NHPr:=NH!3:='(NH,!,!,!);
+COO:='(//O,!,O); COO!:='(COO,!); COO!2:='(COO,!,!); COO!??:='(COO,!,?!); COO!3:='(COO,!,!,!);
+CO!:='(//O,!); CO!2:='(//O,!,!); CO!3:='(//O,!,!,!); OCO!:='(O,!,//O,!);
+N?!:='(N!,!); N?!2:='(N!,!,!); NH!:='(NH,!); NH!2:='(NH,!,!); NH!3:='(NH,!,!,!);
+NH!?!:='(NH,!,?!); NHCO!:='(NH,!,//O,!); CONH2:='(//O,!,NH2); ??:='(/_^35,/_^-35);
%-------------------------------------------------------------------------------------------------
-!OH:='(!,OH); !SH:='(!,SH); !NH2:='(!,NH2);
-!COMe:=!CO!:='(!,//O,!); !COEt:=!CO!2:='(!,CO!2); !COPr:=!CO!3:='(!,CO!3);
-!OMe:=!O!:='(!,O!); !OEt:=!O!2:='(!,O!2); !OPr:=!O!3:='(!,O!3); !OiPr:=!OMe!:='(!,OMe!);
-!SMe:=!S!:='(!,S!); !SEt:=!S!2:='(!,S!2); !SPr:=!S!3:='(!,S!3); !SiPr:=!SMe!:='(!,SMe!);
-!NHMe:=!NH!:='(!,NH!); !NHEt:=!NH!2:='(!,NH!2); !NHPr:=!NH!3:='(!,NH!3);
-!COOH:='(!,COOH); !COOMe:=!COO!:='(!,COO!); !COOEt:=!COO!2:='(!,COO!2);
-!CH3:='(!,CH3); !CN:='(!,CN); !iPr:=!Me!:='(!,iPr); !tBu:='(!,tBu);
+!OH:='(!,OH); !SH:='(!,SH); !NH2:='(!,NH2); !CO!:='(!,//O,!); !CO!2:='(!,CO!2); !CO!3:='(!,CO!3);
+!O!:='(!,O!); !O!2:='(!,O!2); !O!3:='(!,O!3);
+!S!:='(!,S!); !S!2:='(!,S!2); !S!3:='(!,S!3);
+!NH!:='(!,NH!); !NH!2:='(!,NH!2); !NH!3:='(!,NH!3);
+!COOH:='(!,COOH); !COO!:='(!,COO!); !COO!2:='(!,COO!2);
+!CH3:='(!,CH3); !CN:='(!,CN); !?!:='(!,?!); !??!:='(!,??!);
!CHO:='(!,CHO); !NO2:='(!,NO2); !Cl:='(!,Cl); !Br:='(!,Br); !F:='(!,F);
!?3:='(!,?3); !?4:='(!,?4); !?5:='(!,?5); !?6:='(!,?6); !?7:='(!,?7); !?8:='(!,?8); !Ph:='(!,Ph);
%-------------------------------------------------------------------------------------------------
-!2OH:='(!,!,OH); !2COOH:='(!,!,COOH); !2NH2:='(!,!,NH2); !2CN:='(!,!,CN); !2NO2:='(!,!,NO2);
-!2CH3:='(!,!,CH3); !2CHO:='(!,!,CHO); !2SH:='(!,!SH); !2tBu:='(!,!,tBu); !2Cl:='(!,!,Cl);
-!2?5:='(!,!,?5); !2?6:='(!,!,?6); !2Ph:='(!,!,Ph);
-%-------------------------------------------------------------------------------------------------
CF2:='(/F,60,F); CCl2:='(/Cl,60,Cl); CBr2:='(/Br,60,Br);
CF3:='(/F,/F^60,60,F); CCl3:='(/Cl,/Cl^60,60,Cl); CBr3:='(/Br,/Br^60,60,Br);
%-------------------------------------------------------------------------------------------------
+lr:='(60 for i==1 upto 10:: ,-60,60 endfor); rl:='(-60,lr);
+for i=4,5,6: for j=2 upto i-2: ?[i][j]:='((_fuse,i),(j,0)); endfor endfor
+for i=5,6,7,8: for j=11 upto 15: ?[i][j]:='((_fuse,i),(j,0)); endfor endfor
+%-------------------------------------------------------------------------------------------------
R:='("R"); R1:='("{R^1^}"); R2:='("{R^2^}"); R3:='("{R^3^}"); R4:='("R^4^"); R5:='("{R^5^}");
R6:='("R6"); R7:='("{R^7^}"); R8:='("{R^8^}"); R9:='("{R^9^}"); R10:='("R^10^"); R11:='("{R^11^}");
%-------------------------------------------------------------------------------------------------
@@ -1327,14 +1334,13 @@ xCHO:='(//O,!,H); xCOOH:='(//O,!,O,!,H); xCN:='(!~tm,N); xSH:='(S,!,H);
%=================================================================================================
init_par(parameter_list);
%-------------------------------------------------------------------------------------------------
-%%message "parts_emb =" & decimal(parts_emb_start) &" => " & decimal(parts_cnt);
-%%message "parts_emi =" & decimal(parts_emi_start) &" => " & decimal(parts_int);
+%%%%message "parts_emb =" & decimal(parts_emb_start) &" => " & decimal(parts_cnt);
+%%%%message "parts_emi =" & decimal(parts_emi_start) &" => " & decimal(parts_int);
%-------------------------------------------------------------------------------------------------
def expand_set=
CH3:=xCH3; NH:=xNH; NH2:=xNH2; NO2:=xNO2; OH:=xOH; CHO:=xCHO; COOH:=xCOOH; CN:=xCN; SH:=xSH;
!CH3:='(!,CH3); !OH:='(!,OH); !NH2:='(!,NH2); !CHO:='(!,CHO); !COOH:='(!,COOH); !CN:='(!,CN);
- !SH:='(!,SH); !NO2:='(!,NO2); !2CH3:='(!,!CH3); !2OH:='(!,!OH); !2NH2:='(!,!NH2);
- !2CHO:='(!,!CHO); !2COOH:='(!,!COOH); !2CN:='(!,!CN); !2SH:='(!,!SH); !2NO2:='(!,!NO2);
+ !SH:='(!,SH); !NO2:='(!,NO2);
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def char_size_set(expr WD)(expr HT)(expr STR)=
@@ -1503,7 +1509,9 @@ vardef fdl(expr n)(expr s)=fixed_l(n)(decimal(s)) enddef;
def warning(expr s)= message "% "&decimal(char_num)&fdr(3)(incr warning_cnt)&")"&s; enddef;
%-------------------------------------------------------------------------------------------------
def warning_bond(expr a)=
- warning("A"&decimal(a)&" ( "&fixed_l(8)(strD[numS[a]])&") has"&fdr(2)(bond_cnt)&" bonds");
+ if andA[a]=0:
+ warning("A"&decimal(a)&" ( "&fixed_l(8)(strD[numS[a]])&") has"&fdr(2)(bond_cnt)&" bonds");
+ fi
enddef;
%-------------------------------------------------------------------------------------------------
vardef cut_paren(expr ATOM)=
@@ -1515,24 +1523,28 @@ enddef;
%=================================================================================================
def proc_calc=
begingroup
- save warning_cnt,MWp,knownA,bondC,tmp_wtp,bond_cnt,cnt_hide_H;
- cnt_hide_H:=warning_cnt:=num_MW:=num_MI:=MWp:=tbl_atom_max:=0;
+ save warning_cnt,MWp,knownA,bondC,tmp_wtp,bond_cnt,hideH_cnt;
+ hideH_cnt:=warning_cnt:=num_MW:=num_MI:=MWp:=tbl_atom_max:=0;
nE:=parts_emb_start;
for i=1 upto tbl_atom_end: sumA[i]:=0; endfor
for i=1 upto cntA:
+ if (numS[i]>str_plus)and(numS[i]<=str_minus): chargeA[i]:=1;
+ elseif (numS[i]>str_minus)and(numS[i]<=str_minus_end): chargeA[i]:=-1;
+ fi
knownA:=bond_cnt:=0;
nS:=numS[i];
for j=1 upto cntB:
if (lineB[j]>=dl)and(lineB[j]<=dm): bondC[j]:=2;
ef lineB[j]=tm: bondC[j]:=3;
ef (lineB[j]=vf)or(lineB[j]=vb): bondC[j]:=0;
+ ef lineB[j]=0: bondC[j]:=0;
else: bondC[j]:=1;
fi
if (sB[j]=i)or(eB[j]=i): bond_cnt:=bond_cnt+bondC[j]; fi
endfor
Bcnt[i]:=bond_cnt;
if ((nS=0)or(nS=(C-nE)))and(bond_cnt<4):
- hideH[i]:=4-bond_cnt; cnt_hide_H:=cnt_hide_H+hideH[i]; else: hideH[i]:=0;
+ hideH[i]:=4-bond_cnt; hideH_cnt:=hideH_cnt+hideH[i]; else: hideH[i]:=0;
fi
if nS=0: if bond_cnt>4: warning_bond(i) fi
ef nS=(O-nE): if bond_cnt<>2: warning_bond(i) fi
@@ -1565,7 +1577,8 @@ def proc_calc=
if knownA=0: warning(" Unknown Str("&strD[numS[i]]&") is used "&decimal(i)); fi
endfor
%-------------------------------------------------------------------------------------
- sumA[2]:=sumA[2]+cnt_hide_H;
+ sumA[2]:=sumA[2]+hideH_cnt;
+ if (tbl_atom_max=1)and(sumA[2]>0): tbl_atom_max:=2; fi
for i=1 upto tbl_atom_max:
if sumA[i]>=1:
nA:=tbl_atom_wt[i]/100*sumA[i];
@@ -1640,15 +1653,15 @@ def proc_report_out=
printf " Shift width * height = "& fdr(10)(minX)&" * "&fdr(10)(minY);
printf " Bond length = "&fdr(3)(blen)&" Atom size = "&fdr(3)(atom_wd);
printf " Atom count="&fdr(3)(cntA)&" Bond count="&fdr(3)(cntB)&
- " Ring count="&fdr(3)(cntB-cntA+1)&" Hide H count="&fdr(3)(cnt_hide_H);
+ " Ring count="&fdr(3)(cntB-cntA+1)&" Hide H count="&fdr(3)(hideH_cnt);
printf "------------------------------------------------------------------";
- printf "< NO. >( x axis , y axis )< atom >< bond >< hideH >< chg >";
+ printf "< NO. >( x axis , y axis )< atom(s) ><bond><hideH><chg>";
for i=1 upto cntA:
printf " A"&fdl(4)(i)&" ("&fdr(10)(round_auto(xpart(posA[i])/blen))&" , "&
- fdr(10)(round_auto(ypart(posA[i])/blen))&" ) "&fixed_l(8)(strD[numS[i]])&
- " "&fdr(3)(Bcnt[i])
- &iif(hideH[i]>0,fdr(8)(hideH[i])," ")
- if chargeA[i]<>0: &fdr(8)(chargeA[i]) fi;
+ fdr(10)(round_auto(ypart(posA[i])/blen))&" ) "&
+ fixed_l(12)(strD[numS[i]])&" "&fdr(3)(Bcnt[i])
+ &iif(hideH[i]>0,fdr(6)(hideH[i])," ")
+ if chargeA[i]<>0: &fdr(4)(chargeA[i]) fi;
endfor
printf "------------------------------------------------------------------";
printf "< NO. >< bond (sdt)><angle + ( +- )><length ( pt )>";