texlive[58204] branches/branch2020.0/Master/texmf-dist: mcf2graph

commits+karl at tug.org commits+karl at tug.org
Sun Mar 7 23:06:53 CET 2021


Revision: 58204
          http://tug.org/svn/texlive?view=revision&revision=58204
Author:   karl
Date:     2021-03-07 23:06:53 +0100 (Sun, 07 Mar 2021)
Log Message:
-----------
mcf2graph (7mar21) (branch)

Modified Paths:
--------------
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/README
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
    branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
    branches/branch2020.0/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
===================================================================
--- branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2021-03-07 22:06:31 UTC (rev 58203)
+++ branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2021-03-07 22:06:53 UTC (rev 58204)
@@ -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()

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/README
===================================================================
--- branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/README	2021-03-07 22:06:31 UTC (rev 58203)
+++ branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/README	2021-03-07 22:06:53 UTC (rev 58204)
@@ -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 at 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

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
===================================================================
--- branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf	2021-03-07 22:06:31 UTC (rev 58203)
+++ branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf	2021-03-07 22:06:53 UTC (rev 58204)
@@ -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);

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
===================================================================
(Binary files differ)

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
===================================================================
--- branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex	2021-03-07 22:06:31 UTC (rev 58203)
+++ branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex	2021-03-07 22:06:53 UTC (rev 58204)
@@ -5,7 +5,7 @@
 \usepackage{graphicx}
 %---------------------
 \usepackage{mcf_setup}
-\pdfpkresolution=1200
+%%%%\pdfpkresolution=1200
 %---------------------
 \pagestyle{empty}
 \topmargin=-24mm

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
===================================================================
--- branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf	2021-03-07 22:06:31 UTC (rev 58203)
+++ branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf	2021-03-07 22:06:53 UTC (rev 58204)
@@ -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 @@
 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 @@
     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 @@
 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 @@
 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 @@
 endfont
 %***********************************************************************
 beginfont("EN:branch1")
-  fsize:=(60mm,18mm);
+  fsize:=(60mm,16mm);
   fmargin:=(2mm,2mm);
   sw_numberA:=1;
   sw_trimming:=1;
@@ -249,14 +247,14 @@
   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 @@
 %***********************************************************************
 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 @@
 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 @@
   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 @@
 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 @@
 endfont
 %***********************************************************************
 beginfont("EN:group 3")
-  fsize:=(70mm,18mm);
+  fsize:=(80mm,18mm);
   fmargin:=(2mm,2mm);
   sw_numberA:=1;
   sw_trimming:=1;
@@ -483,8 +489,8 @@
   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 @@
   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 @@
   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;

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
===================================================================
(Binary files differ)

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
===================================================================
--- branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2021-03-07 22:06:31 UTC (rev 58203)
+++ branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2021-03-07 22:06:53 UTC (rev 58204)
@@ -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 at name{\MCFjobname-\z at num\fnum.\fext}%
+%%%%%%%\includegraphics{\file at name}%
 \setbox\fbox=\hbox{\@strufont\char\fnum}%
-\hspace{5mm}\includegraphics[width=\wd\fbox,height=\ht\fbox]{\file at name}%
+\includegraphics[width=\wd\fbox,height=\ht\fbox]{\file at 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,10 +100,11 @@
 \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
 %-----------------------------------------------------------------------------
@@ -112,12 +111,11 @@
 \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
 %-----------------------------------------------------------------------------
@@ -124,10 +122,10 @@
 \subsubsection{Jump to atom}
 \index{"@}%
 \begin{verbatim}
-  @n : Jump to An
-  ** An: atom number(-999<=n<=4095)
-       
-  <-30,!6, at 3,0,!, at 5,-30
+ at n : Jump to An
+** An: atom number(-999<=n<=4095)
+
+<-30,!6, at 3,0,!, at 5,-30
 \end{verbatim}
 \MCFgraph
 %------------------------------------
@@ -134,9 +132,9 @@
 \subsubsection{Branch bond}
 \index{\textbackslash}%
 \begin{verbatim}
-  \ : 0
+\ : 0
 
-  <-30,!6, at 3,\,!
+<-30,!6, at 3,\,!
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -146,14 +144,14 @@
 \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,\,!, at 4,*\,!, at 6,\*,!, at 8,\\,!, at 10,*\*,!
+<30,!8,
+ at 2,\,!, at 4,*\,!, at 6,\*,!, at 8,\\,!, at 10,*\*,!
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -161,10 +159,10 @@
 \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
 %-----------------------------------------------------------------------------
@@ -171,9 +169,9 @@
 \subsubsection{Connect atom}
 \index{\&}%
 \begin{verbatim}
-  &n : Connect to An
+&n : Connect to An
 
-  <-30,!6, at 3,\,!3,&6~bd, at 9,&4~bz
+<-30,!6, at 3,\,!3,&6~bd, at 9,&4~bz
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -180,9 +178,9 @@
 \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
 %-----------------------------------------------------------------------------
@@ -189,9 +187,9 @@
 \subsubsection{Rotate current angle}
 \index{\textgreater}%
 \begin{verbatim}
-  <angle : rotate current angle
+<angle : rotate current angle
 
-  0,0,<90,0,<-90,0,0,{1,2,3,4,5}=vf 
+0,0,<90,0,<-90,0,<$315,0,<$90,0,<$0,0 
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -207,21 +205,21 @@
 \index{db}%
 \index{tm}%
 \begin{verbatim}
-  a~type : ~~type,a
-  dm  : double middle
-  dl  : double left side
-  dr  : double right side
-  db  : double left or right side
-  tm  : triple
-  !!  : !~db  / !!! : !~tm
+a~type : ~~type,a
+dm  : double middle
+dl  : double left side
+dr  : double right side
+db  : double left or right side
+tm  : triple
+!!  : !~db  / !!! : !~tm
 
-  <-30,!~dm,!,!~dl,!,!~dr,!~db,!~db,!,!~tm
-  <-30,!~dm,!,!~dl,!,!~dr,!!  ,!!  ,!,!!!
+<-30,!~dm,!,!~dl,!,!~dr,!~db,!~db,!,!~tm
+<-30,!~dm,!,!~dl,!,!~dr,!!  ,!!  ,!,!!!
 \end{verbatim}
 \MCFgraph
 \vspace{-3mm}%
 \begin{verbatim}
-    dm      dl     dr   db  db      tm
+ dm      dl     dr   db  db      tm
 \end{verbatim}
 %-----------------------------------------------------------------------------
 \subsubsection{Wedge}
@@ -230,16 +228,16 @@
 \index{zf}%
 \index{zb}%
 \begin{verbatim}
-  wf : wedge forward / wb : wedge backward
-  zf : wedge dotted
-  zb : wedge dotted backward
+wf : wedge forward / wb : wedge backward
+zf : hashed wedge foward
+zb : hashed wedge backward
 
-  <-30,!~wf,!,!~wb,!,!~zf,!,!~zb
+<-30,!~wf,!,!~wb,!,!~zf,!,!~zb
 \end{verbatim}
 \MCFgraph
 \vspace{-3mm}%
 \begin{verbatim}
-    wf       wb       zf       zb
+  wf       wb       zf       zb
 \end{verbatim}
 %-----------------------------------------------------------------------------
 \subsubsection{Vector}
@@ -246,14 +244,14 @@
 \index{vf}%
 \index{vb}%
 \begin{verbatim}
-  vf:vector forward / vb:vector backward
+vf:vector forward / vb:vector backward
 
-  <-30,!~vf,!,!~vb
+<-30,!~vf,!,!~vb
 \end{verbatim}
 \MCFgraph
 \vspace{-3mm}%
 \begin{verbatim}
-    vf        vb
+  vf       vb
 \end{verbatim}
 %-----------------------------------------------------------------------------
 \subsubsection{Dotted,wave}
@@ -262,24 +260,24 @@
 \index{bd}%
 \index{bz}%
 \begin{verbatim}
-  Bn=bond type : change bond type at Bn
-  dt : dotted  /  wv : wave
-  bd : broad  /  bz : broad dotted 
+Bn=bond type : change bond type at Bn
+dt : dotted  /  wv : wave
+bd : broad  /  bz : broad dotted 
 
-  <-30,!7,1=dt,3=wv,5=bd,7=bz
+<-30,!7,1=dt,3=wv,5=bd,7=bz
 \end{verbatim}
 \MCFgraph
 \vspace{-3mm}%
 \begin{verbatim}
-    dt      wv       bd       bz
+  dt      wv       bd      bz
 \end{verbatim}
 %-----------------------------------------------------------------------------
 \subsubsection{Change multiple bond type}
 \index{vf}%
 \begin{verbatim}
-  {2,4,6}=dr : 2=dr,4=dr,6=dr
+{2,4,6}=dr : 2=dr,4=dr,6=dr
 
-  <30,!7,{2,4,6}=dr
+<30,!7,{2,4,6}=dr
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -294,19 +292,19 @@
 \index{dr\_}%
 \index{dm\_}%
 \begin{verbatim}
-  si_ : single over line 
-  wf_ : wedge forward over line 
-  wb_ : wedge backward over line 
-  zf_ : wedge dotted forward over line 
-  zb_ : wedge dotted backward over line 
-  bd_ : broad over line 
-  dl_ : duble left over line 
-  dr_ : duble right over line 
-  dm_ : duble over line 
+si_ : single over line 
+wf_ : wedge forward over line 
+wb_ : wedge backward over line 
+zf_ : hashed wedge forward over line 
+zb_ : hashed wedge backward over line 
+bd_ : broad over line 
+dl_ : duble left over line 
+dr_ : duble right over line 
+dm_ : duble over line 
 
-  <30,!8,!,60,90`18,
-  {2~si_,4~wf_,6~wb_,8~zf_,10~zb_,
-   12~bd_,14~dl_,16~dr_,18~dm_}:/_`2
+<30,!8,!,60,90`18,
+{2~si_,4~wf_,6~wb_,8~zf_,10~zb_,
+  12~bd_,14~dl_,16~dr_,18~dm_}:/_`2
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -314,9 +312,9 @@
 \subsubsection{Chain length}
 \index{`}%
 \begin{verbatim}
-  (!,!n)`length : change length of !,!n
+(!,!n)`length : change length of !,!n
 
-  <-30,!2,!4`1.2,!2
+<-30,!2,!4`1.2,!2
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -323,18 +321,18 @@
 \index{\#}%
 \index{\#\#}%
 \begin{verbatim}
- #n : bond length=n
- ## : reset bond length
+#n : bond length=n
+## : reset bond length
 
-  <-30,!2,#1.2,!4,##,!2
+<-30,!2,#1.2,!4,##,!2
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
 \subsubsection{Ring length}
 \begin{verbatim}
-  ?n`length : change ring length
+?n`length : change ring length
 
-  ?6, at 4,\,?6`1.2
+?6, at 4,\,?6`1.2
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -341,9 +339,9 @@
 \subsection{Change atom}
 \subsubsection{Insert atom}
 \begin{verbatim}
-  Insert hetero atom
+Insert hetero atom
 
-  <-30,!2,O,!2,N,!2
+<-30,!2,O,!2,N,!2
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -350,10 +348,10 @@
 \subsubsection{Addressed atom}
 \index{:}%
 \begin{verbatim}
-  2:O : change A2 C to O
-  {3,4}:N : change  A3,A4 C to N
+2:O : change A2 C to O
+{3,4}:N : change  A3,A4 C to N
 
-  <30,!4,2:O,{3,4}:N
+<30,!4,2:O,{3,4}:N
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -360,9 +358,9 @@
 \subsubsection{Brock address}
 \index{\textbar}% |
 \begin{verbatim}
-  | : divide brock
+| : divide brock
 
-  ?6, at 4,\,|,?6,2:O
+?6, at 4,\,|,?6,2:O
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -369,9 +367,9 @@
 \subsubsection{Reset brock address}
 \index{\textbar\textbar}% ||
 \begin{verbatim}
-  || : reset brock adress
+|| : reset brock adress
 
-  ?6, at 4,\,|,?6,||,2:N
+?6, at 4,\,|,?6,||,2:N
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -378,23 +376,23 @@
 \subsubsection{Absolute address}
 \index{\$}% $
 \begin{verbatim}
-  $2:N : change A$2 C to N  **1<=n<=3095
+$2:N : change A$2 C to N  **1<=n<=3095
 
-  ?6, at 4,\,|,?6,$2:N
+?6, at 4,\,|,?6,$2:N
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
 \subsubsection{Relative address}
 \begin{verbatim}
-  -2:N : change A(-2) C to N **-999<=n<=-1
+-2:N : change A(-2) C to N **-999<=n<=-1
 
-  ?6, at 4,\,?6,-2:N
+?6, at 4,\,?6,-2:N
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
 \subsubsection{Charged atom}
 \begin{verbatim}
-  p_ : positive / n_ : negative
+p_ : positive / n_ : negative
 
 <-30,!2,N,??,p_,!2,S,n_^180,
 !6,7:N,7:??,9:S,7:n_,9:n_^180
@@ -404,42 +402,42 @@
 \subsection{Fuse ring}
 \subsubsection{Attached 1 bond}
 \begin{verbatim}
-  ?6,3=?6 : fuse ?6 at B3
-  ** Bn(n:-999<=n<=4095): bond number
+?6,3=?6 : fuse ?6 at B3
+** Bn(n:-999<=n<=4095): bond number
 
-  ?6,3=?6
+?6,3=?6
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
 \begin{verbatim}
-  ** fused ring size depend on 
-  attached bond length
+** fused ring size depend on 
+attached bond length
 
-  ?6, at 4,\,?6`1.2,5=?6,11=?6
+?6, at 4,\,?6`1.2,5=?6,11=?6
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
 \begin{verbatim}
-  ?6,3=?6[13] : fuse ?6[13] at B3
-  ?6[13]: 6 membered ring scaled 13/10
-  ** ?m[n] (5<=m<=8,11<=n<=15)
+?6,3=?6[13] : fuse ?6[13] at B3
+?6[13]: 6 membered ring scaled 13/10
+** ?m[n] (5<=m<=8,11<=n<=15)
 
-  ?6,3=?6[13]
+?6,3=?6[13]
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
 \begin{verbatim}
-  ?6,{-3,-4,-4,-2,-2,-4,-4}=?6
-  ?6,{4,8,13,20,25,28,33}=?6
+?6,{-3,-4,-4,-2,-2,-4,-4}=?6
+?6,{4,8,13,20,25,28,33}=?6
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
 \subsubsection{Attached 2 bond}
 \begin{verbatim}
-  (4,11)=?6[4]  : fuse 4/6 ring to B11..B4
-  (4,11)=?5[3]  : fuse 3/5 ring to B11..B4
-  (4,11)=?4[2]  : fuse 2/4 ring to B11..B4
-  ** ?m[n] (4<=m<=6,n=m-2)
+(4,11)=?6[4]  : fuse 4/6 ring to B11..B4
+(4,11)=?5[3]  : fuse 3/5 ring to B11..B4
+(4,11)=?4[2]  : fuse 2/4 ring to B11..B4
+** ?m[n] (4<=m<=6,n=m-2)
 
 1:<30,?6,3=?6,(11,4)=?6[4]
 2:<30,?6,3=?6,(11,4)=?5[3]
@@ -448,14 +446,13 @@
 \MCFgraph
 \vspace{-3mm}%
 \begin{verbatim}
-        1             2             3
 \end{verbatim}
 %-----------------------------------------------------------------------------
 \subsubsection{Attached 2 bond}
 \begin{verbatim}
-  (16,4)=?6[3] : fuse 3/6 ring to B16..B4
-  (16,4)=?5[2] : fuse 2/5 ring to B16..B4
-  ** ?m[n] (5<=m<=6,n=m-3)
+(16,4)=?6[3] : fuse 3/6 ring to B16..B4
+(16,4)=?5[2] : fuse 2/5 ring to B16..B4
+** ?m[n] (5<=m<=6,n=m-3)
 
 1:?6,{3,10}=?6,(16,4)=?6[3]
 2:?6,{3,10}=?6,(16,4)=?5[2]
@@ -463,26 +460,25 @@
 \MCFgraph
 \vspace{-3mm}%
 \begin{verbatim}
-         1                 2
 \end{verbatim}
 %-----------------------------------------------------------------------------
 \subsubsection{Attached 4 bond}
 \begin{verbatim}
-  (21,4)=?6[2] : fuse 2/6 ring to B21..B4
+(21,4)=?6[2] : fuse 2/6 ring to B21..B4
 
-  MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2])
+MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2])
 
-  ** ?m[n] (m=6,n=2)
+** ?m[n] (m=6,n=2)
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
 \subsubsection{Spiro ring}
 \begin{verbatim}
-  @4,?5 : add ?5 at A4
+ at 4,?5 : add ?5 at A4
 
-  <30,!6, at 4,?5
+<30,!6, at 4,?5
 
-  @An : jump to An
+ at An : jump to An
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -491,13 +487,13 @@
 \index{/}%
 \index{Ph}%
 \begin{verbatim}
-  /  : single
-  <-30,!,/_,!,/!,!3,/!2,!,/?!,
-      !3,/??!,!,/Ph^-30,!
+/  : single
+<-30,!,/_,!,/!,!3,/!2,!,/?!,
+  !3,/??!,!,/Ph^-30,!
 
-  ** /_   : methyl      /!  : ethyl
-     /!2  : propyl      /?! : isopropyl
-     /??! : tert-butyl  /Ph : phenyl
+** /_   : methyl      /!  : ethyl
+   /!2  : propyl      /?! : isopropyl
+   /??! : tert-butyl  /Ph : phenyl
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -508,18 +504,18 @@
 \index{*/*}%
 \index{**}%
 \begin{verbatim}
-  //  : double (double middle)
-  */  : wedge forward
-  /*  : wedge dotted forward
-  */* : wave
-  **  : direct
+//  : double (double middle)
+*/  : wedge forward
+/*  : hashed wedge forward
+*/* : wave
+**  : direct
 
-  <30,!,//O,!2,/*H,!2,*/H,!2,*/*H,!2,**?3,!
+<30,!,//O,!2,/*H,!2,*/H,!2,*/*H,!2,**?3,!
 \end{verbatim}
 \MCFgraph
 \vspace{-3mm}%
 \begin{verbatim}
-      //      /*     */     */*     **
+    //      /*      */      */*      **
 \end{verbatim}
 %-----------------------------------------------------------------------------
 \index{\textasciicircum}% ^
@@ -527,38 +523,36 @@
 \index{`}%
 \index{\textless}%
 \begin{verbatim}
-  ~ : change type
-  ^ : change angle
-  ` : change length
-  > : 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 @@
 \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,12 +575,12 @@
 \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
 %-----------------------------------------------------------------------------
@@ -593,11 +587,11 @@
 \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
@@ -604,9 +598,9 @@
 %-----------------------------------------------------------------------------
 \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 @@
 \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,31 +627,31 @@
 \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
 %-----------------------------------------------------------------------------
@@ -664,10 +658,10 @@
 \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, at 3,!4,//O,!,O,n_^60,@(6,1),H,p_^15
+<30,?6, at 3,!4,//O,!,O,n_^60,@(6,1),H,p_^15
 \end{verbatim}
 \MCFgraph
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -677,11 +671,11 @@
 \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,22 +684,22 @@
 \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  ** (0<blength<=1)
-  blength=60mm(width)*0.1=6mm
+(ratio bond/font width)
+blength=0.1  ** (0<blength<=1)
+blength=60mm(width)*0.1=6mm
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------
 \begin{verbatim}
-  (bond length)
-  blength=9mm
-  ** (blength>1) ignore msize(w,h)
+(bond length)
+blength=9mm
+** (blength>1) ignore msize(w,h)
 \end{verbatim}
 \MCFgraph
 %------------------------------------------------------------------------------
@@ -712,18 +706,18 @@
 \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
 %------------------------------------------------------------------------------
@@ -730,17 +724,17 @@
 \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,10 +743,10 @@
 \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
 %-----------------------------------------------------------------------------
@@ -759,10 +753,10 @@
 \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
 %-----------------------------------------------------------------------------
@@ -769,56 +763,56 @@
 \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 @@
 \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 @@
 \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 @@
 \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 @@
 \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,7 +970,7 @@
 \subsubsection{Group off mode}
 \index{sw\_group\_off}%
 \begin{verbatim}
-  ** default: sw_group_off=0
+** default: sw_group_off=0
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -983,7 +977,7 @@
 \subsubsection{Single bond mode}
 \index{sw\_single}%
 \begin{verbatim}
-  ** default: sw_single=0
+** default: sw_single=0
 \end{verbatim}
 \MCFgraph
 %-----------------------------------------------------------------------------
@@ -992,31 +986,28 @@
 \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
+(Draw both frame)
+sw_fframe=3
 \end{verbatim}
 \MCFgraph
-\begin{verbatim}
-  (Small dot at corner)
-  sw_fframe=4
-\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
 %-----------------------------------------------------------------------------
@@ -1023,8 +1014,10 @@
 \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 @@
 \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,19 +1065,19 @@
 \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
 %-----------------------------------------------------------------------------
@@ -1091,28 +1084,28 @@
 \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 @@
 \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 @@
 \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
+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
+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
+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)
+plus  : '+' circled
+minus : '-' circled
+  circlediam = 0.6aw (default)
+  circlepen =  0.2bp (default)
 
- lonepair r: ':' rotated r
-   lonepairdiam  = 0.3aw (default)
-   lonepairspace = 0.7aw (default)
+lonepair r: ':' rotated r
+  lonepairdiam  = 0.3aw (default)
+  lonepairspace = 0.7aw (default)
 
- ** : scaled
- << : rotated
- a /* b : point b of a
+** : scaled
+<< : rotated
+a /* b : point b of a
 
 beginfont("EN:add() 1")
  fsize:=(70mm,40mm);
@@ -1300,21 +1293,21 @@
 \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
+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
+n:    molecular number
+p[m]: molecular origin position
+w[m]: molecular width
+h[m]: molecular height
 
- ratio_thickness_char:
-   pen thickness / char width
+ratio_thickness_char:
+pen thickness / char width
 %----------------------------------------
 beginfont()
  fsize:=(70mm,30mm;);
@@ -1459,7 +1452,7 @@
 %-----------------------------------------------------------------------------
 \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 @@
 %-----------------------------------------------------------------------------
 \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], at 8,160`1.3,&3, ",
   ": 13=dl,6=wf,8=wb,                    ",
@@ -1490,7 +1483,7 @@
 %-----------------------------------------------------------------------------
 \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 @@
 %--------------------------------------------------------------------
 \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}
 %------------------------------------------------------------------------

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
===================================================================
(Binary files differ)

Modified: branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
===================================================================
--- branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex	2021-03-07 22:06:31 UTC (rev 58203)
+++ branches/branch2020.0/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex	2021-03-07 22:06:53 UTC (rev 58204)
@@ -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}%

Modified: branches/branch2020.0/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
===================================================================
--- branches/branch2020.0/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf	2021-03-07 22:06:31 UTC (rev 58203)
+++ branches/branch2020.0/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf	2021-03-07 22:06:53 UTC (rev 58204)
@@ -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,7 +37,7 @@
 % 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;
@@ -44,7 +44,8 @@
 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 @@
 ?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,7 +215,7 @@
   _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=
@@ -221,8 +222,8 @@
   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 @@
     %----------------------------------------------------------------------------------------
     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): 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
+    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
     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 @@
 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 @@
     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,7 +1053,6 @@
   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;
@@ -1058,7 +1059,7 @@
   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 @@
     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 @@
   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 @@
 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 @@
       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,18 +1800,16 @@
 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
@@ -1815,20 +1816,24 @@
   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
@@ -1835,8 +1840,6 @@
                  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,26 +1853,25 @@
     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;
+    exitif nA>=char_cnt+1;
   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
-  endfor
-  if nA>nB: proc_error(1,0) ef nA<nB: proc_error(2,0) fi
-  if nC>nD: proc_error(3,0) ef nC<nD: proc_error(4,0) fi
-  if nE>nF: proc_error(5,0) ef nE<nF: proc_error(6,0) fi
+  %-- brackets balance check ---------------------------------------------------------------------
+  if a_prn_s_cnt>a_prn_e_cnt: proc_error(1,0) ef a_prn_s_cnt<a_prn_e_cnt: proc_error(2,0) fi
+  if a_brc_s_cnt>a_brc_e_cnt: proc_error(3,0) ef a_brc_s_cnt<a_brc_e_cnt: proc_error(4,0) fi
+  if a_brk_s_cnt>a_brk_e_cnt: proc_error(5,0) ef a_brk_s_cnt<a_brk_e_cnt: proc_error(6,0) fi
   %-----------------------------------------------------------------------------------------------
   for i=1 upto err_cnt:
     message "*"&fdr(3)(i)&" "&err_type[err_code[i]]&fdr(4)(err_adr[i])&" '"&err_str[i]&"'";
   endfor
-%%%%  readstring;
+%%%%%%  readstring;
   err_cnt
 enddef;
 %-------------------------------------------------------------------------------------------------
@@ -1876,6 +1878,8 @@
 def proc_error(expr ERR_CODE,ADR)=
   err_cnt:=err_cnt+1; err_adr[err_cnt]:=ADR;
   err_code[err_cnt]:=ERR_CODE;
-  if ADR=0: err_str[err_cnt]:="     "; else: err_str[err_cnt]:=substring (ADR-3,ADR+2) of mc; fi
+  if ERR_CODE<=6: err_str[err_cnt]:="     ";
+  else:               err_str[err_cnt]:=substring (ADR-3,ADR+2) of mc;
+  fi
 enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



More information about the tex-live-commits mailing list.