texlive[43218] Master/texmf-dist: mcf2graph (13feb17)

commits+karl at tug.org commits+karl at tug.org
Tue Feb 14 00:21:30 CET 2017


Revision: 43218
          http://tug.org/svn/texlive?view=revision&revision=43218
Author:   karl
Date:     2017-02-14 00:21:29 +0100 (Tue, 14 Feb 2017)
Log Message:
-----------
mcf2graph (13feb17)

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.mf
    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/doc/metapost/mcf2graph/mcf_mplib_exa.tex
    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	2017-02-13 23:21:02 UTC (rev 43217)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2017-02-13 23:21:29 UTC (rev 43218)
@@ -1,6 +1,10 @@
 *******************************************************************************
- Changelog of mcf2graph software package         by Akira Yamaji 2017-01-29
+ Changelog of mcf2graph software package          by Akira Yamaji 2017-02-13
 *******************************************************************************
+[ver. 4.10  / 2017-02-13]
+  -improve function EXT(),ext()
+  -update MCF syntax manual
+
 [ver. 4.09  / 2017-01-29]
   -add new function puts()
      put string in EXT(),ext()

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/README
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2017-02-13 23:21:02 UTC (rev 43217)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2017-02-13 23:21:29 UTC (rev 43218)
@@ -1,7 +1,7 @@
 ********************************************************************************
  mcf2graph  : Convert Molecular Coding Format to graphics with METAFONT/METAPOST
  Author     : Akira Yamaji
- version    : 4.09 2017-01-29
+ version    : 4.10 2017-02-13
  E-mail     : mcf2graph at gmail.com
  Located at : http://www.ctan.org/pkg/mcf2graph
 ********************************************************************************

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf	2017-02-13 23:21:02 UTC (rev 43217)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf	2017-02-13 23:21:29 UTC (rev 43218)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format for mcf_example.tex  by Akira Yamaji  2017.01.29
+% Molecular Coding Format for mcf_example.tex   by Akira Yamaji  2017.02.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf;   %%% it must be version 4.09 or later
+input mcf2graph.mf;   %%% it must be version 4.10 or later
 %-------------------------------------------------------------------------
 font_wd#:=33mm#;
 font_ht#:=24mm#;

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	2017-02-13 23:21:02 UTC (rev 43217)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf	2017-02-13 23:21:29 UTC (rev 43218)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format file for mcf_manual.tex  by Akira.Yamaji 2017.01.29
+% Molecular Coding Format file for mcf_manual.tex  by Akira.Yamaji 2017.02.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf;   %% it must be version 4.09 or later
+input mcf2graph.mf;   %% it must be version 4.10 or later
 %------------------------------------------------------------------------
 sw_auxout:=0;
 sw_mol_frame:=0;
@@ -272,7 +272,7 @@
 %***********************************************************************
 beginfont("EN:change ring length")
   margin_top_bottom:=2mm;
-  font_ht#:=15mm#;
+  font_ht#:=20mm#;
   sw_clip:=1;
   sw_numberB:=1;
   MCf(?6,4\,?6`1.2)
@@ -818,7 +818,7 @@
 endfont
 %***********************************************************************
 beginfont("EN:EXT()")
-  margin_left_right:=margin_top_bottom:=3mm;
+  margin_left_right:=margin_top_bottom:=5mm;
   font_wd#:=70mm#;
   font_ht#:=35mm#;
   bond_len#:=8mm#;
@@ -826,14 +826,18 @@
   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.52h);
-      draw ((4mm,-2mm)--(0,0)--(25mm,0)) shifted (0.3w,0.48h);
-      draw fullcircle scaled 3mm shifted p0;
-      drawdot p1 withpen pencircle scaled 2mm;
-      drawdot p2 withpen pensquare scaled 2mm;
-      use_font(5pt#);
-      puts((0.4w,0.6h))("Oxidation");
-      puts((0.4w,0.35h))("Reduction");
+    draw_vector((0.7w,0.52h),  0,0.2mm,0.4w);
+    draw_vector((0.3w,0.48h),180,0.2mm,0.4w);
+    drawdot p0 withpen pencircle scaled 3pt;
+    drawdot p1 withpen pencircle scaled 3pt;
+    drawdot p2 withpen pencircle scaled 3pt;
+    label.bot("p0",p0);
+    label.bot("p1",p1);
+    label.bot("p2",p2);
+    label("Ox",(0.5w,0.6h));
+    label("Red",(0.5w,0.4h));
+    use_font(6pt#);
+    label("Reaction example",(0.5w,0.8h));
   )
 endfont
 %***********************************************************************
@@ -844,15 +848,15 @@
   sw_solid:=0;
   MCd(1,0.9)(0.1,0.5)(<30,Ph,3:/F,4:/Cl)
   ext(
-    drawdot p0 withpen pencircle scaled 2mm;
-    draw p0--(p0+(wd,0))--(p0+(wd,ht));
+    drawdot p0 withpen pencircle scaled 3pt;
+    drawdot A6 withpen pencircle scaled 3pt;
+    drawdot B3 withpen pencircle scaled 3pt;
+    label.bot("p0",p0);
+    label.ulft("A6",A6);
+    label.rt("B3",B3);
   )
   MCd(1,0.9)(0.9,0.5)(<30,Ph,3:/F,4:/Cl)
-  ext(
-    draw_vector(p6,a6-180,l);
-    drawdot p0 withpen pensquare scaled 2mm;
-    draw p0--(p0+(wd,0))--(p0+(wd,ht));
-  )
+  ext(draw p0--(p0+(wd,0))--(p0+(wd,ht));)
 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	2017-02-13 23:21:02 UTC (rev 43217)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2017-02-13 23:21:29 UTC (rev 43218)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  Molecular Coding Format manual          by  Akira Yamaji 2017.01.29
+%  Molecular Coding Format manual          by  Akira Yamaji 2017.02.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \documentclass[a4paper]{article}
 %%%%\usepackage{graphicx}
@@ -927,27 +927,28 @@
 \newpage
 \subsection{Function EXT()}
 \begin{verbatim}
-(Extra graphic to font)
+(Add extra graphic to font)
   w:  font width
   h:  font height
   wd: font width-margin_left_right*2
   ht: font height-margin_top_bottom*2
+  em: embedded font size
   p0: x=margin_left_right
       y=margin_top_bottom
   n:  molecular number
   p[m]: molecular origin position
-        (1<=m<=molecular count)
 
-(Function)
-  puts(pos)(string):
-    put string at pos
+(Function for EXT(),ext())
+  draw_vector(pos,angle,thickness,length):
+    draw vector at pos
   use_font(wd#):
-    make string font for puts()
-    (font width = wd#)
-  draw_vector(pos,angle,length):
-    draw vector at pos
+    make font for 'label'
+  label:
+    sw_label_mp=0:  ** default
+      use embedded font
+    sw_label_mp=1: 
+      use original metapost 'label'
 
-  %----------------------------------
   beginfont()
   sw_font_frame:=3;
   %----------------------------------
@@ -957,20 +958,19 @@
     (<30,?6,$(3,6)dl,@(2,5)//O)
   %----------------------------------
   EXT(
-   draw ((0,0)--(25mm,0)--(21mm,2mm))
-         shifted (0.3w,0.52h);
-   draw ((4mm,-2mm)--(0,0)--(25mm,0))
-         shifted (0.3w,0.48h)
-   draw fullcircle scaled 3mm
-     shifted p0;
-   drawdot p1
-     withpen pencircle scaled 2mm;
-   drawdot p2
-     withpen pensquare scaled 2mm;
-  %----------------------------------
-   use_font(5pt#);
-   puts((0.4w,0.6h))("Oxidation");
-   puts((0.4w,0.35h))("Reduction");
+   draw_vector((0.7w,0.48h),  0,0.2mm,0.4w):
+   draw_vector((0.3w,0.52h),180,0.2mm,0.4w):
+   drawdot p0 withpen pencircle scaled 3pt;
+   drawdot p1 withpen pencircle scaled 3pt;
+   drawdot p2 withpen pencircle scaled 3pt;
+   %----------------------------------
+   label.bot("p0",p0);
+   label.bot("p1",p1);
+   label.bot("p2",p2);
+   label("Ox",(0.5w,0.6h));
+   label("Red",(0.5w,0.4h));
+   use_font(6pt#);   % **defalt 5pt#
+   label("Reaction example",(0.5w,0.8h));
   )
   %----------------------------------
   endfont
@@ -980,31 +980,33 @@
 \newpage
 \subsection{Function ext()}
 \begin{verbatim}
-(Extra graphic to molecule)
-  wd: molecular width
-  ht: molecular height
-  p0: origin of molecular structure
-  n:  atom number
-  l:  bond length
-  p[m]: atom position of A[m]
-  a[m]: branch angle of A[m]
-        (1<=m<=atom count)
+(Add extra graphic to molecule)
+  wd:      molecular width
+  ht:      molecular height
+  p0:      origin of molecular structure
+  l:       bond length
+  An:      atom number
+  A[m]:    atom position
+  A[m]bra: branch angle of A[m]
+  Bn:      bond number
+  B[m]:    bond position
+  B[m]ang: bond angle
 
   beginfont()
-    %-------------------------------
+  %----------------------------------
   MCd(1,0.9)(0.1,0.5)(<30,Ph,3:/F,4:/Cl)
   ext(
-    drawdot p0 withpen pencircle scaled 2mm;
-    draw p0--(p0+(wd,0))--(p0+(wd,ht));
+    drawdot p0 withpen pencircle scaled 3pt;
+    drawdot A6 withpen pencircle scaled 3pt;
+    drawdot B3 withpen pencircle scaled 3pt;
+    label.bot("p0",p0);
+    label.ulft("A6",A6);
+    label.rt("B3",B3);
   )
-  %-------------------------------
+  %----------------------------------
   MCd(1,0.9)(0.9,0.5)(<30,Ph,3:/F,4:/Cl)
-  ext(
-    draw_vector(p6,a6-180,l);
-    drawdot p0 withpen pensquare scaled 2mm;
-    draw p0--(p0+(wd,0))--(p0+(wd,ht));
-  )
-  %-------------------------------
+  ext(draw p0--(p0+(wd,0))--(p0+(wd,ht));)
+  %----------------------------------
   endfont
 \end{verbatim}
 \MCFstructure
@@ -1036,16 +1038,20 @@
 \begin{verbatim}
 tag3:="cMW"; var3:="calc_weight";
 tag4:="cFM"; var4:="calc_formula";
-%-----------------------------------------
+%--------------------------------
 beginfont()
   MCf(<30,?6,3=d,
        @(2,6)N,@(2,6)/_,@(1,5)//O,
       |,-4=?5,2=dl,@(1,3)N,3:/_)
 endfont
-%-----------------------------------------
+beginfont(......)
+  ...........
+endfont
+..............
 
 %% Output to mcf_man_soc-info.aux %%
 ..... ;C:85;cMW:194.19174;cFM:C8H10N4O2
+.......................................
 
 ** default value
   tag1:="F"; var1:="jobname";
@@ -1063,13 +1069,22 @@
      7:O,@(1,2,5)/_,8:/*_^60,6:/OH,
      8\,|,!12,@(4,8)/*_,12:/_)
 endfont
+beginfont(......)
+  ...........
+endfont
+..............
 
 %% Output to mcf_man_soc-info.aux %%
 F:mcf_man_soc;C:86;EN:Tocopherol;CAS:59-02-9
 ............................................
 
-*F:filename *C:char number EN:molecular name
-CAS:CAS number *:default output
+1* F:filename
+2* C:char number
+3  EN:molecular name
+4  CAS:CAS number
+
+*:default output
+
 \end{verbatim}
 \MCFstructure
 %-----------------------------------------------------------------------------

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

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex	2017-02-13 23:21:02 UTC (rev 43217)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex	2017-02-13 23:21:29 UTC (rev 43218)
@@ -1,10 +1,13 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of  MCF typest with LuaLaTeX(luamplib)     by A.Yamaji   2017.01.29
+% Example of  MCF typest with LuaLaTeX(luamplib)     by A.Yamaji    2017.02.13
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% mcf2graph.mf it must be version 4.09 or later
+%%% mcf2graph.mf it must be version 4.10 or later
 \documentclass{article}
 %------------------------------------------------------------------------------
 \usepackage{luamplib}%
+\usepackage{lmodern}%
+\usepackage[T1]{fontenc}%
+\usepackage{textcomp}%
 \mplibcodeinherit{enable}%
 \mplibverbatim{enable}%
 \everymplib{if unknown Ph1:

Modified: trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
===================================================================
--- trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf	2017-02-13 23:21:02 UTC (rev 43217)
+++ trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf	2017-02-13 23:21:29 UTC (rev 43218)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.09     Copyright (c) 2013-2017   Akira Yamaji
+% mcf2graph ver 4.10     Copyright (c) 2013-2017   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,
@@ -30,7 +30,7 @@
 % Set output report               : mpost -s ahlength=2 FILENAME
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 tracingstats:=1;
-message " This is mcf2graph ver 4.0  2017.1";
+message " This is mcf2graph ver 4.1  2017.2";
 %-------------------------------------------------------------------------------------------------
 newinternal nA,nB,nC,nD,nE,nF,char_num,str_cnt,def_num,def_int,tbl_cnt;
 numeric save_para[],comD[][],parD[][],cntD[],tbl_str_wd[],tbl_atom[],tbl_subst[][],tbl_atom_wt[],
@@ -39,8 +39,8 @@
 picture atom_font[],str_font[],mol_stru[],save_pict;
 %-------------------------------------------------------------------------------------------------
 char_num:=str_cnt:=proc_end:=0;
-sw_numberA:=sw_numberB:=sw_mol_frame:=sw_auxout:=sw_solid:=sw_expand:=sw_font_frame:=0;
-sw_atom_frame:=sw_report:=sw_MOLout:=sw_subst_off:=sw_bond_single:=sw_auxfix:=sw_clip:=0;
+sw_numberA:=sw_numberB:=sw_mol_frame:=sw_auxout:=sw_solid:=sw_expand:=sw_font_frame:=sw_clip:=0;
+sw_atom_frame:=sw_report:=sw_MOLout:=sw_subst_off:=sw_bond_single:=sw_auxfix:=sw_label_mp:=0;
 numberA_start:=numberB_start:=1; numberA_end:=numberB_end:=4095; aux_max:=max_inf_num:=20;
 aux_delimiter:=";";  var1:="jobname";  tag1:="F";  var2:="char_num"; tag2:="C";
 for i=3 upto aux_max: var[i]:=tag[i]:=""; endfor
@@ -63,9 +63,13 @@
   def # = enddef;
   def Cp(expr s) = if known s: if s<>0: withcolor color_list[s] fi fi enddef;
   def define_pixels(text s) = enddef;
+  if sw_label_mp=0: def label = label_ext enddef; fi
 else: f_MP:=0;
-  def Cp(expr s) = enddef; def color = transform enddef;
-  mode_setup; def printf expr s= message s enddef;
+  def Cp(expr s) = enddef;
+  def color = transform enddef;
+  def label = label_ext enddef;
+  def printf expr s= message s enddef;
+  mode_setup;
 fi
 ahangle:=45; ahlength:=4;
 clearit;
@@ -80,7 +84,9 @@
 ratio_zebra_black:=0.4;       ratio_wedge_bond:=0.12;    ratio_atomgap_atom:=0.050;
 offset_thickness#:=0.2pt#;    offset_bond_gap#:=0.3pt#;  offset_zebra_gap#:=0.1pt#;
 offset_atom#:=0.8pt#;         offset_wedge#:=0.4pt#;     thickness_font_frame#:=0.2pt#;
-max_bond_length#:=10mm;    bond_len#:=8mm#;    font_wd#:=30mm#;    font_ht#:=20mm#;
+max_bond_length#:=10mm;       bond_len#:=8mm#;
+font_wd#:=30mm#;              font_ht#:=20mm#;
+labeloffset:=3bp;             default_emb_font#:=5pt#;
 %--------------------------------------------------------------------------------------------------
 def_emb_start:=500;      % 500  => 2499   for embedded definition    (max 2000)
 def_usr_start:=2500;     % 2500 => 2999   for user     definition    (max 500)
@@ -95,10 +101,10 @@
 %--------------------------------------------------------------------------------------------------
 def parameter_list=
   sw_report,sw_numberA,sw_numberB,sw_mol_frame,sw_auxout,sw_solid,sw_expand,sw_MOLout,
-  sw_atom_frame,sw_font_frame,sw_subst_off,sw_bond_single,sw_clip,
+  sw_atom_frame,sw_font_frame,sw_subst_off,sw_bond_single,sw_clip,sw_label_mp,
   margin_left_right,margin_top_bottom,ratio_atom_bond,ratio_thickness_bond,ratio_char_bond,
   ratio_chain_ring,max_bond_width,ratio_bondgap_bond,ratio_zebra_black,ratio_zebragap_bond,
-  ratio_wedge_bond,ratio_atomgap_atom,ratio_bond_width,font_wd#,font_ht#,
+  ratio_wedge_bond,ratio_atomgap_atom,ratio_bond_width,font_wd#,font_ht#,labeloffset,
   bond_len#,offset_atom#,offset_wedge#,max_bond_length#,offset_zebra_gap#,offset_bond_gap#,
   thickness_font_frame#,offset_thickness#,numberA_start,numberA_end,numberB_start,numberB_end
 enddef;
@@ -302,9 +308,13 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 def EXT(text s)=
   begingroup
-  save w,h,wd,ht,n,p; pair p[];
+  save w,h,wd,ht,n,p,em;
+  pair p[];
+  use_font(default_emb_font#);
   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;
+  p0:=(margin_left_right,margin_top_bottom);
+  em:=emb_font_size;
+  n:=cntM;
   for i=1 upto n: p[i]:=posM[1][i]; endfor
   s addto mol_stru[0] also currentpicture; clearit; f_ext:=1;
   endgroup;
@@ -312,18 +322,28 @@
 %--------------------------------------------------------------------------------------------------
 def ext(text s)=
   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
+  save wd,ht,n,l,p,zw,sp,ep,em,A,B;
+  numeric A[]bra,B[]ang;
+  pair p[],A[],B[],sp,ep;
+  use_font(default_emb_font#);
+  wd:=mol_wd;
+  ht:=mol_ht;
+  l:=bond_len;
+  em:=emb_font_size;
+  p0:=(minX,minY);
+  An:=cntA; Bn:=cntB;
+  for i=1 upto An: A[i]:=posA[i]; A[i]bra:=ang_br[i]; endfor
+  for i=1 upto Bn: sp:=posA[sB[i]]; ep:=posA[eB[i]]; B[i]:=0.5[sp,ep]; B[i]ang:=angB[i]; endfor
   s addto mol_stru[cntM] also currentpicture; clearit;
   endgroup;
 enddef;
 %--------------------------------------------------------------------------------------------------
 def use_font(expr WD)=
-  save_pict:=currentpicture;
+  save_pict:=currentpicture; clearit;
   for i=1 upto 128: f_char[i]:=1; endfor
   proc_char_setup(str_font)(WD);
-  str_wd#:=WD;
-  define_pixels(str_wd);
+  emb_font_size#:=WD;
+  define_pixels(emb_font_size);
   currentpicture:=save_pict;
 enddef;
 %--------------------------------------------------------------------------------------------------
@@ -333,11 +353,35 @@
   cp:=PA;
   for i=0 upto length(STR)-1:
     nA:=ASCII(pic_c(i,STR));
-    addto currentpicture also str_font[nA] shifted (cp-(0,str_wd*tbl_char_dp[nA]));
-    cp:=cp+(str_wd*tbl_char_wd[nA],0);
+    addto currentpicture also str_font[nA] shifted (cp-(0,emb_font_size*tbl_char_dp[nA]));
+    cp:=cp+(emb_font_size*tbl_char_wd[nA],0);
   endfor
   endgroup;
 enddef;
+%--------------------------------------------------------------------------------------------------
+vardef label_ext@#(expr STR,POS) =
+  save oft,fx,fy,wds;
+  pair oft,oft.lft,oft.rt,oft.top,oft.bot,oft.ulft,oft.llft,oft.urt,oft.lrt;
+  wds:=0;
+  for i=0 upto length(STR)-1:
+    wds:=wds+emb_font_size*tbl_char_wd[ASCII(pic_c(i,STR))];
+  endfor
+  oft:=     (  0,  0);   fx:=0.5;     fy:=0.5;
+  oft.lft:= ( -1,  0);   fx.lft:=1;   fy.lft:=0.5;
+  oft.rt := (  1,  0);   fx.rt :=0;   fy.rt :=0.5;
+  oft.bot:= (  0, -1);   fx.bot:=0.5; fy.bot:=1;
+  oft.top:= (  0,  1);   fx.top:=0.5; fy.top:=0;
+  oft.ulft:=(-.7, .7);   fx.ulft:=1;  fy.ulft:=0;
+  oft.urt:= ( .7, .7);   fx.urt:=0;   fy.urt:=0;
+  oft.llft:=(-.7,-.7);   fx.llft:=1;  fy.llft:=1;
+  oft.lrt:= ( .7,-.7);   fx.lrt:=0;   fy.lrt:=1;
+  puts(POS+(labeloffset*oft@#)-(wds*fx@#,emb_font_size*fy@#))(STR);
+enddef;
+%-------------------------------------------------------------------------------------------------
+def draw_vector(expr POS,ROT,THICK,LEN)=
+  fill (-2mm,-(.5THICK+.4mm))--(0,0)--(-2mm,.5THICK+.4mm)--(-2mm,.5THICK)--(-LEN,.5THICK)--
+       (-LEN,-.5THICK)--(-2mm,-.5THICK)--cycle rotated ROT shifted POS;
+enddef;
 %=================================================================================================
 def MCf(text s)= MCd(1,1)(.5,.5)(s) enddef;  % MC fill draw
 %-------------------------------------------------------------------------------------------------
@@ -441,11 +485,6 @@
   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)=
-  fill (-2mm,-1mm)--(0,0)--(-2mm,1mm)--(-2mm,.4mm)--(-LEN,.4mm)--
-       (-LEN,-.4mm)--(-2mm,-.4mm)--cycle rotated ROT shifted POS;
-enddef;
-%-------------------------------------------------------------------------------------------------
 def proc_size_setup=
   if (bond_len#*ratio_atom_bond+offset_atom#)<.8bond_len#:
         atom_wd#:=bond_len#*ratio_atom_bond+offset_atom#;
@@ -803,8 +842,9 @@
 %---------------------------------------------------------------
 char_size_set( 1)( 1)(  0)("CGHMNOQ");
 char_size_set(.9)( 1)(  0)("ABDEFIJKLPRSTUVWXYZ-+/><m");
-char_size_set(.7)( 1)(  0)(" ()0123456789nhj=*bdiltf");
-char_size_set(.7)( 1)(.15)("pqg");
+char_size_set(.7)( 1)(  0)(" ()0123456789nhj=*bdtf");
+char_size_set(.5)( 1)(  0)("il");
+char_size_set(.7)( 1)(.24)("pqg");
 char_size_set(.7)(.8)(  0)("acekosuvxzwry");
 char_size_set(.4)( 1)(  0)(".,:;'`");
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -862,7 +902,7 @@
 FD("6")(draw Z19..(fW,.5fW)..(hW,fW)..(hP,.5fW)..cycle; cutdraw (hP,.4aH)--Z06);
 FD("7")(draw (0,.fH)--Z16 hL; draw (aW-1.2hP,aH-fP)--(.4aW,0) vL scaled 1.2);
 FD("8")(draw POh; draw (hP,.75aH)...Z14...(fW,.75aH)...Z20...cycle;);
-FD("9")(draw Z19..(fW,.5fW)..(hW,fW)..(hP,.5fW)..cycle sH .32aH; cutdraw (fW,.6aH)--Z07);
+FD("9")(draw (Z19..(fW,.5fW)..(hW,fW)..(hP,.5fW)..cycle) sH .32aH; cutdraw (fW,.6aH)--Z07);
 FD("A")(draw Z02--Z06--Z05 vL scaled 1.14; draw .33[Z02,Z06]--.33[Z05,Z06]);
 FD("B")(draw Z13--Z14{right}..(.9fH,.75aH)..{left}(.5aW,hH)--Z09--(.5aW,hH){right}..
             (.9fH,.25aH)..{left}Z19--Z03; draw Z02--Z18 vL);
@@ -901,7 +941,7 @@
 FD("d")(draw Z19..Z10..Z11..Z09..cycle; draw Z05--(fW,1.2aH) vL);
 FD("e")(cutdraw SP(0,.92)Z10..Z14..Z09..Z19..cycle; draw Z10--Z09);
 FD("f")(cutdraw (.5aW,0)--(.5aW,.75aH){up}..(.75aW,fH)..{down}(fW,.8aH); draw Z08--Z17 hL);
-FD("g")(draw Z19..Z10..Z11..Z09..cycle sH .3aH; cutdraw Z15--(fW,hP)..(hW,0)..(.1aW,fP));
+FD("g")(draw (Z19..Z10..Z11..Z09..cycle) sH .3aH; cutdraw Z15--(fW,hP)..(hW,0)..(.1aW,fP));
 FD("h")(draw Z02..(hP,.3aH){up}..(hW,.7fH)..{down}(fW,.3aH)..Z05; draw (hP,.3aH)--Z18 vL);
 FD("i")(draw Z07--(hW,.63aH) vL; draw Z14 wpcs 1.4fP);
 FD("j")(draw Z19--(hW,.63aH) vL; draw Z19..(.25aW,-hP)..Z01; draw Z14 wpcs 1.4fP);
@@ -911,9 +951,9 @@
         cutdraw (hW,.3aH){up}..(.7aW,.7aH-hP)..{down}(fW,.3aH)..Z05; draw (hP,.3aH)--(hP,.7aH) vL);
 FD("n")(cutdraw Z02..(hP,.3aH){up}..(hW,.7fH)..{down}(fW,.3aH)..Z05; draw (hP,.3aH)--(hP,.7aH) vL);
 FD("o")(draw Z19..Z10..Z14..Z09..cycle);
-FD("p")(draw Z19..Z10..Z11..Z09..cycle sH .3aH; draw (hP,0)--Z18 vL);
-FD("q")(draw Z19..Z10..Z11..Z09..cycle sH .3aH; draw (fW,0)--Z15 vL);
-FD("r")(cutdraw SP(.35,.72)Z19..Z10..Z14..Z09..cycle sH -fP; draw Z02--Z18 vL);
+FD("p")(draw (Z19..Z10..Z11..Z09..cycle) sH .3aH; draw (hP,0)--Z18 vL);
+FD("q")(draw (Z19..Z10..Z11..Z09..cycle) sH .3aH; draw (fW,0)--Z15 vL);
+FD("r")(cutdraw (SP(.35,.72)Z19..Z10..Z14..Z09..cycle) sH -fP; draw Z02--Z18 vL);
 FD("s")(cutdraw SP(.05,.45)PO; cutdraw SP(.55,.95)PO; draw (fW,.3aH){up}..{up}(hP,.7aH));
 FD("t")(draw Z07--Z06 vL; draw (0,.66aH)--(aW,.66aH) hL);
 FD("u")(cutdraw Z18..(hP,.55aH){down}..Z19..(fW,.55aH){up}..Z15; draw Z15--Z05 vL);



More information about the tex-live-commits mailing list