summaryrefslogtreecommitdiff
path: root/graphics/mcf2graph/mcf2graph.mf
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/mcf2graph/mcf2graph.mf')
-rw-r--r--graphics/mcf2graph/mcf2graph.mf155
1 files changed, 83 insertions, 72 deletions
diff --git a/graphics/mcf2graph/mcf2graph.mf b/graphics/mcf2graph/mcf2graph.mf
index 9cf47d31f8..5bbd4639dc 100644
--- a/graphics/mcf2graph/mcf2graph.mf
+++ b/graphics/mcf2graph/mcf2graph.mf
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.65 Copyright (c) 2013-2021 Akira Yamaji
+% mcf2graph ver 4.66 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,7 +37,7 @@
% Set to use plain.mp (label,arrow,atom) : mpost -s labeloffset=2 FILENAME
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tracingstats:=1;
-message "* This is mcf2graph ver 4.65 2021.05.23";
+message "* This is mcf2graph ver 4.66 2021.06.06";
%-------------------------------------------------------------------------------------------------
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;
@@ -53,16 +53,14 @@ pair save_pair[],posA[],posM[][],msize,mposition,fsize,fmargin,save_mposition
picture mol_stru[],atom_picture,save_picture,temp_picture;
path arrow_path,dottedline_path,line_path,arrow_head;
%-------------------------------------------------------------------------------------------------
-char_num:=str_cnt:=tbl_cnt:=proc_end:=mangle:=0;
-sw_numberA:=sw_numberB:=sw_expand:=sw_fframe:=sw_mframe:=sw_aframe:=sw_trimming:=sw_ext_all:=0;
-sw_group_off:=sw_single:=sw_arrow_emu:=sw_output:=0;
-numberA_start:=numberB_start:=1; numberA_end:=numberB_end:=4095;
+char_num:=str_cnt:=tbl_cnt:=proc_end:=mangle:=sw_expand:=sw_frame:=sw_trimming:=sw_ext_all:=0;
+sw_abbreviate:=sw_arrow_emu:=sw_output:=sw_numbering:=0; numbering_start:=1; numbering_end:=4095;
%-------------------------------------------------------------------------------------------------
aux_max:=max_inf_num:=20; aux_delimiter:=";"; blank_str:= " "; dum:=(-4091,0);
for i=1 upto aux_max: tag[i]:=""; endfor
-None:=11; None_Info_t:=12; None_Mcode_t:=13; None_Info_Mcode_t:=14; None_Report_t:=15;
-Info1:=21; Info2:=22; Info_t:=23; Report:=31; Report_t:=32; MOL2k:=41; MOL3k:=42;
-Mfont:=51; Mcode:=61; Mcode_t:=62; Info_Mcode_t:=63;
+Font:=1; Temp:=2; Info:=4; Table:=8; Report:=16; MOL2k:=32; MOL3k:=64; Mfont:=128; Mcode:=256;
+Atom:=8; Bond:=16; Brock:=32; Inverse:=64; Group:=32; Mol:=64;
+Outside:=1; Inside:=2; Bothside:=Outside+Inside;
%-------------------------------------------------------------------------------------------------
a_prn_s:=ASCII("("); a_prn_e:=ASCII(")"); a_brc_s:=ASCII("{"); a_brc_e:=ASCII("}");
a_brk_s:=ASCII("["); a_brk_e:=ASCII("]"); a_cmm:=ASCII(","); a_equ:=ASCII("=");
@@ -108,8 +106,8 @@ if (known green)and(known ahlength):
elseif ahangle=45: outputformat:="eps"; % eps format(.mps) *default
fi
%--default ahlength=4---------------------------------------------------------------------
- if ahlength=1: sw_output:=Info1; % output aux file
- elseif ahlength=2: sw_output:=Info2; % output aux file(fixed mode)
+ if ahlength=1: sw_output:=Info; % output aux file
+ elseif ahlength=2: sw_output:=Info+Table; % output aux file(Table mode)
elseif ahlength=3: sw_output:=Report; % output report
elseif ahlength=4: sw_output:=0; % *default
elseif ahlength=5: sw_output:=MOL2k; % output MOL(V2000)
@@ -179,13 +177,12 @@ if f_MP=1:
fi
%--------------------------------------------------------------------------------------------------
?3:=?20:=Ph:=Ph1:=Ph2:=hz:=0; vt:=1;
-ratio_chain_ring:=0.66; ratio_atom_bond:=0.36; ratio_thickness_bond:=0.015;
-ratio_thickness_char:=0.1; ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15;
-ratio_hashgap_bond:=0.12; ratio_hash_black:=0.4; ratio_wedge_bond:=0.12;
+ratio_chain_ring:=0.66; ratio_atom_bond:=0.36; ratio_thickness_bond:=0.015;
+ratio_thickness_char:=0.1; ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15;
+ratio_hashgap_bond:=0.12; ratio_hash_black:=0.4; ratio_wedge_bond:=0.12;
ratio_atomgap_atom:=0.04;
-offset_thickness:=0.2bp; offset_bond_gap:=0.3bp; offset_hash_gap:=0.1bp;
-offset_atom:=0.8pt; offset_wedge:=0.4bp;
-thickness_fframe:=0.2bp; thickness_mframe:=0.2bp; thickness_aframe:=0.1bp;
+offset_thickness:=0.2bp; offset_bond_gap:=0.3bp; offset_hash_gap:=0.1bp;
+offset_atom:=0.8pt; offset_wedge:=0.4bp; thickness_frame:=0.2bp;
max_blength:=10mm; blength:=mangle:=0; max_labelsize:=20mm; dottedline_gap:=1.5bp;
%--------------------------------------------------------------------------------------------------
fsize:=(30mm,20mm); fmargin:=(0.4mm,0.4mm); msize:=(1,1); mposition:=(0.5,0.5);
@@ -209,17 +206,16 @@ def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_t
_chg_len,_get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,_chg_env,_tmp_env,_set_colorA,_set_colorB,
_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,
+ _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_);
%--------------------------------------------------------------------------------------------------
def parameter_list=
- sw_numberA,sw_numberB,sw_mframe,sw_expand,sw_output,
- sw_single,sw_ext_all,sw_aframe,sw_fframe,sw_group_off,sw_trimming,sw_arrow_emu,
+ sw_numbering,sw_expand,sw_output,sw_ext_all,sw_frame,sw_trimming,sw_arrow_emu,sw_abbreviate,
ratio_atom_bond,ratio_thickness_bond,ratio_char_bond,ratio_chain_ring,ratio_bondgap_bond,
ratio_hash_black,ratio_hashgap_bond,ratio_thickness_char,ratio_wedge_bond,ratio_atomgap_atom,
- lonepairdiam,lonepairspace,blength,offset_atom,offset_wedge,max_blength,offset_hash_gap,
- offset_bond_gap,thickness_fframe,thickness_mframe,thickness_aframe,offset_thickness,
- numberA_start,numberA_end,numberB_start,numberB_end,defaultsize,defaultscale,labeloffset,mangle,
+ lonepairdiam,lonepairspace,offset_atom,offset_wedge,max_blength,offset_hash_gap,
+ offset_bond_gap,thickness_frame,offset_thickness,
+ numbering_start,numbering_end,defaultsize,defaultscale,labeloffset,mangle,blength,
fsize,fmargin,msize,mposition,defaultfont,atomfont,dottedline_gap,
Me,Et,CH3,NH,NH2,NO,NO2,OH,CHO,COOH,CN,SH,!CH3,!NH2,!NO2,!OH,!CHO,!COOH,!CN,!SH
enddef;
@@ -227,7 +223,7 @@ enddef;
def init_par(text t)=
nA:=nB:=nC:=0;
for list=t:
- if numeric list: nA:=nA+1; save_num[nA]:=list;
+ if numeric list: nA:=nA+1; save_num[nA]:=list;
elseif pair list: nB:=nB+1; save_pair[nB]:=list;
elseif string list: nC:=nC+1; save_str[nC]:=list;
fi
@@ -237,7 +233,7 @@ enddef;
def store_par(text t)=
nA:=nB:=nC:=0;
for list=t:
- if numeric list: nA:=nA+1; if save_num[nA]<>list: save_num[nA]:=list; fi
+ if numeric list: nA:=nA+1; if save_num[nA]<>list: save_num[nA]:=list; fi
elseif pair list: nB:=nB+1; if save_pair[nB]<>list: save_pair[nB]:=list; fi
elseif string list: nC:=nC+1; if save_str[nC]<>list: save_str[nC]:=list; fi
fi
@@ -304,7 +300,7 @@ def endfont=
%--------------------------------------------------------------------------------------------
if f_EOF=0:
%--------------------------------------------------------------------------------------------
- if sw_output<=None_Report_t:
+ if (sw_output=0)or(scan_bit(sw_output,Font)):
if cntM>=1:
if sw_ext_all=1: ext_to_font(EXT_ALL); fi
if sw_trimming>=1:
@@ -326,15 +322,15 @@ def endfont=
%----------------------------------------------------------------------------------------
if f_MP=0: beginchar(char_num,font_wd/bp*bp#,font_ht/bp*bp#,0)
else: beginfig(char_num) w:=charwd:=font_wd; h:=charht:=font_ht; chardp:=0;
- if (sw_fframe<>1)and(sw_fframe<>3): draw_corner((0,0),w,h,0.05bp); fi
+ if scan_bit(sw_frame,Outside): else: draw_corner((0,0),w,h,0.05bp); fi
fi
- if (sw_fframe=1)or(sw_fframe=3): draw_frame((0,0),w,h,thickness_fframe); fi
- if (sw_fframe=2)or(sw_fframe=3):
- draw_frame((margin_lr,margin_tb),w-2margin_lr,h-2margin_tb,thickness_fframe);
+ if scan_bit(sw_frame,Outside): draw_frame((0,0),w,h,thickness_frame); fi
+ if scan_bit(sw_frame,Inside):
+ draw_frame((margin_lr,margin_tb),w-2margin_lr,h-2margin_tb,thickness_frame);
fi
for i=1 upto cntM:
addto currentpicture also mol_stru[i] shifted posM[0][i]; mol_stru[i]:=nullpicture;
- if sw_mframe=1: ext(draw_frame(p[i],w[i],h[i],thickness_mframe)) fi
+ if scan_bit(sw_frame,Mol): ext(draw_frame(p[i],w[i],h[i],thickness_frame)) fi
endfor
if f_ext=1: addto currentpicture also mol_stru[0]; mol_stru[0]:=nullpicture; fi
%-----------------------------------------------------------------------------------------
@@ -343,29 +339,29 @@ def endfont=
if f_MP=0: beginchar(char_num,font_wd/bp*bp#,font_ht/bp*bp#,0)
else: beginfig(char_num) w:=charwd:=font_wd; h:=charht:=font_ht;
fi
- draw (0,h)--(0,0)--(w,0)--(w,h)--(0,h)--(w,0) wpcs thickness_fframe;
+ draw (0,h)--(0,0)--(w,0)--(w,h)--(0,h)--(w,0) wpcs thickness_frame;
fi
%-----------------------------------------------------------------------------------------
endchar;
clearit;
%-----------------------------------------------------------------------------------------
- if sw_output=None_Info_t: proc_info_out(3);
- ef sw_output=None_Mcode_t: proc_mc_out(2);
- ef sw_output=None_Info_Mcode_t: proc_info_out(3); proc_mc_out(2);
- ef sw_output=None_Report_t: proc_report_out(2);
+ if sw_output=(Font+Info+Temp): proc_info_out(3);
+ ef sw_output=(Font+Mcode+Temp): proc_mc_out(2);
+ ef sw_output=(Font+Info+Mcode+Temp): proc_info_out(3); proc_mc_out(2);
+ ef sw_output=(Font+Report+Temp): proc_report_out(2);
fi
%-----------------------------------------------------------------------------------------
- ef sw_output=Info1: proc_info_out(1);
- ef sw_output=Info2: proc_info_out(2);
- ef sw_output=Info_t: proc_info_out(3);
- ef sw_output=Mcode: proc_mc_out(1);
- ef sw_output=Mcode_t: proc_mc_out(2);
- ef sw_output=Mfont: proc_mf_out(0);
- ef sw_output=Report: proc_report_out(1);
- ef sw_output=Report_t: proc_report_out(2);
- ef sw_output=MOL2k: proc_mol_out(1);
- ef sw_output=MOL3k: proc_mol_out(2);
- ef sw_output=Info_Mcode_t: proc_info_out(3); proc_mc_out(2);
+ ef sw_output=Info: proc_info_out(1);
+ ef sw_output=(Info+Table): proc_info_out(2);
+ ef sw_output=(Info+Temp): proc_info_out(3);
+ ef sw_output=Mcode: proc_mc_out(1);
+ ef sw_output=(Mcode+Temp): proc_mc_out(2);
+ ef sw_output=Mfont: proc_mf_out(0);
+ ef sw_output=Report: proc_report_out(1);
+ ef sw_output=(Report+Temp): proc_report_out(2);
+ ef sw_output=MOL2k: proc_mol_out(1);
+ ef sw_output=MOL3k: proc_mol_out(2);
+ ef sw_output=(Info+Mcode+Temp): proc_info_out(3); proc_mc_out(2);
fi
%-----------------------------------------------------------------------------------------------
%% message "* parts_cnt (0)="& decimal(parts_cnt) &" "& decimal(parts_usr-parts_usr_start);
@@ -400,11 +396,13 @@ def pickup_data_unit(expr t,v)=
if temps=EOF: f_EOF:=1; fi
exitif temps=EOF;
exitif subc(1,temps)="+";
- mc_row:=mc_row+1;
- n_fw:=scan_char(" ",temps,1,1);
- mc_indent[mc_row]:=n_fw-1;
- mc[mc_row]:=substring (n_fw-1,length(temps)) of temps;
- mc:=mc&mc[mc_row];
+ if subc(1,temps)<>"%":
+ mc_row:=mc_row+1;
+ n_fw:=scan_char(" ",temps,1,1);
+ mc_indent[mc_row]:=n_fw-1;
+ mc[mc_row]:=substring (n_fw-1,length(temps)) of temps;
+ mc:=mc&mc[mc_row];
+ fi
endfor
f_end:=1;
else:
@@ -437,6 +435,8 @@ def pickup_data_unit(expr t,v)=
endgroup;
enddef;
%--------------------------------------------------------------------------------------------------
+vardef scan_bit(expr n,b)= if b=0: false else: odd(floor(n/b)) fi enddef;
+%--------------------------------------------------------------------------------------------------
vardef scan_char(expr c,s,d,n)=
save k,n_s;
n_s:=0;
@@ -465,6 +465,7 @@ vardef '(text TXT)= parts_cnt:=parts_cnt+1; read_mcf(parts_cnt)(TXT); parts_cnt
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;
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;
@@ -513,6 +514,8 @@ def read_mcf(expr n)(text TXT)=
enddef;
%-------------------------------------------------------------------------------------------------
vardef read_number(text TXT)=
+ save --,-+,nA,nB,nC;
+ let -- == from_until;
parts_int:=parts_int+1;
nA:=0;
for list==TXT::
@@ -522,7 +525,13 @@ vardef read_number(text TXT)=
else:: nA:=nA+1; comD[parts_int][nA]:=_numeric; parD[parts_int][nA]:=list;
fi
elseif pair list::
- nA:=nA+1; comD[parts_int][nA]:=xpart(list); parD[parts_int][nA]:=ypart(list);
+ if xpart(list)==_from:: nB:=ypart(list);
+ ef xpart(list)==_until:: nC:=ypart(list);
+ for i==nB upto nC::
+ nA:=nA+1; comD[parts_int][nA]:=_numeric; parD[parts_int][nA]:=i;
+ endfor
+ else:: nA:=nA+1; comD[parts_int][nA]:=xpart(list); parD[parts_int][nA]:=ypart(list);
+ fi
fi
else:: message "unknown command in "AND decimal(parts_int);
fi
@@ -871,7 +880,7 @@ def MC(text TXT)=
string temp_c;
pair temp_p;
%-----------------------------------------------------------------------------------------------
- if (sw_numberA>=1)or(sw_numberB>=1): ratio_atom_bond:=0.25; fi
+ if sw_numbering>=1: ratio_atom_bond:=0.25; fi
if (sw_expand=1)or(sw_output=MOL2k)or(sw_output=MOL3k):
expand_set; crR:=1; else: crR:=-ratio_chain_ring;
fi
@@ -884,7 +893,7 @@ def MC(text TXT)=
%===============================================================================================
read_mcf(0)(TXT,(_com,_term));
proc_bond_atom(0)(1);
- if (cnt_group>0)and(sw_group_off=0): read_group(0)(1); fi
+ if (cnt_group>0)and(not scan_bit(sw_abbreviate,Group)): read_group(0)(1); fi
char_use_check;
%-scaling---------------------------------------------------------------------------------------
if blength>1: blen:=blength; proc_size_setup; proc_skeleton(0); proc_scaling;
@@ -910,7 +919,7 @@ def MC(text TXT)=
if blen>max_blength: blen:=max_blength; proc_size_setup; proc_skeleton(0); proc_scaling; fi
fi
%-draw atom-------------------------------------------------------------------------------------
- if (sw_numberA=0)and(sw_numberB=0): for i=1 upto cntA: draw_atom(i); endfor fi
+ if sw_numbering=0: for i=1 upto cntA: draw_atom(i); endfor fi
%-draw add to atom------------------------------------------------------------------------------
for i=1 upto cntA:
if addA[i]<>0:
@@ -928,12 +937,13 @@ def MC(text TXT)=
for i=1 upto cntB: if lineB[i]<si_ : draw_bond(i); fi endfor
for i=1 upto cntB: if lineB[i]>=si_: draw_bond(i); fi endfor
%-atom numbering--------------------------------------------------------------------------------
- if sw_numberA>=1:
+ if scan_bit(sw_numbering,Atom):
for i=1 upto cntA:
- if (i>=numberA_start)and(i<=numberA_end):
- if sw_numberA=2: nA:=i-numberA_start+1;
- elseif sw_numberA=3: nA:=iif(numberA_end<cntA,numberA_end-i+1,cntA-i+1);
- else: nA:=i;
+ if (i>=numbering_start)and(i<=numbering_end):
+ if scan_bit(sw_numbering,Brock): nA:=i-numbering_start+1;
+ elseif scan_bit(sw_numbering,Inverse):
+ nA:=iif(numbering_end<cntA,numbering_end-i+1,cntA-i+1);
+ else: nA:=i;
fi
erase fill unitsquare xscaled (.8atom_wd*length(decimal(nA)))
yscaled atom_wd shifted (posA[i]-(.5atom_wd,.5atom_wd));
@@ -943,12 +953,13 @@ def MC(text TXT)=
endfor
fi
%-bond numbering--------------------------------------------------------------------------------
- if sw_numberB>=1:
+ if scan_bit(sw_numbering,Bond):
for i=1 upto cntB:
- if (i>=numberB_start)and(i<=numberB_end):
- if sw_numberB=2: nB:=i-numberB_start+1;
- elseif sw_numberB=3: nB:=iif(numberB_end<cntB,numberB_end-i+1,cntB-i+1);
- else: nB:=i;
+ if (i>=numbering_start)and(i<=numbering_end):
+ if scan_bit(sw_numbering,Brock): nB:=i-numbering_start+1;
+ elseif scan_bit(sw_numbering,Inverse):
+ nB:=iif(numbering_end<cntB,numbering_end-i+1,cntB-i+1);
+ else: nB:=i;
fi
erase fill unitsquare yscaled atom_wd xscaled (.8atom_wd*length(decimal(nB)))
shifted (.5[posA[sB[i]],posA[eB[i]]]-(.5atom_wd,.5atom_wd));
@@ -1070,7 +1081,7 @@ enddef;
%-------------------------------------------------------------------------------------------------
def char_use_check=
for i=1 upto 128: f_char[i]:=0; endfor
- if (sw_numberA<>0)or(sw_numberB<>0): for j=a_zero upto a_nine: f_char[j]:=1; endfor
+ if sw_numbering>=1: for j=a_zero upto a_nine: f_char[j]:=1; endfor
else:
for i=1 upto cntA:
if numS[i]<>0:
@@ -1258,7 +1269,7 @@ def draw_atom(expr NUM)=
f_wd:=atom_wd*tbl_char_wd[ASCII(temp_c)];
if dir_str=-1: pos_a:=pos_a-(f_wd,0); fi
draw_char(temp_c,pos_a+pos_c,atom_wd,bond_pen_wd*ratio_char_bond,NUM);
- if sw_aframe=1: draw_frame(pos_a+pos_c,f_wd,atom_wd,thickness_aframe); fi
+ if scan_bit(sw_frame,Atom): draw_frame(pos_a+pos_c,f_wd,atom_wd,thickness_frame); fi
if dir_str=1: pos_a:=pos_a+(f_wd,0); fi
else:
atom_picture:=temp_c infont atomfont;
@@ -1268,7 +1279,7 @@ def draw_atom(expr NUM)=
addto currentpicture also atom_picture scaled (r_ff*(1-2ratio_atomgap_atom))
shifted (pos_a+pos_c+(f_wd*ratio_atomgap_atom,f_ht*ratio_atomgap_atom))
Cp(colorA[NUM]);
- if sw_aframe=1: draw_frame(pos_a+pos_c,f_wd,f_ht,thickness_aframe); fi
+ if scan_bit(sw_frame,Atom): draw_frame(pos_a+pos_c,f_wd,f_ht,thickness_frame); fi
if dir_str=1: pos_a:=pos_a+(f_wd,0); fi
fi
wdA[NUM]:=wdA[NUM]+f_wd;
@@ -1287,7 +1298,7 @@ def draw_bond(expr NUM)=
nL:=lineB[NUM]; ang:=angB[NUM]; nS:=sB[NUM]; nE:=eB[NUM]; col:=colorB[NUM];
zL:=posA[nS]--posA[nE]; ww:=wedge_wd; ap:=ang+90; am:=ang-90;
%-----------------------------------------------------------------------------------------------
- if (numS[nS]=0)and(numS[nE]=0)or(sw_numberA=1)or(sw_numberB=1):
+ if (numS[nS]=0)and(numS[nE]=0)or(sw_numbering>=1):
Ls:=posA[nS]; Le:=posA[nE]; pA:=(.1,.9);
ef numS[nS]=0: Le:=zL intersectionpoint frame_str(nE); Ls:=posA[nS]; pA:=(.15,1);
ef numS[nE]=0: Ls:=zL intersectionpoint frame_str(nS); Le:=posA[nE]; pA:=(0,.85);
@@ -1296,7 +1307,7 @@ def draw_bond(expr NUM)=
zA:=Ls--Le; len:=length(Le-Ls);
%-----------------------------------------------------------------------------------------------
pickup pencircle scaled bond_pen_wd;
- if (nL=si)or(sw_single=1): draw zA Cp(col);
+ if (nL=si)or(scan_bit(sw_abbreviate,Bond)): draw zA Cp(col);
ef nL=dl: draw zA Cp(col); draw sfrt(subpath pA of zA,bondgap,ap) Cp(col);
ef nL=dr: draw zA Cp(col); draw sfrt(subpath pA of zA,bondgap,am) Cp(col);
ef nL=dm: draw sfrt(zA,bondgap/1.75,ap) Cp(col); draw sfrt(zA,bondgap/1.75,am) Cp(col);
@@ -1642,7 +1653,7 @@ def proc_info_out(expr n)=
fi
%--------------------------------------------------------------------------------------
if (char_num=1)and(n=2):
- printf tag[1] for i=2 upto aux_max: exitif tag[i]=""; &aux_delimiter&tag[i] endfor% ;
+ printf tag[1] for i=2 upto aux_max: exitif tag[i]=""; &aux_delimiter&tag[i] endfor ;
fi
%--------------------------------------------------------------------------------------
for i=1 upto aux_max: exitif tag[i]="";