From 20b79660fb560eb1dd8e80d44837e0d4c17ca03c Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 12 Oct 2021 03:00:58 +0000 Subject: CTAN sync 202110120300 --- graphics/mcf2graph/mcf2graph.mf | 61 +++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 30 deletions(-) (limited to 'graphics/mcf2graph/mcf2graph.mf') diff --git a/graphics/mcf2graph/mcf2graph.mf b/graphics/mcf2graph/mcf2graph.mf index 2dfefbba64..c6cedf1637 100644 --- a/graphics/mcf2graph/mcf2graph.mf +++ b/graphics/mcf2graph/mcf2graph.mf @@ -38,7 +38,7 @@ % Set to use plain.mp (label,arrow,atom) : mpost -s labeloffset=2 FILENAME %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% tracingstats:=1; -message "* This is mcf2graph ver 4.72 2021.09.20"; +message "* This is mcf2graph ver 4.73 2021.10.10"; %------------------------------------------------------------------------------------------------- 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; @@ -64,11 +64,11 @@ 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("="); -a_ast:=ASCII("*"); a_sls:=ASCII("/"); a_gtn:=ASCII("<"); a_ltn:=ASCII(">"); a_and:=ASCII("&"); -a_dol:=ASCII("$"); a_hsh:=ASCII("#"); a_hat:=ASCII("^"); a_tld:=ASCII("~"); a_bqt:=ASCII("`"); +a_brk_s:=ASCII("["); a_brk_e:=ASCII("]"); a_cmm:=ASCII(","); a_equ:=ASCII("="); +a_ast:=ASCII("*"); a_sls:=ASCII("/"); a_gtn:=ASCII("<"); a_ltn:=ASCII(">"); a_and:=ASCII("&"); +a_dol:=ASCII("$"); a_hsh:=ASCII("#"); a_hat:=ASCII("^"); a_tld:=ASCII("~"); a_bqt:=ASCII("`"); a_cln:=ASCII(":"); a_amk:=ASCII("@"); a_zero:=ASCII("0"); a_nine:=ASCII("9"); a_qut:=ASCII("'"); -a_bar:=ASCII("|"); +a_bar:=ASCII("|"); a_plus:=ASCII("+"); a_minus:=ASCII("-"); %-------------------------------------------------------------------------------------------------- let DIV= /; let MUL= *; let LT= <; let GT= >; let AND= &; let :: = : ; let == = =; let ef=elseif; def ]]]=] ] ] enddef; @@ -258,7 +258,7 @@ enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def beginfont(text s)= begingroup - save ',f_beginchar,f_ext,blen,ext,add,ang_br,fw_n,bw_n,at_colon,temp_tag, + save ',f_beginchar,f_ext,blen,ext,add,ang_br,fw_n,bw_n,at_colon,temp_tag,info_cnt, mc,info,file_name_input,bond_cnt,warning_cnt,hideH_cnt,bondC,filter_s; string info[],mc[],mc,file_name_input,temp_tag,filter_s; %------------------------------------------------------------------------------------------------ @@ -275,7 +275,7 @@ def beginfont(text s)= %------------------------------------------------------------------------------------------------ char_num:=char_num+1; store_par(parameter_list); - f_ext:=cntM:=mc_row:=inf_num:=f_EOF:=0; + f_ext:=cntM:=mc_row:=info_cnt:=f_EOF:=0; %------------------------------------------------------------------------------------------------ for list=s: at_colon:=scan_char(":",list,0,1); @@ -287,6 +287,7 @@ def beginfont(text s)= mc[mc_row]:=substring (fw_n-1,bw_n) of list; mc:=mc&mc[mc_row]; ef at_colon>=1: + info_cnt:=info_cnt+1; info[info_cnt]:=list; tag_s:=substring (0,at_colon-1) of list; var_s:=substring (at_colon,length(list)) of list; if tag_s="f": @@ -386,7 +387,7 @@ enddef; %------------------------------------------------------------------------------------------------- def pickup_data_unit(expr t,v,f)= begingroup - save unit_cnt,f_end,semicol_cnt,f_match,var_n,info_s,tag_a,var_a; + save unit_cnt,f_end,semicol_cnt,f_match,var_n,tag_a,var_a,info_s; string tag_a[],var_a[],info_s; f_end:=unit_cnt:=semicol_cnt:=f_match:=inf_num:=0; if t="n": var_n:=scantokens(v); fi @@ -456,7 +457,7 @@ vardef scan_char(expr c,s,d,n)= fi n_s enddef; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def set_def_MC= save /,//,/*,*/,**,*/*,~,^,',`,<,>,:,=,\,\\,*\,\*,*\*,@,@$,$,&,&$,#,##,{,},|,||,_,inside_def_MC; inside_def_MC:=1; @@ -577,7 +578,7 @@ def fuse_ring_size(expr a,b,c) = elseif b==8:: CP(_mk_bond,45-(c-8)) for i==1 upto 5:: CP(_mk_bond,45+((c-8) DIV 3)) endfor fi CP(_com,_len_e) if a<=0:: CP(_cyc_eB,a-b+2) else:: CP(_cyc_eB,a) fi enddef; -%================================================================================================== +%================================================================================================= vardef change_bond(expr a,b) = save nCP; if known b:: @@ -623,8 +624,8 @@ vardef change_atom(expr a,b)= CP(_tmp_line,dm) CP(_tmp_rot,-35) CPx(a)(_group_si,O) CP(_com,_group_e) ef b==SO:: CPe(a)(_chg_atom,S) CP(_com,_group_s) CP(_tmp_line,dm) CPx(a)(_group_si,O) CP(_com,_group_e) - ef b==n_:: CP(_com,_group_s) CP(_set_add,ASCII("-")) CP(_chg_add,a) CP(_com,_group_e) - ef b==p_:: CP(_com,_group_s) CP(_set_add,ASCII("+")) CP(_chg_add,a) CP(_com,_group_e) + ef b==n_:: CP(_com,_group_s) CP(_set_add,a_minus) CP(_chg_add,a) CP(_com,_group_e) + ef b==p_:: CP(_com,_group_s) CP(_set_add,a_plus) CP(_chg_add,a) CP(_com,_group_e) fi ef pair b:: CP(_com,_group_s) CPx(a)(xpart(b),ypart(b)) CP(_com,_group_e) ef color b:: color_list[incr cntC]:=b; CPe(a)(_set_colorA,cntC) @@ -645,7 +646,7 @@ def com_par_ex(expr f)(expr c)(expr a,b)= else:: com_par(_set_adr,c) com_par(a,b) fi enddef; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def puts(expr POS)(expr STR)= begingroup save temp_c,temp_p; @@ -669,7 +670,7 @@ def puts(expr POS)(expr STR)= fi endgroup enddef; -%================================================================================================== +%================================================================================================= def ext_setup= pickup pencircle scaled ext_defaultline; dotlabeldiam:=3bp; @@ -689,7 +690,7 @@ def ext_setup= def drawdblarrow = drawdblarrow_emu enddef; fi enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- def add_to_molecule(text TXT)= begingroup save w,h,n,l,p,am,aw,A,B,plus,minus,lonepair,__,**,=>,<<,/*; @@ -726,7 +727,7 @@ def add_to_molecule(text TXT)= TXT addto mol_stru[cntM] also currentpicture; clearit; endgroup; enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- def ext_to_font(text TXT)= begingroup save w,h,An,Bn,wd,ht,n,p,am,aw,__,**,<<,=>,/*; @@ -751,14 +752,14 @@ def ext_to_font(text TXT)= TXT addto mol_stru[0] also currentpicture; clearit; f_ext:=1; endgroup; enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- vardef image_emu(text TXT) = save_picture:=currentpicture; currentpicture:=nullpicture; TXT; temp_picture:=currentpicture; currentpicture:=save_picture; temp_picture enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- vardef scan_picture(expr PIC,SD)= save iw,erase_h,erase_v; path erase_h,erase_v; @@ -789,12 +790,12 @@ vardef scan_picture(expr PIC,SD)= currentpicture:=temp_picture; nA enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- vardef llcorner_emu(expr b)= (scan_picture(b,3),scan_picture(b,1)) enddef; vardef lrcorner_emu(expr b)= (scan_picture(b,4),scan_picture(b,1)) enddef; vardef urcorner_emu(expr b)= (scan_picture(b,4),scan_picture(b,2)) enddef; vardef ulcorner_emu(expr b)= (scan_picture(b,3),scan_picture(b,2)) enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- vardef circled_plus_add= nA:=circlediam; nB:=circlepen; image(draw fullcircle scaled nA wpcs nB; @@ -809,7 +810,7 @@ enddef; vardef lone_pair_add expr ANG= image(draw (0,0) wpcs lonepairdiam; draw ((0,lonepairspace) rotated ANG) wpcs lonepairdiam;) enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- vardef label_emu@#(expr OBJ,POS) = %% modified 'thelabel@#(expr s,z)' of plain.mp save oft,fx,fy,wd_s,wd_c,pA,pB,pC,pD,sC; pair oft,oft.lft,oft.rt,oft.top,oft.bot,oft.ulft,oft.llft,oft.urt,oft.lrt,pA,pB,pC,pD; @@ -849,7 +850,7 @@ vardef label_emu@#(expr OBJ,POS) = %% modified 'thelabel@#(expr s,z)' of plain.m enddef; %------------------------------------------------------------------------------------------------- vardef dotlabel_emu@#(expr OBJ,POS)= label_emu@#(OBJ,POS); draw POS wpcs dotlabeldiam; enddef; -%================================================================================================== +%================================================================================================= def drawarrow_emu expr PATH = arrow_path:=PATH; draw_arrow enddef; %------------------------------------------------------------------------------------------------- def draw_arrow text t = %% modified 'drawarrow' of plain.mp @@ -866,7 +867,7 @@ def draw_dblarrow text t = shifted point infinity of arrow_path t; draw arrow_path t enddef; -%================================================================================================== +%================================================================================================= arrow_head:=(0,0)--(ahlength,-(sind 0.5ahangle)*ahlength)-- (ahlength, (sind 0.5ahangle)*ahlength)--cycle; %------------------------------------------------------------------------------------------------- @@ -1167,12 +1168,12 @@ def add_atom(expr n)= else: f_bra:=0; fi if n=0: eB[cntB]:=cntA+1; f_term:=0; else: eB[cntB]:=n; f_term:=1; fi enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- def check_adrA(expr n)= if (n>iif(f_term=0,cntA+1,cntA))or(n<=0): errmessage("cntA=[ "&decimal(n)&" ]"); fi enddef; def check_adrB(expr n)= if (n>cntB)or(n<=0): errmessage("cntB=[ "&decimal(n)&" ]"); fi enddef; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def proc_skeleton(expr a)= markA:=markB:=cntA:=cntB:=f_bra:=rotT:=f_term:=0; envT:=envB:=f_lineT:=f_rotT:=f_lenT:=f_envT:=0; lineT:=si; angT:=mangle; @@ -1841,7 +1842,7 @@ enddef; def proc_mf_out(expr f)= message "["&decimal(char_num)&"]:"&inf_EN; file_name_output:=jobname&"-mf.aux"; - printf "beginfont()"; + printf "beginfont("&ditto&"NO:"&decimal(char_num)&ditto&","&ditto&"EN:"&inf_EN&ditto&")"; printf "MC("; for i=1 upto mc_row: printf mc[i]; endfor printf ")"; @@ -1935,7 +1936,7 @@ for i==2 upto 20: ![i]:='((_com,_len_ss),(_get_len,_tmp_len),! for j==2 upto i::,! endfor ,(_com,_len_ee)); endfor Me:='(); Et:='(!); iPr:=?!:='(/_,!); tBu:=??!:='(/_,/_^60,60); !?!:='(!,?!); !??!:='(!,??!); -n_:='((_set_add,ASCII("-"))); p_:='((_set_add,ASCII("+"))); +n_:='((_set_add,a_minus)); p_:='((_set_add,a_plus)); zero_wf:='(0~wf); zero_zf:='(0~zf); zero_dm:='(0~dm); zero_wv:='(0~wv); %------------------------------------------------------------------------------------------------- NH:='(N,/H~nl); N!:='(N,/_); N!2:='(N,/!); SO:='(S,//O); SOO:='(S,//O^-35,//O^35); @@ -2106,10 +2107,10 @@ def query(text s)= numeric unit_row_cnt[],order[],order_tbl[],filter_sign[],filter_p[]; unit_row:=f_mcf:=mc_row:=line_cnt:=info_cnt:=par_cnt:=key_cnt:=filter_cnt:=0; unit_cnt:=1; - %------------------------------------------------------------------------------------------------ + %----------------------------------------------------------------------------------------------- file_name_input:=default_data_file; file_name_output:=default_temp_file; - %------------------------------------------------------------------------------------------------ + %----------------------------------------------------------------------------------------------- for list=s: at_colon:=scan_char(":",list,0,1); at_equal:=scan_char("=",list,0,1); @@ -2267,7 +2268,7 @@ vardef is_num(expr s)= endfor numeric_n enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- vardef count_semicol(expr s)= save nS; nS:=at_semicol[0]:=0; -- cgit v1.2.3