texlive[70167]

commits+karl at tug.org commits+karl at tug.org
Sun Feb 25 22:09:13 CET 2024


Revision: 70167
          https://tug.org/svn/texlive?view=revision&revision=70167
Author:   karl
Date:     2024-02-25 22:09:13 +0100 (Sun, 25 Feb 2024)
Log Message:
-----------
mcf2graph (branch) (25feb24)

Modified Paths:
--------------
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/README
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/main_lib.mcf
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf2graph.mp
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf
    branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2024-02-25 21:09:05 UTC (rev 70166)
+++ branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2024-02-25 21:09:13 UTC (rev 70167)
@@ -1,6 +1,15 @@
 *******************************************************************************
- Changelog of mcf2graph software package          by Akira Yamaji 2024-01-21
+ Changelog of mcf2graph software package          by Akira Yamaji 2024-02-25
 *******************************************************************************
+[ver. 5.12  / 2024-02-25]
+  -add command `(),``()
+   define group "string"
+   `("{string}")
+   ``("{string}")(atom list)
+  -update mcf2graph.mp
+  -update main_lib.mcf
+  -update MCF manual,example
+
 [ver. 5.11  / 2024-01-21]
   -change command name
    !!  => !db,!d

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/README
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/README	2024-02-25 21:09:05 UTC (rev 70166)
+++ branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/README	2024-02-25 21:09:13 UTC (rev 70167)
@@ -1,7 +1,7 @@
 ********************************************************************************
  mcf2graph  : Convert Molecular Coding Format to graphics with MetaPost
  Author     : Akira Yamaji
- version    : 5.11 2024-01-21
+ version    : 5.12 2024-02-25
  E-mail     : mcf2graph at gmail.com
  Located at : http://www.ctan.org/pkg/mcf2graph
 ********************************************************************************
@@ -44,7 +44,7 @@
  (9) >mpost -s ahlength=7 filename.mp  => output report file
 
 4. License
- mcf2graph ver 5.11   Copyright (c) 2013-2024   Akira Yamaji
+ mcf2graph ver 5.12   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

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/main_lib.mcf
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/main_lib.mcf	2024-02-25 21:09:05 UTC (rev 70166)
+++ branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/main_lib.mcf	2024-02-25 21:09:13 UTC (rev 70167)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular library file    main_lib.mcf   by Akira Yamaji   2024.01.21
+% molecular library file    main_lib.mcf   by Akira Yamaji   2024.01.25
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  must use version 5.11
+%  must use version 5.12
 %  tag1:var1;tag2:var2;tag3:var3 .....
 %  first character of line "%" comment out
 %  first character of line ":"  start MCF
@@ -149,7 +149,7 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:L-Arginine;MW:174.21;EXA:-
 :
-<30,NH2,!wb,!COOH, at 2,\`1,!`1,!2,NH!,//NH,!NH2
+<30,NH2,!wb,!COOH, at 2,\`1,!`1,!2,NH!,?NH,!NH2
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:L-Hystidine;MW:155.16;EXA:-
@@ -365,12 +365,12 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Cinnamic acid;MW:148.16;EXA:-
 :
-<30,Ph,3:/!d+!COOH
+<30,Ph,3:/!dr+!COOH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Cinnamaldehyde;MW:132.16;EXA:-
 :
-<30,Ph,3:/!d+!CHO
+<30,Ph,3:/!dr+!CHO
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Caffeic acid;MW:180.16;EXA:1
@@ -380,9 +380,98 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Vanillin;MW:152.15;EXA:1
 :
-<30,Ph,2:/OH,3:/O!,5:/CHO
+<30,Ph,1:/OH,6:/O!,4:/CHO
 ;
+CAT:biological;EN:alfa-Terpinene;MW:136.24;EXA:-
+:
+<30,?6,3:/?!,6:/_,{3,5}=db
+;
 %------------------------------------------------------------------------------
+CAT:biological;EN:beta-Terpinene;MW:136.24;EXA:-
+:
+<30,?6,3:/?!,6://_,3=db
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:gamma-Terpinene;MW:136.24;EXA:-
+:
+<30,?6,3:/?!,6:/_,{3,6}=db
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:delta-Terpinene;MW:136.24;EXA:-
+:
+<30,?6,3://?!,6:/_,5=db
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Eugenol;MW:164.20;EXA:-
+:
+<30,Ph,1:/OH,6:/O!,4:/!+!d
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Thymol;MW:150.22;EXA:-
+:
+<30,Ph,4:/OH,3:/?!,6:/_
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Anisaldehyde;MW:136.15;EXA:-
+:
+<30,Ph,4:/CHO,1:/O!
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Benzaldehyde;MW:106.12;EXA:-
+:
+<30,Ph,4:/CHO
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:gamma-Nonalactone;MW:156.23;EXA:-
+:
+<18,?5,2:O,1:?O,3^-12:/!4
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:gamma-Undecalactone;MW:184.27;EXA:-
+:
+<18,?5,2:O,1:?O,3^-12:/!6
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Muscone;MW:238.40;EXA:-
+:
+<-72,#1,60,-48,60,60,-48,60,60,-48,60,60,-48,60,60,-48,##,&1,9:?O,7:/_
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:alfa-Pinene;MW:136.24;EXA:-
+:
+<30,?6,3:??,5:/_,5=db, at 2,180~zf`1,&4~zb
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:beta-Pinene;MW:136.24;EXA:-
+:
+<30,?6,3:??,5://_, at 2,180~zf`1,&4~zb
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Neral;MW:152.24;EXA:-
+:
+<30,!?,!d,!3,?,!d,-60,CHO
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Geranial;MW:152.24;EXA:-
+:
+<30,!?,!d,!3,?,!d,!,CHO
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:p-Cymene;MW:134.21;EXA:-
+:
+<30,Ph,4:/?!,1:/_
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Benzyl-acetate;MW:150.18;EXA:-
+:
+<30,Ph, at 4,\,?O!,O!,!,Ph
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Benzyl-benzoate;MW:212.25;EXA:-
+:
+<30,Ph,4:/!O!+?O!
+;
+%------------------------------------------------------------------------------
 CAT:biological;EN:Stearic acid;MW:284.48;EXA:1
 :
 <30,!17,COOH
@@ -756,7 +845,7 @@
 CAT:biological;EN:Tetrodotoxine;MW:319.27;EXA:1
 :
 #1,<60,-90,60,-30`1.15,150,60,&1, at 3,-135,60,-30`1.15,150,&4,
- @10,\,O,60`1.33,60,&($3)~si_, at 8,-15~si_,O,&12,##,
+ @10,\,O,60`1.33,60,&$3~si_, at 8,-15~si_,O,&12,##,
  @9,45,-60,OH,1^120://NH,{5~zf^-15,7,9^-75,12,13~zf}:/OH,2:NH,6^180:NH
 ;
 %------------------------------------------------------------------------------
@@ -828,6 +917,26 @@
 <30,!19, at 6,*\,O!,?O!2,/COOH,!2,COOH, at 7,\*`1.2,O!,?O!2,/COOH,!2,COOH,
  {5,9}:/*_,{11,16,18'}:*/OH,19:/*NH2
 ;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Dicumarol;MW:336.295;EXA:-
+:
+<30,Ph,3=?6, at 8,\`1.5,!`1.5,?6,-4=Ph2,{8,14}=db,{10,16}:O,{9,17}:?O,{7,13}:/OH
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Dihydroxybergamotin;MW:338.40;EXA:-
+:
+<30,Ph,3=?6,6=?5,{10,13}=db,{7,13}:O,8:?O, at 5,\,O,!2,!d,/_,!3,/OH,!,??,!OH
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Bergamotin;MW:338.40;EXA:-
+:
+<30,Ph,3=?6,6=?5,{10,13}=db,{7,13}:O,8:?O, at 5,\,O,!2,!d,/_,!3,!d,?!
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Alkannin;MW:288.29;EXA:-
+:
+<30,Ph,3=?6,9=db,{2,5}:/OH,{7,10}:?O, at 8,\,/*OH,!2,!d,?!
+;
 %==============================================================================
 CAT:synthetic;EN:Benzene;MW:78.11;EXA:-
 :
@@ -2164,7 +2273,7 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Benoxacor;MW:260.1;EXA:-
 :
-<90,Ph,3=?6,7:N,10:O,8:/_, at 7,\,?O!,?Cl,!Cl
+<90,Ph,3=?6,7:N,10:O,8:/_, at 7,\,?O!,/Cl,!Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Heptachlor;MW:373.35;EXA:1
@@ -2846,6 +2955,11 @@
 :
 <30,?6,6=dl,4:N,2:O,1:/_,5:?O,6:/Ph, at 4,\,??,!Ph,{-4,-2}:/Cl
 ;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Pyrrolnitrin;MW:111;EXA:-
+:
+<30,Ph, at 3,\,?5,{8,11}=db,{1,11}:/Cl,9:NH,2:/NO2,
+;
 %******************************************************************************
 CAT:biological;EN:Okadaic acid;MW:805.00;EXA:2
 :

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf2graph.mp
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf2graph.mp	2024-02-25 21:09:05 UTC (rev 70166)
+++ branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf2graph.mp	2024-02-25 21:09:13 UTC (rev 70167)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 5.11    Copyright (c) 2013-2024   Akira Yamaji
+% mcf2graph ver 5.12    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 at gmail.com 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-message "* This is mcf2graph ver 5.11  2024.01.21";
+message "* This is mcf2graph ver 5.12  2024.02.25";
 tracingstats:=1; prologues:=3; warningcheck:=0;
 %-------------------------------------------------------------------------------------------------
 newinternal string EN_;
@@ -33,13 +33,13 @@
         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,?,?O,?w,?z;
+pair    save_pair[],msize,mposition,fsize,fmargin,save_mposition,?,?wf,?zf,?w,?z,?O,?NH;
 %-------------------------------------------------------------------------------------------------
 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; 
 numbering_start:=1; numbering_end:=4095;
 %-------------------------------------------------------------------------------------------------
-aux_delimiter:=";"; blanks:= "            ";  forbiddens:=" &()[]{}^=;!'+,`~"; dum:=(-4091,0);
+aux_delimiter:=";"; blanks:= "            ";  forbiddens:=" &()[]{}^=;!'+,`~";
 for s="No","EN","JN","MW","MI","FM","CAT","CAS","USE","EXA","EXB": tag[incr tag_cnt]:=s; endfor
 MW_n:=0; Fig:=1; Mcode:=2; Calc:=4; Info:=8; Table:=16; Report:=32; MOL2k:=64; MOL3k:=128;
 Atom:=8; Bond:=16; Group:=32; Mol:=64; Outside:=1; Inside:=2; Bothside:=Outside+Inside;
@@ -109,8 +109,7 @@
 ef ahlength=6: message "* output MOL file(V3000)"; message "* "&jobname&"-nnn-"&"EN"&".mol";
 ef ahlength=7: message "* output report file"; message "* file name="&jobname&"-report.txt"; fi
 clearit;
-%--------------------------------------------------------------------------------------------------
-?3:=?20:=Ph:=Ph1:=Ph2:=hz:=0; vt:=1;
+%-------------------------------------------------------------------------------------------------
 ratio_chain_ring:=0.66; ratio_atom_bond:=0.36; ratio_thickness_bond:=0.015;
 ratio_thickness_char:=0.1; ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15;
 ratio_hashgap_bond:=0.12; ratio_hash_black:=0.4; ratio_wedge_bond:=0.12; ratio_atomgap_atom:=0.04;
@@ -121,12 +120,12 @@
 ahangle:=45; ahlength:=4; defaultsize:=8; defaultscale:=1; labeloffset:=3; ext_defaultline:=0.5;
 lonepairdiam:=lonepairspace:=circlediam:=circlepen:=bboxmargin:=0; mc_length:=100;
 outputformatoptions:="";
-%==================================================================================================
-pcode_emb_start:=1000;     % 1001 => 1900   for embedded pcode (max 1900)
-pcode_emi_start:=1900;     % 1901 => 2000   for embedded internal pcode (max 100)
-pcode_usr_start:=2000;     % 2001 => 3000   for user     pcode (max 1000)
+%=================================================================================================
+pcode_emb_start:=1001;     % 1001 => 1900   for embedded pcode (max 900)
+pcode_emi_start:=1901;     % 1901 => 2000   for embedded internal pcode (max 100)
+pcode_usr_start:=2001;     % 2001 => 3000   for user     pcode (max 1000)
 pcode_int_start:=3000;     % 3001 => 4000   for internal pcode (max 1000)
-%--------------------------------------------------------------------------------------------------
+%-------------------------------------------------------------------------------------------------
 def def_com(expr n)(text tx)= nA:=n; forsuffixes list=tx:: list:=nA; nA:=nA+1; endfor enddef;
 def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_tmp_line,_chg_len,
   _get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,_chg_env,_tmp_env,_set_colorA,_set_colorB,
@@ -135,7 +134,7 @@
   _len_e,_len_ss,_len_ee,_group_s,_group_e,_rest,_charge,_from,_until,
   si,dl,dl_,dr,dr_,db,dm,dm_,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,nb,wf_r,wb_r,bd_r,arc_lb,arc_br,
   arc_lbr,arc_ltr,si_,wf_,wb_,zf_,zb_,wv_,bd_);
-%--------------------------------------------------------------------------------------------------
+%-------------------------------------------------------------------------------------------------
 def parameter_list=
   sw_numbering,sw_expand,sw_output,sw_ext_all,sw_frame,sw_trimming,sw_abbreviate,ratio_atom_bond,
   ratio_thickness_bond,ratio_char_bond,ratio_chain_ring,ratio_bondgap_bond,ratio_hash_black,
@@ -144,7 +143,7 @@
   thickness_frame,offset_thickness,numbering_start,numbering_end,defaultsize,defaultscale,
   labeloffset,mangle,blength,fsize,fmargin,msize,mposition,defaultfont,atomfont,dottedline_gap
 enddef;
-%--------------------------------------------------------------------------------------------------
+%-------------------------------------------------------------------------------------------------
 def init_par(text t)= nA:=nB:=nC:=0;
   for list=t: if numeric list: save_num[incr nA]:=list;
               ef pair list:    save_pair[incr nB]:=list;
@@ -152,7 +151,7 @@
               fi
   endfor
 enddef;
-%--------------------------------------------------------------------------------------------------
+%-------------------------------------------------------------------------------------------------
 def store_par(text t)= nA:=nB:=nC:=0;
   for list=t: if numeric list: if save_num[incr nA]<>list:  save_num[nA]:=list; fi
               ef pair list:    if save_pair[incr nB]<>list: save_pair[nB]:=list; fi
@@ -160,7 +159,7 @@
               fi
   endfor
 enddef;
-%--------------------------------------------------------------------------------------------------
+%-------------------------------------------------------------------------------------------------
 def restore_par(text t)= nA:=nB:=nC:=0;
   forsuffixes list=t: if numeric list: if list<>save_num[incr nA]:  list:=save_num[nA]; fi
                       ef pair    list: if list<>save_pair[incr nB]: list:=save_pair[nB]; fi
@@ -168,10 +167,10 @@
                       fi
   endfor
 enddef;
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def beginfigm=
   begingroup
-  save ','',//,@,#,#@,##,\,\\,\*,|=,|<,**,++,_,f_ext,blen,ext,add,ang_br,fw_n,bw_n,
+  save ','',`,``,//,@,#,#@,##,\,\\,\*,|=,|<,**,++,_,f_ext,blen,ext,add,ang_br,fw_n,bw_n,
        info_cnt,bond_cntA,firstc,warning_cnt,hideH,hideH_cnt,cntM,cntA,cntB,
        minX,minY,maxX,maxY,posA,posM,lineB,sB,eB,angB,angA,lenB,angX,numS,sumA,bond_num,wdM,htM,
        chargeA,addA,add_rot,mol_pic,color_list,filter_s,no,mw,mi,fm;
@@ -181,21 +180,22 @@
   string mi,no,fm,mw,firstc,filter_s;
   picture mol_pic[];
   color color_list[];
-  %------------------------------------------------------------------------------------------------
+  %-----------------------------------------------------------------------------------------------
   store_par(parameter_list);
   no:=mc:=ex:=ad:=op:=temps:=mw:=mi:=fm:=filter_s:="";
   EN:=JN:=MW:=FM:=MI:=CAS:=CAT:=EXA:=EXB:=USE:="-";
   f_ext:=cntM:=mc_row:=ex_row:=ad_row:=op_row:=info_cnt:=err_cnt:=0;
   let ext=ext_to_fig; let add=add_to_molecule; let ++=add_to_molecule; let **=ext_to_fig;
-  def ' = read_ud enddef; def '' = readm enddef; def \ = drawm enddef; def \\ = putm enddef;
+  def ' = define_parts enddef; def '' = readm enddef; def \ = drawm enddef; def \\ = putm enddef;
   def \* = checkm enddef; def $ = getm enddef; def @ expr p = mposition:=p; enddef;
-  def # expr p = fsize:=p; enddef; def #@ expr p = fmargin:=p; enddef;
+  def # expr p = fsize:=p; enddef; def #@ expr p = fmargin:=p; enddef; 
+  def `(expr s) = define_group_string(s)() enddef; def `` = define_group_string enddef;
   def ## expr p = msize:=p; enddef; def |=(expr n) = blength:=n; enddef;
   def |<(expr n) = max_blength:=n; enddef; def _ expr s = EN:=s; enddef;
   pcode_num:=pcode_usr_start; pcode_int:=pcode_int_start; fig_num:=fig_num+1;
   mol_pic[0]:=nullpicture;
 enddef;
-%--------------------------------------------------------------------------------------------------
+%-------------------------------------------------------------------------------------------------
 def endfigm=
   %--------------------------------------------------------------------------------------------
   if cntM>=1:
@@ -306,14 +306,10 @@
   if ex_row>=1: ext(scantokens(ex)) fi
 enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-vardef '(text t)= pcode_num:=pcode_num+-1; read_mcf(pcode_num)(t); pcode_num enddef;
-vardef read_id(text t)= pcode_num:=pcode_num+-1;
-  read_mcf(pcode_num)(|,#rate_cr,t,##,(_com,_rest)); pcode_num enddef;
-vardef read_ud(text t)= pcode_num:=pcode_num+-1;
-  read_mcf(pcode_num)(dum,dum,|,t,(_com,_rest)); pcode_num enddef;
+vardef define_parts(text t)= pcode_num:=pcode_num+-1; read_mcf(pcode_num)(t); pcode_num enddef;
 vardef abs_adress primary n = if n LT 0:: (n+-360)-4095 else:: n-4095 fi enddef;
 primarydef a from_until b = (_from,a),(_until,b) enddef;
-primarydef a op_plus b = read_id(a,b) enddef;
+primarydef a op_plus b = define_parts(a,b) enddef;
 tertiarydef a bond__bond b = (a,b) enddef;
 tertiarydef a bond___bond b = (a+-2000,b) enddef;
 tertiarydef a bond____bond b = (a+-2000,b+-2000) enddef;
@@ -338,19 +334,18 @@
 def read_mcf(expr n)(text t)=
   begingroup
   if unknown inside_mc::
-    save /,//,/*,*/,**,*/*,~,^,',`,<,>,:,=,+,\,\\,*\,\*,*\*,@,@$,$,&,&$,#,##,{,},|,||,_,
+    save /,//,/*,*/,**,*/*,~,^,`,<,>,:,=,+,\,\\,*\,\*,*\*,@,@$,$,&,&$,#,##,{,},|,||,_,
          --,---,----,CP,CA,CC,DL,FR,inside_mc;
     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;
-    let }==); let @$==jump_atom_abs; let < ==rot_angle; let @==jump_atom; let &==cyc_atom;
-    let #==chg_length; let /==group_si; let //==group_dm; let */==group_wf; let /*==group_zf;
+    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; let + ==op_plus;
+    let } ==); let @$ ==jump_atom_abs; let < ==rot_angle; let @ ==jump_atom; let & ==cyc_atom;
+    let # ==chg_length; let / ==group_si; let // ==group_dm; let */ ==group_wf; let /* ==group_zf;
     let */*==group_wv; let **==group_nb; let CP == pcode_add; let CA == pcode_add_adr;
     let FR == fuse_ring_bonds; def DL(expr p)==CA(_set_line,dl,p) enddef;
     def CB(expr p)==CP(_mk_bond,p) enddef; def CC(expr p)==CP(_com,p) enddef;
-    def $==abs_adress enddef; def &$==&.$ enddef; def '==read_id enddef; let +==op_plus;
-    def {==read_number( enddef;
+    def $==abs_adress enddef; def &$==&.$ enddef; def {==read_number( enddef;
   fi
   %----------------------------------------------------------------------------------------------
   pcode_cnt[n]:=0;
@@ -388,8 +383,8 @@
 enddef;
 %-------------------------------------------------------------------------------------------------
 vardef read_number(text t)=
-  save :,','`;
-  let : == from_until; def ' == +-2000 enddef; def '` == +-2000` enddef;
+  save :,';
+  let : == from_until; def ' == +-2000 enddef;
   pcode_int:=pcode_int+-1;
   nA:=0;
   for list==t::
@@ -509,7 +504,7 @@
 vardef change_atom(expr a,b)=
   if known b:: pcode_int:=pcode_int+-1; nC:=0;
     if numeric b::
-      if (b GT pcode_emb_start)and(b<=pcode_atom_end):: CA(_chg_atom,b,a)
+      if (b GT pcode_emb_start)and(b<=pcode_atm_end):: CA(_chg_atom,b,a)
       ef b==NH::  CA(_chg_atom,N,a) if sw_expand==0:: CP(_tmp_line,nl) fi
                   CC(_group_s) CA(_group_si,H,a) CC(_group_e)
       ef b==N?::  CA(_chg_atom,N,a) CC(_group_s) CA(_group_si,_,a) CC(_group_e)
@@ -812,7 +807,9 @@
 %-------------------------------------------------------------------------------------------------
 def add_group=
   if f_at=1: nE:=getA(adrT); check_adrA(nE); else: nE:=cntA+1; fi
-  group_cnt[incr group_num]:=0; store_group(_jp_absA,nE) store_group(_com,_len_s)
+  group_cnt[incr group_num]:=0; store_group(_jp_absA,nE)
+  store_group(_com,_mark)
+  store_group(_com,_len_s)
   if lineT<>nb: store_group(_tmp_line,lineT) fi
   if rotT<>0:   store_group(_rot_ang,rotT) fi
   if lenT<>rate_cr: store_group(_chg_len,lenT)
@@ -825,6 +822,7 @@
     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)
+  store_group(_com,_rest)
   if f_lineT=0: lineT:=si; fi
   if f_lenT=0:  lenT:=rate_cr; fi 
   if f_rotT=0:  rotT:=0;   fi
@@ -898,12 +896,12 @@
 %-------------------------------------------------------------------------------------------------
 vardef arrange_ang(expr n)=
   if cntB=0: angT:=(angT-180) mod 360; 180
-  else:  if    envB>=pcode_emb_start: pcode_par[envB][cntB-temp_cntB+3]
-         else: if envB=hz: if n=0:  60 ef n<=90: -60 ef n<=180:  60 ef n<270: -60 else:  60 fi
-               ef envB=vt: if n=0: -60 ef n<90:   60 ef n<=180: -60 ef n<=270: 60 else: -60 fi
-               ef abs(envB)<=180: envB
-               fi
-         fi
+  else: if envB>=pcode_emb_start: pcode_par[envB][cntB-temp_cntB]
+        else: if envB=hz: if n=0:  60 ef n<=90: -60 ef n<=180:  60 ef n<270: -60 else:  60 fi
+              ef envB=vt: if n=0: -60 ef n<90:   60 ef n<=180: -60 ef n<=270: 60 else: -60 fi
+              ef abs(envB)<=180: envB
+              fi
+        fi
   fi
 enddef;
 %-------------------------------------------------------------------------------------------------
@@ -1351,7 +1349,7 @@
 vardef bond_config(expr n)=
  if (n=wf)or(n=zb)or(n=bd): 1 ef (n=zf)or(n=wb)or(n=dt): 3 ef n=wv: 2 else: 0 fi enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-vardef TA(expr s,WT,MI)=
+vardef define_atom(expr s,WT,MI)=
   str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; pcode_num:=pcode_num+1;
   pcode_com[pcode_num][1]:=_set_atom; pcode_par[pcode_num][1]:=str_cnt; pcode_cnt[pcode_num]:=1;
   str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0;
@@ -1358,7 +1356,7 @@
   tbl_atom_wt[tbl_cnt]:=WT; tbl_atom_mi[tbl_cnt]:=MI; pcode_num
 enddef;
 %-------------------------------------------------------------------------------------------------
-vardef TB(expr s)(text t)=
+vardef define_group_string(expr s)(text t)=
   str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; pcode_num:=pcode_num+1;
   pcode_com[pcode_num][1]:=_set_atom; pcode_par[pcode_num][1]:=str_cnt; pcode_cnt[pcode_num]:=1;
   str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0;
@@ -1366,99 +1364,104 @@
   pcode_num
 enddef;
 %=================================================================================================
-pcode_int:=pcode_emi_start; pcode_num:=pcode_emb_start;
+def define_atom_group_parts=
+  save `,``,';
+  def `=define_atom enddef; def ``=define_group_string enddef; def '= define_parts enddef;
+  pcode_int:=pcode_emi_start; pcode_num:=pcode_emb_start;
+  ?3:=?20:=Ph:=Ph1:=Ph2:=hz:=0; vt:=1;
+  %-----------------------------------------------------------------------------------------------
+  C:= `("C"   ,12.0107,   12.0000000);       H:= `("H"  , 1.00794,    1.00782503223);
+  D:= `("D"   ,2.012,      2.01410177812);   Ag:=`("{Ag}",107.868,  106.905095);
+  Al:=`("{Al}",26.9815,   26.98153853);      As:=`("{As}",74.9216,   74.92159457);
+  B:= `("B"   ,10.811,    11.00930536);      Ba:=`("{Ba}",137.33,   136.905816);
+  Be:=`("{Be}",9.01218,   0);
+  Bi:=`("{Bi}",208.9804,  208.980338);       Br:=`("{Br}",79.904,    78.9183376);
+  Ca:=`("{Ca}",40.078,    39.962590863);     Cd:=`("{Cd}",112.41,     110.904182);
+  Cl:=`("{Cl}",35.453,    34.968852);        Co:=`("{Co}",58.933194, 58.93319429);
+  Cr:=`("{Cr}",51.9961,   51.94050623);      Cs:=`("{Cs}",132.905,   132.90543);
+  Cu:=`("{Cu}",63.546,    62.92959772);     
+  F:= `("F"   ,18.9984,   18.99840316273);   Fe:=`("{Fe}",55.845,    55.93493633);
+  Hg:=`("{Hg}",200.59,    201.97064340);     I:= `("I"   ,126.90447,126.9044719);
+  K:= `("K"   ,39.0983,   38.9637064864);    Li:=`("{Li}",6.941,      7.0160034366);
+  Mg:=`("{Mg}",24.305,    23.985041697);     Mn:=`("{Mn}",54.938044, 54.93804391);
+  Mo:=`("{Mo}",95.95,     0);
+  N:= `("N"   ,14.0067,   14.00307400443);   Na:=`("{Na}",22.98977,  22.9897692820);
+  Ni:=`("{Ni}",58.693,    57.93534241);      O:= `("O"   ,15.9994,   15.99491461957);
+  P:= `("P"   ,30.973762, 30.97376199842);   Pb:=`("{Pb}",207.2,    205.974455);
+  Pd:=`("{Pd}",106.4,    107.905075);
+  S:= `("S"   ,32.065,    31.9720711744);    Sb:=`("{Sb}",121.75,   120.90381);
+  Se:=`("{Se}",78.971,    79.9165218);       Si:=`("{Si}",28.0855,   27.97692653465);
+  Sn:=`("{Sn}",118.71,   119.90220163);      Ta:=`("{Ta}",180.948,   0);
+  Te:=`("{Te}",127.60,    129.90623);        Ti:=`("{Ti}",47.867,    47.94794198);
+  U:= `("U",   238.0289, 238.05079);         V:= `("V",   50.9415,   50.943957);
+  W:= `("W",   183.85,   181.948225);        Zn:=`("{Zn}",65.409,    63.92914201);
+  NO_ATOM:=`("",0,0);
+  tbl_atom_end:=tbl_cnt;
+  %-----------------------------------------------------------------------------------------------
+  if sw_expand=0:
+    CH3:=``("C{H_3_}")(C,H,H,H); CH2:=``("C{H_3_}")(C,H,H); CN:=``("CN")(C,N); OH:=``("OH")(O,H);
+    COOH:=``("COOH")(C,O,O,H); COONa:=``("COO{Na}")(C,O,O,Na); CHO:=``("CHO")(C,H,O);
+    NO:=``("NO")(N,O); NO2:=``("N{O_2_}")(N,O,O); NH2:=``("N{H_2_}")(N,H,H);
+    SH:= ``("SH")(S,H); SO2H:=``("S{O_2_}H")(S,O,O,H); SO3H:=``("S{O_3_}H")(S,O,O,O,H);
+    ONa:=``("O{Na}")(O,Na); SO3Na:=``("S{O_3_}{Na}")(S,O,O,O,Na);
+  fi
+  %-----------------------------------------------------------------------------------------------
+  tbl_group_end:=tbl_cnt; pcode_atm_end:=pcode_num;
+  ?:=(_group_si,NO_ATOM); ?wf:=?w:=(_group_si,NO_ATOM); ?zf:=?z:=(_group_si,NO_ATOM);
+  ?O:=(_group_dm,O); NH:='(N,/H~nl); ?NH:=(_group_dm,NH);
+  %-----------------------------------------------------------------------------------------------
+  ?H:='(/H); ?F:='(/F); ?Cl:='(/Cl); ?OH:='(/OH); ?OH:='(/COOH); ?NH2:='(/NH2);
+  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);
+  for i=5,6,7,8: for j=11 upto 15:  ?[i][j]:='((i,j)); endfor endfor
+  %-----------------------------------------------------------------------------------------------
+  !:=!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
+  ?!:='(/_,!); ?!d:='(/_,!d); ?!2:='(/_,!2); ??!:='(/_,/_^60,60); ??:='(/_^35,/_^-35);
+  !?:='(!,/_); !?!:='(!?,!); !??!:='(!,??,!); ?2:='(/!); !?2:='(!,?2); ?2!:='(?2,!);
+  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));
+  %-----------------------------------------------------------------------------------------------
+  if sw_expand=1:
+    CH3:='(/H,/H^60,/H^-60); NH:='(N,/H); NH2:='(N,/H^60,/H^-60); NO2:='(N,//O^60,//O^-60);
+    OH:='(O,!,H); NO:='(N,//O); CONH2:='(//O,!,NH2); SH:='(S,!,H); SO2H:='(S,//O^60,/OH^-60);
+    SO3H:='(S,/OH,//O^60,//O^-60); CHO:='(//O^-60,/H^60); COOH:='(//O^-60,/OH^60); CN:='(!~tm,N);
+    ONa:='(O,!,Na); SO3Na:='(S,/ONa,//O^60,//O^-60);
+  fi
+  %-----------------------------------------------------------------------------------------------
+  ?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,!);
+  O!:='(O,!); O!2:='(O,!2); O!3:='(O,!3); S!:='(S,!); S!2:='(S,!2); S!3:='(S,!3);
+  %-----------------------------------------------------------------------------------------------
+  ?O!:='(?O,!); ?O!2:='(?O,!2); ?O!3:='(?O,!3); !?O:='(!,?O); !?O!:='(!,?O!);
+  NH!:='(NH,!); NH!2:='(NH,!2); !NH:='(!,NH); !NH!:='(!,NH!);
+  %-----------------------------------------------------------------------------------------------
+  !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); !?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); !?OH:='(!,?OH); ?OH!:='(?OH,!);
+  %-----------------------------------------------------------------------------------------------
+  lr:='(60 for i==1 upto 10:: ,-60,60 endfor); rl:='(-60 for i==1 upto 10:: ,60,-60 endfor);
+  %-----------------------------------------------------------------------------------------------
+  hexose_hp:='(#1.4,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##);
+  Pyranose_hp:='(#1.4,-35~wf_r,35~bd_r`1,30~wb_r,130`1.66,O,&1,##);
+enddef;
 %-------------------------------------------------------------------------------------------------
-C:= TA("C"   ,12.0107,   12.0000000);       H:= TA("H"  , 1.00794,    1.00782503223);
-D:= TA("D"   ,2.012,      2.01410177812);   Ag:=TA("{Ag}",107.868,  106.905095);
-Al:=TA("{Al}",26.9815,   26.98153853);      As:=TA("{As}",74.9216,   74.92159457);
-B:= TA("B"   ,10.811,    11.00930536);      Ba:=TA("{Ba}",137.33,   136.905816);
-Be:=TA("{Be}",9.01218,   0);
-Bi:=TA("{Bi}",208.9804,  208.980338);       Br:=TA("{Br}",79.904,    78.9183376);
-Ca:=TA("{Ca}",40.078,    39.962590863);     Cd:=TA("{Cd}",112.41,     110.904182);
-Cl:=TA("{Cl}",35.453,    34.968852);        Co:=TA("{Co}",58.933194, 58.93319429);
-Cr:=TA("{Cr}",51.9961,   51.94050623);      Cs:=TA("{Cs}",132.905,   132.90543);
-Cu:=TA("{Cu}",63.546,    62.92959772);     
-F:= TA("F"   ,18.9984,   18.99840316273);   Fe:=TA("{Fe}",55.845,    55.93493633);
-Hg:=TA("{Hg}",200.59,    201.97064340);     I:= TA("I"   ,126.90447,126.9044719);
-K:= TA("K"   ,39.0983,   38.9637064864);    Li:=TA("{Li}",6.941,      7.0160034366);
-Mg:=TA("{Mg}",24.305,    23.985041697);     Mn:=TA("{Mn}",54.938044, 54.93804391);
-Mo:=TA("{Mo}",95.95,     0);
-N:= TA("N"   ,14.0067,   14.00307400443);   Na:=TA("{Na}",22.98977,  22.9897692820);
-Ni:=TA("{Ni}",58.693,    57.93534241);      O:= TA("O"   ,15.9994,   15.99491461957);
-P:= TA("P"   ,30.973762, 30.97376199842);   Pb:=TA("{Pb}",207.2,    205.974455);
-Pd:=TA("{Pd}",106.4,    107.905075);
-S:= TA("S"   ,32.065,    31.9720711744);    Sb:=TA("{Sb}",121.75,   120.90381);
-Se:=TA("{Se}",78.971,    79.9165218);       Si:=TA("{Si}",28.0855,   27.97692653465);
-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:
-  CH3:=TB("C{H_3_}")(C,H,H,H); CH2:=TB("C{H_3_}")(C,H,H); CN:=TB("CN")(C,N); OH:=TB("OH")(O,H);
-  COOH:=TB("COOH")(C,O,O,H); COONa:=TB("COO{Na}")(C,O,O,Na); CHO:=TB("CHO")(C,H,O);
-  NO:=TB("NO")(N,O); NO2:=TB("N{O_2_}")(N,O,O); NH2:=TB("N{H_2_}")(N,H,H);
-  SH:= TB("SH")(S,H); SO2H:=TB("S{O_2_}H")(S,O,O,H); SO3H:=TB("S{O_3_}H")(S,O,O,O,H);
-  ONa:=TB("O{Na}")(O,Na); SO3Na:=TB("S{O_3_}{Na}")(S,O,O,O,Na);
-fi
-%-------------------------------------------------------------------------------------------------
-tbl_group_end:=tbl_cnt; pcode_atom_end:=pcode_num;
+define_atom_group_parts;
 %=================================================================================================
-?:=(_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);
-for i=5,6,7,8: for j=11 upto 15:  ?[i][j]:='((i,j)); endfor endfor
-%-------------------------------------------------------------------------------------------------
-!:=!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
-?!:='(/_,!); ?!d:='(/_,!d); ?!2:='(/_,!2); ??!:='(/_,/_^60,60); ??:='(/_^35,/_^-35);
-!?:='(!,/_); !?!:='(!?,!); !??!:='(!,??,!); ?2:='(/!); !?2:='(!,?2); ?2!:='(?2,!); !?2!:='(!?2,!);
-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));
-%-------------------------------------------------------------------------------------------------
-if sw_expand=1:
-  CH3:='(/H,/H^60,/H^-60); NH:='(N,/H); NH2:='(N,/H^60,/H^-60); NO2:='(N,//O^60,//O^-60);
-  OH:='(O,!,H); NO:='(N,//O); CONH2:='(//O,!,NH2); SH:='(S,!,H); SO2H:='(S,//O^60,/OH^-60);
-  SO3H:='(S,/OH,//O^60,//O^-60); CHO:='(//O^-60,/H^60); COOH:='(//O^-60,/OH^60); CN:='(!~tm,N);
-  ONa:='(O,!,Na); SO3Na:='(S,/ONa,//O^60,//O^-60);
-fi
-%-------------------------------------------------------------------------------------------------
-?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,!);
-O!:='(O,!); O!2:='(O,!2); O!3:='(O,!3); S!:='(S,!); S!2:='(S,!2); S!3:='(S,!3);
-%-------------------------------------------------------------------------------------------------
-?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); !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); !?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,!);
-%-------------------------------------------------------------------------------------------------
-lr:='(0,0,0,60  for i==1 upto 10:: ,-60,60 endfor); 
-rl:='(0,0,0,-60 for i==1 upto 10:: ,60,-60 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^}");
-%-------------------------------------------------------------------------------------------------
-hexose_hp:='(#1.4,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##);
-Pyranose_hp:='(#1.4,-35~wf_r,35~bd_r`1,30~wb_r,130`1.66,O,&1,##);
-%=================================================================================================
 init_par(parameter_list);
 %-------------------------------------------------------------------------------------------------
 for i=pcode_emb_start+1 upto pcode_num: pcode_all:=pcode_all+pcode_cnt[i]; endfor

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp	2024-02-25 21:09:05 UTC (rev 70166)
+++ branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp	2024-02-25 21:09:13 UTC (rev 70167)
@@ -1,8 +1,8 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF metapost souce file example                 by Akira Yamaji  2024.01.21
+% MCF metapost souce file example                 by Akira Yamaji  2024.02.12
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.11
-message "* mcf_template 2024.01.21";
+if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.12
+message "* mcf_template 2024.02.12";
 message "";
 %------------------------------------------------------------------------------
 fsize:=(30mm,20mm);
@@ -22,7 +22,7 @@
 %%%%loadm("EN<>*");                       % select all
 loadm("EXA=1");                           % select EXA=1
 %------------------------------------------------------------------------------
-for i=1 upto ucount:  beginfigm $(i) \\ endfigm  endfor
+for i=1 upto ucount: beginfigm $(i) \\ endfigm  endfor
 %******************************************************************************
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 bye

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
===================================================================
(Binary files differ)

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex	2024-02-25 21:09:05 UTC (rev 70166)
+++ branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex	2024-02-25 21:09:13 UTC (rev 70167)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF   Typeset with LuaLaTeX(luamplib)   by A.Yamaji   2024.01.21
+% Example of MCF   Typeset with LuaLaTeX(luamplib)   by A.Yamaji   2024.02.25
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 5.11
+% ** mcf2graph.mf must be version 5.12
 % ** use mcf_library.mcf
 % ** typeset by LuaLaTeX(luamplib)
 %-------------------------------------------------------------------------
@@ -29,7 +29,7 @@
  Author : Akira Yamaji \quad Date : \today \\
  Located at : http://www.ctan.org/pkg/mcf2graph
 \end{center}
-{\small *use 'mcf2grapf.mp' ver 5.10  \quad
+{\small *use 'mcf2grapf.mp' ver 5.12  \quad
         *typeset with LuaLaTeX \quad
         *use molecular library file 'main\_lib.mcf' \\
         ** FM(fm):molecular formula (calculated) \quad 

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
===================================================================
(Binary files differ)

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2024-02-25 21:09:05 UTC (rev 70166)
+++ branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2024-02-25 21:09:13 UTC (rev 70167)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  Molecular Coding Format manual                by  Akira Yamaji 2024.01.21
+%  Molecular Coding Format manual                by  Akira Yamaji 2024.02.25
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 5.11
+% ** mcf2graph.mf must be version 5.12
 % ** use main_lib.mcf
 % ** typeset by LuaLaTeX(luamplib)
 %----------------------------------------------------------------------------
@@ -37,7 +37,7 @@
 \author{Akira Yamaji}
 \date{\today}
 \maketitle
-\begin{center} mcf2graph version 5.03 \end{center}
+\begin{center} mcf2graph version 5.12 \end{center}
 \begin{center} Located at http://www.ctan.org/pkg/mcf2graph \end{center}
 \begin{center} Suggestion or request mail to: mcf2graph at gmail.com \end{center}
 %-----------------------------------------------------------------------------
@@ -1071,13 +1071,23 @@
 \begin{mplibcode}
 beginfigm
 %%%%%  EN:Left-right_right-left
-  #(40mm,20mm);
-  sw_trimming:=1;
-  \(<30,!4,2:/!6>30,4:/!4>-45)
+  #(40mm,18mm);
+  sw_trimming:=0;
+  \(<-30,!6,
+  {3^-30,3,3^30}:/!3>lr,
+  {5^-30,5,5^30}:/!3>rl)
+  ++(defaultscale:=0.5; labeloffset:=2bp;
+      label.lft(">lr",A11);
+      label.lft(">lr",A15);
+      label.lft(">lr",A19);
+      label.rt(">rl",A23);
+      label.rt(">rl",A27);
+      label.rt(">rl",A31);
+  )
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Fixed rotate angle}
+\subsubsection{Rotate fixed angle}
 \index{\textgreater}%
 \begin{verbatim}
 >n : rotate n
@@ -1093,10 +1103,14 @@
   #(40mm,20mm);
   sw_trimming:=1;
   \(<30,!4,2:/!6>30,4:/!4>-45)
+  ++(defaultscale:=0.5; labeloffset:=2bp;
+      label.bot(">30",A12);
+      label.bot(">45",A17);
+  )
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Multiple rotate angle}
+\subsubsection{Rotate multiple angle}
 \begin{verbatim}
 >'(90,-90,...) : rotate 90,-90,...
 
@@ -1106,8 +1120,15 @@
 \begin{mplibcode}
 beginfigm
   #(60mm,20mm);
-  sw_trimming:=1;
   \(<30,!6,6>'(90,-90,90,-90,90):/!5)
+  ++(defaultscale:=0.5; labeloffset:=2bp;
+      label.lft(">'(90,-90,90,-90,90)",A13);
+      label.rt(">90",A12);
+      label.lft(">-90",A11);
+      label.rt(">90",A10);
+      label.lft(">-90",A9);
+      label.rt(">90",A8);
+  )
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -1118,11 +1139,12 @@
 \index{NH}%
 \index{N"!}%
 \index{N"!2}%
-\index{SO}%
-\index{SOO}%
+\index{S?O}%
+\index{S?O?O}%
 \begin{verbatim}
-NH  : N,/H~nl    N? : N,/_     N?2 : N,/!
-S?O  : S,//O    S?O?O : S,//O^35,//^-35
+NH : N,/H~nl   N? : N,/_ 
+N?2 : N,/!     S?O : S,//O
+S?O?O : S,//O^35,//^-35
 
 <-30,!2,NH,!2,N?,!2,N?2,S?O,!2,S?O?O,!
 \end{verbatim}
@@ -1129,9 +1151,9 @@
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-#(60mm,12mm);
+#(60mm,10mm);
 sw_trimming:=1;
-\(<-30,!2,NH,!2,N?,!2,N?2,!2,S?O,!2,S?O?O,!)
+\(<-30,!2`1.2,NH,!2`1.2,N?,!2`1.2,N?2,!2`1.2,S?O,!2`1.2,S?O?O,!`1.2)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -1150,16 +1172,24 @@
 beginfigm
 #(60mm,10mm);
 sw_trimming:=1;
-\(<30,!11`1,2:??,4:/!,6:/?!,8:/??!,10:/N?!)
+\(<30,!11`1.2,2:??,4:/!,6:/?!,8:/??!,10:/N?!)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{User definition}
+\subsubsection{Define group,parts}
+\index{'}%
+\index{`}%
+\index{``}%
 \begin{verbatim}
-'(..) : user defined parts
+`(..) : define group
+``(..)(..) : define group with atoms
+'(..) : define parts
 
+CF3:=`("{CF3}"); % ** group weight =0
+CF3:=``("{CF3}")(C,F,F,F);
+  ** group weight =12(C)+19(F)*3=69
 iBuOH:='(!?!,OH);
-\(<30,?6,{4,6}:/iBuOH)
+\(<30,?6,{4,6}:/iBuOH,3:/CF3)
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -1167,17 +1197,18 @@
   #(60mm,10mm);
   sw_trimming:=1;
   iBuOH:='(!?!,OH);
-  \(<30,?6,{4,6}:/iBuOH)
+  CF3:=``("{CF3}")(C,F,F,F);
+  \(<30,?6,{4,6}:/iBuOH,3:/CF3)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Inline definition}
+\subsubsection{Concatenate group,parts}
 \index{+}%
 \begin{verbatim}
 a+b : '(a,b)
+/!?!+OH : /'(!?!,OH)
 
  <30,!8,{2,6}:/!?!+OH
- <30,!8,{2,6}:/'(!?!,OH)
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
@@ -1188,8 +1219,8 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Move position}
-\index{"@()}%
+\subsubsection{Move position [ @{ }]}
+\index{@}%
 \begin{verbatim}
 @(x,y) : Move l*(x,y) from current position
 @$(x,y): Move l*(x,y) from origin(@1)
@@ -1203,13 +1234,15 @@
   #(70mm,13mm) #@(2mm,1mm)
   sw_trimming:=1;
   \(<30,?6, at 3,\,!3,//O,!,O,n_^60,@$(6,1),H,p_^15)
-  ++(drawdot A1 withpen pencircle scaled 2bp;
+  ++(drawdot A1 withpen pencircle scaled 3bp;
+     drawdot A12 withpen pencircle scaled 3bp;
       pickup pencircle scaled 0.1bp;
       for i=0 upto 6:
-        draw (A1+(l*i,l-3bp))--(l*i,l+3bp);
+        draw (A1+(l*i,l-4bp))--(l*i,l+4bp);
       endfor
       draw A1--(A1+(0,1l))--A1+(6l,1l);
-      draw (A1+(0,1l))--(A1+(-3bp,1l));
+      draw (A1+(-4bp,1l))--(A1+(4bp,1l));
+      draw (A1+(-4bp,0))--(A1+(4bp,0));
   )
 endfigm
 \end{mplibcode}
@@ -1223,13 +1256,12 @@
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(75mm,13mm) |<(8mm)
+  #(75mm,12mm) |<(8mm)
   sw_numbering:=Atom; numbering_end:=15;
   \(<30,!14,{2,6:10,14}:/_~bd_r`0.5)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\newpage
 \subsubsection{Change color}
 \index{red}%
 \index{blue}%
@@ -1236,24 +1268,16 @@
 \index{green}%
 \begin{verbatim}
 beginfigm
-  \(
-    <30,Ph,{2,5}:N,3:/NH2,4:/COOH,
-     %---------------------
-     2:red,     % red   A2
-     5:blue,    % blue  A5
-     3=green    % green B3
-     %---------------------
-  )
+  \(<30,Ph,{2,5}:N,3:/NH2,4:/COOH,
+     2:red, 5:blue, 3=green)
 endfigm
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(50mm,20mm) |<(8mm)
-  \(
-    <30,Ph,{2,5}:N,3:/NH2,4:/COOH,
-    2:red,5:blue,3=green
-  )
+  #(50mm,18mm) |<(8mm)
+  \(<30,Ph,{2,5}:N,3:/NH2,4:/COOH,
+    2:red,5:blue,3=green)
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -1270,7 +1294,7 @@
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(50mm,20mm) |<(8mm)
+  #(50mm,18mm) |<(8mm)
   atomfont:="cmr8";
   \(<30,Ph,{2,5}:N,3:/NH2,4:/COOH)
 endfigm
@@ -1303,7 +1327,7 @@
 %------------------------------------------------------------------------------
 \subsection{Size/Ratio parameter}
 %-----------------------------------------------------------------------------
-\subsubsection{Bond length [ \textbar=() ]}
+\subsubsection{Bond length [ \textbar={ }]}
 \index{blength}%
 \index{\textbar=()}%
 \begin{verbatim}
@@ -1372,7 +1396,7 @@
 %------------------------------------------------------------------------------
 \subsubsection{Molecular size}
 \index{msize}%
-\index{\#\#()}%
+\index{\#\#}%
 \begin{verbatim}
 ##(1,1) : msize=(1,1)  ** default
 ## p : abbreviated form of msize:=p;
@@ -1483,7 +1507,7 @@
 %------------------------------------------------------------------------------
 \subsection{Size parameter}
 %-----------------------------------------------------------------------------
-\subsubsection{Figure size [ \#(){ }]}
+\subsubsection{Figure size [ \#{ }]}
 \index{fsize}%
 \index{\#()}%
 \begin{verbatim}
@@ -1509,7 +1533,7 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Figure margin [ \#@(){ }]}
+\subsubsection{Figure margin [ \#@{ }]}
 \index{fmargin}%
 \index{\#"@()}%
 \begin{verbatim}
@@ -1617,7 +1641,7 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Max bond length [ \textbar\textless=(){ }]}
+\subsubsection{Max bond length [ \textbar\textless{ }]}
 \index{max\_blength}%
 \index{\textbar\textless()}%
 \begin{verbatim}
@@ -1744,7 +1768,7 @@
 %-----------------------------------------------------------------------------
 \subsubsection{Figure atom gap/atom length}
 \index{ratio\_atomgap\_atom}%
-\index{readm()}%
+\index{readm}%
 \begin{verbatim}
 default:  ratio_atomgap_atom= 0.050
 \end{verbatim}
@@ -1862,8 +1886,7 @@
 \begin{verbatim}
 sw_trimming:=0;  ** default
 ##(1,0.7)
-@(0.2,0.3)\(Ph)
-@(0.8,0.7)\(Ph)
+@(0.2,0.3)\(Ph) @(0.8,0.7)\(Ph)
 \end{verbatim}
 %------------------------------------------------------
 \begin{mplibcode}
@@ -1877,8 +1900,7 @@
 %------------------------------------------------------
 \begin{verbatim}
 sw_trimming:=1;
-@(0.2,0.3)\(Ph)
-@(0.8,0.7)\(Ph)
+@(0.2,0.3)\(Ph) @(0.8,0.7)\(Ph)
 \end{verbatim}
 %------------------------------------------------------
 \begin{mplibcode}
@@ -1894,19 +1916,22 @@
 \subsubsection{Expand mode}
 \index{sw\_expand}%
 \begin{verbatim}
+** put before input mcf2graph
+sw_expand:=1;
+input mcf2graph.mp;
+
+(sw_expand=0) ** default
 @(0, .5)\(<30,Ph,4:/COOH,3:/NH2)
-sw_expand:=1;
+(sw_expand=1)
 @(1, .5)\(<30,Ph,4:/COOH,3:/NH2)
-** default: sw_expand=0
 \end{verbatim}
 %------------------------------------------------------
 \begin{mplibcode}
 beginfigm
-  ''("<30,Ph,4:/COOH,3:/NH2")
-  #(60mm,20mm)
-  @(0, .5)\(scantokens(mc))
+  #(60mm,15mm)
+  @(0, .5)\(<30,Ph,1:/COOH,3:/NH2)
   sw_expand:=1;
-  @(1, .5)\(scantokens(mc))
+  @(1, .5)\(<30,Ph,1:/'(//O^-60,/OH^60),3:/'(N,/H^60,/H^-60))
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
@@ -2094,9 +2119,9 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{Command}
 %-----------------------------------------------------------------------------
-\subsection{drawm [ \textbackslash() ]}
+\subsection{drawm [ \textbackslash{ }]}
 \index{drawm}%
-\index{\textbackslash()}%
+\index{\textbackslash}%
 \begin{verbatim}
 (Draw molecule)
 
@@ -2121,7 +2146,7 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsection{readm() [ ''() ]}
+\subsection{readm [ ' ' ]}
 \index{readm()}%
 \index{''}%
 \begin{verbatim}
@@ -2135,7 +2160,7 @@
    " @9,\,NH,!,//O,!              ")
 \end{verbatim}
 %-----------------------------------------------------------------------------
-\subsection{checkm() [ \textbackslash*(){ }]}
+\subsection{checkm [ \textbackslash*{ }]}
 \index{checkm()}%
 \index{\textbackslash*()}%
 \begin{verbatim}
@@ -2167,10 +2192,10 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsection{getm() [ \$() ]}
-\index{getm()}%
+\subsection{getm [ \$ ]}
+\index{getm}%
 \index{ucount}%
-\index{\$()}%
+\index{\$}%
 \begin{verbatim}
 getm(number)
 ** number = numeric
@@ -2209,9 +2234,9 @@
 \end{verbatim}
 %===============================================================================
 \newpage
-\subsection{add()}
-\index{add()}%
-\index{++()}%
+\subsection{add [ ++ ]}
+\index{add}%
+\index{++}%
 \index{plus}%
 \index{minus}%
 \index{lonepair}%
@@ -2405,9 +2430,9 @@
 \end{mplibcode}
 %-----------------------------------------------------------------------------
 \newpage
-\subsection{ext()}
-\index{ext()}%
-\index{**()}%
+\subsection{ext [ ** ]}
+\index{ext}%
+\index{**}%
 \index{w0}%
 \index{h0}%
 \index{aw}%
@@ -2436,24 +2461,22 @@
 pen thickness / char width
 %----------------------------------------
 beginfigm
- #(70mm,30mm) |=(0.065)
+ #(70mm,30mm)
+ |=(0.065)
  %---------------------------------------
- @(0.1,0.5)\(
-   <-210,60`1,60`1,60`1,{1,3}=dl,
-   1:/R1,4:/R2^-60
+ @(0.1,0.5)
+ \(<-210,60`1,60`1,60`1,{1,3}=dl)
+ ++(
+   defaultscale:=0.6;
+   label.bot("Diene",p0+(0.5w,0));
    )
+ @(0.4,0.5)
+ \(<-30,-60`1,1=dm)
  ++(
-     defaultscale:=0.6;
-     label.bot("Diene",p0+(0.5w,0));
- )
- @(0.4,0.5)\(
-   <-30,-60`1,1=dl,1:/R3,2:/R4^60)
-   ++(defaultscale:=0.6;
+   defaultscale:=0.6;
    label.bot("Dienophile",p0+(.5w,0));
- )
- @(0.9,0.5)\(
-   <30,?6,6=dl,2:/R2,3:/R4,4:/R3,5:/R1
- )
+   )
+ @(0.9,0.5)\(<30,?6,6=dl)
  %---------------------------------------
  **(
   drawarrow (.52w,.5h)..(.6w,.5h);
@@ -2461,7 +2484,8 @@
   label("+",(0.25w,0.5h));
   ratio_thickness_char:=0.125;
   label.bot("Diels-Alder Reaction",
-            (.5w,h));
+            (.5w,h)
+           );
  )
  %---------------------------------------
 endfigm
@@ -2469,24 +2493,20 @@
 %------------------------------------------------------------------------------
 \begin{mplibcode}
 beginfigm
-  #(70mm,30mm) |=(0.065)
+ #(70mm,30mm)
+ |=(0.065)
  %---------------------------------------
  @(0.1,0.5)\(
-   <-210,60`1,60`1,60`1,{1,3}=dl,
-   1:/R1,4:/R2^-60
- )
+   <-210,60`1,60`1,60`1,{1,3}=dl)
  ++(
    defaultscale:=0.6;
    label.bot("Diene",p0+(0.5w,0));
  )
- @(0.4,0.5)\(
-   <-30,-60`1,1=dl,1:/R3,2:/R4^60)
+ @(0.4,0.5)\(<-30,-60`1,1=dm)
    ++(defaultscale:=0.6;
    label.bot("Dienophile",p0+(.5w,0));
  )
- @(0.9,0.5)\(
-   <30,?6,6=dl,2:/R2,3:/R4,4:/R3,5:/R1
- )
+ @(0.9,0.5)\(<30,?6,6=dl)
  %---------------------------------------
  **(
   drawarrow (.52w,.5h)..(.6w,.5h);
@@ -2500,7 +2520,7 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Local ext() setting}
+\subsubsection{Local ext setting}
 \index{\_}%
 \begin{verbatim}
 _s : abbreviated form of EN:=s;
@@ -2541,7 +2561,7 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Global ext() setting}
+\subsubsection{Global ext setting}
 \index{ext\_clear}%
 \begin{verbatim}
 ext_clear: reset global ext()
@@ -2597,7 +2617,7 @@
 \onecolumn
 \section{Example}
 %-----------------------------------------------------------------------------
-\subsection{drawm() example}
+\subsection{drawm example}
 \paragraph{(Luciferin)}
 \begin{verbatim}
 beginfigm
@@ -2614,7 +2634,7 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsection{readm() example}
+\subsection{readm example}
 %-----------------------------------------------------------------------------
 \paragraph{(Colchicine)}
 \begin{verbatim}
@@ -2766,7 +2786,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \noindent%
 \newpage
-\subsection{loadm() example}
+\subsection{loadm example}
 \index{sw\_comment}%
 \index{loadm()}%
 \paragraph{(Example)}
@@ -2835,7 +2855,7 @@
 \noindent%
 %----------------------------------------------------------------------------
 \newpage
-\subsection{getm() example}
+\subsection{getm example}
 \paragraph{(Chlorophyll a)}
 \noindent%
 \begin{verbatim}
@@ -2947,6 +2967,7 @@
 %--------------------------------------------------------------------------------
 COOH:='(//O,!,OH);
 HOCO:='(OH,!,//O,);
+S_CoA:=`("{S-CoA}");
 @(0.33,   1)\(<30,HOCO,!,//O,!2,COOH)                    % Oxaloacetate
 @(0.66,   1)\(<30,HOCO,!4,COOH, at -4`1,\,COOH,4:/OH^-165)  % Citrate
 @(1,      1)\(<30,HOCO,!2,!~dr,!,COOH, at -4`1,\,COOH)      % cis-Aconitate
@@ -2953,7 +2974,7 @@
 @(1,   0.58)\(<30,HOCO,!4,COOH, at -4,\`1,COOH,5:/OH)       % Isocitrate
 @(1,   0.05)\(<30,HOCO,!3,//O,!,COOH, at -4,\`1,COOH)       % Oxalosuccinate
 @(0.66,0.05)\(<30,HOCO,!3,//O,!,COOH)                    % alfa-Ketoglutarate
-@(0.33,0.05)\(<30,HOCO,!3,//O,!,"{S-CoA}")               % Succinyl-CoA
+@(0.33,0.05)\(<30,HOCO,!3,//O,!,S_CoA)                   % Succinyl-CoA
 @(0,   0.05)\(<30,HOCO,!3,COOH)                          % Succinate
 @(0,   0.55)\(<30,HOCO,!,!~dr,!,COOH)                    % Fumarate
 @(0,      1)\(<30,HOCO,!3,COOH,3:/OH)                    % L-Malate
@@ -3013,6 +3034,7 @@
 #(160mm,75mm) |<(5mm)
 COOH:='(//O,!,OH);      % define COOH
 HOCO:='(OH,!,//O,);     % define HOCO
+S_CoA:=`("{S-CoA}");    % define S_CoA
 @(0.33,   1)\(<30,HOCO,!,//O,!2,COOH)                    % Oxaloacetate
 @(0.66,   1)\(<30,HOCO,!4,COOH, at -4`1,\,COOH,4:/OH^-165)  % Citrate
 @(1,      1)\(<30,HOCO,!2,!~dr,!,COOH, at -4`1,\,COOH)      % cis-Aconitate
@@ -3019,7 +3041,7 @@
 @(1,   0.58)\(<30,HOCO,!4,COOH, at -4,\`1,COOH,5:/OH)       % Isocitrate
 @(1,   0.05)\(<30,HOCO,!3,//O,!,COOH, at -4,\`1,COOH)       % Oxalosuccinate
 @(0.66,0.05)\(<30,HOCO,!3,//O,!,COOH)                    % alfa-Ketoglutarate
-@(0.33,0.05)\(<30,HOCO,!3,//O,!,"{S-CoA}")               % Succinyl-CoA
+@(0.33,0.05)\(<30,HOCO,!3,//O,!,S_CoA)                   % Succinyl-CoA
 @(0,   0.05)\(<30,HOCO,!3,COOH)                          % Succinate
 @(0,   0.55)\(<30,HOCO,!,!~dr,!,COOH)                    % Fumarate
 @(0,      1)\(<30,HOCO,!3,COOH,3:/OH)                    % L-Malate

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf	2024-02-25 21:09:05 UTC (rev 70166)
+++ branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf	2024-02-25 21:09:13 UTC (rev 70167)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf template file    mcf_template.mcf   by Akira Yamaji   2024.01.21
+% mcf template file    mcf_template.mcf   by Akira Yamaji   2024.01.25
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  must use version 5.11
+%  must use version 5.12
 %  tag1:var1;tag2:var2;tag3:var3 .....
 %  first character of line "%" comment out
 %  first character of line ":"  start MCF

Modified: branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp	2024-02-25 21:09:05 UTC (rev 70166)
+++ branches/branch2023.final/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp	2024-02-25 21:09:13 UTC (rev 70167)
@@ -1,8 +1,8 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF compile template file                    by Akira Yamaji  2024.01.21
+% MCF compile template file                    by Akira Yamaji  2024.01.25
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.11
-message "* mcf_template 2024.01.21";
+if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.12
+message "* mcf_template 2024.01.25";
 message "";
 %------------------------------------------------------------------------------
 %%%%ext(defaultscale:=.3; label.rt(EN,(0,0));)



More information about the tex-live-commits mailing list.