texlive[42442] Master/texmf-dist: mcf2graph (5nov16)

commits+karl at tug.org commits+karl at tug.org
Sat Nov 5 22:34:04 CET 2016


Revision: 42442
          http://tug.org/svn/texlive?view=revision&revision=42442
Author:   karl
Date:     2016-11-05 22:34:03 +0100 (Sat, 05 Nov 2016)
Log Message:
-----------
mcf2graph (5nov16)

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_example.pdf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
    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_mplib_exa.pdf
    trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2016-11-05 21:33:47 UTC (rev 42441)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2016-11-05 21:34:03 UTC (rev 42442)
@@ -1,6 +1,10 @@
 *******************************************************************************
- Changelog of mcf2graph software package         by Akira Yamaji 2016-11-03
+ Changelog of mcf2graph software package         by Akira Yamaji 2016-11-05
 *******************************************************************************
+[ver. 4.04  / 2016-11-05]
+  -improve clipping mode
+  -update MCF syntax manual
+
 [ver. 4.03  / 2016-11-03]
   -miner update
   -update MCF syntax manual

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/README
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2016-11-05 21:33:47 UTC (rev 42441)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2016-11-05 21:34:03 UTC (rev 42442)
@@ -1,7 +1,7 @@
 ********************************************************************************
  mcf2graph  : Convert Molecular Coding Format to graphics with METAFONT/METAPOST
  Author     : Akira Yamaji
- version    : 4.03 2016-11-03
+ version    : 4.04 2016-11-05
  E-mail     : mcf2graph at gmail.com
  Located at : http://www.ctan.org/pkg/mcf2graph
 ********************************************************************************

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

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf	2016-11-05 21:33:47 UTC (rev 42441)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf	2016-11-05 21:34:03 UTC (rev 42442)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format file for mcf_manual.tex  by Akira.Yamaji 2016.11.03
+% Molecular Coding Format file for mcf_manual.tex  by Akira.Yamaji 2016.11.05
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 input mcf2graph.mf;   %% it must be version 4.03 or later
 %------------------------------------------------------------------------
@@ -691,15 +691,19 @@
 %***********************************************************************
 beginfont("EN:Switwch clipping")
   font_ht#:=15mm#;
+  sw_font_frame:=3;
   sw_mol_frame:=1;
-  MCf(<30,Ph,4:/Cl,3:/F)
+  MCd(1,.7)(.2,.3)(Ph)
+  MCd(1,.7)(.8,.7)(Ph)
 endfont
 %-----------------------------------------------------------------------
 beginfont("EN:Switwch clipping")
   font_ht#:=15mm#;
+  sw_font_frame:=3;
   sw_mol_frame:=1;
   sw_clip:=1;
-  MCf(<30,Ph,4:/Cl,3:/F)
+  MCd(1,.7)(.2,.3)(Ph)
+  MCd(1,.7)(.8,.7)(Ph)
 endfont
 %***********************************************************************
 beginfont("EN:Switwch Solid ratio=0")
@@ -803,14 +807,15 @@
 endfont
 %***********************************************************************
 beginfont("EN:EXT()")
-  sw_solid:=1;
   font_ht#:=26mm#;
   bond_len#:=8mm#;
+  sw_font_frame:=3;
   sw_mol_frame:=1;
-  MCd(1,1)(0,0.5)(<30,Ph,2:/OH,5:/OH)
-  MCd(1,1)(1,0.5)(<30,?6,$(3,6)dl,@(2,5)//O)
-  EXT(draw ((0,0)--(26mm,0)--(22mm,2mm)) shifted (0.3w,0.5h);
-      drawdot p1 withpen pencircle scaled 2mm;
+  MCd(1,0.8)(0.1,0.5)(<30,Ph,2:/OH,5:/OH)
+  MCd(1,0.8)(0.9,0.5)(<30,?6,$(3,6)dl,@(2,5)//O)
+  EXT(draw ((0,0)--(25mm,0)--(21mm,2mm)) shifted (0.3w,0.5h);
+      drawdot p0 withpen pencircle scaled 2mm;
+      drawdot p1 withpen pensquare scaled 2mm;
       drawdot p2 withpen pensquare scaled 2mm;)
 endfont
 %***********************************************************************
@@ -820,7 +825,8 @@
   bond_len#:=10mm#;
   MCf(<30,Ph,4:/Cl,3:/F)
   ext(draw p0--(p0+(wd,0))--(p0+(wd,ht));
-      draw_vector(p6,a6-180,l);)
+      draw_vector(p6,a6-180,l);
+  )
 endfont
 %***********************************************************************
 beginfont("EN:Local setting 1")

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	2016-11-05 21:33:47 UTC (rev 42441)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2016-11-05 21:34:03 UTC (rev 42442)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  Molecular Coding Format manual          by  Akira Yamaji 2016.11.03
+%  Molecular Coding Format manual          by  Akira Yamaji 2016.11.05
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \documentclass[a4paper]{article}
 %%%%\usepackage{graphicx}
@@ -712,13 +712,15 @@
 \subsubsection{Clipping mode}
 \begin{verbatim}
   sw_clip:=0;
-  MCf(<30,Ph,4:/Cl,3:/F)
+  MCd(1,0.7)(0.2,0.3)(Ph)
+  MCd(1,0.7)(0.8,0.7)(Ph)
   ** default: sw_clip=0
 \end{verbatim}
 \MCFstructure
 \begin{verbatim}
   sw_clip:=1;
-  MCf(<30,Ph,4:/Cl,3:/F)
+  MCd(1,0.7)(0.2,0.3)(Ph)
+  MCd(1,0.7)(0.8,0.7)(Ph)
 \end{verbatim}
 \MCFstructure
 %-----------------------------------------------------------------------------
@@ -748,7 +750,7 @@
 \MCFstructure
 %-----------------------------------------
 \begin{verbatim}
-  (solid bond length,clipping)
+  (solid bond length and clip)
   sw_solid:=2;
   sw_clip:=1;
   bond_len#=10mm#
@@ -853,8 +855,7 @@
 \newpage
 \subsection{Function EXT()}
 \begin{verbatim}
-  (Extra graphic to font)
-
+(Extra graphic to font)
   w:  font width
   h:  font height
   wd: font width-margin_left_right*2
@@ -867,13 +868,14 @@
 
   beginfont()
   sw_mol_frame:=1;
-  MCd(1,1)(0,0.5)(<30,Ph,2:/OH,5:/OH)
-  MCd(1,1)(1,0.5)
+  MCd(1,0.8)(0.1,0.5)(<30,Ph,2:/OH,5:/OH)
+  MCd(1,0.8)(0.9,0.5)
     (<30,?6,$(3,6)dl,@(2,5)//O)
   EXT(
-  draw ((0,0)--(26mm,0)--(22mm,2mm))
+  draw ((0,0)--(25mm,0)--(21mm,2mm))
         shifted (0.3w,0.5h);
-  drawdot p1 withpen pencircle scaled 2mm;
+  drawdot p0 withpen pencircle scaled 2mm;
+  drawdot p1 withpen pensquare scaled 2mm;
   drawdot p2 withpen pensquare scaled 2mm;
   )
   endfont
@@ -882,8 +884,7 @@
 %-----------------------------------------------------------------------------
 \subsection{Function ext()}
 \begin{verbatim}
-  (Extra graphic to molecule)
-
+(Extra graphic to molecule)
   wd: molecular width
   ht: molecular height
   p0: origin of molecular structure
@@ -892,8 +893,7 @@
   p[m]: atom position of A[m]
   a[m]: branch angle of A[m]
         (1<=m<=atom count)
-  draw_vector(pos,ang,len) :
-      pos:position ang:angle len:length
+  draw_vector(position,angle,length)
 
   beginfont()
     MCf(<30,Ph,3:/F,4:/Cl)

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

Modified: trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
===================================================================
--- trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf	2016-11-05 21:33:47 UTC (rev 42441)
+++ trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf	2016-11-05 21:34:03 UTC (rev 42442)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.03     Copyright (c) 2013-2016   Akira Yamaji
+% mcf2graph ver 4.04     Copyright (c) 2013-2016   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,
@@ -36,7 +36,7 @@
 numeric save_para[],comD[][],parD[][],cntD[],tbl_str_wd[],tbl_atom[],tbl_subst[][],tbl_atom_wt[],
         tbl_char_wd[],tbl_char_ht[],tbl_char_dp[];
 string  tbl_atom_str[],strD[],var[],tag[],mp_log_name,aux_delimiter;
-picture atom_font[],chem_structure;
+picture atom_font[],mol_stru[];
 %-------------------------------------------------------------------------------------------------
 char_num:=str_cnt:=proc_end:=0;
 sw_numberA:=sw_numberB:=sw_mol_frame:=sw_auxout:=sw_solid:=sw_expand:=sw_font_frame:=0;
@@ -68,7 +68,8 @@
   mode_setup; def printf expr s= message s enddef;
 fi
 ahangle:=45; ahlength:=4;
-clearit;  chem_structure:=currentpicture;
+clearit;
+for i=0 upto 20: mol_stru[i]:=nullpicture; endfor
 %--------------------------------------------------------------------------------------------------
 let DIV= /; let MUL= *; let LT= <; let GT= >; let AND= &; let :: = : ; let == = =;
 %--------------------------------------------------------------------------------------------------
@@ -114,10 +115,10 @@
 def beginfont(text s)=
   store_par(parameter_list);
   begingroup
-  save cntA,cntB,cntM,minX,minY,f_beginchar,numS,
-       posB,posA,posM,lineB,sB,eB,angB,angA,lenB,ang_br,info;
+  save cntA,cntB,cntM,minX,minY,f_beginchar,numS,sftX,sftY,
+       posB,posA,posM,lineB,sB,eB,angB,angA,lenB,ang_br,info,pT;
   numeric lineB[],sB[],eB[],angB[],angA[],lenB[],ang_br[],numS[];
-  pair posB[],posA[],posM[];
+  pair posB[],posA[],posM[][],pT;
   string info[];
   %------------------------------------------------------------------------------------------------
   for i:=1 upto max_inf_num: info[i]:=":"; endfor
@@ -124,15 +125,35 @@
   f_beginchar:=inf_num:=cntM:=0;
   for list=s: info[incr inf_num]:=list; endfor
   char_num:=char_num+1;
+  posM[0][0]:=(0,0);
 enddef;
 %==================================================================================================
 def endfont=
-  if (sw_font_frame=1)or(sw_font_frame=3): EXT(draw_frame((0,0),w,h,thickness_font_frame);) fi
-  if (sw_font_frame=2)or(sw_font_frame=3): EXT(draw_frame(p0,wd,ht,thickness_font_frame);) fi
-  if sw_font_frame=4: EXT(draw_corner(w,h,thickness_font_frame);) fi
+  if sw_clip>0:
+    nA:=4095; nB:=-4095; nC:=4095; nD:=-4095;
+    for i=1 upto cntM:
+      if xpart(posM[1][i])<nA: nA:=xpart(posM[1][i]); fi
+      if xpart(posM[2][i])>nB: nB:=xpart(posM[2][i]); fi
+      if ypart(posM[1][i])<nC: nC:=ypart(posM[1][i]); fi
+      if ypart(posM[2][i])>nD: nD:=ypart(posM[2][i]); fi
+    endfor
+    font_wd#:=font_wd#*((nB-nA+2margin_left_right)/font_wd);
+    font_ht#:=font_ht#*((nD-nC+2margin_top_bottom)/font_ht);
+    for i=1 upto cntM:
+      posM[0][i]:=posM[0][i]+(margin_left_right-nA,margin_top_bottom-nC);
+    endfor
+  fi
+  %-----------------------------------------------------------------------------------------------
+  beginchar(char_num,font_wd#,font_ht#,0)
+  if (sw_font_frame=1)or(sw_font_frame=3): draw_frame((0,0),w,h,thickness_font_frame); fi
+  if (sw_font_frame=2)or(sw_font_frame=3):
+    nA:=w-2margin_left_right; nB:=h-2margin_top_bottom; pT:=(margin_left_right,margin_top_bottom);
+    draw_frame(pT,nA,nB,thickness_font_frame);  fi
+  if sw_font_frame=4: draw_corner(w,h,thickness_font_frame); fi
   if (sw_auxout=1)or(sw_checklist=1)or(sw_MOLout=1): proc_calc_out; fi
-  currentpicture:=chem_structure;
-  chem_structure:=nullpicture;
+  for i=0 upto cntM:
+    addto currentpicture also mol_stru[i] shifted posM[0][i]; mol_stru[i]:=nullpicture;
+  endfor
   endchar;
   clearit;
   endgroup;
@@ -279,9 +300,10 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def EXT(text s)=
   begingroup
-  save wd,ht,n,p; pair p[]; wd:=w-2margin_left_right; ht:=h-2margin_top_bottom;
-  p0:=(margin_left_right,margin_top_bottom);  n:=cntM; for i=1 upto n: p[i]:=posM[i]; endfor
-  s addto chem_structure also currentpicture; clearit;
+  save w,h,wd,ht,n,p; pair p[];
+  w:=font_wd; h:=font_ht; wd:=w-2margin_left_right; ht:=h-2margin_top_bottom;
+  p0:=(margin_left_right,margin_top_bottom);  n:=cntM; for i=1 upto n: p[i]:=posM[1][i]; endfor
+  s addto mol_stru[0] also currentpicture; clearit;
   endgroup;
 enddef;
 %--------------------------------------------------------------------------------------------------
@@ -289,7 +311,7 @@
   begingroup
   save wd,ht,n,a,l,p; numeric a[]; pair p[]; wd:=mol_wd; ht:=mol_ht; l:=bond_len;
   p0:=(minX,minY); n:=cntA; for i=1 upto n: p[i]:=posA[i]; a[i]:=ang_br[i]; endfor
-  s addto chem_structure also currentpicture shifted (sftX,sftY); clearit;
+  s addto mol_stru[cntM] also currentpicture; clearit;
   endgroup;
 enddef;
 %=================================================================================================
@@ -299,7 +321,7 @@
   begingroup
   save com,par,adrA,adrB,f_bra,envT,envB,lenT,lineT,strAT,stkA,stkB,stkL,stkM,cntP,
        bondL,temp_len,temp_cntB,f_end,f_term,rotT,adrS,f_lineT,f_rotT,f_lenT,f_envT,angT,tempB,
-       glu,sftX,sftY,xpos,ypos,str_len,max_x,max_y,par_s,par_e,score_u,hat,f_char,lenB,
+       glu,xpos,ypos,str_len,max_x,max_y,par_s,par_e,score_u,hat,f_char,lenB,
        ps_adr,ps_com,op_com,op_par,op_cnt,crR,colorA,colorB;
   %-----------------------------------------------------------------------------------------------
   save PA,PAs,PP,PG;
@@ -337,12 +359,6 @@
   fi
   proc_char_setup;
   %-----------------------------------------------------------------------------------------------
-  if f_beginchar=0:
-     if sw_clip=1: font_wd#:=font_wd#*((mol_wd+2margin_left_right)/font_wd);
-                   font_ht#:=font_ht#*((mol_ht+2margin_top_bottom)/font_ht);  fi
-     beginchar(char_num,font_wd#,font_ht#,0); f_beginchar:=1;
-  fi
-  %-----------------------------------------------------------------------------------------------
   for i=1 upto cntB: if lineB[i]<si_ : draw_bond(i,sB[i],eB[i],angB[i],lineB[i]); fi endfor
   for i=1 upto cntB: if lineB[i]>=si_: draw_bond(i,sB[i],eB[i],angB[i],lineB[i]); fi endfor
   %-----------------------------------------------------------------------------------------------
@@ -357,11 +373,13 @@
     else:  draw_atom(i,posA[i],ang_br[i],strD[numS[i]],tbl_str_wd[numS[i]]);  fi
   endfor
   %-----------------------------------------------------------------------------------------------
-  sftX:=margin_left_right-minX+(w-mol_wd-2margin_left_right)*FW;
-  sftY:=margin_top_bottom-minY+(h-mol_ht-2margin_top_bottom)*FH;
-  posM[incr cntM]:=(minX+sftX,minY+sftY);
-  if sw_mol_frame=1: ext(draw_frame(p0,wd,ht,0.2pt);) fi
-  addto chem_structure also currentpicture shifted (sftX,sftY);
+  sftX:=margin_left_right-minX+(font_wd-mol_wd-2margin_left_right)*FW;
+  sftY:=margin_top_bottom-minY+(font_ht-mol_ht-2margin_top_bottom)*FH;
+  posM[0][incr cntM]:=(sftX,sftY);
+  posM[1][cntM]:=(minX+sftX,minY+sftY);
+  posM[2][cntM]:=(max_x+sftX,max_y+sftY);
+  if sw_mol_frame=1: draw_frame((minX,minY),mol_wd,mol_ht,thickness_font_frame) fi
+  addto mol_stru[cntM] also currentpicture;
   clearit;
   endgroup;
 enddef;
@@ -387,12 +405,11 @@
 enddef;
 %-------------------------------------------------------------------------------------------------
 def draw_frame(expr PS,LX,LY,PN)=
-  draw ((PN/2,PN/2)--(LX-PN/2,PN/2)--(LX-PN/2,LY-PN/2)--(PN/2,LY-PN/2)--cycle) shifted PS wpss PN;
+  draw ((0,0)--(LX,0)--(LX,LY)--(0,LY)--cycle) shifted PS wpss PN;
 enddef;
 %-------------------------------------------------------------------------------------------------
 def draw_corner(expr LX,LY,PN)=
-  drawdot (PN/2,PN/2) wpss PN;       drawdot (LX-PN/2,PN/2) wpss PN;
-  drawdot (LX-PN/2,LY-PN/2) wpss PN; drawdot (PN/2,LY-PN/2) wpss PN;
+  drawdot(0,0) wpss PN; drawdot(LX,0) wpss PN; drawdot(LX,LY) wpss PN; drawdot(0,LY) wpss PN;
 enddef;
 %-------------------------------------------------------------------------------------------------
 def draw_vector(expr POS,ROT,LEN)=



More information about the tex-live-commits mailing list