diff options
Diffstat (limited to 'graphics/mcf2graph/mcf2graph.mp')
-rw-r--r-- | graphics/mcf2graph/mcf2graph.mp | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/graphics/mcf2graph/mcf2graph.mp b/graphics/mcf2graph/mcf2graph.mp index cffbaa6fe6..ba2c36b292 100644 --- a/graphics/mcf2graph/mcf2graph.mp +++ b/graphics/mcf2graph/mcf2graph.mp @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf2graph ver 5.10 Copyright (c) 2013-2024 Akira Yamaji +% mcf2graph ver 5.11 Copyright (c) 2013-2024 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, @@ -22,7 +22,7 @@ % This package is located at : http://www.ctan.org/pkg/mcf2graph % Suggestion or request mail to : mcf2graph@gmail.com %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -message "* This is mcf2graph ver 5.10 2024.01.03"; +message "* This is mcf2graph ver 5.11 2024.01.21"; tracingstats:=1; prologues:=3; warningcheck:=0; %------------------------------------------------------------------------------------------------- newinternal string EN_; @@ -33,7 +33,7 @@ string row[][],save_str[],tbl_atom_str[],str_tbl[],arg_s[],mc[],ex[],ad[],op[], lib_tag[][],lib_val[][],mc,ex,ad,op,aux_delimiter,default_library,EN,FM,MW,MI,CAT,JN,CAS, USE,EXA,EXB,file_input,file_output,default_temp_file,mpfont,atomfont,tempc,temps,blanks, sC,sI,sS,sT,sV,forbiddens; -pair save_pair[],msize,mposition,fsize,fmargin,dum,save_mposition; +pair save_pair[],msize,mposition,fsize,fmargin,dum,save_mposition,?,?O,?w,?z; %------------------------------------------------------------------------------------------------- fig_num:=str_cnt:=tbl_cnt:=mangle:=sw_frame:=sw_trimming:=sw_ext_all:=sw_abbreviate:=sw_expand:=0; sw_comment:=sw_output:=sw_numbering:=tag_cnt:=rw_cnt:=pcode_all:=0; @@ -340,7 +340,7 @@ def read_mcf(expr n)(text t)= if unknown inside_mc:: save /,//,/*,*/,**,*/*,~,^,',`,<,>,:,=,+,\,\\,*\,\*,*\*,@,@$,$,&,&$,#,##,{,},|,||,_, --,---,----,CP,CA,CC,DL,FR,inside_mc; - inside_mc:=1; | :=mark_adress; || :=reset_adress; ##:=reset_length; _:=Me; + inside_mc:=1; | :=mark_adress; || :=reset_adress; ##:=reset_length; _:=NO_ATOM; \:=0; \\:=zero_dm; *\:=zero_wf; \*:=zero_zf; *\*:=zero_wv; let = ==op_equ; let : ==op_col; let ^==op_hat; let ~==op_til; let > ==op_lth; let `==op_bqu; let -- == bond__bond; let --- == bond___bond; let ---- == bond____bond; @@ -821,7 +821,9 @@ def add_group= if envT<>hz: store_group(_chg_env,envT) fi if lineT=nl: store_group(_chg_len,_size_atom) store_group(_adj_ang,0) fi if lineT<>nb: store_group(_mk_bond,0) fi - for i=1 upto pcode_cnt[nP]: store_group(pcode_com[nP][i],pcode_par[nP][i]) endfor + if nP<>NO_ATOM: + for i=1 upto pcode_cnt[nP]: store_group(pcode_com[nP][i],pcode_par[nP][i]) endfor + fi store_group(_com,_len_e) store_group(_chg_env,hz) store_group(_com,_term) if f_lineT=0: lineT:=si; fi if f_lenT=0: lenT:=rate_cr; fi @@ -1391,6 +1393,7 @@ Sn:=TA("{Sn}",118.71, 119.90220163); Ta:=TA("{Ta}",180.948, 0); Te:=TA("{Te}",127.60, 129.90623); Ti:=TA("{Ti}",47.867, 47.94794198); U:= TA("U", 238.0289, 238.05079); V:= TA("V", 50.9415, 50.943957); W:= TA("W", 183.85, 181.948225); Zn:=TA("{Zn}",65.409, 63.92914201); +NO_ATOM:=TA("",0,0); tbl_atom_end:=tbl_cnt; %------------------------------------------------------------------------------------------------- if sw_expand=0: @@ -1403,19 +1406,21 @@ fi %------------------------------------------------------------------------------------------------- tbl_group_end:=tbl_cnt; pcode_atom_end:=pcode_num; %================================================================================================= +?:=(_group_si,NO_ATOM); ?w:=(_group_wf,NO_ATOM); ?z:=(_group_zf,NO_ATOM); ?O:=(_group_dm,O); for i=3 upto 20: ?[i]:='((_com,_len_ss),(_get_len,_ring_len),<((-180 DIV i)-90) for j==2 upto i:: ,(360 DIV i) endfor,(_cyc_sB,1-i),(_com,_len_ee)); endfor -Ph:=Ph1:='(?6,-2=dl,-4=dl,-6=dl); Ph2:='(?6,-1=dl,-3=dl,-5=dl); Me:='(); +Ph:=Ph1:='(?6,-2=dl,-4=dl,-6=dl); Ph2:='(?6,-1=dl,-3=dl,-5=dl); for i=5,6,7,8: for j=11 upto 15: ?[i][j]:='((i,j)); endfor endfor %------------------------------------------------------------------------------------------------- -!:=!1:='((_mk_bond,_arrange_ang)); !!:='(!~db); !!!:='(!~tm); NH:='(N,/H~nl); +!:=!1:='((_mk_bond,_arrange_ang)); !db:=!d:='(!~db); !tm:=!t:='(!~tm); !wf:=!w:='(!~wf); +!zf:=!z:='(!~zf); !wb:='(!~wb); !zb:='(!~zb); !dl:='(!~dl); !dr:='(!~dr); !dm:='(!~dm); for i==2 upto 20: ![i]:='((_com,_len_ss),(_get_len,_tmp_len),! for j==2 upto i::,! endfor ,(_com,_len_ee)); endfor -?!:='(/_,!); ?!!:='(/_,!!); ?!2:='(/_,!2); ??!:='(/_,/_^60,60); ??:='(/_^35,/_^-35); +?!:='(/_,!); ?!d:='(/_,!d); ?!2:='(/_,!2); ??!:='(/_,/_^60,60); ??:='(/_^35,/_^-35); !?:='(!,/_); !?!:='(!?,!); !??!:='(!,??,!); ?2:='(/!); !?2:='(!,?2); ?2!:='(?2,!); !?2!:='(!?2,!); -n_:='((_set_add,MIS)); p_:='((_set_add,PLS)); +NH:='(N,/H~nl); n_:='((_set_add,MIS)); p_:='((_set_add,PLS)); zero_wf:='(0~wf); zero_zf:='(0~zf); zero_dm:='(0~dm); zero_wv:='(0~wv); mark_adress:='((_com,_mark)); reset_adress:='((_com,_moff)); reset_length:='((_com,_len_e)); %------------------------------------------------------------------------------------------------- @@ -1426,21 +1431,22 @@ if sw_expand=1: ONa:='(O,!,Na); SO3Na:='(S,/ONa,//O^60,//O^-60); fi %------------------------------------------------------------------------------------------------- -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); +?F!F:='(/F,60,F); ?Cl!Cl:='(/Cl,60,Cl); ?Br!Br:='(/Br,60,Br); ?F?F!F:='(/F,/F^60,60,F); +?Cl?Cl!Cl:='(/Cl,/Cl^60,60,Cl); %------------------------------------------------------------------------------------------------- N!:='(N,!); N?:='(N,/_); N!2:='(N,!3); N!2:='(N,!3); !N:='(!,N); N?!:='(N,?!); N?2:='(N,?2); N?2!:='(N?2,!); N?!2:='(N,?!2); -S?O:='(S,//O); S?O!:='(S?O,!); ?O?O:='(//O^-35,//O^35); S?O?O:='(S,?O?O); S?O?O!:='(S?O?O,!); +S?O:='(S,?O); S?O!:='(S?O,!); ?O?O:='(?O^-35,?O^35); S?O?O:='(S,?O?O); S?O?O!:='(S?O?O,!); O!:='(O,!); O!2:='(O,!2); O!3:='(O,!3); S!:='(S,!); S!2:='(S,!2); S!3:='(S,!3); %------------------------------------------------------------------------------------------------- -?O:='(//O); ?O!:='(?O,!); ?O!2:='(?O,!2); ?O!3:='(?O,!3); !?O:='(!,?O); !?O!:='(!,?O!); -NH!:='(NH,!); NH!2:='(NH,!2); !NH!:='(!,NH!); ?NH2:='(/NH2); ?NH:='(//NH); +?O!:='(?O,!); ?O!2:='(?O,!2); ?O!3:='(?O,!3); !?O:='(!,?O); !?O!:='(!,?O!); +NH!:='(NH,!); NH!2:='(NH,!2); !NH:='(!,NH);!NH!:='(!,NH!); ?NH2:='(/NH2); ?NH:='(//NH); %------------------------------------------------------------------------------------------------- -!OH:='(!,OH); !SH:='(!,SH); !NH2:='(!,NH2); !S?O:='(!,S?O); !O:='(!,O); +!OH:='(!,OH); !SH:='(!,SH); !NH2:='(!,NH2); !S?O:='(!,S?O); !O:='(!,O); !dO:='(!d,O); !O!:='(!,O!); !O!2:='(!,O!2); !O!3:='(!,O!3); !S!:='(!,S!); !S!2:='(!,S!2); !S!3:='(!,S!3); !COOH:='(!,COOH); ?COOH:='(/COOH); !CH3:='(!,CH3); !CN:='(!,CN); !CHO:='(!,CHO); !NO2:='(!,NO2); -!Cl:='(!,Cl); !Br:='(!,Br); !F:='(!,F); !CF3:='(!,CF3); !CCl3:='(!,CCl3); +!Cl:='(!,Cl); !Br:='(!,Br); !F:='(!,F); !?F!F:='(!,?F!F); !?Cl!Cl:='(!,?Cl!Cl); +!?F?F!F:='(!,?F?F!F); !?Cl?Cl!Cl:='(!,?Cl?Cl!Cl); !?3:='(!,?3); !?4:='(!,?4); !?5:='(!,?5); !?6:='(!,?6); !?7:='(!,?7); !?8:='(!,?8); !Ph:='(!,Ph); ?H:='(/H); ?F:='(/F); ?Cl:='(/Cl); ?OH:='(/OH); !?OH:='(!,?OH); ?OH!:='(?OH,!); %------------------------------------------------------------------------------------------------- |