texlive[73444] Master/texmf-dist: mcf2graph (13jan25)

commits+karl at tug.org commits+karl at tug.org
Mon Jan 13 22:00:05 CET 2025


Revision: 73444
          https://tug.org/svn/texlive?view=revision&revision=73444
Author:   karl
Date:     2025-01-13 22:00:04 +0100 (Mon, 13 Jan 2025)
Log Message:
-----------
mcf2graph (13jan25)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/README
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp
    trunk/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf
    trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2025-01-13 20:59:53 UTC (rev 73443)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2025-01-13 21:00:04 UTC (rev 73444)
@@ -1,6 +1,14 @@
 *******************************************************************************
- Changelog of mcf2graph software package          by Akira Yamaji 2025-01-05
+ Changelog of mcf2graph software package          by Akira Yamaji 2025-01-13
 *******************************************************************************
+[ver. 5.17  / 2025-01-13]
+  -fix bug in group length inside group
+  -delete group command **
+  -delete option parameter sw_expand
+  -update mcf2graph.mp
+  -update main_lib.mcf
+  -update MCF manual,example
+
 [ver. 5.16  / 2025-01-05]
   -change syntax of methyl group
    /_  => ?

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/README
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2025-01-13 20:59:53 UTC (rev 73443)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2025-01-13 21:00:04 UTC (rev 73444)
@@ -1,7 +1,7 @@
 ********************************************************************************
  mcf2graph  : Convert Molecular Coding Format to graphics with MetaPost
  Author     : Akira Yamaji
- version    : 5.16 2025-01-05
+ version    : 5.17 2025-01-13
  E-mail     : mcf2graph at gmail.com
  Located at : http://www.ctan.org/pkg/mcf2graph
 ********************************************************************************
@@ -50,7 +50,7 @@
  (9) >mpost -s ahlength=7 filename.mp  => output report file
 
 5. License
- mcf2graph ver 5.16   Copyright (c) 2013-2025   Akira Yamaji
+ mcf2graph ver 5.17   Copyright (c) 2013-2025   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

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp	2025-01-13 20:59:53 UTC (rev 73443)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp	2025-01-13 21:00:04 UTC (rev 73444)
@@ -1,8 +1,14 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF metapost souce file example                 by Akira Yamaji  2025.01.05
+% MCF metapost souce file example                 by Akira Yamaji  2025.01.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.16
-message "* mcf_template 2025.01.05";
+%------------------------------------------------------------------------------
+%%%%ahlength:=3;  %%% output figure(expanded)
+%%%%ahlength:=5;  %%% output MOL(V2000) ** max 500files
+%%%%ahlength:=6;  %%% output MOL(V3000) ** max 500files
+%%%%ahlength:=7;  %%% output report
+%------------------------------------------------------------------------------
+input mcf2graph;  %%% it must be version 5.17
+message "* mcf_template 2025.01.13";
 message "";
 %------------------------------------------------------------------------------
 %%%%sw_output:=Fig+Report;

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

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex	2025-01-13 20:59:53 UTC (rev 73443)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex	2025-01-13 21:00:04 UTC (rev 73444)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF   Typeset with LuaLaTeX(luamplib)   by A.Yamaji   2025.01.05
+% Example of MCF   Typeset with LuaLaTeX(luamplib)   by A.Yamaji   2025.01.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 5.16
+% ** mcf2graph.mf must be version 5.17
 % ** use mcf_library.mcf
 % ** typeset by LuaLaTeX(luamplib)
 %-------------------------------------------------------------------------
@@ -29,7 +29,7 @@
  Author : Akira Yamaji \quad Date : \today \\
  Located at : http://www.ctan.org/pkg/mcf2graph
 \end{center}
-{\small *use 'mcf2grapf.mp' ver 5.16  \quad
+{\small *use 'mcf2grapf.mp' ver 5.17  \quad
         *typeset with LuaLaTeX \quad
         *use molecular library file 'main\_lib.mcf' \\
         ** FM(fm):molecular formula (calculated) \quad 

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

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2025-01-13 20:59:53 UTC (rev 73443)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2025-01-13 21:00:04 UTC (rev 73444)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  Molecular Coding Format manual                by  Akira Yamaji 2025.01.05
+%  Molecular Coding Format manual                by  Akira Yamaji 2025.01.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 5.16
+% ** mcf2graph.mf must be version 5.17
 % ** use main_lib.mcf
 % ** typeset by LuaLaTeX(luamplib)
 %----------------------------------------------------------------------------
@@ -37,7 +37,7 @@
 \author{Akira Yamaji}
 \date{\today}
 \maketitle
-\begin{center} mcf2graph version 5.16 \end{center}
+\begin{center} mcf2graph version 5.17 \end{center}
 \begin{center} Located at http://www.ctan.org/pkg/mcf2graph \end{center}
 \begin{center} Suggestion or request mail to: mcf2graph at gmail.com \end{center}
 %-----------------------------------------------------------------------------
@@ -921,7 +921,6 @@
 \index{hashed wedge}%
 \index{*/*}%
 \index{wave}%
-\index{**}%
 \index{direct}%
 \begin{verbatim}
 //  : double (double middle)
@@ -928,15 +927,14 @@
 */  : wedge forward
 /*  : hashed wedge forward
 */* : wave
-**  : direct
 
-<30,!,//!,!2,*/H,!2,/*H,!2,*/*H,!2,**?3,!
+<30,!,//!,!2,*/H,!2,/*H,!2,*/*H,!
 \end{verbatim}
 %-----------------------------------------
 \begin{mplibcode}
 beginfigm
   #(70mm,14mm);
-  \(<30,!`1,//!,!2`1,*/H,!2`1,/*H,!2`1,*/*H,!2`1,**?3,!`1)
+  \(<30,!`1,//!,!2`1,*/H,!2`1,/*H,!2`1,*/*H,!`1)
   ++(defaultscale:=0.75;
       label("//",A2-(0,0.45l));
       label("*/",A4-(0,0.45l));
@@ -1632,7 +1630,7 @@
 \subsubsection{Offset of wedge width}
 \index{offset\_wedge}%
 \begin{verbatim}
-default: offset_wedge=0.4pt
+default: offset_wedge=0.2pt
 \end{verbatim}
 %---------------------------------------------
 \begin{mplibcode}
@@ -1639,12 +1637,12 @@
 beginfigm
   #(60mm,12mm);
   offset_wedge:=0.0pt; @(0.1,0.5)\(<30,?6,5:?w)
-  offset_wedge:=0.4pt; @(0.55,0.5)\(<30,?6,5:?w)  %<<== default
-  offset_wedge:=1.0pt; @(1, 0.5)\(<30,?6,5:?w)
+  offset_wedge:=0.2pt; @(0.55,0.5)\(<30,?6,5:?w)  %<<== default
+  offset_wedge:=0.5pt; @(1, 0.5)\(<30,?6,5:?w)
   **(defaultscale:=0.6; labeloffset:=1bp;
     label.urt("0.0pt",(0,1bp));
-    label.urt("0.4pt",(0.36w,1bp));
-    label.urt("1.0pt",(0.7w,1bp));
+    label.urt("0.2pt",(0.36w,1bp));
+    label.urt("0.5pt",(0.7w,1bp));
   )
 endfigm
 \end{mplibcode}
@@ -1914,31 +1912,8 @@
 endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
-\subsubsection{Expand mode}
-\index{sw\_expand}%
-\begin{verbatim}
-** put before input mcf2graph
-sw_expand:=1;
-input mcf2graph.mp;
-
-(sw_expand=0) ** default
-@(0, .5)\(<30,Ph,4:/COOH,3:/NH2)
-(sw_expand=1)
-@(1, .5)\(<30,Ph,4:/COOH,3:/NH2)
-\end{verbatim}
-%------------------------------------------------------
-\begin{mplibcode}
-beginfigm
-  #(60mm,15mm)
-  @(0, .5)\(<30,Ph,1:/COOH,3:/NH2)
-  sw_expand:=1;
-  @(1, .5)\(<30,Ph,1:/''(?O^-60,/OH^60),3:/''(N,/H^60,/H^-60))
-endfigm
-\end{mplibcode}
-%-----------------------------------------------------------------------------
 \subsubsection{Omit group}
 \index{Group}%
-\index{sw\_abbreviate}%
 \begin{verbatim}
 ** default: sw_omit=Group
 \end{verbatim}
@@ -1955,7 +1930,6 @@
 %-----------------------------------------------------------------------------
 \subsubsection{Omit bond type}
 \index{Bond}%
-\index{sw\_abbreviate}%
 \begin{verbatim}
 ** default: sw_omit=Bond
 \end{verbatim}
@@ -2068,6 +2042,9 @@
 beginfigm 
   \(Ph)
 endfigm
+beginfigm 
+  \(Ph)
+endfigm
 \end{verbatim}
 %------------------------------------------------------
 \quad
@@ -2083,8 +2060,12 @@
 beginfigm
   \(Ph)
 endfigm
+beginfigm
+  \(Ph)
+endfigm
 \end{mplibcode}
 %-----------------------------------------------------------------------------
+\newpage
 \subsubsection{Global parameter setting}
 \begin{verbatim}
 beginfigm
@@ -2099,6 +2080,9 @@
 beginfigm
   \(Ph)
 endfigm
+beginfigm
+  \(Ph)
+endfigm
 \end{verbatim}
 %----------------------------------------------------
 \quad
@@ -2115,6 +2099,9 @@
 beginfigm
   \(Ph)
 endfigm
+beginfigm
+  \(Ph)
+endfigm
 ratio_thickness_bond:=save_ratio;
 \end{mplibcode}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2653,7 +2640,7 @@
 beginfigm
   '`(
   "<30,Ph,1'2'6:/O!,-4'-5=?7,     ",
-  " -1'-4'-6=dl,-2:?O,-3:/O!,    ",
+  " -1'-4'-6=dl,-2:?O,-3:/O!,     ",
   " 9:/NH!'?O!                    ")
   #(40mm,20mm) \\
 endfigm
@@ -2664,7 +2651,7 @@
 beginfigm
   '`(
   "<30,Ph,1'2'6:/O!,-4'-5=?7,    ",
-  " -1'-4'-6=dl,-2:?O,-3:/O!,   ",
+  " -1'-4'-6=dl,-2:?O,-3:/O!,    ",
   " 9:/NH!'?O!                   ")
   #(40mm,20mm) \\
 endfigm
@@ -2758,9 +2745,9 @@
   '`(
   %------------------------------------------------------------------
   "?6,5=dl, at 3,#1,36,45,45,45,45,##,&5,-4=?6,-4=?4,-1=wb,-3=wf,-1:O, ",
-  " 4:??,6:?,{3^-60'15}:*/OH,8:/*H^-60,9:?w^60,10:?O,            ",
-  " @1,!,O,!,?O,!,*/OH,!,/Ph,60~wf,NH,-60,?O,60,Ph,               ",
-  " @7,!z,O,-45,?O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!               ")
+  " 4:??,6:?,{3^-60'15}:*/OH,8:/*H^-60,9:?w^60,10:?O,               ",
+  " @1,!,O,!,?O,!,*/OH,!,/Ph,60~wf,NH,-60,?O,60,Ph,                 ",
+  " @7,!z,O,-45,?O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!                ")
   %------------------------------------------------------------------
   #(140mm,30mm)
   if \*(mc)=0:
@@ -2779,9 +2766,9 @@
   '`(
   %-------------------------------------------------------------------
   "?6,5=dl, at 3,#1,36,45,45,45,45,##,&5,-4=?6,-4=?4,-1=wb,-3=wf,-1:O, ",
-  " 4:??,6:?,{3^-60'15}:*/OH,8:/*H^-60,9:?w^60,10:?O,            ",
-  " @1,!,O,!,?O,!,*/OH,!,/Ph,60~wf,NH,-60,?O,60,Ph,               ",
-  " @7,!z,O,-45,?O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!               ")
+  " 4:??,6:?,{3^-60'15}:*/OH,8:/*H^-60,9:?w^60,10:?O,               ",
+  " @1,!,O,!,?O,!,*/OH,!,/Ph,60~wf,NH,-60,?O,60,Ph,                 ",
+  " @7,!z,O,-45,?O,60,Ph,{11>rl'*12^-15>lr}:*/O!'?O!                ")
   %-------------------------------------------------------------------
   #(160mm,40mm)
   if \*(mc)=0:      @(0,  0.5)\(scantokens(mc))

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf	2025-01-13 20:59:53 UTC (rev 73443)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf	2025-01-13 21:00:04 UTC (rev 73444)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf template file    mcf_template.mcf   by Akira Yamaji   2025.01.05
+% mcf template file    mcf_template.mcf   by Akira Yamaji   2025.01.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  must use version 5.15
+%  must use version 5.17
 %  tag1:var1;tag2:var2;tag3:var3 .....
 %  first character of line "%" comment out
 %  first character of line ":"  start MCF

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp	2025-01-13 20:59:53 UTC (rev 73443)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp	2025-01-13 21:00:04 UTC (rev 73444)
@@ -1,11 +1,16 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF compile template file                    by Akira Yamaji  2025.01.05
+% MCF compile template file                    by Akira Yamaji  2025.01.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-if unknown mcftograph: input mcf2graph; fi  %%% it must be version 5.16
-message "* mcf_template 2025.01.05";
+%------------------------------------------------------------------------------
+%%%%ahlength:=3;  %%% output figure(expanded)
+%%%%ahlength:=5;  %%% output MOL(V2000) ** max 500files
+%%%%ahlength:=6;  %%% output MOL(V3000) ** max 500files
+%%%%ahlength:=7;  %%% output report
+%------------------------------------------------------------------------------
+input mcf2graph;   %%% it must be version 5.17
+message "* mcf_template 2025.01.13";
 message "";
 %------------------------------------------------------------------------------
-sw_output:=Fig;
 %%%%sw_output:=Fig+Report;
 %%%%ext(defaultscale:=.3; label.rt(EN,(0,0));)
 %------------------------------------------------------------------------------

Modified: trunk/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf
===================================================================
--- trunk/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf	2025-01-13 20:59:53 UTC (rev 73443)
+++ trunk/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf	2025-01-13 21:00:04 UTC (rev 73444)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular library file    main_lib.mcf   by Akira Yamaji   2025.01.05
+% molecular library file    main_lib.mcf   by Akira Yamaji   2025.01.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  must use version 5.16
+%  must use version 5.17
 %  tag1:var1;tag2:var2;tag3:var3 .....
 %  first character of line "%" comment out
 %  first character of line ":"  start MCF
@@ -562,7 +562,7 @@
  @5,40~zf`1,O,50,?O^180,&14~zb,2:/COOH,7:?d,*8'13:*/OH,14:?w,1'4:*/H^60
 ;
 %------------------------------------------------------------------------------
-CAT:biological;EN:Cholesterol;MW:386.664;EXA:1
+CAT:biological;EN:Cholesterol;MW:386.664;EXA:2
 :
 <30,?6,-4'-2=?6,-4=?5,7=dl,
  1:*/OH,4'12:?w^60,{*9^60'10^180'11^-60'-1^-60}:/*H, at -1,17,?z,!4,?!
@@ -821,7 +821,7 @@
 %------------------------------------------------------------------------------
 CAT:biological;EN:Illudin S;MW:264.3;EXA:2
 :
-<30,?6,3=?5,6:**?3,4'7=dl,2:?O,5:?,{1^35'8^35}:?w,{*1^-35'9}:*/OH,8^-35:/*!OH
+<30,?6,3=?5, at 6,?3,4'7=dl,2:?O,5:?,{1^35'8^35}:?w,{*1^-35'9}:*/OH,8^-35:/*!OH
 ;
 %------------------------------------------------------------------------------
 CAT:biological;EN:Muscarine;MW:174.26;EXA:1
@@ -2477,8 +2477,8 @@
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Indoxacarb;MW:527.837;EXA:2
 :
-<-6,Ph,3=?5,9=?6,15=dl,10:O,12'13:N,1:/Cl,8`1^-54:/?O!'O!,
- @12,!,?O!,N,/?O!'O!,!Ph,-3:/O!'?F?F!F
+<-6,Ph,3=?5,9=?6,15=dl,10:O,12'13:N,1:/Cl,
+ @12,!,?O!,N,!Ph,-3:/O!'?F?F!F,{8^-54`1'15}:/?O!'O!
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Oxamyl;MW:219.3;EXA:1
@@ -2601,9 +2601,9 @@
 <30,Ph,3=?5,8=dl,9:NH,7:N, at 8,!,|,?5,1'4=dl,3:S,5:N
 ;
 %------------------------------------------------------------------------------
-CAT:pesticide;EN:Thiamethoxam;MW:291.71;EXA:2
+CAT:pesticide;EN:Thiamethoxam;MW:291.71;EXA:1
 :
-<30,?6,2:O,4'6:N,6:?, at 5,!d,N,!NO2, at 4,!2,|,?5,1'3=dl,3:N,5:S,4:/Cl
+<30,?6,2:O,4'6:N,6:?, at 5,!dm,N,!NO2, at 4,!2,|,?5,1'3=dl,3:N,5:S,4:/Cl
 ;
 %------------------------------------------------------------------------------
 CAT:pesticide;EN:Tebuthiuron;MW:228.3;EXA:1

Modified: trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp	2025-01-13 20:59:53 UTC (rev 73443)
+++ trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp	2025-01-13 21:00:04 UTC (rev 73444)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 5.16    Copyright (c) 2013-2025   Akira Yamaji
+% mcf2graph ver 5.17    Copyright (c) 2013-2025   Akira Yamaji
 %
 % Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 % and associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -22,7 +22,7 @@
 % This package is located at : http://www.ctan.org/pkg/mcf2graph
 % Suggestion or request mail to : mcf2graph at gmail.com 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-message "* This is mcf2graph ver 5.16  2025.01.05";
+message "* This is mcf2graph ver 5.17  2025.01.13";
 tracingstats:=1; prologues:=3;
 %-------------------------------------------------------------------------------------------------
 newinternal string EN_,tempc,temps,blanks,line_s,atom_s,forbiddens,firstc,file_output;
@@ -35,8 +35,8 @@
         CAT,JN,CAS,USE,EXA,EXB,file_input,default_temp_file,mpfont,atomfont,numberfont;
 pair    save_pair[],msize,mposition,fsize,fmargin,save_mposition;
 %-------------------------------------------------------------------------------------------------
-fig_num:=str_cnt:=tbl_cnt:=mangle:=sw_frame:=sw_trimming:=sw_ext_all:=sw_omit:=sw_expand:=0;
-sw_comment:=sw_output:=sw_numbering:=tag_cnt:=rw_cnt:=pcode_all:=MW_n:=0;
+fig_num:=str_cnt:=tbl_cnt:=mangle:=sw_frame:=sw_trimming:=sw_ext_all:=sw_omit:=0;
+sw_comment:=sw_output:=sw_numbering:=tag_cnt:=rw_cnt:=pcode_all:=MW_n:=f_expand:=0;
 %-------------------------------------------------------------------------------------------------
 for s="No","EN","JN","MW","MI","FM","CAT","CAS","USE","EXA","EXB": tag[incr tag_cnt]:=s; endfor
 Fig:=1; Mcode:=2; Info:=4; Report:=8; MOL2k:=16; MOL3k:=32; Atom:=2; Bond:=4; All:=8;
@@ -52,11 +52,11 @@
 ef ahangle=45: outputformat:="svg";                   % svg format  *default
 fi
 %--default ahlength=4---------------------------------------------------------------------
-if ahlength=3:  sw_output:=Fig; sw_expand:=1;         % output figure(expanded)
-ef ahlength=4:  sw_output:=Fig;                       % output figure *default
-ef ahlength=5:  sw_output:=MOL2k; sw_expand:=1;       % output MOL(V2000) ** max 500files
-ef ahlength=6:  sw_output:=MOL3k; sw_expand:=1;       % output MOL(V3000) ** max 500files
-ef ahlength=7:  sw_output:=Report;                    % output report
+if ahlength=3:  sw_output:=Fig;   f_expand:=1;       % output figure(expanded)
+ef ahlength=4:  sw_output:=Fig;                      % output figure *default
+ef ahlength=5:  sw_output:=MOL2k; f_expand:=1;       % output MOL(V2000) ** max 500files
+ef ahlength=6:  sw_output:=MOL3k; f_expand:=1;       % output MOL(V3000) ** max 500files
+ef ahlength=7:  sw_output:=Report;                   % output report
 fi
 %-- default bboxmargin=2------------------------------------------------------------------
 if bboxmargin=3: ext(defaultfont:=mpfont; defaultscale:=.3; label.rt(EN,(0,0));)
@@ -84,7 +84,7 @@
 ratio_chain_ring:=0.66; ratio_atom_bond:=0.36; ratio_thickness_bond:=0.012; ratio_char_atom:=0.12;
 ratio_bondgap_bond:=0.15; ratio_hashgap_bond:=0.12; ratio_hash_black:=0.4;
 ratio_wedge_bond:=0.12; ratio_atomgap_atom:=0.05; offset_thickness:=0.25; offset_bond_gap:=0.3;
-offset_hash_gap:=0.1; offset_atom:=0.8; offset_wedge:=0.4; thickness_frame:=0.2;
+offset_hash_gap:=0.1; offset_atom:=0.8; offset_wedge:=0.2; thickness_frame:=0.2;
 max_blength:=10mm; blength:=mangle:=0; max_labelsize:=20mm; dottedline_gap:=1.5;
 fsize:=(30mm,20mm); fmargin:=(0.4mm,0.4mm); msize:=(1,1); mposition:=(0.5,0.5);
 ahangle:=45; ahlength:=4; defaultsize:=8; defaultscale:=1; labeloffset:=3; ext_defaultline:=0.5;
@@ -111,7 +111,8 @@
 vardef fdl(expr n)(expr s)= fsl(n)(decimal(s)) enddef;
 %-------------------------------------------------------------------------------------------------
 aux_delimiter:=";"; blanks:= "            ";  forbiddens:=" &()[]{}^=;!'+,`~";
-for s="*/*","/*","*/","//","**","##","||":rw[incr rw_cnt]:=s; lenw[rw_cnt]:=length(s); endfor
+for s="*/*","/*","*/","//","##","||":rw[incr rw_cnt]:=s; lenw[rw_cnt]:=length(s); endfor
+%-------------------------------------------------------------------------------------------------
 PRS:=ASCII("(");PRE:=ASCII(")");BRS:=ASCII("{");BRE:=ASCII("}");QES:=ASCII("?");DOL:=ASCII("$");
 CMA:=ASCII(",");EQU:=ASCII("=");AST:=ASCII("*");SLS:=ASCII("/");GTN:=ASCII("<");LTN:=ASCII(">");
 AMP:=ASCII("&");HSH:=ASCII("#");HAT:=ASCII("^");TLD:=ASCII("~");BQT:=ASCII("`");CLN:=ASCII(":");
@@ -128,7 +129,7 @@
   _set_colorB,_group_si,_group_dm,_group_wf,_group_zf,_set_adr,_mk_bond,_set_atom,_arrange_ang,
   _chg_atom,_fuse,_fuse_ext,_size_atom,_numeric,_numeric_inv,_jump_at,_set_add,_chg_add,_nop,
   _mark,_moff,_term,_len_s,_len_e,_len_ss,_len_ee,_group_s,_group_e,_rest,_charge,_from,_until,
-  si,dl,dl_,dr,dr_,db,dm,dm_,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,nb,wf_r,wb_r,bd_r,arc_lb,arc_br,
+  si,dl,dl_,dr,dr_,db,dm,dm_,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,wf_r,wb_r,bd_r,arc_lb,arc_br,
   arc_lbr,arc_ltr,si_,wf_,wb_,zf_,zb_,wv_,bd_);
 %-------------------------------------------------------------------------------------------------
 def parameter_list=
@@ -335,12 +336,11 @@
 def group_wf secondary n = if numeric n:: (_group_wf,n) else:: _nop fi enddef;
 def group_zf secondary n = if numeric n:: (_group_zf,n) else:: _nop fi enddef;
 def group_wv secondary n = if numeric n:: /n~wv         else:: _nop fi enddef;
-def group_nb secondary n = if numeric n:: /n~nb         else:: _nop fi enddef;
 %=================================================================================================
 def read_mcf(expr n)(text t)=
   begingroup
   if unknown inside_mc::
-    save /,//,*,/*,*/,**,*/*,~,^,`,',<,>,:,=,@,@$,$,&,&$,#,##,{,},|,||,--,---,----,
+    save /,//,*,/*,*/,*/*,~,^,`,',<,>,:,=,@,@$,$,&,&$,#,##,{,},|,||,--,---,----,
          CP,CA,CC,DL,FR,inside_mc;
     inside_mc:=1; | :=mark_adress; || :=reset_adress; ##:=reset_length;
     let ' == bop_qut; let = ==bop_equ; let : ==bop_col; let ^ ==bop_hat; let ~ ==bop_til;
@@ -347,11 +347,10 @@
     let > ==bop_lth; let ` ==bop_bqu; let -- == fuse__; let --- == fuse___; let ---- == fuse____;
     let } == ); let @$ ==jump_atom_abs; let < ==rot_angle; let @ ==jump_atom; let & ==cyc_atom;
     let # ==chg_length; let / ==group_si; let // ==group_dm; let */ ==group_wf; let /* ==group_zf;
-    let */* ==group_wv; let ** ==group_nb; let CP == pcode_add; let CA == pcode_add_adr;
-    let FR == fuse_ring_bonds; def DL(expr p)==CA(_set_line,dl,p) enddef;
-    def CB(expr p)==CP(_mk_bond,p) enddef; def CC(expr p)==CP(_com,p) enddef;
-    def $ ==abs_adress enddef; def &$ ==&.$ enddef; def { ==read_adress( enddef;
-    def * primary p == (_numeric_inv,p) enddef;
+    let */* ==group_wv; let CP == pcode_add; let CA == pcode_add_adr; let FR == fuse_ring_bonds;
+    def DL(expr p)==CA(_set_line,dl,p) enddef; def CB(expr p)==CP(_mk_bond,p) enddef;
+    def CC(expr p)==CP(_com,p) enddef; def $ ==abs_adress enddef; def &$ ==&.$ enddef;
+    def { ==read_adress( enddef; def * primary p == (_numeric_inv,p) enddef;
   fi
   %----------------------------------------------------------------------------------------------
   pcode_cnt[n]:=block_cnt:=0;
@@ -519,7 +518,7 @@
   fi
   if f_type==0::
     if (b GT pcode_emb_start)and(b<=pcode_atm_end):: CA(_chg_atom,b,a)
-    ef b==NH::  CA(_chg_atom,N,a) if sw_expand==0:: CP(_tmp_line,nl) fi
+    ef b==NH::  CA(_chg_atom,N,a) if f_expand==0:: CP(_tmp_line,nl) fi
                 CC(_group_s) CA(_group_si,H,a) CC(_group_e)
     ef b==N?::  CA(_chg_atom,N,a) CC(_group_s) CA(_group_si,NO_ATOM,a) CC(_group_e)
     ef b==N?2:: CA(_chg_atom,N,a) CC(_group_s) CA(_group_si,!,a) CC(_group_e)
@@ -632,7 +631,7 @@
   pair cpos,tpos,raise_pos,posBs,posBe,pA,Ls,Le;
   path frameA[],zA,zL;
   %-----------------------------------------------------------------------------------------------
-  if sw_expand=1: rate_cr:=1; else: rate_cr:=-ratio_chain_ring; fi
+  if f_expand=1: rate_cr:=1; else: rate_cr:=-ratio_chain_ring; fi
   cntA:=cntB:=cntC:=group_num:=0; str_tbl[0]:="C"; str_cnt:=2000;
   %-----------------------------------------------------------------------------------------------
   fig_wd:=xpart(fsize); fig_ht:=ypart(fsize);
@@ -805,8 +804,7 @@
     ef pX=_set_len:  len_e_T:=bondL; if pY=_ring_len: bondL:=ringL; else: bondL:=pY; fi
     ef pX=_get_len:  if pY=_tmp_len: if bondL=rate_cr: bondL:=lenT; fi
                      ef pY=_ring_len:
-                       if lenT<>rate_cr: bondL:=lenT; else: if bondL<0: bondL:=1; fi
-                     fi
+                       if lenT<>rate_cr: bondL:=lenT; else: if bondL<0: bondL:=1; fi fi
                      else: ringL:=lenB[getB(pY)];
                      fi
     ef pX=_tmp_len:  lenT:=pY;
@@ -828,21 +826,18 @@
 enddef;
 %-------------------------------------------------------------------------------------------------
 def add_group(expr n)=
+  group_cnt[incr group_num]:=0;
   if f_at=1: nA:=getA(adrT); check_adrA(nA); else: nA:=cntA+1; fi
-  group_cnt[incr group_num]:=0; store_group(_jp_absA,nA)
-  store_group(_com,_mark)
-  store_group(_com,_len_s)
-  if lineT<>nb: store_group(_tmp_line,lineT) fi
-  if rotT<>0:   store_group(_rot_ang,rotT) fi
-  if lenT<>rate_cr: store_group(_chg_len,lenT)
-  ef bondL<>rate_cr: 
-    if bondL>=0: store_group(_chg_len,-bondL) else: store_group(_chg_len,bondL) fi fi
-  if envT<>hz:  store_group(_chg_env,envT) fi
-  if lineT=nl:  store_group(_chg_len,_size_atom) store_group(_adj_ang,0) fi
-  if lineT<>nb: store_group(_mk_bond,0) fi
-  if n<>NO_ATOM: for i=1 upto pcode_cnt[n]: store_group(pcode_x[n][i],pcode_y[n][i]) endfor fi
-  store_group(_com,_len_e) store_group(_chg_env,hz) store_group(_com,_term)
-  store_group(_com,_rest)
+  store_grp(_jp_absA,nA) store_grp(_com,_mark) store_grp(_com,_len_s) store_grp(_tmp_line,lineT)
+  if rotT<>0: store_grp(_rot_ang,rotT) fi
+  if (lenT<>rate_cr)and(lineT<>nl): store_grp(_tmp_len,lenT)
+  ef bondL<>rate_cr: if bondL>=0: store_grp(_chg_len,-bondL) else: store_grp(_chg_len,bondL) fi
+  fi
+  if envT<>hz: store_grp(_chg_env,envT) fi
+  if lineT=nl: store_grp(_tmp_len,_size_atom) store_grp(_adj_ang,0) else: fi
+  store_grp(_mk_bond,0)
+  if n<>NO_ATOM: for i=1 upto pcode_cnt[n]: store_grp(pcode_x[n][i],pcode_y[n][i]) endfor fi
+  store_grp(_com,_len_e) store_grp(_chg_env,hz) store_grp(_com,_term) store_grp(_com,_rest)
   if f_lineT=0: lineT:=si; fi
   if f_lenT=0:  lenT:=rate_cr; fi 
   if f_rotT=0:  rotT:=0;   fi
@@ -849,7 +844,7 @@
   if f_envT=0:  envT:=hz;  fi
 enddef;
 %-------------------------------------------------------------------------------------------------
-def store_group(expr a,b)=
+def store_grp(expr a,b)=
   group_com[group_num][incr group_cnt[group_num]]:=a; 
   group_par[group_num][group_cnt[group_num]]:=b;
 enddef;
@@ -870,15 +865,17 @@
 def check_adrB(expr n)= if (n>cntB)or(n<=0): errmessage("cntB=[ "&decimal(n)&" ]"); fi enddef;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def proc_skeleton(expr n)=
-  markA:=markB:=cntA:=cntB:=f_bra:=rotT:=f_term:=envT:=envB:=f_lineT:=f_rotT:=f_lenT:=f_envT:=0;
+  markA:=markB:=cntA:=cntB:=f_bra:=rotT:=f_term:=envT:=envB:=0;
   angA[0]:=angB[0]:=angX[0]:=0; lineT:=si; angT:=mangle; posA[0]:=posBs:=posBe:=(0,0);
   %-----------------------------------------------------------------------------------------------
-  for i=1 upto pcode_cnt[n]: pX:=pcode_x[n][i]; pY:=pcode_y[n][i];
+  for i=1 upto pcode_cnt[n]:
+    pX:=pcode_x[n][i]; pY:=pcode_y[n][i];
     if pX=_mk_bond: if (pY=0)and(rotT<>0):pY:=rotT; rotT:=0; fi add_bond(pY,1);
     ef pX=_com: if pY=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB;
                 ef pY=_rest: markA:=saveA; markB:=saveB;
                 ef pY=_moff: markA:=markB:=0; ef pY=_term: termB;
-                ef pY=_group_e: lineT:=si; lenT:=rate_cr; rotT:=envT:=0; fi
+                ef pY=_group_e: lineT:=si; lenT:=rate_cr; rotT:=envT:=0;
+                fi
     ef pX=_jp_bond: termB; nA:=getB(pY); posBs:=posA[sB[nA]]; angT:=angB[nA]; f_bra:=1; rotT:=0;
     ef pX=_jp_atom: termB; adrT:=getA(pY); posBs:=posA[adrT]; angT:=angX[adrT]; f_bra:=1; rotT:=0;
     ef pX=_jp_absA: adrT:=pY; posBs:=posA[adrT]; angT:=angX[adrT];
@@ -908,7 +905,8 @@
     if lenB[cntB]=_size_atom: posBe:=sfrt(posBs,1.12atom_wd,angT);
     else:
       nA:=lenB[cntB]; if nA<0: nB:=glu_atom(adrT)+glu_atom(cntA+1); nA:=abs(nA); else: nB:=0; fi
-      posBe:=sfrt(posBs,nA*blen+nB,angT); fi
+      posBe:=sfrt(posBs,nA*blen+nB,angT);
+    fi
     posA[cntA+1]:=posBe; f_term:=0;
   else: f_term:=1;
   fi
@@ -947,10 +945,7 @@
 def termB= if f_term=0: if f_bra=0: angX[incr cntA]:=angT; else:f_bra:=0; fi f_term:=1; fi enddef;
 %-------------------------------------------------------------------------------------------------
 vardef glu_atom(expr n)=
-  save squ_a,hwd,glu_n;
-  if strA[n]<>0:
-    squ_a:=angT mod 90; hwd:=0.5atom_wd; glu_n:=(iif(squ_a<45,sind squ_a,cosd squ_a)*hwd)+++hwd;
-    glu_n
+  if strA[n]<>0: nD:=angT mod 90; nC:=0.5atom_wd; nN:=(iif(nD<45,sind nD,cosd nD)*nC)+++nC; nN
   else: 0
   fi
 enddef;
@@ -1057,7 +1052,6 @@
              wz_put(Le,sfrt(Ls,ww,am),sfrt(Ls,ww,ap));
   ef nL=bd_: erase draw subpath(0.15,0.85) of zA wpcs 1.6bondgap;
              draw zA withpen penrazor rotated ap scaled bondgap;
-  ef nL=nb:
   %-- bond type for glycan ----------------------------------------------------------------------
   ef nL=arc_lb:  draw Ls--Ls-(0,aw)..posA[nE]+(-1.2aw,0)..posA[nE]-(.6aw,0);
   ef nL=arc_br:  draw posA[nS]+(.6aw,0)..posA[nS]+(1.2aw,0)..Le-(0,aw)--Le;
@@ -1149,7 +1143,7 @@
   ef s="-": dwh Z_m--Z_o;
   ef s="+": dwv Z_x--Z_s; dwh Z_m--Z_o;
   ef s="A": dwvs(1.14)Z_b--Z_f--Z_e; dw .33[Z_b,Z_f]--.33[Z_e,Z_f];
-  ef s="B": dw Z_r--Z_s{right}..(.9fH,.75aH)..{left}Z_y--Z_m--Z_y{right}..(.9fH,qH)..
+  ef s="B": dw Z_r--Z_s{right}..(.85fH,.75aH)..{left}Z_y--Z_m--Z_y{right}..(.9fH,qH)..
               {left}Z_x--Z_c; dwv Z_b--Z_w;
   ef s="D": dw Z_r--Z_s..Z_o..Z_x--Z_c; dwv Z_b--Z_w;
   ef s="E": pickup pensquare scaled fP; dw Z_z--Z_c--Z_r--Z_n; dw Z_m--Z_o;
@@ -1185,7 +1179,7 @@
   ef s="o": dw Z_x..Z_o..Z_s..Z_m..cycle;
   ef s="p": dw Z_x..Z_o..Z_s..Z_m..cycle; dwv Z_w--(hP,-.3aH);
   ef s="q": dw Z_x..Z_o..Z_s..Z_m..cycle; dwv Z_t--(fW,-.3aH);
-  ef s="r": cdw (sbp(.33,.72)Z_x..Z_o..Z_s..Z_m..cycle) shifted(0,-hP); dwv Z_b--Z_w;
+  ef s="r": cdw (sbp(.35,.72)Z_x..Z_o..Z_s..Z_m..cycle) shifted(0,-1.5hP); dwv Z_b--Z_w;
   ef s="s": cdw sbp(.05,.45)circ_O; cdw sbp(.55,.95)circ_O; dw (fW,.3aH){up}..{up}(hP,.7aH);
   ef s="t": dwv Z_g--Z_f; dwh (0,.66aH)--(aW,.66aH);
   ef s="u": cdw Z_w..(hP,.55aH){down}..Z_x..(fW,.55aH){up}..Z_t; dwv Z_t--Z_e;
@@ -1458,7 +1452,7 @@
   tbl_atom_end:=tbl_cnt;
   %-----------------------------------------------------------------------------------------------
   !:=!1:='((_mk_bond,_arrange_ang)); 
-  if sw_expand=1:
+  if f_expand=1:
     CH3:='(/H,/H^60,/H^-60); NH:='(N,/H); NH2:='(N,/H^60,/H^-60); NO2:='(N,//O^60,//O^-60);
     OH:='(O,!,H); NO:='(N,//O); CONH2:='(//O,!,NH2); SH:='(S,!,H); SO2H:='(S,//O^60,/OH^-60);
     SO3H:='(S,/OH,//O^60,//O^-60); CHO:='(//O^-60,/H^60); COOH:='(//O^-60,/OH^60); CN:='(!~tm,N);
@@ -1560,8 +1554,8 @@
         if (nA=CMA)or(nC=CMA)or(nA=QUT)or(nC=QUT): proc_err(4,i) fi
       ef (nB=AMK)or(nB=AMP)or(nB=GTN):                                           % @,&,<,$
         if nA<>CMA: proc_err(5,nB) fi if (nC=CMA)or(nC=QUT): proc_err(4,i) fi
-      ef (nB=SLS)or((nB>=1)and(nB<=5)):
-        if (nA<>CMA)and(nA<>CLN)and(nA<>PRS): proc_err(5,i) fi                % /,*/*,//,/*,*/,**
+      ef (nB=SLS)or((nB>=1)and(nB<=4)):
+        if (nA<>CMA)and(nA<>CLN)and(nA<>PRS): proc_err(5,i) fi                % /,*/*,//,/*,*/
         if (nC=CMA)or(nC=QUT): proc_err(4,i) fi
       ef nB=DOL: if (nC=QUT)or(nC=CMA): proc_err(4,i) fi
       fi



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