From 62983b495594d9c9f3d40e9979fc84751b962ab2 Mon Sep 17 00:00:00 2001 From: Marius Date: Thu, 29 Nov 2012 20:00:21 +0200 Subject: beta 2012.11.29 18:40 --- metapost/context/base/mp-chem.mpiv | 192 +++++++-------------- scripts/context/ruby/base/logger.rb | 3 +- tex/context/base/chem-str.lua | 31 +++- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4105 -> 4105 bytes tex/context/base/context-version.png | Bin 40633 -> 40620 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/status-files.pdf | Bin 24420 -> 24440 bytes tex/context/base/status-lua.pdf | Bin 199489 -> 199490 bytes tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 12 files changed, 91 insertions(+), 145 deletions(-) diff --git a/metapost/context/base/mp-chem.mpiv b/metapost/context/base/mp-chem.mpiv index 03dd63ae8..e2412d2f7 100644 --- a/metapost/context/base/mp-chem.mpiv +++ b/metapost/context/base/mp-chem.mpiv @@ -23,7 +23,7 @@ numeric chem_text_min, chem_text_max, chem_rotation, chem_adjacent, chem_stack_n, chem_substituent, chem_substituent.lft, chem_substituent.rt, - chem_setting_scale, chem_setting_offset, chem_text_offset, chem_picture_offset, + chem_setting_offset, chem_text_offset, chem_picture_offset, chem_center_offset, chem_dbl_offset, chem_bb_angle, chem_axis_rulethickness, chem_setting_l, chem_setting_r, chem_setting_t, chem_setting_b, @@ -49,11 +49,10 @@ chem_setting_axis := false ; chem_axis_color := (173/255,216/255,230/255) ; % lightblue chem_axis_rulethickness := 1pt ; chem_emwidth := 10pt ; % EmWidth or \the\emwidth does not work... -chem_setting_scale := 3 ; -chem_b_length := chem_setting_scale * chem_emwidth ; +chem_b_length := 3 chem_emwidth ; chem_text_offset := .25chem_emwidth ; % ? -chem_center_offset := .5chem_emwidth ; -chem_picture_offset := chem_emwidth ; +chem_center_offset := .5 chem_emwidth ; +chem_picture_offset := chem_emwidth ; chem_dbl_offset := .05 ; chem_bb_angle := angle(1,2chem_dbl_offset) ; chem_text_min := 0.75 ; @@ -83,21 +82,21 @@ chem_reset ; % How do declare in chem_init_some? boolean - chem_star.carbon, chem_front.carbon, - chem_star.alkyl, chem_front.alkyl, - chem_star.newmanstagger, chem_front.newmanstagger, - chem_star.newmaneclipsed,chem_front.newmaneclipsed, - chem_star.one, chem_front.one, - chem_star.three, chem_front.three, - chem_star.four, chem_front.four, - chem_star.five, chem_front.five, - chem_star.six, chem_front.six, - chem_star.seven, chem_front.seven, - chem_star.eight, chem_front.eight, - chem_star.fivefront, chem_front.fivefront, - chem_star.sixfront, chem_front.sixfront, - chem_star.chair, chem_front.chair, - chem_star.boat, chem_front.boat ; + chem_star.carbon, chem_front.carbon, chem_stacked.carbon, + chem_star.alkyl, chem_front.alkyl, chem_stacked.alkyl, + chem_star.newmanstagger, chem_front.newmanstagger, chem_stacked.newmanstagger, + chem_star.newmaneclipsed,chem_front.newmaneclipsed, chem_stacked.newmaneclipsed, + chem_star.one, chem_front.one, chem_stacked.one, + chem_star.three, chem_front.three, chem_stacked.three, + chem_star.four, chem_front.four, chem_stacked.four, + chem_star.five, chem_front.five, chem_stacked.five, + chem_star.six, chem_front.six, chem_stacked.six, + chem_star.seven, chem_front.seven, chem_stacked.seven, + chem_star.eight, chem_front.eight, chem_stacked.eight, + chem_star.fivefront, chem_front.fivefront, chem_stacked.fivefront, + chem_star.sixfront, chem_front.sixfront, chem_stacked.sixfront, + chem_star.chair, chem_front.chair, chem_stacked.chair, + chem_star.boat, chem_front.boat, chem_stacked.boat ; path chem_b_path.carbon, chem_c_path.carbon, @@ -138,7 +137,10 @@ vardef chem_init_some (suffix $) (expr e) = chem_front.$ := false ; fi if not known chem_star.$ : - chem_star.$ := false ; + chem_star.$ := false ; + fi + if not known chem_stacked.$: + chem_stacked.$ := false ; fi save n ; numeric n ; if path(e) : @@ -182,7 +184,7 @@ vardef chem_init_some (suffix $) (expr e) = endfor cycle fi ; - fi ; + fi if not chem_star.$ : chem_r_path.lft.$ := for i=0 upto n-1 : @@ -208,7 +210,7 @@ vardef chem_init_some (suffix $) (expr e) = fi -- endfor cycle ; - fi ; + fi enddef ; % The following is used only once: @@ -244,8 +246,8 @@ def chem_init_all = chem_star.one := true ; chem_star.carbon := true ; chem_star.alkyl := true ; - chem_star.newmanstagger := true ; - chem_star.newmaneclipsed := true ; + chem_star.newmanstagger := true ; chem_stacked.newmanstagger := true ; + chem_star.newmaneclipsed := true ; chem_stacked.newmaneclipsed := true ; chem_init_some(one,8) ; chem_init_some(carbon, dir(0)--dir(360-a)--dir(180-.5a+b)--dir(180-.5a)) ; chem_init_some(alkyl, dir(0)--dir(360-a)--dir(360-a-90)--dir(90)) ; @@ -266,7 +268,7 @@ def chem_init_all = chem_r_path.$.chair := for i=0 upto 5 : point i of $ shifted point i of chem_b_path.chair -- endfor cycle ; - endfor ; + endfor % boat chem_init_some(boat, for i=1 upto 4 : point i-1 of chem_b_path.sixfront -- endfor @@ -279,8 +281,8 @@ def chem_init_all = chem_r_path.$.boat := for i=0 upto 5 : point i of $ shifted point i of chem_b_path.boat -- endfor cycle ; - endfor ; - endgroup ; + endfor + endgroup enddef ; chem_init_all ; % WHY does this not work unless defined and then called? @@ -290,11 +292,9 @@ chem_init_all ; % WHY does this not work unless defined and then called? % unless of course the error be too harmful... % \startchemical - vardef chem_start_structure(expr i, l, r, t, b, scale, fitwidth, fitheight, emwidth, offset, axis, rulethickness, axiscolor) = chem_emwidth := emwidth ; % EmWidth or \the\emwidth does not work... - chem_setting_scale := if scale<>0: scale else: 3 fi ; - chem_b_length := chem_setting_scale * chem_emwidth ; + chem_b_length := if scale<>0: scale* fi 3chem_emwidth ; chem_setting_fitwidth := if boolean fitwidth : fitwidth else : (fitwidth<>0) fi ; chem_setting_fitheight := if boolean fitheight : fitheight else : (fithheight<>0) fi ; chem_setting_l := l * chem_b_length ; @@ -480,13 +480,6 @@ vardef chem_drawarrow (suffix $) (expr p, r, c) (text t) = t ; enddef ; -def chem_check (suffix $) = - if (chem_adjacent<>0) or (chem_substituent<>0) or - (chem_substituent.lft<>0) or (chem_substituent.rt<>0) : - chem_set($) ; % if not explicitly called... - fi -enddef ; - vardef chem_set (suffix $) = forsuffixes P = scantokens chem_previous : @@ -624,7 +617,6 @@ vardef chem_b (suffix $) (expr f, t, r, c) = % B if chem_star.$ : chem_r($,f,t,r,c) ; else : - chem_check($) ; chem_draw($, subpath (f-1,t) of chem_b_path.$, r,c,) ; @@ -635,7 +627,6 @@ vardef chem_sb@# (suffix $) (expr f, t, r, c) = % SB if chem_star.$ : chem_sr@#($,f,t,r,c) ; else : - chem_check($) ; for i=f upto t : chem_draw($, subpath (chem_sb_pair@# shifted (i-1,i-1)) of chem_b_path.$, @@ -664,20 +655,17 @@ vardef chem_r_fragment@# (suffix $) (expr i) = enddef ; vardef chem_r (suffix $) (expr f, t, r, c) = % R - chem_check($) ; - save nm ; boolean nm ; nm := ((substring (0,6) of (str $))="newman") ; - save im, l ; numeric im, l ; l := length chem_b_path.$ ; + save l, h ; numeric l, h ; l := length chem_b_path.$ ; + h := if chem_stacked.$ : floor(.5l) else : l fi ; for i=f upto t : - im := if i<0 : ((i+1) mod l) + 6 else : ((i-1) mod l) + 1 fi ; chem_draw($, - if (nm and (im>3)) : subpath (.5,1) of fi + if i>h : subpath (.5,1) of fi chem_r_fragment($,i), r,c,) ; endfor enddef ; vardef chem_er (suffix $) (expr f, t, r, c) = % ER - chem_check($) ; if not chem_front.$ : for i=f upto t : save p ; path p ; @@ -693,7 +681,6 @@ vardef chem_er (suffix $) (expr f, t, r, c) = % ER enddef ; vardef chem_lr (suffix $) (expr f, t, r, c) = % LR - chem_check($) ; if not chem_star.$ : for i=f upto t : chem_draw($, @@ -704,7 +691,6 @@ vardef chem_lr (suffix $) (expr f, t, r, c) = % LR enddef ; vardef chem_rr (suffix $) (expr f, t, r, c) = % RR - chem_check($) ; if not chem_star.$ : for i=f upto t : chem_draw($, @@ -715,7 +701,6 @@ vardef chem_rr (suffix $) (expr f, t, r, c) = % RR enddef ; vardef chem_eb (suffix $) (expr f, t, r, c) = % EB - chem_check($) ; if not chem_star.$ : for i=f upto t : chem_draw($, @@ -727,7 +712,6 @@ vardef chem_eb (suffix $) (expr f, t, r, c) = % EB enddef ; vardef chem_ad (suffix $) (expr f, t, r, c) = % AD - chem_check($) ; if not chem_star.$ : for i=f upto t : chem_drawarrow($, @@ -739,7 +723,6 @@ vardef chem_ad (suffix $) (expr f, t, r, c) = % AD enddef ; vardef chem_au (suffix $) (expr f, t, r, c) = % AU - chem_check($) ; if not chem_star.$ : for i=f upto t : chem_drawarrow($, @@ -752,7 +735,6 @@ vardef chem_au (suffix $) (expr f, t, r, c) = % AU enddef ; vardef chem_es (suffix $) (expr f, t, r, c) = % ES - chem_check($) ; if chem_star.$ : for i=f upto t : chem_draw($, @@ -763,7 +745,6 @@ vardef chem_es (suffix $) (expr f, t, r, c) = % ES enddef ; vardef chem_ed (suffix $) (expr f, t, r, c) = % ED - chem_check($) ; for i=f upto t : save p ; path p ; if chem_star.$ : @@ -778,13 +759,12 @@ vardef chem_ed (suffix $) (expr f, t, r, c) = % ED chem_draw($, (subpath (chem_sb_pair shifted (i-1,i-1)) of chem_b_path.$) paralleled -2chem_dbl_offset, - chem_dot_factor*r,c,dashed evenly) ; + r,c,dashed evenly) ; fi endfor enddef ; vardef chem_ep (suffix $) (expr f, t, r, c) = % EP - chem_check($) ; if chem_star.$ : save p ; path p ; for i=f upto t : @@ -798,7 +778,6 @@ vardef chem_ep (suffix $) (expr f, t, r, c) = % EP enddef ; vardef chem_et (suffix $) (expr f, t, r, c) = % ET - chem_check($) ; if chem_star.$ : save p ; path p ; for i=f upto t : @@ -820,7 +799,6 @@ vardef chem_db@# (suffix $) (expr f, t, r, c) = % DB if chem_star.$ : chem_dr@#($,f,t,r,c) ; else : - chem_check($) ; if not chem_front.$ : save p ; path p ; for i=f upto t : @@ -838,7 +816,6 @@ vardef chem_db@# (suffix $) (expr f, t, r, c) = % DB enddef ; vardef chem_tb@# (suffix $) (expr f, t, r, c) = % TB - chem_check($) ; if chem_star.$ : save p ; path p ; for i=f upto t : @@ -857,14 +834,11 @@ vardef chem_tb@# (suffix $) (expr f, t, r, c) = % TB enddef ; vardef chem_sr@# (suffix $) (expr f, t, r, c) = % SR - chem_check($) ; - if (substring (0,6) of (str $))="newman" : - save im, l ; numeric im, l ; - l := length chem_b_path.$ ; + if chem_stacked.$ : + save l, h ; numeric l, h ; l := length chem_b_path.$ ; h := floor(.5l) ; for i=f upto t : - im := if i<0 : ((i+1) mod l) + 6 else : ((i-1) mod l) + 1 fi ; chem_draw($, - subpath (if im>3: .5,ypart fi chem_sb_pair@#) of chem_r_fragment($,i), + subpath (if i>h: .5,ypart fi chem_sb_pair@#) of chem_r_fragment($,i), r,c,) ; endfor else: @@ -886,7 +860,6 @@ vardef chem_sr@# (suffix $) (expr f, t, r, c) = % SR enddef ; vardef chem_sd@# (suffix $) (expr f, t, r, c) = % SD - chem_check($) ; if chem_star.$ : for i=f upto t : chem_draw($, @@ -897,7 +870,6 @@ vardef chem_sd@# (suffix $) (expr f, t, r, c) = % SD enddef ; vardef chem_rd@# (suffix $) (expr f, t, r, c) = % RD - chem_check($) ; for i=f upto t : if chem_front.$ : chem_draw($, @@ -915,7 +887,6 @@ vardef chem_rd@# (suffix $) (expr f, t, r, c) = % RD enddef ; vardef chem_rh@# (suffix $) (expr f, t, r, c) = % RH - chem_check($) ; for i=f upto t : if chem_front.$ : chem_draw($, @@ -935,7 +906,6 @@ enddef ; vardef chem_hb@# (suffix $) (expr f, t, r, c) = if chem_star.$ : chem_rh@#($,f,t,r,c) fi enddef ; % HB vardef chem_dr@# (suffix $) (expr f, t, r, c) = % DR - chem_check($) ; if not chem_front.$ : save p ; path p ; for i=f upto t : @@ -954,13 +924,12 @@ vardef chem_bb (suffix $) (expr f, t, r, c) = % BB if chem_star.$ : chem_rb($,f,t,r,c) ; elseif chem_front.$ : - chem_check($) ; chem_draw($, subpath (f-1,t) of chem_b_path.$, r,c,) ; save l, fm, tm, nb ; numeric l, fm, tm, nb ; l := length chem_b_path.$ ; - nb := if (str $)="chair" : 4 else : 3 fi ; % number of bold bonds + nb := floor(.5l) + 1 ; fm := if f<0 :((f+1) mod l) + l else : ((f-1) mod l) + 1 fi ; tm := if t<0 :((t+1) mod l) + l else : ((t-1) mod l) + 1 fi ; if tml0 : + l0 := l0 + length chem_c_path.$ ; + fi + chem_draw($, + subpath (l1,l0) of chem_c_path.$, + r,c,dashed evenly) ; enddef ; -vardef chem_cc@# (suffix $) (expr f, t, r, c) = % CC - chem_check($) ; +vardef chem_cc (suffix $) (expr f, t, r, c) = % CC save l; numeric l[] ; l0 = ypart((origin--center(subpath (f-2,f-1) of chem_b_path.$)) intersectiontimes chem_c_path.$) ; @@ -1139,15 +1105,10 @@ vardef chem_cc@# (suffix $) (expr f, t, r, c) = % CC fi chem_draw($, subpath (l1,l0) of chem_c_path.$, - if (str @#)="d" : - r,c,dashed evenly) ; - else: - r,c,) ; - fi + r,c,) ; enddef ; vardef chem_ld@# (suffix $) (expr f, t, r, c) = % LD - chem_check($) ; if chem_star.$ : save p ; path p ; for i=f upto t : @@ -1163,7 +1124,6 @@ vardef chem_ld@# (suffix $) (expr f, t, r, c) = % LD enddef ; vardef chem_rd@# (suffix $) (expr f, t, r, c) = % RD - chem_check($) ; if chem_star.$ : save p ; path p ; for i=f upto t : @@ -1179,7 +1139,6 @@ vardef chem_rd@# (suffix $) (expr f, t, r, c) = % RD enddef ; vardef chem_ldd@# (suffix $) (expr f, t, r, c) = % LDD - chem_check($) ; if chem_star.$ : save p ; path p ; for i=f upto t : @@ -1195,7 +1154,6 @@ vardef chem_ldd@# (suffix $) (expr f, t, r, c) = % LDD enddef ; vardef chem_rdd@# (suffix $) (expr f, t, r, c) = % RDD - chem_check($) ; if chem_star.$ : save p ; path p ; for i=f upto t : @@ -1211,7 +1169,6 @@ vardef chem_rdd@# (suffix $) (expr f, t, r, c) = % RDD enddef ; vardef chem_oe (suffix $) (expr f, t, r, c) = % OE - chem_check($) ; if chem_star.$ : save p ; path p[] ; for i=f upto t : @@ -1234,7 +1191,6 @@ vardef chem_oe (suffix $) (expr f, t, r, c) = % OE enddef ; vardef chem_bw (suffix $) (expr f, t, r, c) = % BW - chem_check($) ; if chem_star.$ : save p ; path p[] ; for i=f upto t : @@ -1259,7 +1215,6 @@ vardef chem_bw (suffix $) (expr f, t, r, c) = % BW enddef ; vardef chem_bd (suffix $) (expr f, t, r, c) = % BD - chem_check($) ; if chem_star.$ : save p ; path p[] ; for i=f upto t : @@ -1283,7 +1238,6 @@ enddef ; % text, number vardef chem_z@#(suffix $) (expr p) (text t) = % Z - chem_check($) ; draw chem_text@#(t, chem_do ( if p=0 : @@ -1296,7 +1250,6 @@ vardef chem_z@#(suffix $) (expr p) (text t) = % Z enddef ; vardef chem_cz@#(suffix $) (expr p) (text t) = % CZ ? (same as above) - chem_check($) ; draw chem_text@#(t, chem_do ( if p=0 : @@ -1309,7 +1262,6 @@ vardef chem_cz@#(suffix $) (expr p) (text t) = % CZ ? (same as above) enddef ; vardef chem_midz@#(suffix $) (expr p) (text t) = % MIDZ - chem_check($) ; if not (chem_star.$ or chem_front.$) : draw chem_text@#(t, chem_do ( @@ -1321,7 +1273,6 @@ vardef chem_midz@#(suffix $) (expr p) (text t) = % MIDZ enddef ; vardef chem_rz@#(suffix $) (expr p) (text t) = % RZ - chem_check($) ; if not chem_front.$ : draw if (length(str @#)>0) and (str @# = "auto") : @@ -1334,7 +1285,6 @@ vardef chem_rz@#(suffix $) (expr p) (text t) = % RZ enddef ; vardef chem_lrz@#(suffix $) (expr p) (text t) = % LRZ - chem_check($) ; if not chem_star.$ : draw if (length(str @#)>0) and (str @# = "auto") : @@ -1347,7 +1297,6 @@ vardef chem_lrz@#(suffix $) (expr p) (text t) = % LRZ enddef ; vardef chem_rrz@#(suffix $) (expr p) (text t) = % RRZ - chem_check($) ; if not chem_star.$ : draw if (length(str @#)>0) and (str @# = "auto") : @@ -1364,7 +1313,6 @@ vardef chem_zn@#(suffix $) (expr p) (text t) = % ZN enddef ; vardef chem_zt@#(suffix $) (expr p) (text t) = % ZT - chem_check($) ; draw chem_text@#(t,chem_do ((point p-1 of chem_b_path.$) chem_transformed($) scaled chem_text_min)) ; enddef ; @@ -1374,7 +1322,6 @@ vardef chem_zln@#(suffix $) (expr p) (text t) = % ZLN enddef ; vardef chem_zlt@#(suffix $) (expr p) (text t) = % ZLT - chem_check($) ; draw chem_text@#(t, chem_do((point p-1.5 of chem_b_path.$) chem_transformed($) scaled chem_text_min)) ; enddef ; @@ -1384,13 +1331,11 @@ vardef chem_zrn@#(suffix $) (expr p) (text t) = % ZRN enddef ; vardef chem_zrt@#(suffix $) (expr p) (text t) = % ZRT - chem_check($) ; draw chem_text@#(t, chem_do((point p-0.5 of chem_b_path.$) chem_transformed($) scaled chem_text_min)) ; enddef ; vardef chem_crz@#(suffix $) (expr p) (text t) = % CRZ ???? - chem_check($) ; if chem_star.$ : draw chem_text(t, chem_do((point p-1 of chem_b_path.$ enlonged chem_center_offset) chem_transformed($))) ; @@ -1402,13 +1347,11 @@ vardef chem_rn@#(suffix $) (expr i, t) = % RN enddef ; vardef chem_rt@#(suffix $) (expr p) (text t) = % RT - chem_check($) ; draw chem_text@#(t, chem_do((center chem_r_fragment($,p)) chem_transformed($))) ; enddef ; vardef chem_lrn@#(suffix $) (expr i, t) = chem_lrt@#($,i,t) ; enddef ; % LRN vardef chem_lrt@#(suffix $) (expr p) (text t) = % LRT - chem_check($) ; draw chem_text@#(t, chem_do((center chem_r_fragment.lft($,p)) chem_transformed($))) ; enddef ; @@ -1417,7 +1360,6 @@ vardef chem_rrn (suffix $) (expr i, t) = % RRN enddef ; vardef chem_rrt@#(suffix $) (expr p) (text t) = % RRT - chem_check($) ; draw chem_text@#(t, chem_do((center chem_r_fragment.rt($,p)) chem_transformed($))) ; enddef ; @@ -1443,25 +1385,18 @@ enddef ; % rotations and reflections vardef chem_rot (suffix $) (expr d, s) = % ROT - chem_check($) ; if not chem_front.$ : if d=0 : chem_rotation := 0 else : - save a, off ; numeric a, off ; - if (substring (0,6) of (str $))="newman" : - off := 3 ; - else : - off := 0 ; - fi - a := .5(angle(point d+off of chem_b_path.$) - angle(point d+off-1 of chem_b_path.$)) ; + save a, off ; numeric a, off ; off := if chem_stacked.$ : 3 else : 0 fi ; + a := .5(angle(point d+off of chem_b_path.$) - angle(point d+off-1 of chem_b_path.$)) ; chem_rotation := (chem_rotation + s*a) mod 360 ; fi fi enddef ; vardef chem_mir (suffix $) (expr d, s) = % MIR - chem_check($) ; if not chem_front.$ : if d=0 : % inversion if chem_mirror=origin : @@ -1492,7 +1427,6 @@ enddef ; % translations vardef chem_dir (suffix $) (expr d, s) = % DIR (same as MOV(d-1)MOV(d+1)) - chem_check($) ; if not chem_front.$ : if d=0 : currentpicture := currentpicture shifted - chem_origin ; @@ -1508,7 +1442,6 @@ vardef chem_dir (suffix $) (expr d, s) = % DIR (same as MOV(d-1)MOV(d+1)) enddef ; vardef chem_mov (suffix $) (expr d, s) = % MOV - chem_check($) ; if d=0 : currentpicture := currentpicture shifted - chem_origin ; chem_origin := origin ; @@ -1524,7 +1457,6 @@ pair chem_mark_pair[] ; vardef chem_mark (suffix $) (expr d, s) = % MARK % scale s is ignored - chem_check($) ; if d>0 : chem_mark_pair[d] := chem_origin scaled -1 ; fi @@ -1539,7 +1471,6 @@ vardef chem_marked (expr d) = enddef ; vardef chem_line (suffix $) (expr f, t, r, c) = % LINE - chem_check($) ; draw chem_marked(f) -- chem_marked(t) % no chem_transformed withpen pencircle scaled r @@ -1547,7 +1478,6 @@ vardef chem_line (suffix $) (expr f, t, r, c) = % LINE enddef ; vardef chem_dash (suffix $) (expr f, t, r, c) = % DASH - chem_check($) ; draw chem_marked(f) -- chem_marked(t) % no chem_transformed withpen pencircle scaled r @@ -1556,7 +1486,6 @@ vardef chem_dash (suffix $) (expr f, t, r, c) = % DASH enddef ; vardef chem_arrow (suffix $) (expr f, t, r, c) = % ARROW - chem_check($) ; drawarrow chem_marked(f) -- chem_marked(t) % no chem_transformed withpen pencircle scaled r @@ -1564,7 +1493,6 @@ vardef chem_arrow (suffix $) (expr f, t, r, c) = % ARROW enddef ; vardef chem_rm (suffix $) (expr d, s) = % RM - chem_check($) ; if (not chem_front.$) and (d<>0) : save p ; pair p ; p := ((point d-1 of chem_r_path.$) scaled s) chem_transformed($) ; @@ -1574,7 +1502,6 @@ vardef chem_rm (suffix $) (expr d, s) = % RM enddef ; vardef chem_off (suffix $) (expr d, s) = % OFF - chem_check($) ; if d=0 : currentpicture := currentpicture shifted - chem_origin ; chem_origin := origin ; @@ -1586,4 +1513,3 @@ vardef chem_off (suffix $) (expr d, s) = % OFF chem_origin := chem_origin - p ; fi ; enddef ; - diff --git a/scripts/context/ruby/base/logger.rb b/scripts/context/ruby/base/logger.rb index 2526cdb0e..2245ab331 100644 --- a/scripts/context/ruby/base/logger.rb +++ b/scripts/context/ruby/base/logger.rb @@ -47,7 +47,8 @@ class Logger print("\n") return true when 1 - message = str.first + # message = str.first + message = str.first.join(' ') else message = [str].flatten.collect{|s| s.to_s}.join(' ').chomp end diff --git a/tex/context/base/chem-str.lua b/tex/context/base/chem-str.lua index c0892329f..83cfba6bf 100644 --- a/tex/context/base/chem-str.lua +++ b/tex/context/base/chem-str.lua @@ -280,7 +280,6 @@ local pattern = -- print(lpegmatch(pattern,"RZ13=x")) -- 1 RZ false false table x local t_initialize = 'if unknown context_chem : input mp-chem.mpiv ; fi ;' -local t_initialize = 'input mp-chem.mpiv ;' local t_start_structure = 'chem_start_structure(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);' local t_stop_structure = 'chem_stop_structure;' local t_start_component = 'chem_start_component;' @@ -489,21 +488,23 @@ function chemistry.start(settings) local width, height, scale, offset = settings.width or 0, settings.height or 0, settings.scale or "normal", settings.offset or 0 local l, r, t, b = settings.left or 0, settings.right or 0, settings.top or 0, settings.bottom or 0 -- - metacode = { } -- no format anyway + metacode = { } -- if trace_structure then report_chemistry("scale: %s, width: %s, height: %s, l: %s, r: %s, t: %s, b: %s", scale, width, height, l, r, t, b) end if scale == variables.small then - scale = 3/1.2 + scale = 1/1.2 elseif scale == variables.normal or scale == variables.medium or scale == 0 then - scale = 3 + scale = 1 elseif scale == variables.big then - scale = 3*1.2 + scale = 1.2 else scale = tonumber(scale) if not scale or scale == 0 then - scale = 3 + scale = 1 + elseif scale >= 10 then + scale = scale / 1000 elseif scale < .01 then scale = .01 end @@ -512,14 +513,23 @@ function chemistry.start(settings) width = true else width = tonumber(width) or 0 + if width >= 10 then + width = width / 1000 + end if l == 0 then if r == 0 then l = width == 0 and 2 or width/2 r = l elseif width ~= 0 then + if r > 10 or r < -10 then + r = r / 1000 + end l = width - r end elseif r == 0 and width ~= 0 then + if l > 10 or l < -10 then + l = l / 1000 + end r = width - l end width = false @@ -528,14 +538,23 @@ function chemistry.start(settings) height = true else height = tonumber(height) or 0 + if height >= 10 then + height = height / 1000 + end if t == 0 then if b == 0 then t = height == 0 and 2 or height/2 b = t elseif height ~= 0 then + if b > 10 or b < -10 then + b = b / 1000 + end t = height - b end elseif b == 0 and height ~= 0 then + if t > 10 or t < -10 then + t = t / 1000 + end b = height - t end height = false diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index fe0411123..50a2e3a21 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2012.11.29 15:54} +\newcontextversion{2012.11.29 18:40} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index f265ea580..a9c3335b6 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2012.11.29 15:54} +\newcontextversion{2012.11.29 18:40} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 7eb7e0892..c02b2e77f 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png index 275dbde32..5a2da6911 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index b24f95204..f1cad9278 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2012.11.29 15:54} +\edef\contextversion{2012.11.29 18:40} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index c327fecb9..1e72f7bfb 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -25,7 +25,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2012.11.29 15:54} +\edef\contextversion{2012.11.29 18:40} %D For those who want to use this: diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 34c56b3cb..29cf0f0eb 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index d796a36f7..66438fc0d 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 317ace25e..f5965112b 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 11/29/12 15:54:01 +-- merge date : 11/29/12 18:40:35 do -- begin closure to overcome local limits and interference -- cgit v1.2.3