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.