From 7afd3410de5ecc644213fcbab439b023e44253b8 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 7 Mar 2021 22:04:32 +0000 Subject: mcf2graph (7mar21) git-svn-id: svn://tug.org/texlive/trunk@58197 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG | 11 +- Master/texmf-dist/doc/metapost/mcf2graph/README | 8 +- .../doc/metapost/mcf2graph/mcf_exa_soc.mf | 6 +- .../doc/metapost/mcf2graph/mcf_example.pdf | Bin 1119097 -> 324217 bytes .../doc/metapost/mcf2graph/mcf_example.tex | 2 +- .../doc/metapost/mcf2graph/mcf_man_soc.mf | 69 +- .../doc/metapost/mcf2graph/mcf_manual.pdf | Bin 618298 -> 350539 bytes .../doc/metapost/mcf2graph/mcf_manual.tex | 803 ++++++++++----------- .../doc/metapost/mcf2graph/mcf_mplib_exa.pdf | Bin 202662 -> 202590 bytes .../doc/metapost/mcf2graph/mcf_mplib_exa.tex | 4 +- Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf | 130 ++-- 11 files changed, 519 insertions(+), 514 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG index c2864f051f1..8bfc7deb2b0 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 2021-02-28 + Changelog of mcf2graph software package by Akira Yamaji 2021-03-07 ******************************************************************************* +[ver. 4.60 / 2021-03-07] + -$n (0<=n<360) can use as absolute angle + -change option parameter name + ratio_zebragap_bond => ratio_hashgap_bond + offset_zebra_gap => offset_hash_gap + -improve function check_mc() + -update MCF manual,example + pk font => eps(mps) file + [ver. 4.59 / 2021-02-28] -add command @(x,y) : move to (x,y) -improve function check_mc() diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/README b/Master/texmf-dist/doc/metapost/mcf2graph/README index 72cb7303d85..b5a428c088e 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.59 2021-02-28 + version : 4.60 2021-03-07 E-mail : mcf2graph@gmail.com Located at : http://www.ctan.org/pkg/mcf2graph ******************************************************************************** @@ -23,12 +23,12 @@ ( 6) mcf_man_soc.mf Molecular difinition file for mcf_manual.tex ( 7) mcf_manual.pdf PDF of (4) (used pdftex(LaTeX),makeindex) ( 8) mcf_example.tex LaTeX example, - Make file 'mcf_exa_soc-info.aux' before typeset + make file 'mcf_exa_soc-info.aux' before typeset >mpost -s ahlength=1 mcf_exa_soc.mf ( 9) mcf_exa_soc.mf Molecular difinition file for mcf_example.tex - (10) mcf_example.pdf PDF of (8) (used pdftex(LaTeX)) + (10) mcf_example.pdf PDF of (8) typeset with pdftex(LaTeX) (11) mcf_mplib_exa.tex luamplib(LuaLaTeX) example - (12) mcf_example.pdf PDF of (11) typeset with LuaTeX(LuaLaTeX) + (12) mcf_mplib_exa.pdf PDF of (11) typeset with LuaTeX(LaTeX) 3. How to use mcf2graph with Metapost Minimum requirement to run mcf2graph : mpost.exe,mpost.dll,mpost.mp,plain.mp 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 29b95a2ecdc..1d60bc062f0 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf @@ -1,8 +1,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2021.02.28 +% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2021.03.07 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %%% it must be version 4.59 -message "* mcf_exa_soc 2021.02.28"; +input mcf2graph.mf; %%% it must be version 4.60 +message "* mcf_exa_soc 2021.03.07"; message ""; %------------------------------------------------------------------------------ fsize:=(35mm,24mm); diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf index c5d423a2a94..a4a5a3ba7f6 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 8620e9576dd..155d6139e99 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex @@ -5,7 +5,7 @@ \usepackage{graphicx} %--------------------- \usepackage{mcf_setup} -\pdfpkresolution=1200 +%%%%\pdfpkresolution=1200 %--------------------- \pagestyle{empty} \topmargin=-24mm 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 7a4e76408e5..04ed57fe0c2 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf @@ -1,8 +1,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2021.02.28 +% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2021.03.07 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %% it must be version 4.578 -message "mcf_man_soc 2021.02.21"; message ""; +input mcf2graph.mf; %% it must be version 4.60 +message "mcf_man_soc 2021.03.07"; message ""; %------------------------------------------------------------------------ sw_mframe:=0; sw_expand:=0; @@ -141,13 +141,13 @@ sw_fframe:=1; fmargin:=(2mm,1mm); %*********************************************************************** beginfont("EN:Chain 1") - fsize:=(60mm,18mm); + fsize:=(60mm,17mm); sw_numberB:=1; numberB_end:=6; ratio_chain_ring:=1; %---------------------------------------------------------------------- - MC(<10,-30,45,-45,30,-30,60, - {1^-75,2^67.5,3^-60,4^75,5^-75,6^60}:/_~dt + MC(<15,-30,45,-45,60,$300,$0, + {1^$15,2^$345,3^$30,4^$345}:/_~dt,{5,6}=vf, ) add( defaultscale:=0.5; @@ -155,14 +155,12 @@ beginfont("EN:Chain 1") drawarrow B7/*.7{B7right}..{B1right}B1/*.7; label.ulft("-30",B7/*.7); drawarrow B8/*.7{B8left}..{B2left}B2/*.7; label.llft("45",B8/*.7); drawarrow B9/*.7{B9right}..{B3right}B3/*.7; label.ulft("-45",B9/*.7); - drawarrow B10/*.7{B10left}..{B4left}B4/*.7; label.llft("30",B10/*.7); - drawarrow B11/*.7{B11right}..{B5right}B5/*.7; label.ulft("-30",B11/*.7); - drawarrow B12/*.7{B12left}..{B6left}B6/*.7; label.llft("60",B12/*.7); + drawarrow B10/*.7{B10left}..{B4left}B4/*.7; label.llft("60",B10/*.7); ) endfont %*********************************************************************** beginfont("EN:Chain 2") - fsize:=(60mm,18mm); + fsize:=(60mm,17mm); sw_numberB:=1; numberB_end:=6; ratio_chain_ring:=1; @@ -183,7 +181,7 @@ beginfont("EN:Chain 2") endfont %*********************************************************************** beginfont("EN:Jump and Branch") - fsize:=(60mm,18mm); + fsize:=(60mm,16mm); fmargin:=(2mm,2mm); sw_trimming:=1; sw_numberA:=1; @@ -193,7 +191,7 @@ beginfont("EN:Jump and Branch") endfont %*********************************************************************** beginfont("EN:Jump and Branch") - fsize:=(60mm,18mm); + fsize:=(60mm,16mm); fmargin:=(2mm,2mm); sw_numberA:=1; sw_trimming:=1; @@ -203,7 +201,7 @@ beginfont("EN:Jump and Branch") endfont %*********************************************************************** beginfont("EN:branch1") - fsize:=(60mm,18mm); + fsize:=(60mm,16mm); fmargin:=(2mm,2mm); sw_numberA:=1; sw_trimming:=1; @@ -249,14 +247,14 @@ beginfont("EN:rotate 1") sw_trimming:=1; sw_numberB:=1; ratio_chain_ring:=1; - numberB_end:=5; + numberB_end:=7; defaultscale:=0.5; labeloffset:=2bp; - MC(#1,0,0,<90,0,<-90,0,0,{1,2,3,4,5}=vf, + MC(#1,0,0,<90,0,<-90,0,<$315,0,<$90,0,<$0,0,{1,2,3,4,5,6,7}=vf, {3,4^180}:/_~dt) add( - drawarrow B6/*.7{B6left}..{B3left}B3/*.7; label.urt("90",B6/*.7); - drawarrow B7/*.7{B7right}..{B4right}B4/*.7; label.urt("-90",B7/*.7); + drawarrow B8/*.7{B8left}..{B3left}B3/*.7; label.urt("90",B8/*.7); + drawarrow B9/*.7{B9right}..{B4right}B4/*.7; label.urt("-90",B9/*.7); ) endfont %*********************************************************************** @@ -307,7 +305,7 @@ endfont %*********************************************************************** beginfont("EN:over line") sw_trimming:=1; - fsize:=(75mm,20mm); + fsize:=(80mm,20mm); ratio_chain_ring:=1; MC(<30,!18,!,60,90`17, {2~si_,4~wf_,6~wb_,8~zf_,10~zb_, @@ -421,9 +419,15 @@ endfont beginfont("EN:fused ring 2") fsize:=(75mm,20mm); sw_numberB:=1; + msize:=(1,.9); MCat( 0,.5)(<30,?6,3=?6,(11,4)=?6[4],{11,4}=dt,{12,13,14,15}=bd) - msize:=(1,.9); MCat(.5,.5)(<30,?6,3=?6,(11,4)=?5[3],{11,4}=dt,{12,13,14}=bd) - msize:=(1,.9); MCat( 1,.5)(<30,?6,3=?6,(11,4)=?4[2],{11,4}=dt,{12,13}=bd) + add(defaultscale:=0.4; label("(1)",p0);) + msize:=(1,.9); + MCat(.5,.5)(<30,?6,3=?6,(11,4)=?5[3],{11,4}=dt,{12,13,14}=bd) + add(defaultscale:=0.4; label("(2)",p0);) + msize:=(1,.9); + MCat( 1,.5)(<30,?6,3=?6,(11,4)=?4[2],{11,4}=dt,{12,13}=bd) + add(defaultscale:=0.4; label("(3)",p0);) endfont %*********************************************************************** beginfont("EN:fused ring 3") @@ -431,7 +435,9 @@ beginfont("EN:fused ring 3") fmargin:=(2mm,2mm); sw_numberB:=1; MCat(0,1)(?6,{3,10}=?6,(16,4)=?6[3],{16,4}=dt,{17,18,19}=bd) + add(defaultscale:=0.4; label("(1)",p0);) MCat(1,0)(?6,{3,10}=?6,(16,4)=?5[2],{16,4}=dt,{17,18}=bd) + add(defaultscale:=0.4; label("(2)",p0);) endfont %*********************************************************************** beginfont("EN:fused ring 4") @@ -459,7 +465,7 @@ beginfont("EN:group 1") endfont %*********************************************************************** beginfont("EN:group 2") - fsize:=(70mm,15mm); + fsize:=(80mm,15mm); sw_trimming:=1; MC(<30,!`1,//O,!2`1,/*H,!2`1,*/H,!2`1,*/*H,!2`1,**?3,!`1) endfont @@ -471,7 +477,7 @@ beginfont("EN:group 3") endfont %*********************************************************************** beginfont("EN:group 3") - fsize:=(70mm,18mm); + fsize:=(80mm,18mm); fmargin:=(2mm,2mm); sw_numberA:=1; sw_trimming:=1; @@ -483,8 +489,8 @@ beginfont("EN:group 4") fsize:=(60mm,18mm); sw_trimming:=1; fmargin:=(2mm,2mm); - sw_numberA:=1; numberA_end:=7; - MC(<30,!6`1,{2~wf,4~zf,6^-30}:/_) + sw_numberA:=1; numberA_end:=9; + MC(<30,!8`1,{2~wf,4~zf,6^-30,8^$120}:/_) endfont %*********************************************************************** beginfont("EN:group 5") @@ -836,13 +842,13 @@ beginfont("EN:ratio_chain_ring") MCat(1, .5)(<30,?6,4:/!) endfont %*********************************************************************** -beginfont("EN:ratio_zebragap_bond") +beginfont("EN:ratio_hashgap_bond") fsize:=(60mm,15mm); - ratio_zebragap_bond:=0.06; + ratio_hashgap_bond:=0.06; MCat(0.08, .5)(<30,!2,2:/*_`1) - ratio_zebragap_bond:=0.12; %<<== default + ratio_hashgap_bond:=0.12; %<<== default MCat( .5, .5)(<30,!2,2:/*_`1) - ratio_zebragap_bond:=0.20; + ratio_hashgap_bond:=0.20; MCat(0.92, .5)(<30,!2,2:/*_`1) endfont %*********************************************************************** @@ -921,13 +927,6 @@ beginfont("EN:Switwch font frame 3") sw_fframe:=3; MC(<30,Ph) endfont -beginfont("EN:Switwch font frame 4") - fsize:=(30mm,10mm); - fmargin:=(5mm,1.5mm); - sw_fframe:=4; - MC(<30,Ph) - ext(drawdot(0,0);drawdot(w,0);drawdot(w,h);drawdot(0,h);) -endfont %*********************************************************************** beginfont("EN:Switwch molecular frame") sw_fframe:=1; diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf index 8740660b74a..f6ca1937e83 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 037b855bf08..357a853c5a9 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 2021.02.28 +% Molecular Coding Format manual by Akira Yamaji 2021.03.07 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[a4paper]{article} \usepackage[pdftex]{graphicx} @@ -29,7 +29,7 @@ \htman=45mm% \wdman=94mm% \htmans=42mm% -\fnum=29% +\fnum=1% %---------------------------------------------------------------------------- \edef\MCFjobname{mcf_man_soc}% %---------------------------------------------------------------------------- @@ -42,11 +42,12 @@ \font\@strufont=\MCFjobname\relax% %---------------------------------------------------------------------------- \def\MCFgraph{% -\ifx\fext\@pk{\hspace{5mm}\@strufont\char\fnum}% +\ifx\fext\@pk{\@strufont\char\fnum}% \else% \edef\file@name{\MCFjobname-\z@num\fnum.\fext}% +%%%%%%%\includegraphics{\file@name}% \setbox\fbox=\hbox{\@strufont\char\fnum}% -\hspace{5mm}\includegraphics[width=\wd\fbox,height=\ht\fbox]{\file@name}% +\includegraphics[width=\wd\fbox,height=\ht\fbox]{\file@name}% \fi% \global\advance\fnum\@ne\relax% }% @@ -55,8 +56,7 @@ \begin{picture}(75,130)% \put(0,120){\bf [\NO]\EN}% \put(5,115){\small\tt FM:\fm{ }MW:\mw}% - \put(5,0){\font\@strufont=\File\relax% - \hbox{\@strufont\char\Char}}% + \put(5,0){\MCFgraph}% \end{picture}% }% %---------------------------------------------------------------------------- @@ -72,15 +72,13 @@ %----------------------------------------------------------------------------- \thispagestyle{empty} \vspace{5mm}% -{\@strufont% -\char1 \char2 \char3 \char4\\ -\char5 \char6 \char7 \char8\\ -\char9 \char10\char11\char12\\ -\char13\char14\char15\char16\\ -\char17\char18\char19\char20\\ -\char21\char22\char23\char24\\ -\char25\char26\char27\char28 -}% +\MCFgraph\MCFgraph\MCFgraph\MCFgraph\\ +\MCFgraph\MCFgraph\MCFgraph\MCFgraph\\ +\MCFgraph\MCFgraph\MCFgraph\MCFgraph\\ +\MCFgraph\MCFgraph\MCFgraph\MCFgraph\\ +\MCFgraph\MCFgraph\MCFgraph\MCFgraph\\ +\MCFgraph\MCFgraph\MCFgraph\MCFgraph\\ +\MCFgraph\MCFgraph\MCFgraph\MCFgraph %----------------------------------------------------------------------------- \twocolumn \thispagestyle{empty} @@ -102,41 +100,41 @@ exact mass, molecular formula. \subsection{Make bond} \subsubsection{Chain} \begin{verbatim} - real number plus (+): Counterclockwize - real number minus(-): Clockwize +real number plus (+): counterclockwize +real number minus(-): clockwize +$n (0<=n<360): absolute angle - <-10,-30,45,-45,30,-30,60 +<10,-30,45,-45,60,$300,$0 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Chain use !,!n} \index{"!}% \begin{verbatim} - ! : take value 60 or -60 depend on - current angle and environment - !6 : !,!,!,!,!,! +! : take value 60 or -60 depend on + current angle and environment +!6 : !,!,!,!,!,! - <-30,!,!,!,!,!,! - <-30,!6 +<-30,!6 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Jump to atom} \index{"@}% \begin{verbatim} - @n : Jump to An - ** An: atom number(-999<=n<=4095) - - <-30,!6,@3,0,!,@5,-30 +@n : Jump to An +** An: atom number(-999<=n<=4095) + +<-30,!6,@3,0,!,@5,-30 \end{verbatim} \MCFgraph %------------------------------------ \subsubsection{Branch bond} \index{\textbackslash}% \begin{verbatim} - \ : 0 +\ : 0 - <-30,!6,@3,\,! +<-30,!6,@3,\,! \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- @@ -146,14 +144,14 @@ exact mass, molecular formula. \index{\textbackslash\textbackslash}% \index{*\textbackslash*}% \begin{verbatim} - \ : 0 - *\ : 0~wf - \* : 0~zf - \\ : 0~dm - *\* : 0~wv +\ : 0 +*\ : 0~wf +\* : 0~zf +\\ : 0~dm +*\* : 0~wv - <30,!8, - @2,\,!,@4,*\,!,@6,\*,!,@8,\\,!,@10,*\*,! +<30,!8, +@2,\,!,@4,*\,!,@6,\*,!,@8,\\,!,@10,*\*,! \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- @@ -161,37 +159,37 @@ exact mass, molecular formula. \index{\textasciitilde}% ~ \index{`}% \begin{verbatim} - <30,!6, - \~dr,!, : 0~dr,! - \`1.5,-90 : 0`1.5,-90 - \^15,-60 : 0^15,-60 +<30,!6, +\~dr,!, : 0~dr,! +\`1.5,-90 : 0`1.5,-90 +\^15,-60 : 0^15,-60 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Connect atom} \index{\&}% \begin{verbatim} - &n : Connect to An +&n : Connect to An - <-30,!6,@3,\,!3,&6~bd,@9,&4~bz +<-30,!6,@3,\,!3,&6~bd,@9,&4~bz \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Ring} \index{?}% \begin{verbatim} - ?n : n membered ring(3<=n<=20) - ?6 : <-120,60,60,60,60,60,&1 - ?6 +?n : n membered ring(3<=n<=20) +?6 : <-120,60,60,60,60,60,&1 +?6 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Rotate current angle} \index{\textgreater}% \begin{verbatim} - : change environment +~ : change type +^ : change angle +` : change length +> : change environment - <-30,``1,!, - /_`2^30,!2,/!2>lr,!2,/!2>rl,!) +<-30,``1,!, + /_`2^30,!2,/!2>lr,!2,/!2>rl,!) \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Add group} \begin{verbatim} - <30,!17,2:/_,4:/!,6:/!2, - 10:/?!,14:/??!,16:/Ph^-60 +<30,!17,2:/_,4:/!,6:/!2, +10:/?!,14:/??!,16:/Ph^-60 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Add modified group} \begin{verbatim} - ~,^,` : change type,angle,length +~,^,` : change type,angle,length - <30,!6, - {2~wf,4~zf,6^-30}:/_ +<30,!6,{2~wf,4~zf,6^-30,8^$120}:/_ \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \begin{verbatim} - ^,`,> : change angle,length,environment +^,`,> : change angle,length,environment - <-30,!7`1, - 3:/_`2^30,5:/!2>lr,7:/!2>rl +<-30,!7`1,3:/_`2^30,5:/!2>lr,7:/!2>rl \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- @@ -568,12 +562,12 @@ exact mass, molecular formula. \index{vt}% \index{"'}% \begin{verbatim} - >hz : horizontal environment (default) - >vt : vertical environment +>hz : horizontal environment (default) +>vt : vertical environment - ?4, - {3^-90,3^-30,3^90}:/'(!3,"{hz}")>hz, - {1^-60,1,1^60}:/'(!3,"{vt}")>vt +?4, +{3^-90,3^-30,3^90}:/'(!3,"{hz}")>hz, +{1^-60,1,1^60}:/'(!3,"{vt}")>vt \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- @@ -581,32 +575,32 @@ exact mass, molecular formula. \index{lr}% \index{rl}% \begin{verbatim} - >lr : left-right environment - >rl : right-left environment +>lr : left-right environment +>rl : right-left environment - <-30,!6, - {3^-30,3,3^30}:/'(!3,"{lr}")>lr, - {5^-30,5,5^30}:/'(!3,"{rl}")>rl +<-30,!6, +{3^-30,3,3^30}:/'(!3,"{lr}")>lr, +{5^-30,5,5^30}:/'(!3,"{rl}")>rl \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Fixed rotate angle} \index{\textgreater}% \begin{verbatim} - >n : rotate n +>n : rotate n - <30,!4, - 2:/!6>30, % 2:\,30,30,30,30,30,30 - 4:/!4>-45 % 4:\,-45,-45,-45,-45 +<30,!4, +2:/!6>30, % 2:\,30,30,30,30,30,30 +4:/!4>-45 % 4:\,-45,-45,-45,-45 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Multi rotate angle} \begin{verbatim} - >'(90,-90,...) : rotate 90,-90,... +>'(90,-90,...) : rotate 90,-90,... - <30,!6,6>'(90,-90,90,-90,90):/!5 +<30,!6,6>'(90,-90,90,-90,90):/!5 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- @@ -619,13 +613,13 @@ exact mass, molecular formula. \index{SO}% \index{SOO}% \begin{verbatim} - NH : N,/H~nl - N! : N,/_ - N!2 : N,/! - SO : S,//O - SOO : S,//O^35,//^-35 +NH : N,/H~nl +N! : N,/_ +N!2 : N,/! +SO : S,//O +SOO : S,//O^35,//^-35 - <-30,!2,NH,!2,N!,!2,N!2,SO,!2,SOO,! +<-30,!2,NH,!2,N!,!2,N!2,SO,!2,SOO,! \end{verbatim} \MCFgraph \index{?"!}% @@ -633,41 +627,41 @@ exact mass, molecular formula. \index{??"!}% \index{N?"!}% \begin{verbatim} - ?! : /_,! - ?? : /_^35,/_-35 - /?! : isopropyl - /??! : tert-butyl - /N?! : dimethylamino +?! : /_,! +?? : /_^35,/_-35 +/?! : isopropyl +/??! : tert-butyl +/N?! : dimethylamino - <30,!9`1,?!,!,??,!, - 2:??,4:/??,6:/??!,8:/N?! +<30,!9`1,?!,!,??,!, +2:??,4:/??,6:/??!,8:/N?! \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Parts definition} \begin{verbatim} - '(..) : user defined parts +'(..) : user defined parts - iBuOH:='(!,/_,!,OH); - MC(<30,?6,{4,6}:/iBuOH) +iBuOH:='(!,/_,!,OH); +MC(<30,?6,{4,6}:/iBuOH) \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Parts inline definition} \begin{verbatim} - <30,!, /'(!,/_,!,OH),! +<30,!, /'(!,/_,!,OH),! - <30,!8,{2,6}:/'(!,/_,!,OH) +<30,!8,{2,6}:/'(!,/_,!,OH) \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Move position} \index{"@()}% \begin{verbatim} - @(x,y) : Move to (l*x,l*y) from origin - ** l=bond length of ring +@(x,y) : Move to (l*x,l*y) from origin + ** l=bond length of ring - <30,?6,@3,!4,//O,!,O,n_^60,@(6,1),H,p_^15 +<30,?6,@3,!4,//O,!,O,n_^60,@(6,1),H,p_^15 \end{verbatim} \MCFgraph %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -677,11 +671,11 @@ exact mass, molecular formula. \subsection{Angle parameter} \index{mangle}% \begin{verbatim} - mangle=0 ** default +mangle=0 ** default - MCat(0.2,0.5)(Ph) - mangle:=30; - MCat(0.8,0.5)(Ph) +MCat(0.2,0.5)(Ph) +mangle:=30; +MCat(0.8,0.5)(Ph) \end{verbatim} \MCFgraph %------------------------------------------------------------------------------ @@ -690,57 +684,57 @@ exact mass, molecular formula. \subsubsection{Bond length} \index{blength}% \begin{verbatim} - (fit to font size) - blength=0 ** default +(fit to font size) +blength=0 ** default \end{verbatim} \MCFgraph %----------------------------------------- \begin{verbatim} - (ratio bond/font width) - blength=0.1 ** (01) ignore msize(w,h) +(bond length) +blength=9mm +** (blength>1) ignore msize(w,h) \end{verbatim} \MCFgraph %------------------------------------------------------------------------------ \subsubsection{Molecular size} \index{msize}% \begin{verbatim} - msize=(1,1) ** default +msize=(1,1) ** default \end{verbatim} \MCFgraph %----------------------------------------------------------- \begin{verbatim} - msize=(0.25,1) - msize=40mm-4mm*0.25=9mm +msize=(0.25,1) +msize=40mm-4mm*0.25=9mm \end{verbatim} \MCFgraph %----------------------------------------------------------- \begin{verbatim} - msize=(11mm,11mm) +msize=(11mm,11mm) \end{verbatim} \MCFgraph %------------------------------------------------------------------------------ \subsubsection{Molecular position} \index{mposition}% \begin{verbatim} - mposition=(0.5,0.5) ** default +mposition=(0.5,0.5) ** default \end{verbatim} \MCFgraph %-------------------------------------------------------------- \begin{verbatim} - mposition=(1,0) +mposition=(1,0) \end{verbatim} \MCFgraph %-------------------------------------------------------------- \begin{verbatim} - mposition=(10mm,4mm) +mposition=(10mm,4mm) \end{verbatim} \MCFgraph %------------------------------------------------------------------------------ @@ -749,76 +743,76 @@ exact mass, molecular formula. \subsubsection{Font size} \index{fsize}% \begin{verbatim} - fsize=(font width,font height) - ** default: (30mm,20mm) +fsize=(font width,font height) +** default: (30mm,20mm) - fsize=(40mm,15mm) +fsize=(40mm,15mm) \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Font margin} \index{fmargin}% \begin{verbatim} - fmargin=(margin left rigth,top bottom) - ** default: (0.4mm,0.4mm) +fmargin=(margin left rigth,top bottom) +** default: (0.4mm,0.4mm) - fmargin=(10mm,2mm) +fmargin=(10mm,2mm) \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Offset thickness of bond} \index{offset\_thickness}% \begin{verbatim} - default: offset_thickness=0.2pt +default: offset_thickness=0.2pt \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0pt 0.2pt 0.5pt + 0pt 0.2pt 0.5pt \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Offset of double bond gap} \index{offset\_bond\_gap}% \begin{verbatim} - default: offset_bond_gap=0.3pt +default: offset_bond_gap=0.3pt \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.0pt 0.3pt 1.0pt + 0.0pt 0.3pt 1.0pt \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Offset of atom width} \index{offset\_atom}% \begin{verbatim} - default: offset_atom=0.8pt +default: offset_atom=0.8pt \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.0pt 0.8pt 2.0pt + 0.0pt 0.8pt 2.0pt \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Offset of wedge width} \index{offset\_wedge}% \begin{verbatim} - default: offset_wedge=0.4pt +default: offset_wedge=0.4pt \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.0pt 0.4pt 1.0pt + 0.0pt 0.4pt 1.0pt \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Max bond length} \index{max\_blength}% \begin{verbatim} - default: max_blength=10mm +default: max_blength=10mm \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 6mm 8mm 20mm + 6mm 8mm 20mm \end{verbatim} %----------------------------------------------------------------------------- \subsection{Ratio parameter} @@ -826,92 +820,92 @@ exact mass, molecular formula. \subsubsection{Thickness/bond length} \index{ratio\_thickness\_bond}% \begin{verbatim} - default: ratio_thickness_bond=0.015 +default: ratio_thickness_bond=0.015 \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.005 0.015 0.030 + 0.005 0.015 0.030 \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Char/bond thickness} \index{ratio\_char\_bond}% \begin{verbatim} - default: ratio_char_bond=1.5 +default: ratio_char_bond=1.5 \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 1.0 1.5 2.0 + 1.0 1.5 2.0 \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Bond gap/bond length} \index{ratio\_bondgap\_bond}% \begin{verbatim} - default: ratio_bondgap_bond= 0.15 +default: ratio_bondgap_bond= 0.15 \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.10 0.15 0.20 + 0.10 0.15 0.20 \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Atom/bond length} \index{ratio\_atom\_bond}% \begin{verbatim} - default: ratio_atom_bond= 0.36 +default: ratio_atom_bond= 0.36 \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.25 0.36 0.46 + 0.25 0.36 0.46 \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Wedge/bond length} \index{ratio\_wedge\_bond}% \begin{verbatim} - default: ratio_wedge_bond=0.12 +default: ratio_wedge_bond=0.12 \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.10 0.12 0.20 + 0.10 0.12 0.20 \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Font atom gap/atom length} \index{ratio\_atomgap\_atom}% \begin{verbatim} - default: ratio_atomgap_atom= 0.050 +default: ratio_atomgap_atom= 0.050 \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.0 0.050 0.12 + 0.0 0.050 0.12 \end{verbatim} %----------------------------------------------------------------------------- \subsubsection{Chain/ring length} \index{ratio\_chain\_ring}% \begin{verbatim} - default: ratio_chain_ring= 0.66 +default: ratio_chain_ring= 0.66 \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.4 0.65 1.0 + 0.4 0.65 1.0 \end{verbatim} %----------------------------------------------------------------------------- -\subsubsection{Zebra gap/bond length} -\index{ratio\_zebragap\_bond}% +\subsubsection{Hash gap/bond length} +\index{ratio\_hashgap\_bond}% \begin{verbatim} - default: ratio_zebragap_bond=0.12 +default: ratio_hashgap_bond=0.12 \end{verbatim} \MCFgraph \vspace{-3mm}% \begin{verbatim} - 0.06 0.12 0.20 + 0.06 0.12 0.20 \end{verbatim} %----------------------------------------------------------------------------- -%%\newpage +\newpage %----------------------------------------------------------------------------- \subsection{Drawing mode} %----------------------------------------------------------------------------- @@ -920,9 +914,9 @@ exact mass, molecular formula. \index{numberA\_start}% \index{numberA\_end}% \begin{verbatim} - numberA_start:=3; numberA_end:=8; - default: sw_numberA=0 : - numberA_start=1 numberA_end=4095 +numberA_start:=3; numberA_end:=8; +default: sw_numberA=0 : + numberA_start=1 numberA_end=4095 \end{verbatim} \MCFgraph \begin{picture}(5,20) @@ -936,9 +930,9 @@ exact mass, molecular formula. \index{numberB\_start}% \index{numberB\_end}% \begin{verbatim} - numberB_start:=3; numberB_end:=8; - default: sw_numberB=0 : - numberB_start=1 numberB_end=4095 +numberB_start:=3; numberB_end:=8; +default: sw_numberB=0 : + numberB_start=1 numberB_end=4095 \end{verbatim} \MCFgraph \begin{picture}(5,20) @@ -950,16 +944,16 @@ exact mass, molecular formula. \subsubsection{Trimming mode} \index{sw\_trimming}% \begin{verbatim} - sw_trimming:=0; ** default - msize:=(1,0.7); - MCat(0.2,0.3)(Ph) - MCat(0.8,0.7)(Ph) +sw_trimming:=0; ** default +msize:=(1,0.7); +MCat(0.2,0.3)(Ph) +MCat(0.8,0.7)(Ph) \end{verbatim} \MCFgraph \begin{verbatim} - sw_trimming:=1; - MCat(0.2,0.3)(Ph) - MCat(0.8,0.7)(Ph) +sw_trimming:=1; +MCat(0.2,0.3)(Ph) +MCat(0.8,0.7)(Ph) \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- @@ -976,14 +970,14 @@ MCat(1, .5)(<30,Ph,4:/COOH,3:/NH2) \subsubsection{Group off mode} \index{sw\_group\_off}% \begin{verbatim} - ** default: sw_group_off=0 +** default: sw_group_off=0 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Single bond mode} \index{sw\_single}% \begin{verbatim} - ** default: sw_single=0 +** default: sw_single=0 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- @@ -992,39 +986,38 @@ MCat(1, .5)(<30,Ph,4:/COOH,3:/NH2) \subsubsection{Font frame} \index{sw\_fframe}% \begin{verbatim} - (Draw font frame) - fmargin:=(5mm,2mm); - sw_fframe=1 +** default:sw_fframe=0 +(Draw font frame) +fmargin:=(5mm,2mm); +sw_fframe=1 \end{verbatim} \MCFgraph \begin{verbatim} - (Frame inside margin) - sw_fframe=2 +(Frame inside margin) +sw_fframe=2 \end{verbatim} \MCFgraph \begin{verbatim} - (Draw both frame) - sw_fframe=3 -\end{verbatim} -\MCFgraph -\begin{verbatim} - (Small dot at corner) - sw_fframe=4 +(Draw both frame) +sw_fframe=3 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Molecular frame} \index{sw\_mframe}% \begin{verbatim} - sw_mframe=1 ** default:sw_mframe=0 +sw_mframe=1 +** default:sw_mframe=0 \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsubsection{Atom frame} \index{sw\_aframe}% \begin{verbatim} - sw_aframe=1 ** default: sw_aframe=0 - MC(<30,COOH,!,COOH) +sw_aframe=1 +** default: sw_aframe=0 + +MC(<30,COOH,!,COOH) \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- @@ -1035,35 +1028,35 @@ MCat(1, .5)(<30,Ph,4:/COOH,3:/NH2) \index{beginfont()}% \index{endfont}% \begin{verbatim} - beginfont() - MC(Ph) - endfont - beginfont() - %-------------------------- - ratio_thickness_bond:=0.05; - %-------------------------- - MC(Ph) - endfont - beginfont() - MC(Ph) - endfont +beginfont() + MC(Ph) +endfont +beginfont() + %-------------------------- + ratio_thickness_bond:=0.05; + %-------------------------- + MC(Ph) +endfont +beginfont() + MC(Ph) +endfont \end{verbatim} \MCFgraph\MCFgraph\MCFgraph %----------------------------------------------------------------------------- \subsubsection{Global parameter setting} \begin{verbatim} - beginfont() - MC(Ph) - endfont - %-------------------------- - ratio_thickness_bond:=0.05; - %-------------------------- - beginfont() - MC(Ph) - endfont - beginfont() - MC(Ph) - endfont +beginfont() + MC(Ph) +endfont +%-------------------------- +ratio_thickness_bond:=0.05; +%-------------------------- +beginfont() + MC(Ph) +endfont +beginfont() + MC(Ph) +endfont \end{verbatim} \MCFgraph\MCFgraph\MCFgraph %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1072,47 +1065,47 @@ MCat(1, .5)(<30,Ph,4:/COOH,3:/NH2) \subsection{Function MC()} \index{MC()}% \begin{verbatim} - (Draw molecule) +(Draw molecule) - msize=(a,b) **default (1,1) - mposition=(c,d) **default (0.5,0.5) +msize=(a,b) **default (1,1) +mposition=(c,d) **default (0.5,0.5) - a: ratio molecular width/font width - b: ratio molecular hight/font hight - c: x axis position - d: y axis position +a: ratio molecular width/font width +b: ratio molecular hight/font hight +c: x axis position +d: y axis position - beginfont() - MC(<30,Ph,3:/F,4:/Cl) - endfont +beginfont() + MC(<30,Ph,3:/F,4:/Cl) +endfont \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- \subsection{Function MCat()} \index{MCat()}% \begin{verbatim} - (Draw molecule at mposition) +(Draw molecule at mposition) - MCat(c,d)(....) : +MCat(c,d)(....) : - mposition:=(c,d); MC(....) +mposition:=(c,d); MC(....) - c: x axis position d: y axis position +c: x axis position d: y axis position - defaultsize:=5bp; - fsize:=(40mm,40mm); fmargin:=(3mm,3mm); - blength:=0.1; sw_fframe:=1; - mangle:=0; - for i=1 step -0.5 until 0: - for j=0 step 0.5 until 1: - MCat(j,i)(Ph,4:N) - add(drawarrow((A1+A1up**aw)..A1); - label(decimal(mangle), - p0+(0.5w,0.5h)); - ) - mangle:=mangle+30; - endfor +defaultsize:=5bp; +fsize:=(40mm,40mm); fmargin:=(3mm,3mm); +blength:=0.1; sw_fframe:=1; +mangle:=0; +for i=1 step -0.5 until 0: + for j=0 step 0.5 until 1: + MCat(j,i)(Ph,4:N) + add(drawarrow((A1+A1up**aw)..A1); + label(decimal(mangle), + p0+(0.5w,0.5h)); + ) + mangle:=mangle+30; endfor +endfor \end{verbatim} \MCFgraph @@ -1120,27 +1113,27 @@ MCat(1, .5)(<30,Ph,4:/COOH,3:/NH2) \subsection{Function check\_mc()} \index{check\_mc()}% \begin{verbatim} - (immediately compile) +(immediately compile) - beginfont("EN:Pyridine") - MC(Ph,<30,2:N) - endfont +beginfont("EN:Pyridine") + MC(Ph,<30,2:N) +endfont - (check mcf and compile) +(check mcf and compile) - beginfont("EN:Pyridine",":<30,Ph,2:N") - if check_mc(mc)=0: MC(scantokens(mc)) fi - endfont +beginfont("EN:Pyridine",":<30,Ph,2:N") + if check_mc(mc)=0: MC(scantokens(mc)) fi +endfont - ** error in mcf check_mc(mc)=1 - beginfont("EN:Pyridine",":<30,Ph,2):N") - if check_mc(mc)=0: MC(scantokens(mc)) fi - endfont +** error in mcf check_mc(mc)>=1 +beginfont("EN:Pyridine",":<30,Ph,2):N") + if check_mc(mc)=0: MC(scantokens(mc)) fi +endfont \end{verbatim} -\MCFgraph\hspace{15mm}\MCFgraph +\MCFgraph\hspace{22mm}\MCFgraph \begin{verbatim} - check_mc(mc)=0 check_mc(mc)>=1 +check_mc(mc)=0 check_mc(mc)>=1 \end{verbatim} %=============================================================================== \newpage @@ -1184,44 +1177,44 @@ MCat(1, .5)(<30,Ph,4:/COOH,3:/NH2) \begin{verbatim} (Add graphic to molecule) - w: molecular width - h: molecular height - aw: atom font size - em: label font size - p0: origin of molecular structure - l: bond length - - An: atom number - A[m]: atom position - A[m]ang: branch angle of A[m] - A[m]up: dir A[m]ang - A[m]left: dir A[m]ang+90 - A[m]right: dir A[m]ang-90 - A[m]down: dir A[m]ang+180 - - Bn: bond number - B[m]: bond(path) - B[m]s: bond start position - B[m]m: bond middle position - B[m]e: bond end position - B[m]ang: bond angle - B[m]up: dir B[m]ang - B[m]left: dir B[m]ang+90 - B[m]right: dir B[m]ang-90 - B[m]down: dir B[m]ang+180 - - plus : '+' circled - minus : '-' circled - circlediam = 0.6aw (default) - circlepen = 0.2bp (default) - - lonepair r: ':' rotated r - lonepairdiam = 0.3aw (default) - lonepairspace = 0.7aw (default) - - ** : scaled - << : rotated - a /* b : point b of a +w: molecular width +h: molecular height +aw: atom font size +em: label font size +p0: origin of molecular structure +l: bond length + +An: atom number +A[m]: atom position +A[m]ang: branch angle of A[m] +A[m]up: dir A[m]ang +A[m]left: dir A[m]ang+90 +A[m]right: dir A[m]ang-90 +A[m]down: dir A[m]ang+180 + +Bn: bond number +B[m]: bond(path) +B[m]s: bond start position +B[m]m: bond middle position +B[m]e: bond end position +B[m]ang: bond angle +B[m]up: dir B[m]ang +B[m]left: dir B[m]ang+90 +B[m]right: dir B[m]ang-90 +B[m]down: dir B[m]ang+180 + +plus : '+' circled +minus : '-' circled + circlediam = 0.6aw (default) + circlepen = 0.2bp (default) + +lonepair r: ':' rotated r + lonepairdiam = 0.3aw (default) + lonepairspace = 0.7aw (default) + +** : scaled +<< : rotated +a /* b : point b of a beginfont("EN:add() 1") fsize:=(70mm,40mm); @@ -1300,21 +1293,21 @@ endfont \begin{verbatim} (Extra graphic to font) - w: font width - h: font height - w0: font width-2xpart(fmargin) - h0: font height-2ypart(fmargin) - aw: atom font size - em: label font size - p0: fmargin - - n: molecular number - p[m]: molecular origin position - w[m]: molecular width - h[m]: molecular height - - ratio_thickness_char: - pen thickness / char width +w: font width +h: font height +w0: font width-2xpart(fmargin) +h0: font height-2ypart(fmargin) +aw: atom font size +em: label font size +p0: fmargin + +n: molecular number +p[m]: molecular origin position +w[m]: molecular width +h[m]: molecular height + +ratio_thickness_char: +pen thickness / char width %---------------------------------------- beginfont() fsize:=(70mm,30mm;); @@ -1459,7 +1452,7 @@ endfont %----------------------------------------------------------------------------- \subsection{Lycorine} \begin{verbatim} -beginfont("EN:Lycorine","MW:287.31") +beginfont("EN:Lycorine","MW:287.31", %-------------------------------------- ": Ph,-4=?6,-2=?6,6=?5,(9,12)=?5[3], ", ": 13=dl,8:N,{15,17}:O, ", @@ -1474,7 +1467,7 @@ endfont %----------------------------------------------------------------------------- \subsection{Gibberellin} \begin{verbatim} -beginfont("EN:Gibberellin A3","MW:346.37"); +beginfont("EN:Gibberellin A3","MW:346.37", %---------------------------------------- ": <18,?5,3=?7,5=?6[12],@8,160`1.3,&3, ", ": 13=dl,6=wf,8=wb, ", @@ -1490,7 +1483,7 @@ endfont %----------------------------------------------------------------------------- \subsection{Quinine} \begin{verbatim} -beginfont("EN:Quinine","MW:324.42") +beginfont("EN:Quinine","MW:324.42", %------------------------------- ": <30,Ph,3=Ph,7:N,6:/O!, ", ": @10,\,*/OH,/H~zf^-60,!, ", @@ -1859,15 +1852,15 @@ endfont; %-------------------------------------------------------------------- \begin{document} \unitlength=1mm% -\INFO{F:mcf_man_soc,C:142,NO:1,mw:349.40462,fm:C16H19N3O4S,EN:Ampicillin}% -\INFO{F:mcf_man_soc,C:143,NO:2,mw:386.6532,fm:C27H46O,EN:Cholesterol}% +\INFO{F:mcf_man_soc,C:141,NO:1,mw:349.40462,fm:C16H19N3O4S,EN:Ampicillin}% +\INFO{F:mcf_man_soc,C:142,NO:2,mw:386.6532,fm:C27H46O,EN:Cholesterol}% \end{document} %-------------------------------------------------------------------- \end{verbatim}% %############################################################################ %------------------------------------------------------------------------ -\INFO{F:mcf_man_soc,C:142,NO:1,mw:349.40462,fm:C16H19N3O4S,EN:Ampicillin}% -\INFO{F:mcf_man_soc,C:143,NO:2,mw:386.6532,fm:C27H46O,EN:Cholesterol}% +\INFO{F:mcf_man_soc,C:141,NO:1,mw:349.40462,fm:C16H19N3O4S,EN:Ampicillin}% +\INFO{F:mcf_man_soc,C:142,NO:2,mw:386.6532,fm:C27H46O,EN:Cholesterol}% %------------------------------------------------------------------------ \texttt{\printindex} %------------------------------------------------------------------------ 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 8e783244275..a643ea23d5e 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 f96c6320337..d063f98ab81 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 2021.02.28 +% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2021.03.07 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% mcf2graph.mf must be version 4.59 +%%% mcf2graph.mf must be version 4.60 \documentclass{article} %------------------------------------------------------------------------------ \usepackage{luamplib}% diff --git a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf index 9c68e1d84c9..cdffa5932cc 100644 --- a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf +++ b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf2graph ver 4.59 Copyright (c) 2013-2021 Akira Yamaji +% mcf2graph ver 4.60 Copyright (c) 2013-2021 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, @@ -37,14 +37,15 @@ % Set to use plain.mp (label,arrow,atom) : mpost -s labeloffset=2 FILENAME %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% tracingstats:=1; -message "* This is mcf2graph ver 4.59 2021.02.28"; +message "* This is mcf2graph ver 4.60 2021.03.07"; %------------------------------------------------------------------------------------------------- newinternal cntA,cntB,cntM,minX,minY,maxX,maxY,sftX,sftY,com,par,envT,envB,lenT,lineT,angT,rotT, crR,nA,nB,nC,nD,nE,nF,nS,nL,nR,nU,nP,xpos,ypos,markA,markB,saveA,saveB,bondL; numeric save_num[],comD[][],parD[][],adrD[][],cntD[],tbl_atom[],tbl_group[][],f_char[], tbl_atom_wt[],tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],addA[],add_rot[],chargeA[], com_group[][],par_group[][],cnt_group[],colorA[],colorB[],sumA[],bondC[],hideH[], - lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],numS[],wdM[],htM[],wdA[],dxA[],mc_indent[]; + lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],numS[],wdM[],htM[],wdA[],dxA[], + mc_indent[],cmm_adr[]; string save_str[],tbl_atom_str[],strD[],tag[],out_file_name,out_file_aux, out_file_rep,out_file_mpc,aux_delimiter,atomfont,mpfont,s_tag,s_var,cal_FM,cal_MW,cal_MI, inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_MW,blank_str; @@ -186,9 +187,9 @@ fi ?3:=?20:=Ph:=Ph1:=Ph2:=hz:=0; vt:=1; ratio_chain_ring:=0.66; ratio_atom_bond:=0.36; ratio_thickness_bond:=0.015; ratio_thickness_char:=0.1; ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15; -ratio_zebragap_bond:=0.12; ratio_zebra_black:=0.4; ratio_wedge_bond:=0.12; -ratio_atomgap_atom:=0.040; -offset_thickness:=0.2bp; offset_bond_gap:=0.3bp; offset_zebra_gap:=0.1bp; +ratio_hashgap_bond:=0.12; ratio_hash_black:=0.4; ratio_wedge_bond:=0.12; +ratio_atomgap_atom:=0.04; +offset_thickness:=0.2bp; offset_bond_gap:=0.3bp; offset_hash_gap:=0.1bp; offset_atom:=0.8pt; offset_wedge:=0.4bp; thickness_fframe:=0.2bp; thickness_mframe:=0.2bp; thickness_aframe:=0.1bp; max_blength:=10mm; blength:=mangle:=0; max_labelsize:=20mm; dottedline_gap:=1.5bp; @@ -214,15 +215,15 @@ def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_t _chg_len,_get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,_chg_env,_tmp_env,_set_colorA,_set_colorB, _group_si,_set_adr,_mk_bond,_set_atom,_arrange_ang,_chg_atom,_tmp_rot,_fuse,_size_atom,_numeric, _jump_at,_set_add,_chg_add,_nop,_mark,_moff,_term,_len_s,_len_e,_len_ss,_len_ee, - _group_s,_group_e,_rest,_charge,_zero_ang, + _group_s,_group_e,_rest,_charge, si,dl,dl_,dr,dr_,db,dm,dm_,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,nb,si_,wf_,wb_,zf_,zb_,wv_,bd_); %-------------------------------------------------------------------------------------------------- def parameter_list= sw_rep_out,sw_numberA,sw_numberB,sw_mframe,sw_aux_out,sw_expand,sw_mol_out,sw_calc, sw_single,sw_ext_all,sw_aframe,sw_fframe,sw_group_off,sw_trimming,sw_arrow_emu, ratio_atom_bond,ratio_thickness_bond,ratio_char_bond,ratio_chain_ring,ratio_bondgap_bond, - ratio_zebra_black,ratio_zebragap_bond,ratio_thickness_char,ratio_wedge_bond,ratio_atomgap_atom, - lonepairdiam,lonepairspace,blength,offset_atom,offset_wedge,max_blength,offset_zebra_gap, + ratio_hash_black,ratio_hashgap_bond,ratio_thickness_char,ratio_wedge_bond,ratio_atomgap_atom, + lonepairdiam,lonepairspace,blength,offset_atom,offset_wedge,max_blength,offset_hash_gap, offset_bond_gap,thickness_fframe,thickness_mframe,thickness_aframe,offset_thickness, numberA_start,numberA_end,numberB_start,numberB_end,defaultsize,defaultscale,labeloffset,mangle, fsize,fmargin,msize,mposition,defaultfont,atomfont,dottedline_gap, @@ -323,10 +324,12 @@ def endfont= %---------------------------------------------------------------------------------------- if f_MP=0: beginchar(char_num,font_wd/bp*bp#,font_ht/bp*bp#,0) else: beginfig(char_num) w:=charwd:=font_wd; h:=charht:=font_ht; chardp:=0; + if (sw_fframe<>1)and(sw_fframe<>3): draw_corner((0,0),w,h,0.05bp); fi + fi + if (sw_fframe=1)or(sw_fframe=3): draw_frame((0,0),w,h,thickness_fframe); fi + if (sw_fframe=2)or(sw_fframe=3): + draw_frame((margin_lr,margin_tb),w-2margin_lr,h-2margin_tb,thickness_fframe); fi - if (sw_fframe=1)or(sw_fframe=3): ext(draw_frame((0,0),w,h,thickness_fframe);) fi - if (sw_fframe=2)or(sw_fframe=3): ext(draw_frame(p0,w0,h0,thickness_fframe);) fi - if sw_fframe=4: ext(draw_corner((0,0),w,h,0.2bp);) fi for i=1 upto cntM: addto currentpicture also mol_stru[i] shifted posM[0][i]; mol_stru[i]:=nullpicture; if sw_mframe=1: ext(draw_frame(p[i],w[i],h[i],thickness_mframe)) fi @@ -379,8 +382,7 @@ tertiarydef a op_bq b = if known b:: (_tmp_len,b),a else:: _nop,a fi enddef; def rot_angle primary n = (_rot_ang,n) enddef; def cyc_atom primary n = (_cyc,n) enddef; def jump_atom primary a = - if numeric a:: (_jp_atom,a) - elseif pair a:: (_jp_atom,$1),(_com,_zero_ang),angle(a)~0`length(a),(_com,_zero_ang) fi + if numeric a:: (_jp_atom,a) elseif pair a:: (_jp_atom,$1),<$0,angle(a)~0`length(a),<$0 fi enddef; def chg_length primary n = (_com,_len_s),(_chg_len,n) enddef; def group_si secondary n == if known n:: (_group_si,n) else:: _nop fi enddef; @@ -934,7 +936,7 @@ def proc_size_setup= atom_wd:=.8blen; ratio_chain_ring:= .5; fi wedge_wd:= blen*ratio_wedge_bond+offset_wedge; - zebra_gap:= blen*ratio_zebragap_bond+offset_zebra_gap; + hash_gap:= blen*ratio_hashgap_bond+offset_hash_gap; bondgap:= blen*ratio_bondgap_bond+offset_bond_gap; bond_pen_wd:= blen*ratio_thickness_bond+offset_thickness; enddef; @@ -1051,14 +1053,13 @@ def proc_skeleton(expr a)= ef com=_com: if par=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB; ef par=_rest: markA:=saveA; markB:=saveB; ef par=_moff: markA:=markB:=0; ef par=_term: termB; - ef par=_zero_ang: angT:=0; ef par=_group_e: lineT:=si; lenT:=crR; rotT:=envT:=0; fi ef com=_jp_bond: termB; nA:=getB(par); posBs:=posA[sB[nA]]; angT:=angB[nA]; f_bra:=1; rotT:=0; ef com=_jp_atom: termB; adrT:=getA(par); posBs:=posA[adrT]; angT:=angX[adrT]; f_bra:=1; rotT:=0; ef com=_jp_absA: adrT:=par; posBs:=posA[adrT]; angT:=angX[adrT]; f_bra:=1; rotT:=0; temp_cntB:=cntB; ef com=_adj_ang: angT:=adjust_ang(angT); - ef com=_rot_ang: angT:=(angT+par) mod 360; + ef com=_rot_ang: if par>-3700: angT:=(angT+par) mod 360; else: angT:=(par+4095) mod 360; fi ef com=_tmp_rot: rotT:=par; ef com=_group_si: rotT:=0; ef com=_chg_env: envB:=par; @@ -1078,7 +1079,8 @@ def add_bond(expr ROT,FLG)= angX[cntA]:=(angT+nA/2+iif(nA>=0,-90,90)) mod 360; else: f_bra:=0; fi - cntB:=cntB+1; angB[cntB]:=angT:=(angT+nA) mod 360; + cntB:=cntB+1; + if nA>-3700: angB[cntB]:=angT:=(angT+nA) mod 360; else: angB[cntB]:=angT:=nA+4095; fi if FLG=1: if lenB[cntB]=_size_atom: posBe:=sfrt(posBs,atom_wd,angT); else: @@ -1209,7 +1211,7 @@ def draw_bond(expr NUM)= ef nL=bz: bz_put(sfrt(Ls,ww,ap),sfrt(Le,ww,ap),sfrt(Ls,ww,am),sfrt(Le,ww,am)); ef nL=zf: wz_put(Ls,sfrt(Le,ww,ap),sfrt(Le,ww,am)); ef nL=zb: wz_put(Le,sfrt(Ls,ww,am),sfrt(Ls,ww,ap)); - ef nL=dt: for i=0 step .75zebra_gap/len until 1: drawdot i[Ls,Le] Cp(col); endfor + ef nL=dt: for i=0 step .75hash_gap/len until 1: drawdot i[Ls,Le] Cp(col); endfor ef nL=wv: nA:=3bond_pen_wd; nB:=len/nA; draw Le for i=1 upto nB: ..controls(((i-.5)/nB)[sfrt(Le,nA,iif(odd(i),ap,am)),sfrt(Ls,nA,iif(odd(i),ap,am))]) @@ -1245,16 +1247,16 @@ def draw_bond(expr NUM)= enddef; %------------------------------------------------------------------------------------------------ def wz_put(expr PA,PB,PD)= - for i=0 upto len/zebra_gap: - nA:=zebra_gap*i/len; nD:=(zebra_gap*i+ratio_zebra_black*zebra_gap)/len; - if nD>((len-zebra_gap)/len): nD:=1; fi + for i=0 upto len/hash_gap: + nA:=hash_gap*i/len; nD:=(hash_gap*i+ratio_hash_black*hash_gap)/len; + if nD>((len-hash_gap)/len): nD:=1; fi fill nA[PB,PA]--nA[PD,PA]--nD[PD,PA]--nD[PB,PA]--cycle Cp(col); endfor enddef; %------------------------------------------------------------------------------------------------ def bz_put(expr PA,PB,PC,PD)= - for i=0 upto len/zebra_gap: - nA:=zebra_gap*i/len; nD:=(zebra_gap*i+ratio_zebra_black*zebra_gap)/len; + for i=0 upto len/hash_gap: + nA:=hash_gap*i/len; nD:=(hash_gap*i+ratio_hash_black*hash_gap)/len; fill nA[PB,PA]--nA[PD,PC]--nD[PD,PC]--nD[PB,PA]--cycle Cp(col); endfor enddef; @@ -1582,7 +1584,8 @@ def proc_report_out= printf (substring(0,mc_indent[i]) of blank_str)&mc[i]; endfor printf "---------------------------------------------------------------------------"; - printf " mc length="&fdr(4)(length(mc))&" / mc low="&fdr(3)(mc_low); + printf " mc-length="&fdr(4)(length(mc))&" / mc-low="&fdr(3)(mc_low)& + " / mc-commands="&fdr(3)(cmm_cnt); fi printf "---------------------------------------------------------------------------"; printf " Warnings = "&fdr(3)(warning_cnt)&" / Command count= "&decimal(cntD[0]); @@ -1797,46 +1800,46 @@ def expand_set= enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% vardef check_mc(expr s)= - save mc_char,mc_char,temp_c,err_cnt,char_cnt; + save mc_char,mc_char,temp_c,err_cnt,char_cnt,f_depth, + a_prn_s_cnt,a_prn_e_cnt,a_brc_s_cnt,a_brc_e_cnt,a_brk_s_cnt,a_brk_e_cnt; + f_depth:=cmm_cnt:=0;; string temp_c,err_str[],err_type[]; numeric mc_char[],err_adr[],err_code[]; err_cnt:=char_cnt:=code_cnt:=0; - err_type[1]:=" '(' > ')' "; - err_type[2]:=" '(' < ')' "; - err_type[3]:=" '{' > '}' "; - err_type[4]:=" '{' < '}' "; - err_type[5]:=" '[' > ']' "; - err_type[6]:=" '[' < ']' "; - err_type[7]:="missing arg"; - err_type[8]:="extra arg "; + err_type[1]:=" '(' > ')' "; err_type[2]:=" '(' < ')' "; + err_type[3]:=" '{' > '}' "; err_type[4]:=" '{' < '}' "; + err_type[5]:=" '[' > ']' "; err_type[6]:=" '[' < ']' "; + err_type[7]:="missing arg"; err_type[8]:="extra arg "; %----------------------------------------------------------------------------------------------- for i=1 upto length(s): temp_c:=subc(i,s); if temp_c<>" ": char_cnt:=char_cnt+1; mc_char[char_cnt]:=ASCII(temp_c); fi endfor mc_char[0]:=mc_char[char_cnt+1]:=mc_char[char_cnt+2]:=a_cmm; %-- argument missing chkeck -------------------------------------------------------------------- - nA:=1; + a_prn_s_cnt:=a_prn_e_cnt:=a_brc_s_cnt:=a_brc_e_cnt:=a_brk_s_cnt:=a_brk_e_cnt:=0; + nA:=f_depth:=cmm_cnt:=0; forever: - nB:=mc_char[nA-1]; nC:=mc_char[nA]; nD:=mc_char[nA+1]; nE:=mc_char[nA+2]; nF:=mc_char[nA+3]; + nA:=nA+1; nB:=mc_char[nA-1]; nC:=mc_char[nA]; nD:=mc_char[nA+1]; %--------------------------------------------------------------------------------------------- - if nC=a_cmm: - ef (nC=a_ast)and(nD=a_sls)and(nE=a_ast)and(nF=a_cmm): proc_error(7,nA) nA:=nA+3; % */* x - ef (nC=a_sls)and(nD=a_sls)and(nE=a_cmm): proc_error(7,nA) nA:=nA+2; % // x - ef (nC=a_sls)and(nD=a_ast)and(nE=a_cmm): proc_error(7,nA) nA:=nA+2; % /* x - ef (nC=a_ast)and(nD=a_sls)and(nE=a_cmm): proc_error(7,nA) nA:=nA+2; % */ x - ef (nC=a_ast)and(nD=a_ast)and(nE=a_cmm): proc_error(7,nA) nA:=nA+2; % ** x - ef (nC=a_hsh)and(nD=a_hsh): nA:=nA+2; % ## - ef (nC=a_sls)and(nD=a_cmm): proc_error(7,nA) % / x - ef (nC=a_dol)and(nD=a_cmm): proc_error(7,nA) % $ x - %-------------------------------------------------------------------------------------------- + if nC=a_cmm: if f_depth=0: cmm_cnt:=cmm_cnt+1; cmm_adr[cmm_cnt]:=nA; fi + ef nC=a_ast: + if nD=a_sls: + if mc_char[nA+2]=a_ast: if mc_char[nA+3]=a_cmm: proc_error(7,nA) nA:=nA+2; fi % */* x + ef mc_char[nA+2]=a_cmm: proc_error(7,nA) nA:=nA+1; fi % */ x + ef nD=a_ast: if mc_char[nA+2]=a_cmm: proc_error(7,nA) nA:=nA+1; fi fi % ** x + ef nC=a_sls: if nD=a_sls: if mc_char[nA+2]=a_cmm: proc_error(7,nA) nA:=nA+1; fi % // x + ef nD=a_ast: if mc_char[nA+2]=a_cmm: proc_error(7,nA) nA:=nA+1; fi % /* x + ef nD=a_cmm: proc_error(7,nA) fi % / x + ef nC=a_hsh: if nD=a_hsh: nA:=nA+1; % ## + ef nD=a_cmm: proc_error(7,nA) fi % # x + if nB<>a_cmm: proc_error(8,nA) fi % a # + ef nC=a_dol: if nD=a_cmm: proc_error(7,nA) fi % $ x ef nC=a_equ: if nD= a_cmm: proc_error(7,nA) fi % = x if nB= a_cmm: proc_error(7,nA) fi % x = ef nC=a_cln: if nD= a_cmm: proc_error(7,nA) fi % : x if nB= a_cmm: proc_error(7,nA) fi % x : ef nC=a_amk: if nD= a_cmm: proc_error(7,nA) fi % @ x if nB<>a_cmm: proc_error(8,nA) fi % a @ - ef nC=a_hsh: if nD= a_cmm: proc_error(7,nA) fi % # x - if nB<>a_cmm: proc_error(8,nA) fi % a # ef nC=a_and: if nD= a_cmm: proc_error(7,nA) fi % & x if nB<>a_cmm: proc_error(8,nA) fi % a & ef nC=a_gtn: if nD= a_cmm: proc_error(7,nA) fi % < x @@ -1850,32 +1853,33 @@ vardef check_mc(expr s)= ef nC=a_bqt: if nD= a_cmm: proc_error(7,nA) fi % ` x if nB= a_cmm: proc_error(7,nA) fi % x ` %--------------------------------------------------------------------------------- + ef nC=a_prn_s: a_prn_s_cnt:=a_prn_s_cnt+1; f_depth:=1; + ef nC=a_prn_e: a_prn_e_cnt:=a_prn_e_cnt+1; f_depth:=0; + ef nC=a_brc_s: a_brc_s_cnt:=a_brc_s_cnt+1; f_depth:=1; + ef nC=a_brc_e: a_brc_e_cnt:=a_brc_e_cnt+1; f_depth:=0; + ef nC=a_brk_s: a_brk_s_cnt:=a_brk_s_cnt+1; f_depth:=1; + ef nC=a_brk_e: a_brk_e_cnt:=a_brk_e_cnt+1; f_depth:=0; + %--------------------------------------------------------------------------------- fi - nA:=nA+1; - exitif nA>=char_cnt; - endfor - %-- check brackets ----------------------------------------------------------------------------- - nA:=nB:=nC:=nD:=nE:=nF:=0; - for i=1 upto char_cnt: - if mc_char[i]=a_prn_s: nA:=nA+1; ef mc_char[i]=a_prn_e: nB:=nB+1; - ef mc_char[i]=a_brc_s: nC:=nC+1; ef mc_char[i]=a_brc_e: nD:=nD+1; - ef mc_char[i]=a_brk_s: nE:=nE+1; ef mc_char[i]=a_brk_e: nF:=nF+1; - fi + exitif nA>=char_cnt+1; endfor - if nA>nB: proc_error(1,0) ef nAnD: proc_error(3,0) ef nCnF: proc_error(5,0) ef nEa_prn_e_cnt: proc_error(1,0) ef a_prn_s_cnta_brc_e_cnt: proc_error(3,0) ef a_brc_s_cnta_brk_e_cnt: proc_error(5,0) ef a_brk_s_cnt