From b637e30bd75f158479a9b3d56468f3c405a2d9ae Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 29 Jan 2017 22:31:38 +0000 Subject: mcf2graph (29jan17) git-svn-id: svn://tug.org/texlive/trunk@43081 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG | 11 +- Master/texmf-dist/doc/metapost/mcf2graph/README | 6 +- .../doc/metapost/mcf2graph/mcf_exa_soc.mf | 7 +- .../doc/metapost/mcf2graph/mcf_example.pdf | Bin 235860 -> 235841 bytes .../doc/metapost/mcf2graph/mcf_example.tex | 2 +- .../doc/metapost/mcf2graph/mcf_man_soc-060.eps | 100 ------- .../doc/metapost/mcf2graph/mcf_man_soc-064.eps | 100 +++++++ .../doc/metapost/mcf2graph/mcf_man_soc.mf | 79 ++++-- .../doc/metapost/mcf2graph/mcf_manual.pdf | Bin 440033 -> 462405 bytes .../doc/metapost/mcf2graph/mcf_manual.tex | 298 +++++++++++++++------ .../doc/metapost/mcf2graph/mcf_mplib_exa.pdf | Bin 122289 -> 122254 bytes .../doc/metapost/mcf2graph/mcf_mplib_exa.tex | 4 +- Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf | 110 +++++--- 13 files changed, 468 insertions(+), 249 deletions(-) delete mode 100644 Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-060.eps create mode 100644 Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.eps (limited to 'Master') diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG index b827c211c0d..a3bee0be47d 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG +++ b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG @@ -1,6 +1,15 @@ ******************************************************************************* - Changelog of mcf2graph software package by Akira Yamaji 2017-01-15 + Changelog of mcf2graph software package by Akira Yamaji 2017-01-29 ******************************************************************************* +[ver. 4.09 / 2017-01-29] + -add new function puts() + put string in EXT(),ext() + -add new function use_font() + make font for puts() + -change option parameter name + sw_checklist => sw_report + -update MCF syntax manual + [ver. 4.08 / 2017-01-15] -add monoisotopic mass calculation -update MCF syntax manual diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/README b/Master/texmf-dist/doc/metapost/mcf2graph/README index bcd344c9b18..15ae275aa52 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 : 4.08 2017-01-15 + version : 4.09 2017-01-29 E-mail : mcf2graph@gmail.com Located at : http://www.ctan.org/pkg/mcf2graph ******************************************************************************** @@ -19,7 +19,7 @@ ( 3) mcf2graph.mf Macro of Metafont / Metapost ( 4) mcf_manual.tex MCF syntax manual(LaTeX file) ( 5) mcf_man_soc.mf Molecular difinition file for mcf_manual.tex - ( 6) mcf_man_soc-060.eps No.60 EPS(with color) file of (4) + ( 6) mcf_man_soc-064.eps No.64 EPS(with color) file of (4) ( 7) mcf_manual.pdf PDF of (4) (used LaTeX,dvipdfmx) ( 8) mcf_example.tex LaTeX example, Make file 'mcf_exa_soc-info.aux' before typeset @@ -36,7 +36,7 @@ ( 3) >mpost -s ahangle=2 FILENAME => output SVG file. ( 4) >mpost -s ahangle=3 FILENAME => output MDL Molfile(V2000) ( 5) >mpost -s ahlength=1 FILENAME => output first definition only (for test) - ( 6) >mpost -s ahlength=2 FILENAME => output checklist. + ( 6) >mpost -s ahlength=2 FILENAME => output report. 4. License Permission is hereby granted, free of charge, to any person obtaining a copy 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 97a01bf0236..3cb3c1facd0 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf @@ -1,12 +1,13 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2017.01.13 +% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2017.01.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %%% it must be version 4.08 or later +input mcf2graph.mf; %%% it must be version 4.09 or later %------------------------------------------------------------------------- font_wd#:=33mm#; font_ht#:=24mm#; max_bond_length#:=4.5mm#; %------------------------------------------------------------------------- +sw_select:=1; sw_auxout:=1; sw_font_frame:=0; sw_atom_frame:=0; @@ -23,7 +24,7 @@ var4:="cal_MW"; tag4:="cMW"; %%%% var8:="inf_USE"; tag8:="USE"; %%%% var9:="inf_EXA"; tag9:="EXA"; %%%% auxtag_out; -%%%% sw_checklist:=1; +%%%% sw_report:=1; %%%% sw_MOLout:=1; %%%% outputformat:="png"; hppp:=vppp:=0.1; outputtemplate:="%j-%3c.png"; %*************************************************************************** diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf index 162df6cac38..641c2fab99e 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 07a44728a79..2486b6f94b7 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2017.01.15 +% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2017.01.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[a4paper]{article} \usepackage{graphicx} 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 deleted file mode 100644 index 254fc84ed15..00000000000 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-060.eps +++ /dev/null @@ -1,100 +0,0 @@ -%!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-064.eps b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.eps new file mode 100644 index 00000000000..e1776150793 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.eps @@ -0,0 +1,100 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -1 -1 66 57 +%%HiResBoundingBox: -0.09962 -0.09962 65.06522 56.58049 +%%Creator: MetaPost 1.9991 +%%CreationDate: 2017.01.29:2040 +%%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 +newpath -0.09962 0.09962 moveto +-0.09962 -0.09962 lineto +0.09962 -0.09962 lineto +65.06522 -0.09962 lineto +65.06522 0.09962 lineto +65.06522 56.58049 lineto +64.86597 56.58049 lineto +-0.09962 56.58049 lineto +-0.09962 56.38124 lineto +-0.09962 -0.09962 lineto +0.09962 -0.09962 lineto +0.09962 0.09962 lineto +0.09962 56.58049 lineto +0.09962 56.38124 lineto +65.06522 56.38124 lineto +64.86597 56.38124 lineto +64.86597 -0.09962 lineto +64.86597 0.09962 lineto + closepath fill + 0 0.51848 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinecap 1 setlinejoin 10 setmiterlimit +newpath 14.1732 17.70528 moveto +27.95216 9.75003 lineto stroke +newpath 17.762 19.66449 moveto +29.69772 12.77344 lineto stroke +newpath 37.25676 9.74995 moveto +51.03572 17.70528 lineto stroke + 0 1 0 setrgbcolor 0.51848 + 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 51.03572 17.70528 moveto +51.03572 38.98781 lineto stroke +newpath 47.5446 19.83366 moveto +47.5446 36.85942 lineto stroke + 0 0 0 setrgbcolor 0 0.51848 dtransform truncate idtransform setlinewidth pop +newpath 51.03572 38.98781 moveto +37.25676 46.94304 lineto stroke +newpath 27.95216 46.94312 moveto +14.1732 38.98781 lineto stroke +newpath 29.69772 43.91971 moveto +17.762 37.0286 lineto stroke + 0.51848 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 14.1732 38.98781 moveto +14.1732 17.70528 lineto stroke + 1 0 0 setrgbcolor +newpath 28.79805 3.2576 moveto +29.57579 3.2576 lineto +29.57579 10.8704 lineto +28.79805 10.8704 lineto + closepath fill +newpath 35.63312 3.2576 moveto +36.41086 3.2576 lineto +36.41086 10.8704 lineto +35.63312 10.8704 lineto + closepath fill +newpath 29.88689 10.8704 moveto +28.79805 10.8704 lineto +35.32202 3.2576 lineto +36.41086 3.2576 lineto + closepath fill + 0 0 1 setrgbcolor +newpath 28.79805 45.82266 moveto +29.57579 45.82266 lineto +29.57579 53.43547 lineto +28.79805 53.43547 lineto + closepath fill +newpath 35.63312 45.82266 moveto +36.41086 45.82266 lineto +36.41086 53.43547 lineto +35.63312 53.43547 lineto + closepath fill +newpath 29.88689 53.43547 moveto +28.79805 53.43547 lineto +35.32202 45.82266 lineto +36.41086 45.82266 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 0cace2ff00d..bf9e92058d3 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf @@ -1,13 +1,13 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2017.01.15 +% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2017.01.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %% it must be version 4.08 or later +input mcf2graph.mf; %% it must be version 4.09 or later %------------------------------------------------------------------------ sw_auxout:=0; sw_mol_frame:=0; sw_expand:=0; sw_solid:=2; -%%%%%sw_checklist:=1; +%%%%%sw_report:=1; %*********************************************************************** font_wd#:=35mm#; font_ht#:=25mm#; @@ -786,9 +786,9 @@ beginfont("EN:Switwch molecular frame") endfont %*********************************************************************** beginfont("EN:Switwch atom frame") - font_ht#:=15mm#; + font_ht#:=12mm#; sw_atom_frame:=1; - MCf(<30,Ph,1:/Cl,4:/COOH,3:/OH) + MCf(<30,COOH,!0,COOH) endfont %*********************************************************************** beginfont("EN:MCd()") @@ -818,25 +818,40 @@ beginfont("EN:MCf() vt") endfont %*********************************************************************** beginfont("EN:EXT()") - font_ht#:=26mm#; + margin_left_right:=margin_top_bottom:=3mm; + font_wd#:=70mm#; + font_ht#:=35mm#; bond_len#:=8mm#; sw_font_frame:=3; - sw_mol_frame:=1; MCd(1,0.8)(0.1,0.5)(<30,Ph,2:/OH,5:/OH) MCd(1,0.8)(0.9,0.5)(<30,?6,$(3,6)dl,@(2,5)//O) - EXT(draw ((0,0)--(25mm,0)--(21mm,2mm)) shifted (0.3w,0.5h); - drawdot p0 withpen pencircle scaled 2mm; - drawdot p1 withpen pensquare scaled 2mm; - drawdot p2 withpen pensquare scaled 2mm;) + EXT( + draw ((0,0)--(25mm,0)--(21mm,2mm)) shifted (0.3w,0.52h); + draw ((4mm,-2mm)--(0,0)--(25mm,0)) shifted (0.3w,0.48h); + draw fullcircle scaled 3mm shifted p0; + drawdot p1 withpen pencircle scaled 2mm; + drawdot p2 withpen pensquare scaled 2mm; + use_font(5pt#); + puts((0.4w,0.6h))("Oxidation"); + puts((0.4w,0.35h))("Reduction"); + ) endfont %*********************************************************************** beginfont("EN:ext()") - font_wd#:=60mm#; - font_ht#:=20mm#; - bond_len#:=10mm#; - MCf(<30,Ph,4:/Cl,3:/F) - ext(draw p0--(p0+(wd,0))--(p0+(wd,ht)); - draw_vector(p6,a6-180,l); + margin_left_right:=margin_top_bottom:=3mm; + font_wd#:=70mm#; + font_ht#:=25mm#; + sw_solid:=0; + MCd(1,0.9)(0.1,0.5)(<30,Ph,3:/F,4:/Cl) + ext( + drawdot p0 withpen pencircle scaled 2mm; + draw p0--(p0+(wd,0))--(p0+(wd,ht)); + ) + MCd(1,0.9)(0.9,0.5)(<30,Ph,3:/F,4:/Cl) + ext( + draw_vector(p6,a6-180,l); + drawdot p0 withpen pensquare scaled 2mm; + draw p0--(p0+(wd,0))--(p0+(wd,ht)); ) endfont %*********************************************************************** @@ -911,7 +926,35 @@ beginfont("EN:Cholesterol","CAS:57-88-5","FM:C27H46O","MW:386.65") -1\^18,/*_,-60,!3,/_,!, ) endfont -%*********************************************************************** +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%*************************************************************************** +beginfont("EN:Acetamiprid","MW:222.676") + font_ht#:=20mm#; + MCf(<30,Ph,2:N,1:/Cl,4\,!,N,/_,!,/_,!!,N,!,CN) +endfont +%*************************************************************************** +beginfont("EN:Fenitrothion","MW:277.231") + font_ht#:=20mm#; + MCf(<30,!,O,!,P,//S,/O!^160,!,O,!,|,Ph,3:/_,4:/NO2) +endfont +%*************************************************************************** +beginfont("EN:Permethrin","MW:391.288") + font_ht#:=25mm#; + MCf(<-30,?3,2^-35:*/_,2^35:/*_,1\,!!,/Cl,!,Cl, + 3\,//O,!,O,!2,|,Ph,3\,O,-60,Ph) +endfont +%*************************************************************************** +beginfont("EN:Endosulfan","MW:406.904"); + font_ht#:=25mm#; + MCf(<26,?7,7=?6[13],11*,208~wf`1.45,&8~wb,10=d,@(3,5)O,4:S,4://O, + @(8,9,10,11,12^-210,12^-150)/Cl) +endfont; +%*************************************************************************** +beginfont("EN:Luciferin","MW:280.33") + MCf(<30,Ph,3=?5,8\,?5,$(9,16)d, + @(9,14)N,@(7,11)S,1:/OH,-2:*/COOH) +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,!) diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf index dfe41477291..656035e1754 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 d3030c9aef9..a3468a88fc1 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format manual by Akira Yamaji 2017.01.15 +% Molecular Coding Format manual by Akira Yamaji 2017.01.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[a4paper]{article} %%%%\usepackage{graphicx} @@ -62,6 +62,7 @@ \maketitle \begin{center} Located at http://www.ctan.org/pkg/mcf2graph \end{center} %----------------------------------------------------------------------------- +\thispagestyle{empty} \vspace{10mm} {\@strufont% \makebox[10mm]{}\char1 \raisebox{10mm}{\char2 }\char3 \raisebox{10mm}{\char4}\\ @@ -71,11 +72,13 @@ \makebox[10mm]{}\char17\raisebox{10mm}{\char18}\char19\raisebox{10mm}{\char20}\\} %----------------------------------------------------------------------------- \twocolumn +\thispagestyle{empty} \tableofcontents %----------------------------------------------------------------------------- \linethickness{0.08mm}% %---------------------------------------------------------------------------- \newpage +\setcounter{page}{1} \section{Introduction} Molecular Coding Format(MCF) is new linear notation represent chemical structure diagrams. @@ -540,7 +543,7 @@ pk font,PNG,SVG,EPS or MDL MOL file(V2000).\\ <30,Ph,@(2,5)N,2:red,5:blue,3=green \end{verbatim} %%%%\MCFstructure % for Metafont -\includegraphics{mcf_man_soc-060.eps}% for dvipdfmx +\includegraphics{mcf_man_soc-064.eps}% for dvipdfmx \advance\fontnum\@ne\relax\advance\tempnum\@ne\relax% %----------------------------------------------------------------------------- \subsubsection{Make block} @@ -885,7 +888,7 @@ pk font,PNG,SVG,EPS or MDL MOL file(V2000).\\ \subsubsection{Atom frame} \begin{verbatim} sw_atom_frame:=1; - MCf(<30,Ph,1:/Cl,4:/COOH,3:/OH) + MCf(<30,COOH,!0,COOH) ** default: sw_atom_frame=0 \end{verbatim} \MCFstructure @@ -935,22 +938,46 @@ pk font,PNG,SVG,EPS or MDL MOL file(V2000).\\ p[m]: molecular origin position (1<=m<=molecular count) +(Function) + puts(pos)(string): + put string at pos + use_font(wd#): + make string font for puts() + (font width = wd#) + draw_vector(pos,angle,length): + draw vector at pos + + %---------------------------------- beginfont() - sw_mol_frame:=1; - MCd(1,0.8)(0.1,0.5)(<30,Ph,2:/OH,5:/OH) + sw_font_frame:=3; + %---------------------------------- + MCd(1,0.8)(0.1,0.5) + (<30,Ph,2:/OH,5:/OH) MCd(1,0.8)(0.9,0.5) (<30,?6,$(3,6)dl,@(2,5)//O) + %---------------------------------- EXT( - draw ((0,0)--(25mm,0)--(21mm,2mm)) - shifted (0.3w,0.5h); - drawdot p0 withpen pencircle scaled 2mm; - drawdot p1 withpen pensquare scaled 2mm; - drawdot p2 withpen pensquare scaled 2mm; + draw ((0,0)--(25mm,0)--(21mm,2mm)) + shifted (0.3w,0.52h); + draw ((4mm,-2mm)--(0,0)--(25mm,0)) + shifted (0.3w,0.48h) + draw fullcircle scaled 3mm + shifted p0; + drawdot p1 + withpen pencircle scaled 2mm; + drawdot p2 + withpen pensquare scaled 2mm; + %---------------------------------- + use_font(5pt#); + puts((0.4w,0.6h))("Oxidation"); + puts((0.4w,0.35h))("Reduction"); ) + %---------------------------------- endfont \end{verbatim} -\MCFstructure +\MCFstructure\\ %----------------------------------------------------------------------------- +\newpage \subsection{Function ext()} \begin{verbatim} (Extra graphic to molecule) @@ -962,14 +989,22 @@ pk font,PNG,SVG,EPS or MDL MOL file(V2000).\\ p[m]: atom position of A[m] a[m]: branch angle of A[m] (1<=m<=atom count) - draw_vector(position,angle,length) beginfont() - MCf(<30,Ph,3:/F,4:/Cl) - ext(draw p0--(p0+(wd,0)) - --(p0+(wd,ht); - draw_vector(p6,a6-180,l); - ) + %------------------------------- + MCd(1,0.9)(0.1,0.5)(<30,Ph,3:/F,4:/Cl) + ext( + drawdot p0 withpen pencircle scaled 2mm; + draw p0--(p0+(wd,0))--(p0+(wd,ht)); + ) + %------------------------------- + MCd(1,0.9)(0.9,0.5)(<30,Ph,3:/F,4:/Cl) + ext( + draw_vector(p6,a6-180,l); + drawdot p0 withpen pensquare scaled 2mm; + draw p0--(p0+(wd,0))--(p0+(wd,ht)); + ) + %------------------------------- endfont \end{verbatim} \MCFstructure @@ -994,15 +1029,28 @@ pk font,PNG,SVG,EPS or MDL MOL file(V2000).\\ \end{verbatim} \MCFstructure\MCFstructure\MCFstructure %----------------------------------------------------------------------------- +\newpage \section{Output information} %----------------------------------------------------------------------------- \subsection{Output molecular information} \begin{verbatim} -var3:="calc_weight"; tag3:="cMW"; -var4:="calc_formula"; tag4:="cFM"; +tag3:="cMW"; var3:="calc_weight"; +tag4:="cFM"; var4:="calc_formula"; +%----------------------------------------- +beginfont() + MCf(<30,?6,3=d, + @(2,6)N,@(2,6)/_,@(1,5)//O, + |,-4=?5,2=dl,@(1,3)N,3:/_) +endfont +%----------------------------------------- + %% Output to mcf_man_soc-info.aux %% ..... ;C:85;cMW:194.19174;cFM:C8H10N4O2 +** default value + tag1:="F"; var1:="jobname"; + tag2:="C"; var2:="char_num"; + cMW:calculated molecular weight cFM:calculated molecular formula \end{verbatim} @@ -1051,29 +1099,77 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \begin{verbatim} tag3:="NO"; var3:="inf_NO"; tag4:="EN"; var4:="inf_EN"; - sw_auxfix:=1; auxtag_out; + sw_auxfix:=1; + auxtag_out; % output tag list + %-------------------------------------- beginfont("EN:Cholesterol","NO:1") - MCf(<30,?6,$(-4,-2)?6,-4=?5,7=dl, + MCf( + <30,?6,$(-4,-2)?6,-4=?5,7=dl, 1:*/OH,@(4,12)*/_^60,9:*/H^60, 10:/*H^180,11:/*H^-60,17:/*H^-54, - -1\^18,/*_,-60,!3,/_,!) + -1\^18,/*_,-60,!3,/_,! + ) endfont + %-------------------------------------- beginfont(......) ........... endfont + %-------------------------------------- .............. %% Output to mcf_man_soc-info.aux %% F;C;NO;EN mcf_man_soc;91;1;Ampicillin ........................... + ........................... + ** default sw_auxfix=0 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- \newpage \section{MCF example} -\subsection{Warfarin} +%----------------------------------------------------------------------------- +\subsection*{Acetamiprid} +\begin{verbatim} + <30,Ph,2:N,1:/Cl, + 4\,!,N,/_,!,/_,!!,N,!,CN +\end{verbatim} +\MCFstructure +%----------------------------------------------------------------------------- +\subsection*{Fenitrothion} +\begin{verbatim} + <30,!,O,!,P,//S,/O!^160,!,O,!, + |,Ph,3:/_,4:/NO2 +\end{verbatim} +\MCFstructure +%----------------------------------------------------------------------------- +\subsection*{Permethrin} +\begin{verbatim} + <-30,?3,2^-35:*/_,2^35:/*_, + 1\,!!,/Cl,!,Cl, + 3\,//O,!,O,!2,|,Ph, + 3\,O,-60,Ph +\end{verbatim} +\MCFstructure +%----------------------------------------------------------------------------- +\subsection*{Endosulfan} +\begin{verbatim} + <26,?7,7=?6[13],11*,208~wf`1.45,&8~wb, + 10=d,@(3,5)O,4:S,4://O, + @(8,9,10,11,12^-210,12^-150)/Cl +\end{verbatim} +\MCFstructure +%----------------------------------------------------------------------------- +\subsection*{Luciferin} +\begin{verbatim} + <30,Ph,3=?5,8\,?5,$(9,16)d, + @(9,14)N,@(7,11)S, + 1:/OH,-2:*/COOH +\end{verbatim} +\MCFstructure +%----------------------------------------------------------------------------- +\subsection*{Warfarin} \begin{verbatim} <30,Ph,3=?6,8=dl, 10:O,7:/OH,9://O, @@ -1081,7 +1177,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Limonin} +\subsection*{Limonin} \begin{verbatim} <30,?6,$(-3,-4)?6,-5=?3, -2=wf,-1=wb,6=?5,-4=?6,-5=wf, @@ -1092,7 +1188,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Sesamine} +\subsection*{Sesamine} \begin{verbatim} <54,?5,1=?5, @(4,7)O,@(1^-54,2^54)*/H, @@ -1101,7 +1197,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Colchicine} +\subsection*{Colchicine} \begin{verbatim} <30,Ph,@(1,2,6)/O!, -4=?7,-5=?7, @@ -1110,7 +1206,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Lycorine} +\subsection*{Lycorine} \begin{verbatim} <30,Ph, -4=?6,-2=?6,6=?5,(9,12)=?5[3], @@ -1121,7 +1217,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Gibberellin} +\subsection*{Gibberellin} \begin{verbatim} <18,?5,3=?7,5=?6[12], 8*,160`1.3,&3, @@ -1132,7 +1228,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Quinine} +\subsection*{Quinine} \begin{verbatim} <30,Ph,3=Ph,7:N,6:/O!, 10\,*/OH,/H~zf^-60,!, @@ -1142,7 +1238,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Atoropin} +\subsection*{Atoropin} \begin{verbatim} <-30,O,!,//O,!,!,Ph, #1\~zb^-120, @@ -1151,7 +1247,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Rotenone} +\subsection*{Rotenone} \begin{verbatim} <-60,?5,$(-3,-2,-3,-4)?6, $(7,9,-2,-4)dl,$(3,17)dr, @@ -1160,7 +1256,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Pyrethrin I} +\subsection*{Pyrethrin I} \begin{verbatim} <30,?3,@(3^35~wf,3^-35~zf)/_, 1*\,!!,iPr,2\*,//O,!,O,-36~zb,|, @@ -1168,7 +1264,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{Validamycin} +\subsection*{Validamycin} \begin{verbatim} <30,?6,@(5,6)/OH,3:/!OH>rl, #4\,O,-60,|,?6,2:O,@(3,4,5)/OH,6:/!OH, @@ -1176,7 +1272,7 @@ F:mcf_man_soc/C:90/EN:Ampicillin/CAS:69-53-4 \end{verbatim} \MCFstructure %----------------------------------------------------------------------------- -\subsection{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,||, @@ -1201,6 +1297,8 @@ font_wd#:=60mm#; % font width > font_ht#:=40mm#; % font height > var3:="cal_MW"; tag3:="cMW"; > AUX file table var4:="cal_FM"; tag4:="cFM"; > +%%%% sw_report:=1; > Report output +%%%% sw_MOLout:=1; > MOL file output outputformat:="png"; hppp:=vppp:=0.1; > PNG output outputtemplate:="%j-%3c.png"; > %------------------------------------------------------------------------- @@ -1218,10 +1316,35 @@ beginfont("NO:2","EN:Cholesterol") > begin font(information) -1\^17,/*_,!4,/_,!) > end MCF endfont > end font %------------------------------------------------------------------------ +beginfont("NO:3","EN:Limonin") > begin font(information) + MCf(<30,?6,$(-3,-4)?6, > begin MCF (3) + -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)/_, > + @(1^60,5^180,16^60)/*H, > + 14\*,|,?5,$(1,4)dl,3:O) > end MCF +endfont > end font +%------------------------------------------------------------------------ +beginfont("NO:4","EN:beta-carotene) > begin font(information) + MCf(<30,?6,3=dl,@(3,5^35,5^-35)/_, > begin MCF (4) + 4\,|,!18,$(1,3,5,7,9,11,13,15,17)dr, > + @(3,7,12,16)/_, > + |,?6,6=dl,@(6,2^35,2^-35)/_) > end MCF +endfont > end font +%------------------------------------------------------------------------ +beginfont("NO:5","EN:Gibberellin A3"); > begin font(information) + MCf(<18,?5,3=?7,5=?6[12], > begin MCF (5) + 8*,160`1.3,&3,13=dl,6=wf,8=wb, > + 5*,40~zf`1,O,60,//O^180,&14~zb, > + 2:/COOH,7://_,13:*/OH,8:/*OH, > + 14:*/_,@(1^60,4^60)*/H) > end MCF +endfont; > end font +%------------------------------------------------------------------------ bye \end{verbatim} %------------------------------------------------------------------------ \noindent% +\newpage \subsection{Information auxfile output} \paragraph{(Insert option parameter setting)} \begin{verbatim} @@ -1235,31 +1358,45 @@ bye \paragraph{(Output)} \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 +F:mcf_man_soc;C:1;cMW:349.40462;cFM:C16H19N3O4S;EN:Ampicillin +F:mcf_man_soc;C:2;cMW:386.6532;cFM:C27H46O;EN:Cholesterol +F:mcf_exa_soc;C:3;cMW:470.5113;cFM:C26H30O8;EN:Limonin +F:mcf_exa_soc;C:4;cMW:536.8722;cFM:C40H56;EN:beta-Carotene +F:mcf_exa_soc;C:5;cMW:346.3742;cFM:C19H22O6;EN:Gibberellin A3 ..................................................... ..................................................... (sw_auxfix=1) F;C;cMW;cFM;EN -mcf_man_soc;90;349.40462;C16H19N3O4S;Ampicillin -mcf_man_soc;91;386.6532;C27H46O;Cholesterol +mcf_man_soc;1;349.40462;C16H19N3O4S;Ampicillin +mcf_man_soc;2;386.6532;C27H46O;Cholesterol +mcf_exa_soc;3;470.5113;C26H30O8;Limonin +mcf_exa_soc;4;536.8722;C40H56;beta-Carotene +mcf_exa_soc;5;346.3742;C19H22O6;Gibberellin A3 ...................................... ...................................... -( tag : variable ) -F : filename C : char number NO : serial number EN : english name -cMW : molecular weight calculated cFM : molecular formula calculated +( Tag ) +F : filename +C : char number +NO : serial number +EN : english name +JN : japanese name +FM : formula from literature data MW : molecular weight from literature data +USE : the use +cMW : molecular weight calculated +cMI : monoisotopic mass calculated +cFM : molecular formula calculated \end{verbatim} %------------------------------------------------------------------------ \newpage \noindent% -\subsection{Checklist output} +\subsection{Report output} \paragraph{(Insert option parameter setting)} \begin{verbatim} - sw_checklist:=1; - ** default : sw_checklist=0 + sw_report:=1; + ** default : sw_report=0 \end{verbatim} \paragraph{(Command line)} \begin{verbatim} @@ -1269,51 +1406,52 @@ MW : molecular weight from literature data \begin{verbatim} %------------------------------------------------------------------ % Molecular name = Caffeine -% Warnings = 0 / Expanded command = 75 -% Width * Height = 39.5496 * 36.85023 -% Shift width * height = -9.33653 * -12.77606 -% Bond length = 9.23695 Atom size = 4.12231 +% Warnings = 0 / Expanded command = 80 +% Width * Height = 54.31772 * 50.43338 +% Shift width * height = -12.59462 * -17.49146 +% Bond length = 12.75589 Atom size = 5.38914 % Atom count= 14 Bond count= 15 Ring count= 2 Hide H count= 10 %------------------------------------------------------------------ -%< NO. >< x axis , y axis >< atom >< bond >< hide_H > -% A1 ( 0 , 0 ) C 4 -% A2 ( 0.866 , -0.5 ) N 3 -% A3 ( 1.732 , 0 ) C 4 -% A4 ( 1.732 , 1 ) C 4 -% A5 ( 0.866 , 1.5 ) C 4 -% A6 ( 0 , 1 ) N 3 -% A7 ( 2.683 , -0.309 ) N 3 -% A8 ( 3.271 , 0.5 ) C 3 1 -% A9 ( 2.683 , 1.309 ) N 3 -% A10 ( 0.866 , -1.383 ) C 1 3 -% A11 ( -0.788 , 1.455 ) C 1 3 -% A12 ( 2.959 , 2.159 ) C 1 3 -% A13 ( -0.788 , -0.455 ) O 2 -% A14 ( 0.866 , 2.383 ) O 2 +%< NO. >( x axis , y axis )< atom >< bond >< hide_H > +% A1 ( 0 , 0 ) C 4 +% A2 ( 0.866 , -0.5 ) N 3 +% A3 ( 1.732 , 0 ) C 4 +% A4 ( 1.732 , 1 ) C 4 +% A5 ( 0.866 , 1.5 ) C 4 +% A6 ( 0 , 1 ) N 3 +% A7 ( 2.683 , -0.309 ) N 3 +% A8 ( 3.271 , 0.5 ) C 3 1 +% A9 ( 2.683 , 1.309 ) N 3 +% A10 ( 0.866 , -1.371 ) C 1 3 +% A11 ( -0.776 , 1.448 ) C 1 3 +% A12 ( -0.776 , -0.448 ) O 2 +% A13 ( 0.866 , 2.371 ) O 2 +% A14 ( 2.955 , 2.147 ) C 1 3 %------------------------------------------------------------------ %< NO. >< bond (sdt)> -% B1 1 -> 2 ( 1) 330 ( -30) 1 ( 9.24) -% B2 2 -> 3 ( 1) 30 ( 30) 1 ( 9.24) -% B3 3 -> 4 ( 2) 90 ( 90) 1 ( 9.24) -% B4 4 -> 5 ( 1) 150 ( 150) 1 ( 9.24) -% B5 5 -> 6 ( 1) 210 ( -150) 1 ( 9.24) -% B6 6 -> 1 ( 1) 270 ( -90) 1 ( 9.24) -% B7 3 -> 7 ( 1) 342 ( -18) 1 ( 9.24) -% B8 7 -> 8 ( 2) 54 ( 54) 1 ( 9.24) -% B9 8 -> 9 ( 1) 126 ( 126) 1 ( 9.24) -% B10 9 -> 4 ( 1) 198 ( -162) 0.66 ( 6.1) -% B11 2 -> 10 ( 1) 270 ( -90) 0.66 ( 6.1) -% B12 6 -> 11 ( 1) 150 ( 150) 0.66 ( 6.1) -% B13 9 -> 12 ( 1) 72 ( 72) 0.66 ( 6.1) -% B14 1 -> 13 ( 2) 210 ( -150) 0.66 ( 6.1) -% B15 5 -> 14 ( 2) 90 ( 90) 0.66 ( 6.1) +% B1 1 -> 2 ( 1) 330 ( -30) 1 ( 12.76) +% B2 2 -> 3 ( 1) 30 ( 30) 1 ( 12.76) +% B3 3 -> 4 ( 2) 90 ( 90) 1 ( 12.76) +% B4 4 -> 5 ( 1) 150 ( 150) 1 ( 12.76) +% B5 5 -> 6 ( 1) 210 ( -150) 1 ( 12.76) +% B6 6 -> 1 ( 1) 270 ( -90) 1 ( 12.76) +% B7 3 -> 7 ( 1) 342 ( -18) 1 ( 12.76) +% B8 7 -> 8 ( 2) 54 ( 54) 1 ( 12.76) +% B9 8 -> 9 ( 1) 126 ( 126) 1 ( 12.76) +% B10 9 -> 4 ( 1) 198 ( -162) 0.66 ( 8.42) +% B11 2 -> 10 ( 1) 270 ( -90) 0.66 ( 8.42) +% B12 6 -> 11 ( 1) 150 ( 150) 0.66 ( 8.42) +% B13 1 -> 12 ( 2) 210 ( -150) 0.66 ( 8.42) +% B14 5 -> 13 ( 2) 90 ( 90) 0.66 ( 8.42) +% B15 9 -> 14 ( 1) 72 ( 72) 0.66 ( 8.42) %------------------------------------------------------------------ % C ( 12.0107) * 8 = 96.08557 % H ( 1.00793) * 10 = 10.07935 % N ( 14.0067) * 4 = 56.0268 % O ( 15.9994) * 2 = 31.99881 -% Weight Calc: 194.19052 / Input: 194.19 / weight gap= 0.00052 -% Fomula Calc: C8H10N4O2 / Input: C8H10N4O2 / MACTCH +% Monoisotopic mass: 194.08038 +% Weight Calc: 194.1905 / Input: 194.194 / weight gap= -0.00348 +% Fomula Calc: C8H10N4O2 / Input: %================================================================== \end{verbatim}% \newpage 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 2f74ae116c2..9d792f89f10 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 8a72f70b7db..32373b33a9a 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 2017.01.15 +% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2017.01.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% mcf2graph.mf it must be version 4.08 or later +%%% mcf2graph.mf it must be version 4.09 or later \documentclass{article} %------------------------------------------------------------------------------ \usepackage{luamplib}% diff --git a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf index 86aed79aff3..7fa4db15f74 100644 --- a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf +++ b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf2graph ver 4.08 Copyright (c) 2013-2017 Akira Yamaji +% mcf2graph ver 4.09 Copyright (c) 2013-2017 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, @@ -27,7 +27,7 @@ % Set outputformat to "svg" : mpost -s ahangle=2 FILENAME % Set outputformat to MDL Molfile : mpost -s ahangle=3 FILENAME % Set first font only (for test) : mpost -s ahlength=1 FILENAME -% Set output checklist : mpost -s ahlength=2 FILENAME +% Set output report : mpost -s ahlength=2 FILENAME %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% tracingstats:=1; message " This is mcf2graph ver 4.0 2017.1"; @@ -36,11 +36,11 @@ newinternal nA,nB,nC,nD,nE,nF,char_num,str_cnt,def_num,def_int,tbl_cnt; numeric save_para[],comD[][],parD[][],cntD[],tbl_str_wd[],tbl_atom[],tbl_subst[][],tbl_atom_wt[], tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],tbl_char_dp[]; string tbl_atom_str[],strD[],var[],tag[],mp_log_name,aux_delimiter; -picture atom_font[],mol_stru[]; +picture atom_font[],str_font[],mol_stru[],save_pict; %------------------------------------------------------------------------------------------------- char_num:=str_cnt:=proc_end:=0; sw_numberA:=sw_numberB:=sw_mol_frame:=sw_auxout:=sw_solid:=sw_expand:=sw_font_frame:=0; -sw_atom_frame:=sw_checklist:=sw_MOLout:=sw_subst_off:=sw_bond_single:=sw_auxfix:=sw_clip:=0; +sw_atom_frame:=sw_report:=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:=max_inf_num:=20; aux_delimiter:=";"; var1:="jobname"; tag1:="F"; var2:="char_num"; tag2:="C"; for i=3 upto aux_max: var[i]:=tag[i]:=""; endfor @@ -50,7 +50,7 @@ if (known green)and(known ahlength): color color_list[]; mp_log_name:=jobname&"-info.aux"; if ahlength=1: proc_end:=1; fi % first molecular only - if ahlength=2: sw_checklist:=1; def shipit = enddef; fi % checklist on + if ahlength=2: sw_report:=1; def shipit = enddef; fi % report on if ahangle=0: def shipit = enddef; % No image file elseif ahangle=1: outputformat:="png"; hppp:=vppp:=0.1; % PNG format elseif ahangle=2: outputformat:="svg"; % SVG format @@ -94,7 +94,7 @@ def_com(-4000)(_term,_jp_atom,_jp_atom_abs,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_li def_com(1)(si,dl,dr,db,dm,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,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_report,sw_numberA,sw_numberB,sw_mol_frame,sw_auxout,sw_solid,sw_expand,sw_MOLout, 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,max_bond_width,ratio_bondgap_bond,ratio_zebra_black,ratio_zebragap_bond, @@ -112,6 +112,7 @@ def restore_par(text t)= nA:=0; forsuffixes list=t: if list<>save_para[incr nA]: list:=save_para[nA]; fi endfor enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def beginfont(text s)= + char_num:=char_num+1; store_par(parameter_list); begingroup save cntA,cntB,cntM,minX,minY,f_beginchar,numS,sftX,sftY,f_ext, @@ -123,7 +124,6 @@ def beginfont(text s)= for i:=1 upto max_inf_num: info[i]:=":"; endfor f_ext:=inf_num:=cntM:=0; for list=s: info[incr inf_num]:=list; endfor - char_num:=char_num+1; enddef; %================================================================================================== def endfont= @@ -145,10 +145,11 @@ def endfont= beginchar(char_num,font_wd#,font_ht#,0) if (sw_font_frame=1)or(sw_font_frame=3): draw_frame((0,0),w,h,thickness_font_frame); fi if (sw_font_frame=2)or(sw_font_frame=3): - nA:=w-2margin_left_right; nB:=h-2margin_top_bottom; pT:=(margin_left_right,margin_top_bottom); + nA:=w-2margin_left_right; nB:=h-2margin_top_bottom; + pT:=(margin_left_right,margin_top_bottom); draw_frame(pT,nA,nB,thickness_font_frame); fi if sw_font_frame=4: draw_corner(w,h,thickness_font_frame); fi - if (sw_auxout=1)or(sw_checklist=1)or(sw_MOLout=1): proc_calc_out; fi + if (sw_auxout=1)or(sw_report=1)or(sw_MOLout=1): proc_calc_out; fi for i=1 upto cntM: addto currentpicture also mol_stru[i] shifted posM[0][i]; mol_stru[i]:=nullpicture; endfor @@ -316,6 +317,27 @@ def ext(text s)= s addto mol_stru[cntM] also currentpicture; clearit; endgroup; enddef; +%-------------------------------------------------------------------------------------------------- +def use_font(expr WD)= + save_pict:=currentpicture; + for i=1 upto 128: f_char[i]:=1; endfor + proc_char_setup(str_font)(WD); + str_wd#:=WD; + define_pixels(str_wd); + currentpicture:=save_pict; +enddef; +%-------------------------------------------------------------------------------------------------- +def puts(expr PA)(expr STR)= + begingroup + save cp; pair cp; + cp:=PA; + for i=0 upto length(STR)-1: + nA:=ASCII(pic_c(i,STR)); + addto currentpicture also str_font[nA] shifted (cp-(0,str_wd*tbl_char_dp[nA])); + cp:=cp+(str_wd*tbl_char_wd[nA],0); + endfor + endgroup; +enddef; %================================================================================================= def MCf(text s)= MCd(1,1)(.5,.5)(s) enddef; % MC fill draw %------------------------------------------------------------------------------------------------- @@ -359,7 +381,7 @@ def MCd(expr RW,RH)(expr FW,FH)(text TX)= if bond_len#>max_bond_length#: bond_len#:=max_bond_length#; proc_size_setup; proc_skeleton; proc_scaling; fi fi - proc_char_setup; + proc_char_setup(atom_font)(atom_wd#); %----------------------------------------------------------------------------------------------- for i=1 upto cntB: if lineB[i]=si_: draw_bond(i,sB[i],eB[i],angB[i],lineB[i]); fi endfor @@ -462,9 +484,15 @@ enddef; %------------------------------------------------------------------------------------------------- def char_use_check= for i=1 upto 128: f_char[i]:=0; endfor - if (sw_numberA>0)or(sw_numberB>0): for j=ASCII("0") upto ASCII("9"): f_char[j]:=1; endfor - else: for i=1 upto cntA: if numS[i]<>0: for j=0 upto length(strD[numS[i]])-1: - f_char[ASCII(pic_c(j,strD[numS[i]]))]:=1; endfor fi endfor fi + if (sw_numberA<>0)or(sw_numberB<>0): + for j=ASCII("0") upto ASCII("9"): f_char[j]:=1; endfor + else: + for i=1 upto cntA: + if numS[i]<>0: + for j=0 upto length(strD[numS[i]])-1: f_char[ASCII(pic_c(j,strD[numS[i]]))]:=1; endfor + fi + endfor + fi enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def proc_bond_atom(expr n)= @@ -747,7 +775,7 @@ CH3:='("C{H_3_}"); CN:='("CN"); NH2:='("N{H_2_}"); NO2:='("N{O_2_}"); SH:='("SH" SO3:='("S{O_3_}"); NMe:=N!:='(N,/Me); iPr:=Me!:='(60,-2\); tBu:='(60,-2\,-3*,60); OMe:=O!:='(O,!); OEt:=O!2:='(O,!2); OPr:=O!3:='(O,!3); OiPr:=OMe!:='(O,!,iPr); SMe:=S!:='(S,!); SEt:=S!2:='(S,!2); SPr:=S!3:='(S,!3); SiPr:=SMe!:='(S,!,iPr); -COOMe:=COO!:='(//O,!,O,!); COMe:=CO!:='(//O,!); +COOMe:=COO!:='(//O,!,O,!); COMe:=CO!:='(//O,!); COEt:=CO!2:='(//O,!2); OCOMe:=OCO!:='(O,!,//O,!); COOEt:=COO!2:='(//O,!,O,!2); COOiPr:=COOMe!:='(//O,!,O,!,iPr); COOPr:=COO!3:='(//O,!,O,!3); COOtBu:='(//O,!,O,!,tBu); NMeMe:=NMe!:='(N,/Me,!); NHCOMe:=NHCO!:='(NH,!,//O,!); @@ -780,15 +808,15 @@ char_size_set(.7)( 1)(.15)("pqg"); char_size_set(.7)(.8)( 0)("acekosuvxzwry"); char_size_set(.4)( 1)( 0)(".,:;'`"); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -def proc_char_setup= +def proc_char_setup(suffix FONT)(expr SIZE)= begingroup save Z,aW,aH,fW,hW,hW,hH,fP,hP,vL,hL,PO,POh,sH,FD; pair Z[]; %--------------------------------------------------------------- def FD(expr c)(text s)= if f_char[ASCII(c)]=1: - aW#:=atom_wd#*tbl_char_wd[ASCII(c)]*(1-ratio_atomgap_atom*2); - aH#:=atom_wd#*tbl_char_ht[ASCII(c)]*(1-ratio_atomgap_atom*2); + aW#:=SIZE*tbl_char_wd[ASCII(c)]*(1-ratio_atomgap_atom*2); + aH#:=SIZE*tbl_char_ht[ASCII(c)]*(1-ratio_atomgap_atom*2); define_pixels(aW,aH); fW:=aW-hP; hW:=.5aW; fH:=aH-hP; hH:=.5aH; Z01:=( 0,hP); Z02:=(hP, 0); Z03:=(hP,hP); Z04:=(aW,hP); Z05:=(fW, 0); Z08:=( 0,hH); @@ -796,7 +824,7 @@ def FD(expr c)(text s)= Z18:=(hP,aH); Z19:=(hW,hP); Z20:=(hW,hH); Z06:=(hW,aH); Z07:=(hW, 0); Z11:=(hW,aW); Z15:=(fW,aH); Z17:=(aW,hH); s; - atom_font[ASCII(c)]:= + FONT[ASCII(c)]:= currentpicture shifted (ratio_atomgap_atom*atom_wd,ratio_atomgap_atom*atom_wd); clearit; fi @@ -926,21 +954,21 @@ def STb(expr a)(text s)= enddef; %================================================================================================== tbl_cnt:=0; -STa("C" ,12.0107, 12.0000000); STa("H" , 1.00794, 1.00782503223); -STa("{Al}",26.9815, 26.98153853); STa("{As}",74.9216, 74.92159457); -STa("B" ,10.811, 11.00930536); STa("{Br}",79.904, 78.9183376); -STa("{Ca}",40.078, 39.962590863); STa("{Cl}",35.453, 34.968852); -STa("{Co}",58.933194, 58.93319429); STa("{Cr}",51.9961, 51.94050623); -STa("{Cu}",63.546, 62.92959772); STa("D" ,2.012, 2.01410177812); -STa("F" ,18.9984, 18.99840316273); STa("{Fe}",55.845, 55.93493633); -STa("{Hg}",200.59, 201.97064340); STa("I" ,126.90447, 126.9044719); -STa("K" ,39.0983, 38.9637064864); STa("{Li}",6.941, 7.0160034366); -STa("{Mg}",24.305, 23.985041697); STa("{Mn}",54.938044, 54.93804391); -STa("N" ,14.0067, 14.00307400443); STa("{Na}",22.98977, 22.9897692820); -STa("{Ni}",58.693, 57.93534241); STa("O" ,15.9994, 15.99491461957); -STa("P" ,30.973762, 30.97376199842); STa("S" ,32.065, 31.9720711744); -STa("{Se}",78.971, 79.9165218); STa("{Si}",28.0855, 27.97692653465); -STa("{Sn}",118.71, 119.90220163); STa("{Ti}",47.867, 47.94794198); +STa("C" ,12.0107, 12.0000000); STa("H" , 1.00794, 1.00782503223); +STa("{Al}",26.9815, 26.98153853); STa("{As}",74.9216, 74.92159457); +STa("B" ,10.811, 11.00930536); STa("{Br}",79.904, 78.9183376); +STa("{Ca}",40.078, 39.962590863); STa("{Cl}",35.453, 34.968852); +STa("{Co}",58.933194, 58.93319429); STa("{Cr}",51.9961, 51.94050623); +STa("{Cu}",63.546, 62.92959772); STa("D" ,2.012, 2.01410177812); +STa("F" ,18.9984, 18.99840316273); STa("{Fe}",55.845, 55.93493633); +STa("{Hg}",200.59, 201.97064340); STa("I" ,126.90447,126.9044719); +STa("K" ,39.0983, 38.9637064864); STa("{Li}",6.941, 7.0160034366); +STa("{Mg}",24.305, 23.985041697); STa("{Mn}",54.938044, 54.93804391); +STa("N" ,14.0067, 14.00307400443); STa("{Na}",22.98977, 22.9897692820); +STa("{Ni}",58.693, 57.93534241); STa("O" ,15.9994, 15.99491461957); +STa("P" ,30.973762, 30.97376199842); STa("S" ,32.065, 31.9720711744); +STa("{Se}",78.971, 79.9165218); STa("{Si}",28.0855, 27.97692653465); +STa("{Sn}",118.71, 119.90220163); STa("{Ti}",47.867, 47.94794198); STa("{Zn}",65.409, 63.92914201); %-------------------------------------------------------------------------------------------------- STb("{H_2_}")("H","H"); STb("OH")("O","H"); STb("O{Na}")("O","{Na}"); STb("CN")("C","N"); @@ -1020,7 +1048,7 @@ def proc_calc_out= cal_MI:=substring (0,10) of decimal(MI_num); cal_MW:=substring (0,8) of decimal(MW_num); if sw_auxout=1: proc_auxfile_out; fi - if sw_checklist=1: proc_checklist_out; fi + if sw_report=1: proc_report_out; fi if sw_MOLout=1: proc_MOLfile_out; fi endgroup enddef; @@ -1045,20 +1073,20 @@ vardef round_auto(expr n)= elseif (n<400)and(n>-400): round(n*10)/10 else: round(n) fi enddef; %-------------------------------------------------------------------------------------------------- -def proc_checklist_out= +def proc_report_out= message "%------------------------------------------------------------------"; message "% Molecular name = "& inf_EN; message "% Warnings = "&fdr(3)(warning_cnt)&" / Expanded command = "&decimal(cntD[0]); - message "% Width * Height = " & fdr(8)(mol_wd)&" * "&fdr(8)(mol_ht); - message "% Shift width * height = "& fdr(8)(minX)&" * "&fdr(8)(minY); + message "% Width * Height = " & fdr(10)(mol_wd)&" * "&fdr(10)(mol_ht); + message "% Shift width * height = "& fdr(10)(minX)&" * "&fdr(10)(minY); 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 count="&fdr(3)(cnt_hide_H); message "%------------------------------------------------------------------"; - message "%< NO. >< x axis , y axis >< atom >< bond >< hide_H >"; + message "%< NO. >( x axis , y axis )< atom >< bond >< hide_H >"; for i=1 upto cntA: - message "% A"&fdl(4)(i)&" ("&fdr(7)(round_auto(xpart(posA[i])/bond_len))&" , "& - fdr(7)(round_auto(ypart(posA[i])/bond_len))&" ) "&fixed_l(8)(strD[numS[i]])& + message "% A"&fdl(4)(i)&" ("&fdr(10)(round_auto(xpart(posA[i])/bond_len))&" , "& + fdr(10)(round_auto(ypart(posA[i])/bond_len))&" ) "&fixed_l(8)(strD[numS[i]])& " "&fdr(3)(Bcnt[i]) if hideH[i]>0: &fdr(8)(hideH[i]) fi; endfor message "%------------------------------------------------------------------"; @@ -1084,7 +1112,7 @@ def proc_checklist_out= if nA<40: &fdr(12)(tbl_atom_wt[i]*sumA[i]); else: &fdr(12)(nA)&" * 100"; fi fi endfor - message "% Mono isotopic:" &cal_MI_str; + message "% Monoisotopic mass: "&cal_MI_str; message "% Weight Calc: " &cal_MW_str &" / Input: " if inf_MW<>"": &inf_MW &" / weight gap= " &decimal(MW_num-scantokens(inf_MW)) fi; message "% Fomula Calc: "&cal_FM&" / Input: " -- cgit v1.2.3