texlive[73011] Master/texmf-dist: mcf2graph (1dec24)
commits+karl at tug.org
commits+karl at tug.org
Sun Dec 1 22:05:26 CET 2024
Revision: 73011
https://tug.org/svn/texlive?view=revision&revision=73011
Author: karl
Date: 2024-12-01 22:05:26 +0100 (Sun, 01 Dec 2024)
Log Message:
-----------
mcf2graph (1dec24)
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/mcf_to_graph.cmd
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 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,6 +1,13 @@
*******************************************************************************
- Changelog of mcf2graph software package by Akira Yamaji 2024-11-17
+ Changelog of mcf2graph software package by Akira Yamaji 2024-12-01
*******************************************************************************
+[ver. 5.15 / 2024-12-01]
+ -change syntax of separator inside @(..)
+ @(a,b) => @(a'b)
+ -update mcf2graph.mp
+ -update main_lib.mcf
+ -update MCF manual,example
+
[ver. 5.14 / 2024-11-17]
-change syntax of inverter inside {..}
{n1,n2',n3..} => {n1,*n2,n3..}
Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/README
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/README 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/README 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,7 +1,7 @@
********************************************************************************
mcf2graph : Convert Molecular Coding Format to graphics with MetaPost
Author : Akira Yamaji
- version : 5.14 2024-11-17
+ version : 5.15 2024-12-01
E-mail : mcf2graph at gmail.com
Located at : http://www.ctan.org/pkg/mcf2graph
********************************************************************************
@@ -20,7 +20,7 @@
( 3) mcf_to_graph.cmd Batch file for compile MCF lib
>mcf_to_graph template_lib.mcf
drag and drop library files on this batch
- create svg in ./template_lib
+ create svg(default) in ./template_lib
( 4) mcf2graph.mp Main macro of Metapost
( 5) mcf_exa_soc.mp Metapost source file example
( 6) main_lib.mcf MCF library file
@@ -31,8 +31,14 @@
(11) mcf_example.tex List of Molecule
(12) mcf_example.pdf PDF of (11) typeset with LuaLaTeX
-3. How to use mcf2graph with MetaPost
- Minimum requirement to use mcf2graph : mpost.exe,mpost.dll,mpost.mp,plain.mp
+3. Minimum required files to use mcf2graph
+ (1) mpost.exe
+ (2) mpost.dll
+ (3) mpost.mp
+ (4) plain.mp
+
+4. Use mcf2graph with MetaPost
+ -command line-
(1) >mcf_to_graph filename.mcf => output svg(default),png,mol,report
(2) >mpost filename.mp => output svg file
(3) >mpost -s ahangle=1 filename.mp => output png file (600dpi)
@@ -43,8 +49,8 @@
(8) >mpost -s ahlength=6 filename.mp => output mol file(V3000)
(9) >mpost -s ahlength=7 filename.mp => output report file
-4. License
- mcf2graph ver 5.14 Copyright (c) 2013-2024 Akira Yamaji
+5. License
+ mcf2graph ver 5.15 Copyright (c) 2013-2024 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 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mp 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,8 +1,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF metapost souce file example by Akira Yamaji 2024.11.17
+% MCF metapost souce file example by Akira Yamaji 2024.12.01
+% Public domain.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.14
-message "* mcf_template 2024.11.17";
+if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.15
+message "* mcf_template 2024.12.01";
message "";
%------------------------------------------------------------------------------
fsize:=(30mm,20mm);
@@ -20,7 +21,7 @@
%%%%sw_comment:=1; loadm("CAT=biological","MW>=100","MW<=250","a:MW");
%%%%savem("temp.mcf"); % save to temp.mcf
%%%%loadm("EN<>*"); % select all
-loadm("EXA=9"); % select EXA=1
+loadm("EXA=1"); % select EXA=1
%------------------------------------------------------------------------------
for i=1 upto ucount: beginfigm $(i) \\ endfigm endfor
%******************************************************************************
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 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2024.11.17
+% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2024.12.01
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 5.14
+% ** mcf2graph.mf must be version 5.15
% ** use mcf_library.mcf
% ** typeset by LuaLaTeX(luamplib)
%-------------------------------------------------------------------------
@@ -95,7 +95,7 @@
loadm("EXA=2");
fig_num:=0;
fsize:=(50mm,34mm);
- fmargin:=(1mm,1mm);
+ fmargin:=(4mm,4mm);
max_blength:=4mm;
row_h:=3.8mm;
header_h:=3.8mm;
@@ -103,7 +103,7 @@
draw (0,0)--(185mm,0)--(185mm,h)--(0,h)--cycle wpcs thickness_frame;
draw (w,h-header_h)--(185mm,h-header_h) wpcs thickness_frame;
draw (w,h)--(w,0) wpcs thickness_frame;
- for col_w=75mm,105mm,130mm,155mm:
+ for col_w=85mm,110mm,130mm,150mm:
draw (col_w,h)--(col_w,h-header_h) wpcs thickness_frame;
endfor
enddef;
@@ -114,7 +114,7 @@
\fig at num=0%
\loop%
\advance\fig at num\@ne\relax%
-\ifnum\fig at num=9 \CONT at false%
+\ifnum\fig at num=25 \CONT at false%
\else%
\begin{mplibcode}%
beginfigm
@@ -132,10 +132,10 @@
else:
label.lrt(EN, (w,h));
fi
- label.lrt(CAT,(75mm,h));
- label.lrt(MW,(105mm,h));
+ label.lrt(CAT,(85mm,h));
+ label.lrt(MW,(110mm,h));
label.lrt(mw,(130mm,h));
- label.lrt(fm,(155mm,h));
+ label.lrt(fm,(150mm,h));
make_frame;
if mc_row>12: defaultscale:=0.6; row_h:=5.25;
ef mc_row>8: defaultscale:=0.8; row_h:=6.5;
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 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format manual by Akira Yamaji 2024.11.17
+% Molecular Coding Format manual by Akira Yamaji 2024.12.01
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 5.14
+% ** mcf2graph.mf must be version 5.15
% ** use main_lib.mcf
% ** typeset by LuaLaTeX(luamplib)
%----------------------------------------------------------------------------
@@ -60,16 +60,16 @@
% L-Valine
beginfigm \(<30,NH2,!~wb,/?!,!,COOH) endfigm
% L-Leucine
-beginfigm \(<30,NH2,!~wb,/''(!,?!),!,COOH) endfigm
+beginfigm \(<30,NH2,!~wb,/!'?!,!,COOH) endfigm
\end{mplibcode}
\\
\begin{mplibcode}
% L-Isoleucine
-beginfigm \(<30,NH2,!~wb,/''(/*_,!2),!,COOH) endfigm
+beginfigm \(<30,NH2,!~wb,/?z'!2,!,COOH) endfigm
% L-Serine
beginfigm \(<30,NH2,!~wb,/!OH,!,COOH) endfigm
% L-Threonine
-beginfigm \(<30,NH2,!~wb,/''(/_,!~wf,OH),!,COOH) endfigm
+beginfigm \(<30,NH2,!~wb,/?'!w'OH,!,COOH) endfigm
% L-Cysteine
beginfigm \(<30,NH2,!~wb,/!SH,!,COOH) endfigm
\end{mplibcode}
@@ -111,9 +111,9 @@
% L-DOPA
beginfigm \(<30,NH2,!~wb,!,COOH, at 2,\,!,Ph,-3'-4:/OH) endfigm
% Ornithine
-beginfigm \(<30,NH2,!~wb,/''(!3,NH2),!,COOH) endfigm
+beginfigm \(<30,NH2,!~wb,/!3'NH2,!,COOH) endfigm
% Citrulline
-beginfigm \(<30,NH2,!~wb,/''(!3,NH,!,//O,!,NH2),!,COOH) endfigm
+beginfigm \(<30,NH2,!~wb,/!3'NH!'?O'!NH2,!,COOH) endfigm
% GABA
beginfigm \(<30,NH2,!4,COOH) endfigm
\end{mplibcode}
@@ -124,7 +124,7 @@
% 4-amino benzoic acid
beginfigm \(<30,Ph,1:/NH2,4:/COOH) endfigm
% L-Carboxyl glutamic acid
-beginfigm \(<30,NH2,!~wb,/''(!,/COOH,!,COOH),!,COOH) endfigm
+beginfigm \(<30,NH2,!~wb,/!'?COOH'!COOH,!,COOH) endfigm
% L-Hydroxy Prorine
beginfigm \(<18,?5,1:/OH,3:NH,4:*/COOH) endfigm
\end{mplibcode}
@@ -425,8 +425,7 @@
wb: wedge backward
zf: hashed(zebra stripe) wedge foward
zb: hashed(zebra stripe) wedge backward
-vf:vector forward
-vb:vector backward
+vf:vector forward / vb:vector backward
<-30,
!~wf,!,!~wb,!,!~zf,!,!~zb,!,!~vf,!~vb
@@ -529,7 +528,7 @@
#1.25,-30~wf_r,30~bd_r`1,30~wb_r,
120,O,30,&1,##,#.5,6^$90:/!OH,
- {1^$-90'2^$90'3^$-90'4^$90}:/OH,
+ {1^$270'2^$90'3^$270'4^$90}:/OH,
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
@@ -536,7 +535,7 @@
beginfigm
#(75mm,16mm);
@(0.05,0.5)\(#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##,
- #.5,{1^$-90'2^$90'3^$-90'4^$90}:/OH,6^$90:/!OH)
+ #.5,{1^$270'2^$90'3^$270'4^$90}:/OH,6^$90:/!OH)
defaultscale:=0.6;
@(0.5,0.7)\(0~wf_r) ++(label.lft("wf_r:",A1);)
@(0.5,0.2)\(0~wf) ++(label.lft("wf:",A1);)
@@ -752,7 +751,7 @@
#(60mm,18mm) #@(2mm,1.5mm)
sw_trimming:=1;
sw_numbering:=Bond;
- \(<30,?6,3=?6,3=dt,7'11=bd_r)
+ \(<30,?6,3=?6,3=dt,{7:11}=bd_r)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
@@ -776,7 +775,7 @@
\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)
+** ?m[n] (5<=m<=6,11<=n<=15)
?6,3=?6[13]
\end{verbatim}
@@ -787,7 +786,7 @@
margin_top_bottom:=1.5mm;
sw_numbering:=Bond;
sw_trimming:=1;
- \(<30,?6,3=?6[13],3=dt,7'11=bd_r)
+ \(<30,?6,3=?6[13],3=dt,{7:11}=bd_r)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
@@ -823,7 +822,7 @@
#(75mm,20mm) #@(2mm,2mm)
sw_numbering:=Bond;
##(1,.9)
- @( 0,.5)\(<30,?6,{3,11--4}=?6,11'4=dt,{12:15}=bd_r)
+ @( 0,.5)\(<30,?6,{3'11--4}=?6,11'4=dt,{12:15}=bd_r)
++(defaultscale:=0.4; label("(1)",p0);)
##(1,.9)
@(.5,.5)\(<30,?6,3=?6,{11--4}=?5,11'4=dt,{12:14}=bd_r)
@@ -851,7 +850,7 @@
beginfigm
#(60mm,20mm) #@(2mm,2mm)
sw_numbering:=Bond;
- @(0,1)\(?6,3'10=?6,16---4=?6,16'4=dt,17'19=bd_r)
+ @(0,1)\(?6,3'10=?6,16---4=?6,16'4=dt,{17:19}=bd_r)
++(defaultscale:=0.4; label("(1)",p0);)
@(1,0)\(?6,3'10=?6,16---4=?5,16'4=dt,17'18=bd_r)
++(defaultscale:=0.4; label("(2)",p0);)
@@ -915,7 +914,7 @@
\begin{mplibcode}
beginfigm
#(75mm,18mm);
- \(<30,!,/_,!2,/!,!2,/!,!4,/?!,!4,/??!,!2,/''(Ph`0.8)^-60,!)
+ \(<30,!,/_,!2,/!,!2,/!,!4,/?!,!4,/??!,!2,/#.8'Ph^-60,!)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
@@ -974,7 +973,7 @@
\subsubsection{Add group}
\begin{verbatim}
<30,!17,2:/_,3:/!,4:/!2,7:/iPr,
- 8:/tBu,10:/''(Ph`0.6)^-15,
+ 8:/tBu,10^-15:/#.6'Ph,
11'12'*13:*/_,15'16'*17:/*_
\end{verbatim}
%-----------------------------------------
@@ -983,7 +982,7 @@
#(75mm,25mm) #@(2mm,2mm)
sw_numbering:=Atom;
numbering_end:=17;
- \(<30,!17,2:/_,3:/!,4:/!2,7:/iPr,8:/tBu,10:/''(Ph`0.6)^-15,
+ \(<30,!17,2:/_,3:/!,4:/!2,7:/iPr,8:/tBu,10^-15:/#.6'Ph,
11'12'*13:*/_,15'16'*17:/*_)
endfigm
\end{mplibcode}
@@ -1034,6 +1033,7 @@
?4,
{3^-90'3^-30'3^90}:/!3>hz,
+
{1^-60'1'1^60}:/!3>vt
\end{verbatim}
%-----------------------------------------
@@ -1065,7 +1065,6 @@
<-30,!6,
{3^-30'3'3^30}:/!3>lr,
-{5^-30'5'5^30}:/!3>rl
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
@@ -1112,7 +1111,7 @@
%-----------------------------------------------------------------------------
\subsubsection{Rotate multiple angle}
\begin{verbatim}
->{90,-90,...} : rotate 90,-90,...
+>{90'-90,...} : rotate 90,-90,...
<30,!6,6>{90'-90'90'-90'90}:/!5
\end{verbatim}
@@ -1120,7 +1119,7 @@
\begin{mplibcode}
beginfigm
#(60mm,20mm);
- \(<30,!6,6>{90'-90'90'-90'90}:/!5)
+ \(<30,!6,6>90'-90'90'-90'90:/!5)
++(defaultscale:=0.5; labeloffset:=2bp;
label.lft(">{90'-90'90'-90'90}",A13);
label.rt(">90",A12);
@@ -1209,6 +1208,7 @@
/!?!'OH : /''(!?!,OH)
<30,!8,2'6:/!?!'OH
+or <30,!8,{2'6}:/''(!?!,OH)
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
@@ -1222,11 +1222,11 @@
\subsubsection{Move position [ @{ }]}
\index{@}%
\begin{verbatim}
-@(x,y) : Move l*(x,y) from current position
-@$(x,y): Move l*(x,y) from origin(@1)
+@(x'y) : Move l*(x,y) from current position
+@$(x'y): Move l*(x,y) from origin(@1)
** 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}
%-----------------------------------------
\begin{mplibcode}
@@ -1233,7 +1233,7 @@
beginfigm
#(70mm,13mm) #@(2mm,1mm)
sw_trimming:=1;
- \(<30,?6, at 3,\,!3,//O,!,O,n_^60,@$(6,1),H,p_^15)
+ \(<30,?6, at 3,\,!3,//O,!,O,n_^60,@$(6'1),H,p_^15)
++(drawdot A1 withpen pencircle scaled 3bp;
drawdot A12 withpen pencircle scaled 3bp;
pickup pencircle scaled 0.1bp;
@@ -2135,7 +2135,7 @@
\(): abbreviated form of drawm()
drawm(<30,Ph,3:/F,4:/Cl)
- \(<30,Ph,3:/F,4:/Cl)
+ \(<30,Ph,3:/F,4:/Cl)
\end{verbatim}
%------------------------------------------------
\begin{mplibcode}
@@ -2671,10 +2671,10 @@
'`(
%----------------------------------------------------
"#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ",
- "#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH, ",
- "@4,$-50~arc_lb`1,O,$50~arc_br`1,<$0, ",
+ "#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH, ",
+ "@4,$310~arc_lb`1,O,$50~arc_br`1,<$0, ",
"|,#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ",
- "#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH ")
+ "#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH ")
%----------------------------------------------------
#(50mm,20mm) \\
endfigm
@@ -2686,10 +2686,10 @@
'`(
%-------------------------------------------------------
"#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ",
- "#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH, ",
- "@4,$-50~arc_lb`1,O,$50~arc_br`1,<$0, ",
+ "#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH, ",
+ "@4,$310~arc_lb`1,O,$50~arc_br`1,<$0, ",
"|,#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ",
- "#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH ")
+ "#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH ")
%-------------------------------------------------------
#(50mm,20mm) \\
endfigm
@@ -2704,7 +2704,7 @@
'`(
%-----------------------------------------------------------------------
"<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1, ",
- " 14:O,13:/*Et,1'9://O, ",
+ " 14:O,13:/*!,1'9://O, ",
" {*2'4'6^-35'8'*10'12^35}:/*_, ",
" {6^35'11'12^-35}:*/OH, ",
" @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:/_,4:/*OH,3^-35:/*O!,##, ",
@@ -2728,7 +2728,7 @@
'`(
%-----------------------------------------------------------------------
"<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1, ",
- " 14:O,13:/*Et,1'9://O, ",
+ " 14:O,13:/*!,1'9://O, ",
" {*2'4'6^-35'8'*10'12^35}:/*_, ",
" {6^35'11'12^-35}:*/OH, ",
" @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf'3^35}:/_,4:/*OH,3^-35:/*O!,##, ",
@@ -3245,9 +3245,9 @@
file name = 'temp-mc.aux'
<30,?6, at 4,?6, at -4,\,!3,<-12,?5, at -3,<-12,?6,-3=?6, at -3,*\,!3,
- ?6, at -4,?6, at 6,\,!,/*Me^-40,*/OH^20,!,//O,!1,OH,
- 3=wb,11=dl,15=dr,17=wf,19=wf,38=wb,5'7'16'24'25'33'42:O,
- 32:*/H^60,10:/Me,12'31:*/_,27://_,37:/*_,28:/OH,3'29:/*OH
+ ?6, at -4,?6, at 6,\,!,/*_^-40,*/OH^20,!,//O,!1,OH,
+ 3=wb,11=dl,15=dr,17'19=wf,38=wb,5'7'16'24'25'33'42:O,
+ 32:*/H^60,10:/_,12'31:*/_,27://_,37:/*_,28:/OH,3'29:/*OH
\end{verbatim}
%------------------------------------------------------------------------
\newpage
@@ -3419,7 +3419,7 @@
"<30,?6,3=dl,{3'5^35'5^-35}:/_, ",
" @4,\,|,!18,1'3'5'7'9'11'13'15'17=dr, ",
" 3'7'12'16:/_, ",
- " |,?6,6=dl,{6,2^35,2^-35}:/_ ")
+ " |,?6,6=dl,{6'2^35'2^-35}:/_ ")
%-----------------------------------------
\\
endfigm
Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_to_graph.cmd
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_to_graph.cmd 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_to_graph.cmd 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,4 +1,4 @@
-rem Batch file for compile MCF 2023.05.07
+rem Batch file for compile MCF 2024.12.01
rem rename filename by purpose
rem <drag and drop library files on this batch>
Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_lib.mcf 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf template file mcf_template.mcf by Akira Yamaji 2024.11.17
+% mcf template file mcf_template.mcf by Akira Yamaji 2024.12.01
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% must use version 5.14
+% must use version 5.15
% 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 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/template_soc.mp 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,8 +1,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF compile template file by Akira Yamaji 2024.11.17
+% MCF compile template file by Akira Yamaji 2024.12.01
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.14
-message "* mcf_template 2024.11.17";
+if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.15
+message "* mcf_template 2024.12.01";
message "";
%------------------------------------------------------------------------------
%%%%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 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/metapost/mcf2graph/main_lib.mcf 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular library file main_lib.mcf by Akira Yamaji 2024.11.17
+% molecular library file main_lib.mcf by Akira Yamaji 2024.12.01
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% must use version 5.14
+% must use version 5.15
% tag1:var1;tag2:var2;tag3:var3 .....
% first character of line "%" comment out
% first character of line ":" start MCF
@@ -234,7 +234,7 @@
%------------------------------------------------------------------------------
CAT:biological;EN:D-Glucose;MW:180.16;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH
+hexose_hp,#.5,{1^$270'2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Fructose 1;MW:180.16;EXA:1
@@ -249,83 +249,83 @@
%------------------------------------------------------------------------------
CAT:biological;EN:D-Fluctose;MW:180.16;EXA:1
:
-Pyranose_hp,#.5,1^$-90:/OH,{2^$-90'3^$90}:/OH,{1^$90'4^$-90}:/!OH
+Pyranose_hp,#.5,1^$270:/OH,{2^$270'3^$90}:/OH,{1^$90'4^$270}:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:D-Galactose;MW:180.16;EXA:1
:
-hexose_hp,#.5,{1^$90'2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH
+hexose_hp,#.5,{1^$90'2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:D-Mannose;MW:180.16;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$90'3^$90'4^$-90}:/OH,6^$90:/!OH
+hexose_hp,#.5,{1^$270'2^$90'3^$90'4^$270}:/OH,6^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:L-Fucose;MW:164.16;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$-90'3^$90'4^$90}:/OH,6^$-90:/_
+hexose_hp,#.5,{1^$270'2^$270'3^$90'4^$90}:/OH,6^$270:/_
;
%------------------------------------------------------------------------------
CAT:biological;EN:D-Ribose;MW:150.13;EXA:1
:
-Pyranose_hp,#.5,{2^$-90'3^$-90'4^$90}:/OH,1^$90:/!OH
+Pyranose_hp,#.5,{2^$270'3^$270'4^$90}:/OH,1^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:D-Deoxyribose;MW:134.13;EXA:1
:
-Pyranose_hp,#.5,{2^$-90'4^$90}:/OH,1^$90:/!OH
+Pyranose_hp,#.5,{2^$270'4^$90}:/OH,1^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:D-Glucosamine;MW:179.17;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$90'4^$-90}:/OH,3^$-90:/NH2,6^$90:/!OH
+hexose_hp,#.5,{1^$270'2^$90'4^$270}:/OH,3^$270:/NH2,6^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:N-acetyl-Glucosamine;MW:221.21;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$90'4^$-90}:/OH,3^$-90>lr:/NH!'?O!,6^$90:/!OH
+hexose_hp,#.5,{1^$270'2^$90'4^$270}:/OH,3^$270>lr:/NH!'?O!,6^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Glucuronic acid;MW:194.14;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$90'3^$-90'4^$-90}:/OH,6^$90:/COOH
+hexose_hp,#.5,{1^$270'2^$90'3^$270'4^$270}:/OH,6^$90:/COOH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Maltose;MW:342.3;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##,
- @4,$-50~arc_lb`1,O,$50~arc_br`1,<$0,
- |,hexose_hp,#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH
+hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
+ @4,$310~arc_lb`1,O,$50~arc_br`1,<$0,
+ |,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Sucrose;MW:342.3;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##,
- @4,$-50~arc_lb`1,O,$50~arc_br`1,<$0,
+hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
+ @4,$310~arc_lb`1,O,$50~arc_br`1,<$0,
|,#1.4,-35~wf_r,35~bd_r`1,30~wb_r,130`1.66,O,&1,##,
- #.5,{2^$-90'3^$90}:/OH,{1^$90'4^$-90}:/!OH
+ #.5,{2^$270'3^$90}:/OH,{1^$90'4^$270}:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Lactose;MW:342.3;EXA:1
:
-hexose_hp,#.5,{1^$90'2^$90'3^$-90}:/OH,6^$90:/!OH,##,
+hexose_hp,#.5,{1^$90'2^$90'3^$270}:/OH,6^$90:/!OH,##,
@4,$0~arc_ltr,O,$0~arc_lbr,
- |,hexose_hp,#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH
+ |,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Cellobiose;MW:342.3;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##,
+hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
@4,$0~arc_lbr,O,$0~arc_ltr,
- |,hexose_hp,#.5,{2^$90'3^$-90'4^$-90}:/OH,6^$90:/!OH
+ |,hexose_hp,#.5,{2^$90'3^$270'4^$270}:/OH,6^$90:/!OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Trehalose;MW:342.3;EXA:1
:
-hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##,
- @4,@(1,0),|,hexose_hp,#.5,{1^$-90'2^$90'3^$-90}:/OH,6^$90:/!OH,##,
- ||, at 4,$-37~arc_lb`3.25,O,&10~arc_br
+hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
+ @4,@(1'0),|,hexose_hp,#.5,{1^$270'2^$90'3^$270}:/OH,6^$90:/!OH,##,
+ ||, at 4,$323~arc_lb`3.25,O,&10~arc_br
;
%==============================================================================
CAT:biological;EN:Geraniol;MW:154.25;EXA:1
@@ -382,6 +382,7 @@
:
<30,Ph,1:/OH,6:/O!,4:/CHO
;
+%------------------------------------------------------------------------------
CAT:biological;EN:alfa-Terpinene;MW:136.24;EXA:-
:
<30,?6,3:/?!,6:/_,3'5=db
@@ -498,7 +499,7 @@
-3^-12:/!2'OH,8:p_^72
;
%------------------------------------------------------------------------------
-CAT:biological;EN:Riboflavin;MW:376.37;EXA:1
+CAT:biological;EN:Riboflavin;MW:376.37;EXA:2
:
<30,Ph,3'9=?6,8'16=dl,7'10'14:N,12:NH,11'13:?O,1'6:/_,
@10,\`1.5,!,*/OH,!,/*OH,!,*/OH,!2,OH
@@ -561,7 +562,7 @@
<30,Ph,1:/OH,6:/O!, at 4,\,!NH!,?O,!7,?!,-3=dl
;
%------------------------------------------------------------------------------
-CAT:biological;EN:Gibberellin A3;MW:346.379;EXA:1
+CAT:biological;EN:Gibberellin A3;MW:346.379;EXA:2
:
<18,?5,3=?7,5=?6[12], at 8,160`1.3,&3,13=dl,6=wf,8=wb,
@5,40~zf`1,O,50,?O^180,&14~zb,2:/COOH,7://_,*8'13:*/OH,14:*/_,1'4:*/H^60
@@ -706,11 +707,10 @@
<30,Ph,3=?6, at 9,8=dl,\,!2,!zb,?6,7'9:N,-5:NH,10'12:?O,-1:*/OH
;
%------------------------------------------------------------------------------
-CAT:biological;EN:Hypericin;MW:504.44;EXA:1
+CAT:biological;EN:Hypericin;MW:504.44;EXA:2
:
-<30,Ph,{-4'-3'11--4'16---17'19'23---24'22--29}=?6,
- 12'14'16'17'*22'24'26'28'33'35=dl,
- 7'25:?O,13'26:/_,2'6'11'21'23'28:/OH
+<30,Ph,-4'-3'(11--4)'(16---17)'19'(23---24)'(22--29)=?6,
+ 12'14'16'17'*22'24'26'28'33'35=dl,7'25:?O,13'26:/_,2'6'11'21'23'28:/OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Camphor;MW:152.23;EXA:1
@@ -840,7 +840,7 @@
<30,Ph,3=?5,8=dl,9:NH, at 2,\,O,-60,P,?O^-45,/OH^45,90,OH,7:/!2'N?!>lr
;
%------------------------------------------------------------------------------
-CAT:biological;EN:Tetrodotoxine;MW:319.27;EXA:1
+CAT:biological;EN:Tetrodotoxine;MW:319.27;EXA:2
:
#1,<60,-90,60,-30`1.15,150,60,&1, at 3,-135,60,-30`1.15,150,&4,
@10,\,O,60`1.33,60,&$3~si_, at 8,-15~si_,O,&12,##,
@@ -849,37 +849,32 @@
%------------------------------------------------------------------------------
CAT:biological;EN:Aflatoxin B1;MW:312.27;EXA:1
:
-<30,Ph,6=?6,-2=?5,4=?5,-2=?5,-2'10=dl,7'14'17:O,
- 2:/O!,8'11:?O,{15^-54'16^54}:*/H
+<30,Ph,6=?6,-2'4'-2=?5,-2'10=dl,7'14'17:O,2:/O!,8'11:?O,{15^-54'16^54}:*/H
;
%------------------------------------------------------------------------------
CAT:biological;EN:Aflatoxin B2;MW:314.3;EXA:-
:
-<30,Ph,6=?6,-2=?5,4=?5,-2=?5,10=dl,7'14'17:O,2:/O!,8'11:?O,{15^-54'16^54}:*/H
+<30,Ph,6=?6,-2'4'-2=?5,10=dl,7'14'17:O,2:/O!,8'11:?O,{15^-54'16^54}:*/H
;
%------------------------------------------------------------------------------
CAT:biological;EN:Aflatoxin G1;MW:328.27;EXA:2
:
-<30,Ph,6=?6,-2=?6,4=?5,-2=?5,-2'10=dl,7'12'15'18:O,
- 2:/O!,8'11:?O,{16^-54'17^54}:*/H
+<30,Ph,6'-2=?6,4'-2=?5,-2'10=dl,7'12'15'18:O,2:/O!,8'11:?O,{16^-54'17^54}:*/H
;
%------------------------------------------------------------------------------
CAT:biological;EN:Aflatoxin G2;MW:330.29;EXA:-
:
-<30,Ph,6=?6,-2=?6,4=?5,-2=?5,10=dl,7'12'15'18:O,
- 2:/O!,8'11:?O,{16^-54'17^54}:*/H
+<30,Ph,6'-2=?6,4'-2=?5,10=dl,7'12'15'18:O,2:/O!,8'11:?O,{16^-54'17^54}:*/H
;
%------------------------------------------------------------------------------
CAT:biological;EN:Aflatoxin M1;MW:328.3;EXA:-
:
-<30,Ph,6=?6,-2=?5,4=?5,-2=?5,-2'10=dl,7'14'17:O,
- 2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH
+<30,Ph,6=?6,-2'4'-2=?5,-2'10=dl,7'14'17:O,2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Aflatoxin M2;MW:330.29;EXA:-
:
-<30,Ph,6=?6,-2=?5,4=?5,-2=?5,10=dl,7'14'17:O,
- 2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH
+<30,Ph,6=?6,-2'4'-2=?5,10=dl,7'14'17:O,2:/O!,8'11:?O,15^-54:*/H,16^54:*/OH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Ochratoxin A;MW:403.813;EXA:1
@@ -995,9 +990,9 @@
<30,Ph,{1'11--2'15--3'19--4'23--5'27---7}=?6,9'12'14'17'20'22'25'28'30=dl
;
%------------------------------------------------------------------------------
-CAT:synthetic;EN:Kekulene;MW:600.7;EXA:1
+CAT:synthetic;EN:Kekulene;MW:600.7;EXA:2
:
-<30,?6,{3'-3'-2'-3'-2'-3'-2'-3'-2'-3'-2----5'5---- -4}=?6,
+<30,?6,3'-3'-2'-3'-2'-3'-2'-3'-2'-3'(-2----5)'(5---- -4)=?6,
1'*5'7'9'11'13'17'19'21'23'27'29'31'33'37'39'41'43'47'49'51'53'57'60=dl
;
%==============================================================================
@@ -1006,7 +1001,7 @@
<-180,O,30,60,60,O,-30,60,60,O,-30,60,60,O,-30,60,&1
;
%------------------------------------------------------------------------------
-CAT:synthetic;EN:15-Crown-5;MW:220.26;EXA:2
+CAT:synthetic;EN:15-Crown-5;MW:220.26;EXA:-
:
<-180,O,48,60,60,O,-48,60,60,O,-48,60,60,O,-48,60,60,O,-48,60,&1
;
@@ -1016,7 +1011,7 @@
<-180,O,60,60,60,O,-60,60,60,O,-60,60,60,O,-60,60,60,O,-60,60,60,O,-60,60,&1
;
%==============================================================================
-CAT:synthetic;EN:Porphyrin;MW:310.4;EXA:1
+CAT:synthetic;EN:Porphyrin;MW:310.4;EXA:2
:
<9,#1,?5, at 3,\,54,?5, at -2,\,54,?5, at -2,\,54,?5, at -2,\,&5,##,
1'4'6'8'10'14'16'18'21'23'27=dl,4'17:N,11'23:NH
@@ -1072,7 +1067,7 @@
%------------------------------------------------------------------------------
CAT:synthetic;EN:Basic blue 1;MW:319.86;EXA:1
:
-<30,Ph,3=Ph,6=Ph,2:S,5:N,8'13:/N?!,2:p_, at 2,@(3.5,1.5),Cl,n_^15
+<30,Ph,3=Ph,6=Ph,2:S,5:N,8'13:/N?!,2:p_, at 2,@(3.5'1.5),Cl,n_^15
;
%------------------------------------------------------------------------------
CAT:synthetic;EN:Disperse red 11;MW:268.274;EXA:1
@@ -1103,20 +1098,18 @@
%------------------------------------------------------------------------------
CAT:antibiotics;EN:Ampicillin;MW:349.405;EXA:1
:
-<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
+<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
@4,*\^15,NH!,?O!,/*NH2,!Ph
;
%------------------------------------------------------------------------------
-CAT:antibiotics;EN:Penicillin G;MW:334.4;EXA:1
+CAT:antibiotics;EN:Penicillin G;MW:334.4;EXA:2
:
-<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH!,?O!2,Ph
+<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, at 4,*\^15,NH!,?O!2,Ph
;
%------------------------------------------------------------------------------
CAT:antibiotics;EN:Penicillin V;MW:350.3895;EXA:1
:
-<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH!,?O!2,O,!Ph
+<45,?4,-3=?5,2:N,7:S,3^45:/*H,1:?O^15,5:/*COOH^-18,6:??, at 4,*\^15,NH!,?O!2,O,!Ph
;
%------------------------------------------------------------------------------
CAT:antibiotics;EN:Mecillinam;MW:325.4264;EXA:1
@@ -1158,13 +1151,12 @@
CAT:antibiotics;EN:Cefalonium;MW:458.5107;EXA:1
:
<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15, at 5,\*,?O!,O,n_^40,
- @4,*\^15,NH!,?O!2,?5,-1'-3=dl,-4:S,
- @6,\,!,|,Ph,1:N,1:p_^180,4:/?O!'NH2
+ @4,*\^15,NH!,?O!2,?5,-1'-3=dl,-4:S, at 6,\,!,|,Ph,1:N,1:p_^180,4:/?O!'NH2
;
%------------------------------------------------------------------------------
-CAT:antibiotics;EN:Cefazorin;MW:454.51;EXA:1
+CAT:antibiotics;EN:Cefazorin;MW:454.51;EXA:2
:
-<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1:?O^15,5:/*COOH,
+<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1^15:?O,5:/*COOH,
@4,*\^15,NH!,?O!2,?5,-2'-4=dl,-1'-2'-3'-5:N,
@6,\,!,S,!,?5,-3'-5=dl,-1:S,-2:/_,-3'-4:N
;
@@ -1199,8 +1191,7 @@
CAT:antibiotics;EN:Apramycin;MW:539.58;EXA:1
:
<30,?6,3=?6,2'10:O, at 1,\*,O,60~zb,?6, at 9,\*,O,-60~zb,?6,-5:O,
- 7'13'*14'*-1'-2:*/OH,*6'15'17'*-3:*/NH2,8:*/NH!^-20,
- -4:*/!OH,{*3^-60,4^60}:*/H
+ 7'13'*14'*-1'-2:*/OH,*6'15'17'*-3:*/NH2,8:*/NH!^-20,-4:*/!OH,{*3^-60,4^60}:*/H
;
%------------------------------------------------------------------------------
CAT:antibiotics;EN:Gentamycin;MW:477.596;EXA:1
@@ -1212,7 +1203,7 @@
CAT:antibiotics;EN:Kanamycin;MW:484.499;EXA:1
:
<-30,?6, at 1,\*,O,0~zb,?6,-5:O, at 5,\,O,0,?6,-5:O,
- 2'4'12:*/NH2,*6'11'13'18'*19,20:/*OH,10:*/!OH,17:*/!NH2
+ 2'4'12:*/NH2,*6'11'13'18'*19'20:/*OH,10:*/!OH,17:*/!NH2
;
%------------------------------------------------------------------------------
CAT:antibiotics;EN:Neomycin;MW:614.644;EXA:1
@@ -1223,11 +1214,10 @@
@-2,\*^-24,O,-60~zb,?6,-5:O,-1:/*NH2,-2'*-3:*/OH,-4:/*!NH2>60
;
%------------------------------------------------------------------------------
-CAT:antibiotics;EN:Streptmycin;MW:581.574;EXA:1
+CAT:antibiotics;EN:Streptmycin;MW:581.574;EXA:2
:
<54,?5,3:O,4:/*_,5:/OH^45, at 1,\*,O,-24~wb,?6,-5:O, at 2,*\,O,24~zb,?6,
- 5:/!dO^-48,10'*11'15'*16'*18:*/OH,9:/*!OH,12:*/NH!,
- {17^-18'19}:*/NH!'?NH'!NH2
+ 5:/!dO^-48,10'*11'15'*16'*18:*/OH,9:/*!OH,12:*/NH!,{17^-18'19}:*/NH!'?NH'!NH2
;
%------------------------------------------------------------------------------
CAT:antibiotics;EN:Streptmycin-H2O;MW:599.574;EXA:-
@@ -1336,7 +1326,7 @@
@-3,\*`1,O,60~wb,?6`.7,-5:O,#.5,{-2^35'-3}:*/OH,{-2^-35'-4}:/*_,##,
;
%------------------------------------------------------------------------------
-CAT:antibiotics;EN:Tilmicosin;MW:869.133;EXA:1
+CAT:antibiotics;EN:Tilmicosin;MW:869.133;EXA:2
:
<-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##,
12'14=dl,2:O,1:/*!,5:/*OH,3'11:?O,6'10:/*_,14:/_,
@@ -1359,7 +1349,7 @@
{5'7~zf^35'13~wf^60'14'16}:/OH,15:*/N?!,17:/?O!'NH2
;
%------------------------------------------------------------------------------
-CAT:antibiotics;EN:Oxytetracyclin;MW:460.434;EXA:1
+CAT:antibiotics;EN:Oxytetracyclin;MW:460.434;EXA:2
:
<30,Ph,-4'-3'-3=?6,16'19=dl,10'18:?O,7:*/_^-35,11:*/OH,
{5'7~zf^35'13~wf^60'14'16}:/OH,15:*/N?!,17:/?O!'NH2
@@ -1623,7 +1613,7 @@
<6,?5,3'5=db,1'2:N,2:/_,5:/Cl, at 3,\,S?O?O,!NH!,?O,!NH!,Ph,-2'-4:/O!,4:/?O!'O!
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Flupoxam;MW:460.8;EXA:2
+CAT:pesticide;EN:Flupoxam;MW:460.8;EXA:1
:
<30,Ph,4:/Cl, at 1,\,?5,-2'-4=db,-2'-4'-5:N,-1:/Ph,-3:/?O!'NH2,
@3,\,!,O!2,/F^35,/F^-35,!,?F?F!F
@@ -1646,8 +1636,7 @@
%------------------------------------------------------------------------------
CAT:pesticide;EN:Cyhalothrin;MW:449.86;EXA:1
:
-<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,/?F?F!F,!Cl,
- @3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
+<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,/?F?F!F,!Cl, at 3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
;
%------------------------------------------------------------------------------
CAT:pesticide;EN:Cyhalofop-Buthyl;MW:357.381;EXA:1
@@ -1849,10 +1838,9 @@
<30,Ph,4'6:/Cl, at 3,\,O,!Ph,-4:/?O!'O!,-3:/NO2
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Bifenthrin;MW:422.88;EXA:-
+CAT:pesticide;EN:Bifenthrin;MW:422.88;EXA:2
:
-<-30,?3,{2^-35'*2^35}:*/_,
- @1,\,!d,/Cl,!,?F?F!F, at 3,\,?O,!O!,-60,Ph,-1:/_,-2:/Ph
+<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,/Cl,!,?F?F!F, at 3,\,?O,!O!,-60,Ph,-1:/_,-2:/Ph
;
%------------------------------------------------------------------------------
CAT:pesticide;EN:Pyraflufen-ethyl;MW:413.174;EXA:-
@@ -1901,7 +1889,7 @@
<36,?5,3:N,5:O,2'4:?O,1:/_^54,1:/!d^-30,3:/Ph'(3'5:/Cl)
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Fipronil;MW:437.2;EXA:-
+CAT:pesticide;EN:Fipronil;MW:437.2;EXA:1
:
<30,Ph,2'4:/Cl,6:/?F?F!F, at 3,\,|,?5,2'4=dl,1'2:N,3:/CN,5:/NH2,-2:/S?O'!?F?F!F
;
@@ -2006,7 +1994,7 @@
<-30,!O!,P,?O,/O!^160,!O,!?,!d,!,?O!,O!
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Chlorpyrifos;MW:350.59;EXA:-
+CAT:pesticide;EN:Chlorpyrifos;MW:350.59;EXA:1
:
<30,!2,O!,P,//S,/O!2^160>rl,!O!,|,Ph,6:N,2'4'5:/Cl
;
@@ -2116,7 +2104,7 @@
<30,Ph,6:/Cl, at 3,\,/?!,!,?O,!O!,/CN,!Ph,-4:/O'!Ph>rl
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Fenpropathrin;MW:349.4;EXA:-
+CAT:pesticide;EN:Fenpropathrin;MW:349.4;EXA:1
:
<-30,?3,{1^35'2^-35}:*/_,{1^-35'2^35}:/*_, at 3,\,?O,!O!,/CN,!Ph,-4:/O!'Ph>rl
;
@@ -2216,7 +2204,7 @@
<30,Ph,1'5:/Cl, at 3,\,?O,!NH,!??!,!t
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Propiconazole;MW:342.22;EXA:-
+CAT:pesticide;EN:Propiconazole;MW:342.22;EXA:1
:
<30,Ph,4'6:/Cl, at 3,\,!2,|,?5,2'4=dl,1'2'4:N,@$7,?5,-1'-4:O,-3:/!2^-15
;
@@ -2266,7 +2254,7 @@
<90,Ph,3=?6,7:N,10:O,8:/_, at 7,\,?O!,/Cl,!Cl
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Heptachlor;MW:373.35;EXA:1
+CAT:pesticide;EN:Heptachlor;MW:373.35;EXA:2
:
<30,?6`1.3,3=?5,6'8=dl, at 2,210~wf`1.5,&5~wb,{1'2'5'6'9'10^-210'10^-150}:/Cl
;
@@ -2336,7 +2324,7 @@
<47,?7,3:N, at 3,\,?O!,S!2
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Resmethrin;MW:338.4;EXA:1
+CAT:pesticide;EN:Resmethrin;MW:338.4;EXA:2
:
<-30,?3,{2^-35'*2^35}:*/_, at 1,\,!d,?!,3:/?O!'O!2,|,?5,3'5=dl,2:O,3:/!Ph
;
@@ -2353,8 +2341,7 @@
%------------------------------------------------------------------------------
CAT:pesticide;EN:Paraquat;MW:257.16;EXA:1
:
-Ph, at 4,\,Ph,1'10:N?,1:p_^-90,10:p_^90, at 1,@(0,1.2),Cl,n_^15,
- @10,@(0,1.2),Cl,n_^15
+Ph, at 4,\,Ph,1'10:N?,1:p_^-90,10:p_^90, at 1,@(0'1.2),Cl,n_^15, at 10,@(0'1.2),Cl,n_^15
;
%------------------------------------------------------------------------------
CAT:pesticide;EN:Oxine-Copper;MW:351.852;EXA:1
@@ -2362,7 +2349,7 @@
Ph,4:N,5=Ph, at -4,\,O,-60,<90,Cu,-90,O,60,Ph,-2=Ph,10:N, at 4,&12~vf, at 23,&12~vf
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Endosulfan;MW:406.904;EXA:1
+CAT:pesticide;EN:Endosulfan;MW:406.904;EXA:2
:
<26,?7,7=?6[13], at 11,208~wf`1.45,&8~wb,10=dl,3'5:O,4:S,4:?O,
{8'9'10'11'12^-210'12^-150}:/Cl
@@ -2378,7 +2365,7 @@
<-30,!O!,P,//S,/O!^160,!,S!2,|,?6,-3=?6,2'4'8'10=dl,1'3:N,6:?O
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Azoxystorbin;MW:403.394;EXA:1
+CAT:pesticide;EN:Azoxystorbin;MW:403.394;EXA:2
:
<30,Ph,2:/CN, at 3,\,O,!Ph,-1'-3:N, at -4,\,O,!Ph, at -5,\,//!O!,!,?O!,O!
;
@@ -2398,7 +2385,7 @@
<30,!,?O,!NH!,O!,N,!d,!,??,!,S?O?O,!
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Isoxaflutole;MW:359.319;EXA:-
+CAT:pesticide;EN:Isoxaflutole;MW:359.319;EXA:1
:
<30,Ph,6:/?F?F!F, at 4,\,S?O?O,!, at 3,\`1,?O,!`1,<-12,|,?5,1'4=dl,3:O,4:N,2:/?3
;
@@ -2423,7 +2410,7 @@
<30,Ph,3=?5,7'9:?O,8^55>lr:/!, at 8,-30,!2,Ph,-2:/Cl, at 11,?3,-2:O
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Indoxacarb;MW:527.837;EXA:-
+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
@@ -2464,7 +2451,7 @@
<6,?5,3'5=dl,2:S,5:N,1:/Cl, at 3,\,!NH!,/NH!,!d,N,!NO2
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Chromafenozide;MW:394.515;EXA:-
+CAT:pesticide;EN:Chromafenozide;MW:394.515;EXA:1
:
<30,?6,3=?6,5:O,7'9'11=dl,7:/_, at 8,\,?O,!NH!,N,/??!,!,?O,!Ph,-4'-3:/_
;
@@ -2484,7 +2471,7 @@
<30,Ph,6:/Cl, at 3,\,O,!Ph, at -3,\,NH!,?O!,N?!
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Cyazofamid;MW:324.783;EXA:-
+CAT:pesticide;EN:Cyazofamid;MW:324.783;EXA:1
:
<18,?5,2'5=dl,2'4:N,1:/Cl,3:/CN, at 4,\,S?O?O,!,N?!,5:/Ph'(4:/_)
;
@@ -2494,7 +2481,7 @@
<30,Ph,1'6:/Cl, at 3,\,NH!,?O!,N?!
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Cyflufenamid;MW:412.36;EXA:-
+CAT:pesticide;EN:Cyflufenamid;MW:412.36;EXA:2
:
<30,Ph,4^20:/?F?F!F,1'2:/F, at 3,\,!NH!,?O!2,Ph, at -10,\\,N,!,<-12,O!2,?3
;
@@ -2509,7 +2496,7 @@
<30,Ph,2'4:N,5:/_,1:/?3,3:/NH!'Ph
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Simeconazole;MW:293.417;EXA:-
+CAT:pesticide;EN:Simeconazole;MW:293.417;EXA:1
:
<36,?5,1'3'5:N,1'4=dl, at 3,30,!,/OH^30,!2,Si,??!,7^-30:/Ph'(4:/F),
;
@@ -2544,12 +2531,12 @@
<30,Ph,1:N,6:/Cl, at 3,\,!,<-12,|,?5,1:N,3:S,-4://N'!CN
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Thiabendazole;MW:201.247;EXA:-
+CAT:pesticide;EN:Thiabendazole;MW:201.247;EXA:1
:
<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:-
+CAT:pesticide;EN:Thiamethoxam;MW:291.71;EXA:2
:
<30,?6,2:O,4'6:N,6:/_, at 5,\\,N,!NO2, at 4,\,!,|,?5,1'3=dl,3:N,5:S,4:/Cl
;
@@ -2640,7 +2627,7 @@
<6,?5,2'5=dl,1'2:N,4:S,5:/?F?F!F, at 3,\,O!,-60,?O!,N,/?!,!Ph,-3:/F
;
%------------------------------------------------------------------------------
-CAT:pesticide;EN:Flufenoxuron;MW:488.77;EXA:-
+CAT:pesticide;EN:Flufenoxuron;MW:488.77;EXA:1
:
<30,Ph,2'4:/F, at 3,\,?O,!NH!,?O,!NH!,Ph,-1:/F, at -3,\,O,!Ph,-3:/?F?F!F,-1:/Cl
;
@@ -2751,7 +2738,7 @@
<30,Ph,1:/NH2, at 4,\,S?O?O,!NH!,Ph,-1:N
;
%------------------------------------------------------------------------------
-CAT:antibacterial;EN:Marbofloxacin;MW:362.361;EXA:-
+CAT:antibacterial;EN:Marbofloxacin;MW:362.361;EXA:1
:
<30,Ph,3'(2--7)=?6,9=dl,6:/F,7'13:N,11:O,9:/COOH,10:?O,13:/_,1:/?6'(1:N)'(4:N?)
;
@@ -2768,8 +2755,7 @@
%------------------------------------------------------------------------------
CAT:antibacterial;EN:Ofloxacin;MW:361.373;EXA:-
:
-<30,Ph,3'(2--7)=?6,9=dl,7:N,11:O,
- 6:/F,9:/COOH,10:?O,13:/_,1:/?6'(1:N)'(4:N?)
+<30,Ph,3'(2--7)=?6,9=dl,7:N,11:O,6:/F,9:/COOH,10:?O,13:/_,1:/?6'(1:N)'(4:N?)
;
%------------------------------------------------------------------------------
CAT:antibacterial;EN:Ciprofloxacin;MW:331.347;EXA:-
@@ -2948,7 +2934,7 @@
:
<30,?6, at 4,?6, at -4,\,!3,<-12,?5, at -3,<-12,?6,-3=?6, at -3,*\,!3,
?6, at -4,?6, at 6,\,!,/*_^-40,*/OH^20,!,?O!,OH,
- 3=wb,11=dl,15=dr,17=wf,19=wf,38=wb,5'7'16'24'25'33'42:O,
+ 3'38=wb,11=dl,15=dr,17'19=wf,5'7'16'24'25'33'42:O,
32:*/H^60,10:/_,12'31'*37:*/_,27://_,28:/OH,3'29:/*OH
;
%------------------------------------------------------------------------------
@@ -2963,13 +2949,13 @@
@-1,\*,O,!wb,|,?6`.7,6:O,{*3^35'5}:*/_,3^-35:/NH2,4:/*OH,
;
%------------------------------------------------------------------------------
-CAT:biological;EN:Maitotoxin;MW:3425.86;EXA:2
+CAT:biological;EN:Maitotoxin;MW:3425.86;EXA:-
:
<55.8,?6,-4=?7,-4'-3'-3'-3=?6, at -3,\,!3,?6,-4'-3'-3'-3=?6, at -3,\,?6,-3=?6,
@-3,\,!3,60,<-30,?6,-3=?6, at -3,30,<30,?6,-3'-3=?6,-3=?7,-4'-3'-3=?6,
@-2,\,?6,-3=?6,-3=?7,-3'-3=?6,-3=?8,-3=dl,-5'-3'-3'-3=?6,
- {5'7'15'16'23'24'32'40'41'48'49'58'59'72'73'82'83'90'91'99'
- 100'107'113'114'122'123'130'131'140'141'148'149}:O,
+ 5'7'15'16'23'24'32'40'41'48'49'58'59'72'73'82'83'90'91'99'
+ 100'107'113'114'122'123'130'131'140'141'148'149:O,
{1^60'2'26'28'29'51'54'61'63'68'75^60'78'109}:*/OH,
11'20'35'45'52'55'65'69'86:/*OH,
3'8'13'17'21'33'38'42'56'70'84'92'101'106'111'128'138'142'146'150:/*H^-60,
Modified: trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp 2024-12-01 21:05:17 UTC (rev 73010)
+++ trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mp 2024-12-01 21:05:26 UTC (rev 73011)
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 5.14 Copyright (c) 2013-2024 Akira Yamaji
+% mcf2graph ver 5.15 Copyright (c) 2013-2024 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,13 +22,13 @@
% 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.14 2024.11.17";
+message "* This is mcf2graph ver 5.15 2024.12.01";
tracingstats:=1; prologues:=3; warningcheck:=0;
%-------------------------------------------------------------------------------------------------
newinternal string EN_;
-numeric save_num[],pcode_com[][],pcode_par[][],pcode_cnt[],tbl_atom[],tbl_group[][],tbl_atom_wt[],
- tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],at_char[],mc_indent[],op_indent[],ex_indent[],
- ad_indent[],unit_lines[],info[],tbl_asc[],lenw[];
+numeric save_num[],pcode_x[][],pcode_y[][],param_e[][],pcode_cnt[],tbl_atom[],tbl_group[][],
+ tbl_atom_wt[],tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],at_char[],mc_indent[],op_indent[],
+ ex_indent[],ad_indent[],unit_lines[],info[],tbl_asc[],lenw[];
string row[][],save_str[],tbl_atom_str[],str_tbl[],arg_s[],mc[],ex[],ad[],op[],tag[],rw[],
lib_tag[][],lib_val[][],mc,ex,ad,op,aux_delimiter,default_library,EN,FM,MW,MI,CAT,JN,CAS,
USE,EXA,EXB,file_input,file_output,default_temp_file,mpfont,atomfont,tempc,temps,blanks,
@@ -128,10 +128,11 @@
pcode_int_start:=3000; % 3001 => 4000 for internal pcode (max 1000)
%-------------------------------------------------------------------------------------------------
def def_com(expr n)(text tx)= nA:=n; forsuffixes list=tx:: list:=nA; nA:=nA+1; endfor enddef;
-def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_tmp_line,_chg_len,
- _get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,_chg_env,_tmp_env,_set_colorA,_set_colorB,
+def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,
+ _set_line,_tmp_line,_chg_len,_chg_slen,_get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,
+ _chg_env,_tmp_env,_set_colorA,_set_colorB,
_group_si,_group_dm,_group_wf,_group_zf,_set_adr,_mk_bond,_set_atom,_arrange_ang,_chg_atom,
- _tmp_rot,_fuse,_fuse_di,_size_atom,_numeric,_numeric_inv,_jump_at,_set_add,_chg_add,_nop,
+ _tmp_rot,_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,
arc_lbr,arc_ltr,si_,wf_,wb_,zf_,zb_,wv_,bd_);
@@ -185,11 +186,9 @@
store_par(parameter_list);
no:=mc:=ex:=ad:=op:=temps:=mw:=mi:=fm:=filter_s:="";
EN:=JN:=MW:=FM:=MI:=CAS:=CAT:=EXA:=EXB:=USE:="-";
- f_ext:=cntM:=mc_row:=ex_row:=ad_row:=op_row:=info_cnt:=err_cnt:=0;
+ f_ext:=cntM:=mc_row:=ex_row:=ad_row:=op_row:=info_cnt:=err_cnt:=param_int:=0;
let ext=ext_to_fig; let add=add_to_molecule; let ++=add_to_molecule; let **=ext_to_fig;
- def '' = define_parts enddef; def '` = readm enddef;
- def \ = drawm enddef; def \\ = putm enddef;
- def \* = checkm enddef; def $ = getm enddef; def @ expr p = mposition:=p; enddef;
+ def '' = define_parts enddef; def '` = readm enddef; def \ = drawm enddef; def \\ = putm enddef; def \* = checkm enddef; def $ = getm enddef; def @ expr p = mposition:=p; enddef;
def # expr p = fsize:=p; enddef; def #@ expr p = fmargin:=p; enddef;
def `(expr s) = define_group_string(s)() enddef; def `` = define_group_string enddef;
def ## expr p = msize:=p; enddef; def |=(expr n) = blength:=n; enddef;
@@ -310,29 +309,37 @@
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
vardef define_parts(text t)= pcode_num:=pcode_num+1; read_mcf(pcode_num)(t); pcode_num enddef;
-vardef abs_adress primary n = if n LT 0:: (n+360)-4095 else:: n-4095 fi enddef;
+vardef pcode_extend(expr p,a,b,c,d)=
+ param_e[Incr param_int][1]:=a; param_e[param_int][2]:=b;
+ param_e[param_int][3]:=c; param_e[param_int][4]:=d; (p,param_int)
+enddef;
+def move_pos(expr n) =
+ <$0,angle(pcode_y[n][1],pcode_y[n][2])~0`length(pcode_y[n][1],pcode_y[n][2]),<$0 enddef;
+%-------------------------------------------------------------------------------------------------
+vardef abs_adress primary n = if (n>=si)and(n<=bd_):: (_tmp_line,n) else:: n-4095 fi enddef;
primarydef a from_until b = (_from,a),(_until,b) enddef;
-primarydef a op_quot b = add_parts(a,b) enddef;
-primarydef a bond__bond b = (a,b) enddef;
-primarydef a bond___bond b = (a+2000,b) enddef;
-primarydef a bond____bond b = (a+2000,b+2000) enddef;
+primarydef a op_quot b = if (known a)and(known b):: add_parts(a,b) else:: _nop fi enddef;
+primarydef a fuse__ b = pcode_extend(_fuse_ext,a,b,2,0) enddef;
+primarydef a fuse___ b = pcode_extend(_fuse_ext,a,b,3,0) enddef;
+primarydef a fuse____ b = pcode_extend(_fuse_ext,a,b,4,0) enddef;
tertiarydef a op_equ b = if (known a)and(known b):: change_bond(a,b) else:: _nop fi enddef;
tertiarydef a op_col b = if (known a)and(known b):: change_atom(a,b) else:: _nop fi enddef;
-tertiarydef a op_hat b = if known b:: (_tmp_rot,b),a else:: _nop,a fi enddef;
-tertiarydef a op_til b = if known b:: (_tmp_line,b),a else:: _nop,a fi enddef;
-tertiarydef a op_lth b = if known b:: (_tmp_env,b),a else:: _nop,a fi enddef;
-tertiarydef a op_bqu b = if known b:: (_tmp_len,b),a else:: _nop,a fi enddef;
-def rot_angle primary n = (_rot_ang,n) enddef; def cyc_atom primary n = (_cyc,n) enddef;
-def jump_atom_abs primary a =
- if numeric a:: (_jp_atom,$a) ef pair a:: (_jp_atom,$1),<$0,angle(a)~0`length(a),<$0 fi enddef;
-def jump_atom primary a =
- if numeric a:: (_jp_atom,a) ef pair a:: <$0,angle(a)~0`length(a),<$0 fi enddef;
-def chg_length primary n = (_com,_len_s),(_chg_len,n) enddef;
+tertiarydef a op_hat b = if (known a)and(known b):: (_tmp_rot,b),a else:: _nop fi enddef;
+tertiarydef a op_til b = if (known a)and(known b):: (_tmp_line,b),a else:: _nop fi enddef;
+tertiarydef a op_lth b = if (known a)and(known b):: (_tmp_env,b),a else:: _nop fi enddef;
+tertiarydef a op_bqu b = if (known a)and(known b):: (_tmp_len,b),a else:: _nop fi enddef;
+def chg_length primary n = (_chg_slen,n) enddef;
+def rot_angle primary n = if known n:: (_rot_ang,n) else:: _nop fi enddef;
+def cyc_atom primary n = if known n:: (_cyc,n) else:: _nop fi enddef;
+def jump_atom secondary n = if n>=pcode_int_start:: move_pos(n) else::(_jp_atom,n) fi enddef;
+def jump_atom_abs secondary n = if n>=pcode_int_start::(_jp_atom,$1),move_pos(n)
+ else::(_jp_atom,$n) fi enddef;
def group_si secondary n = if known n:: (_group_si,n) else:: _nop fi enddef;
def group_dm secondary n = if known n:: (_group_dm,n) else:: _nop fi enddef;
def group_wf secondary n = if known n:: (_group_wf,n) else:: _nop fi enddef;
def group_zf secondary n = if known n:: (_group_zf,n) else:: _nop fi enddef;
-def group_wv secondary n = /n~wv enddef; def group_nb secondary n = /n~nb enddef;
+def group_wv secondary n = if known n:: /n~wv else:: _nop fi enddef;
+def group_nb secondary n = if known n:: /n~nb else:: _nop fi enddef;
%=================================================================================================
def read_mcf(expr n)(text t)=
begingroup
@@ -340,10 +347,10 @@
save /,//,*,/*,*/,**,*/*,~,^,`,',<,>,:,=,\,\\,*\,\*,*\*,@,@$,$,&,&$,#,##,{,},|,||,_,
--,---,----,CP,CA,CC,DL,FR,inside_mc;
inside_mc:=1; | :=mark_adress; || :=reset_adress; ##:=reset_length; _:=NO_ATOM;
- \:=0; \\:=zero_dm; *\:=zero_wf; \*:=zero_zf; *\*:=zero_wv; let ' == op_quot;
- let = ==op_equ; let : ==op_col; let ^ ==op_hat; let ~ ==op_til; let > ==op_lth;
- let ` ==op_bqu; let -- == bond__bond; let --- == bond___bond; let ---- == bond____bond;
- let } == ); let @$ ==jump_atom_abs; let < ==rot_angle; let @ ==jump_atom; let & ==cyc_atom;
+ \:=0; \\:=zero_dm; *\:=zero_wf; \*:=zero_zf; *\*:=zero_wv; let ' == op_quot; let = ==op_equ;
+ let : ==op_col; let ^ ==op_hat; let ~ ==op_til; let > ==op_lth; let ` ==op_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;
@@ -356,11 +363,11 @@
for list==t::
if known list::
if pair list::
- pcode_com[n][Incr pcode_cnt[n]]:=xpart(list); pcode_par[n][pcode_cnt[n]]:=ypart(list);
+ pcode_x[n][Incr pcode_cnt[n]]:=xpart(list); pcode_y[n][pcode_cnt[n]]:=ypart(list);
ef numeric list::
if list==_nop:: message "unknown command in "AND decimal(n);
ef list>=pcode_emb_start:: expand_pcode(n,list);
- else:: pcode_com[n][Incr pcode_cnt[n]]:=_mk_bond; pcode_par[n][pcode_cnt[n]]:=list;
+ else:: pcode_x[n][Incr pcode_cnt[n]]:=_mk_bond; pcode_y[n][pcode_cnt[n]]:=list;
fi
fi
else:: message "unknown command in "AND decimal(n);
@@ -372,70 +379,68 @@
def expand_pcode(expr n,a)=
if n==0::
for i==1 upto pcode_cnt[a]::
- if pcode_com[a][i]>=pcode_emb_start:: expand_pcode(n,pcode_com[a][i]);
+ if pcode_x[a][i]>=pcode_emb_start:: expand_pcode(n,pcode_x[a][i]);
else::
- pcode_com[n][Incr pcode_cnt[n]]:=pcode_com[a][i];
- pcode_par[n][pcode_cnt[n]]:=pcode_par[a][i];
+ pcode_x[n][Incr pcode_cnt[n]]:=pcode_x[a][i]; pcode_y[n][pcode_cnt[n]]:=pcode_y[a][i];
fi
endfor
- else:: pcode_com[n][Incr pcode_cnt[n]]:=a;
+ else:: pcode_x[n][Incr pcode_cnt[n]]:=a;
fi
enddef;
%-------------------------------------------------------------------------------------------------
vardef read_adress(text t)=
- save :,';
+ save :,',pcnt,start_num;
let ' == , ; let : == from_until;
- pcode_int:=pcode_int+1;
- nA:=0;
+ pcode_int:=pcode_int+1; pcnt:=0;
for list==t::
if known list::
if numeric list::
if list==_nop:: message "unknown command in "AND decimal(pcode_int);
- else:: pcode_com[pcode_int][Incr nA]:=_numeric; pcode_par[pcode_int][nA]:=list;
+ else:: pcode_x[pcode_int][Incr pcnt]:=_numeric; pcode_y[pcode_int][pcnt]:=list;
fi
ef pair list::
- if xpart(list)==_from:: nB:=ypart(list);
+ if xpart(list)==_from:: start_num:=ypart(list);
ef xpart(list)==_until::
- for i==nB upto ypart(list)::
- pcode_com[pcode_int][Incr nA]:=_numeric; pcode_par[pcode_int][nA]:=i; endfor
- else:: pcode_com[pcode_int][Incr nA]:=xpart(list); pcode_par[pcode_int][nA]:=ypart(list);
+ for i==start_num upto ypart(list)::
+ pcode_x[pcode_int][Incr pcnt]:=_numeric; pcode_y[pcode_int][pcnt]:=i;
+ endfor
+ else:: pcode_x[pcode_int][Incr pcnt]:=xpart(list); pcode_y[pcode_int][pcnt]:=ypart(list);
fi
fi
else:: message "unknown command in "AND decimal(pcode_int);
fi
endfor
- pcode_cnt[pcode_int]:=nA; pcode_int
+ pcode_cnt[pcode_int]:=pcnt; pcode_int
enddef;
%-------------------------------------------------------------------------------------------------
vardef add_parts(expr a,b)=
if (pair a)and(pair b)::
- pcode_com[Incr pcode_int][1]:=xpart a; pcode_par[pcode_int][1]:=ypart a;
- pcode_com[Incr pcode_int][2]:=xpart b; pcode_par[pcode_int][2]:=ypart b;
- pcode_cnt[pcode_int]:=2;
+ pcode_x[Incr pcode_int][1]:=xpart a; pcode_y[pcode_int][1]:=ypart a;
+ pcode_x[pcode_int][2]:=xpart b; pcode_y[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2;
elseif pair a::
- pcode_com[Incr pcode_int][1]:=xpart a; pcode_par[pcode_int][1]:=ypart a;
- if b>=pcode_emb_start:: pcode_com[pcode_int][2]:=b;
- else:: pcode_com[pcode_int][2]:=_numeric; pcode_par[pcode_int][2]:=b;
+ pcode_x[Incr pcode_int][1]:=xpart a; pcode_y[pcode_int][1]:=ypart a;
+ if b>=pcode_emb_start:: pcode_x[pcode_int][2]:=b;
+ else:: pcode_x[pcode_int][2]:=_numeric; pcode_y[pcode_int][2]:=b;
fi
pcode_cnt[pcode_int]:=2;
elseif pair b::
if a>=pcode_int_start::
- pcode_com[a][Incr pcode_cnt[a]]:=xpart b; pcode_par[a][pcode_cnt[a]]:=ypart b;
+ pcode_x[a][Incr pcode_cnt[a]]:=xpart b; pcode_y[a][pcode_cnt[a]]:=ypart b;
elseif a>=pcode_emb_start::
- pcode_com[Incr pcode_int][1]:=a;
- pcode_com[pcode_int][2]:=xpart b; pcode_par[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2;
+ pcode_x[Incr pcode_int][1]:=a;
+ pcode_x[pcode_int][2]:=xpart b; pcode_y[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2;
else::
- pcode_com[Incr pcode_int][1]:=_numeric; pcode_par[pcode_int][1]:=a;
- pcode_com[pcode_int][2]:=xpart b; pcode_par[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2;
+ pcode_x[Incr pcode_int][1]:=_numeric; pcode_y[pcode_int][1]:=a;
+ pcode_x[pcode_int][2]:=xpart b; pcode_y[pcode_int][2]:=ypart b; pcode_cnt[pcode_int]:=2;
fi
elseif (a LT pcode_emb_start)and(b LT pcode_emb_start)::
- pcode_com[Incr pcode_int][1]:=_numeric; pcode_par[pcode_int][1]:=a;
- pcode_com[pcode_int][2]:=_numeric; pcode_par[pcode_int][2]:=b; pcode_cnt[pcode_int]:=2;
+ pcode_x[Incr pcode_int][1]:=_numeric; pcode_y[pcode_int][1]:=a;
+ pcode_x[pcode_int][2]:=_numeric; pcode_y[pcode_int][2]:=b; pcode_cnt[pcode_int]:=2;
elseif (a>=pcode_int_start)and(b LT pcode_int_start)::
- if b>=pcode_emb_start:: pcode_com[a][Incr pcode_cnt[a]]:=b;
- else:: pcode_com[a][Incr pcode_cnt[a]]:=_numeric; pcode_par[a][pcode_cnt[a]]:=b;
+ if b>=pcode_emb_start:: pcode_x[a][Incr pcode_cnt[a]]:=b;
+ else:: pcode_x[a][Incr pcode_cnt[a]]:=_numeric; pcode_y[a][pcode_cnt[a]]:=b;
fi
- else:: pcode_com[Incr pcode_int][1]:=a; pcode_com[pcode_int][2]:=b; pcode_cnt[pcode_int]:=2;
+ else:: pcode_x[Incr pcode_int][1]:=a; pcode_x[pcode_int][2]:=b; pcode_cnt[pcode_int]:=2;
fi
pcode_int
enddef;
@@ -459,79 +464,63 @@
CP(_jp_bond,a) CP(_rot_ang,180) CC(_len_s) CP(_chg_len,c DIV 10)
if b==5:: CB(72-((c-9) MUL 1.5)) CB(72+(c-9)) CB(72+(c-9))
ef b==6:: CB(60-(c-8)) for i==1 upto 3:: CB(60+((c-8) DIV 2)) endfor
- ef b==7:: CB(360 DIV 7-(c-8)) for i==1 upto 4:: CB(360 DIV 7+((c-8) DIV 2.5)) endfor
- ef b==8:: CB(45-(c-8)) for i==1 upto 5:: CB(45+((c-8) DIV 3)) endfor
fi
CC(_len_e) if a<=0:: CP(_cyc_eB,a-b+2) else:: CP(_cyc_eB,a) fi
enddef;
%=================================================================================================
vardef change_bond(expr a,b) =
- if known b:: pcode_int:=pcode_int+1; nC:=0;
+ save pY;
+ if known b:: pcode_cnt[Incr pcode_int]:=0;
if numeric b::
if (b>=si)and(b<=bd_)::
if a>=pcode_int_start::
for i==1 upto pcode_cnt[a]::
- if pcode_com[a][i]==_numeric:: CA(_set_line,b,pcode_par[a][i])
- elseif pcode_com[a][i]==_numeric_inv::
- if b==dl:: CA(_set_line,dr,pcode_par[a][i])
- ef b==dr:: CA(_set_line,dl,pcode_par[a][i]) fi
+ if pcode_x[a][i]==_numeric:: CA(_set_line,b,pcode_y[a][i])
+ elseif pcode_x[a][i]==_numeric_inv::
+ if b==dl:: CA(_set_line,dr,pcode_y[a][i])
+ ef b==dr:: CA(_set_line,dl,pcode_y[a][i]) fi
fi
endfor
else:: CP(_set_adr,a) CP(_set_line,b)
fi
- elseif (b>=?3)and(b<=?8[15])::
+ elseif (b>=?3)and(b<=?6[15])::
if numeric a::
if a>=pcode_int_start::
for i==1 upto pcode_cnt[a]::
- if pcode_com[a][i]==_numeric::
- if b==Ph1:: fuse_ring(pcode_par[a][i],6) DL(-2) DL(-4)
- ef b==Ph2:: fuse_ring(pcode_par[a][i],6) DL(-1) DL(-3) DL(-5)
- ef (b>=?5[11])and(b<=?8[15]):: fuse_ring_size(a,pcode_com[b][1],pcode_par[b][1])
- else:: fuse_ring(pcode_par[a][i],b-?3+3) fi
- else::
- if b==?6::
- if (pcode_com[a][i]<=1800)and(pcode_par[a][i]<=1800)::
- FR(pcode_com[a][i],pcode_par[a][i],6,4)
- ef pcode_par[a][i]<=1800:: FR(pcode_com[a][i]-2000,pcode_par[a][i],6,3)
- else:: FR(pcode_com[a][i]-2000,pcode_par[a][i]-2000,6,2)
- fi
- ef b==?5::
- if (pcode_com[a][i]<=1800)and(pcode_par[a][i]<=1800)::
- FR(pcode_com[a][i],pcode_par[a][i],5,3)
- ef pcode_par[a][i]<=1800:: FR(pcode_com[a][i]-2000,pcode_par[a][i],5,2)
- fi
- ef b==?4:: FR(pcode_com[a][i],pcode_par[a][i],4,2)
- ef b==Ph1:: FR(pcode_com[a][i],pcode_par[a][i],6,4) DL(-1) DL(-3)
- ef b==Ph2:: FR(pcode_com[a][i],pcode_par[a][i],6,4) DL(-2) DL(-4)
+ pY:=pcode_y[a][i];
+ if pcode_x[a][i]==_numeric::
+ if b==Ph1:: fuse_ring(pY,6) DL(-2) DL(-4)
+ ef b==Ph2:: fuse_ring(pY,6) DL(-1) DL(-3) DL(-5)
+ ef (b>=?5[11])and(b<=?6[15]):: fuse_ring_size(a,pcode_x[b][1],pcode_y[b][1])
+ else:: fuse_ring(pY,b-?3+3)
fi
+ ef pcode_x[a][i]==_fuse_ext::
+ if b==?6:: FR(param_e[pY][1],param_e[pY][2],6,6-param_e[pY][3])
+ ef b==?5:: FR(param_e[pY][1],param_e[pY][2],5,5-param_e[pY][3])
+ ef b==?4:: FR(param_e[pY][1],param_e[pY][2],4,2)
+ fi
fi
- endfor
+ endfor
else::
if b==Ph1:: fuse_ring(a,6) DL(-2) DL(-4)
ef b==Ph2:: fuse_ring(a,6) DL(-1) DL(-3) DL(-5)
- ef (b>=?5[11])and(b<=?8[15]):: fuse_ring_size(a,pcode_com[b][1],pcode_par[b][1])
- else:: fuse_ring(a,b-?3+3)
- fi
+ ef (b>=?5[11])and(b<=?6[15]):: fuse_ring_size(a,pcode_x[b][1],pcode_y[b][1])
+ else:: fuse_ring(a,b-?3+3) fi
fi
ef pair a::
- if b==?6:: if (xpart a<=1800)and(ypart a<=1800):: FR(xpart a,ypart a,6,4)
- ef ypart a<=1800:: FR((xpart a)-2000,ypart a,6,3)
- else:: FR((xpart a)-2000,(ypart a)-2000,6,2)
- fi
- ef b==?5:: if (xpart a<=1800)and(ypart a<=1800):: FR(xpart a,ypart a,5,3)
- ef ypart a<=1800:: FR((xpart a)-2000,ypart a,5,2)
- fi
+ if b==?6:: FR(param_e[ypart a][1],param_e[ypart a][2],6,6-param_e[ypart a][3])
+ ef b==?5:: FR(param_e[ypart a][1],param_e[ypart a][2],5,5-param_e[ypart a][3])
ef b==?4:: FR(xpart a,ypart a,4,2)
+ fi
fi
fi
- fi
elseif color b:: cntC:=cntC+1; color_list[cntC]:=b; CA(_set_colorB,cntC,a) fi
- pcode_cnt[pcode_int]:=nC; pcode_int
+ pcode_int
fi
enddef;
%-------------------------------------------------------------------------------------------------
vardef change_atom(expr a,b)=
- if known b:: pcode_int:=pcode_int+1; nC:=0;
+ if known b:: pcode_cnt[Incr pcode_int]:=pcnt:=0;
if numeric b::
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
@@ -549,11 +538,11 @@
CC(_group_s)
if a>=pcode_emb_start::
for i==1 upto pcode_cnt[a]::
- if pcode_com[a][i]==_numeric:: CA(xpart(b),ypart(b),pcode_par[a][i])
- elseif pcode_com[a][i]==_numeric_inv::
- if xpart(b)==_group_wf:: CA(_group_zf,ypart(b),pcode_par[a][i])
- ef xpart(b)==_group_zf:: CA(_group_wf,ypart(b),pcode_par[a][i]) fi
- else:: CP(pcode_com[a][i],pcode_par[a][i])
+ if pcode_x[a][i]==_numeric:: CA(xpart(b),ypart(b),pcode_y[a][i])
+ ef pcode_x[a][i]==_numeric_inv::
+ if xpart(b)==_group_wf:: CA(_group_zf,ypart(b),pcode_y[a][i])
+ ef xpart(b)==_group_zf:: CA(_group_wf,ypart(b),pcode_y[a][i]) fi
+ else:: CP(pcode_x[a][i],pcode_y[a][i])
fi
endfor
else:: CA(xpart(b),ypart(b),a) fi
@@ -560,16 +549,18 @@
CC(_group_e)
ef color b:: cntC:=cntC+1; color_list[cntC]:=b; CA(_set_colorA,cntC,a)
fi
- pcode_cnt[pcode_int]:=nC; pcode_int
+ pcode_cnt[pcode_int]:=pcode_cnt[pcode_int]; pcode_int
fi
enddef;
%-------------------------------------------------------------------------------------------------
-def pcode_add(expr c,p)= pcode_com[pcode_int][Incr nC]:=c; pcode_par[pcode_int][nC]:=p; enddef;
+def pcode_add(expr c,p)= pcode_x[pcode_int][Incr pcode_cnt[pcode_int]]:=c;
+ pcode_y[pcode_int][pcode_cnt[pcode_int]]:=p;
+enddef;
def pcode_add_adr(expr c,p,a)=
if a>=pcode_emb_start::
for i==1 upto pcode_cnt[a]::
- if pcode_com[a][i]==_numeric:: pcode_add(_set_adr,pcode_par[a][i]) pcode_add(c,p)
- else:: pcode_add(pcode_com[a][i],pcode_par[a][i])
+ if pcode_x[a][i]==_numeric:: pcode_add(_set_adr,pcode_y[a][i]) pcode_add(c,p)
+ else:: pcode_add(pcode_x[a][i],pcode_y[a][i])
fi
endfor
else:: pcode_add(_set_adr,a) pcode_add(c,p)
@@ -736,8 +727,8 @@
for i=n upto group_num:
for j=1 upto group_cnt[i]:
if group_com[i][j]>=pcode_emb_start: expand_pcode(0,group_com[i][j]);
- else: pcode_com[0][incr pcode_cnt[0]]:=group_com[i][j];
- pcode_par[0][pcode_cnt[0]]:=group_par[i][j];
+ else: pcode_x[0][incr pcode_cnt[0]]:=group_com[i][j];
+ pcode_y[0][pcode_cnt[0]]:=group_par[i][j];
fi
endfor
endfor
@@ -788,52 +779,53 @@
bondL:=rate_cr; lenT:=rate_cr; sB[0]:=0; eB[0]:=1; lineT:=si;
addAT:=markA:=markB:=saveA:=saveB:=0;
%-----------------------------------------------------------------------------------------------
- for i=n upto pcode_cnt[a]: nC:=pcode_com[a][i]; nP:=pcode_par[a][i];
- if nC=_mk_bond: if (nP=0)and(rotT<>0): rotT:=0; fi add_atom(0);
- ef nC=_set_adr: adrT:=nP;
- ef nC=_com: if nP=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB;
- ef nP=_rest: markA:=saveA; markB:=saveB;
- ef nP=_moff: markA:=markB:=0;
- ef nP=_term: termA;
- ef nP=_len_s: temp_lenE:=bondL; ef nP=_len_e: bondL:=temp_lenE;
- ef nP=_len_ss: temp_lenF:=bondL; ef nP=_len_ee: bondL:=temp_lenF;
- ef nP=_group_s: f_at:=1; if lineT<>si: f_lineT:=1; fi if rotT<>0: f_rotT:=1; fi
+ for i=n upto pcode_cnt[a]: pX:=pcode_x[a][i]; pY:=pcode_y[a][i];
+ if pX=_mk_bond: if (pY=0)and(rotT<>0): rotT:=0; fi add_atom(0);
+ ef pX=_set_adr: adrT:=pY;
+ 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: termA;
+ ef pY=_len_s: temp_lenE:=bondL; ef pY=_len_e: bondL:=temp_lenE;
+ ef pY=_len_ss: temp_lenF:=bondL; ef pY=_len_ee: bondL:=temp_lenF;
+ ef pY=_group_s: f_at:=1; if lineT<>si: f_lineT:=1; fi if rotT<>0: f_rotT:=1; fi
if lenT<>rate_cr: f_lenT:=1; fi if envT<>hz: f_envT:=1; fi
- ef nP=_group_e: f_at:=0; f_lineT:=f_rotT:=f_lenT:=f_envT:=rotT:=envT:=0;
+ ef pY=_group_e: f_at:=0; f_lineT:=f_rotT:=f_lenT:=f_envT:=rotT:=envT:=0;
lineT:=si; lenT:=rate_cr; fi
- ef nC=_set_atom: temp_strA:=nP;
- ef nC=_group_si: add_group;
- ef nC=_group_dm: lineT:=dm; add_group;
- ef nC=_group_wf: lineT:=wf; add_group;
- ef nC=_group_zf: lineT:=zf; add_group;
- ef nC=_jp_bond: termA; nA:=getB(nP); check_adrB(nA); sB[cntB+1]:=sB[nA]; f_bra:=1;
- ef nC=_jp_atom: termA; nA:=getA(nP); check_adrA(nA); sB[cntB+1]:=nA; f_bra:=1;
- ef nC=_jp_absA: sB[cntB+1]:=nP; f_bra:=1; temp_cntB:=cntB;
- ef nC=_chg_atom: strA[getA(adrT)]:=pcode_par[nP][1];
- ef nC=_chg_len: if nP=_ring_len: bondL:=ringL; else: bondL:=nP; fi
- ef nC=_get_len: if nP=_tmp_len: if bondL=rate_cr: bondL:=lenT; fi
- ef nP=_ring_len:
+ ef pX=_set_atom: temp_strA:=pY;
+ ef pX=_group_si: add_group(pY);
+ ef pX=_group_dm: lineT:=dm; add_group(pY);
+ ef pX=_group_wf: lineT:=wf; add_group(pY);
+ ef pX=_group_zf: lineT:=zf; add_group(pY);
+ ef pX=_jp_bond: termA; nA:=getB(pY); check_adrB(nA); sB[cntB+1]:=sB[nA]; f_bra:=1;
+ ef pX=_jp_atom: termA; nA:=getA(pY); check_adrA(nA); sB[cntB+1]:=nA; f_bra:=1;
+ ef pX=_jp_absA: sB[cntB+1]:=pY; f_bra:=1; temp_cntB:=cntB;
+ ef pX=_chg_atom: strA[getA(adrT)]:=pcode_y[pY][1];
+ ef pX=_chg_len: if pY=_ring_len: bondL:=ringL; else: bondL:=pY; fi
+ ef pX=_chg_slen: temp_lenE:=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
- else: ringL:=lenB[getB(nP)]; fi
- ef nC=_tmp_len: lenT:=nP;
- ef nC=_set_line: lineB[getB(adrT)]:=nP;
- ef nC=_tmp_line: lineT:=nP;
- ef nC=_tmp_rot: rotT:=nP;
- ef nC=_cyc: check_adrA(getA(nP)); add_atom(getA(nP));
- ef nC=_cyc_eB: add_atom(eB[getB(nP)]);
- ef nC=_cyc_sB: add_atom(sB[getB(nP)]);
- ef nC=_chg_env: envB:=nP;
- ef nC=_tmp_env: envT:=nP;
- ef nC=_set_colorA: colorA[getA(adrT)]:=nP;
- ef nC=_set_colorB: colorB[getB(adrT)]:=nP;
- ef nC=_set_add: addAT:=nP;
- ef nC=_chg_add: addA[getA(nP)]:=addAT; addAT:=0; if rotT<>0: add_rot[getA(nP)]:=rotT; fi
+ else: ringL:=lenB[getB(pY)]; fi
+ ef pX=_tmp_len: lenT:=pY;
+ ef pX=_set_line: lineB[getB(adrT)]:=pY;
+ ef pX=_tmp_line: lineT:=pY;
+ ef pX=_tmp_rot: rotT:=pY;
+ ef pX=_cyc: check_adrA(getA(pY)); add_atom(getA(pY));
+ ef pX=_cyc_eB: add_atom(eB[getB(pY)]);
+ ef pX=_cyc_sB: add_atom(sB[getB(pY)]);
+ ef pX=_chg_env: envB:=pY;
+ ef pX=_tmp_env: envT:=pY;
+ ef pX=_set_colorA: colorA[getA(adrT)]:=pY;
+ ef pX=_set_colorB: colorB[getB(adrT)]:=pY;
+ ef pX=_set_add: addAT:=pY;
+ ef pX=_chg_add: addA[getA(pY)]:=addAT; addAT:=0; if rotT<>0: add_rot[getA(pY)]:=rotT; fi
else:
fi
endfor
enddef;
%-------------------------------------------------------------------------------------------------
-def add_group=
+def add_group(expr n)=
if f_at=1: nE:=getA(adrT); check_adrA(nE); else: nE:=cntA+1; fi
group_cnt[incr group_num]:=0; store_group(_jp_absA,nE)
store_group(_com,_mark)
@@ -846,9 +838,7 @@
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 nP<>NO_ATOM:
- for i=1 upto pcode_cnt[nP]: store_group(pcode_com[nP][i],pcode_par[nP][i]) endfor
- 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)
if f_lineT=0: lineT:=si; fi
@@ -881,24 +871,24 @@
envT:=envB:=f_lineT:=f_rotT:=f_lenT:=f_envT:=0; lineT:=si; angT:=mangle;
angA[0]:=angB[0]:=angX[0]:=0; posA[0]:=posBs:=posBe:=(0,0);
%-----------------------------------------------------------------------------------------------
- for i=1 upto pcode_cnt[n]: nC:=pcode_com[n][i]; nP:=pcode_par[n][i];
- if nC=_mk_bond: if (nP=0)and(rotT<>0):nP:=rotT; rotT:=0; fi add_bond(nP,1);
- ef nC=_com: if nP=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB;
- ef nP=_rest: markA:=saveA; markB:=saveB;
- ef nP=_moff: markA:=markB:=0; ef nP=_term: termB;
- ef nP=_group_e: lineT:=si; lenT:=rate_cr; rotT:=envT:=0; fi
- ef nC=_jp_bond: termB; nA:=getB(nP); posBs:=posA[sB[nA]]; angT:=angB[nA]; f_bra:=1; rotT:=0;
- ef nC=_jp_atom: termB; adrT:=getA(nP); posBs:=posA[adrT]; angT:=angX[adrT]; f_bra:=1; rotT:=0;
- ef nC=_jp_absA: adrT:=nP; posBs:=posA[adrT]; angT:=angX[adrT];
+ 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 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];
f_bra:=1; rotT:=0; temp_cntB:=cntB;
- ef nC=_adj_ang: angT:=adjust_ang(angT);
- ef nC=_rot_ang: if nP>-3700: angT:=(angT+nP) mod 360; else: angT:=(nP+4095) mod 360; fi
- ef nC=_tmp_rot: rotT:=nP;
- ef nC=_chg_env: envB:=nP;
- ef nC=_tmp_env: envT:=nP;
- ef nC=_cyc: add_bond(angle(posA[getA(nP)]-posBs)-angT,0);
- ef nC=_cyc_sB: add_bond(angle(posA[sB[getB(nP)]]-posBs)-angT,0);
- ef nC=_cyc_eB: add_bond(angle(posA[eB[getB(nP)]]-posBs)-angT,0);
+ ef pX=_adj_ang: angT:=adjust_ang(angT);
+ ef pX=_rot_ang: if pY>-3700: angT:=(angT+pY) mod 360; else: angT:=(pY+4095) mod 360; fi
+ ef pX=_tmp_rot: rotT:=pY;
+ ef pX=_chg_env: envB:=pY;
+ ef pX=_tmp_env: envT:=pY;
+ ef pX=_cyc: add_bond(angle(posA[getA(pY)]-posBs)-angT,0);
+ ef pX=_cyc_sB: add_bond(angle(posA[sB[getB(pY)]]-posBs)-angT,0);
+ ef pX=_cyc_eB: add_bond(angle(posA[eB[getB(pY)]]-posBs)-angT,0);
else:
fi
endfor
@@ -924,7 +914,7 @@
%-------------------------------------------------------------------------------------------------
vardef arrange_ang(expr n)=
if cntB=0: angT:=(angT-180) mod 360; 180
- else: if envB>=pcode_emb_start: pcode_par[envB][cntB-temp_cntB]
+ else: if envB>=pcode_emb_start: pcode_y[envB][cntB-temp_cntB]
else: if envB=hz: if n=0: 60 ef n<=90: -60 ef n<=180: 60 ef n<270: -60 else: 60 fi
ef envB=vt: if n=0: -60 ef n<90: 60 ef n<=180: -60 ef n<=270: 60 else: -60 fi
ef abs(envB)<=180: envB
@@ -1010,7 +1000,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 .75hash_gap/lenL until 1: drawdot i[Ls,Le]; endfor
+ ef nL=dt: for i=0 step .75hash_gap/lenL until 1: drawdot i[Ls,Le] wpcs 2bond_pen_wd; endfor
ef nL=wv: nA:=.4bondgap; nB:=round(lenL/nA);
draw Ls for i=1 upto nB: ..controls(point (i-.5)/nB of sfrt(zA,nA,iif(odd i,ap,am)))
..point i/nB of zA endfor
@@ -1379,7 +1369,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
vardef define_atom(expr s,WT,MI)=
str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; pcode_num:=pcode_num+1;
- pcode_com[pcode_num][1]:=_set_atom; pcode_par[pcode_num][1]:=str_cnt; pcode_cnt[pcode_num]:=1;
+ pcode_x[pcode_num][1]:=_set_atom; pcode_y[pcode_num][1]:=str_cnt; pcode_cnt[pcode_num]:=1;
str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0;
tbl_atom_wt[tbl_cnt]:=WT; tbl_atom_mi[tbl_cnt]:=MI; pcode_num
enddef;
@@ -1386,7 +1376,7 @@
%-------------------------------------------------------------------------------------------------
vardef define_group_string(expr s)(text t)=
str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; pcode_num:=pcode_num+1;
- pcode_com[pcode_num][1]:=_set_atom; pcode_par[pcode_num][1]:=str_cnt; pcode_cnt[pcode_num]:=1;
+ pcode_x[pcode_num][1]:=_set_atom; pcode_y[pcode_num][1]:=str_cnt; pcode_cnt[pcode_num]:=1;
str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0;
for list=t: tbl_group[tbl_cnt][incr tbl_atom[tbl_cnt]]:=list-pcode_emb_start; endfor
pcode_num
@@ -1443,7 +1433,7 @@
for j==2 upto i:: ,(360 DIV i) endfor,(_cyc_sB,1-i),(_com,_len_ee));
endfor
Ph:=Ph1:='(?6,-2=dl,-4=dl,-6=dl); Ph2:='(?6,-1=dl,-3=dl,-5=dl);
- for i=5,6,7,8: for j=11 upto 15: ?[i][j]:='((i,j)); endfor endfor
+ for i=5,6: for j=11 upto 15: ?[i][j]:='((i,j)); endfor endfor
%-----------------------------------------------------------------------------------------------
!:=!1:='((_mk_bond,_arrange_ang)); !db:=!d:='(!~db); !tm:=!t:='(!~tm); !wf:=!w:='(!~wf);
!zf:=!z:='(!~zf); !wb:='(!~wb); !zb:='(!~zb); !dl:='(!~dl); !dr:='(!~dr); !dm:='(!~dm);
@@ -1535,7 +1525,7 @@
if nA<>CMA: proc_err(5,nB) fi if nC=CMA: proc_err(4,i) fi
ef (nB=SLS)or((nB>=7)and(nB<=11)): % /,*/*,//,/*,*/,**
if (nA<>CMA)and(nA<>CLN)and(nA<>PRS): proc_err(5,i) fi
- if nC=CMA: proc_err(4,i) fi
+ if (nC=CMA): proc_err(4,i) fi
fi
if (nB=PRS)or(nB=BRS): f_depth:=f_depth+1; ef (nB=PRE)or(nB=BRE): f_depth:=f_depth-1; fi
endfor
More information about the tex-live-commits
mailing list.