summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-07-18 20:22:29 +0000
committerKarl Berry <karl@freefriends.org>2021-07-18 20:22:29 +0000
commit07a55c4c3220d83181e9bca4a0fd432e567a42aa (patch)
tree1341ac421ad5c562d97b0374124ff6f65df23fb2 /Master/texmf-dist
parent78591567fc12bcecdf39f8d632d39c12568401ea (diff)
mcf2graph (18jul21)
git-svn-id: svn://tug.org/texlive/trunk@59974 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG9
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/README2
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_data_base.mcf43
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf13
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdfbin319297 -> 320334 bytes
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex2
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf158
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdfbin381229 -> 383107 bytes
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex103
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdfbin184370 -> 184371 bytes
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex4
-rw-r--r--Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf58
12 files changed, 239 insertions, 153 deletions
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
index 684fdf8016d..fcde9811d39 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
@@ -1,7 +1,12 @@
*******************************************************************************
- Changelog of mcf2graph software package by Akira Yamaji 2021-06-28
+ Changelog of mcf2graph software package by Akira Yamaji 2021-07-18
*******************************************************************************
-[ver. 4.68 / 2021-06-28
+[ver. 4.69 / 2021-07-18]
+ -add bond type wf_r,wb_r,bd_r for steric ring
+ -update mcf_data_base.mcf
+ -update MCF manual,example
+
+[ver. 4.68 / 2021-06-28]
-fix bug in data base file handling
-update mcf_data_base.mcf
-update MCF manual,example
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/README b/Master/texmf-dist/doc/metapost/mcf2graph/README
index 3f1624af40f..c6252c7f5c7 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/README
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/README
@@ -1,7 +1,7 @@
********************************************************************************
mcf2graph : Convert Molecular Coding Format to graphics with METAFONT/METAPOST
Author : Akira Yamaji
- version : 4.68 2021-06-28
+ version : 4.69 2021-07-18
E-mail : mcf2graph@gmail.com
Located at : http://www.ctan.org/pkg/mcf2graph
********************************************************************************
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_data_base.mcf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_data_base.mcf
index 10944442eab..3b561412035 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_data_base.mcf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_data_base.mcf
@@ -1,9 +1,10 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular data base file mcf_data_base.mcf by Akira Yamaji 2021.06.28
+% molecular data base file mcf_data_base.mcf by Akira Yamaji 2021.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tag1:var1;tag2:var2;tag3:var3 .....
-% first character of line '%' comment out
-% first character of line '+' begin MCF , end MCF
+% first character of line "%" comment out
+% first character of line "+" begin MCF
+% first string of line "+-" end MCF
% Cat = Category
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%==============================================================================
@@ -148,6 +149,38 @@ Cat:biological;EN:Oxaloacetate;MW:132.07;EXA:3
<30,COOH,!,//O,!2,COOH
+------------------------------------------------------------------------------
%==============================================================================
+Cat:biological;EN:Glucose;MW:180.16;EXA:-
++
+<30,?6,5:O,2:*/OH,{1,3}:/*OH,4:*/*OH,6:*/!OH
++------------------------------------------------------------------------------
+Cat:biological;EN:Glucose;MW:180.16;EXA:-
++
+<-30,OH,!2,*/OH,!,/*OH,!,/*OH,!,/*OH,!,//O,!,H
++------------------------------------------------------------------------------
+Cat:biological;EN:Fructose;MW:180.16;EXA:-
++
+<30,OH,!2,/*OH,!,*/OH,!,*/OH,!,//O,!2,OH
++------------------------------------------------------------------------------
+Cat:biological;EN:Fructose;MW:180.16;EXA:-
++
+<-18,?5,5:O,1^-48:*/*!OH,1^48:/OH,2:/*OH,3:*/OH,4:/*!OH
++------------------------------------------------------------------------------
+Cat:biological;EN:Glucose(1);MW:180.16;EXA:1
++
+#1,-60~wf_r,75~bd_r,-30~wb_r,130,O,75,&1,##,
+{1^$-160,2^$175,3^$-60}:/OH`-.5,4:*/*OH`-.5,6:/!OH^$90`-.5
++------------------------------------------------------------------------------
+Cat:biological;EN:Glucose(2);MW:180.16;EXA:1
++
+#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##,
+ {1^$-90,2^$90,3^$-90,4^$90}:/OH`-.5,6^$90:/!OH`-.5
++------------------------------------------------------------------------------
+Cat:biological;EN:Fluctose;MW:180.16;EXA:-
++
+#1.4,-35~wf_r,35~bd_r`1,30~wb_r,130`1.66,O,&1,##,
+ 1^$-90:/OH,{2^$-90,3^$90}:/OH`-.45,{1^$90,4^$90}:/!OH`-.45
++------------------------------------------------------------------------------
+%==============================================================================
Cat:biological;EN:Geraniol;MW:154.25;EXA:1
+
<30,!8,OH,{2,6}=dr,{2,6}:/_
@@ -868,11 +901,11 @@ Cat:biological;EN:Warfarin;MW:308.333;EXA:1
+
<30,Ph,3=?6,8=dl,10:O,7:/OH,9://O,@8,\,/Ph`1,60,!,//O,!
+------------------------------------------------------------------------------
-Cat:biological;EN:Genistein;MW:270.24;EXA:1
+Cat:biological;EN:Genistein;MW:270.24;EXA:-
+
<30,Ph,3=?6,9=dl,10:O,{2,6}:/OH,7://O,@8,\,Ph,-3:/OH
+------------------------------------------------------------------------------
-Cat:biological;EN:Baicalein;MW:270.24;EXA:1
+Cat:biological;EN:Baicalein;MW:270.24;EXA:1-
+
<30,Ph,3=?6,9=dl,10:O,{1,2,6}:/OH,7://O,@8,\,Ph
+------------------------------------------------------------------------------
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
index 516424a5497..1f947a342f0 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
@@ -1,8 +1,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2021.06.28
+% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2021.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf; %%% it must be version 4.68
-message "* mcf_exa_soc 2021.06.28";
+input mcf2graph.mf; %%% it must be version 4.69
+message "* mcf_exa_soc 2021.07.18";
message "";
%------------------------------------------------------------------------------
fsize:=(35mm,24mm);
@@ -12,9 +12,16 @@ tag1:="J"; tag2:="C"; tag3:="fm"; tag4:="mw"; tag5:="EN"; tag6:="MW";
%%%%sw_fframe:=1;
%%%% outputformat:="png"; hppp:=vppp:=0.1; outputtemplate:="%j-%3c.png";
%ext(defaultfont:="uhvr8r"; defaultscale:=.6; label.lrt(inf_EN,(-2bp,1.5bp));)
+%sw_output:=Font;
+%ext(defaultfont:="uhvr8r"; defaultscale:=.6;
+%label.lrt(inf_EN&"MW="&cal_MW
+% &"("&decimal(num_MW-scantokens(inf_MW))&")",(-2bp,1.5bp));
+%)
%------------------------------------------------------------------------------
if f_MP=0: input mcf_exa_soc-mf.aux; % (metafont) make aux file before typeset
else: % mpost -s ahlength=7 mcf_exa_soc.mf
+%------------------------------------------------------------------------------
+%%message "counr unit= "&decimal(count_data_unit("mcf_data_base"));
%******************************************************************************
beginfont("f:mcf_data_base","t:EN","v:Adenine") % select EN=Adenine
if check(mc)=0: MC(scantokens(mc)) fi
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
index 3e206972ac5..0201f795ed3 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
index 8d44f7522ba..0069f100e6e 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2021.06.28
+% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2021.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
\usepackage{graphicx}
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
index 75591a8fe33..1561ec3b647 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
@@ -1,9 +1,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2021.06.28
+% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2021.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf; %% it must be version 4.68
+input mcf2graph.mf; %% it must be version 4.69
% ** use data base file 'mcf_data_base.mcf'
-message "mcf_man_soc 2021.06.28"; message "";
+message "mcf_man_soc 2021.07.18"; message "";
%------------------------------------------------------------------------
sw_mframe:=0;
sw_expand:=0;
@@ -257,96 +257,95 @@ beginfont("EN:rotate 1")
endfont
%***********************************************************************
beginfont("EN:change bond 1")
- fsize:=(70mm,12mm);
- fmargin:=(2mm,3mm);
+ fsize:=(70mm,10mm);
+ fmargin:=(2mm,2mm);
sw_trimming:=0;
ratio_chain_ring:=1;
MC(<-30,!~dm,!,!~dl,!,!~dr,!~db,!~db,!,!~tm)
add(defaultscale:=0.6; labeloffset:=0;
- label.rt("(dm)",A1+(0,-0.8l));
- label.rt("(dl)",A3+(0,-0.8l));
- label.rt("(dr)",A5+(0,-0.8l));
- label.rt("(db)",A6+(0,-0.3l));
- label.rt("(db)",A7+(0,-0.8l));
- label.rt("(tm)",A9+(0,-0.8l));
+ label.rt("(dm)",A1+(0,-0.7l));
+ label.rt("(dl)",A3+(0,-0.7l));
+ label.rt("(dr)",A5+(0,-0.7l));
+ label.rt("(db)",A6+(0,-0.7l));
+ label.rt("(db)",A7+(0,-0.7l));
+ label.rt("(tm)",A9+(0,-0.7l));
)
endfont
%***********************************************************************
beginfont("EN:change bond 2")
- fsize:=(60mm,12mm);
- fmargin:=(2mm,3mm);
- blength:=9.5mm;
- sw_trimming:=1;
+ fsize:=(70mm,10mm);
+ fmargin:=(2mm,2mm);
+ sw_trimming:=0;
ratio_chain_ring:=1;
- MC(<-30,!~wf,!,!~wb,!,!~zf,!,!~zb)
+ MC(<-30,!~wf,!,!~wb,!,!~zf,!,!~zb,!,!~vf,!,!~vb)
add(defaultscale:=0.6; labeloffset:=0;
label.rt("(wf)",A1+(0,-0.7l));
label.rt("(wb)",A3+(0,-0.7l));
label.rt("(zf)",A5+(0,-0.7l));
label.rt("(zb)",A7+(0,-0.7l));
+ label.rt("(vf)",A9+(0,-0.7l));
+ label.rt("(vb)",A11+(0,-0.7l));
)
endfont
%***********************************************************************
beginfont("EN:change bond 3")
- fsize:=(70mm,12mm);
- fmargin:=(2mm,3mm);
- blength:=10mm;
- sw_trimming:=1;
- ratio_chain_ring:=1;
- MC(<-30,!~vf,!,!~vb)
- add(defaultscale:=0.6; labeloffset:=0;
- label.rt("(vf)",A1+(0,-0.7l));
- label.rt("(vb)",A3+(0,-0.7l));
- )
-endfont
-%***********************************************************************
-beginfont("EN:change bond 3")
- fsize:=(70mm,12mm);
- fmargin:=(2mm,3mm);
+ fsize:=(70mm,10mm);
+ fmargin:=(2mm,2mm);
blength:=9mm;
sw_trimming:=1;
ratio_chain_ring:=1;
MC(<-30,!7,1=dt,3=wv,5=bd,7=bz)
add(defaultscale:=0.6; labeloffset:=0;
- label.rt("(dt)",A1+(0,-0.7l));
- label.rt("(wv)",A3+(0,-0.7l));
- label.rt("(bd)",A5+(0,-0.7l));
- label.rt("(bz)",A7+(0,-0.7l));
+ label.rt("(dt)",A1+(0,-0.6l));
+ label.rt("(wv)",A3+(0,-0.6l));
+ label.rt("(bd)",A5+(0,-0.6l));
+ label.rt("(bz)",A7+(0,-0.6l));
)
endfont
%***********************************************************************
-beginfont("EN:change bond 4")
- fsize:=(60mm,12mm);
- fmargin:=(2mm,3mm);
- blength:=9mm;
- sw_trimming:=1;
- ratio_chain_ring:=1;
- MC(<30,!7,{2,4,6}=dr)
-endfont
-%***********************************************************************
beginfont("EN:over line")
sw_trimming:=1;
- fsize:=(80mm,20mm);
+ fsize:=(75mm,20mm);
ratio_chain_ring:=1;
- MC(<30,!18,!,60,90`17,
+ MC(<30,!18,$90`1.5,90`15.5,
{2~si_,4~wf_,6~wb_,8~zf_,10~zb_,
12~bd_,14~dl_,16~dr_,18~dm_}:/_`2)
endfont
%***********************************************************************
+beginfont("EN:Steric ring")
+ fsize:=(75mm,16mm);
+ MCat(0.05,0.5)(#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##,
+ {1^$-90,2^$90,3^$-90,4^$90}:/OH`-.5,6^$90:/!OH`-.5)
+ defaultscale:=0.6;
+ MCat(0.5,0.7)(0~wf_r) add(label.lft("wf_r:",A1);)
+ MCat(0.5,0.2)(0~wf) add(label.lft("wf:",A1);)
+ MCat(0.75,0.7)(0~bd_r) add(label.lft("bd_r:",A1);)
+ MCat(0.75,0.2)(0~bd) add(label.lft("bd:",A1);)
+ MCat(1,0.7)(0~wb_r) add(label.lft("wb_r:",A1);)
+ MCat(1,0.2)(0~wb) add(label.lft("wb:",A1);)
+endfont
+%***********************************************************************
+beginfont("EN:change multi bond")
+ fsize:=(40mm,8mm);
+ fmargin:=(2mm,3mm);
+ ratio_chain_ring:=1;
+ MC(<30,!7,{2,4,6}=dr)
+endfont
+%***********************************************************************
beginfont("EN:change bond length1")
- fsize:=(75mm,10mm);
+ fsize:=(55mm,8mm);
sw_numbering:=Bond;
MC(<-30,!2,!4`1.2,!2)
endfont
%***********************************************************************
beginfont("EN:change bond length2")
- fsize:=(75mm,10mm);
+ fsize:=(55mm,8mm);
sw_numbering:=Bond;
MC(<-30,!2,#1.2,!4,##,!2)
endfont
%***********************************************************************
beginfont("EN:change ring length")
- fsize:=(60mm,20mm);
+ fsize:=(60mm,16mm);
fmargin:=(2mm,2mm);
sw_trimming:=1;
sw_numbering:=Bond;
@@ -355,7 +354,7 @@ endfont
%***********************************************************************
beginfont("EN:Insert atom")
sw_trimming:=1;
- fsize:=(70mm,12mm);
+ fsize:=(50mm,7mm);
MC(<-30,!2,O,!2,N,!2)
endfont
%***********************************************************************
@@ -368,7 +367,7 @@ beginfont("EN:change atom")
endfont
%***********************************************************************
beginfont("EN:change atom brock address 1")
- fsize:=(70mm,15mm);
+ fsize:=(70mm,14mm);
fmargin:=(3mm,1.5mm);
MCat(0,.5)(?6,@4,\,|,?6,2:O)
sw_numbering:=Atom;
@@ -377,7 +376,7 @@ beginfont("EN:change atom brock address 1")
endfont
%***********************************************************************
beginfont("EN:change atom brock address 2")
- fsize:=(70mm,15mm);
+ fsize:=(70mm,14mm);
fmargin:=(3mm,1.5mm);
MCat(0,.5)(?6,@4,\,|,?6,||,2:N)
sw_numbering:=Atom;
@@ -386,7 +385,7 @@ beginfont("EN:change atom brock address 2")
endfont
%***********************************************************************
beginfont("EN:change atom absolute address")
- fsize:=(70mm,15mm);
+ fsize:=(70mm,14mm);
fmargin:=(3mm,1.5mm);
MCat(0,.5)(?6,@4,\,?6,$2:N)
sw_numbering:=Atom;
@@ -395,7 +394,7 @@ beginfont("EN:change atom absolute address")
endfont
%***********************************************************************
beginfont("EN:change atom relative adress")
- fsize:=(70mm,15mm);
+ fsize:=(70mm,14mm);
fmargin:=(3mm,1.5mm);
MCat(0,.5)(?6,@4,\,?6,-2:N)
sw_numbering:=Atom+Inverse;
@@ -414,7 +413,7 @@ beginfont("EN:fused ring")
fmargin:=(2mm,1.5mm);
sw_trimming:=1;
sw_numbering:=Bond;
- MC(<30,?6,3=?6,3=dt,{7--11}=bd)
+ MC(<30,?6,3=?6,3=dt,{7--11}=bd_r)
endfont
%-----------------------------------------------------------------------
beginfont("EN:change ring length")
@@ -423,7 +422,7 @@ beginfont("EN:change ring length")
sw_trimming:=1;
sw_numbering:=Bond;
MC(?6,@4,\,?6`1.2,5=?6,11=?6,
- {14--23}=bd,{5,11}=dt)
+ {14--23}=bd_r,{5,11}=dt)
endfont
%-----------------------------------------------------------------------
beginfont("EN:fused large 6 ring")
@@ -432,7 +431,7 @@ beginfont("EN:fused large 6 ring")
margin_top_bottom:=1.5mm;
sw_numbering:=Bond;
sw_trimming:=1;
- MC(<30,?6,3=?6[13],3=dt,{7--11}=bd)
+ MC(<30,?6,3=?6[13],3=dt,{7--11}=bd_r)
endfont
%-----------------------------------------------------------------------
beginfont("EN:fuse multi ring")
@@ -448,13 +447,13 @@ beginfont("EN:fused ring 2")
fmargin:=(2mm,2mm);
sw_numbering:=Bond;
msize:=(1,.9);
- MCat( 0,.5)(<30,?6,3=?6,(11,4)=?6[4],{11,4}=dt,{12--15}=bd)
+ MCat( 0,.5)(<30,?6,3=?6,(11,4)=?6[4],{11,4}=dt,{12--15}=bd_r)
add(defaultscale:=0.4; label("(1)",p0);)
msize:=(1,.9);
- MCat(.5,.5)(<30,?6,3=?6,(11,4)=?5[3],{11,4}=dt,{12--14}=bd)
+ MCat(.5,.5)(<30,?6,3=?6,(11,4)=?5[3],{11,4}=dt,{12--14}=bd_r)
add(defaultscale:=0.4; label("(2)",p0);)
msize:=(1,.9);
- MCat( 1,.5)(<30,?6,3=?6,(11,4)=?4[2],{11,4}=dt,{12,13}=bd)
+ MCat( 1,.5)(<30,?6,3=?6,(11,4)=?4[2],{11,4}=dt,{12,13}=bd_r)
add(defaultscale:=0.4; label("(3)",p0);)
endfont
%***********************************************************************
@@ -462,24 +461,22 @@ beginfont("EN:fused ring 3")
fsize:=(60mm,20mm);
fmargin:=(2mm,2mm);
sw_numbering:=Bond;
- MCat(0,1)(?6,{3,10}=?6,(16,4)=?6[3],{16,4}=dt,{17--19}=bd)
+ MCat(0,1)(?6,{3,10}=?6,(16,4)=?6[3],{16,4}=dt,{17--19}=bd_r)
add(defaultscale:=0.4; label("(1)",p0);)
- MCat(1,0)(?6,{3,10}=?6,(16,4)=?5[2],{16,4}=dt,{17,18}=bd)
+ MCat(1,0)(?6,{3,10}=?6,(16,4)=?5[2],{16,4}=dt,{17,18}=bd_r)
add(defaultscale:=0.4; label("(2)",p0);)
endfont
%***********************************************************************
beginfont("EN:fused ring 4")
- fsize:=(60mm,22mm);
+ fsize:=(60mm,20mm);
fmargin:=(2mm,2mm);
sw_trimming:=1;
sw_numbering:=Bond;
- MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2],{21,4}=dt,{22,23}=bd)
+ MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2],{21,4}=dt,{22,23}=bd_r)
endfont
%***********************************************************************
beginfont("EN:Spiro ring ")
- sw_trimming:=1;
- fsize:=(60mm,18mm);
- fmargin:=(2mm,3mm);
+ fsize:=(40mm,15mm);
sw_numbering:=Atom;
numbering_end:=7;
ratio_chain_ring:=1;
@@ -487,14 +484,12 @@ beginfont("EN:Spiro ring ")
endfont
%***********************************************************************
beginfont("EN:group 1")
- fsize:=(60mm,25mm);
- sw_trimming:=1;
- MC(<-30,!,/_,!,/!,!3,/!2,!,/iPr,!3,/tBu,!,/Ph^-30,!)
+ fsize:=(75mm,18mm);
+ MC(<30,!,/_,!2,/!,!2,/!2,!4,/?!,!4,/??!,!2,/'(Ph`0.8)^-60,!)
endfont
%***********************************************************************
beginfont("EN:group 2")
- fsize:=(80mm,15mm);
- sw_trimming:=1;
+ fsize:=(70mm,14mm);
MC(<30,!`1,//O,!2`1,*/H,!2`1,/*H,!2`1,*/*H,!2`1,**?3,!`1)
add(defaultscale:=0.75;
label("//",A2-(0,0.45l));
@@ -506,18 +501,17 @@ beginfont("EN:group 2")
endfont
%***********************************************************************
beginfont("EN:group 3")
- fsize:=(60mm,18mm);
+ fsize:=(60mm,16mm);
sw_trimming:=1;
MC(<-30,#1,!2,/_`2^30,!2,/!2>lr,!2,/!2>rl,!)
endfont
%***********************************************************************
beginfont("EN:group 3")
- fsize:=(80mm,18mm);
+ fsize:=(75mm,18mm);
fmargin:=(2mm,2mm);
sw_numbering:=Atom;
- sw_trimming:=1;
numbering_end:=17;
- MC(<30,!16,2:/_,4:/!,6:/!2,10:/iPr,14:/tBu,16:/Ph^-60)
+ MC(<30,!16,2:/_,4:/!,6:/!2,10:/iPr,14:/tBu,16:/'(Ph`0.8)^-60)
endfont
%***********************************************************************
beginfont("EN:group 4")
@@ -529,14 +523,14 @@ beginfont("EN:group 4")
endfont
%***********************************************************************
beginfont("EN:group 5")
- fsize:=(60mm,18mm);
+ fsize:=(60mm,16mm);
sw_trimming:=1;
sw_numbering:=Atom; numbering_end:=8;
MC(<-30,!7`1,3:/_`2^30,5:/!2>lr,7:/!2>rl)
endfont
%***********************************************************************
beginfont("EN:chain strech direction mode 1")
- fsize:=(50mm,35mm);
+ fsize:=(50mm,25mm);
sw_trimming:=1;
ratio_chain_ring:=1;
MC(
@@ -546,7 +540,7 @@ beginfont("EN:chain strech direction mode 1")
endfont
%***********************************************************************
beginfont("EN:chain strech direction mode 2")
- fsize:=(60mm,23mm);
+ fsize:=(60mm,20mm);
sw_trimming:=1;
ratio_chain_ring:=1;
MC(
@@ -562,7 +556,7 @@ beginfont("EN:chain strech direction mode 3")
endfont
%***********************************************************************
beginfont("EN:chain strech direction mode 4")
- fsize:=(60mm,22mm);
+ fsize:=(60mm,20mm);
sw_trimming:=1;
MC(<30,!6,6>'(90,-90,90,-90,90):/!5)
endfont
@@ -574,7 +568,7 @@ beginfont("EN:change atom and group")
endfont
%***********************************************************************
beginfont("EN:methyl*2,isopropyl,tert-butyl")
- fsize:=(60mm,15mm);
+ fsize:=(60mm,12mm);
sw_trimming:=1;
MC(<30,!9`1,?!,!,??,!,2:??,4:/?!,6:/??!,8:/N?!)
endfont
@@ -612,7 +606,7 @@ beginfont("EN:Serial number")
fsize:=(75mm,14mm);
max_blength:=8mm;
sw_numbering:=Atom; numbering_end:=15;
- MC(<30,!14,{2,6--10,14}:/_~bd`0.5)
+ MC(<30,!14,{2,6--10,14}:/_~bd_r`0.5)
endfont
%***********************************************************************
beginfont("EN:Change color")
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
index 02bb3fa0e25..e3f8d908bcb 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
index a40f0331f2d..415adf1bf09 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format manual by Akira Yamaji 2021.06.28
+% Molecular Coding Format manual by Akira Yamaji 2021.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
\usepackage[pdftex]{graphicx}
@@ -228,29 +228,20 @@ tm : triple
\index{wb}%
\index{zf}%
\index{zb}%
+\index{vf}%
+\index{vb}%
\begin{verbatim}
-(Wedge)
+(Wedge,Vector)
wf: wedge forward
wb: wedge backward
zf: hashed(zebra stripe) wedge foward
zb: hashed(zebra stripe) wedge backward
-
-<-30,!~wf,!,!~wb,!,!~zf,!,!~zb
-\end{verbatim}
-\MCFgraph
-\vspace{-3mm}%
-%-----------------------------------------------------------------------------
-%%\subsubsection{Vector}
-\index{vf}%
-\index{vb}%
-\begin{verbatim}
-
-(Vector)
vf:vector forward
vb:vector backward
-<-30,!~vf,!,!~vb
+<-30,
+ !~wf,!,!~wb,!,!~zf,!,!~zb,!,!~vf,!~vb
\end{verbatim}
\MCFgraph
\vspace{-3mm}%
@@ -264,25 +255,14 @@ vb:vector backward
(Dotted,wave)
Bn=bond type : change bond type at Bn
-dt : dotted
-wv : wave
-bd : broad
-bz : broad dotted
+dt : dotted / wv : wave
+bd : broad / bz : broad dotted
<-30,!7,1=dt,3=wv,5=bd,7=bz
\end{verbatim}
\MCFgraph
\vspace{-3mm}%
%-----------------------------------------------------------------------------
-\subsubsection{Change multiple bond type}
-\index{vf}%
-\begin{verbatim}
-{2,4,6}=dr : 2=dr,4=dr,6=dr
-
-<30,!7,{2,4,6}=dr
-\end{verbatim}
-\MCFgraph
-%-----------------------------------------------------------------------------
\subsubsection{Over line}
\index{si\_}%
\index{wf\_}%
@@ -310,6 +290,30 @@ dm_ : duble over line
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
+\subsubsection{Steric ring}
+\index{wf\_r}%
+\index{wb\_r}%
+\index{bd\_r}%
+\begin{verbatim}
+wf_r : wedge foward (half width)
+bd_r : broad (half width, rounded)
+wb_r : wedge backward (half width)
+
+#1.25,-30~wf_r,30~bd_r`1,30~wb_r,
+ 120,O,30,&1,##,6^$90:/!OH`-.5,
+ {1^$-90,2^$90,3^$-90,4^$90}:/OH`-.5,
+\end{verbatim}
+\MCFgraph
+%-----------------------------------------------------------------------------
+\subsubsection{Change multiple bond type}
+\index{vf}%
+\begin{verbatim}
+{2,4,6}=dr : 2=dr,4=dr,6=dr
+
+<30,!7,{2,4,6}=dr
+\end{verbatim}
+\MCFgraph
+%-----------------------------------------------------------------------------
\subsection{Change bond length}
\subsubsection{Chain length}
\index{`}%
@@ -401,9 +405,13 @@ p_ : positive / n_ : negative
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
+\newpage
+%-----------------------------------------------------------------------------
\subsection{Fuse ring}
-\subsubsection{Attached 1 bond}
+%%%\subsubsection{Attached 1 bond}
\begin{verbatim}
+(Attached 1 bond)
+
?6,3=?6 : fuse ?6 at B3
** Bn(n:-999<=n<=4095): bond number
@@ -434,8 +442,10 @@ attached bond length
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
-\subsubsection{Attached 2 bond}
+%%%\subsubsection{Attached 2 bond}
\begin{verbatim}
+(Attached 2 bond)
+
(4,11)=?6[4] : fuse 4/6 ring to B11..B4
(4,11)=?5[3] : fuse 3/5 ring to B11..B4
(4,11)=?4[2] : fuse 2/4 ring to B11..B4
@@ -450,8 +460,10 @@ attached bond length
\begin{verbatim}
\end{verbatim}
%-----------------------------------------------------------------------------
-\subsubsection{Attached 3 bond}
+%%%\subsubsection{Attached 3 bond}
\begin{verbatim}
+(Attached 3 bond)
+
(16,4)=?6[3] : fuse 3/6 ring to B16..B4
(16,4)=?5[2] : fuse 2/5 ring to B16..B4
** ?m[n] (5<=m<=6,n=m-3)
@@ -464,8 +476,10 @@ attached bond length
\begin{verbatim}
\end{verbatim}
%-----------------------------------------------------------------------------
-\subsubsection{Attached 4 bond}
+%%%%\subsubsection{Attached 4 bond}
\begin{verbatim}
+(Attached 4 bond)
+
(21,4)=?6[2] : fuse 2/6 ring to B21..B4
MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2])
@@ -474,7 +488,7 @@ MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2])
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
-\subsubsection{Spiro ring}
+\subsection{Spiro ring}
\begin{verbatim}
@4,?5 : add ?5 at A4
@@ -487,13 +501,17 @@ MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2])
\index{/}%
\index{Ph}%
\begin{verbatim}
-/ : single
-<-30,!,/_,!,/!,!3,/!2,!,/?!,
- !3,/??!,!,/Ph^-30,!
+/ : group start single bond
+
+/_ : methyl
+/! : ethyl
+/!2 : propyl
+/?! : isopropyl
+/??! : tert-butyl
+/Ph : phenyl
-** /_ : methyl /! : ethyl
- /!2 : propyl /?! : isopropyl
- /??! : tert-butyl /Ph : phenyl
+<30,!,/_,!2,/!,!2,/!2,!4,/?!,
+ !4,/??!,!2,/Ph^-60,!
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
@@ -532,7 +550,7 @@ MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2])
\subsubsection{Add group}
\begin{verbatim}
<30,!17,2:/_,4:/!,6:/!2,
-10:/?!,14:/??!,16:/Ph^-60
+ 10:/?!,14:/??!,16:/Ph^-60
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
@@ -552,6 +570,8 @@ MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2])
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
+\newpage
+%-----------------------------------------------------------------------------
\subsection{Chain environment}
\subsubsection{Horizontal,vertical}
\index{hz}%
@@ -600,6 +620,7 @@ MC(<-30,?6,{3,10,15}=?6,(21,4)=?6[2])
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
+\newpage
\subsection{Miscellaneous}
%-----------------------------------------------------------------------------
\subsubsection{Abbreviated parts}
@@ -657,7 +678,7 @@ MC(<30,?6,{4,6}:/iBuOH)
\index{--}%
\begin{verbatim}
6--10 : 6,7,8,9,10
-<30,!14,{2,6--10,14}:/_~bd`0.5
+<30,!14,{2,6--10,14}:/_~bd_r`0.5
\end{verbatim}
\MCFgraph
\newpage
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
index b488e6cb46d..a7641d4bada 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
index d8496b1212c..b536b628605 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2021.06.28
+% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2021.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 4.68
+% ** mcf2graph.mf must be version 4.69
% ** use mcf_data_base.mcf
\documentclass{article}
%------------------------------------------------------------------------------
diff --git a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
index 33fec242fe0..d248fe014a8 100644
--- a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
+++ b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.68 Copyright (c) 2013-2021 Akira Yamaji
+% mcf2graph ver 4.69 Copyright (c) 2013-2021 Akira Yamaji
%
% Permission is hereby granted, free of charge, to any person obtaining a copy of this software
% and associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -37,17 +37,16 @@
% Set to use plain.mp (label,arrow,atom) : mpost -s labeloffset=2 FILENAME
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tracingstats:=1;
-message "* This is mcf2graph ver 4.68 2021.06.28";
+message "* This is mcf2graph ver 4.69 2021.07.18";
%-------------------------------------------------------------------------------------------------
newinternal cntA,cntB,cntM,minX,minY,maxX,maxY,sftX,sftY,com,par,envT,envB,lenT,lineT,angT,rotT,
crR,nA,nB,nC,nD,nE,nF,nS,nL,nR,nU,nP,xpos,ypos,markA,markB,saveA,saveB,bondL;
numeric save_num[],comD[][],parD[][],adrD[][],cntD[],tbl_atom[],tbl_group[][],f_char[],
tbl_atom_wt[],tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],addA[],add_rot[],chargeA[],
- com_group[][],par_group[][],cnt_group[],colorA[],colorB[],sumA[],bondC[],hideH[],
- lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],numS[],wdM[],htM[],wdA[],dxA[],cmm_adr[],
- mc_indent[];
-string save_str[],tbl_atom_str[],strD[],tag[],file_name_output,blank_str,aux_delimiter,
- atomfont,mpfont,s_tag,s_var,cal_FM,cal_MW,cal_MI,
+ com_group[][],par_group[][],cnt_group[],colorA[],colorB[],sumA[],bondC[],hideH[],lineB[],
+ sB[],eB[],angB[],angA[],lenB[],angX[],numS[],wdM[],htM[],wdA[],dxA[],cmm_adr[],mc_indent[];
+string save_str[],tbl_atom_str[],strD[],tag[],file_name_output,blank_str,aux_delimiter,atomfont,
+ mpfont,s_tag,s_var,cal_FM,cal_MW,cal_MI,
inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_MW;
pair save_pair[],posA[],posM[][],msize,mposition,fsize,fmargin,save_mposition,posBs,posBe,dum;
picture mol_stru[],atom_picture,save_picture,temp_picture;
@@ -207,7 +206,8 @@ def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_t
_group_si,_set_adr,_mk_bond,_set_atom,_arrange_ang,_chg_atom,_tmp_rot,_fuse,_size_atom,_numeric,
_jump_at,_set_add,_chg_add,_nop,_mark,_moff,_term,_len_s,_len_e,_len_ss,_len_ee,
_group_s,_group_e,_rest,_charge,_from,_until,
- si,dl,dl_,dr,dr_,db,dm,dm_,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,nb,si_,wf_,wb_,zf_,zb_,wv_,bd_);
+ 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,
+ si_,wf_,wb_,zf_,zb_,wv_,bd_);
%--------------------------------------------------------------------------------------------------
def parameter_list=
sw_numbering,sw_expand,sw_output,sw_ext_all,sw_frame,sw_trimming,sw_arrow_emu,sw_abbreviate,
@@ -384,7 +384,7 @@ def pickup_data_unit(expr t,v)=
if temps=EOF: f_EOF:=1; fi
exitif temps=EOF;
if subc(1,temps)="%":
- ef subc(1,temps)="+":
+ ef (subc(1,temps)="+")and(subc(2,temps)<>"-"):
data_unit_cnt:=data_unit_cnt+1;
if v="*": cond:=1;
ef t="n": if data_unit_cnt=n_var: cond:=1; fi
@@ -410,7 +410,7 @@ def pickup_data_unit(expr t,v)=
temps:=readfrom file_name_input;
if temps=EOF: f_EOF:=1; fi
exitif temps=EOF;
- exitif subc(1,temps)="+";
+ exitif (subc(1,temps)="+")and(subc(2,temps)="-");
endfor
fi
else:
@@ -464,8 +464,8 @@ enddef;
vardef '(text TXT)= parts_cnt:=parts_cnt+1; read_mcf(parts_cnt)(TXT); parts_cnt enddef;
vardef read_id(text TXT)=read_mcf(incr parts_cnt)(|,#crR,TXT,##,(_com,_rest)); parts_cnt enddef;
vardef read_ud(text TXT)=read_mcf(incr parts_cnt)(dum,dum,|,TXT,(_com,_rest)); parts_cnt enddef;
-vardef abs_adress primary n == n-4095 enddef;
-primarydef a from_until b == (_from,a),(_until,b) enddef;
+vardef abs_adress primary n = if n LT 0:: (n+360)-4095 else:: n-4095 fi enddef;
+primarydef a from_until b = (_from,a),(_until,b) 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;
@@ -478,10 +478,10 @@ def jump_atom primary a =
if numeric a:: (_jp_atom,a) elseif pair a:: (_jp_atom,$1),<$0,angle(a)~0`length(a),<$0 fi
enddef;
def chg_length primary n = (_com,_len_s),(_chg_len,n) enddef;
-def group_si secondary n == if known n:: (_group_si,n) else:: _nop fi enddef;
-def group_dm secondary n == /n~dm enddef; def group_wf secondary n == /n~wf enddef;
-def group_zf secondary n == /n~zf enddef; def group_wv secondary n == /n~wv enddef;
-def group_nb secondary n == /n~nb enddef;
+def group_si secondary n = if known n:: (_group_si,n) else:: _nop fi enddef;
+def group_dm secondary n = /n~dm enddef; def group_wf secondary n = /n~wf enddef;
+def group_zf secondary n = /n~zf enddef; def group_wv secondary n = /n~wv enddef;
+def group_nb secondary n = /n~nb enddef;
%-------------------------------------------------------------------------------------------------
def CP = com_par enddef; def CPe = com_par_ex(0) enddef; def CPx = com_par_ex(1) enddef;
%=================================================================================================
@@ -1323,6 +1323,11 @@ def draw_bond(expr NUM)=
draw Le for i=1 upto nB:
..controls(((i-.5)/nB)[sfrt(Le,nA,iif(odd(i),ap,am)),sfrt(Ls,nA,iif(odd(i),ap,am))])
..(i/nB)[Le,Ls] endfor ..Ls Cp(col);
+%
+ ef nL=wf_r: filldraw Ls--sfrt(Le,.35ww,am)--sfrt(Le,.35ww,ap)--cycle wpcs .05ww Cp(col);
+ ef nL=wb_r: filldraw sfrt(Ls,.35ww,am)--Le--sfrt(Ls,.35ww,ap)--cycle wpcs .05ww Cp(col);
+ ef nL=bd_r: draw zA wpcs .65bondgap Cp(col);
+%
ef nL=vf: draw zA Cp(col);draw sfrt(Le,bondgap,ang-150)--Le--sfrt(Le,bondgap,ang+150) Cp(col);
ef nL=vb: draw zA Cp(col);draw sfrt(Ls,bondgap,ang-30)--Ls--sfrt(Ls,bondgap,ang+30) Cp(col);
ef nL=si_: erase draw subpath (0.15,0.85) of zA wpcs 0.8bondgap; draw zA Cp(col);
@@ -2053,3 +2058,24 @@ def proc_err(expr ERR_CODE,ADR)=
fi
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+vardef count_data_unit(expr f)=
+ save temps,file_name,f_mcf,f_error,line_cnt,unit_cnt;
+ string temps,file_name;
+ line_cnt:=unit_cnt:=f_mcf:=f_error:=0;
+ file_name:=f&".mcf";
+ forever:
+ temps:=readfrom file_name;
+ exitif temps=EOF;
+ line_cnt:=line_cnt+1;
+ if subc(1,temps)="%":
+ else:
+ if (subc(1,temps)="+")and(subc(2,temps)<>"-"): if f_mcf=1: f_error:=1; fi f_mcf:=1; fi
+ if (subc(1,temps)="+")and(subc(2,temps)="-"):
+ if f_mcf=0: f_error:=1; else: f_mcf:=0; unit_cnt:=unit_cnt+1; fi
+ fi
+ exitif f_error=1;
+ fi
+ endfor
+ if f_error=1: -line_cnt else: unit_cnt fi
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%