summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-26 03:00:59 +0000
committerNorbert Preining <norbert@preining.info>2024-02-26 03:00:59 +0000
commit8dfcb0935597571483db587639fb662c93d775b1 (patch)
tree39d596fbdcc693a0d3ececb8aa099edfbd93f898 /graphics
parent7520174d338ca031769f8e67d69b9a6a00f1626b (diff)
CTAN sync 202402260300
Diffstat (limited to 'graphics')
-rw-r--r--graphics/mcf2graph/CHANGELOG11
-rw-r--r--graphics/mcf2graph/README4
-rw-r--r--graphics/mcf2graph/main_lib.mcf130
-rw-r--r--graphics/mcf2graph/mcf2graph.mp277
-rw-r--r--graphics/mcf2graph/mcf_exa_soc.mp8
-rw-r--r--graphics/mcf2graph/mcf_example.pdfbin713389 -> 713698 bytes
-rw-r--r--graphics/mcf2graph/mcf_example.tex6
-rw-r--r--graphics/mcf2graph/mcf_manual.pdfbin317677 -> 319715 bytes
-rw-r--r--graphics/mcf2graph/mcf_manual.tex230
-rw-r--r--graphics/mcf2graph/template_lib.mcf4
-rw-r--r--graphics/mcf2graph/template_soc.mp6
11 files changed, 412 insertions, 264 deletions
diff --git a/graphics/mcf2graph/CHANGELOG b/graphics/mcf2graph/CHANGELOG
index 946f88d8c0..e239f9ec97 100644
--- a/graphics/mcf2graph/CHANGELOG
+++ b/graphics/mcf2graph/CHANGELOG
@@ -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
diff --git a/graphics/mcf2graph/README b/graphics/mcf2graph/README
index 0e091cee0f..0dbc9d157f 100644
--- a/graphics/mcf2graph/README
+++ b/graphics/mcf2graph/README
@@ -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@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
diff --git a/graphics/mcf2graph/main_lib.mcf b/graphics/mcf2graph/main_lib.mcf
index 3e2bc95a91..f2868a7ab9 100644
--- a/graphics/mcf2graph/main_lib.mcf
+++ b/graphics/mcf2graph/main_lib.mcf
@@ -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-Lysine;MW:146.19;EXA:-
%------------------------------------------------------------------------------
CAT:biological;EN:L-Arginine;MW:174.21;EXA:-
:
-<30,NH2,!wb,!COOH,@2,\`1,!`1,!2,NH!,//NH,!NH2
+<30,NH2,!wb,!COOH,@2,\`1,!`1,!2,NH!,?NH,!NH2
;
%------------------------------------------------------------------------------
CAT:biological;EN:L-Hystidine;MW:155.16;EXA:-
@@ -365,12 +365,12 @@ CAT:biological;EN:Salicylic acid;MW:138.12;EXA:-
%------------------------------------------------------------------------------
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,7 +380,96 @@ CAT:biological;EN:Caffeic acid;MW:180.16;EXA:1
%------------------------------------------------------------------------------
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,@2,180~zf`1,&4~zb
+;
+%------------------------------------------------------------------------------
+CAT:biological;EN:beta-Pinene;MW:136.24;EXA:-
+:
+<30,?6,3:??,5://_,@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,@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
@@ -756,7 +845,7 @@ CAT:biological;EN:Psilocybin;MW:284.248;EXA:1
CAT:biological;EN:Tetrodotoxine;MW:319.27;EXA:1
:
#1,<60,-90,60,-30`1.15,150,60,&1,@3,-135,60,-30`1.15,150,&4,
- @10,\,O,60`1.33,60,&($3)~si_,@8,-15~si_,O,&12,##,
+ @10,\,O,60`1.33,60,&$3~si_,@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 @@ CAT:biological;EN:Fumonisin B1;MW:721.83;EXA:1
<30,!19,@6,*\,O!,?O!2,/COOH,!2,COOH,@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,@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,@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,@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,@8,\,/*OH,!2,!d,?!
+;
%==============================================================================
CAT:synthetic;EN:Benzene;MW:78.11;EXA:-
:
@@ -2164,7 +2273,7 @@ CAT:pesticide;EN:Benalaxyl;MW:325.4;EXA:-
%------------------------------------------------------------------------------
CAT:pesticide;EN:Benoxacor;MW:260.1;EXA:-
:
-<90,Ph,3=?6,7:N,10:O,8:/_,@7,\,?O!,?Cl,!Cl
+<90,Ph,3=?6,7:N,10:O,8:/_,@7,\,?O!,/Cl,!Cl
;
%------------------------------------------------------------------------------
CAT:pesticide;EN:Heptachlor;MW:373.35;EXA:1
@@ -2846,6 +2955,11 @@ CAT:antibacterial;EN:Oxaziclomefone;MW:376.277;EXA:-
:
<30,?6,6=dl,4:N,2:O,1:/_,5:?O,6:/Ph,@4,\,??,!Ph,{-4,-2}:/Cl
;
+%------------------------------------------------------------------------------
+CAT:biological;EN:Pyrrolnitrin;MW:111;EXA:-
+:
+<30,Ph,@3,\,?5,{8,11}=db,{1,11}:/Cl,9:NH,2:/NO2,
+;
%******************************************************************************
CAT:biological;EN:Okadaic acid;MW:805.00;EXA:2
:
diff --git a/graphics/mcf2graph/mcf2graph.mp b/graphics/mcf2graph/mcf2graph.mp
index ba2c36b292..4f38b05612 100644
--- a/graphics/mcf2graph/mcf2graph.mp
+++ b/graphics/mcf2graph/mcf2graph.mp
@@ -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@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 @@ 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,?,?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 @@ if ahlength=5: message "* output MOL file(V2000)"; message "* "&jobname&"-nnn-"&
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 @@ fsize:=(30mm,20mm); fmargin:=(0.4mm,0.4mm); msize:=(1,1); mposition:=(0.5,0.5);
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 @@ def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_t
_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 @@ def parameter_list=
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 @@ def init_par(text t)= nA:=nB:=nC:=0;
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 @@ def store_par(text t)= nA:=nB:=nC:=0;
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 @@ def restore_par(text t)= nA:=nB:=nC:=0;
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 @@ def beginfigm=
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 @@ def putm=
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 group_wv secondary n = /n~wv enddef; def group_nb secondary n = /n~nb endde
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 @@ def expand_pcode(expr n,a)=
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 @@ enddef;
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 @@ enddef;
%-------------------------------------------------------------------------------------------------
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 @@ def add_group=
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 @@ enddef;
%-------------------------------------------------------------------------------------------------
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,14 +1349,14 @@ vardef bond_stereo(expr n)=
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;
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,98 +1364,103 @@ vardef TB(expr s)(text t)=
pcode_num
enddef;
%=================================================================================================
-pcode_int:=pcode_emi_start; pcode_num:=pcode_emb_start;
-%-------------------------------------------------------------------------------------------------
-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;
-%=================================================================================================
-?:=(_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^}");
+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;
%-------------------------------------------------------------------------------------------------
-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,##);
+define_atom_group_parts;
%=================================================================================================
init_par(parameter_list);
%-------------------------------------------------------------------------------------------------
diff --git a/graphics/mcf2graph/mcf_exa_soc.mp b/graphics/mcf2graph/mcf_exa_soc.mp
index b80ca603d6..e746f27a20 100644
--- a/graphics/mcf2graph/mcf_exa_soc.mp
+++ b/graphics/mcf2graph/mcf_exa_soc.mp
@@ -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 @@ max_blength:=4mm;
%%%%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
diff --git a/graphics/mcf2graph/mcf_example.pdf b/graphics/mcf2graph/mcf_example.pdf
index aa3ba32aa8..efd7084173 100644
--- a/graphics/mcf2graph/mcf_example.pdf
+++ b/graphics/mcf2graph/mcf_example.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_example.tex b/graphics/mcf2graph/mcf_example.tex
index 257d3b40f8..e4464a0e43 100644
--- a/graphics/mcf2graph/mcf_example.tex
+++ b/graphics/mcf2graph/mcf_example.tex
@@ -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
diff --git a/graphics/mcf2graph/mcf_manual.pdf b/graphics/mcf2graph/mcf_manual.pdf
index e0e87b0248..4609060af5 100644
--- a/graphics/mcf2graph/mcf_manual.pdf
+++ b/graphics/mcf2graph/mcf_manual.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_manual.tex b/graphics/mcf2graph/mcf_manual.tex
index 3c79a1b095..aeae9c96d7 100644
--- a/graphics/mcf2graph/mcf_manual.tex
+++ b/graphics/mcf2graph/mcf_manual.tex
@@ -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@gmail.com \end{center}
%-----------------------------------------------------------------------------
@@ -1071,13 +1071,23 @@ endfigm
\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 @@ beginfigm
#(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 @@ endfigm
\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,20 +1139,21 @@ endfigm
\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}
%-----------------------------------------
\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 @@ endfigm
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 @@ beginfigm
#(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 @@ beginfigm
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 @@ beginfigm
#(70mm,13mm) #@(2mm,1mm)
sw_trimming:=1;
\(<30,?6,@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,37 +1256,28 @@ endfigm
%-----------------------------------------
\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}%
\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 @@ endfigm
%-----------------------------------------
\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 @@ endfigm
%------------------------------------------------------------------------------
\subsection{Size/Ratio parameter}
%-----------------------------------------------------------------------------
-\subsubsection{Bond length [ \textbar=() ]}
+\subsubsection{Bond length [ \textbar={ }]}
\index{blength}%
\index{\textbar=()}%
\begin{verbatim}
@@ -1372,7 +1396,7 @@ endfigm
%------------------------------------------------------------------------------
\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 @@ endfigm
%------------------------------------------------------------------------------
\subsection{Size parameter}
%-----------------------------------------------------------------------------
-\subsubsection{Figure size [ \#(){ }]}
+\subsubsection{Figure size [ \#{ }]}
\index{fsize}%
\index{\#()}%
\begin{verbatim}
@@ -1509,7 +1533,7 @@ beginfigm
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
-\subsubsection{Figure margin [ \#@(){ }]}
+\subsubsection{Figure margin [ \#@{ }]}
\index{fmargin}%
\index{\#"@()}%
\begin{verbatim}
@@ -1617,7 +1641,7 @@ beginfigm
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 @@ endfigm
%-----------------------------------------------------------------------------
\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 @@ endfigm
\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 @@ endfigm
%------------------------------------------------------
\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 @@ endfigm
\subsubsection{Expand mode}
\index{sw\_expand}%
\begin{verbatim}
-@(0, .5)\(<30,Ph,4:/COOH,3:/NH2)
+** 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)
@(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 @@ ratio_thickness_bond:=save_ratio;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Command}
%-----------------------------------------------------------------------------
-\subsection{drawm [ \textbackslash() ]}
+\subsection{drawm [ \textbackslash{ }]}
\index{drawm}%
-\index{\textbackslash()}%
+\index{\textbackslash}%
\begin{verbatim}
(Draw molecule)
@@ -2121,7 +2146,7 @@ beginfigm
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
-\subsection{readm() [ ''() ]}
+\subsection{readm [ ' ' ]}
\index{readm()}%
\index{''}%
\begin{verbatim}
@@ -2135,7 +2160,7 @@ readm(string1,string2, ...);
" @9,\,NH,!,//O,! ")
\end{verbatim}
%-----------------------------------------------------------------------------
-\subsection{checkm() [ \textbackslash*(){ }]}
+\subsection{checkm [ \textbackslash*{ }]}
\index{checkm()}%
\index{\textbackslash*()}%
\begin{verbatim}
@@ -2167,10 +2192,10 @@ beginfigm
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 @@ putm: put figure
\end{verbatim}
%===============================================================================
\newpage
-\subsection{add()}
-\index{add()}%
-\index{++()}%
+\subsection{add [ ++ ]}
+\index{add}%
+\index{++}%
\index{plus}%
\index{minus}%
\index{lonepair}%
@@ -2405,9 +2430,9 @@ endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\newpage
-\subsection{ext()}
-\index{ext()}%
-\index{**()}%
+\subsection{ext [ ** ]}
+\index{ext}%
+\index{**}%
\index{w0}%
\index{h0}%
\index{aw}%
@@ -2436,24 +2461,22 @@ ratio_thickness_char:
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 @@ beginfigm
label("+",(0.25w,0.5h));
ratio_thickness_char:=0.125;
label.bot("Diels-Alder Reaction",
- (.5w,h));
+ (.5w,h)
+ );
)
%---------------------------------------
endfigm
@@ -2469,24 +2493,20 @@ endfigm
%------------------------------------------------------------------------------
\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 @@ beginfigm
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
-\subsubsection{Local ext() setting}
+\subsubsection{Local ext setting}
\index{\_}%
\begin{verbatim}
_s : abbreviated form of EN:=s;
@@ -2541,7 +2561,7 @@ beginfigm
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 @@ endfigm
\onecolumn
\section{Example}
%-----------------------------------------------------------------------------
-\subsection{drawm() example}
+\subsection{drawm example}
\paragraph{(Luciferin)}
\begin{verbatim}
beginfigm
@@ -2614,7 +2634,7 @@ beginfigm
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
-\subsection{readm() example}
+\subsection{readm example}
%-----------------------------------------------------------------------------
\paragraph{(Colchicine)}
\begin{verbatim}
@@ -2766,7 +2786,7 @@ endfigm
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent%
\newpage
-\subsection{loadm() example}
+\subsection{loadm example}
\index{sw\_comment}%
\index{loadm()}%
\paragraph{(Example)}
@@ -2835,7 +2855,7 @@ MI : monoisotopic mass from data USE : the use
\noindent%
%----------------------------------------------------------------------------
\newpage
-\subsection{getm() example}
+\subsection{getm example}
\paragraph{(Chlorophyll a)}
\noindent%
\begin{verbatim}
@@ -2947,13 +2967,14 @@ beginfigm
%--------------------------------------------------------------------------------
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,@-4`1,\,COOH,4:/OH^-165) % Citrate
@(1, 1)\(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH) % cis-Aconitate
@(1, 0.58)\(<30,HOCO,!4,COOH,@-4,\`1,COOH,5:/OH) % Isocitrate
@(1, 0.05)\(<30,HOCO,!3,//O,!,COOH,@-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,13 +3034,14 @@ beginfigm
#(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,@-4`1,\,COOH,4:/OH^-165) % Citrate
@(1, 1)\(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH) % cis-Aconitate
@(1, 0.58)\(<30,HOCO,!4,COOH,@-4,\`1,COOH,5:/OH) % Isocitrate
@(1, 0.05)\(<30,HOCO,!3,//O,!,COOH,@-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
diff --git a/graphics/mcf2graph/template_lib.mcf b/graphics/mcf2graph/template_lib.mcf
index 2af1f4d88f..6b2c965ace 100644
--- a/graphics/mcf2graph/template_lib.mcf
+++ b/graphics/mcf2graph/template_lib.mcf
@@ -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
diff --git a/graphics/mcf2graph/template_soc.mp b/graphics/mcf2graph/template_soc.mp
index cfc1dd2699..63243412a9 100644
--- a/graphics/mcf2graph/template_soc.mp
+++ b/graphics/mcf2graph/template_soc.mp
@@ -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));)