From d4bcdd471d32a18a14ce486284c593d3cb90f7a1 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 10 Oct 2016 21:14:36 +0000 Subject: mcf2graph (10oct16) git-svn-id: svn://tug.org/texlive/trunk@42248 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG | 7 +- Master/texmf-dist/doc/metapost/mcf2graph/README | 2 +- .../doc/metapost/mcf2graph/mcf_exa_soc.mf | 5 +- .../doc/metapost/mcf2graph/mcf_example.pdf | Bin 242077 -> 246519 bytes .../doc/metapost/mcf2graph/mcf_example.tex | 2 +- .../doc/metapost/mcf2graph/mcf_man_soc-042.eps | 90 -- .../doc/metapost/mcf2graph/mcf_man_soc-060.eps | 100 ++ .../doc/metapost/mcf2graph/mcf_man_soc.mf | 688 ++++++--- .../doc/metapost/mcf2graph/mcf_manual.pdf | Bin 475962 -> 426355 bytes .../doc/metapost/mcf2graph/mcf_manual.tex | 1499 ++++++++------------ .../doc/metapost/mcf2graph/mcf_mplib_exa.pdf | Bin 123160 -> 121880 bytes .../doc/metapost/mcf2graph/mcf_mplib_exa.tex | 6 +- Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf | 204 +-- 13 files changed, 1294 insertions(+), 1309 deletions(-) delete mode 100644 Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-042.eps create mode 100644 Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-060.eps diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG index 0191b91b22c..7017a9dbaca 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG +++ b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG @@ -1,6 +1,11 @@ ******************************************************************************* - Changelog of mcf2graph software package by Akira Yamaji 2016-08-21 + Changelog of mcf2graph software package by Akira Yamaji 2016-10-10 ******************************************************************************* +[ver. 3.98 / 2016-10-10] + -add option parameter sw_clip (clipping font) + -add max_bond_length , delete max_bond_width + -update MCF syntax manual + [ver. 3.97 / 2016-08-21] -change bond type name 'ov' to 'si_' -add bond type 'wf_','wb_','bd_' diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/README b/Master/texmf-dist/doc/metapost/mcf2graph/README index 1711f2d0217..2428acd155a 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 METAFONT/METAPOST Author : Akira Yamaji - version : 3.97 2016-08-21 + version : 3.98 2016-10-10 E-mail : mcf2graph@gmail.com Located at : http://www.ctan.org/pkg/mcf2graph ******************************************************************************** diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf index fbe8c08ee82..22599e08a44 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf @@ -1,11 +1,10 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2016.08.21 +% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2016.10.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %%% it must be version 3.97 or later +input mcf2graph.mf; %%% it must be version 3.98 or later %------------------------------------------------------------------------- font_wd#:=33mm#; font_ht#:=24mm#; -max_bond_width:=0.15; %------------------------------------------------------------------------- sw_auxout:=1; sw_font_frame:=0; diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf index 9cdc045a25a..5a8b1f1bd5a 100644 Binary files a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf and b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf differ diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex index 29d915c3f97..db3d5b2ff6b 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex @@ -68,7 +68,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \begin{center} - {\LARGE\bf Molecular Coding Format examples}\vspace{5mm}\\ + {\Huge\sf Molecular Coding Format examples}\vspace{5mm}\\ Author : Akira Yamaji \quad Date : \today\\ Located at : http://www.ctan.org/pkg/mcf2graph\vspace{3mm}\\ \end{center} diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-042.eps b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-042.eps deleted file mode 100644 index 8e619518cfa..00000000000 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-042.eps +++ /dev/null @@ -1,90 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%BoundingBox: 47 20 112 93 -%%HiResBoundingBox: 47.18906 20.76202 111.88002 92.6236 -%%Creator: MetaPost 1.9991 -%%CreationDate: 2016.08.06:0835 -%%Pages: 1 -%%DocumentResources: procset mpost-minimal -%%DocumentSuppliedResources: procset mpost-minimal -%%EndComments -%%BeginProlog -%%BeginResource: procset mpost-minimal -/bd{bind def}bind def/fshow {exch findfont exch scalefont setfont show}bd -/fcp{findfont dup length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall}bd -/fmc{FontMatrix dup length array copy dup dup}bd/fmd{/FontMatrix exch def}bd -/Amul{4 -1 roll exch mul 1000 div}bd/ExtendFont{fmc 0 get Amul 0 exch put fmd}bd -/ScaleFont{dup fmc 0 get Amul 0 exch put dup dup 3 get Amul 3 exch put fmd}bd -/SlantFont{fmc 2 get dup 0 eq{pop 1}if Amul FontMatrix 0 get mul 2 exch put fmd}bd -%%EndResource -%%EndProlog -%%BeginSetup -%%EndSetup -%%Page: 1 1 - 0 0 0 setrgbcolor 0 0.65842 dtransform truncate idtransform setlinewidth pop - [] 0 setdash 1 setlinecap 1 setlinejoin 10 setmiterlimit -newpath 58.52762 41.38638 moveto -78.5395 29.83258 lineto stroke -newpath 63.62425 44.09106 moveto -80.98482 34.068 lineto stroke -newpath 91.53891 29.83247 moveto -111.55081 41.38638 lineto stroke - 0 1 0 setrgbcolor 0.65842 - 0 dtransform exch truncate exch idtransform pop setlinewidth -newpath 111.55081 41.38638 moveto -111.55081 71.99925 lineto stroke -newpath 106.66019 44.44786 moveto -106.66019 68.93777 lineto stroke - 0 0 0 setrgbcolor 0 0.65842 dtransform truncate idtransform setlinewidth pop -newpath 111.55081 71.99925 moveto -91.53891 83.55305 lineto stroke -newpath 78.5395 83.55315 moveto -58.52762 71.99925 lineto stroke -newpath 80.98482 79.31773 moveto -63.62425 69.29457 lineto stroke - 0.65842 0 dtransform exch truncate exch idtransform pop setlinewidth -newpath 58.52762 71.99925 moveto -58.52762 41.38638 lineto stroke - 1 0 0 setrgbcolor -newpath 79.7213 20.76202 moveto -80.70894 20.76202 lineto -80.70894 31.39784 lineto -79.7213 31.39784 lineto - closepath fill -newpath 89.36948 20.76202 moveto -90.35712 20.76202 lineto -90.35712 31.39784 lineto -89.36948 31.39784 lineto - closepath fill -newpath 81.10399 31.39784 moveto -79.7213 31.39784 lineto -88.97443 20.76202 lineto -90.35712 20.76202 lineto - closepath fill - 0 0 1 setrgbcolor -newpath 79.7213 81.98778 moveto -80.70894 81.98778 lineto -80.70894 92.6236 lineto -79.7213 92.6236 lineto - closepath fill -newpath 89.36948 81.98778 moveto -90.35712 81.98778 lineto -90.35712 92.6236 lineto -89.36948 92.6236 lineto - closepath fill -newpath 81.10399 92.6236 moveto -79.7213 92.6236 lineto -88.97443 81.98778 lineto -90.35712 81.98778 lineto - closepath fill - 0 0 0 setrgbcolor -newpath 55.69298 40.25252 moveto -55.69298 42.52025 lineto -47.18906 42.52025 lineto -47.18906 40.25252 lineto - closepath fill -newpath 52.85834 38.55174 moveto -58.52762 41.38638 lineto -52.85834 44.22102 lineto - closepath fill -showpage -%%EOF diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-060.eps b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-060.eps new file mode 100644 index 00000000000..254fc84ed15 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-060.eps @@ -0,0 +1,100 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 66 57 +%%HiResBoundingBox: 0 0 65.2089 56.69304 +%%Creator: MetaPost 1.9991 +%%CreationDate: 2016.10.08:2245 +%%Pages: 1 +%%DocumentResources: procset mpost-minimal +%%DocumentSuppliedResources: procset mpost-minimal +%%EndComments +%%BeginProlog +%%BeginResource: procset mpost-minimal +/bd{bind def}bind def/fshow {exch findfont exch scalefont setfont show}bd +/fcp{findfont dup length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall}bd +/fmc{FontMatrix dup length array copy dup dup}bd/fmd{/FontMatrix exch def}bd +/Amul{4 -1 roll exch mul 1000 div}bd/ExtendFont{fmc 0 get Amul 0 exch put fmd}bd +/ScaleFont{dup fmc 0 get Amul 0 exch put dup dup 3 get Amul 3 exch put fmd}bd +/SlantFont{fmc 2 get dup 0 eq{pop 1}if Amul FontMatrix 0 get mul 2 exch put fmd}bd +%%EndResource +%%EndProlog +%%BeginSetup +%%EndSetup +%%Page: 1 1 + 0 0 0 setrgbcolor 0 0.51848 dtransform truncate idtransform setlinewidth pop + [] 0 setdash 1 setlinecap 1 setlinejoin 10 setmiterlimit +newpath 14.1732 17.70572 moveto +27.95258 9.75023 lineto stroke +newpath 17.7621 19.66498 moveto +29.69818 12.77371 lineto stroke +newpath 37.25743 9.75015 moveto +51.03682 17.70572 lineto stroke + 0 1 0 setrgbcolor 0.51848 + 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 51.03682 17.70572 moveto +51.03682 38.98888 lineto stroke +newpath 47.54561 19.83417 moveto +47.54561 36.86043 lineto stroke + 0 0 0 setrgbcolor 0 0.51848 dtransform truncate idtransform setlinewidth pop +newpath 51.03682 38.98888 moveto +37.25743 46.94435 lineto stroke +newpath 27.95258 46.94443 moveto +14.1732 38.98888 lineto stroke +newpath 29.69818 43.92094 moveto +17.7621 37.02962 lineto stroke + 0.51848 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 14.1732 38.98888 moveto +14.1732 17.70572 lineto stroke + 1 0 0 setrgbcolor +newpath 28.7985 3.25761 moveto +29.57623 3.25761 lineto +29.57623 10.87064 lineto +28.7985 10.87064 lineto + closepath fill +newpath 35.63377 3.25761 moveto +36.41151 3.25761 lineto +36.41151 10.87064 lineto +35.63377 10.87064 lineto + closepath fill +newpath 29.88733 10.87064 moveto +28.7985 10.87064 lineto +35.32268 3.25761 lineto +36.41151 3.25761 lineto + closepath fill + 0 0 1 setrgbcolor +newpath 28.7985 45.82394 moveto +29.57623 45.82394 lineto +29.57623 53.43697 lineto +28.7985 53.43697 lineto + closepath fill +newpath 35.63377 45.82394 moveto +36.41151 45.82394 lineto +36.41151 53.43697 lineto +35.63377 53.43697 lineto + closepath fill +newpath 29.88733 53.43697 moveto +28.7985 53.43697 lineto +35.32268 45.82394 lineto +36.41151 45.82394 lineto + closepath fill + 0 0 0 setrgbcolor +newpath 0 0.19925 moveto +0 0 lineto +0.19925 0 lineto +65.2089 0 lineto +65.2089 0.19925 lineto +65.2089 56.69304 lineto +65.00964 56.69304 lineto +0 56.69304 lineto +0 56.49379 lineto +0 0 lineto +0.19925 0 lineto +0.19925 0.19925 lineto +0.19925 56.69304 lineto +0.19925 56.49379 lineto +65.2089 56.49379 lineto +65.00964 56.49379 lineto +65.00964 0 lineto +65.00964 0.19925 lineto + closepath fill +showpage +%%EOF diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf index 07a530f60c8..be0c4751b1b 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf @@ -1,11 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2016.08.21 +% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2016.10.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %% it must be version 3.97 or later -%------------------------------------------------------------------------ -font_wd#:=60mm#;% font width -font_ht#:=40mm#;% font height -max_bond_width:=0.18; +input mcf2graph.mf; %% it must be version 3.98 or later %------------------------------------------------------------------------ sw_auxout:=0; sw_mol_frame:=0; @@ -13,248 +9,420 @@ sw_expand:=0; sw_start_vector:=0; %%%%%sw_checklist:=1; %*********************************************************************** +font_wd#:=35mm#; +font_ht#:=25mm#; +margin_left_right:=2mm; +\max_bond_length#:=10mm#; +ratio_thickness_bond:=0.04; +ratio_atom_bond:=0.5; +%*********************************************************************** +beginfont("EN:Glycine") + MCf(<30,NH2,!0,!,COOH) +endfont +%*********************************************************************** +beginfont("EN:Alanine") + MCf(<30,NH2,!0,/Me,!,COOH) +endfont +%*********************************************************************** +beginfont("EN:Valine") + MCf(<30,NH2,!0,!,COOH,2\,/Me,!) +endfont +%*********************************************************************** +beginfont("EN:Leucine") + MCf(<30,NH2,!0,!,COOH,2\,!,/Me,!) +endfont +%*********************************************************************** +beginfont("EN:Isoleucine") + MCf(<30,NH2,!0,!,COOH,2\,/Me,!2) +endfont +%*********************************************************************** +beginfont("EN:Serine") + MCf(<30,NH2,!0,!,COOH,2\,!,OH) +endfont +%*********************************************************************** +beginfont("EN:Threonine") + MCf(<30,NH2,!0,!,COOH,2\,/Me,!,OH) +endfont +%*********************************************************************** +beginfont("EN:Cysteine") + MCf(<30,NH2,!0,!,COOH,2\,!,SH) +endfont +%*********************************************************************** +beginfont("EN:Methionine") + MCf(<30,NH2,!0,!,COOH,2\,!2,SMe) +endfont +%*********************************************************************** +beginfont("EN:Phenylalanine") + MCf(<30,NH2,!0,!,COOH,2\,!,Ph) +endfont +%*********************************************************************** +beginfont("EN:Tyrosine") + MCf(<30,NH2,!0,!,COOH,2\,!,Ph,-3:/OH) +endfont +%*********************************************************************** +beginfont("EN:Triptophan") + MCf(<30,NH2,!0,!,COOH,2\,!,<24,|,?5,-4=Ph,2=dr,5=dl,4:NH) +endfont +%*********************************************************************** +beginfont("EN:Prorine") + MCf(<18,?5,3:NH,4:/COOH) +endfont +%*********************************************************************** +beginfont("EN:Glutamine") + MCf(<30,NH2,!0,!,COOH,2\`1,-45,-45,//O,!,NH2) +endfont +%*********************************************************************** +beginfont("EN:Asparagine") + MCf(<30,NH2,!0,!,COOH,2\,!,//O,!,NH2) +endfont +%*********************************************************************** +beginfont("EN:Aspartic acid") + MCf(<30,NH2,!0,!,COOH,2\,!,COOH) +endfont +%*********************************************************************** +beginfont("EN:Glutamic acid") + MCf(<30,NH2,!0,!,COOH,2\,!2,COOH) +endfont +%*********************************************************************** +beginfont("EN:Lysine") + MCf(<30,NH2,!0,!,COOH,2\,!4,NH2) +endfont +%*********************************************************************** +beginfont("EN:Arginine") + MCf(<30,NH2,!0,!,COOH,2\,-45,-45,60,NH,!,//NH,!,NH2) +endfont +%*********************************************************************** +beginfont("EN:Hystidine") + MCf(<30,NH2,!0,!,COOH,2\,!,|,?5,$(1,3)dl,3:N,5:NH) +endfont +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +font_wd#:=60mm#; +font_ht#:=35mm#; +ratio_thickness_bond:=0.015; +ratio_atom_bond:=0.36; +sw_font_frame:=1; +margin_left_right:=2mm; +margin_top_bottom:=1mm; +%*********************************************************************** beginfont("EN:Chain 1") + font_ht#:=20mm#; sw_numberB:=1; numberB_end:=6; - max_bond_width:=0.20; ratio_chain_ring:=1; +%---------------------------------------------------------------------- MCf(<30,-60,60,-90,120,-90,60, - @(1^-60,2^60,3^-45,4^30,5^-45,6^60)/Me~dt`.6 + @(1^-60,2^60,3^-45,4^30,5^-45,6^60)/Me~dt`.4 ) endfont %*********************************************************************** beginfont("EN:Chain 2") + font_ht#:=20mm#; sw_numberB:=1; numberB_end:=6; - max_bond_width:=0.20; ratio_chain_ring:=1; +%---------------------------------------------------------------------- MCf(<30,!6, @(1^-60,2^60,3^-60,4^60,5^-60,6^60)/Me~dt`.6 ) endfont %*********************************************************************** beginfont("EN:Jump and Branch") + font_ht#:=20mm#; + margin_top_bottom:=2mm; + sw_clip:=1; sw_numberA:=1; - max_bond_width:=0.20; ratio_chain_ring:=1; +%---------------------------------------------------------------------- MCf(<30,!6,3*,0,!,5*,-30) endfont %*********************************************************************** beginfont("EN:Jump and Branch") + font_ht#:=20mm#; + margin_top_bottom:=2mm; sw_numberA:=1; - max_bond_width:=0.20; + sw_clip:=1; ratio_chain_ring:=1; +%---------------------------------------------------------------------- MCf(<30,!6,3\,!) endfont %*********************************************************************** +beginfont("EN:branch1") + font_ht#:=20mm#; + margin_top_bottom:=2mm; + sw_numberA:=1; + sw_clip:=1; + numberA_end:=9; + ratio_chain_ring:=1; +%---------------------------------------------------------------------- + MCf(<-30,!8,2\,!,4*\,!,6\*,!,8\\,!) +endfont +%*********************************************************************** +beginfont("EN:branch2") + font_ht#:=23mm#; + margin_top_bottom:=2mm; + sw_clip:=1; + sw_numberA:=1; + numberA_end:=7; + ratio_chain_ring:=1; +%---------------------------------------------------------------------- + MCf(<-30,!6,2\~dr,!,4\`1.5,!,6\^15,-60) +endfont +%*********************************************************************** beginfont("EN:Connect atom") + font_ht#:=20mm#; + margin_top_bottom:=2mm; + sw_clip:=1; sw_numberA:=1; - max_bond_width:=0.20; ratio_chain_ring:=1; +%---------------------------------------------------------------------- MCf(<30,!6,3\,!,&5) endfont %*********************************************************************** beginfont("EN:ring") - max_bond_width:=0.25; + font_ht#:=20mm#; + sw_clip:=1; + margin_top_bottom:=3mm; sw_numberB:=1; - sw_start_vector:=1; +%---------------------------------------------------------------------- MCf(?6) endfont %*********************************************************************** beginfont("EN:rotate 1") - max_bond_width:=0.25; + font_ht#:=20mm#; + margin_top_bottom:=3mm; + sw_clip:=1; sw_numberB:=1; - sw_start_vector:=1; - MCf(``1,0~vf,0~vf,<90,0~vf,<-90,0~vf) + numberB_end:=5; + MCf(``1,0,0,<90,0,<-90,0,0,$(1,2,3,4,5)vf,@(3,4^180)/Me~dt`.5) endfont %*********************************************************************** beginfont("EN:change bond 1") + font_wd#:=70mm#; + font_ht#:=15mm#; + sw_clip:=1; ratio_chain_ring:=1; - MCf(<30,!~dm,!~dl,!~dr,!~tm) + margin_top_bottom:=3mm; + MCf(<30,!~dm,!,!~dl,!,!~dr,!,!~tm) endfont %*********************************************************************** beginfont("EN:change bond 2") + font_wd#:=70mm#; + font_ht#:=15mm#; + margin_top_bottom:=3mm; + sw_clip:=1; ratio_chain_ring:=1; - MCf(<30,!~wf,!~wb,!~zf,!~zb,!~vf) + MCf(<30,!~wf,!,!~wb,!,!~zf,!,!~zb) endfont %*********************************************************************** beginfont("EN:change bond 3") + font_ht#:=12mm#; + margin_top_bottom:=3mm; + sw_clip:=1; ratio_chain_ring:=1; - MCf(<30,!5,1=vb,2=dt,3=wv,4=bd,5=bz) + MCf(<30,!~vf,!,!~vb) +endfont +%*********************************************************************** +beginfont("EN:change bond 3") + font_wd#:=70mm#; + sw_clip:=1; + ratio_chain_ring:=1; + margin_top_bottom:=3mm; + MCf(<30,!7,1=dt,3=wv,5=bd,7=bz) endfont %*********************************************************************** beginfont("EN:change bond 4") + margin_top_bottom:=3mm; + sw_clip:=1; ratio_chain_ring:=1; MCf(<30,!7,$(2,4,6)dr) endfont %*********************************************************************** beginfont("EN:over line") + sw_clip:=1; + font_ht#:=20mm#; ratio_chain_ring:=1; - max_bond_width:=0.25; - MCf(<-30,!8`.4,!`.2,60`.6,90`3,@(2~si_,4~wf_,6~wb_,8~bd_)/Me`1) + MCf(<-30,!8,!,60,90`8,@(2~si_,4~wf_,6~wb_,8~bd_)/Me`2) endfont %*********************************************************************** beginfont("EN:change bond length1") - sw_start_vector:=1; + font_ht#:=15mm#; sw_numberB:=1; MCf(<30,!2,!2`1.2,!2) endfont %*********************************************************************** beginfont("EN:change bond length2") - sw_start_vector:=1; + font_ht#:=15mm#; sw_numberB:=1; MCf(<30,!2,``1.2,!4) endfont %*********************************************************************** -beginfont("EN:Make brock") - sw_start_vector:=1; - sw_numberB:=1; - MCf(<30,!2,{,``1.2,!2,},!2) -endfont -%*********************************************************************** beginfont("EN:change ring length") - sw_start_vector:=1; + font_ht#:=25mm#; + sw_clip:=1; MCf(?6,4\,?6`1.2,5=?6,11=?6) endfont %*********************************************************************** -beginfont("EN:change atom 1") - sw_start_vector:=1; +beginfont("EN:Insert atom") + sw_clip:=1; + font_ht#:=10mm#; MCf(<30,!2,O,!2,N,!2) endfont %*********************************************************************** -beginfont("EN:change atom 2") - MCd(1,1)(.5,.8)(<30,!6,2:O,@(3,5)N) - sw_numberA:=1; - MCd(1,1)(.5,.2)(<30,!6,2:O,@(3,5)N) -endfont -%*********************************************************************** -beginfont("EN:change atom 3") - MCd(.7,1)(.5,1)(?6,4\,?6,2:N) +beginfont("EN:change atom") + font_ht#:=18mm#; + MCd(1,1)(.5,1)(<30,!6,2:O,@(3,5)N) sw_numberA:=1; - MCd(.7,1)(.5,0)(?6,4\,?6) + MCd(1,1)(.5,.05)(<30,!6,2:O,@(3,5)N) endfont %*********************************************************************** beginfont("EN:change atom brock address 1") - MCd(.7,1)(.5,1)(?6,4\,|,?6,2:O) + font_wd#:=70mm#; + font_ht#:=15mm#; + MCd(1,1)(0,.5)(?6,4\,|,?6,2:O) sw_numberA:=1; - MCd(.7,.5)(.5,0)(?6,4\,?6) + MCd(1,.88)(1,.5)(?6,4\,?6) endfont %*********************************************************************** beginfont("EN:change atom brock address 2") - MCd(.7,1)(.5,1)(?6,4\,|,?6,||,2:N) + font_wd#:=70mm#; + font_ht#:=15mm#; + MCd(1,1)(0,.5)(?6,4\,|,?6,||,2:N) sw_numberA:=1; - MCd(.7,.5)(.5,0)(?6,4\,?6) + MCd(1,.88)(1,.5)(?6,4\,?6) endfont %*********************************************************************** beginfont("EN:change atom absolute address") - MCd(.7,1)(.5,1)(?6,4\,?6,#2:N) + font_wd#:=70mm#; + font_ht#:=15mm#; + MCd(1,1)(0,.5)(?6,4\,?6,#2:N) sw_numberA:=1; - MCd(.7,1)(.5,0)(?6,4\,?6) + MCd(1,.88)(1,.5)(?6,4\,?6) endfont %*********************************************************************** beginfont("EN:change atom relative adress") - MCd(.7,1)(.5,1)(?6,4\,?6,-2:N) + font_wd#:=70mm#; + font_ht#:=15mm#; + MCd(1,1)(0,.5)(?6,4\,?6,-2:N) sw_numberA:=3; - MCd(.7,1)(.5,0)(?6,4\,?6) + MCd(1,.88)(1,.5)(?6,4\,?6) endfont %*********************************************************************** beginfont("EN:fused ring") + font_ht#:=18mm#; + margin_top_bottom:=1.5mm; + sw_clip:=1; sw_numberB:=1; MCf(<30,?6,3=?6,$(3)dt,$(7,8,9,10,11)bd) endfont -%*********************************************************************** +%----------------------------------------------------------------------- beginfont("EN:fused large 6 ring") + font_ht#:=18mm#; + margin_top_bottom:=1.5mm; sw_numberB:=1; + sw_clip:=1; MCf(<30,?6,3=?6[13],$(3)dt,$(7,8,9,10,11)bd) endfont -%*********************************************************************** -beginfont("EN:fused ring 1") - sw_start_vector:=1; +%----------------------------------------------------------------------- +beginfont("EN:fuse multi ring") + font_wd#:=70mm#; + font_ht#:=20mm#; sw_numberB:=1; + sw_clip:=1; MCf(<30,?6,$(-3,-4,-4,-2,-2,-4,-4)?6,$(4,8,13,20,25,28,33)dt) endfont %*********************************************************************** beginfont("EN:fused ring 2") - sw_numberB:=1; - MCd(1,.62)( 0,0)(<30,?6,3=?6,(11,4)=?6[4],$(11,4)dt,$(12,13,14,15)bd) - MCd(1,.52)(.54,1)(<30,?6,3=?6,(11,4)=?5[3],$(11,4)dt,$(12,13,14)bd) - MCd(1,.52)(1, 0)(<30,?6,3=?6,(11,4)=?4[2],$(11,4)dt,$(12,13)bd) + font_wd#:=75mm#; + font_ht#:=20mm#; + sw_numberB:=1; + MCd(1,1)( 0,.5)(<30,?6,3=?6,(11,4)=?6[4],$(11,4)dt,$(12,13,14,15)bd) + MCd(1,.9)(.5,.5)(<30,?6,3=?6,(11,4)=?5[3],$(11,4)dt,$(12,13,14)bd) + MCd(1,.9)( 1,.5)(<30,?6,3=?6,(11,4)=?4[2],$(11,4)dt,$(12,13)bd) endfont %*********************************************************************** beginfont("EN:fused ring 3") + font_ht#:=20mm#; + margin_top_bottom:=2mm; sw_numberB:=1; - MCd(1,.6)(0,1)(?6,$(3,10)?6,(16,4)=?6[3],$(16,4)dt,$(17,18,19)bd) - MCd(1,.6)(1,0)(?6,$(3,10)?6,(16,4)=?5[2],$(16,4)dt,$(17,18)bd) + MCd(1,1)(0,1)(?6,$(3,10)?6,(16,4)=?6[3],$(16,4)dt,$(17,18,19)bd) + MCd(1,1)(1,0)(?6,$(3,10)?6,(16,4)=?5[2],$(16,4)dt,$(17,18)bd) endfont %*********************************************************************** beginfont("EN:fused ring 4") - max_bond_width:=0.15; + sw_clip:=1; + font_ht#:=22mm#; + margin_top_bottom:=2mm; sw_numberB:=1; MCf(<-30,?6,$(3,10,15)?6,(21,4)=?6[2],$(21,4)dt,$(22,23)bd) endfont %*********************************************************************** beginfont("EN:Spiro ring ") + sw_clip:=1; + font_ht#:=18mm#; + margin_top_bottom:=3mm; sw_numberA:=1; numberA_end:=7; ratio_chain_ring:=1; MCf(<30,!6,4*,?5) endfont %*********************************************************************** -beginfont("EN:branch1") - sw_numberA:=1; - numberA_end:=9; - max_bond_width:=0.30; - ratio_chain_ring:=1; - MCf(<-30,!8,2\,!,4*\,!,6\*,!,8\\,!) -endfont -%*********************************************************************** -beginfont("EN:branch2") - sw_numberA:=1; - numberA_end:=7; - max_bond_width:=0.30; - ratio_chain_ring:=1; - MCf(<-30,!6,2\~dr,!,4\`1.5,!,6\^15,-60) -endfont -%*********************************************************************** beginfont("EN:substituent 1") + font_ht#:=25mm#; + sw_clip:=1; MCf(<30,!,/Me,!,/Et,!3,/Pr,!,/iPr,!3,/tBu,!,/Ph^-30,!) endfont %*********************************************************************** beginfont("EN:substituent 2") - sw_start_vector:=1; - MCf(<30,!,//O,!,/*H,!,*/H,!,/?3,!,**?3,!) + font_ht#:=20mm#; + sw_clip:=1; + MCf(<30,!,//O,!,/*H,!,*/H,!,**?3,!) endfont %*********************************************************************** beginfont("EN:substituent 3") - sw_start_vector:=1; - MCf(<30,``1,!,/Me~zf`2^30,!,/Me~zf`2^30,!2,*/Pr>lr,!2,*/Pr>rl,!) + font_ht#:=18mm#; + sw_clip:=1; + MCf(<30,``1,!2,/Me~zf`2^30,!2,*/Pr>lr,!2,*/Pr>rl,!) endfont %*********************************************************************** beginfont("EN:substituent 3") + font_wd#:=70mm#; + font_ht#:=22mm#; + margin_top_bottom:=2mm; sw_numberA:=1; - numberA_end:=12; - MCf(<30,!11,2:/Me,3:/Et,6:/Pr,7:/iPr,10:/tBu,11:/Ph^-30) + sw_clip:=1; + numberA_end:=18; + MCf(<-30,!17,2:/Me,4:/Et,6:/Pr,10:/iPr,14:/tBu,16:/Ph^-30) endfont %*********************************************************************** beginfont("EN:substituent 4") - sw_numberA:=1; numberA_end:=6; - MCf(<30,?6,@(3`2^30,3~wf,4~zf,6~wf^-30,6~zf^30)/H) + font_ht#:=15mm#; + sw_clip:=1; + margin_top_bottom:=2mm; + sw_numberA:=1; numberA_end:=9; + MCf(<-30,!6,@(2~wf,4~zf,6^-30)/H) endfont %*********************************************************************** beginfont("EN:substituent 5") + font_ht#:=18mm#; + margin_top_bottom:=2mm; + sw_clip:=1; sw_numberA:=1; numberA_end:=8; - MCf(<30,!7`1,@(2,3)/*Me`2^30,5:*/Pr>lr,7:*/Pr>rl) + MCf(<30,!7`1,@(3)/*Me`2^30,5:*/Pr>lr,7:*/Pr>rl) endfont %*********************************************************************** beginfont("EN:chain strech direction mode 1") + font_ht#:=27mm#; + sw_clip:=1; ratio_chain_ring:=1; MCf( ?4,@(3^-90,3^-30,3^90)/'(!3,"{hz}")>hz, - @(1^-60,1`2,1^60)/'(!2,"{vt}")>vt + @(1^-60,1`1.5,1^60)/'(!2,"{vt}")>vt ) endfont %*********************************************************************** beginfont("EN:chain strech direction mode 2") + font_ht#:=23mm#; + sw_clip:=1; ratio_chain_ring:=1; MCf( <30,!6,@(3^-30,3,3^30)/'(!,!,!,"{lr}")>lr, @@ -263,37 +431,50 @@ beginfont("EN:chain strech direction mode 2") endfont %*********************************************************************** beginfont("EN:chain strech direction mode 3") + font_ht#:=25mm#; + sw_clip:=1; ratio_chain_ring:=1; - sw_start_vector:=1; MCf(<-30,!6,@(6>45)/'(!3,"{45}"), @(3>'(90,-90,90))/'(!3,"{'(90,-90,90)}") ) endfont %*********************************************************************** beginfont("EN:change atom and substituent") - sw_start_vector:=1; - MCf(<30,!2,NH,!,SO,!,SOO,!3) + sw_clip:=1; + font_ht#:=15mm#; + MCf(<30,!2,NH,!2,SO,!2,SOO,!) endfont %*********************************************************************** beginfont("EN:Change color") - sw_start_vector:=1; + font_ht#:=20mm#; + sw_clip:=1; + margin_left_right:=5mm; MCf(<30,Ph,@(2,5)N,2:red,5:blue,3=green) endfont %*********************************************************************** -beginfont("EN:Chain start multi characters") -% sw_start_vector:=1; - MCd(1,1)(0,.9)(<30,COOH,!0,!3,COOH) - MCd(.8,1)(.3,.1)(<30,COOH,!4,COOH) +beginfont("EN:Make brock") + font_ht#:=20mm#; + sw_clip:=1; + sw_numberB:=1; + MCf(<30,!2,{,``1.2,!2,},!2) endfont %*********************************************************************** +beginfont("EN:Chain start multi characters") + font_ht#:=20mm#; + MCd(1,1)( 0,1)(<30,COOH,!0,!5,COOH) + MCd(.8,1)(.3,0)(<30,COOH,!6,COOH) +endfont; +%*********************************************************************** beginfont("EN:User definition") - sw_start_vector:=1; + font_ht#:=18mm#; iBuOH:='(!,/Me,!,OH); MCf(<30,?6,@(4,6)/iBuOH) endfont %*********************************************************************** beginfont("EN:Inline definition") - sw_start_vector:=1; + font_ht#:=18mm#; + margin_left_right:=5mm; + sw_clip:=1; MCf(<30,!3,/'(!,/Me,!,OH),!3) endfont %*********************************************************************** @@ -306,136 +487,160 @@ beginfont("EN:Font size") @(2,6,9)/Me,@(1,5)//O) endfont %*********************************************************************** -beginfont("EN:max_bond_width") +beginfont("EN:margin_left_right") + font_ht#:=20mm#; + sw_font_frame:=sw_mol_frame:=1; + margin_left_right:=0mm; + margin_top_bottom:=1mm; + MCd(1,1)(0.5, 1)(<30,CH3,!0,!17,CH3) + margin_left_right:=0.4mm; + MCd(1,1)(0.5,.5)(<30,CH3,!0,!17,CH3) + margin_left_right:=5mm; + MCd(1,1)(0.5, 0)(<30,CH3,!0,!17,CH3) +endfont +%*********************************************************************** +beginfont("EN:margin_top_bottom") + font_ht#:=20mm#; + sw_font_frame:=sw_mol_frame:=1; + margin_left_right:=5mm; + margin_top_bottom:=0mm; + MCd(1,1)(0.0, .5)(<30,Ph,5:/NH2) + margin_top_bottom:=0.4mm; + MCd(1,1)(0.5, .5)(<30,Ph,5:/NH2) + margin_top_bottom:=5mm; + MCd(1,1)(0.95, .5)(<30,Ph,5:/NH2) +endfont +%*********************************************************************** +beginfont("EN:offset_thickness") + font_ht#:=12mm#; + offset_thickness#:=0.0pt#; MCd(1,1)(0.08,0.5)(<30,Ph) + offset_thickness#:=0.2pt#; MCd(1,1)(.5,0.5)(<30,Ph) + offset_thickness#:=0.5pt#; MCd(1,1)(0.92,0.5)(<30,Ph) endfont +%*********************************************************************** +beginfont("EN:offset_bond_gap") + font_ht#:=12mm#; + offset_bond_gap#:=0.0pt#; + MCd(1,1)(0.08, .5)(<30,Ph) + offset_bond_gap#:=0.3pt#; %<<== default + MCd(1,1)(.50, .5)(<30,Ph) + offset_bond_gap#:=1.0pt#; + MCd(1,1)(0.92, .5)(<30,Ph) +endfont +%*********************************************************************** +beginfont("EN:offset_atom") + font_ht#:=14mm#; + offset_atom#:=0.0pt#; + MCd(1,1)(0.08, .5)(<30,?6,@(3)O) + offset_atom#:=0.8pt#; %<<== default + MCd(1,1)(.5, .5)(<30,?6,@(3)O) + offset_atom#:=2.0pt#; + MCd(1,1)(0.92, .5)(<30,?6,@(3)O) +endfont +%*********************************************************************** +beginfont("EN:offset_wedge") offset_wedge#:=0.0pt#; + font_ht#:=14mm#; + MCd(1,1)(0.08, .5)(<30,?6,5:*/Me) + offset_wedge#:=0.4pt#; %<<== default + MCd(1,1)(.5, .5)(<30,?6,5:*/Me) + offset_wedge#:=1.0pt#; + MCd(1,1)(0.92, .5)(<30,?6,5:*/Me) +endfont +%*********************************************************************** +beginfont("EN:max_bond_length") + font_ht#:=25mm#; sw_mol_frame:=1; - max_bond_width:=0.10; + max_bond_length#:=6mm#; MCd(1,1)(0, .5)(<30,Ph) - max_bond_width:=0.15; - MCd(1,1)(.33, .5)(<30,Ph) - max_bond_width:=0.25; + max_bond_length#:=8mm#; + MCd(1,1)(.4, .5)(<30,Ph) + max_bond_length#:=20mm#; %<<== default MCd(1,1)(1, .5)(<30,Ph) endfont %*********************************************************************** beginfont("EN:ratio_thickness_bond") + font_ht#:=12mm#; ratio_thickness_bond:=0.005; - MCd(1,.6)(0, .5)(<30,Ph) - ratio_thickness_bond:=0.015; - MCd(1,.6)(.5, .5)(<30,Ph) + MCd(1,1)(0.08, .5)(<30,Ph) + ratio_thickness_bond:=0.015; %<<== default + MCd(1,1)(.5, .5)(<30,Ph) ratio_thickness_bond:=0.03; - MCd(1,.6)(1, .5)(<30,Ph) + MCd(1,1)(0.92, .5)(<30,Ph) endfont %*********************************************************************** -beginfont("EN:offset_thickness") - offset_thickness#:=0.0pt#; MCd(1,.3)(.1,0.5)(<30,Ph) endfont -beginfont() offset_thickness#:=0.2pt#; MCd(1,.3)(.5,0.5)(<30,Ph) endfont -beginfont() offset_thickness#:=0.5pt#; MCd(1,.3)(.9,0.5)(<30,Ph) endfont -%*********************************************************************** beginfont("EN:ratio_char_bond") + font_ht#:=15mm#; ratio_char_bond:=1.0; - MCd(1,.6)(0, .5)(<30,?6,5:O,2:NH) - ratio_char_bond:=1.5; - MCd(1,.6)(.5, .5)(<30,?6,5:O,2:NH) + MCd(1,1)( 0, .5)(<30,?6,6:O,3:NH) + ratio_char_bond:=1.5; %<<== default + MCd(1,1)(.5, .5)(<30,?6,6:O,3:NH) ratio_char_bond:=2.0; - MCd(1,.6)(1, .5)(<30,?6,5:O,2:NH) + MCd(1,1)( 1, .5)(<30,?6,6:O,3:NH) endfont %*********************************************************************** beginfont("EN:ratio_bondgap_bond") + font_ht#:=12mm#; ratio_bondgap_bond:=0.10; - MCd(1,.6)(0, .5)(<30,Ph) - ratio_bondgap_bond:=0.15; - MCd(1,.6)(.5, .5)(<30,Ph) + MCd(1,1)(0.08, .5)(<30,Ph) + ratio_bondgap_bond:=0.15; %<<== default + MCd(1,1)(.5, .5)(<30,Ph) ratio_bondgap_bond:=0.20; - MCd(1,.6)(1, .5)(<30,Ph) + MCd(1,1)(0.92, .5)(<30,Ph) endfont %*********************************************************************** -beginfont("EN:offset_bond_gap") offset_bond_gap#:=0.0pt#; -MCd(1,.3)(.1, .5)(<30,Ph) endfont -beginfont() offset_bond_gap#:=0.3pt#; %<<== default -MCd(1,.3)(.5, .5)(<30,Ph) endfont -beginfont() offset_bond_gap#:=1.0pt#; -MCd(1,.3)(.9, .5)(<30,Ph) endfont -%*********************************************************************** beginfont("EN:ratio_atom_bond") + font_ht#:=15mm#; ratio_atom_bond:=0.25; - MCd(1,.6)(0, .5)(<30,?6,@(2,5)O) - ratio_atom_bond:=0.33; - MCd(1,.6)(.5, .5)(<30,?6,@(2,5)O) + MCd(1,1)(0.08, .5)(<30,?6,@(3)O) + ratio_atom_bond:=0.33; %<<== default + MCd(1,1)(.5, .5)(<30,?6,@(3)O) ratio_atom_bond:=0.45; - MCd(1,.6)(1, .5)(<30,?6,@(2,5)O) + MCd(1,1)(0.92, .5)(<30,?6,@(3)O) endfont %*********************************************************************** -beginfont("EN:offset_atom") offset_atom#:=0.0pt#; -MCd(1,.3)(.1, .5)(<30,?6,@(2,5)O) endfont -beginfont() offset_atom#:=0.8pt#; %<<== default -MCd(1,.3)(.5, .5)(<30,?6,@(2,5)O) endfont -beginfont() offset_atom#:=2.0pt#; -MCd(1,.3)(.9, .5)(<30,?6,@(2,5)O) endfont -%*********************************************************************** beginfont("EN:ratio_wedge_bond") + font_ht#:=15mm#; ratio_wedge_bond:=0.1; - MCd(1,.6)(0, .5)(<30,?6,5:*/Me) - ratio_wedge_bond:=0.12; - MCd(1,.6)(.5, .5)(<30,?6,5:*/Me) + MCd(1,1)(0.08, .5)(<30,?6,5:*/Me) + ratio_wedge_bond:=0.12; %<<== default + MCd(1,1)(.5, .5)(<30,?6,5:*/Me) ratio_wedge_bond:=0.2;; - MCd(1,.6)(1, .5)(<30,?6,5:*/Me) + MCd(1,1)(0.92, .5)(<30,?6,5:*/Me) endfont %*********************************************************************** -beginfont("EN:offset_wedge") offset_wedge#:=0.0pt#; -MCd(1,.3)(.1, .5)(<30,?6,5:*/Me) endfont -beginfont() offset_wedge#:=0.4pt#; %<<== default -MCd(1,.3)(.5, .5)(<30,?6,5:*/Me) endfont -beginfont() offset_wedge#:=1.0pt#; -MCd(1,.3)(.9, .5)(<30,?6,5:*/Me) endfont -%*********************************************************************** beginfont("EN:ratio_atomgap_atom") + font_ht#:=8mm#; sw_atom_frame:=1; ratio_atomgap_atom:=0.00; - MCd(1,.6)(0, .5)(<30,?6,@(2,5)O) - ratio_atomgap_atom:=0.050; - MCd(1,.6)(.5, .5)(<30,?6,@(2,5)O) + MCd(1,1)(0, .5)(<-30,!2,@(2)O) + ratio_atomgap_atom:=0.050; %<<== default + MCd(1,1)(.5, .5)(<-30,!2,@(2)O) ratio_atomgap_atom:=0.12; - MCd(1,.6)(1, .5)(<30,?6,@(2,5)O) + MCd(1,1)(1, .5)(<-30,!2,@(2)O) endfont %*********************************************************************** beginfont("EN:ratio_chain_ring") + font_wd#:=70mm#; + font_ht#:=15mm#; ratio_chain_ring:= 0.4; - MCd(1,.6)(0, .5)(<30,?6,5:/Et) - ratio_chain_ring:= 0.66; - MCd(1,.6)(.5, .5)(<30,?6,5:/Et) + MCd(1,1)(0, .5)(<30,?6,4:/Et) + ratio_chain_ring:= 0.66; %<<== default + MCd(1,1)(.45, .5)(<30,?6,4:/Et) ratio_chain_ring:= 1; - MCd(1,.6)(1, .5)(<30,?6,5:/Et) + MCd(1,1)(1, .5)(<30,?6,4:/Et) endfont %*********************************************************************** beginfont("EN:ratio_zebragap_bond") + font_ht#:=15mm#; ratio_zebragap_bond:=0.06; - MCd(1,.6)(0, .5)(<30,Ph,5:/*Me`1) - ratio_zebragap_bond:=0.12; - MCd(1,.6)(.5, .5)(<30,Ph,5:/*Me`1) + MCd(1,1)(0.08, .5)(<-30,!2,2:/*Me`1) + ratio_zebragap_bond:=0.12; %<<== default + MCd(1,1)( .5, .5)(<-30,!2,2:/*Me`1) ratio_zebragap_bond:=0.20; - MCd(1,.6)(1, .5)(<30,Ph,5:/*Me`1) -endfont -%*********************************************************************** -beginfont("EN:margin_left_right") - sw_font_frame:=sw_mol_frame:=1; - margin_left_right:=0mm; - MCd(1,1)(0.5, .9)(<30,CH3,!0,!17,CH3) - margin_left_right:=0.4mm; - MCd(1,1)(0.5, .5)(<30,CH3,!0,!17,CH3) - margin_left_right:=5mm; - MCd(1,1)(0.5, .1)(<30,CH3,!0,!17,CH3) -endfont -%*********************************************************************** -beginfont("EN:margin_top_bottom") - sw_font_frame:=sw_mol_frame:=1; - margin_top_bottom:=0mm; - MCd(1,1)(0.0, .5)(<30,Ph,2:/OH,5:/NH2) - margin_top_bottom:=0.4mm; - MCd(1,1)(0.5, .5)(<30,Ph,2:/OH,5:/NH2) - margin_top_bottom:=5mm; - MCd(1,1)(1.0, .5)(<30,Ph,2:/OH,5:/NH2) + MCd(1,1)(0.92, .5)(<-30,!2,2:/*Me`1) endfont %*********************************************************************** beginfont("EN:Switwch numberingA") + font_ht#:=20mm#; ratio_chain_ring:=1; numberA_start:=3; numberA_end:=8; sw_numberA:=1; MCd(1,1)(.5,.9)(<30,!9) @@ -444,6 +649,7 @@ beginfont("EN:Switwch numberingA") endfont %*********************************************************************** beginfont("EN:Switwch numberingB") + font_ht#:=20mm#; ratio_chain_ring:=1; numberB_start:=3; numberB_end:=8; sw_numberB:=1; MCd(1,1)(.5,.9)(<30,!9) @@ -451,24 +657,45 @@ beginfont("EN:Switwch numberingB") sw_numberB:=3; MCd(1,1)(.5,.1)(<30,!9) endfont %*********************************************************************** +beginfont("EN:Switwch Solid ratio") + font_ht#:=20mm#; + bond_len#:=8mm#; + MCd(1,1)(0,.5)(Ph,4:/Me) + sw_solid:=1; + bond_len#:=6mm#; + MCd(1,1)(1,.5)(Ph,4:/Me) +endfont +%*********************************************************************** +beginfont("EN:Switwch Expand") + font_ht#:=20mm#; + MCd(1,1)(0, .5)(<30,Ph,4:/COOH,3:/NH2) + sw_expand:=1; + MCd(1,1)(1, .5)(<30,Ph,4:/COOH,3:/NH2) +endfont +%*********************************************************************** beginfont("EN:Switwch substituent off") - MCd(1,.5)( 0, .5)(<30,Ph,4:/Cl,3:/F) + font_ht#:=15mm#; + MCd(1,1)(.15, .5)(<30,Ph,4:/Cl,3:/F) sw_subst_off:=1; - MCd(1,.5)( 1, .5)(<30,Ph,4:/Cl,3:/F) + MCd(1,1)(.85, .5)(<30,Ph,4:/Cl,3:/F) endfont %*********************************************************************** beginfont("EN:Switwch bondtype off") - MCd(1,.5)( 0, .5)(<30,Ph,4:/Cl,3:/F) + font_ht#:=15mm#; + MCd(1,1)(.15, .5)(<30,Ph,4:/Cl,3:/F) sw_bond_single:=1; - MCd(1,.5)( 1, .5)(<30,Ph,4:/Cl,3:/F) + MCd(1,1)(.85, .5)(<30,Ph,4:/Cl,3:/F) endfont %*********************************************************************** beginfont("EN:Switwch start vector") + font_ht#:=15mm#; + MCd(1,1)(.1, .5)(<30,Ph,4:/Cl,3:/F) sw_start_vector:=1; - MCf(<30,Ph,4:/Cl,3:/F) + MCd(1,1)(.9, .5)(<30,Ph,4:/Cl,3:/F) endfont %*********************************************************************** beginfont("EN:Switwch font frame") + font_ht#:=15mm#; margin_left_right:=5mm; margin_top_bottom:=2mm; sw_font_frame:=3; @@ -476,71 +703,81 @@ beginfont("EN:Switwch font frame") endfont %*********************************************************************** beginfont("EN:Switwch molecular frame") - MCd(1,.5)( 0, .5)(<30,Ph,4:/Cl,3:/F) + font_ht#:=15mm#; sw_mol_frame:=1; - MCd(1,.5)( 1, .5)(<30,Ph,4:/Cl,3:/F) + MCf(<30,Ph,4:/Cl,3:/F) endfont %*********************************************************************** beginfont("EN:Switwch atom frame") + font_ht#:=15mm#; sw_atom_frame:=1; MCf(<30,Ph,4:/COOH,3:/OH) endfont %*********************************************************************** -beginfont("EN:Switwch Solid ratio") - MCd(1,.7)( 0, .5)(<30,Ph,4:/Cl,3:/F) - sw_solid:=1; - ratio_bond_width:=0.08; - MCd(1,.7)( 1, .5)(<30,Ph,4:/Cl,3:/F) +beginfont("EN:Switwch clipping") + font_ht#:=15mm#; + sw_mol_frame:=1; + MCf(<30,Ph,4:/Cl,3:/F) endfont -%*********************************************************************** -beginfont("EN:Switwch Expand") - MCd(.5,.5)(0, .5)(<30,Ph,4:/COOH,3:/NH2) - sw_expand:=1; - MCd(.6,.6)(1, .5)(<30,Ph,4:/COOH,3:/NH2) +beginfont("EN:Switwch clipping") + font_ht#:=15mm#; + sw_mol_frame:=1; + sw_clip:=1; + MCf(<30,Ph,4:/Cl,3:/F) endfont %*********************************************************************** beginfont("EN:MCd()") + font_ht#:=20mm#; sw_font_frame:=1; sw_mol_frame:=1; - MCd(1,.8)(0.2,0.9)(<30,Ph,2:/OH,5:/NH2) + MCd(1,0.8)(0.1,1)(<30,Ph,4:/Cl,3:/F) sw_mol_frame:=1; - MCd(1,.8)(0.8,0.1)(<30,Ph,2:/OH,5:/NH2) + MCd(1,0.8)(0.9,0)(<30,Ph,4:/Cl,3:/F) endfont %*********************************************************************** beginfont("EN:MCf()") + font_ht#:=20mm#; sw_font_frame:=1; sw_mol_frame:=1; - MCf(<30,Ph,2:/OH,5:/NH2) + MCf(<30,Ph,4:/Cl,3:/F) endfont %*********************************************************************** beginfont("EN:Local setting") - sw_mol_frame:=1; - MCd(1,.4)(0.0,0.5)(Ph) + font_ht#:=15mm#; + MCd(1,1)(0.0,0.5)(Ph) + ratio_thickness_bond:=0.05; + MCd(1,1)(0.5,0.5)(Ph) + ratio_thickness_bond:=0.015; + MCd(1,1)(1.0,0.5)(Ph) endfont -beginfont() MCd(1,.4)(0.5,0.5)(Ph) endfont -beginfont() MCd(1,.4)(1.0,0.5)(Ph) endfont %*********************************************************************** -sw_mol_frame:=1; beginfont("EN:Global setting") - MCd(1,.4)(0.0,0.5)(Ph) endfont -beginfont() MCd(1,.4)(0.5,0.5)(Ph) endfont -beginfont() MCd(1,.4)(1.0,0.5)(Ph) endfont -sw_mol_frame:=0; + font_ht#:=15mm#; + ratio_thickness_bond:=0.05; + MCd(1,1)(0.0,0.5)(Ph) + MCd(1,1)(0.5,0.5)(Ph) + MCd(1,1)(1.0,0.5)(Ph) +endfont %*********************************************************************** +sw_clip:=1; %% Output molecular infomation beginfont() -sw_logout:=sw_info_weight:=sw_info_formula:=1; -MCf(<30,?6,-4=?5,$(3,8)dl,@(2,6,7,9)N,@(2,6,9)/Me,@(1,5)//O) + font_ht#:=15mm#; + sw_logout:=sw_info_weight:=sw_info_formula:=1; + MCf(<30,?6,-4=?5,$(3,8)dl, + @(2,6,7,9)N,@(2,6,9)/Me,@(1,5)//O) endfont %*********************************************************************** %% Output additional infomation beginfont("EN:Tocopherol","CAS:59-02-9","FM:C29H50O2","MW:430.71") -sw_logout:=1; -MCf(<30,Ph,3=?6,7:O,@(1,2,5)/Me,8:/*Me^60,6:/OH,8\,|,!12,@(4,8)/*Me,12:/Me) + font_ht#:=15mm#; + sw_logout:=1; + MCf(<30,Ph,3=?6,7:O,@(1,2,5)/Me,8:/*Me^60,6:/OH,8\,|,!12,@(4,8)/*Me,12:/Me) endfont %*********************************************************************** %% Change infomation separater beginfont("EN:Ampicillin","CAS:69-53-4","FM:C16H19N3O4S","MW:349.40") + font_ht#:=15mm#; MCf(<45, ?4,2:N,2=?5,-1:S, @(3^45,4^-45)/*H,1://O^15,5:/*COOH^-18,@(6^35,6^-35)/Me, @@ -549,21 +786,24 @@ beginfont("EN:Ampicillin","CAS:69-53-4","FM:C16H19N3O4S","MW:349.40") endfont %*********************************************************************** beginfont("EN:Cholesterol","CAS:57-88-5","FM:C27H46O","MW:386.65") + font_ht#:=15mm#; MCf( <30,?6,$(-4,-2)?6,-4=?5,7=dl, 1:*/OH,@(4,12)*/Me^60,9:*/H^60, - 10:/*H^180,@(11,-1)/*H^-60, - -1\^17,/*Me,!4,/Me,!, + 10:/*H^180,11:/*H^-60,17:/*H^-54, + -1\^18,/*Me,-60,!3,/Me,!, ) endfont %*********************************************************************** beginfont("EN:Warfarin","CAS:81-81-2","FM:C19H16O4","MW:308.33") + font_ht#:=25mm#; MCf( <30,Ph,3=?6,8=dl,10:O,7:/OH,9://O,8\,/Ph`1,60,!,//O,! ) endfont %*************************************************************************** beginfont("EN:Limonin") + font_ht#:=30mm#; MCf(<30,?6,$(-3,-4)?6,-5=?3,-2=wf,-1=wb,6=?5,-4=?6,-5=wf, @(13,15,17,20)O,@(3,12,21)//O, @(4~wf^60,8~zf^60,18^35,18^-35)/Me,@(1^60,5^180,16^60)/*H, @@ -571,17 +811,20 @@ beginfont("EN:Limonin") endfont %*************************************************************************** beginfont("EN:Sesamine") + font_ht#:=25mm#; MCf(<54,?5,1=?5,@(4,7)O,@(1^-54,2^54)*/H, #5*\^-12,Ph,|,-3=?5,@(-1,-3)O,#8*\^-12,Ph,|,-3=?5,@(-1,-3)O) endfont %*************************************************************************** beginfont("EN:Colchicine","CAS:477-27-0","FM:C21H23NO6","MW:385.41") + font_ht#:=25mm#; MCf(<30,Ph,@(1,2,6)/OMe,|,-4=?7, |,-5=?7,$(-1,-4,-6)dl,-2://O,-3:/OH, #9\,NH,!,//O,!) endfont %*************************************************************************** beginfont("EN:Lycorine","CAS:476-28-8","FM:C16H17NO4","MW:287.31") + font_ht#:=25mm#; MCf(<30, Ph,-4=?6,-2=?6,6=?5,(9,12)=?5[3],13=dl,8:N,@(15,17)O, 9:/*H^180,10:*/H^60,13:*/OH,14:/*OH @@ -589,22 +832,37 @@ beginfont("EN:Lycorine","CAS:476-28-8","FM:C16H17NO4","MW:287.31") endfont %*********************************************************************** beginfont("EN:Gibberellin A3","CAS:77-06-5","FM:C19H22O6","MW:346.37"); + font_ht#:=20mm#; MCf(<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://Me,13:*/OH,8:/*OH,14:*/Me,@(1^60,4^60)*/H) endfont %*************************************************************************** beginfont("EN:Quinine","CAS:130-95-0","FM:C20H24N2O2","MW:324.42") + font_ht#:=25mm#; MCf(<30,Ph,3=Ph,7:N,6:/OMe, 10\,*/OH,/H~zf^-60,!,|,?6,2:N,1:*/H^60,4*\,!~dr,2*,165~zf,60,&5~zb) endfont %*************************************************************************** beginfont("EN:Atoropin","CAS:51-55-8","FM:C17H23NO3","MW:289.37") + font_ht#:=25mm#; MCf(<-30,O,!,//O,!,!,Ph, #1\~zb^-120,|,?7,6*\^190`1.12,N,/Me,&3~wb,#3\~wv,!,OH) endfont %*************************************************************************** +beginfont("EN:Rotenone"); + font_ht#:=30mm#; + MCf(<-60,?5,$(-3,-2,-3,-4)?6,$(7,9,-2,-4)dl,$(3,17)dr, + @(2,13,16)O,10://O,@(11^-60,12^60)*/H,@(-2,-3)/OMe,1*\,/Me,!~dl) +endfont; +%*************************************************************************** +beginfont("EN:Pyrethrin I"); + MCf(<30,?3,@(3^35~wf,3^-35~zf)/Me,1*\,!~dl,iPr, + 2\*,//O,!,O,-36~zb,|,?5,-2=d,-1:/Me,-3://O,-2\,!4,$(-1,-3)dl) +endfont; +%*************************************************************************** beginfont("EN:Validamycin") + font_ht#:=20mm#; MCf(<30,?6,@(5,6)/OH,3\,-60,OH, #4\,O,-60,|,?6,2:O,@(3,4,5,6)/OH, #1\,NH,!,|,?6,2=d,@(4,5,6)/OH,-4\,!,OH) diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf index e6e758e1d5d..5ee5007340c 100644 Binary files a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf and b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf differ diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex index 7a2bf1d9fc7..265c66c9d8a 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex @@ -1,11 +1,14 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format manual by Akira Yamaji 2016.08.21 +% Molecular Coding Format manual by Akira Yamaji 2016.10.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[a4paper]{article} -\usepackage{graphicx} -%%%%\usepackage[dvipdfmx]{graphicx} +%%%%\usepackage{graphicx} +\usepackage[dvipdfm]{graphicx} %%%%\usepackage[pdftex]{graphicx} %%%%\usepackage{epstopdf} +\usepackage[dvipdfmx]{hyperref} +%%%%\usepackage[pdftex]{hyperref} +\hypersetup{colorlinks=true,linkcolor=blue} \topmargin=-18mm \textheight=254mm \textwidth=168mm @@ -16,23 +19,17 @@ \newcount \fontnum% \newcount \tempnum% \newdimen \htman% -\newdimen \gpman% -\htman=47mm% -\gpman=4mm% -\fontnum=0% +\newdimen \wdman% +\newdimen \htmans% +\htman=45mm% +\wdman=94mm% +\htmans=42mm% +\fontnum=20% \tempnum=1% %---------------------------------------------------------------------------- \font\@strufont=mcf_man_soc\relax% %---------------------------------------------------------------------------- -\def\MCFtitle#1{\framebox{\sf No.\the\tempnum}\hspace{2mm}\bf #1} -%---------------------------------------------------------------------------- -\def\MCFstru{% - \rlap{\makebox(72,4)[t]{\makebox(68,48){\@strufont\char\fontnum}}}% - \advance\fontnum\@ne\relax}% -\def\MCFstructure{% - \makebox(72,4)[t]{\frame{\ - \makebox(68,48){\@strufont\char\fontnum}}}% - \advance\fontnum\@ne\relax\advance\tempnum\@ne\relax}% +\def\MCFstructure{\hspace{5mm}{\@strufont\char\fontnum}\advance\fontnum\@ne\relax}% %-------------------------------------------------------------------- \def\@F{F}\def\@C{C}\def\@EN{EN}\def\@NO{NO}\def\@cMW{cMW}\def\@cFM{cFM}% \def\@fst#1:#2;{#1}\def\@sec#1:#2;{#2}% @@ -48,1164 +45,763 @@ \ifx\@tag\@cFM\edef\CALfm{\@var}\fi \fi}% \def\put@char{% - \begin{picture}(84,50)% - \put(0,45){\bf [\MOLnum]\MOLnameE}% - \put(5,40){\small\tt FM:\CALfm{ }MW:\CALmw}% - \put(10,0){\font\@strufont=\MOLfile\relax% + \begin{picture}(84,30)% + \put(0,25){\bf [\MOLnum]\MOLnameE}% + \put(5,20){\small\tt FM:\CALfm{ }MW:\CALmw}% + \put(5,0){\font\@strufont=\MOLfile\relax% \hbox{\@strufont\char\MOLchar}}% \end{picture}% } %---------------------------------------------------------------------------- \def\INFO#1{\@for\@temp:=#1\do{\mol@sel\@temp}\put@char}% %---------------------------------------------------------------------------- +\def\figex#1#2#3#4{% +\makebox[5mm]{}%% +\makebox[#1]{\tt #2}% +\makebox[#1]{\tt #3}% +\makebox[#1]{\tt #4}}% +%---------------------------------------------------------------------------- \begin{document} -\begin{center} - {\LARGE\bf Molecular Coding Format manual}\vspace{3mm}\\ - Author : Akira Yamaji \quad Date : \today\\ - Located at : http://www.ctan.org/pkg/mcf2graph\vspace{3mm}\\ -\begin{minipage}{148mm} -\quad Molecular Coding Format(MCF) is new linear notation represent chemical - structure diagrams. This 'Coding' is named from coding(programing) technique - like adressing,grouping,macro,etc. There are no Meta language commands in MCF. - mcf2graph.mf(metapost/metafont macro) convert MCF file to graphics file - pk font,PNG,SVG,EPS or MDL MOL file(V2000). \\ -\end{minipage}\\ -\end{center} +\title{\Huge\sf Molecular Coding Format manual} +\author{Akira Yamaji} +\date{\today} +\maketitle +\begin{center} Located at http://www.ctan.org/pkg/mcf2graph \end{center} +%----------------------------------------------------------------------------- +\vspace{10mm} +{\@strufont% +\makebox[10mm]{}\char0\raisebox{10mm}{\char1}\char2\raisebox{10mm}{\char3}\\ +\makebox[10mm]{}\char4\raisebox{10mm}{\char5}\char6\raisebox{10mm}{\char7}\\ +\makebox[10mm]{}\char8\raisebox{10mm}{\char9}\char10\raisebox{10mm}{\char11}\\ +\makebox[10mm]{}\char12\raisebox{10mm}{\char13}\char14\raisebox{10mm}{\char15}\\ +\makebox[10mm]{}\char16\raisebox{10mm}{\char17}\char18\raisebox{10mm}{\char19}\\} +%----------------------------------------------------------------------------- +\twocolumn +\tableofcontents +%----------------------------------------------------------------------------- \linethickness{0.08mm}% -\noindent% %---------------------------------------------------------------------------- -{\bf (Molecular definition file)} -\begin{verbatim} -%------------------------------------------------------------------------- -input mcf2graph.mf; % input macro -%------------------------------------------------------------------------- -sw_auxout:=1; % aux(information) file output on > Gloval setting -sw_numberA:=0; % numbering atom off > -sw_numberB:=0; % numbering bond off > -sw_expand:=0; % substituent expand mode off > -sw_start_vector:=0; % start vector output off > -sw_font_frame:=0; % font frame off > -font_wd#:=60mm#; % font width > -font_ht#:=40mm#; % font height > -var3:="cal_MW"; tag3:="cMW"; > AUX file table -var4:="cal_FM"; tag4:="cFM"; > -outputformat:="png"; hppp:=vppp:=0.1; > PNG output -outputtemplate:="%j-%3c.png"; > -%------------------------------------------------------------------------- -beginfont("NO:1","EN:Ampicillin") > begin font(information) - MCf(<45,?4,2:N,2=?5,-1:S, > begin MCF (1) - @(3^45,4^-45)/*H,1://O^15,5:/*COOH^-18, > - @(6^35,6^-35)/Me, > - 4\^75,NH,!,//O,!,/*NH,!,Ph) > end MCF -endfont > end font -%------------------------------------------------------------------------ -beginfont("NO:2","EN:Cholesterol") > begin font(information) - MCf(<30,?6,$(-4,-2)?6,-4=?5,7=dl, > begin MCF (2) - 1:*/OH,@(4,12)*/Me^60,9:*/H^60, > - 10:/*H^180,@(11,-1)/*H^-60, > - -1\^17,/*Me,!4,/Me,!) > end MCF -endfont > end font -%------------------------------------------------------------------------ -bye - -\end{verbatim} -%------------------------------------------------------------------------ -{\bf (Molecular structure output)}\vspace{5mm}\\ -\INFO{F:mcf_man_soc,C:90,NO:1,cMW:349.40462,cFM:C16H19N3O4S,EN:Ampicillin}% -\INFO{F:mcf_man_soc,C:91,NO:2,cMW:386.6532,cFM:C27H46O,EN:Cholesterol}% \newpage -%------------------------------------------------------------------------ -\noindent% -{\bf (Molecular information output)}\vspace{2mm}\\ -'filename'-info.aux : for use in \TeX, it takes over filename, -char number, molecular information,etc. -\begin{verbatim} -(sw_auxfix=0) -F:mcf_man_soc;C:90;cMW:349.40462;cFM:C16H19N3O4S;EN:Ampicillin -F:mcf_man_soc;C:91;cMW:386.6532;cFM:C27H46O;EN:Cholesterol - ..................................................... - ..................................................... - -(sw_auxfix=1) -F;C;cMW;cFM;EN -mcf_man_soc;90;349.40462;C16H19N3O4S;Ampicillin -mcf_man_soc;91;386.6532;C27H46O;Cholesterol - ...................................... - ...................................... - -( tag : variable ) -F : filename C : char number NO : serial number EN : english name -cMW : molecular weight calculated cFM : molecular formula calculated -MW : molecular weight from literature data - -\end{verbatim} -%---------------------------------------------------------------------------- -{\bf (LaTeX file example)} -%############################################################################ -\begin{verbatim} -%---------------------------------------------------------------------------- -\documentclass[a4paper]{article} -\usepackage{graphicx} -\pagestyle{empty} -\makeatletter% -%-------------------------------------------------------------------- -\def\@F{F}\def\@C{C}\def\@EN{EN}\def\@NO{NO}\def\@MW{MW}\def\@FMc{FMc}% -\def\@fst@param#1:#2;{#1}\def\@sec@param#1:#2;{#2}% -\def\mol@sel#1{% -\if#1\empty\relax\else% - \edef\@tag{\expandafter\@fst@param#1;}% - \edef\@var{\expandafter\@sec@param#1;}% - \ifx\@tag\@F\edef\MOLfile{\@var}\fi% - \ifx\@tag\@C\edef\MOLchar{\@var}\fi% - \ifx\@tag\@EN\edef\MOLnameE{\@var}\fi% - \ifx\@tag\@NO\edef\MOLnum{\@var}\fi - \ifx\@tag\@MW\edef\CALmw{\@var}\fi - \ifx\@tag\@FMc\edef\CALfm{\@var}\fi -\fi}% -\def\put@char{% - \begin{picture}(84,42)% - \put(0,38){\bf [\MOLnum]\MOLnameE{ }\small\tt/FM:\CALfm/MW:\CALmw}% - \put(10,0){\font\@strufont=\MOLfile\relax% - \hbox{\@strufont\char\MOLchar}}% - \end{picture}% -\def\INFO#1{\@for\@temp:=#1\do{\mol@sel\@temp}\put@char}% -\makeatother -%-------------------------------------------------------------------- -\begin{document} -\unitlength=1mm% -\INFO{F:mcf_man_soc,C:90,NO:1,cMW:349.40462,cFM:C16H19N3O4S,EN:Ampicillin}% -\INFO{F:mcf_man_soc,C:91,NO:2,cMW:386.6532,cFM:C27H46O,EN:Cholesterol}% -\end{document} -%-------------------------------------------------------------------- -\end{verbatim}\vspace{5mm}% -%############################################################################ -%---------------------------------------------------------------------------- -\noindent +\section{Introduction} +Molecular Coding Format(MCF) is new linear notation + represent chemical structure diagrams. +This 'Coding' is named from coding(programing) technique +like adressing,grouping,macro,etc. +There are no Meta language commands in MCF. +mcf2graph.m convert MCF file to graphics file +pk font,PNG,SVG,EPS or MDL MOL file(V2000).\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Chain(1)} +\section{MCF syntax} +\subsection{Make bond} +\subsubsection{Chain} \begin{verbatim} -real number plus (+): anticlockwize -real number minus(-): clockwize - -<30,-60,60,-90,120,-90,60 + real number plus (+): anticlockwize + real number minus(-): clockwize + <30,-60,60,-90,120,-90,60 \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Chain(2)} \begin{verbatim} -! : take value 60 or -60 depend on + ! : take value 60 or -60 depend on current angle and enviroment -!6 : !,!,!,!,!,! + !6 : !,!,!,!,!,! <30,!,!,!,!,!,! <30,!6 - \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Jump to atom and branch bond} +\subsubsection{Jump and branch bond} \begin{verbatim} -n* : Jump to An - + n* : Jump to An + ** An: atom number(-999<=n<=4095) + <30,!6,3*,0,!,5*,-30 +\end{verbatim} +\MCFstructure +%------------------------------------ +\begin{verbatim} + 3\ : 3*,0 -** An(-999<=n<=4095): atom number + <30,!6,3\,! \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Jump to atom and branch bond} +\subsubsection{Branch bond} \begin{verbatim} -3\ : 3*,0 + 2\ : 2*,0 + 4*\ : 4*,0~wf + 6\* : 6*,0~zf + 8\\ : 8*,0~dm - <30,!6,3\,! + <30,!8,2\,!,4*\,!,6\*,!,8\\,! +\end{verbatim} +\MCFstructure +%----------------------------------------------------------------------------- +\begin{verbatim} + 2\~dr : 2*,0~dr + 4\`1.5 : 4*,0`1.5 + 6\^15 : 6*,0^15 + <-30,!6, + 2\~dr,!, + 4\`1.5,!, + 6\^15,-60 \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Connect atom} +\subsubsection{Connect atom} \begin{verbatim} -&n : Connect to An + &n : Connect to An <30,!6,3\,!,&5 - \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Ring} +\subsubsection{Ring} \begin{verbatim} -?n : n membered ring - - ?6 - - ** ?6 : <-120,60,60,60,60,60,&1 - ** ?n(3<=n<=20) - ** bold arrow is default angle and position + ?n : n membered ring(3<=n<=20) + ?6 : <-120,60,60,60,60,60,&1 + ?6 \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Rotate current angle} +\subsubsection{Rotate current angle} \begin{verbatim} - : change enviroment -** Me:methyl Et:ethyl - Pr:propyl iPr:isopropyl - tBu:tertial buthyl Ph:phenyl + <30,``1,!,/Me~zf`2^30,!,/Me~zf`2^30, + !2,*/Pr>lr,!2,*/Pr>rl,!) \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Insert substituent(2)} +\subsubsection{Add substituent} \begin{verbatim} -/ : single -// : double -*/ : wedge forward -/* : wedge dotted forward -** : direct - -MCf(<30,!,//O,!,/*H,!,*/H,!,/?3,!,**?3,!) + <-30,!17,2:/Me,4:/Et,6:/Pr, + 10:/iPr,14:/tBu,16:/Ph^-30 \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Insert substituent(3)} +\subsubsection{Add modified substituent} \begin{verbatim} -~ : change type -^ : change angle -` : change length -> : change enviroment + ~,^,` : change type,angle,length -MCf(<30,``1, - !,/Me~zf`2^30,!,/Me~zf`2^30, - !2,*/Pr>lr,!2,*/Pr>rl,!) -\end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ -%----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Add substituent(1)} -\begin{verbatim} -sw_numberA:=1; numberA_end:=12; -MCf(<30,!11, - 2:/Me,3:/Et,6:/Pr,7:/iPr, - 10:/tBu,11:/Ph^-30) + <-30,!6,@(2~wf,4~zf,6^-30)/H \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Add substituent(2)} \begin{verbatim} -~,^,` : change type,angle,length - of substituent + ^,`,> : change angle,length,environment -MCf(<30,?6, - @(3`2^30,3~wf,4~zf,6~wf^-30,6~zf^30)/H) + <30,!7`1,@(3)/*Me`2^30,5:*/Pr>lr,7:*/Pr>rl \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Add substituent(3)} +\subsection{Chain environment} +\subsubsection{Horizontal,vertical} \begin{verbatim} -~,^,`,> : change type,angle,length, - environment of substituent + >hz : horizontal enviroment (default) + >vt : vertical enviroment -MCF(<30,!7`1, -@(2,3)/*Me`2^30,5:*/Pr>lr,7:*/Pr>rl) + ?4,@(3^-90,3^-30,3^90)/'(!3,"{hz}")>hz, + @(1^-60,1`2,1^60)/'(!2,"{vt}")>vt \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Chain strech direction environment (1)} +\subsubsection{Left-right,right-left} \begin{verbatim} ->hz : horizontal enviroment (default) ->vt : vertical enviroment - - ?4, - @(3^-90,3^-30,3^90)/'(!3,"{hz}")>hz, - @(1^-60,1`2,1^60)/'(!2,"{vt}")>vt - -\end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ -%----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Chain strech direction environment (2)} -\begin{verbatim} ->lr : left-right enviroment ->rl : right-left enviroment + >lr : left-right enviroment + >rl : right-left enviroment <30,!6, @(3^-30,3,3^30)/'(!3,"{lr}")>lr, @(5^-30,5,5^30)/'(!3,"{rl}")>rl - \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Chain strech direction environment (3)} +\subsubsection{Fixed angle,multi angle} \begin{verbatim} - >45 : fixed angle enviroment - >'(-90,90,-90) : multi angle enviroment + >45 : fixed angle enviroment + >'(-90,90,-90) : multi angle enviroment <-30,!6,@(2>45)/'(!3,"{45}"), @(6>'(-90,90,-90))/'(!3,"{(-90,90,-90)}") \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Change atom and Substituent} +\subsection{Miscellaneous} +%----------------------------------------------------------------------------- +\subsubsection{Change atom and Substituent} \begin{verbatim} -NH,SO,SOO : inset hetero atom and substituent - simultaneously + NH,SO,SOO : + inset hetero atom and substituent + simultaneously <30,!2,NH,!,SO,!,SOO,!3 - \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Change color} +\subsubsection{Change color} \begin{verbatim} -@(5)green : change color of A5 green -$(3)red : change color of B3 red + @(5)green : change color of A5 green + $(3)red : change color of B3 red - <30,Ph,@(2,5)N, - 2:red,5:blue,3=green + <30,Ph,@(2,5)N,2:red,5:blue,3=green -** METAFONT ignore color command + ** METAFONT ignore color command \end{verbatim} -\end{minipage} %%%%\MCFstructure % for Metafont -\makebox(72,3.5)[t]{\frame{\makebox(68,42.3)% -{\includegraphics{mcf_man_soc-042.eps}}}}% for dvipdfmx -%%%%{\includegraphics[width=30mm]{mcf_man_soc-042.png}}}}% for pdfLaTeX +\includegraphics{mcf_man_soc-060.eps}% for dvipdfmx \advance\fontnum\@ne\relax\advance\tempnum\@ne\relax% -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Chain start multiple characters} +\subsubsection{Make block} +\begin{verbatim} + { : start brock + } : end brock + + <30,!2,{,``1.2,!2,},!2 +\end{verbatim} +\MCFstructure +%----------------------------------------------------------------------------- +\subsubsection{Chain start multiple characters} \begin{verbatim} -if chain start multi charactor string, -use !0 instead of ! + if chain start multi charactor string, + use !0 instead of ! MCd( 1,1)(0 ,0.9)(<30,COOH,!0,!3,COOH) MCd(.8,1)(0.3,0.1)(<30,COOH,!4,COOH) \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{User definition} +\subsubsection{User definition} \begin{verbatim} -iBuOH : user defined substructure + iBuOH : user defined substructure iBuOH:='(!,/Me,!,OH) MCf(<30,?6,@(4,6)/iBuOH) - \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Inline definition} +\subsubsection{Inline definition} \begin{verbatim} -Insert user defined substructure + Insert user defined substructure <30,!3,/'(!,/Me,!,OH),!3 - \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ -%----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Font size} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage +\section{Option parameter} +%------------------------------------------------------------------------------ +\subsection{Size parameter} +\subsubsection{Font size} \begin{verbatim} beginfont("EN:Caffeine") font_wd#:=30mm#; %<==font width font_ht#:=20mm#; %<==font height - sw_font_frame:=1; MCf(<30,?6,-4=?5,$(3,8)dl,@(2,6,7,9)N, - @(2,6,9)/Me,@(1,5)//O) - endfont + @(2,6,9)/Me,@(1,5)//O) endfont \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Max ratio bond/width length} +\subsubsection{Margin left and right} \begin{verbatim} - max_bond_width:=0.10; - MCd(1,1)( 0, .5)(<30,Ph) - max_bond_width:=0.15; - MCd(1,1)(.33,.5)(<30,Ph) - max_bond_width:=0.25; - MCd(1,1)( 1, .5)(<30,Ph) - -** default: max_bond_width=0.15 + default: margin_left_right=0.4mm \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ +\begin{picture}(12,20) +\put(1,14){\makebox(10,6)[r]{\tt 0mm}} +\put(1, 7){\makebox(10,6)[r]{\tt 0.4mm}} +\put(1, 0){\makebox(10,6)[r]{\tt 5mm}} +\end{picture} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Ratio thickness/bond length} +\subsubsection{Margin top and bottom} \begin{verbatim} -ratio_thickness_bond:= 0.005; -MCd(1,.6)(0, .5)(<30,Ph) -ratio_thickness_bond:= 0.015; -MCd(1,.6)(.5,.5)(<30,Ph) -ratio_thickness_bond:= 0.030; -MCd(1,.6)(1, .5)(<30,Ph) - -** default: ratio_thickness_bond=0.015 + default: margin_top_bottom=0.4mm \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0mm}{0.4mm}{5mm} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Offset thickness of bond} +\subsubsection{Offset thickness of bond} \begin{verbatim} -beginfont() offset_thickness#:=0pt#; -MCd(1,.3)(0, .5)(<30,Ph) endfont -beginfont() offset_thickness#:=0.2pt#; -MCd(1,.3)(.5,.5)(<30,Ph) endfont -beginfont() offset_thickness#:=0.5pt#; -MCd(1,.3)(1, .5)(<30,Ph) endfont - -** default: offset_thickness#=0.2pt# + default: offset_thickness#=0.2pt# \end{verbatim} -\end{minipage} -\MCFstru\MCFstru\MCFstructure% -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0pt}{0.2pt}{0.5pt} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Ratio char/bond thickness} +\subsubsection{Offset of doublebond gap} \begin{verbatim} -ratio_char_bond:=1.0; -MCd(1,.6)(0, .5)(<30,?6,5:O,2:NH) -ratio_char_bond:=1.5; -MCd(1,.6)(.5,.5)(<30,?6,5:O,2:NH) -ratio_char_bond:=2.0; -MCd(1,.6)(1, .5)(<30,?6,5:O,2:NH) - -** default: ratio_char_bond=1.5 + default: offset_bond_gap#=0.3pt# \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.0pt}{0.3pt}{1.0pt} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Ratio bondgap/bond length} +\subsubsection{Offset of atom width} \begin{verbatim} -ratio_bondgap_bond:= 0.10; -MCd(1,.6)(0, .5)(<30,Ph) -ratio_bondgap_bond:= 0.15; -MCd(1,.6)(.5,.5)(<30,Ph) -ratio_bondgap_bond:= 0.20; -MCd(1,.6)(1, .5)(<30,Ph) - -** default: ratio_bondgap_bond=0.15 + default: offset_atom#=0.8pt# \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.0pt}{0.8pt}{2.0pt} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Offset of doublebond gap} +\subsubsection{Offset of wedge width} \begin{verbatim} -beginfont() offset_bond_gap#:=0.0pt#; -MCd(1,.3)(0, .5)(<30,Ph) endfont -beginfont() offset_bond_gap#:=0.3pt#; -MCd(1,.3)(.5,.5)(<30,Ph) endfont -beginfont() offset_bond_gap#:=1.0pt#; -MCd(1,.3)(1, .5)(<30,Ph) endfont - -** default: offset_bond_gap#=0.3pt# + default: offset_wedge#=0.4pt# \end{verbatim} -\end{minipage} -\MCFstru\MCFstru\MCFstructure% -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.0pt}{0.4pt}{1.0pt} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Ratio atom/bond length} +\subsubsection{Max bond length} \begin{verbatim} -ratio_atom_bond:= 0.25; -MCd(1,.6)(0, .5)(<30,?6,@(2,5)O) -ratio_atom_bond:= 0.36; -MCd(1,.6)(.5,.5)(<30,?6,@(2,5)O) -ratio_atom_bond:= 0.45; -MCd(1,.6)(1, .5)(<30,?6,@(2,5)O) - -** default: ratio_atom_bond=0.36 + default: max_bond_length#=10mm# \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{18mm}{6mm}{8mm}{20mm} +%----------------------------------------------------------------------------- +\subsection{Ratio parameter} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Offset of atom width} +\subsubsection{Thickness/bond length} \begin{verbatim} -beginfont() offset_atom#:=0.0pt#; -MCd(1,.3)(0, .5)(<30,Ph,@(2,4,6)N) endfont -beginfont() offset_atom#:=0.8pt#; -MCd(1,.3)(.5,.5)(<30,Ph,@(2,4,6)N) endfont -beginfont() offset_atom#:=2.0pt#; -MCd(1,.3)(1, .5)(<30,Ph,@(2,4,6)N) endfont - -** default: offset_atom#=0.8pt# + default: ratio_thickness_bond=0.015 \end{verbatim} -\end{minipage} -\MCFstru\MCFstru\MCFstructure% -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.005}{0.015}{0.030} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Ratio wedge/bond length} +\subsubsection{Char/bond thickness} \begin{verbatim} -ratio_wedge_bond:=0.10; -MCd(1,.6)(0, .5)(<30,?6,5:*/Me) -ratio_wedge_bond:=0.12; -MCd(1,.6)(.5,.5)(<30,?6,5:*/Me) -ratio_wedge_bond:=0.20;; -MCd(1,.6)(1, .5)(<30,?6,5:*/Me) - -** default: ratio_wedge_bond=0.12 + default: ratio_char_bond=1.5 \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{1.0}{1.5}{2.0} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Offset of wedge width} +\subsubsection{Bondgap/bond length} \begin{verbatim} -beginfont() offset_wedge#:=0.0pt#; -MCd(1,.3)(0, .5)(<30,?6,5:*/Me) endfont -beginfont() offset_wedge#:=0.4pt#; -MCd(1,.3)(.5,.5)(<30,?6,5:*/Me) endfont -beginfont() offset_wedge#:=1.0pt#; -MCd(1,.3)(1, .5)(<30,?6,5:*/Me) endfont - -** default: offset_wedge#=0.4pt# + default: ratio_bondgap_bond= 0.15 \end{verbatim} -\end{minipage} -\MCFstru\MCFstru\MCFstructure% -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.10}{0.15}{0.20} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Ratio font atom gap/atom length} +\subsubsection{Atom/bond length} \begin{verbatim} -ratio_atomgap_atom:=0.0; -MCd(1,.6)(0, .5)(<30,?6,@(2,5)O) -ratio_atomgap_atom:=0.050; -MCd(1,.6)(.5,.5)(<30,?6,@(2,5)O) -ratio_atomgap_atom:=0.12; -MCd(1,.6)(1, .5)(<30,?6,@(2,5)O) - -** default: ratio_atomgap_atom=0.050 + default: ratio_atom_bond= 0.36 \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.25}{0.36}{0.46} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Ratio chain/ring length} +\subsubsection{Wedge/bond length} \begin{verbatim} -ratio_chain_ring:= 0.4; -MCd(1,.6)(0, .5)(<30,?6,5:/Et) -ratio_chain_ring:= 0.66; -MCd(1,.6)(.5,.5)(<30,?6,5:/Et) -ratio_chain_ring:= 1.0; -MCd(1,.6)(1, .5)(<30,?6,5:/Et) - -** default: ratio_chain_ring=0.66 + default: ratio_wedge_bond=0.12 \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.10}{0.12}{0.20} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Ratio zebra gap/bond length} +\subsubsection{Font atom gap/atom length} \begin{verbatim} -ratio_zebragap_bond:=0.06; -MCd(1,.6)(0, .5)(<30,Ph,5:/*Me`1) -ratio_zebragap_bond:=0.12; -MCd(1,.6)(.5,.5)(<30,Ph,5:/*Me`1) -ratio_zebragap_bond:=0.20; -MCd(1,.6)(1, .5)(<30,Ph,5:/*Me`1) - -** default: ratio_zebragap_bond=0.12 + default: ratio_atomgap_atom= 0.050 \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.0}{0.050}{0.12} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Margin left and right} +\subsubsection{Chain/ring length} \begin{verbatim} -margin_left_right:=0mm; -MCd(1,1)(0.5,0.9)(<30,CH3,!0,!17,CH3) -margin_left_right:=0.4mm; -MCd(1,1)(0.5,0.5)(<30,CH3,!0,!17,CH3) -margin_left_right:=5mm; -MCd(1,1)(0.5,0.1)(<30,CH3,!0,!17,CH3) - -** default: margin_left_right=0.4mm + default: ratio_chain_ring= 0.66 \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.4}{0.65}{1.0} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Margin top and bottom} +\subsubsection{Zebra gap/bond length} \begin{verbatim} -margin_top_bottom:=0mm; -MCd(1,1)(0.1,0.5)(<30,Ph,2:/OH,5:/NH2) -margin_top_bottom:=0.4mm; -MCd(1,1)(0.5,0.5)(<30,Ph,2:/OH,5:/NH2) -margin_top_bottom:=5mm; -MCd(1,1)(0.9,0.5)(<30,Ph,2:/OH,5:/NH2) - -** default: margin_top_bottom=0.4mm + default: ratio_zebragap_bond=0.12 \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\figex{20mm}{0.06}{0.12}{0.20} +%----------------------------------------------------------------------------- +\subsection{Drawing mode} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch numbering atom} +\subsubsection{Numbering atom} \begin{verbatim} numberA_start:=3; numberA_end:=8; - - sw_numberA:=1; MCd(1,1)(.5,.9)(<30,!9) - sw_numberA:=2; MCd(1,1)(.5,.5)(<30,!9) - sw_numberA:=3; MCd(1,1)(.5,.1)(<30,!9) - - ** default: numberA_start=1 numberA_end=4095 + default: sw_numberA=0 : + numberA_start=1 numberA_end=4095 \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ +\begin{picture}(5,20) +\put(0,14){\makebox[5mm]{\tt 1}} +\put(0, 8){\makebox[5mm]{\tt 2}} +\put(0, 2){\makebox[5mm]{\tt 3}} +\end{picture} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch numbering bond} +\subsubsection{Numbering bond} \begin{verbatim} numberB_start:=3; numberB_end:=8; - - sw_numberB:=1; MCd(1,1)(.5,.9)(<30,!9) - sw_numberB:=2; MCd(1,1)(.5,.5)(<30,!9) - sw_numberB:=3; MCd(1,1)(.5,.1)(<30,!9) - - ** default: numberB_start=1 numberB_end=4095 + default: sw_numberB=0 : + numberB_start=1 numberB_end=4095 \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ +\begin{picture}(5,20) +\put(0,14){\makebox[5mm]{\tt 1}} +\put(0, 8){\makebox[5mm]{\tt 2}} +\put(0, 2){\makebox[5mm]{\tt 3}} +\end{picture} +%----------------------------------------------------------------------------- +\subsubsection{Solid mode} +\begin{verbatim} + MCd(1,1)(0,.5)(Ph,4:/Me) + sw_solid:=1; + bond_len#:=6mm#; + MCd(1,1)(1,.5)(Ph,4:/Me) +\end{verbatim} +\MCFstructure\\ +\makebox[5mm]{}% +\makebox[30mm]{\tt 0 :default}% +\makebox[30mm]{\tt 1}% %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch substituent off} +\subsubsection{Expand mode} +\begin{verbatim} + MCd(1,.5)(0,0.5)(<30,Ph,4:/COOH,3:/NH2) + sw_expand:=1; + MCd(1,.5)(1,0.5)(<30,Ph,4:/COOH,3:/NH2) +\end{verbatim} +\MCFstructure\\ +\makebox[5mm]{}% +\makebox[30mm]{\tt 0 :default}% +\makebox[30mm]{\tt 1}% +%----------------------------------------------------------------------------- +\subsubsection{Substituent off mode} \begin{verbatim} MCd(1,.5)( 0,0.5)(<30,Ph,4:/Cl,3:/F) - sw_subst_off:=1; MCd(1,.5)( 1,0.5)(<30,Ph,4:/Cl,3:/F) - - ** default: sw_subst_off=0 \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\makebox[5mm]{}% +\makebox[30mm]{\tt 0 :default}% +\makebox[30mm]{\tt 1}% %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch all bond single} +\subsubsection{Single bond mode} \begin{verbatim} MCd(1,.5)( 0,0.5)(<30,Ph,4:/Cl,3:/F) - sw_bond_single:=1; MCd(1,.5)( 1,0.5)(<30,Ph,4:/Cl,3:/F) - - ** default: sw_bond_single=0 \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\makebox[5mm]{}% +\makebox[30mm]{\tt 0 :default}% +\makebox[30mm]{\tt 1}% +%----------------------------------------------------------------------------- +\subsection{Frame,vector} %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch start vector} +\subsubsection{Start vector} \begin{verbatim} + MCf(<30,Ph,4:/Cl,3:/F) sw_start_vector:=1; MCf(<30,Ph,4:/Cl,3:/F) - - ** default: sw_start_vector=0 \end{verbatim} -\end{minipage} -\MCFstructure -\vspace{\gpman}\\ +\MCFstructure\\ +\makebox[5mm]{}% +\makebox[30mm]{\tt 0 :default}% +\makebox[30mm]{\tt 1}% %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch font frame} +\subsubsection{Font frame} \begin{verbatim} -sw_font_frame=0 : no frame **default -sw_font_frame=1 : draw frame of font -sw_font_frame=2 : draw frame inside margin -sw_font_frame=3 : draw both + sw_font_frame=0 : no frame **default + sw_font_frame=1 : draw frame of font + sw_font_frame=2 : draw frame inside margin + sw_font_frame=3 : draw both -sw_font_frame:=3; -margin_left_right:=5mm; margin_top_bottom:=2mm; -MCf(<30,Ph,4:/Cl,3:/F) + sw_font_frame:=3; + margin_left_right:=5mm; + margin_top_bottom:=2mm; + MCf(<30,Ph,4:/Cl,3:/F) \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch molecular frame} +\subsubsection{Molecular frame} \begin{verbatim} - MCd(1,.5)(0,0.5)(<30,Ph,4:/Cl,3:/F) - sw_mol_frame:=1; MCd(1,.5)(1,0.5)(<30,Ph,4:/Cl,3:/F) - - ** default: sw_mol_frame=0 + ** default: sw_mol_frame=0 \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch atom frame} +\subsubsection{Atom frame} \begin{verbatim} - sw_atom_frame:=1; MCf(<30,Ph,4:/COOH,3:/OH) - - ** default: sw_atom_frame=0 + ** default: sw_atom_frame=0 \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch solid mode} +\subsection{Clipping font} \begin{verbatim} - MCd(1,.8)( 0,0.5)(<30,Ph,4:/Cl,3:/F) - - sw_solid:=1; - ratio_bond_width:=0.08; - MCd(1,.8)( 1,0.5)(<30,Ph,4:/Cl,3:/F) - - ** default: sw_solid=0 + beginfont() + sw_clip:=0; + MCf(<30,Ph,4:/Cl,3:/F) endfont + ** default: sw_clip=0 \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ -%----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Switch Expand} \begin{verbatim} - MCd(1,.5)(0,0.5)(<30,Ph,4:/COOH,3:/NH2) - - sw_expand:=1; - MCd(1,.5)(1,0.5)(<30,Ph,4:/COOH,3:/NH2) - - ** default: sw_expand=0 + beginfont() + sw_clip:=1; + MCf(<30,Ph,4:/Cl,3:/F) endfont \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ -%----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Function MCd (draw)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage +\section{MCF draw function} +\subsection{Function MCd (draw)} \begin{verbatim} MCd(a,b)(c,d)(...) a: ratio molecular width/font width @@ -1213,72 +809,57 @@ MCf(<30,Ph,4:/Cl,3:/F) c: x axis position d: y axis position - MCd(1,0.8)(0.2,0.9)(<30,Ph,2:/OH,5:/NH2) - MCd(1,0.8)(0.8,0.1)(<30,Ph,2:/OH,5:/NH2) + MCd(1,0.8)(0.2,0.9)(<30,Ph,3:/F,4:/Cl) + MCd(1,0.8)(0.8,0.1)(<30,Ph,3:/F,4:/Cl) \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Function MCf (fit draw)} +\subsection{Function MCf (fit draw)} \begin{verbatim} MCf(...) : MCd(1,1)(0.5,0.5)(...) sw_font_frame:=1; sw_mol_frame:=1; - MCf(<30,Ph,2:/OH,5:/NH2) + MCf(<30,Ph,3:/F,4:/Cl) \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Local setting} +\subsection{Local setting} \begin{verbatim} -beginfont() - sw_mol_frame:=1; % <<== Local setting - MCd(1,.4)( 0,.5)(Ph) -endfont -beginfont() MCd(1,.4)(.5,.5)(Ph) endfont -beginfont() MCd(1,.4)( 1,.5)(Ph) endfont + beginfont() MCd(1,.4)(0,.5)(Ph) endfont + beginfont() + ratio_thickness_bond:=0.05; + MCd(1,.4)(0.5,.5)(Ph) + endfont + beginfont() MCd(1,.4)(1,.5)(Ph) endfont \end{verbatim} -\end{minipage} -\MCFstru\MCFstru\MCFstructure% -\vspace{\gpman}\\ +\MCFstructure %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Global setting} +\subsection{Global setting} \begin{verbatim} -sw_mol_frame:=1; % <<== Global setting -beginfont() MCd(1,.4)( 0,.5)(Ph) endfont -beginfont() MCd(1,.4)(.5,.5)(Ph) endfont -beginfont() MCd(1,.4)( 1,.5)(Ph) endfont + ratio_thickness_bond:=0.05; + beginfont() MCd(1,.4)( 0,.5)(Ph) endfont + beginfont() MCd(1,.4)(.5,.5)(Ph) endfont + beginfont() MCd(1,.4)( 1,.5)(Ph) endfont \end{verbatim} -\end{minipage} -\MCFstru\MCFstru\MCFstructure% -\vspace{\gpman}\\ +\MCFstructure %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Output molecular information} +\subsection{Output molecular information} \begin{verbatim} var3:="calc_weight"; tag3:="cMW"; var4:="calc_formula"; tag4:="cFM"; %% Output to mcf_man_soc-info.aux %% -F:mcf_man_soc;C:85;cMW:194.19174;cFM:C8H10N4O2 +..... ;C:85;cMW:194.19174;cFM:C8H10N4O2 cMW:calculated molecular weight cFM:calculated molecular formula \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Output additional information} +\subsection{Output additional information} \begin{verbatim} beginfont("EN:Tocopherol","CAS:59-02-9") -MCf(...) endfont + MCf(...) endfont %% Output to mcf_man_soc-info.aux %% F:mcf_man_soc;C:86;EN:Tocopherol;CAS:59-02-9 @@ -1286,56 +867,46 @@ F:mcf_man_soc;C:86;EN:Tocopherol;CAS:59-02-9 *F:filename *C:char number EN:molecular name CAS:CAS number *:default output \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Change aux information delimiter} +\subsection{Change aux information delimiter} \begin{verbatim} aux_delimiter:="/"; beginfont("EN:Ampicillin","CAS:69-53-4") -MCf(...) endfont + MCf(...) endfont %% Output to mcf_man_soc-info.aux %% F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 -**default aux_delimiter=";" - + **default aux_delimiter=";" \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Fixed aux information} +\subsection{Fixed aux information} \begin{verbatim} -tag3:="NO"; var3:="inf_NO"; -tag4:="EN"; var4:="inf_EN"; -sw_auxfix:=1; auxtag_out; -beginfont("EN:Cholesterol","NO:1") ... endfont + tag3:="NO"; var3:="inf_NO"; + tag4:="EN"; var4:="inf_EN"; + sw_auxfix:=1; auxtag_out; + beginfont("EN:Cholesterol","NO:1") + ..... endfont -%% Output to mcf_man_soc-info.aux %% -F;C;NO;EN -mcf_man_soc;91;1;Ampicillin + %% Output to mcf_man_soc-info.aux %% + F;C;NO;EN + mcf_man_soc;91;1;Ampicillin \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(1) Warfarin} +\newpage +\section{MCF example} +\subsection{Warfarin} \begin{verbatim} <30,Ph,3=?6,8=dl, 10:O,7:/OH,9://O, 8\,/Ph`1,60,!,//O,! \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(2) Limonin} +\subsection{Limonin} \begin{verbatim} <30,?6,$(-3,-4)?6,-5=?3, -2=wf,-1=wb,6=?5,-4=?6,-5=wf, @@ -1344,34 +915,27 @@ mcf_man_soc;91;1;Ampicillin @(1^60,5^180,16^60)/*H, 14\*,|,?5,$(1,4)dl,3:O \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(3) Sesamine} +\subsection{Sesamine} \begin{verbatim} - <54,?5,1=?5,@(4,7)O,@(1^-54,2^54)*/H, + <54,?5,1=?5, + @(4,7)O,@(1^-54,2^54)*/H, #5*\^-12,Ph,|,-3=?5,@(-1,-3)O, #8*\^-12,Ph,|,-3=?5,@(-1,-3)O \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(4) Colchicine} +\subsection{Colchicine} \begin{verbatim} - <30,Ph,@(1,2,6)/OMe,-4=?7,-5=?7, + <30,Ph,@(1,2,6)/OMe, + -4=?7,-5=?7, $(-1,-4,-6)dl,-2://O,-3:/OH, 9\,NH,!,//O,! \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(5) Lycorine} +\subsection{Lycorine} \begin{verbatim} <30,Ph, -4=?6,-2=?6,6=?5,(9,12)=?5[3], @@ -1380,12 +944,9 @@ mcf_man_soc;91;1;Ampicillin 9:/*H^180,10:*/H^60, 13:*/OH,14:/*OH \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(6) Gibberellin} +\subsection{Gibberellin} \begin{verbatim} <18,?5,3=?7,5=?6[12], 8*,160`1.3,&3, @@ -1394,12 +955,9 @@ mcf_man_soc;91;1;Ampicillin 2:/COOH,7://Me,13:*/OH,8:/*OH, 14:*/Me,@(1^60,4^60)*/H \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(7) Quinine} +\subsection{Quinine} \begin{verbatim} <30,Ph,3=Ph,7:N,6:/OMe, 10\,*/OH,/H~zf^-60,!, @@ -1407,35 +965,43 @@ mcf_man_soc;91;1;Ampicillin 4*\,!~dr, 2*,165~zf,60,&5~zb \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(8) Atoropin} +\subsection{Atoropin} \begin{verbatim} <-30,O,!,//O,!,!,Ph, #1\~zb^-120, |,?7,6*\^190`1.02,N,/Me,&3~wb, #3\~wv,!,OH \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(9) Validamycin} +\subsection{Rotenone} +\begin{verbatim} + <-60,?5,$(-3,-2,-3,-4)?6, + $(7,9,-2,-4)dl,$(3,17)dr, + @(2,13,16)O,10://O,@(11^-60,12^60)*/H, + @(-2,-3)/OMe,1*\,/Me,!~dl +\end{verbatim} +\MCFstructure +%----------------------------------------------------------------------------- +\subsection{Pyrethrin I} +\begin{verbatim} + <30,?3,@(3^35~wf,3^-35~zf)/Me, + 1*\,!~dl,iPr,2\*,//O,!,O,-36~zb,|, + ?5,-2=d,-1:/Me,-3://O,-2\,!4,$(-1,-3)dl +\end{verbatim} +\MCFstructure +%----------------------------------------------------------------------------- +\subsection{Validamycin} \begin{verbatim} <30,?6,@(5,6)/OH,3\,-60,OH, #4\,O,-60,|,?6,2:O,@(3,4,5,6)/OH, #1\,NH,!,|,?6,2=d,@(4,5,6)/OH,-4\,!,OH \end{verbatim} -\end{minipage} \MCFstructure -\vspace{\gpman}\\ %----------------------------------------------------------------------------- -\begin{minipage}[t][\htman]{90mm} -\MCFtitle{Example(10) Paclitaxel} +\subsection{Paclitaxel} \begin{verbatim} ?6,5=d,3*,{,``1,36,45,45,45,45,},, -4=?6,-4=?4,-1=wb,-3=wf,-1:O,||, @@ -1446,7 +1012,114 @@ mcf_man_soc;91;1;Ampicillin 7\*,O,-45,//O,60,Ph,11*\,O,-60,//O,60, 12\*^-15,O,60,//O,-60 \end{verbatim} -\end{minipage} \MCFstructure %----------------------------------------------------------------------------- +\onecolumn% +\section{Example to use mcf2graph} +\subsection{Molecular definition file example} +\begin{verbatim} +%------------------------------------------------------------------------- +input mcf2graph.mf; % input macro +%------------------------------------------------------------------------- +sw_auxout:=1; % aux(information) file output on > Gloval setting +font_wd#:=60mm#; % font width > +font_ht#:=40mm#; % font height > +var3:="cal_MW"; tag3:="cMW"; > AUX file table +var4:="cal_FM"; tag4:="cFM"; > +%%%% var5:="cal_MW"; tag5:="cMW"; > +%%%% var6:="cal_FM"; tag6:="cFM"; > +%%%% var7:="inf_USE"; tag7:="USE"; > +%%%% var8:="inf_EXA"; tag8:="EXA"; > +%%%% var9:="inf_EXB"; tag9:="EXB"; > +%%%% auxtag_out; > +%%%% sw_checklist:=1; > +%%%% sw_MOLout:=1; > +outputformat:="png"; hppp:=vppp:=0.1; > PNG output +outputtemplate:="%j-%3c.png"; > +%------------------------------------------------------------------------- +beginfont("NO:1","EN:Ampicillin") > begin font(information) + MCf(<45,?4,2:N,2=?5,-1:S, > begin MCF (1) + @(3^45,4^-45)/*H,1://O^15,5:/*COOH^-18, > + @(6^35,6^-35)/Me, > + 4\^75,NH,!,//O,!,/*NH,!,Ph) > end MCF +endfont > end font +%------------------------------------------------------------------------ +beginfont("NO:2","EN:Cholesterol") > begin font(information) + MCf(<30,?6,$(-4,-2)?6,-4=?5,7=dl, > begin MCF (2) + 1:*/OH,@(4,12)*/Me^60,9:*/H^60, > + 10:/*H^180,@(11,-1)/*H^-60, > + -1\^17,/*Me,!4,/Me,!) > end MCF +endfont > end font +%------------------------------------------------------------------------ +bye +\end{verbatim} +%------------------------------------------------------------------------ +\subsection{Molecular structure output example} +\INFO{F:mcf_man_soc,C:100,NO:1,cMW:349.40462,cFM:C16H19N3O4S,EN:Ampicillin}% +\INFO{F:mcf_man_soc,C:101,NO:2,cMW:386.6532,cFM:C27H46O,EN:Cholesterol}% +\newpage +%------------------------------------------------------------------------ +\noindent% +\subsection{Molecular information output example} +'filename'-info.aux : for use in \TeX, it takes over filename, +char number, molecular information,etc. +\begin{verbatim} +(sw_auxfix=0) +F:mcf_man_soc;C:109;cMW:349.40462;cFM:C16H19N3O4S;EN:Ampicillin +F:mcf_man_soc;C:110;cMW:386.6532;cFM:C27H46O;EN:Cholesterol + ..................................................... + ..................................................... + +(sw_auxfix=1) +F;C;cMW;cFM;EN +mcf_man_soc;90;349.40462;C16H19N3O4S;Ampicillin +mcf_man_soc;91;386.6532;C27H46O;Cholesterol + ...................................... + ...................................... + +( tag : variable ) +F : filename C : char number NO : serial number EN : english name +cMW : molecular weight calculated cFM : molecular formula calculated +MW : molecular weight from literature data +\end{verbatim} +%---------------------------------------------------------------------------- +\subsection{LaTeX file example} +%############################################################################ +\begin{verbatim} +%-------------------------------------------------------------------- +\documentclass[a4paper]{article} +\usepackage{graphicx} +\pagestyle{empty} +\makeatletter% +%-------------------------------------------------------------------- +\def\@F{F}\def\@C{C}\def\@EN{EN}\def\@NO{NO}\def\@MW{MW}\def\@FMc{FMc}% +\def\@fst@param#1:#2;{#1}\def\@sec@param#1:#2;{#2}% +\def\mol@sel#1{% +\if#1\empty\relax\else% + \edef\@tag{\expandafter\@fst@param#1;}% + \edef\@var{\expandafter\@sec@param#1;}% + \ifx\@tag\@F\edef\MOLfile{\@var}\fi% + \ifx\@tag\@C\edef\MOLchar{\@var}\fi% + \ifx\@tag\@EN\edef\MOLnameE{\@var}\fi% + \ifx\@tag\@NO\edef\MOLnum{\@var}\fi + \ifx\@tag\@MW\edef\CALmw{\@var}\fi + \ifx\@tag\@FMc\edef\CALfm{\@var}\fi +\fi}% +\def\put@char{% + \begin{picture}(84,42)% + \put(0,38){\bf [\MOLnum]\MOLnameE{ }\small\tt/FM:\CALfm/MW:\CALmw}% + \put(10,0){\font\@strufont=\MOLfile\relax% + \hbox{\@strufont\char\MOLchar}}% + \end{picture}% +\def\INFO#1{\@for\@temp:=#1\do{\mol@sel\@temp}\put@char}% +\makeatother +%-------------------------------------------------------------------- +\begin{document} +\unitlength=1mm% +\INFO{F:mcf_man_soc,C:100,NO:1,cMW:349.40462,cFM:C16H19N3O4S,EN:Ampicillin}% +\INFO{F:mcf_man_soc,C:101,NO:2,cMW:386.6532,cFM:C27H46O,EN:Cholesterol}% +\end{document} +%-------------------------------------------------------------------- +\end{verbatim}% +%############################################################################ \end{document} diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf index cb68fe31e7d..05421a5721f 100644 Binary files a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf and b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf differ diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex index 207ec7cfd83..c8115e7b59b 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2016.8.21 +% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2016.10.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% mcf2graph.mf it must be version 3.97 or later +%%% mcf2graph.mf it must be version 3.98 or later \documentclass{article} %------------------------------------------------------------------------------ \usepackage{luamplib}% @@ -79,7 +79,7 @@ %------------------------------------------------------------------------------------ \begin{document} \begin{center} - {\LARGE\bf MCF example for luamplib(Lua\LaTeX)}\vspace{5mm}\\ + {\Huge\sf MCF example for luamplib(Lua\LaTeX)}\vspace{5mm}\\ Author : Akira Yamaji \quad Date : \today\\ Located at : http://www.ctan.org/pkg/mcf2graph\vspace{2mm}\\ \end{center} diff --git a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf index b674e468a9c..bca5145d9b3 100644 --- a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf +++ b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf2graph ver 3.97 Copyright (c) 2013-2016 Akira Yamaji +% mcf2graph ver 3.98 Copyright (c) 2013-2016 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, @@ -30,7 +30,7 @@ % Set output checklist : mpost -s ahlength=2 FILENAME %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% tracingstats:=1; -message " This is mcf2graph ver 3.9 2016.8"; +message " This is mcf2graph ver 4.0 2016.10"; %------------------------------------------------------------------------------------------------- pair posB[],posA[],pairT,Ls,Le,pairA; numeric angB[],angA[],br_ang[],sB[],eB[],f_FON[],atom_w[],atom_h[],atom_d[],strA[],stkB[],stkA[], @@ -38,13 +38,13 @@ numeric angB[],angA[],br_ang[],sB[],eB[],f_FON[],atom_w[],atom_h[],atom_d[],strA comMC[][],parMC[][],stock_p[],cntMC[],colorA[],colorB[],tblN[],tblB[][],wtA[],sumA[], CH[],NH[],NO[],SO[],CCl[],CF[],CBr[],?[],![],Ph[]; path pA,pB,pC,pT; -string info[],tblA[],com_str[],var[],tag[],cal_FM,mp_log_name,inf_EN,inf_JN,inf_FM, - inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_str,cal_MW_str,aux_delimiter; +string info[],tblA[],com_str[],var[],tag[],cal_FM,mp_log_name,inf_NO,inf_MW,inf_EN,inf_JN,inf_FM, + inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_str,cal_MW_str,aux_delimiter,s_tag,s_var; picture atom_font[],chem_structure,temp_picture; %------------------------------------------------------------------------------------------------- sw_numberA:=sw_numberB:=sw_mol_frame:=sw_auxout:=sw_solid:=sw_expand:=sw_start_vector:=0; -char_num:=str_cnt:=proc_end:=sw_font_frame:=sw_atom_frame:=sw_checklist:=sw_MOLout:=0; -sw_subst_off:=sw_bond_single:=sw_auxfix:=0; +char_num:=str_cnt:=proc_end:=sw_font_frame:=sw_atom_frame:=sw_checklist:=0; +sw_MOLout:=sw_subst_off:=sw_bond_single:=sw_auxfix:=sw_clip:=0; numberA_start:=numberB_start:=1; numberA_end:=numberB_end:=4095; aux_max:=20; aux_delimiter:=";"; var1:="jobname"; tag1:="F"; var2:="char_num"; tag2:="C"; for i=3 upto aux_max: var[i]:=tag[i]:=""; endfor @@ -78,11 +78,12 @@ primarydef a SUB b = a-b enddef; ?3:=?20:=Ph:=Ph1:=Ph2:=hz:=0; vt:=1; first_def_number:=500; user_def_number:=2500; ab_def_number:=3000; margin_left_right:=margin_top_bottom:=0.4mm; ratio_chain_ring:= 0.66; ratio_atom_bond:=0.36; -ratio_thickness_bond:=0.015; offset_atom#:=0.8pt#; max_bond_width:=0.25; -ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15; ratio_zebragap_bond:=0.12; -ratio_zebra_black:=0.4; ratio_wedge_bond:=0.12; ratio_atomgap_atom:=.050; -offset_thickness#:=0.2pt#; offset_bond_gap#:=0.3pt#; offset_zebra_gap#:=0.1pt#; -offset_wedge#:=0.4pt#; +ratio_thickness_bond:=0.015; offset_atom#:=0.8pt#; +ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15; ratio_zebragap_bond:=0.12; +ratio_zebra_black:=0.4; ratio_wedge_bond:=0.12; ratio_atomgap_atom:=.050; +offset_thickness#:=0.2pt#; offset_bond_gap#:=0.3pt#; offset_zebra_gap#:=0.1pt#; +offset_wedge#:=0.4pt#; thickness_font_frame#:=0.2pt#; +max_bond_length#:=10mm; bond_len#:=8mm#; par_s=ASCII("{"); par_e=ASCII("}"); score_u=ASCII("_"); hat=ASCII("^"); max_inf_num:=12; for i:=1 upto max_inf_num: info[i]:=":"; endfor def def_com(expr n)(text tx)= nA:=n; forsuffixes list=tx:: list:=nA; nA:=nA+1; endfor enddef; @@ -94,12 +95,12 @@ def_com(1)(si,dl,dr,dm,tm,wf,wb,bd,bz,zf,zb,dt,no,ar,vf,vb,wv,nl,si_,wf_,wb_,bd_ %------------------------------------------------------------------------------------------------- def parameter_list= sw_checklist,sw_numberA,sw_numberB,sw_mol_frame,sw_auxout,sw_solid,sw_expand,sw_MOLout, - sw_start_vector,sw_atom_frame,sw_font_frame,sw_subst_off,sw_bond_single, + sw_start_vector,sw_atom_frame,sw_font_frame,sw_subst_off,sw_bond_single,sw_clip, margin_left_right,margin_top_bottom,ratio_atom_bond,ratio_thickness_bond,ratio_char_bond, - ratio_chain_ring,offset_atom,offset_atom#,max_bond_width,ratio_bondgap_bond,ratio_zebra_black, - ratio_zebragap_bond,ratio_wedge_bond,ratio_atomgap_atom,offset_wedge,offset_wedge#, - offset_zebra_gap,offset_zebra_gap#,offset_bond_gap,offset_bond_gap#, - offset_thickness,offset_thickness#,numberA_start,numberA_end,numberB_start,numberB_end + ratio_chain_ring,offset_atom#,max_bond_width,ratio_bondgap_bond,ratio_zebra_black, + ratio_zebragap_bond,ratio_wedge_bond,ratio_atomgap_atom,bond_len#, + offset_wedge#,max_bond_length#,offset_zebra_gap#,offset_bond_gap#,thickness_font_frame#, + offset_thickness#,numberA_start,numberA_end,numberB_start,numberB_end enddef; %------------------------------------------------------------------------------------------------- nA:=0; for list=parameter_list: stock_p[incr nA]:=list; endfor @@ -110,29 +111,33 @@ def restore_par(text t)= nA:=0; enddef; %------------------------------------------------------------------------------------------------- def beginfont(text s)= - inf_EN:=inf_JN:=inf_FM:=inf_CAS:=inf_USE:=inf_EXA:=inf_EXB:=""; - len_x:=len_y:=cntA:=inf_num:=inf_MW:=f_beginchar:=0; - store_par(parameter_list); stock_wd#:=font_wd#; stock_ht#:=font_ht#; - ratio_bond_width:=1/30; - for list=s: inf_num:=inf_num+1; info[inf_num]:=list; - if substring (0,2) of list="NO": inf_NO:=scantokens(substring (3,length(list)) of list); - elseif substring (0,2) of list="MW": inf_MW:=scantokens(substring (3,length(list)) of list); - elseif substring (0,2) of list="EN": inf_EN:=substring (3,length(list)) of list; - elseif substring (0,2) of list="JN": inf_JN:=substring (3,length(list)) of list; - elseif substring (0,2) of list="FM": inf_FM:=substring (3,length(list)) of list; - elseif substring (0,3) of list="CAS": inf_CAS:=substring (4,length(list)) of list; - elseif substring (0,3) of list="USE": inf_USE:=substring (4,length(list)) of list; - elseif substring (0,3) of list="EXA": inf_EXA:=substring (4,length(list)) of list; - elseif substring (0,3) of list="EXB": inf_EXB:=substring (4,length(list)) of list; fi + inf_EN:=inf_JN:=inf_FM:=inf_CAS:=inf_USE:=inf_EXA:=inf_EXB:=""; inf_MW:="0"; + len_x:=len_y:=cntA:=inf_num:=f_beginchar:=0; + store_par(parameter_list); save_wd#:=font_wd#; save_ht#:=font_ht#; + ratio_bond_width:=0.025; + clearit; + for list=s: + inf_num:=inf_num+1; info[inf_num]:=list; + nA:=0; for i=0 upto length(list): if pic_c(i,list)=":": nA:=i; fi exitif nA>0; endfor + if nA>0: + s_tag:=substring (0,nA) of list; s_var:=substring (nA+1,length(list)) of list; + if s_tag="NO": inf_NO:=s_var; elseif s_tag="MW": inf_MW:=s_var; + elseif s_tag="EN": inf_EN:=s_var; elseif s_tag="JN": inf_JN:=s_var; + elseif s_tag="FM": inf_FM:=s_var; elseif s_tag="CAS": inf_CAS:=s_var; + elseif s_tag="USE": inf_USE:=s_var; elseif s_tag="EXA": inf_EXA:=s_var; + elseif s_tag="EXB": inf_EXB:=s_var; + fi + fi endfor enddef; %------------------------------------------------------------------------------------------------- def endfont= if (sw_font_frame=1)or(sw_font_frame=3): - AUX(0,0)(draw_frame(font_wd,font_ht,(0,0),0.2pt);) fi + AUX(0,0)(draw_frame(font_wd,font_ht,(0,0),thickness_font_frame);) fi if (sw_font_frame=2)or(sw_font_frame=3): AUX(0,0)(draw_frame(font_wd-2margin_left_right,font_ht-2margin_top_bottom, - (margin_left_right,margin_top_bottom),0.2pt);) fi + (margin_left_right,margin_top_bottom),thickness_font_frame);) fi + if sw_font_frame=4: AUX(0,0)(draw_corner(font_wd,font_ht,thickness_font_frame);) fi if (sw_auxout=1)or(sw_checklist=1)or(sw_MOLout=1): mol_check; fi if sw_auxout=1: auxfile_out; fi if sw_checklist=1: checklist_out; fi @@ -140,38 +145,44 @@ def endfont= if f_beginchar=1: char_num:=char_num+1; currentpicture:=chem_structure; chem_structure:=nullpicture; endchar; fi - restore_par(parameter_list); font_wd#:=stock_wd#; font_ht#:=stock_ht#; + restore_par(parameter_list); font_wd#:=save_wd#; font_ht#:=save_ht#; if proc_end=1: scantokens("bye"); fi enddef; %------------------------------------------------------------------------------------------------- def size_setup= - BL# := font_wd#*ratio_bond_width; - wedge_wd# := ratio_wedge_bond*BL#+offset_wedge#; - zebra_gap# := ratio_zebragap_bond*BL#+offset_zebra_gap#; - if (ratio_atom_bond*BL#+offset_atom#)<.8BL#: - AL#:=ratio_atom_bond*BL#+offset_atom#; else: AL#:=.8BL#; ratio_chain_ring:= .5; fi - gap# := ratio_bondgap_bond*BL#+offset_bond_gap#; - bond_pen_wd# := ratio_thickness_bond*BL#+offset_thickness#; - char_pen_wd# := ratio_char_bond*bond_pen_wd#; - define_pixels(BL,zebra_gap,wedge_wd,AL,gap,bond_pen_wd,char_pen_wd,font_wd,font_ht); + if sw_solid=0: bond_len#:=font_wd#*ratio_bond_width; fi + wedge_wd# := ratio_wedge_bond*bond_len#+offset_wedge#; + zebra_gap# := ratio_zebragap_bond*bond_len#+offset_zebra_gap#; + if (ratio_atom_bond*bond_len#+offset_atom#)<.8bond_len#: + atom_wd#:=ratio_atom_bond*bond_len#+offset_atom#; + else: + atom_wd#:=.8bond_len#; ratio_chain_ring:= .5; + fi + gap#:= ratio_bondgap_bond*bond_len#+offset_bond_gap#; + bond_pen_wd# := ratio_thickness_bond*bond_len#+offset_thickness#; + char_pen_wd# := ratio_char_bond*bond_pen_wd#; + define_pixels(bond_len,zebra_gap,wedge_wd,atom_wd,gap,bond_pen_wd,char_pen_wd, + font_wd,font_ht,thickness_font_frame); font_size_setup; enddef; %------------------------------------------------------------------------------------------------- -def scaling= min_x:=min_y:= 4095.999; max_x:=max_y:=-4095.999; +def scaling= +min_x:=min_y:= 4095.999; max_x:=max_y:=-4095.999; for i=1 upto cntA: xpos:=xpart(posA[i]); ypos:=ypart(posA[i]); if strA[i]<>0: str_len:=nC:=num_d:=0; - for j=0 upto length(com_str[strA[i]])-1: nA:=ASCII(pic_c(j,com_str[strA[i]])); + for j=0 upto length(com_str[strA[i]])-1: + nA:=ASCII(pic_c(j,com_str[strA[i]])); if (nA=score_u)or(nA=hat)or(nA=par_s)or(nA=par_e): - if (nA=hat)and(nC<.5AL): nC:=.5AL; fi; - if (nA=score_u)and(num_d<.5AL): num_d:=.5AL; fi; + if (nA=hat)and(nC<.5atom_wd): nC:=.5atom_wd; fi; + if (nA=score_u)and(num_d<.5atom_wd): num_d:=.5atom_wd; fi; else: str_len:=str_len+atom_w[nA]; fi endfor str_ang:=(br_ang[i] mod 360); num_f:=str_len; if (str_ang<=91)or(str_ang>=269): num_f:=0; else: str_len:=0; fi - if (xpos-num_f+.5AL)max_x: max_x:=xpos+str_len-.5AL; fi - if (ypos-num_d-.5AL)max_y: max_y:=ypos+nC+.5AL; fi + if (xpos-num_f+.5atom_wd)max_x: max_x:=xpos+str_len-.5atom_wd; fi + if (ypos-num_d-.5atom_wd)max_y: max_y:=ypos+nC+.5atom_wd; fi else: if xposmax_x: max_x:=xpos; fi if yposmax_y: max_y:=ypos; fi fi endfor @@ -365,7 +376,6 @@ def AUX(expr a,b)(text s)=s addto chem_structure also currentpicture shifted(a,b def MCf(text s)= MCd(1,1)(.5,.5)(s); enddef; % MC fill draw %------------------------------------------------------------------------------------------------- def MCd(expr RW,RH)(expr FW,FH)(text s)= - if f_beginchar=0: beginchar(char_num,font_wd#,font_ht#,0); clearit; f_beginchar:=1; fi mc_num:=user_def_number; ab_num:=ab_def_number; crR:=-ratio_chain_ring; adrA:=adrB:=cntA:=cntB:=adrS:=cntPS:=angA[0]:=angB[0]:=br_ang[0]:=sB[0]:=cntC:=cntP:=0; stkA[0]:=stkB[0]:=stkL[0]:=stkM[0]:=strAT:=f_lineT:=f_lenT:=f_envT:=f_rotT:=0; @@ -375,13 +385,31 @@ def MCd(expr RW,RH)(expr FW,FH)(text s)= ''(0)(s,(_term,0)); proc_bond_atom(1); cntA_skeleton:=cntA; cntB_skeleton:=cntB; if cntP>0: ps_get(1); fi font_use_check; - if sw_solid=1: size_setup; proc_skeleton; scaling; - else: size_setup; proc_skeleton; scaling; resize(RW,RH); size_setup; - if ratio_bond_width>max_bond_width: - ratio_bond_width:=max_bond_width; size_setup; proc_skeleton; scaling; - else: for i=1 upto 4: proc_skeleton; scaling; resize(RW,RH); size_setup; endfor fi fi + if sw_solid>=1: + size_setup; proc_skeleton; scaling; + else: + size_setup; proc_skeleton; scaling; resize(RW,RH); size_setup; + if bond_len#>max_bond_length#: + sw_solid:=1; bond_len#:=max_bond_length#; + size_setup; proc_skeleton; scaling; sw_solid:=0; + else: + for i=1 upto 4: proc_skeleton; scaling; resize(RW,RH); size_setup; endfor + fi + fi font_setup; if sw_subst_off=1: cntA:=cntA_skeleton; cntB:=cntB_skeleton; fi + %---------------------------------------------------------------------------------------- + if f_beginchar=0: + if sw_clip=1: + f_wd#:=font_wd#*((len_x+2margin_left_right)/font_wd); + f_ht#:=font_ht#*((len_y+2margin_top_bottom)/font_ht); + font_wd:=len_x+2margin_left_right; font_ht:=len_y+2margin_top_bottom; + else: + f_wd#:=font_wd#; f_ht#:=font_ht#; + fi + beginchar(char_num,f_wd#,f_ht#,0); + f_beginchar:=1; + fi for i=1 upto cntB: if lineB[i]=si_: draw_bond(i,sB[i],eB[i],angB[i],lineB[i]); fi endfor for i=1 upto cntA: @@ -389,19 +417,27 @@ def MCd(expr RW,RH)(expr FW,FH)(text s)= if sw_numberA=2: nA:=i-numberA_start+1; elseif sw_numberA=3: if numberA_end=1: else: draw_atom(i,posA[i],br_ang[i],com_str[strA[i]],strW[strA[i]]); fi endfor - sft_X:=-min_x+(font_wd-len_x)*FW; sft_Y:=-min_y+(font_ht-len_y)*FH; + sft_X:=margin_left_right-min_x+(font_wd-len_x-2margin_left_right)*FW; + sft_Y:=margin_top_bottom-min_y+(font_ht-len_y-2margin_top_bottom)*FH; if sw_mol_frame=1: AUX(sft_X,sft_Y)(draw_frame(len_x,len_y,(min_x,min_y),0.2pt);) fi if sw_start_vector=1: AUX(sft_X,sft_Y)(start_vector) fi addto chem_structure also currentpicture shifted (sft_X,sft_Y); clearit; enddef; %------------------------------------------------------------------------------------------------ -def draw_frame(expr LX,LY,PS,PN)= draw unitsquare xscaled LX yscaled LY shifted PS wpcs PN; +def draw_frame(expr LX,LY,PS,PN)= + draw ((PN/2,PN/2)--(LX-PN/2,PN/2)--(LX-PN/2,LY-PN/2)--(PN/2,LY-PN/2)--cycle) shifted PS wpss PN; +enddef; +def draw_corner(expr LX,LY,PN)= + drawdot (PN/2,PN/2) wpss PN; drawdot (LX-PN/2,PN/2) wpss PN; + drawdot (LX-PN/2,LY-PN/2) wpss PN; drawdot (PN/2,LY-PN/2) wpss PN; enddef; def start_vector= draw (posA[1] shifted (-1mm,0))--(posA[1] shifted (-4mm,0)) withpen penrazor rotated 90 scaled .8mm; @@ -510,9 +546,9 @@ def termA= if f_term=0: if f_bra=0: strA[incr cntA]:=strAT; strAT:=0; def termB= if f_term=0: if f_bra=0: br_ang[incr cntA]:=angT; else: f_bra:=0; fi f_term:=1; fi enddef; def proc_cyc(expr n)= add_bond(angle(posA[n]-posB[cntB+1])-angT); enddef; -def glu_c(expr n)= if strA[n]<>0: nB:=angT mod 180; nC:=.5strW[strA[n]]*AL; +def glu_c(expr n)= if strA[n]<>0: nB:=angT mod 180; nC:=.5strW[strA[n]]*atom_wd; if (nB<45)or(nB>135):glu:=glu+((sind(nB)*nC)++nC); - else :glu:=glu+((cosd(nB)*.5AL)++.5AL) fi fi + else :glu:=glu+((cosd(nB)*.5atom_wd)++.5atom_wd) fi fi enddef; %------------------------------------------------------------------------------------------------- def add_bond(expr m)= @@ -521,9 +557,9 @@ def add_bond(expr m)= if tn>=0: br_ang[cntA]:=angT+tn/2-90; else: br_ang[cntA]:=angT+tn/2+90; fi else: f_bra:=0; fi angB[cntB]:=angT:=(angT+tn) mod 360; - if f_end=0: if lenB[cntB]=_size_a: posB[cntB+1]:=sfB(posB[cntB],AL,angT); + if f_end=0: if lenB[cntB]=_size_a: posB[cntB+1]:=sfB(posB[cntB],atom_wd,angT); else: nA:=lenB[cntB];glu:=0; if nA<0: nA:=-nA; glu_c(adrT);glu_c(cntA+1); fi - posB[cntB+1]:=sfB(posB[cntB],nA*BL+glu,angT); fi + posB[cntB+1]:=sfB(posB[cntB],nA*bond_len+glu,angT); fi posA[cntA+1]:=posB[cntB+1]; f_term:=0; else: f_end:=0; f_term:=1; fi enddef; @@ -539,21 +575,23 @@ enddef; def pic_c(expr i,s)= substring(i,i+1) of s enddef; def draw_atom(expr n,p,r,s,w)= if ((r mod 360)<=90+1)or((r mod 360)>=270-1): dx:=1; else: dx:=-1; fi - pairT:=p-(.5AL*w*dx,.5AL); u:=j:=0; + pairT:=p-(.5atom_wd*w*dx,.5atom_wd); u:=j:=0; for i=0 upto length(s)-1: nB:=ASCII(pic_c(i,s)); if dx<0: if nB=par_s:k:=i+1;j:=1;forever:exitif pic_c(i+(incr j),s)="}";endfor fi if j>0: nB:=ASCII(pic_c(k+(decr j),s)); fi fi if nB=score_u: if u=0: u:=-.5; else:u:=0; fi; elseif nB=hat: if u=0: u:= .5; else:u:=0; fi; - elseif (nB<>par_s)and(nB<>par_e): nA:=atom_w[nB]; pairA:=pairT+(.5*((dx-1)*nA),u*AL); - if sw_atom_frame=1: draw_frame(nA,AL,pairA,0.01pt); fi + elseif (nB<>par_s)and(nB<>par_e): + nA:=atom_w[nB]; pairA:=pairT+(.5*((dx-1)*nA),u*atom_wd); + if sw_atom_frame=1: draw_frame(nA,atom_wd,pairA,0.1pt); fi if (sw_numberA>=1)or(sw_numberB>=1): - erase fill unitsquare xscaled nA yscaled AL shifted pairA wpcs 0.01pt; fi + erase fill unitsquare xscaled nA yscaled atom_wd shifted pairA wpcs 0.01pt; fi addto currentpicture also atom_font[nB] shifted (pairA-(0,atom_d[nB])) Cp(colorA[n]); pairT:=pairT+(nA*dx,0); fi endfor enddef; %------------------------------------------------------------------------------------------------- def wpcs expr n= withpen pencircle scaled n enddef; +def wpss expr n= withpen pensquare scaled n enddef; def sqr(expr WD,HT)= ((0,0)--(WD,0)--(WD,HT)--(0,HT)--cycle) enddef; def sfB(expr p,l,r)= p shifted ((l,0) rotated r) enddef; def wz_put(expr PA,PB,PD,CL)= save nA,nC,nD; nC:=length(Le-Ls); @@ -568,13 +606,13 @@ def bz_put(expr PA,PB,PC,PD,CL)= save nA,nC,nD; nC:=length(Le-Ls); def cut_off(expr p,w,h,s)= p intersectionpoint sqr(1.1w,1.1h) shifted (s-(.5(1.1w),.5(1.1h))); enddef; def clipping(expr SA,SB,PA,PB,LEN)= - pT:=PA--PB; tn:=0.6AL/LEN; + pT:=PA--PB; tn:=0.6atom_wd/LEN; if (SA=0)and(SB=0): Ls:=PA; Le:=PB; pA:=pB:=pT; pC:=0.1[PA,PB]--0.1[PB,PA]; - elseif SA=0: Ls:=PA; Le:=cut_off(pT,AL*strW[SB],AL,PB); + elseif SA=0: Ls:=PA; Le:=cut_off(pT,atom_wd*strW[SB],atom_wd,PB); pA:=Ls--Le; pB:=Ls--tn[PB,PA]; pC:=0.1[PA,PB]--Le; - elseif SB=0: Ls:= cut_off(pT,AL*strW[SA],AL,PA); Le:=PB; + elseif SB=0: Ls:= cut_off(pT,atom_wd*strW[SA],atom_wd,PA); Le:=PB; pA:=Ls--Le; pB:=tn[PA,PB]--Le; pC:=Ls--(0.1)[PB,PA]; - else: Ls:=cut_off(pT,AL*strW[SA],AL,PA); Le:=cut_off(pT,AL*strW[SB],AL,PB); + else: Ls:=cut_off(pT,atom_wd*strW[SA],atom_wd,PA); Le:=cut_off(pT,atom_wd*strW[SB],atom_wd,PB); pB:=tn[PA,PB]--tn[PB,PA]; pC:=pA:=Ls--Le; fi enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -679,7 +717,7 @@ enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def font_size_set(expr m)(expr n)(expr o)(expr s)= for j=0 upto length(s)-1: num_a:=ASCII(pic_c(j,s)); - if f_FON[num_a]=1: atom_w[num_a]:=m*AL; atom_h[num_a]:=n*AL; atom_d[num_a]:=o*AL; fi + if f_FON[num_a]=1: atom_w[num_a]:=m*atom_wd; atom_h[num_a]:=n*atom_wd; atom_d[num_a]:=o*atom_wd; fi endfor enddef; def font_size_setup= font_size_set( 1)( 1)(0)("CGHMNOQ"); @@ -703,7 +741,7 @@ if f_FON[ASCII(c)]=1: z01=( 0,hP); z02=(hP, 0); z03=(hP,hP); z05=(aW,hP); z07=(fW, 0); z08=( 0,hH); z09=(hP,hH); z10=(fW,hH); z12=( 0,fH); z13=(hP,fH); z14=(hW,fH); z16=(aW,fH); z18=(hP,aH); z19=(hW,hP); s; - atom_font[ASCII(c)]:=currentpicture shifted (ratio_atomgap_atom*AL,ratio_atomgap_atom*AL); + atom_font[ASCII(c)]:=currentpicture shifted (ratio_atomgap_atom*atom_wd,ratio_atomgap_atom*atom_wd); clearxy; save x,y; clearit; fi enddef; %------------------------------------------------------------------------------------------------- @@ -860,27 +898,29 @@ def checklist_out= " warnings / Expanded command count= "&decimal(cntMC[0]); message "% width * height = " & fdr(8)(max_x-min_x)&" * "&fdr(8)(max_y-min_y); message "% Shift width * height = "& fdr(8)(min_x)&" * "&fdr(8)(min_y); - message "% Bond length = "&fdr(3)(BL)&" Atom size = "&fdr(3)(AL); + message "% Bond length = "&fdr(3)(bond_len)&" Atom size = "&fdr(3)(atom_wd); message "% Atom count="&fdr(3)(cntA)&" Bond count="&fdr(3)(cntB)& " Ring count="&fdr(3)(cntB-cntA+1)&" Hide H ="&fdr(3)(hide_H); message "%-----------------------------------< atom >< bond >-------"; - for i=1 upto cntA: message "% "&fdr(3)(i)&" ("&fdr(10)(xpart(posA[i])/BL)&" ) ("& - fdr(10)(ypart(posA[i])/BL)&" ) "&fixed_l(8)(com_str[strA[i]])&" "&fdr(3)(Bcnt[i]); endfor + for i=1 upto cntA: message "% "&fdr(3)(i)&" ("&fdr(10)(xpart(posA[i])/bond_len)&" ) ("& + fdr(10)(ypart(posA[i])/bond_len)&" ) "&fixed_l(8)(com_str[strA[i]])&" "&fdr(3)(Bcnt[i]); + endfor message "%Bond list---------------------------------------------------------"; for i=1 upto cntB: if lineB[i]<>0: message "% "&fdr(3)(incr nA)&" "&fdr(3)(sB[i])& - " -> "&fdr(3)(eB[i])&" ("&fdr(3)(bondC[i]-si+1)&")"; fi endfor + " -> "&fdr(3)(eB[i])&" ("&fdr(3)(bondC[i]-si+1)&")"; fi + endfor message "%Fomula / Molecular weight ---------------------------------------"; if cal_MWp<=40: cal_MW_str:=fdr(10)(cal_MW); else: cal_MW_str:=fdr(10)(cal_MWp)&" * 100"; fi for i=1 upto tbl_max: if sumA[i]>=1: message "% "&fixed_l(4)(stripP(tblA[i]))&"("&fdr(9)(wtA[i])&") * "&fdr(6)(sumA[i])&" = " - if tmp_wtp<=40: &fdr(12)(wtA[i]*sumA[i]); else: &fdr(12)(tmp_wtp)&" * 100"; fi fi endfor + if tmp_wtp<=40: &fdr(12)(wtA[i]*sumA[i]); else: &fdr(12)(tmp_wtp)&" * 100"; fi fi + endfor message "% Weight Calc: " &cal_MW_str &" / Input: " - if inf_MW>0: &decimal(inf_MW) &" / weight gap= " &decimal(cal_MW-inf_MW) fi; + if scantokens(inf_MW)>0: &inf_MW &" / weight gap= " &decimal(cal_MW-scantokens(inf_MW)) fi; message "% Fomula Calc: "&cal_FM&" / Input: " - if inf_FM<>"":&inf_FM&" / "& - if inf_FM=cal_FM: "MACTCH" else: "NOT MACTCH" fi fi; + if inf_FM<>"":&inf_FM&" / "& if inf_FM=cal_FM: "MACTCH" else: "NOT MACTCH" fi fi; message "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"; enddef; %------------------------------------------------------------------------------------------------ @@ -888,7 +928,7 @@ def MOLfileout= mp_log_name:=jobname&"-"&fit_zero(char_num)&decimal(char_num)&"-"&inf_EN&".mol"; printf ""; printf " -MCFtoMOL- "&fixed_l(20)(info[1]); printf ""; printf fdr(3)(cntA)&fdr(3)(cntB)&" 0 0 0 0 0 0 0 0999 V2000"; - for i=1 upto cntA: printf fdr(10)(xpart(posA[i])/BL)& fdr(10)(ypart(posA[i])/BL)& + for i=1 upto cntA: printf fdr(10)(xpart(posA[i])/bond_len)& fdr(10)(ypart(posA[i])/bond_len)& fdr(10)(0)&" "&fixed_l(2)(stripP(com_str[strA[i]]))&" 0 0 0 0"; endfor for i=1 upto cntB: if lineB[i]<>0: if (lineB[i]=dl)or(lineB[i]=dr)or(lineB[i]=dm): nA:=2; -- cgit v1.2.3