diff options
author | Karl Berry <karl@freefriends.org> | 2024-12-01 21:05:26 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-12-01 21:05:26 +0000 |
commit | 08655b3b049a667aac0c5dc5c590aa1bdeff2391 (patch) | |
tree | dbe8ad630e919023bfd2bbe26d521fff3560f654 /Master/texmf-dist | |
parent | 3aa66f38e64f592ccff992cfb51af32de5c51ea1 (diff) |
mcf2graph (1dec24)
git-svn-id: svn://tug.org/texlive/trunk@73011 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG | 9 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/README | 18 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp | 9 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf | bin | 711823 -> 726937 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex | 16 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf | bin | 319906 -> 320128 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex | 80 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_to_graph.cmd | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp | 6 | ||||
-rw-r--r-- | Master/texmf-dist/metapost/mcf2graph/main_lib.mcf | 182 | ||||
-rw-r--r-- | Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp | 350 |
12 files changed, 333 insertions, 343 deletions
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG index 1082355b0c0..1dc42d20430 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG +++ b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG @@ -1,6 +1,13 @@ ******************************************************************************* - Changelog of mcf2graph software package by Akira Yamaji 2024-11-17 + Changelog of mcf2graph software package by Akira Yamaji 2024-12-01 ******************************************************************************* +[ver. 5.15 / 2024-12-01] + -change syntax of separator inside @(..) + @(a,b) => @(a'b) + -update mcf2graph.mp + -update main_lib.mcf + -update MCF manual,example + [ver. 5.14 / 2024-11-17] -change syntax of inverter inside {..} {n1,n2',n3..} => {n1,*n2,n3..} diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/README b/Master/texmf-dist/doc/metapost/mcf2graph/README index d9fef26c750..101daf83058 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/README +++ b/Master/texmf-dist/doc/metapost/mcf2graph/README @@ -1,7 +1,7 @@ ******************************************************************************** mcf2graph : Convert Molecular Coding Format to graphics with MetaPost Author : Akira Yamaji - version : 5.14 2024-11-17 + version : 5.15 2024-12-01 E-mail : mcf2graph@gmail.com Located at : http://www.ctan.org/pkg/mcf2graph ******************************************************************************** @@ -20,7 +20,7 @@ ( 3) mcf_to_graph.cmd Batch file for compile MCF lib >mcf_to_graph template_lib.mcf drag and drop library files on this batch - create svg in ./template_lib + create svg(default) in ./template_lib ( 4) mcf2graph.mp Main macro of Metapost ( 5) mcf_exa_soc.mp Metapost source file example ( 6) main_lib.mcf MCF library file @@ -31,8 +31,14 @@ (11) mcf_example.tex List of Molecule (12) mcf_example.pdf PDF of (11) typeset with LuaLaTeX -3. How to use mcf2graph with MetaPost - Minimum requirement to use mcf2graph : mpost.exe,mpost.dll,mpost.mp,plain.mp +3. Minimum required files to use mcf2graph + (1) mpost.exe + (2) mpost.dll + (3) mpost.mp + (4) plain.mp + +4. Use mcf2graph with MetaPost + -command line- (1) >mcf_to_graph filename.mcf => output svg(default),png,mol,report (2) >mpost filename.mp => output svg file (3) >mpost -s ahangle=1 filename.mp => output png file (600dpi) @@ -43,8 +49,8 @@ (8) >mpost -s ahlength=6 filename.mp => output mol file(V3000) (9) >mpost -s ahlength=7 filename.mp => output report file -4. License - mcf2graph ver 5.14 Copyright (c) 2013-2024 Akira Yamaji +5. License + mcf2graph ver 5.15 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/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp index 69bbbb7ae87..463eeaa59bf 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp @@ -1,8 +1,9 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% MCF metapost souce file example by Akira Yamaji 2024.11.17 +% MCF metapost souce file example by Akira Yamaji 2024.12.01 +% Public domain. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.14 -message "* mcf_template 2024.11.17"; +if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.15 +message "* mcf_template 2024.12.01"; message ""; %------------------------------------------------------------------------------ fsize:=(30mm,20mm); @@ -20,7 +21,7 @@ max_blength:=4mm; %%%%sw_comment:=1; loadm("CAT=biological","MW>=100","MW<=250","a:MW"); %%%%savem("temp.mcf"); % save to temp.mcf %%%%loadm("EN<>*"); % select all -loadm("EXA=9"); % select EXA=1 +loadm("EXA=1"); % select EXA=1 %------------------------------------------------------------------------------ for i=1 upto ucount: beginfigm $(i) \\ endfigm endfor %****************************************************************************** diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf Binary files differindex ea478b5802e..c06c85627a6 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex index 88a85283d95..9eda6a3192a 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2024.11.17 +% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2024.12.01 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% ** mcf2graph.mf must be version 5.14 +% ** mcf2graph.mf must be version 5.15 % ** use mcf_library.mcf % ** typeset by LuaLaTeX(luamplib) %------------------------------------------------------------------------- @@ -95,7 +95,7 @@ loadm("EXA=2"); fig_num:=0; fsize:=(50mm,34mm); - fmargin:=(1mm,1mm); + fmargin:=(4mm,4mm); max_blength:=4mm; row_h:=3.8mm; header_h:=3.8mm; @@ -103,7 +103,7 @@ draw (0,0)--(185mm,0)--(185mm,h)--(0,h)--cycle wpcs thickness_frame; draw (w,h-header_h)--(185mm,h-header_h) wpcs thickness_frame; draw (w,h)--(w,0) wpcs thickness_frame; - for col_w=75mm,105mm,130mm,155mm: + for col_w=85mm,110mm,130mm,150mm: draw (col_w,h)--(col_w,h-header_h) wpcs thickness_frame; endfor enddef; @@ -114,7 +114,7 @@ \fig@num=0% \loop% \advance\fig@num\@ne\relax% -\ifnum\fig@num=9 \CONT@false% +\ifnum\fig@num=25 \CONT@false% \else% \begin{mplibcode}% beginfigm @@ -132,10 +132,10 @@ else: label.lrt(EN, (w,h)); fi - label.lrt(CAT,(75mm,h)); - label.lrt(MW,(105mm,h)); + label.lrt(CAT,(85mm,h)); + label.lrt(MW,(110mm,h)); label.lrt(mw,(130mm,h)); - label.lrt(fm,(155mm,h)); + label.lrt(fm,(150mm,h)); make_frame; if mc_row>12: defaultscale:=0.6; row_h:=5.25; ef mc_row>8: defaultscale:=0.8; row_h:=6.5; diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf Binary files differindex 5b5231e315f..e57381594c6 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex index 60202992924..e5a2b9997d8 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format manual by Akira Yamaji 2024.11.17 +% Molecular Coding Format manual by Akira Yamaji 2024.12.01 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% ** mcf2graph.mf must be version 5.14 +% ** mcf2graph.mf must be version 5.15 % ** use main_lib.mcf % ** typeset by LuaLaTeX(luamplib) %---------------------------------------------------------------------------- @@ -60,16 +60,16 @@ beginfigm \(<30,NH2,!~wb,/_,!,COOH) endfigm % L-Valine beginfigm \(<30,NH2,!~wb,/?!,!,COOH) endfigm % L-Leucine -beginfigm \(<30,NH2,!~wb,/''(!,?!),!,COOH) endfigm +beginfigm \(<30,NH2,!~wb,/!'?!,!,COOH) endfigm \end{mplibcode} \\ \begin{mplibcode} % L-Isoleucine -beginfigm \(<30,NH2,!~wb,/''(/*_,!2),!,COOH) endfigm +beginfigm \(<30,NH2,!~wb,/?z'!2,!,COOH) endfigm % L-Serine beginfigm \(<30,NH2,!~wb,/!OH,!,COOH) endfigm % L-Threonine -beginfigm \(<30,NH2,!~wb,/''(/_,!~wf,OH),!,COOH) endfigm +beginfigm \(<30,NH2,!~wb,/?'!w'OH,!,COOH) endfigm % L-Cysteine beginfigm \(<30,NH2,!~wb,/!SH,!,COOH) endfigm \end{mplibcode} @@ -111,9 +111,9 @@ beginfigm \(<30,NH2,!~wb,!,COOH,@2,\,!,|,?5,1'3=dl,3:N,5:NH) endfigm % L-DOPA beginfigm \(<30,NH2,!~wb,!,COOH,@2,\,!,Ph,-3'-4:/OH) endfigm % Ornithine -beginfigm \(<30,NH2,!~wb,/''(!3,NH2),!,COOH) endfigm +beginfigm \(<30,NH2,!~wb,/!3'NH2,!,COOH) endfigm % Citrulline -beginfigm \(<30,NH2,!~wb,/''(!3,NH,!,//O,!,NH2),!,COOH) endfigm +beginfigm \(<30,NH2,!~wb,/!3'NH!'?O'!NH2,!,COOH) endfigm % GABA beginfigm \(<30,NH2,!4,COOH) endfigm \end{mplibcode} @@ -124,7 +124,7 @@ beginfigm \(<30,NH2,!2,//O,!3,COOH) endfigm % 4-amino benzoic acid beginfigm \(<30,Ph,1:/NH2,4:/COOH) endfigm % L-Carboxyl glutamic acid -beginfigm \(<30,NH2,!~wb,/''(!,/COOH,!,COOH),!,COOH) endfigm +beginfigm \(<30,NH2,!~wb,/!'?COOH'!COOH,!,COOH) endfigm % L-Hydroxy Prorine beginfigm \(<18,?5,1:/OH,3:NH,4:*/COOH) endfigm \end{mplibcode} @@ -425,8 +425,7 @@ wf: wedge forward wb: wedge backward zf: hashed(zebra stripe) wedge foward zb: hashed(zebra stripe) wedge backward -vf:vector forward -vb:vector backward +vf:vector forward / vb:vector backward <-30, !~wf,!,!~wb,!,!~zf,!,!~zb,!,!~vf,!~vb @@ -529,14 +528,14 @@ wb_r : wedge backward (half width) #1.25,-30~wf_r,30~bd_r`1,30~wb_r, 120,O,30,&1,##,#.5,6^$90:/!OH, - {1^$-90'2^$90'3^$-90'4^$90}:/OH, + {1^$270'2^$90'3^$270'4^$90}:/OH, \end{verbatim} %----------------------------------------- \begin{mplibcode} beginfigm #(75mm,16mm); @(0.05,0.5)\(#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, - #.5,{1^$-90'2^$90'3^$-90'4^$90}:/OH,6^$90:/!OH) + #.5,{1^$270'2^$90'3^$270'4^$90}:/OH,6^$90:/!OH) defaultscale:=0.6; @(0.5,0.7)\(0~wf_r) ++(label.lft("wf_r:",A1);) @(0.5,0.2)\(0~wf) ++(label.lft("wf:",A1);) @@ -752,7 +751,7 @@ beginfigm #(60mm,18mm) #@(2mm,1.5mm) sw_trimming:=1; sw_numbering:=Bond; - \(<30,?6,3=?6,3=dt,7'11=bd_r) + \(<30,?6,3=?6,3=dt,{7:11}=bd_r) endfigm \end{mplibcode} %----------------------------------------------------------------------------- @@ -776,7 +775,7 @@ endfigm \begin{verbatim} ?6,3=?6[13] : fuse ?6[13] at B3 ?6[13]: 6 membered ring scaled 13/10 -** ?m[n] (5<=m<=8,11<=n<=15) +** ?m[n] (5<=m<=6,11<=n<=15) ?6,3=?6[13] \end{verbatim} @@ -787,7 +786,7 @@ beginfigm margin_top_bottom:=1.5mm; sw_numbering:=Bond; sw_trimming:=1; - \(<30,?6,3=?6[13],3=dt,7'11=bd_r) + \(<30,?6,3=?6[13],3=dt,{7:11}=bd_r) endfigm \end{mplibcode} %----------------------------------------------------------------------------- @@ -823,7 +822,7 @@ beginfigm #(75mm,20mm) #@(2mm,2mm) sw_numbering:=Bond; ##(1,.9) - @( 0,.5)\(<30,?6,{3,11--4}=?6,11'4=dt,{12:15}=bd_r) + @( 0,.5)\(<30,?6,{3'11--4}=?6,11'4=dt,{12:15}=bd_r) ++(defaultscale:=0.4; label("(1)",p0);) ##(1,.9) @(.5,.5)\(<30,?6,3=?6,{11--4}=?5,11'4=dt,{12:14}=bd_r) @@ -851,7 +850,7 @@ endfigm beginfigm #(60mm,20mm) #@(2mm,2mm) sw_numbering:=Bond; - @(0,1)\(?6,3'10=?6,16---4=?6,16'4=dt,17'19=bd_r) + @(0,1)\(?6,3'10=?6,16---4=?6,16'4=dt,{17:19}=bd_r) ++(defaultscale:=0.4; label("(1)",p0);) @(1,0)\(?6,3'10=?6,16---4=?5,16'4=dt,17'18=bd_r) ++(defaultscale:=0.4; label("(2)",p0);) @@ -915,7 +914,7 @@ endfigm \begin{mplibcode} beginfigm #(75mm,18mm); - \(<30,!,/_,!2,/!,!2,/!,!4,/?!,!4,/??!,!2,/''(Ph`0.8)^-60,!) + \(<30,!,/_,!2,/!,!2,/!,!4,/?!,!4,/??!,!2,/#.8'Ph^-60,!) endfigm \end{mplibcode} %----------------------------------------------------------------------------- @@ -974,7 +973,7 @@ endfigm \subsubsection{Add group} \begin{verbatim} <30,!17,2:/_,3:/!,4:/!2,7:/iPr, - 8:/tBu,10:/''(Ph`0.6)^-15, + 8:/tBu,10^-15:/#.6'Ph, 11'12'*13:*/_,15'16'*17:/*_ \end{verbatim} %----------------------------------------- @@ -983,7 +982,7 @@ beginfigm #(75mm,25mm) #@(2mm,2mm) sw_numbering:=Atom; numbering_end:=17; - \(<30,!17,2:/_,3:/!,4:/!2,7:/iPr,8:/tBu,10:/''(Ph`0.6)^-15, + \(<30,!17,2:/_,3:/!,4:/!2,7:/iPr,8:/tBu,10^-15:/#.6'Ph, 11'12'*13:*/_,15'16'*17:/*_) endfigm \end{mplibcode} @@ -1034,6 +1033,7 @@ endfigm ?4, {3^-90'3^-30'3^90}:/!3>hz, + {1^-60'1'1^60}:/!3>vt \end{verbatim} %----------------------------------------- @@ -1065,7 +1065,6 @@ endfigm <-30,!6, {3^-30'3'3^30}:/!3>lr, -{5^-30'5'5^30}:/!3>rl \end{verbatim} %----------------------------------------- \begin{mplibcode} @@ -1112,7 +1111,7 @@ endfigm %----------------------------------------------------------------------------- \subsubsection{Rotate multiple angle} \begin{verbatim} ->{90,-90,...} : rotate 90,-90,... +>{90'-90,...} : rotate 90,-90,... <30,!6,6>{90'-90'90'-90'90}:/!5 \end{verbatim} @@ -1120,7 +1119,7 @@ endfigm \begin{mplibcode} beginfigm #(60mm,20mm); - \(<30,!6,6>{90'-90'90'-90'90}:/!5) + \(<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); @@ -1209,6 +1208,7 @@ a'b : {a,b} or ''(a,b) /!?!'OH : /''(!?!,OH) <30,!8,2'6:/!?!'OH +or <30,!8,{2'6}:/''(!?!,OH) \end{verbatim} %----------------------------------------- \begin{mplibcode} @@ -1222,18 +1222,18 @@ endfigm \subsubsection{Move position [ @{ }]} \index{@}% \begin{verbatim} -@(x,y) : Move l*(x,y) from current position -@$(x,y): Move l*(x,y) from origin(@1) +@(x'y) : Move l*(x,y) from current position +@$(x'y): Move l*(x,y) from origin(@1) ** l=bond length of ring -<30,?6,@3,!4,//O,!,O,n_^60,@$(6,1),H,p_^15 +<30,?6,@3,!4,//O,!,O,n_^60,@$(6'1),H,p_^15 \end{verbatim} %----------------------------------------- \begin{mplibcode} beginfigm #(70mm,13mm) #@(2mm,1mm) sw_trimming:=1; - \(<30,?6,@3,\,!3,//O,!,O,n_^60,@$(6,1),H,p_^15) + \(<30,?6,@3,\,!3,//O,!,O,n_^60,@$(6'1),H,p_^15) ++(drawdot A1 withpen pencircle scaled 3bp; drawdot A12 withpen pencircle scaled 3bp; pickup pencircle scaled 0.1bp; @@ -2135,7 +2135,7 @@ d: y axis position \(): abbreviated form of drawm() drawm(<30,Ph,3:/F,4:/Cl) - \(<30,Ph,3:/F,4:/Cl) + \(<30,Ph,3:/F,4:/Cl) \end{verbatim} %------------------------------------------------ \begin{mplibcode} @@ -2671,10 +2671,10 @@ beginfigm '`( %---------------------------------------------------- "#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ", - "#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH, ", - "@4,$-50~arc_lb`1,O,$50~arc_br`1,<$0, ", + "#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH, ", + "@4,$310~arc_lb`1,O,$50~arc_br`1,<$0, ", "|,#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ", - "#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH ") + "#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH ") %---------------------------------------------------- #(50mm,20mm) \\ endfigm @@ -2686,10 +2686,10 @@ beginfigm '`( %------------------------------------------------------- "#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ", - "#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH, ", - "@4,$-50~arc_lb`1,O,$50~arc_br`1,<$0, ", + "#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH, ", + "@4,$310~arc_lb`1,O,$50~arc_br`1,<$0, ", "|,#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ", - "#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH ") + "#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH ") %------------------------------------------------------- #(50mm,20mm) \\ endfigm @@ -2704,7 +2704,7 @@ beginfigm '`( %----------------------------------------------------------------------- "<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1, ", - " 14:O,13:/*Et,1'9://O, ", + " 14:O,13:/*!,1'9://O, ", " {*2'4'6^-35'8'*10'12^35}:/*_, ", " {6^35'11'12^-35}:*/OH, ", " @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:/_,4:/*OH,3^-35:/*O!,##, ", @@ -2728,7 +2728,7 @@ beginfigm '`( %----------------------------------------------------------------------- "<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1, ", - " 14:O,13:/*Et,1'9://O, ", + " 14:O,13:/*!,1'9://O, ", " {*2'4'6^-35'8'*10'12^35}:/*_, ", " {6^35'11'12^-35}:*/OH, ", " @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:/_,4:/*OH,3^-35:/*O!,##, ", @@ -3245,9 +3245,9 @@ CAT:biological;EN:Adenine;MW:135.13;EXA:1 file name = 'temp-mc.aux' <30,?6,@4,?6,@-4,\,!3,<-12,?5,@-3,<-12,?6,-3=?6,@-3,*\,!3, - ?6,@-4,?6,@6,\,!,/*Me^-40,*/OH^20,!,//O,!1,OH, - 3=wb,11=dl,15=dr,17=wf,19=wf,38=wb,5'7'16'24'25'33'42:O, - 32:*/H^60,10:/Me,12'31:*/_,27://_,37:/*_,28:/OH,3'29:/*OH + ?6,@-4,?6,@6,\,!,/*_^-40,*/OH^20,!,//O,!1,OH, + 3=wb,11=dl,15=dr,17'19=wf,38=wb,5'7'16'24'25'33'42:O, + 32:*/H^60,10:/_,12'31:*/_,27://_,37:/*_,28:/OH,3'29:/*OH \end{verbatim} %------------------------------------------------------------------------ \newpage @@ -3419,7 +3419,7 @@ M END "<30,?6,3=dl,{3'5^35'5^-35}:/_, ", " @4,\,|,!18,1'3'5'7'9'11'13'15'17=dr, ", " 3'7'12'16:/_, ", - " |,?6,6=dl,{6,2^35,2^-35}:/_ ") + " |,?6,6=dl,{6'2^35'2^-35}:/_ ") %----------------------------------------- \\ endfigm diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_to_graph.cmd b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_to_graph.cmd index cc9d868f919..d70d54ba572 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_to_graph.cmd +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_to_graph.cmd @@ -1,4 +1,4 @@ -rem Batch file for compile MCF 2023.05.07 +rem Batch file for compile MCF 2024.12.01 rem rename filename by purpose rem <drag and drop library files on this batch> diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf b/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf index 7c79a7528e3..644093afd99 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf template file mcf_template.mcf by Akira Yamaji 2024.11.17 +% mcf template file mcf_template.mcf by Akira Yamaji 2024.12.01 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% must use version 5.14 +% must use version 5.15 % tag1:var1;tag2:var2;tag3:var3 ..... % first character of line "%" comment out % first character of line ":" start MCF diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp b/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp index 6f76ffb5868..306757215c0 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp +++ b/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp @@ -1,8 +1,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% MCF compile template file by Akira Yamaji 2024.11.17 +% MCF compile template file by Akira Yamaji 2024.12.01 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.14 -message "* mcf_template 2024.11.17"; +if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.15 +message "* mcf_template 2024.12.01"; message ""; %------------------------------------------------------------------------------ %%%%ext(defaultscale:=.3; label.rt(EN,(0,0));) diff --git a/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf b/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf index 88330ddb4ea..b81ade1ff63 100644 --- a/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf +++ b/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% molecular library file main_lib.mcf by Akira Yamaji 2024.11.17 +% molecular library file main_lib.mcf by Akira Yamaji 2024.12.01 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% must use version 5.14 +% must use version 5.15 % tag1:var1;tag2:var2;tag3:var3 ..... % first character of line "%" comment out % first character of line ":" start MCF @@ -234,7 +234,7 @@ CAT:biological;EN:Glucose 2;MW:180.16;EXA:1 %------------------------------------------------------------------------------ CAT:biological;EN:D-Glucose;MW:180.16;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH +hexose_hp,#.5,{1^$270'2^$90'3^$270'4^$270}:/OH,6^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:Fructose 1;MW:180.16;EXA:1 @@ -249,83 +249,83 @@ CAT:biological;EN:Fructose 2;MW:180.16;EXA:1 %------------------------------------------------------------------------------ CAT:biological;EN:D-Fluctose;MW:180.16;EXA:1 : -Pyranose_hp,#.5,1^$-90:/OH,{2^$-90'3^$90}:/OH,{1^$90'4^$-90}:/!OH +Pyranose_hp,#.5,1^$270:/OH,{2^$270'3^$90}:/OH,{1^$90'4^$270}:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:D-Galactose;MW:180.16;EXA:1 : -hexose_hp,#.5,{1^$90'2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH +hexose_hp,#.5,{1^$90'2^$90'3^$270'4^$270}:/OH,6^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:D-Mannose;MW:180.16;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$90'3^$90'4^$-90}:/OH,6^$90:/!OH +hexose_hp,#.5,{1^$270'2^$90'3^$90'4^$270}:/OH,6^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:L-Fucose;MW:164.16;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$-90'3^$90'4^$90}:/OH,6^$-90:/_ +hexose_hp,#.5,{1^$270'2^$270'3^$90'4^$90}:/OH,6^$270:/_ ; %------------------------------------------------------------------------------ CAT:biological;EN:D-Ribose;MW:150.13;EXA:1 : -Pyranose_hp,#.5,{2^$-90'3^$-90'4^$90}:/OH,1^$90:/!OH +Pyranose_hp,#.5,{2^$270'3^$270'4^$90}:/OH,1^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:D-Deoxyribose;MW:134.13;EXA:1 : -Pyranose_hp,#.5,{2^$-90'4^$90}:/OH,1^$90:/!OH +Pyranose_hp,#.5,{2^$270'4^$90}:/OH,1^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:D-Glucosamine;MW:179.17;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$90'4^$-90}:/OH,3^$-90:/NH2,6^$90:/!OH +hexose_hp,#.5,{1^$270'2^$90'4^$270}:/OH,3^$270:/NH2,6^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:N-acetyl-Glucosamine;MW:221.21;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$90'4^$-90}:/OH,3^$-90>lr:/NH!'?O!,6^$90:/!OH +hexose_hp,#.5,{1^$270'2^$90'4^$270}:/OH,3^$270>lr:/NH!'?O!,6^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:Glucuronic acid;MW:194.14;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$90'3^$-90'4^$-90}:/OH,6^$90:/COOH +hexose_hp,#.5,{1^$270'2^$90'3^$270'4^$270}:/OH,6^$90:/COOH ; %------------------------------------------------------------------------------ CAT:biological;EN:Maltose;MW:342.3;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##, - @4,$-50~arc_lb`1,O,$50~arc_br`1,<$0, - |,hexose_hp,#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH +hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##, + @4,$310~arc_lb`1,O,$50~arc_br`1,<$0, + |,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:Sucrose;MW:342.3;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##, - @4,$-50~arc_lb`1,O,$50~arc_br`1,<$0, +hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##, + @4,$310~arc_lb`1,O,$50~arc_br`1,<$0, |,#1.4,-35~wf_r,35~bd_r`1,30~wb_r,130`1.66,O,&1,##, - #.5,{2^$-90'3^$90}:/OH,{1^$90'4^$-90}:/!OH + #.5,{2^$270'3^$90}:/OH,{1^$90'4^$270}:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:Lactose;MW:342.3;EXA:1 : -hexose_hp,#.5,{1^$90'2^$90'3^$-90}:/OH,6^$90:/!OH,##, +hexose_hp,#.5,{1^$90'2^$90'3^$270}:/OH,6^$90:/!OH,##, @4,$0~arc_ltr,O,$0~arc_lbr, - |,hexose_hp,#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH + |,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:Cellobiose;MW:342.3;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##, +hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##, @4,$0~arc_lbr,O,$0~arc_ltr, - |,hexose_hp,#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH + |,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH ; %------------------------------------------------------------------------------ CAT:biological;EN:Trehalose;MW:342.3;EXA:1 : -hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##, - @4,@(1,0),|,hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##, - ||,@4,$-37~arc_lb`3.25,O,&10~arc_br +hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##, + @4,@(1'0),|,hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##, + ||,@4,$323~arc_lb`3.25,O,&10~arc_br ; %============================================================================== CAT:biological;EN:Geraniol;MW:154.25;EXA:1 @@ -382,6 +382,7 @@ CAT:biological;EN:Vanillin;MW:152.15;EXA:1 : <30,Ph,1:/OH,6:/O!,4:/CHO ; +%------------------------------------------------------------------------------ CAT:biological;EN:alfa-Terpinene;MW:136.24;EXA:- : <30,?6,3:/?!,6:/_,3'5=db @@ -498,7 +499,7 @@ CAT:biological;EN:Thiamine;MW:265.35;EXA:1 -3^-12:/!2'OH,8:p_^72 ; %------------------------------------------------------------------------------ -CAT:biological;EN:Riboflavin;MW:376.37;EXA:1 +CAT:biological;EN:Riboflavin;MW:376.37;EXA:2 : <30,Ph,3'9=?6,8'16=dl,7'10'14:N,12:NH,11'13:?O,1'6:/_, @10,\`1.5,!,*/OH,!,/*OH,!,*/OH,!2,OH @@ -561,7 +562,7 @@ CAT:biological;EN:Capsaicin;MW:305.418;EXA:1 <30,Ph,1:/OH,6:/O!,@4,\,!NH!,?O,!7,?!,-3=dl ; %------------------------------------------------------------------------------ -CAT:biological;EN:Gibberellin A3;MW:346.379;EXA:1 +CAT:biological;EN:Gibberellin A3;MW:346.379;EXA:2 : <18,?5,3=?7,5=?6[12],@8,160`1.3,&3,13=dl,6=wf,8=wb, @5,40~zf`1,O,50,?O^180,&14~zb,2:/COOH,7://_,*8'13:*/OH,14:*/_,1'4:*/H^60 @@ -706,11 +707,10 @@ CAT:biological;EN:Febrifugine;MW:301.34;EXA:1 <30,Ph,3=?6,@9,8=dl,\,!2,!zb,?6,7'9:N,-5:NH,10'12:?O,-1:*/OH ; %------------------------------------------------------------------------------ -CAT:biological;EN:Hypericin;MW:504.44;EXA:1 +CAT:biological;EN:Hypericin;MW:504.44;EXA:2 : -<30,Ph,{-4'-3'11--4'16---17'19'23---24'22--29}=?6, - 12'14'16'17'*22'24'26'28'33'35=dl, - 7'25:?O,13'26:/_,2'6'11'21'23'28:/OH +<30,Ph,-4'-3'(11--4)'(16---17)'19'(23---24)'(22--29)=?6, + 12'14'16'17'*22'24'26'28'33'35=dl,7'25:?O,13'26:/_,2'6'11'21'23'28:/OH ; %------------------------------------------------------------------------------ CAT:biological;EN:Camphor;MW:152.23;EXA:1 @@ -840,7 +840,7 @@ CAT:biological;EN:Psilocybin;MW:284.248;EXA:1 <30,Ph,3=?5,8=dl,9:NH,@2,\,O,-60,P,?O^-45,/OH^45,90,OH,7:/!2'N?!>lr ; %------------------------------------------------------------------------------ -CAT:biological;EN:Tetrodotoxine;MW:319.27;EXA:1 +CAT:biological;EN:Tetrodotoxine;MW:319.27;EXA:2 : #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,##, @@ -849,37 +849,32 @@ CAT:biological;EN:Tetrodotoxine;MW:319.27;EXA:1 %------------------------------------------------------------------------------ CAT:biological;EN:Aflatoxin B1;MW:312.27;EXA:1 : -<30,Ph,6=?6,-2=?5,4=?5,-2=?5,-2'10=dl,7'14'17:O, - 2:/O!,8'11:?O,{15^-54'16^54}:*/H +<30,Ph,6=?6,-2'4'-2=?5,-2'10=dl,7'14'17:O,2:/O!,8'11:?O,{15^-54'16^54}:*/H ; %------------------------------------------------------------------------------ CAT:biological;EN:Aflatoxin B2;MW:314.3;EXA:- : -<30,Ph,6=?6,-2=?5,4=?5,-2=?5,10=dl,7'14'17:O,2:/O!,8'11:?O,{15^-54'16^54}:*/H +<30,Ph,6=?6,-2'4'-2=?5,10=dl,7'14'17:O,2:/O!,8'11:?O,{15^-54'16^54}:*/H ; %------------------------------------------------------------------------------ CAT:biological;EN:Aflatoxin G1;MW:328.27;EXA:2 : -<30,Ph,6=?6,-2=?6,4=?5,-2=?5,-2'10=dl,7'12'15'18:O, - 2:/O!,8'11:?O,{16^-54'17^54}:*/H +<30,Ph,6'-2=?6,4'-2=?5,-2'10=dl,7'12'15'18:O,2:/O!,8'11:?O,{16^-54'17^54}:*/H ; %------------------------------------------------------------------------------ CAT:biological;EN:Aflatoxin G2;MW:330.29;EXA:- : -<30,Ph,6=?6,-2=?6,4=?5,-2=?5,10=dl,7'12'15'18:O, - 2:/O!,8'11:?O,{16^-54'17^54}:*/H +<30,Ph,6'-2=?6,4'-2=?5,10=dl,7'12'15'18:O,2:/O!,8'11:?O,{16^-54'17^54}:*/H ; %------------------------------------------------------------------------------ CAT:biological;EN:Aflatoxin M1;MW:328.3;EXA:- : -<30,Ph,6=?6,-2=?5,4=?5,-2=?5,-2'10=dl,7'14'17:O, - 2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH +<30,Ph,6=?6,-2'4'-2=?5,-2'10=dl,7'14'17:O,2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH ; %------------------------------------------------------------------------------ CAT:biological;EN:Aflatoxin M2;MW:330.29;EXA:- : -<30,Ph,6=?6,-2=?5,4=?5,-2=?5,10=dl,7'14'17:O, - 2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH +<30,Ph,6=?6,-2'4'-2=?5,10=dl,7'14'17:O,2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH ; %------------------------------------------------------------------------------ CAT:biological;EN:Ochratoxin A;MW:403.813;EXA:1 @@ -995,9 +990,9 @@ CAT:synthetic;EN:Coronene;MW:300.35;EXA:1 <30,Ph,{1'11--2'15--3'19--4'23--5'27---7}=?6,9'12'14'17'20'22'25'28'30=dl ; %------------------------------------------------------------------------------ -CAT:synthetic;EN:Kekulene;MW:600.7;EXA:1 +CAT:synthetic;EN:Kekulene;MW:600.7;EXA:2 : -<30,?6,{3'-3'-2'-3'-2'-3'-2'-3'-2'-3'-2----5'5---- -4}=?6, +<30,?6,3'-3'-2'-3'-2'-3'-2'-3'-2'-3'(-2----5)'(5---- -4)=?6, 1'*5'7'9'11'13'17'19'21'23'27'29'31'33'37'39'41'43'47'49'51'53'57'60=dl ; %============================================================================== @@ -1006,7 +1001,7 @@ CAT:synthetic;EN:12-Crown-4;MW:176.21;EXA:- <-180,O,30,60,60,O,-30,60,60,O,-30,60,60,O,-30,60,&1 ; %------------------------------------------------------------------------------ -CAT:synthetic;EN:15-Crown-5;MW:220.26;EXA:2 +CAT:synthetic;EN:15-Crown-5;MW:220.26;EXA:- : <-180,O,48,60,60,O,-48,60,60,O,-48,60,60,O,-48,60,60,O,-48,60,&1 ; @@ -1016,7 +1011,7 @@ CAT:synthetic;EN:18-Crown-6;MW:264.32;EXA:1 <-180,O,60,60,60,O,-60,60,60,O,-60,60,60,O,-60,60,60,O,-60,60,60,O,-60,60,&1 ; %============================================================================== -CAT:synthetic;EN:Porphyrin;MW:310.4;EXA:1 +CAT:synthetic;EN:Porphyrin;MW:310.4;EXA:2 : <9,#1,?5,@3,\,54,?5,@-2,\,54,?5,@-2,\,54,?5,@-2,\,&5,##, 1'4'6'8'10'14'16'18'21'23'27=dl,4'17:N,11'23:NH @@ -1072,7 +1067,7 @@ CAT:synthetic;EN:Sudan red 1;MW:248.28;EXA:1 %------------------------------------------------------------------------------ CAT:synthetic;EN:Basic blue 1;MW:319.86;EXA:1 : -<30,Ph,3=Ph,6=Ph,2:S,5:N,8'13:/N?!,2:p_,@2,@(3.5,1.5),Cl,n_^15 +<30,Ph,3=Ph,6=Ph,2:S,5:N,8'13:/N?!,2:p_,@2,@(3.5'1.5),Cl,n_^15 ; %------------------------------------------------------------------------------ CAT:synthetic;EN:Disperse red 11;MW:268.274;EXA:1 @@ -1103,20 +1098,18 @@ CAT:antibiotics;EN:Amoxicillin;MW:365.4042;EXA:1 %------------------------------------------------------------------------------ CAT:antibiotics;EN:Ampicillin;MW:349.405;EXA:1 : -<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, +<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, @4,*\^15,NH!,?O!,/*NH2,!Ph ; %------------------------------------------------------------------------------ -CAT:antibiotics;EN:Penicillin G;MW:334.4;EXA:1 +CAT:antibiotics;EN:Penicillin G;MW:334.4;EXA:2 : -<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, - @4,*\^15,NH!,?O!2,Ph +<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,@4,*\^15,NH!,?O!2,Ph ; %------------------------------------------------------------------------------ CAT:antibiotics;EN:Penicillin V;MW:350.3895;EXA:1 : -<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, - @4,*\^15,NH!,?O!2,O,!Ph +<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,@4,*\^15,NH!,?O!2,O,!Ph ; %------------------------------------------------------------------------------ CAT:antibiotics;EN:Mecillinam;MW:325.4264;EXA:1 @@ -1158,13 +1151,12 @@ CAT:antibiotics;EN:Cefalexin;MW:347.3889;EXA:1 CAT:antibiotics;EN:Cefalonium;MW:458.5107;EXA:1 : <45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15,@5,\*,?O!,O,n_^40, - @4,*\^15,NH!,?O!2,?5,-1'-3=dl,-4:S, - @6,\,!,|,Ph,1:N,1:p_^180,4:/?O!'NH2 + @4,*\^15,NH!,?O!2,?5,-1'-3=dl,-4:S,@6,\,!,|,Ph,1:N,1:p_^180,4:/?O!'NH2 ; %------------------------------------------------------------------------------ -CAT:antibiotics;EN:Cefazorin;MW:454.51;EXA:1 +CAT:antibiotics;EN:Cefazorin;MW:454.51;EXA:2 : -<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15,5:/*COOH, +<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1^15:?O,5:/*COOH, @4,*\^15,NH!,?O!2,?5,-2'-4=dl,-1'-2'-3'-5:N, @6,\,!,S,!,?5,-3'-5=dl,-1:S,-2:/_,-3'-4:N ; @@ -1199,8 +1191,7 @@ CAT:antibiotics;EN:Cefuroxime;MW:424.3852;EXA:1 CAT:antibiotics;EN:Apramycin;MW:539.58;EXA:1 : <30,?6,3=?6,2'10:O,@1,\*,O,60~zb,?6,@9,\*,O,-60~zb,?6,-5:O, - 7'13'*14'*-1'-2:*/OH,*6'15'17'*-3:*/NH2,8:*/NH!^-20, - -4:*/!OH,{*3^-60,4^60}:*/H + 7'13'*14'*-1'-2:*/OH,*6'15'17'*-3:*/NH2,8:*/NH!^-20,-4:*/!OH,{*3^-60,4^60}:*/H ; %------------------------------------------------------------------------------ CAT:antibiotics;EN:Gentamycin;MW:477.596;EXA:1 @@ -1212,7 +1203,7 @@ CAT:antibiotics;EN:Gentamycin;MW:477.596;EXA:1 CAT:antibiotics;EN:Kanamycin;MW:484.499;EXA:1 : <-30,?6,@1,\*,O,0~zb,?6,-5:O,@5,\,O,0,?6,-5:O, - 2'4'12:*/NH2,*6'11'13'18'*19,20:/*OH,10:*/!OH,17:*/!NH2 + 2'4'12:*/NH2,*6'11'13'18'*19'20:/*OH,10:*/!OH,17:*/!NH2 ; %------------------------------------------------------------------------------ CAT:antibiotics;EN:Neomycin;MW:614.644;EXA:1 @@ -1223,11 +1214,10 @@ CAT:antibiotics;EN:Neomycin;MW:614.644;EXA:1 @-2,\*^-24,O,-60~zb,?6,-5:O,-1:/*NH2,-2'*-3:*/OH,-4:/*!NH2>60 ; %------------------------------------------------------------------------------ -CAT:antibiotics;EN:Streptmycin;MW:581.574;EXA:1 +CAT:antibiotics;EN:Streptmycin;MW:581.574;EXA:2 : <54,?5,3:O,4:/*_,5:/OH^45,@1,\*,O,-24~wb,?6,-5:O,@2,*\,O,24~zb,?6, - 5:/!dO^-48,10'*11'15'*16'*18:*/OH,9:/*!OH,12:*/NH!, - {17^-18'19}:*/NH!'?NH'!NH2 + 5:/!dO^-48,10'*11'15'*16'*18:*/OH,9:/*!OH,12:*/NH!,{17^-18'19}:*/NH!'?NH'!NH2 ; %------------------------------------------------------------------------------ CAT:antibiotics;EN:Streptmycin-H2O;MW:599.574;EXA:- @@ -1336,7 +1326,7 @@ CAT:antibiotics;EN:Tylocin;MW:916.10;EXA:1 @-3,\*`1,O,60~wb,?6`.7,-5:O,#.5,{-2^35'-3}:*/OH,{-2^-35'-4}:/*_,##, ; %------------------------------------------------------------------------------ -CAT:antibiotics;EN:Tilmicosin;MW:869.133;EXA:1 +CAT:antibiotics;EN:Tilmicosin;MW:869.133;EXA:2 : <-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##, 12'14=dl,2:O,1:/*!,5:/*OH,3'11:?O,6'10:/*_,14:/_, @@ -1359,7 +1349,7 @@ CAT:antibiotics;EN:Chlortetracyclin;MW:478.88;EXA:1 {5'7~zf^35'13~wf^60'14'16}:/OH,15:*/N?!,17:/?O!'NH2 ; %------------------------------------------------------------------------------ -CAT:antibiotics;EN:Oxytetracyclin;MW:460.434;EXA:1 +CAT:antibiotics;EN:Oxytetracyclin;MW:460.434;EXA:2 : <30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:*/_^-35,11:*/OH, {5'7~zf^35'13~wf^60'14'16}:/OH,15:*/N?!,17:/?O!'NH2 @@ -1623,7 +1613,7 @@ CAT:pesticide;EN:Halosulfuron-methyl;MW:434.82;EXA:1 <6,?5,3'5=db,1'2:N,2:/_,5:/Cl,@3,\,S?O?O,!NH!,?O,!NH!,Ph,-2'-4:/O!,4:/?O!'O! ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Flupoxam;MW:460.8;EXA:2 +CAT:pesticide;EN:Flupoxam;MW:460.8;EXA:1 : <30,Ph,4:/Cl,@1,\,?5,-2'-4=db,-2'-4'-5:N,-1:/Ph,-3:/?O!'NH2, @3,\,!,O!2,/F^35,/F^-35,!,?F?F!F @@ -1646,8 +1636,7 @@ CAT:pesticide;EN:Diclofop-methyl;MW:341.2;EXA:1 %------------------------------------------------------------------------------ CAT:pesticide;EN:Cyhalothrin;MW:449.86;EXA:1 : -<-30,?3,{2^-35'*2^35}:*/_,@1,\,!d,/?F?F!F,!Cl, - @3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl +<-30,?3,{2^-35'*2^35}:*/_,@1,\,!d,/?F?F!F,!Cl,@3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl ; %------------------------------------------------------------------------------ CAT:pesticide;EN:Cyhalofop-Buthyl;MW:357.381;EXA:1 @@ -1849,10 +1838,9 @@ CAT:pesticide;EN:Bifenox;MW:342.14;EXA:- <30,Ph,4'6:/Cl,@3,\,O,!Ph,-4:/?O!'O!,-3:/NO2 ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Bifenthrin;MW:422.88;EXA:- +CAT:pesticide;EN:Bifenthrin;MW:422.88;EXA:2 : -<-30,?3,{2^-35'*2^35}:*/_, - @1,\,!d,/Cl,!,?F?F!F,@3,\,?O,!O!,-60,Ph,-1:/_,-2:/Ph +<-30,?3,{2^-35'*2^35}:*/_,@1,\,!d,/Cl,!,?F?F!F,@3,\,?O,!O!,-60,Ph,-1:/_,-2:/Ph ; %------------------------------------------------------------------------------ CAT:pesticide;EN:Pyraflufen-ethyl;MW:413.174;EXA:- @@ -1901,7 +1889,7 @@ CAT:pesticide;EN:Vinclozolin;MW:286.108;EXA:1 <36,?5,3:N,5:O,2'4:?O,1:/_^54,1:/!d^-30,3:/Ph'(3'5:/Cl) ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Fipronil;MW:437.2;EXA:- +CAT:pesticide;EN:Fipronil;MW:437.2;EXA:1 : <30,Ph,2'4:/Cl,6:/?F?F!F,@3,\,|,?5,2'4=dl,1'2:N,3:/CN,5:/NH2,-2:/S?O'!?F?F!F ; @@ -2006,7 +1994,7 @@ CAT:pesticide;EN:Mevinphos;MW:224.15;EXA:- <-30,!O!,P,?O,/O!^160,!O,!?,!d,!,?O!,O! ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Chlorpyrifos;MW:350.59;EXA:- +CAT:pesticide;EN:Chlorpyrifos;MW:350.59;EXA:1 : <30,!2,O!,P,//S,/O!2^160>rl,!O!,|,Ph,6:N,2'4'5:/Cl ; @@ -2116,7 +2104,7 @@ CAT:pesticide;EN:Fenvalerate;MW:419.91;EXA:- <30,Ph,6:/Cl,@3,\,/?!,!,?O,!O!,/CN,!Ph,-4:/O'!Ph>rl ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Fenpropathrin;MW:349.4;EXA:- +CAT:pesticide;EN:Fenpropathrin;MW:349.4;EXA:1 : <-30,?3,{1^35'2^-35}:*/_,{1^-35'2^35}:/*_,@3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl ; @@ -2216,7 +2204,7 @@ CAT:pesticide;EN:Propyzamide;MW:256.1;EXA:1 <30,Ph,1'5:/Cl,@3,\,?O,!NH,!??!,!t ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Propiconazole;MW:342.22;EXA:- +CAT:pesticide;EN:Propiconazole;MW:342.22;EXA:1 : <30,Ph,4'6:/Cl,@3,\,!2,|,?5,2'4=dl,1'2'4:N,@$7,?5,-1'-4:O,-3:/!2^-15 ; @@ -2266,7 +2254,7 @@ CAT:pesticide;EN:Benoxacor;MW:260.1;EXA:- <90,Ph,3=?6,7:N,10:O,8:/_,@7,\,?O!,/Cl,!Cl ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Heptachlor;MW:373.35;EXA:1 +CAT:pesticide;EN:Heptachlor;MW:373.35;EXA:2 : <30,?6`1.3,3=?5,6'8=dl,@2,210~wf`1.5,&5~wb,{1'2'5'6'9'10^-210'10^-150}:/Cl ; @@ -2336,7 +2324,7 @@ CAT:pesticide;EN:Molinate;MW:187.3;EXA:1 <47,?7,3:N,@3,\,?O!,S!2 ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Resmethrin;MW:338.4;EXA:1 +CAT:pesticide;EN:Resmethrin;MW:338.4;EXA:2 : <-30,?3,{2^-35'*2^35}:*/_,@1,\,!d,?!,3:/?O!'O!2,|,?5,3'5=dl,2:O,3:/!Ph ; @@ -2353,8 +2341,7 @@ CAT:pesticide;EN:Halfenprox;MW:477.4;EXA:1 %------------------------------------------------------------------------------ CAT:pesticide;EN:Paraquat;MW:257.16;EXA:1 : -Ph,@4,\,Ph,1'10:N?,1:p_^-90,10:p_^90,@1,@(0,1.2),Cl,n_^15, - @10,@(0,1.2),Cl,n_^15 +Ph,@4,\,Ph,1'10:N?,1:p_^-90,10:p_^90,@1,@(0'1.2),Cl,n_^15,@10,@(0'1.2),Cl,n_^15 ; %------------------------------------------------------------------------------ CAT:pesticide;EN:Oxine-Copper;MW:351.852;EXA:1 @@ -2362,7 +2349,7 @@ CAT:pesticide;EN:Oxine-Copper;MW:351.852;EXA:1 Ph,4:N,5=Ph,@-4,\,O,-60,<90,Cu,-90,O,60,Ph,-2=Ph,10:N,@4,&12~vf,@23,&12~vf ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Endosulfan;MW:406.904;EXA:1 +CAT:pesticide;EN:Endosulfan;MW:406.904;EXA:2 : <26,?7,7=?6[13],@11,208~wf`1.45,&8~wb,10=dl,3'5:O,4:S,4:?O, {8'9'10'11'12^-210'12^-150}:/Cl @@ -2378,7 +2365,7 @@ CAT:pesticide;EN:Azinphos-methyl;MW:317.318;EXA:- <-30,!O!,P,//S,/O!^160,!,S!2,|,?6,-3=?6,2'4'8'10=dl,1'3:N,6:?O ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Azoxystorbin;MW:403.394;EXA:1 +CAT:pesticide;EN:Azoxystorbin;MW:403.394;EXA:2 : <30,Ph,2:/CN,@3,\,O,!Ph,-1'-3:N,@-4,\,O,!Ph,@-5,\,//!O!,!,?O!,O! ; @@ -2398,7 +2385,7 @@ CAT:pesticide;EN:Aldoxycarb;MW:222.3;EXA:- <30,!,?O,!NH!,O!,N,!d,!,??,!,S?O?O,! ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Isoxaflutole;MW:359.319;EXA:- +CAT:pesticide;EN:Isoxaflutole;MW:359.319;EXA:1 : <30,Ph,6:/?F?F!F,@4,\,S?O?O,!,@3,\`1,?O,!`1,<-12,|,?5,1'4=dl,3:O,4:N,2:/?3 ; @@ -2423,7 +2410,7 @@ CAT:pesticide;EN:Indanofan;MW:340.80;EXA:- <30,Ph,3=?5,7'9:?O,8^55>lr:/!,@8,-30,!2,Ph,-2:/Cl,@11,?3,-2:O ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Indoxacarb;MW:527.837;EXA:- +CAT:pesticide;EN:Indoxacarb;MW:527.837;EXA:2 : <-6,Ph,3=?5,9=?6,15=dl,10:O,12'13:N,1:/Cl,8`1^-54:/?O!'O!, @12,\,?O!,N,/?O!'O!,!Ph,-3:/O!'?F?F!F @@ -2464,7 +2451,7 @@ CAT:pesticide;EN:Clotianidin;MW:249.673;EXA:1 <6,?5,3'5=dl,2:S,5:N,1:/Cl,@3,\,!NH!,/NH!,!d,N,!NO2 ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Chromafenozide;MW:394.515;EXA:- +CAT:pesticide;EN:Chromafenozide;MW:394.515;EXA:1 : <30,?6,3=?6,5:O,7'9'11=dl,7:/_,@8,\,?O,!NH!,N,/??!,!,?O,!Ph,-4'-3:/_ ; @@ -2484,7 +2471,7 @@ CAT:pesticide;EN:Chloroxuron;MW:290.745;EXA:- <30,Ph,6:/Cl,@3,\,O,!Ph,@-3,\,NH!,?O!,N?! ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Cyazofamid;MW:324.783;EXA:- +CAT:pesticide;EN:Cyazofamid;MW:324.783;EXA:1 : <18,?5,2'5=dl,2'4:N,1:/Cl,3:/CN,@4,\,S?O?O,!,N?!,5:/Ph'(4:/_) ; @@ -2494,7 +2481,7 @@ CAT:pesticide;EN:Diuron;MW:233.1;EXA:- <30,Ph,1'6:/Cl,@3,\,NH!,?O!,N?! ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Cyflufenamid;MW:412.36;EXA:- +CAT:pesticide;EN:Cyflufenamid;MW:412.36;EXA:2 : <30,Ph,4^20:/?F?F!F,1'2:/F,@3,\,!NH!,?O!2,Ph,@-10,\\,N,!,<-12,O!2,?3 ; @@ -2509,7 +2496,7 @@ CAT:pesticide;EN:Cyprodinil;MW:225.295;EXA:- <30,Ph,2'4:N,5:/_,1:/?3,3:/NH!'Ph ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Simeconazole;MW:293.417;EXA:- +CAT:pesticide;EN:Simeconazole;MW:293.417;EXA:1 : <36,?5,1'3'5:N,1'4=dl,@3,30,!,/OH^30,!2,Si,??!,7^-30:/Ph'(4:/F), ; @@ -2544,12 +2531,12 @@ CAT:pesticide;EN:Thiacloprid;MW:252.72;EXA:- <30,Ph,1:N,6:/Cl,@3,\,!,<-12,|,?5,1:N,3:S,-4://N'!CN ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Thiabendazole;MW:201.247;EXA:- +CAT:pesticide;EN:Thiabendazole;MW:201.247;EXA:1 : <30,Ph,3=?5,8=dl,9:NH,7:N,@8,\,|,?5,1'4=dl,3:S,5:N ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Thiamethoxam;MW:291.71;EXA:- +CAT:pesticide;EN:Thiamethoxam;MW:291.71;EXA:2 : <30,?6,2:O,4'6:N,6:/_,@5,\\,N,!NO2,@4,\,!,|,?5,1'3=dl,3:N,5:S,4:/Cl ; @@ -2640,7 +2627,7 @@ CAT:pesticide;EN:Flufenacet;MW:363.331;EXA:- <6,?5,2'5=dl,1'2:N,4:S,5:/?F?F!F,@3,\,O!,-60,?O!,N,/?!,!Ph,-3:/F ; %------------------------------------------------------------------------------ -CAT:pesticide;EN:Flufenoxuron;MW:488.77;EXA:- +CAT:pesticide;EN:Flufenoxuron;MW:488.77;EXA:1 : <30,Ph,2'4:/F,@3,\,?O,!NH!,?O,!NH!,Ph,-1:/F,@-3,\,O,!Ph,-3:/?F?F!F,-1:/Cl ; @@ -2751,7 +2738,7 @@ CAT:antibacterial;EN:Sulfapyrizine;MW:249.288;EXA:- <30,Ph,1:/NH2,@4,\,S?O?O,!NH!,Ph,-1:N ; %------------------------------------------------------------------------------ -CAT:antibacterial;EN:Marbofloxacin;MW:362.361;EXA:- +CAT:antibacterial;EN:Marbofloxacin;MW:362.361;EXA:1 : <30,Ph,3'(2--7)=?6,9=dl,6:/F,7'13:N,11:O,9:/COOH,10:?O,13:/_,1:/?6'(1:N)'(4:N?) ; @@ -2768,8 +2755,7 @@ CAT:antibacterial;EN:Trimethoprim;MW:290.323;EXA:- %------------------------------------------------------------------------------ CAT:antibacterial;EN:Ofloxacin;MW:361.373;EXA:- : -<30,Ph,3'(2--7)=?6,9=dl,7:N,11:O, - 6:/F,9:/COOH,10:?O,13:/_,1:/?6'(1:N)'(4:N?) +<30,Ph,3'(2--7)=?6,9=dl,7:N,11:O,6:/F,9:/COOH,10:?O,13:/_,1:/?6'(1:N)'(4:N?) ; %------------------------------------------------------------------------------ CAT:antibacterial;EN:Ciprofloxacin;MW:331.347;EXA:- @@ -2948,7 +2934,7 @@ CAT:biological;EN:Okadaic acid;MW:805.00;EXA:2 : <30,?6,@4,?6,@-4,\,!3,<-12,?5,@-3,<-12,?6,-3=?6,@-3,*\,!3, ?6,@-4,?6,@6,\,!,/*_^-40,*/OH^20,!,?O!,OH, - 3=wb,11=dl,15=dr,17=wf,19=wf,38=wb,5'7'16'24'25'33'42:O, + 3'38=wb,11=dl,15=dr,17'19=wf,5'7'16'24'25'33'42:O, 32:*/H^60,10:/_,12'31'*37:*/_,27://_,28:/OH,3'29:/*OH ; %------------------------------------------------------------------------------ @@ -2963,13 +2949,13 @@ CAT:antibiotics;EN:Vancomycin;MW:1449.25;EXA:2 @-1,\*,O,!wb,|,?6`.7,6:O,{*3^35'5}:*/_,3^-35:/NH2,4:/*OH, ; %------------------------------------------------------------------------------ -CAT:biological;EN:Maitotoxin;MW:3425.86;EXA:2 +CAT:biological;EN:Maitotoxin;MW:3425.86;EXA:- : <55.8,?6,-4=?7,-4'-3'-3'-3=?6,@-3,\,!3,?6,-4'-3'-3'-3=?6,@-3,\,?6,-3=?6, @-3,\,!3,60,<-30,?6,-3=?6,@-3,30,<30,?6,-3'-3=?6,-3=?7,-4'-3'-3=?6, @-2,\,?6,-3=?6,-3=?7,-3'-3=?6,-3=?8,-3=dl,-5'-3'-3'-3=?6, - {5'7'15'16'23'24'32'40'41'48'49'58'59'72'73'82'83'90'91'99' - 100'107'113'114'122'123'130'131'140'141'148'149}:O, + 5'7'15'16'23'24'32'40'41'48'49'58'59'72'73'82'83'90'91'99' + 100'107'113'114'122'123'130'131'140'141'148'149:O, {1^60'2'26'28'29'51'54'61'63'68'75^60'78'109}:*/OH, 11'20'35'45'52'55'65'69'86:/*OH, 3'8'13'17'21'33'38'42'56'70'84'92'101'106'111'128'138'142'146'150:/*H^-60, diff --git a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp index 791ca88d192..2c91c108a31 100644 --- a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp +++ b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf2graph ver 5.14 Copyright (c) 2013-2024 Akira Yamaji +% mcf2graph ver 5.15 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,13 +22,13 @@ % 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.14 2024.11.17"; +message "* This is mcf2graph ver 5.15 2024.12.01"; tracingstats:=1; prologues:=3; warningcheck:=0; %------------------------------------------------------------------------------------------------- newinternal string EN_; -numeric save_num[],pcode_com[][],pcode_par[][],pcode_cnt[],tbl_atom[],tbl_group[][],tbl_atom_wt[], - tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],at_char[],mc_indent[],op_indent[],ex_indent[], - ad_indent[],unit_lines[],info[],tbl_asc[],lenw[]; +numeric save_num[],pcode_x[][],pcode_y[][],param_e[][],pcode_cnt[],tbl_atom[],tbl_group[][], + tbl_atom_wt[],tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],at_char[],mc_indent[],op_indent[], + ex_indent[],ad_indent[],unit_lines[],info[],tbl_asc[],lenw[]; string row[][],save_str[],tbl_atom_str[],str_tbl[],arg_s[],mc[],ex[],ad[],op[],tag[],rw[], 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, @@ -128,10 +128,11 @@ 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, +def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB, + _set_line,_tmp_line,_chg_len,_chg_slen,_get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang, + _chg_env,_tmp_env,_set_colorA,_set_colorB, _group_si,_group_dm,_group_wf,_group_zf,_set_adr,_mk_bond,_set_atom,_arrange_ang,_chg_atom, - _tmp_rot,_fuse,_fuse_di,_size_atom,_numeric,_numeric_inv,_jump_at,_set_add,_chg_add,_nop, + _tmp_rot,_fuse,_fuse_ext,_size_atom,_numeric,_numeric_inv,_jump_at,_set_add,_chg_add,_nop, _mark,_moff,_term,_len_s,_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_); @@ -185,11 +186,9 @@ def beginfigm= 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; + f_ext:=cntM:=mc_row:=ex_row:=ad_row:=op_row:=info_cnt:=err_cnt:=param_int:=0; let ext=ext_to_fig; let add=add_to_molecule; let ++=add_to_molecule; let **=ext_to_fig; - 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 '' = 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 s) = define_group_string(s)() enddef; def `` = define_group_string enddef; def ## expr p = msize:=p; enddef; def |=(expr n) = blength:=n; enddef; @@ -310,29 +309,37 @@ def putm= 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; +vardef pcode_extend(expr p,a,b,c,d)= + param_e[Incr param_int][1]:=a; param_e[param_int][2]:=b; + param_e[param_int][3]:=c; param_e[param_int][4]:=d; (p,param_int) +enddef; +def move_pos(expr n) = + <$0,angle(pcode_y[n][1],pcode_y[n][2])~0`length(pcode_y[n][1],pcode_y[n][2]),<$0 enddef; +%------------------------------------------------------------------------------------------------- +vardef abs_adress primary n = if (n>=si)and(n<=bd_):: (_tmp_line,n) else:: n-4095 fi enddef; primarydef a from_until b = (_from,a),(_until,b) enddef; -primarydef a op_quot b = add_parts(a,b) enddef; -primarydef a bond__bond b = (a,b) enddef; -primarydef a bond___bond b = (a+2000,b) enddef; -primarydef a bond____bond b = (a+2000,b+2000) enddef; +primarydef a op_quot b = if (known a)and(known b):: add_parts(a,b) else:: _nop fi enddef; +primarydef a fuse__ b = pcode_extend(_fuse_ext,a,b,2,0) enddef; +primarydef a fuse___ b = pcode_extend(_fuse_ext,a,b,3,0) enddef; +primarydef a fuse____ b = pcode_extend(_fuse_ext,a,b,4,0) enddef; tertiarydef a op_equ b = if (known a)and(known b):: change_bond(a,b) else:: _nop fi enddef; tertiarydef a op_col b = if (known a)and(known b):: change_atom(a,b) else:: _nop fi enddef; -tertiarydef a op_hat b = if known b:: (_tmp_rot,b),a else:: _nop,a fi enddef; -tertiarydef a op_til b = if known b:: (_tmp_line,b),a else:: _nop,a fi enddef; -tertiarydef a op_lth b = if known b:: (_tmp_env,b),a else:: _nop,a fi enddef; -tertiarydef a op_bqu b = if known b:: (_tmp_len,b),a else:: _nop,a fi enddef; -def rot_angle primary n = (_rot_ang,n) enddef; def cyc_atom primary n = (_cyc,n) enddef; -def jump_atom_abs primary a = - if numeric a:: (_jp_atom,$a) ef pair a:: (_jp_atom,$1),<$0,angle(a)~0`length(a),<$0 fi enddef; -def jump_atom primary a = - if numeric a:: (_jp_atom,a) ef pair a:: <$0,angle(a)~0`length(a),<$0 fi enddef; -def chg_length primary n = (_com,_len_s),(_chg_len,n) enddef; +tertiarydef a op_hat b = if (known a)and(known b):: (_tmp_rot,b),a else:: _nop fi enddef; +tertiarydef a op_til b = if (known a)and(known b):: (_tmp_line,b),a else:: _nop fi enddef; +tertiarydef a op_lth b = if (known a)and(known b):: (_tmp_env,b),a else:: _nop fi enddef; +tertiarydef a op_bqu b = if (known a)and(known b):: (_tmp_len,b),a else:: _nop fi enddef; +def chg_length primary n = (_chg_slen,n) enddef; +def rot_angle primary n = if known n:: (_rot_ang,n) else:: _nop fi enddef; +def cyc_atom primary n = if known n:: (_cyc,n) else:: _nop fi enddef; +def jump_atom secondary n = if n>=pcode_int_start:: move_pos(n) else::(_jp_atom,n) fi enddef; +def jump_atom_abs secondary n = if n>=pcode_int_start::(_jp_atom,$1),move_pos(n) + else::(_jp_atom,$n) fi enddef; def group_si secondary n = if known n:: (_group_si,n) else:: _nop fi enddef; def group_dm secondary n = if known n:: (_group_dm,n) else:: _nop fi enddef; def group_wf secondary n = if known n:: (_group_wf,n) else:: _nop fi enddef; def group_zf secondary n = if known n:: (_group_zf,n) else:: _nop fi enddef; -def group_wv secondary n = /n~wv enddef; def group_nb secondary n = /n~nb enddef; +def group_wv secondary n = if known n:: /n~wv else:: _nop fi enddef; +def group_nb secondary n = if known n:: /n~nb else:: _nop fi enddef; %================================================================================================= def read_mcf(expr n)(text t)= begingroup @@ -340,10 +347,10 @@ def read_mcf(expr n)(text t)= 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_quot; - 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; + \:=0; \\:=zero_dm; *\:=zero_wf; \*:=zero_zf; *\*:=zero_wv; let ' == op_quot; let = ==op_equ; + let : ==op_col; let ^ ==op_hat; let ~ ==op_til; let > ==op_lth; let ` ==op_bqu; + let -- == fuse__; let --- == fuse___; let ---- == fuse____; 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; @@ -356,11 +363,11 @@ def read_mcf(expr n)(text t)= for list==t:: if known list:: if pair list:: - pcode_com[n][Incr pcode_cnt[n]]:=xpart(list); pcode_par[n][pcode_cnt[n]]:=ypart(list); + pcode_x[n][Incr pcode_cnt[n]]:=xpart(list); pcode_y[n][pcode_cnt[n]]:=ypart(list); ef numeric list:: if list==_nop:: message "unknown command in "AND decimal(n); ef list>=pcode_emb_start:: expand_pcode(n,list); - else:: pcode_com[n][Incr pcode_cnt[n]]:=_mk_bond; pcode_par[n][pcode_cnt[n]]:=list; + else:: pcode_x[n][Incr pcode_cnt[n]]:=_mk_bond; pcode_y[n][pcode_cnt[n]]:=list; fi fi else:: message "unknown command in "AND decimal(n); @@ -372,70 +379,68 @@ enddef; def expand_pcode(expr n,a)= if n==0:: for i==1 upto pcode_cnt[a]:: - if pcode_com[a][i]>=pcode_emb_start:: expand_pcode(n,pcode_com[a][i]); + if pcode_x[a][i]>=pcode_emb_start:: expand_pcode(n,pcode_x[a][i]); else:: - pcode_com[n][Incr pcode_cnt[n]]:=pcode_com[a][i]; - pcode_par[n][pcode_cnt[n]]:=pcode_par[a][i]; + pcode_x[n][Incr pcode_cnt[n]]:=pcode_x[a][i]; pcode_y[n][pcode_cnt[n]]:=pcode_y[a][i]; fi endfor - else:: pcode_com[n][Incr pcode_cnt[n]]:=a; + else:: pcode_x[n][Incr pcode_cnt[n]]:=a; fi enddef; %------------------------------------------------------------------------------------------------- vardef read_adress(text t)= - save :,'; + save :,',pcnt,start_num; let ' == , ; let : == from_until; - pcode_int:=pcode_int+1; - nA:=0; + pcode_int:=pcode_int+1; pcnt:=0; for list==t:: if known list:: if numeric list:: if list==_nop:: message "unknown command in "AND decimal(pcode_int); - else:: pcode_com[pcode_int][Incr nA]:=_numeric; pcode_par[pcode_int][nA]:=list; + else:: pcode_x[pcode_int][Incr pcnt]:=_numeric; pcode_y[pcode_int][pcnt]:=list; fi ef pair list:: - if xpart(list)==_from:: nB:=ypart(list); + if xpart(list)==_from:: start_num:=ypart(list); ef xpart(list)==_until:: - for i==nB upto ypart(list):: - pcode_com[pcode_int][Incr nA]:=_numeric; pcode_par[pcode_int][nA]:=i; endfor - else:: pcode_com[pcode_int][Incr nA]:=xpart(list); pcode_par[pcode_int][nA]:=ypart(list); + for i==start_num upto ypart(list):: + pcode_x[pcode_int][Incr pcnt]:=_numeric; pcode_y[pcode_int][pcnt]:=i; + endfor + else:: pcode_x[pcode_int][Incr pcnt]:=xpart(list); pcode_y[pcode_int][pcnt]:=ypart(list); fi fi else:: message "unknown command in "AND decimal(pcode_int); fi endfor - pcode_cnt[pcode_int]:=nA; pcode_int + pcode_cnt[pcode_int]:=pcnt; pcode_int enddef; %------------------------------------------------------------------------------------------------- vardef add_parts(expr a,b)= if (pair a)and(pair b):: - pcode_com[Incr pcode_int][1]:=xpart a; pcode_par[pcode_int][1]:=ypart a; - pcode_com[Incr pcode_int][2]:=xpart b; pcode_par[pcode_int][2]:=ypart b; - pcode_cnt[pcode_int]:=2; + pcode_x[Incr pcode_int][1]:=xpart a; pcode_y[pcode_int][1]:=ypart a; + pcode_x[pcode_int][2]:=xpart b; pcode_y[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2; elseif pair a:: - pcode_com[Incr pcode_int][1]:=xpart a; pcode_par[pcode_int][1]:=ypart a; - if b>=pcode_emb_start:: pcode_com[pcode_int][2]:=b; - else:: pcode_com[pcode_int][2]:=_numeric; pcode_par[pcode_int][2]:=b; + pcode_x[Incr pcode_int][1]:=xpart a; pcode_y[pcode_int][1]:=ypart a; + if b>=pcode_emb_start:: pcode_x[pcode_int][2]:=b; + else:: pcode_x[pcode_int][2]:=_numeric; pcode_y[pcode_int][2]:=b; fi pcode_cnt[pcode_int]:=2; elseif pair b:: if a>=pcode_int_start:: - pcode_com[a][Incr pcode_cnt[a]]:=xpart b; pcode_par[a][pcode_cnt[a]]:=ypart b; + pcode_x[a][Incr pcode_cnt[a]]:=xpart b; pcode_y[a][pcode_cnt[a]]:=ypart b; elseif a>=pcode_emb_start:: - pcode_com[Incr pcode_int][1]:=a; - pcode_com[pcode_int][2]:=xpart b; pcode_par[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2; + pcode_x[Incr pcode_int][1]:=a; + pcode_x[pcode_int][2]:=xpart b; pcode_y[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2; else:: - pcode_com[Incr pcode_int][1]:=_numeric; pcode_par[pcode_int][1]:=a; - pcode_com[pcode_int][2]:=xpart b; pcode_par[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2; + pcode_x[Incr pcode_int][1]:=_numeric; pcode_y[pcode_int][1]:=a; + pcode_x[pcode_int][2]:=xpart b; pcode_y[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2; fi elseif (a LT pcode_emb_start)and(b LT pcode_emb_start):: - pcode_com[Incr pcode_int][1]:=_numeric; pcode_par[pcode_int][1]:=a; - pcode_com[pcode_int][2]:=_numeric; pcode_par[pcode_int][2]:=b; pcode_cnt[pcode_int]:=2; + pcode_x[Incr pcode_int][1]:=_numeric; pcode_y[pcode_int][1]:=a; + pcode_x[pcode_int][2]:=_numeric; pcode_y[pcode_int][2]:=b; pcode_cnt[pcode_int]:=2; elseif (a>=pcode_int_start)and(b LT pcode_int_start):: - if b>=pcode_emb_start:: pcode_com[a][Incr pcode_cnt[a]]:=b; - else:: pcode_com[a][Incr pcode_cnt[a]]:=_numeric; pcode_par[a][pcode_cnt[a]]:=b; + if b>=pcode_emb_start:: pcode_x[a][Incr pcode_cnt[a]]:=b; + else:: pcode_x[a][Incr pcode_cnt[a]]:=_numeric; pcode_y[a][pcode_cnt[a]]:=b; fi - else:: pcode_com[Incr pcode_int][1]:=a; pcode_com[pcode_int][2]:=b; pcode_cnt[pcode_int]:=2; + else:: pcode_x[Incr pcode_int][1]:=a; pcode_x[pcode_int][2]:=b; pcode_cnt[pcode_int]:=2; fi pcode_int enddef; @@ -459,79 +464,63 @@ def fuse_ring_size(expr a,b,c) = CP(_jp_bond,a) CP(_rot_ang,180) CC(_len_s) CP(_chg_len,c DIV 10) if b==5:: CB(72-((c-9) MUL 1.5)) CB(72+(c-9)) CB(72+(c-9)) ef b==6:: CB(60-(c-8)) for i==1 upto 3:: CB(60+((c-8) DIV 2)) endfor - ef b==7:: CB(360 DIV 7-(c-8)) for i==1 upto 4:: CB(360 DIV 7+((c-8) DIV 2.5)) endfor - ef b==8:: CB(45-(c-8)) for i==1 upto 5:: CB(45+((c-8) DIV 3)) endfor fi CC(_len_e) if a<=0:: CP(_cyc_eB,a-b+2) else:: CP(_cyc_eB,a) fi enddef; %================================================================================================= vardef change_bond(expr a,b) = - if known b:: pcode_int:=pcode_int+1; nC:=0; + save pY; + if known b:: pcode_cnt[Incr pcode_int]:=0; if numeric b:: if (b>=si)and(b<=bd_):: if a>=pcode_int_start:: for i==1 upto pcode_cnt[a]:: - if pcode_com[a][i]==_numeric:: CA(_set_line,b,pcode_par[a][i]) - elseif pcode_com[a][i]==_numeric_inv:: - if b==dl:: CA(_set_line,dr,pcode_par[a][i]) - ef b==dr:: CA(_set_line,dl,pcode_par[a][i]) fi + if pcode_x[a][i]==_numeric:: CA(_set_line,b,pcode_y[a][i]) + elseif pcode_x[a][i]==_numeric_inv:: + if b==dl:: CA(_set_line,dr,pcode_y[a][i]) + ef b==dr:: CA(_set_line,dl,pcode_y[a][i]) fi fi endfor else:: CP(_set_adr,a) CP(_set_line,b) fi - elseif (b>=?3)and(b<=?8[15]):: + elseif (b>=?3)and(b<=?6[15]):: if numeric a:: if a>=pcode_int_start:: for i==1 upto pcode_cnt[a]:: - if pcode_com[a][i]==_numeric:: - if b==Ph1:: fuse_ring(pcode_par[a][i],6) DL(-2) DL(-4) - ef b==Ph2:: fuse_ring(pcode_par[a][i],6) DL(-1) DL(-3) DL(-5) - ef (b>=?5[11])and(b<=?8[15]):: fuse_ring_size(a,pcode_com[b][1],pcode_par[b][1]) - else:: fuse_ring(pcode_par[a][i],b-?3+3) fi - else:: - if b==?6:: - if (pcode_com[a][i]<=1800)and(pcode_par[a][i]<=1800):: - FR(pcode_com[a][i],pcode_par[a][i],6,4) - ef pcode_par[a][i]<=1800:: FR(pcode_com[a][i]-2000,pcode_par[a][i],6,3) - else:: FR(pcode_com[a][i]-2000,pcode_par[a][i]-2000,6,2) - fi - ef b==?5:: - if (pcode_com[a][i]<=1800)and(pcode_par[a][i]<=1800):: - FR(pcode_com[a][i],pcode_par[a][i],5,3) - ef pcode_par[a][i]<=1800:: FR(pcode_com[a][i]-2000,pcode_par[a][i],5,2) - fi - ef b==?4:: FR(pcode_com[a][i],pcode_par[a][i],4,2) - ef b==Ph1:: FR(pcode_com[a][i],pcode_par[a][i],6,4) DL(-1) DL(-3) - ef b==Ph2:: FR(pcode_com[a][i],pcode_par[a][i],6,4) DL(-2) DL(-4) + pY:=pcode_y[a][i]; + if pcode_x[a][i]==_numeric:: + if b==Ph1:: fuse_ring(pY,6) DL(-2) DL(-4) + ef b==Ph2:: fuse_ring(pY,6) DL(-1) DL(-3) DL(-5) + ef (b>=?5[11])and(b<=?6[15]):: fuse_ring_size(a,pcode_x[b][1],pcode_y[b][1]) + else:: fuse_ring(pY,b-?3+3) + fi + ef pcode_x[a][i]==_fuse_ext:: + if b==?6:: FR(param_e[pY][1],param_e[pY][2],6,6-param_e[pY][3]) + ef b==?5:: FR(param_e[pY][1],param_e[pY][2],5,5-param_e[pY][3]) + ef b==?4:: FR(param_e[pY][1],param_e[pY][2],4,2) fi fi - endfor + endfor else:: if b==Ph1:: fuse_ring(a,6) DL(-2) DL(-4) ef b==Ph2:: fuse_ring(a,6) DL(-1) DL(-3) DL(-5) - ef (b>=?5[11])and(b<=?8[15]):: fuse_ring_size(a,pcode_com[b][1],pcode_par[b][1]) - else:: fuse_ring(a,b-?3+3) - fi + ef (b>=?5[11])and(b<=?6[15]):: fuse_ring_size(a,pcode_x[b][1],pcode_y[b][1]) + else:: fuse_ring(a,b-?3+3) fi fi ef pair a:: - if b==?6:: if (xpart a<=1800)and(ypart a<=1800):: FR(xpart a,ypart a,6,4) - ef ypart a<=1800:: FR((xpart a)-2000,ypart a,6,3) - else:: FR((xpart a)-2000,(ypart a)-2000,6,2) - fi - ef b==?5:: if (xpart a<=1800)and(ypart a<=1800):: FR(xpart a,ypart a,5,3) - ef ypart a<=1800:: FR((xpart a)-2000,ypart a,5,2) - fi + if b==?6:: FR(param_e[ypart a][1],param_e[ypart a][2],6,6-param_e[ypart a][3]) + ef b==?5:: FR(param_e[ypart a][1],param_e[ypart a][2],5,5-param_e[ypart a][3]) ef b==?4:: FR(xpart a,ypart a,4,2) + fi fi fi - fi elseif color b:: cntC:=cntC+1; color_list[cntC]:=b; CA(_set_colorB,cntC,a) fi - pcode_cnt[pcode_int]:=nC; pcode_int + pcode_int fi enddef; %------------------------------------------------------------------------------------------------- vardef change_atom(expr a,b)= - if known b:: pcode_int:=pcode_int+1; nC:=0; + if known b:: pcode_cnt[Incr pcode_int]:=pcnt:=0; if numeric b:: 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 @@ -549,27 +538,29 @@ vardef change_atom(expr a,b)= CC(_group_s) if a>=pcode_emb_start:: for i==1 upto pcode_cnt[a]:: - if pcode_com[a][i]==_numeric:: CA(xpart(b),ypart(b),pcode_par[a][i]) - elseif pcode_com[a][i]==_numeric_inv:: - if xpart(b)==_group_wf:: CA(_group_zf,ypart(b),pcode_par[a][i]) - ef xpart(b)==_group_zf:: CA(_group_wf,ypart(b),pcode_par[a][i]) fi - else:: CP(pcode_com[a][i],pcode_par[a][i]) + if pcode_x[a][i]==_numeric:: CA(xpart(b),ypart(b),pcode_y[a][i]) + ef pcode_x[a][i]==_numeric_inv:: + if xpart(b)==_group_wf:: CA(_group_zf,ypart(b),pcode_y[a][i]) + ef xpart(b)==_group_zf:: CA(_group_wf,ypart(b),pcode_y[a][i]) fi + else:: CP(pcode_x[a][i],pcode_y[a][i]) fi endfor else:: CA(xpart(b),ypart(b),a) fi CC(_group_e) ef color b:: cntC:=cntC+1; color_list[cntC]:=b; CA(_set_colorA,cntC,a) fi - pcode_cnt[pcode_int]:=nC; pcode_int + pcode_cnt[pcode_int]:=pcode_cnt[pcode_int]; pcode_int fi enddef; %------------------------------------------------------------------------------------------------- -def pcode_add(expr c,p)= pcode_com[pcode_int][Incr nC]:=c; pcode_par[pcode_int][nC]:=p; enddef; +def pcode_add(expr c,p)= pcode_x[pcode_int][Incr pcode_cnt[pcode_int]]:=c; + pcode_y[pcode_int][pcode_cnt[pcode_int]]:=p; +enddef; def pcode_add_adr(expr c,p,a)= if a>=pcode_emb_start:: for i==1 upto pcode_cnt[a]:: - if pcode_com[a][i]==_numeric:: pcode_add(_set_adr,pcode_par[a][i]) pcode_add(c,p) - else:: pcode_add(pcode_com[a][i],pcode_par[a][i]) + if pcode_x[a][i]==_numeric:: pcode_add(_set_adr,pcode_y[a][i]) pcode_add(c,p) + else:: pcode_add(pcode_x[a][i],pcode_y[a][i]) fi endfor else:: pcode_add(_set_adr,a) pcode_add(c,p) @@ -736,8 +727,8 @@ def expand_group(expr n)= for i=n upto group_num: for j=1 upto group_cnt[i]: if group_com[i][j]>=pcode_emb_start: expand_pcode(0,group_com[i][j]); - else: pcode_com[0][incr pcode_cnt[0]]:=group_com[i][j]; - pcode_par[0][pcode_cnt[0]]:=group_par[i][j]; + else: pcode_x[0][incr pcode_cnt[0]]:=group_com[i][j]; + pcode_y[0][pcode_cnt[0]]:=group_par[i][j]; fi endfor endfor @@ -788,52 +779,53 @@ def proc_bond_atom(expr a)(expr n)= bondL:=rate_cr; lenT:=rate_cr; sB[0]:=0; eB[0]:=1; lineT:=si; addAT:=markA:=markB:=saveA:=saveB:=0; %----------------------------------------------------------------------------------------------- - for i=n upto pcode_cnt[a]: nC:=pcode_com[a][i]; nP:=pcode_par[a][i]; - if nC=_mk_bond: if (nP=0)and(rotT<>0): rotT:=0; fi add_atom(0); - ef nC=_set_adr: adrT:=nP; - ef nC=_com: if nP=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB; - ef nP=_rest: markA:=saveA; markB:=saveB; - ef nP=_moff: markA:=markB:=0; - ef nP=_term: termA; - ef nP=_len_s: temp_lenE:=bondL; ef nP=_len_e: bondL:=temp_lenE; - ef nP=_len_ss: temp_lenF:=bondL; ef nP=_len_ee: bondL:=temp_lenF; - ef nP=_group_s: f_at:=1; if lineT<>si: f_lineT:=1; fi if rotT<>0: f_rotT:=1; fi + for i=n upto pcode_cnt[a]: pX:=pcode_x[a][i]; pY:=pcode_y[a][i]; + if pX=_mk_bond: if (pY=0)and(rotT<>0): rotT:=0; fi add_atom(0); + ef pX=_set_adr: adrT:=pY; + ef pX=_com: if pY=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB; + ef pY=_rest: markA:=saveA; markB:=saveB; + ef pY=_moff: markA:=markB:=0; + ef pY=_term: termA; + ef pY=_len_s: temp_lenE:=bondL; ef pY=_len_e: bondL:=temp_lenE; + ef pY=_len_ss: temp_lenF:=bondL; ef pY=_len_ee: bondL:=temp_lenF; + ef pY=_group_s: f_at:=1; if lineT<>si: f_lineT:=1; fi if rotT<>0: f_rotT:=1; fi if lenT<>rate_cr: f_lenT:=1; fi if envT<>hz: f_envT:=1; fi - ef nP=_group_e: f_at:=0; f_lineT:=f_rotT:=f_lenT:=f_envT:=rotT:=envT:=0; + ef pY=_group_e: f_at:=0; f_lineT:=f_rotT:=f_lenT:=f_envT:=rotT:=envT:=0; lineT:=si; lenT:=rate_cr; fi - ef nC=_set_atom: temp_strA:=nP; - ef nC=_group_si: add_group; - ef nC=_group_dm: lineT:=dm; add_group; - ef nC=_group_wf: lineT:=wf; add_group; - ef nC=_group_zf: lineT:=zf; add_group; - ef nC=_jp_bond: termA; nA:=getB(nP); check_adrB(nA); sB[cntB+1]:=sB[nA]; f_bra:=1; - ef nC=_jp_atom: termA; nA:=getA(nP); check_adrA(nA); sB[cntB+1]:=nA; f_bra:=1; - ef nC=_jp_absA: sB[cntB+1]:=nP; f_bra:=1; temp_cntB:=cntB; - ef nC=_chg_atom: strA[getA(adrT)]:=pcode_par[nP][1]; - ef nC=_chg_len: if nP=_ring_len: bondL:=ringL; else: bondL:=nP; fi - ef nC=_get_len: if nP=_tmp_len: if bondL=rate_cr: bondL:=lenT; fi - ef nP=_ring_len: + ef pX=_set_atom: temp_strA:=pY; + ef pX=_group_si: add_group(pY); + ef pX=_group_dm: lineT:=dm; add_group(pY); + ef pX=_group_wf: lineT:=wf; add_group(pY); + ef pX=_group_zf: lineT:=zf; add_group(pY); + ef pX=_jp_bond: termA; nA:=getB(pY); check_adrB(nA); sB[cntB+1]:=sB[nA]; f_bra:=1; + ef pX=_jp_atom: termA; nA:=getA(pY); check_adrA(nA); sB[cntB+1]:=nA; f_bra:=1; + ef pX=_jp_absA: sB[cntB+1]:=pY; f_bra:=1; temp_cntB:=cntB; + ef pX=_chg_atom: strA[getA(adrT)]:=pcode_y[pY][1]; + ef pX=_chg_len: if pY=_ring_len: bondL:=ringL; else: bondL:=pY; fi + ef pX=_chg_slen: temp_lenE:=bondL; if pY=_ring_len: bondL:=ringL; else: bondL:=pY; fi + ef pX=_get_len: if pY=_tmp_len: if bondL=rate_cr: bondL:=lenT; fi + ef pY=_ring_len: if lenT<>rate_cr: bondL:=lenT; else: if bondL<0: bondL:=1; fi fi - else: ringL:=lenB[getB(nP)]; fi - ef nC=_tmp_len: lenT:=nP; - ef nC=_set_line: lineB[getB(adrT)]:=nP; - ef nC=_tmp_line: lineT:=nP; - ef nC=_tmp_rot: rotT:=nP; - ef nC=_cyc: check_adrA(getA(nP)); add_atom(getA(nP)); - ef nC=_cyc_eB: add_atom(eB[getB(nP)]); - ef nC=_cyc_sB: add_atom(sB[getB(nP)]); - ef nC=_chg_env: envB:=nP; - ef nC=_tmp_env: envT:=nP; - ef nC=_set_colorA: colorA[getA(adrT)]:=nP; - ef nC=_set_colorB: colorB[getB(adrT)]:=nP; - ef nC=_set_add: addAT:=nP; - ef nC=_chg_add: addA[getA(nP)]:=addAT; addAT:=0; if rotT<>0: add_rot[getA(nP)]:=rotT; fi + else: ringL:=lenB[getB(pY)]; fi + ef pX=_tmp_len: lenT:=pY; + ef pX=_set_line: lineB[getB(adrT)]:=pY; + ef pX=_tmp_line: lineT:=pY; + ef pX=_tmp_rot: rotT:=pY; + ef pX=_cyc: check_adrA(getA(pY)); add_atom(getA(pY)); + ef pX=_cyc_eB: add_atom(eB[getB(pY)]); + ef pX=_cyc_sB: add_atom(sB[getB(pY)]); + ef pX=_chg_env: envB:=pY; + ef pX=_tmp_env: envT:=pY; + ef pX=_set_colorA: colorA[getA(adrT)]:=pY; + ef pX=_set_colorB: colorB[getB(adrT)]:=pY; + ef pX=_set_add: addAT:=pY; + ef pX=_chg_add: addA[getA(pY)]:=addAT; addAT:=0; if rotT<>0: add_rot[getA(pY)]:=rotT; fi else: fi endfor enddef; %------------------------------------------------------------------------------------------------- -def add_group= +def add_group(expr n)= 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,_mark) @@ -846,9 +838,7 @@ def add_group= if envT<>hz: store_group(_chg_env,envT) fi if lineT=nl: store_group(_chg_len,_size_atom) store_group(_adj_ang,0) fi if lineT<>nb: store_group(_mk_bond,0) fi - if nP<>NO_ATOM: - for i=1 upto pcode_cnt[nP]: store_group(pcode_com[nP][i],pcode_par[nP][i]) endfor - fi + if n<>NO_ATOM: for i=1 upto pcode_cnt[n]: store_group(pcode_x[n][i],pcode_y[n][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 @@ -881,24 +871,24 @@ def proc_skeleton(expr n)= envT:=envB:=f_lineT:=f_rotT:=f_lenT:=f_envT:=0; lineT:=si; angT:=mangle; angA[0]:=angB[0]:=angX[0]:=0; posA[0]:=posBs:=posBe:=(0,0); %----------------------------------------------------------------------------------------------- - for i=1 upto pcode_cnt[n]: nC:=pcode_com[n][i]; nP:=pcode_par[n][i]; - if nC=_mk_bond: if (nP=0)and(rotT<>0):nP:=rotT; rotT:=0; fi add_bond(nP,1); - ef nC=_com: if nP=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB; - ef nP=_rest: markA:=saveA; markB:=saveB; - ef nP=_moff: markA:=markB:=0; ef nP=_term: termB; - ef nP=_group_e: lineT:=si; lenT:=rate_cr; rotT:=envT:=0; fi - ef nC=_jp_bond: termB; nA:=getB(nP); posBs:=posA[sB[nA]]; angT:=angB[nA]; f_bra:=1; rotT:=0; - ef nC=_jp_atom: termB; adrT:=getA(nP); posBs:=posA[adrT]; angT:=angX[adrT]; f_bra:=1; rotT:=0; - ef nC=_jp_absA: adrT:=nP; posBs:=posA[adrT]; angT:=angX[adrT]; + for i=1 upto pcode_cnt[n]: pX:=pcode_x[n][i]; pY:=pcode_y[n][i]; + if pX=_mk_bond: if (pY=0)and(rotT<>0):pY:=rotT; rotT:=0; fi add_bond(pY,1); + ef pX=_com: if pY=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB; + ef pY=_rest: markA:=saveA; markB:=saveB; + ef pY=_moff: markA:=markB:=0; ef pY=_term: termB; + ef pY=_group_e: lineT:=si; lenT:=rate_cr; rotT:=envT:=0; fi + ef pX=_jp_bond: termB; nA:=getB(pY); posBs:=posA[sB[nA]]; angT:=angB[nA]; f_bra:=1; rotT:=0; + ef pX=_jp_atom: termB; adrT:=getA(pY); posBs:=posA[adrT]; angT:=angX[adrT]; f_bra:=1; rotT:=0; + ef pX=_jp_absA: adrT:=pY; posBs:=posA[adrT]; angT:=angX[adrT]; f_bra:=1; rotT:=0; temp_cntB:=cntB; - ef nC=_adj_ang: angT:=adjust_ang(angT); - ef nC=_rot_ang: if nP>-3700: angT:=(angT+nP) mod 360; else: angT:=(nP+4095) mod 360; fi - ef nC=_tmp_rot: rotT:=nP; - ef nC=_chg_env: envB:=nP; - ef nC=_tmp_env: envT:=nP; - ef nC=_cyc: add_bond(angle(posA[getA(nP)]-posBs)-angT,0); - ef nC=_cyc_sB: add_bond(angle(posA[sB[getB(nP)]]-posBs)-angT,0); - ef nC=_cyc_eB: add_bond(angle(posA[eB[getB(nP)]]-posBs)-angT,0); + ef pX=_adj_ang: angT:=adjust_ang(angT); + ef pX=_rot_ang: if pY>-3700: angT:=(angT+pY) mod 360; else: angT:=(pY+4095) mod 360; fi + ef pX=_tmp_rot: rotT:=pY; + ef pX=_chg_env: envB:=pY; + ef pX=_tmp_env: envT:=pY; + ef pX=_cyc: add_bond(angle(posA[getA(pY)]-posBs)-angT,0); + ef pX=_cyc_sB: add_bond(angle(posA[sB[getB(pY)]]-posBs)-angT,0); + ef pX=_cyc_eB: add_bond(angle(posA[eB[getB(pY)]]-posBs)-angT,0); else: fi endfor @@ -924,7 +914,7 @@ 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] + else: if envB>=pcode_emb_start: pcode_y[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 @@ -1010,7 +1000,7 @@ def draw_bond(expr n)= ef nL=bz: bz_put(sfrt(Ls,ww,ap),sfrt(Le,ww,ap),sfrt(Ls,ww,am),sfrt(Le,ww,am)); ef nL=zf: wz_put(Ls,sfrt(Le,ww,ap),sfrt(Le,ww,am)); ef nL=zb: wz_put(Le,sfrt(Ls,ww,am),sfrt(Ls,ww,ap)); - ef nL=dt: for i=0 step .75hash_gap/lenL until 1: drawdot i[Ls,Le]; endfor + ef nL=dt: for i=0 step .75hash_gap/lenL until 1: drawdot i[Ls,Le] wpcs 2bond_pen_wd; endfor ef nL=wv: nA:=.4bondgap; nB:=round(lenL/nA); draw Ls for i=1 upto nB: ..controls(point (i-.5)/nB of sfrt(zA,nA,iif(odd i,ap,am))) ..point i/nB of zA endfor @@ -1379,14 +1369,14 @@ vardef bond_config(expr n)= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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; + pcode_x[pcode_num][1]:=_set_atom; pcode_y[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 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; + pcode_x[pcode_num][1]:=_set_atom; pcode_y[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; for list=t: tbl_group[tbl_cnt][incr tbl_atom[tbl_cnt]]:=list-pcode_emb_start; endfor pcode_num @@ -1443,7 +1433,7 @@ def define_atom_group_parts= 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 + for i=5,6: 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); @@ -1535,7 +1525,7 @@ vardef checkm(expr s)= if nA<>CMA: proc_err(5,nB) fi if nC=CMA: proc_err(4,i) fi ef (nB=SLS)or((nB>=7)and(nB<=11)): % /,*/*,//,/*,*/,** if (nA<>CMA)and(nA<>CLN)and(nA<>PRS): proc_err(5,i) fi - if nC=CMA: proc_err(4,i) fi + if (nC=CMA): proc_err(4,i) fi fi if (nB=PRS)or(nB=BRS): f_depth:=f_depth+1; ef (nB=PRE)or(nB=BRE): f_depth:=f_depth-1; fi endfor |