;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Portion of this file was copied from Pierre Perret ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Note: directory and path must end with \ set %default-directory "f:\tex\emacs\" set %l-file-path "f:\tex\emacs\" set %emacs-help-file "mewin.hlp" set %latex-help-file "latex.hlp" set %bibtex-help-file "bibtex.hlp" set %slitex-help-file "slitex.hlp" set %makeindex-help-file "makeinde.hlp" set %spell-exec "f:\tex\emacs\spell.pif" set %l-tex "f:\tex\winbin\rsxwin.exe f:\tex\winbin\virtex &plain" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; If yo decided to use virtex.exe, etc. (instead of winbin\virtex, etc.), ; use the following instead of the above. ; Also do similar things for latex, amslatex, etc. ;set %l-tex "f:\tex\emacs\tex.pif" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; set %l-latex "f:\tex\winbin\rsxwin.exe f:\tex\winbin\virtex &lplain" set %l-latex2e "f:\tex\winbin\rsxwin.exe f:\tex\winbin\virtex &latex2e" set %l-amslatex "f:\tex\winbin\rsxwin.exe f:\tex\winbin\virtex &nfss2ltx" set %l-bibtex "f:\tex\winbin\rsxwin.exe f:\tex\winbin\bibtex" set %l-makeindex "f:\tex\winbin\rsxwin.exe f:\tex\winbin\makeindx" set %l-view "f:\tex\dviwin.exe" ;set %l-dvips "f:\tex\winbin\rsxwin.exe f:\tex\winbin\dvips" set %l-dvips "f:\tex\emacs\dvips.pif" set %l-gsview "c:\gs\gsview32.exe" set $discmd FALSE set $timeflag TRUE set $posflag TRUE set $flicker FALSE set $mmove 1 add-mode white add-global-mode white add-mode BLACK add-global-mode BLACK add-mode "cmode" add-global-mode "cmode" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Pierre Perret's mdi.cmd starts ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; rename-screen $cbufname restore-screen set %scrwidth 75 ; 80 %scrwidth change-screen-width set %filename "" set %dropbuf "Dropped files" store-procedure open-file set %prevscr $scrname set %prevbuf $cbufname find-screen "Relay screen" select-buffer %prevbuf delete-other-windows !if &seq %filename "" !force execute-named-command find-file !else !force find-file %filename &lower %filename !endif !if $status *FileFound set %tmp $cbufname set $scrname %tmp !if &seq $scrname %tmp set $curwind 1 !while ¬ &seq $cbufname %tmp !if &equ $numwind $curwind set $scrname "Relay screen" set %tmp &cat %tmp "." !force rename-screen %tmp !while ¬ $status set %tmp &cat %tmp "." !force rename-screen %tmp !endwhile clear-message-line !return !endif next-window !endwhile !force delete-screen "Relay screen" !else rename-screen $cbufname %scrwidth change-screen-width !endif !else !if &seq $cbufname %prevbuf find-screen %prevscr !force delete-screen "Relay screen" !else !goto FileFound !endif !endif set %filename "" !endm macro-to-key open-file ^X^F unbind-menu ">&File>&Open..." macro-to-menu open-file "&Open...@0" store-procedure rebuild-screens find-screen "Relay screen" select-buffer "Relay screen" delete-other-windows minimize-screen !goto BufLoop !while ¬ &seq $cbufname "Relay screen" *BufLoop find-screen "Relay screen" next-buffer !if ¬ &sin "Relay screenBinding listFunction listVariable list" $cbufname find-screen $cbufname select-buffer $scrname delete-other-windows restore-screen !endif !endwhile cascade-screens !if &seq $scrname "Relay screen" cycle-screens !endif !force delete-screen "Relay screen" !endm macro-to-menu rebuild-screens ">S&creen>&Rebuild@0" store-procedure kill-screen set %prevscr $scrname set %prevbuf $cbufname cycle-screens !force delete-screen %prevscr !if $status !force delete-buffer %prevbuf !endif !endm macro-to-key kill-screen A-K macro-to-menu kill-screen ">S&creen>&Kill@6" store-procedure drop-files set %prevbuf $cbufname select-buffer %dropbuf goto-line 2 select-buffer %prevbuf set %filename #%dropbuf !while ¬ &seq %filename "" run open-file set %filename #%dropbuf !endwhile set %filename "" !endm macro-to-key drop-files MS! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Pierre Perret's mdi.cmd ends ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Pierre Perret's cua.cmd starts ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; store-procedure CUA-cmdhook set %discmd $discmd set $discmd FALSE !if %keepanchor set %keepanchor FALSE !else !force 12 remove-mark set $hilight 255 !endif set $discmd %discmd !endm set $cmdhook CUA-cmdhook store-procedure CUA-load set %discmd $discmd set $discmd FALSE !force 0 exchange-point-and-mark !if $status 14 set-mark 0 exchange-point-and-mark !else !force 14 remove-mark !endif !force 12 exchange-point-and-mark !if $status 0 set-mark 12 exchange-point-and-mark !if &seq $region "" set %anchor FALSE !else set %anchor TRUE 13 goto-mark !endif !else !force 0 remove-mark set %anchor FALSE !endif set $discmd %discmd !endm store-procedure CUA-restore set %discmd $discmd set $discmd FALSE !force 14 exchange-point-and-mark !if $status 0 set-mark 14 exchange-point-and-mark !else !force 0 remove-mark !endif set $discmd %discmd !endm store-procedure CUA-Del run CUA-load !if %anchor kill-region !else !force 1 delete-next-character !endif run CUA-restore !endm macro-to-key CUA-Del FND store-procedure CUA-C-Ins run CUA-load !if %anchor set %keepanchor TRUE !if &seq $os MSWIN clip-region !else copy-region !endif !endif run CUA-restore !endm macro-to-key CUA-C-Ins FN^C !if &seq $os MSWIN unbind-menu ">&Edit>&Clipboard>&Copy region" macro-to-menu CUA-C-Ins "&Copy@1" !endif store-procedure CUA-S-Del run CUA-load !if %anchor !if &seq $os MSWIN cut-region !else kill-region !endif !endif run CUA-restore !endm macro-to-key CUA-S-Del S-FND !if &seq $os MSWIN unbind-menu ">&Edit>&Clipboard>Cu&t region" macro-to-menu CUA-S-Del "Cu&t@0" !else bind-to-key yank S-FNC !endif store-procedure CUA-case-upper run CUA-load !if %anchor set %keepanchor TRUE case-region-upper !endif run CUA-restore !endm macro-to-key CUA-case-upper A-U !if &seq $os MSWIN macro-to-menu CUA-case-upper ">&Edit>&Selection@4>&Upper case" !endif store-procedure CUA-case-lower run CUA-load !if %anchor set %keepanchor TRUE case-region-lower !endif run CUA-restore !endm macro-to-key CUA-case-lower A-L !if &seq $os MSWIN macro-to-menu CUA-case-lower "&Lower case" !endif store-procedure CUA-count-words run CUA-load !if %anchor set %keepanchor TRUE count-words !endif run CUA-restore !endm macro-to-key CUA-count-words A-W !if &seq $os MSWIN macro-to-menu CUA-count-words "Count &words" !endif store-procedure CUA-flip-selection set %discmd $discmd set $discmd FALSE !force 13 goto-mark !force 12 exchange-point-and-mark !if $status 13 set-mark set %keepanchor TRUE !endif set $discmd %discmd !endm macro-to-key CUA-flip-selection A-= !if &seq $os MSWIN bind-to-menu nop "-" macro-to-menu CUA-flip-selection "&Flip" !endif store-procedure CUA-select-region set %discmd $discmd set $discmd FALSE 13 set-mark !force 0 exchange-point-and-mark !if $status 12 set-mark 0 exchange-point-and-mark set $hilight 12 set %keepanchor TRUE !else 12 remove-mark set $hilight 255 !endif update-screen set $discmd %discmd !endm macro-to-key CUA-select-region A-^M !if &seq $os MSWIN macro-to-menu CUA-select-region "Select ®ion" !endif store-procedure CUA-anchor set %discmd $discmd set $discmd FALSE !force 12 exchange-point-and-mark !if $status 12 exchange-point-and-mark !else 12 set-mark 13 set-mark !endif set $discmd %discmd !endm store-procedure CUA-select set %discmd $discmd set $discmd FALSE set %keepanchor TRUE 13 set-mark set $hilight 12 update-screen set $discmd %discmd !endm store-procedure CUA-S-home run CUA-anchor beginning-of-line run CUA-select !endm macro-to-key CUA-S-home S-FN< store-procedure CUA-S-end run CUA-anchor end-of-line run CUA-select !endm macro-to-key CUA-S-end S-FN> store-procedure CUA-SC-home run CUA-anchor beginning-of-file run CUA-select !endm macro-to-key CUA-SC-home S-FN^< store-procedure CUA-SC-end run CUA-anchor end-of-file run CUA-select !endm macro-to-key CUA-SC-end S-FN^> store-procedure CUA-S-pageup run CUA-anchor previous-page run CUA-select !endm macro-to-key CUA-S-pageup S-FNZ store-procedure CUA-S-pagedown run CUA-anchor next-page run CUA-select !endm macro-to-key CUA-S-pagedown S-FNV store-procedure CUA-S-up run CUA-anchor !force previous-line run CUA-select !endm macro-to-key CUA-S-up S-FNP store-procedure CUA-S-down run CUA-anchor !force next-line run CUA-select !endm macro-to-key CUA-S-down S-FNN store-procedure CUA-S-left run CUA-anchor !force backward-character run CUA-select !endm macro-to-key CUA-S-left S-FNB store-procedure CUA-S-right run CUA-anchor !force forward-character run CUA-select !endm macro-to-key CUA-S-right S-FNF store-procedure CUA-SC-left run CUA-anchor !force previous-word run CUA-select !endm macro-to-key CUA-SC-left S-FN^B store-procedure CUA-SC-right run CUA-anchor !force next-word run CUA-select !endm macro-to-key CUA-SC-right S-FN^F bind-to-key beginning-of-file FN^< bind-to-key end-of-file FN^> bind-to-key beginning-of-line FN< bind-to-key end-of-line FN> !force unbind-key MS1 bind-to-key mouse-move-down MSe bind-to-key mouse-move-up MSf bind-to-key mouse-resize-screen MS^e bind-to-key mouse-region-down S-MSe bind-to-key mouse-region-up S-MSf store-procedure MSleft-down set %discmd $discmd set $discmd FALSE !force mouse-move-down !if $status set %keepanchor TRUE 12 set-mark 13 set-mark set $hilight 12 set %msbuf $cbufname !else set %msbuf "" !force 12 remove-mark !endif set $discmd %discmd !endm macro-to-key MSleft-down MSa store-procedure MSdrag !if &equ $hilight 12 run CUA-anchor !force mouse-move-down run CUA-select !else !force mouse-move !endif !endm macro-to-key MSdrag MSm store-procedure MSleft-up set %discmd $discmd set $discmd FALSE !force mouse-move-down !if &and $status &seq %msbuf $cbufname set %keepanchor TRUE !else !force 12 remove-mark !endif set $discmd %discmd !endm macro-to-key MSleft-up MSb store-procedure S-MSleft run CUA-anchor !force mouse-move-down run CUA-select !endm macro-to-key S-MSleft S-MSa macro-to-key S-MSleft S-MSb ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Pierre Perret's cua.cmd ends ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; unbind-menu ">&Edit>@14" unbind-menu "@9" unbind-menu "Delete &blank lines" unbind-menu "&Transpose characters" unbind-menu "T&ab" unbind-menu "&Quote" unbind-menu "= &Fill column" unbind-menu ">E&xecute" unbind-menu ">&Miscellaneous" unbind-menu ">&Help>&Index" unbind-menu "&Keyboard" unbind-menu "&Commands" unbind-menu "&Procedures" ;;;;;;;;;;;;;;;; ; Execute Menu ; ;;;;;;;;;;;;;;;; store-procedure force-current-directory !if ¬ &seq $cfname "" !force find-file $cfname !endif !endm store-procedure spell-buffer save-file run force-current-directory 1 execute-program &cat &cat %spell-exec " " $cfname set %s-tmp1 @"Update the file (y/n)? [y]: " !if ¬ &sequal &lower %s-tmp1 "n" read-file $cfname !endif !endm store-procedure query-save-all set %f-tmp1 $cbufname !while TRUE !if &equ $cbflags 2 set %f-tmp2 @&cat &cat "Save " $cbufname " (y/n)? [y]: " !if ¬ &sequal %f-tmp2 "n" !force save-file !endif !endif !force next-buffer !if &seq %f-tmp1 $cbufname !return !endif !endwhile !endm store-procedure file-split set %f-dir &low $cfname set %f-name "" set %f-ext "" set %f-tmp1 &length %f-dir set %f-tmp2 &sindex %f-dir "." !if ¬ &equ %f-tmp2 0 set %f-ext &mid %f-dir &add %f-tmp2 1 &sub %f-tmp1 %f-tmp2 set %f-dir &mid %f-dir 1 &sub %f-tmp2 1 !endif set %f-tmp1 &length %f-dir set %f-tmp2 &sindex %f-dir "\" !if ¬ &equ %f-tmp2 0 set %f-tmp2 &length %f-dir !while ¬ &sequal "\" &mid %f-dir %f-tmp2 1 set %f-tmp3 &mid %f-dir %f-tmp2 1 set %f-tmp2 &sub %f-tmp2 1 !endwhile set %f-name &mid %f-dir &add %f-tmp2 1 &sub %f-tmp1 %f-tmp2 set %f-dir &mid %f-dir 1 %f-tmp2 !endif !endm store-procedure set-latex-fn !if &sequ %l-fn "?" run file-split set %l-fn %f-name !endif set %l-tmp1 "" set %l-tmp1 @&cat &cat &cat %l-prog " Filename (^G aborts )[" %l-fn "]: " !if ¬ &equ 0 &sindex %l-tmp1 "[" print [Abort] set %l-fn "?" set %l-tmp1 "" !return !endif !if ¬ &equal 0 &length %l-tmp1 set %l-fn %l-tmp1 !endif print &cat &cat %l-prog "file name: " %l-fn !endm store-procedure l-run run query-save-all run set-latex-fn run force-current-directory !if &seq %l-fn "?" !return !endif !if ¬ &exist &cat &cat %l-fn "." %l-ext print &cat &cat &cat &cat "[No file " %l-fn "." %l-ext "]" set %l-fn "?" !else !if &seq $scrname %l-log-screen !force delete-buffer %l-log-buffer !force select-buffer %l-log-buffer add-mode view !else !force delete-screen %l-log-screen !force delete-buffer %l-log-buffer !endif print &cat &cat &cat &cat "[" %l-prog " " %l-fn "]" !if &seq %l-ext "ps" execute-program &cat &cat &cat %l-prog " " %l-fn ".ps" !else execute-program &cat &cat %l-prog " " %l-fn !endif !endif set %l-fn "?" !endm store-procedure run-latex set %l-prog %l-latex set %l-ext "tex" set %l-log "log" set %l-fn "?" run l-run !endm store-procedure run-latex2e set %l-prog %l-latex2e set %l-ext "tex" set %l-log "log" set %l-fn "?" run l-run !endm store-procedure run-amslatex set %l-prog %l-amslatex set %l-ext "tex" set %l-log "log" set %l-fn "?" run l-run !endm store-procedure run-tex set %l-prog %l-tex set %l-ext "tex" set %l-log "log" set %l-fn "?" run l-run !endm store-procedure view-latex set %l-prog %l-view set %l-ext "dvi" set %l-fn "?" run set-latex-fn run force-current-directory !if ¬ &exist &cat %l-fn ".dvi" run file-split print &cat &cat "[No file " %l-fn ".dvi]" set %l-fn "?" !else print &cat &cat "[view " %l-fn "]" execute-program &cat &cat &cat %l-view " " %l-fn ".dvi" !endif !endm store-procedure run-bibtex set %l-prog %l-bibtex set %l-ext "aux" set %l-log "blg" set %l-fn "?" run l-run !endm store-procedure run-makeindex set %l-prog %l-makeindex set %l-ext "aux" set %l-log "ilg" set %l-fn "?" run l-run !endm store-procedure dvips-latex set %l-prog %l-dvips set %l-ext "dvi" set %l-log "?" set %l-fn "?" run l-run !endm store-procedure gsview-latex set %l-prog %l-gsview set %l-ext "ps" set %l-log "?" set %l-fn "?" run l-run !endm macro-to-menu run-tex ">E&xecute@4>&TeX" macro-to-menu run-latex "&LaTeX" macro-to-menu run-latex2e "&LaTeX2e" macro-to-menu run-amslatex "&AmSLaTeX" bind-to-menu nop "-" macro-to-menu run-bibtex "&BibTeX" bind-to-menu nop "-" macro-to-menu view-latex "&DviWin" macro-to-menu dvips-latex "Dvi&Ps" macro-to-menu gsview-latex "&GhostView" bind-to-menu nop "-" macro-to-menu spell-buffer "&Spell" bind-to-menu nop "-" macro-to-menu run-makeindex "&MakeIndex" ;;;;;;;;;;;;;; ; Input Menu ; ;;;;;;;;;;;;;; store-procedure position-cursor ; Uses %p-tmp %p-tmp-t %p-tmp-l. ; if %p-gotop make sure we are at top of file. ; Use arrow, paging keys, mouse, or search to position cursor ; OR type into %p-tmp-t ; Enter terminates it, C-G aborts. ; %p-tmp-t is not blank, return it in %p-tmp, ; else if $curcol!=0 and $curline!=1 return blank-delimited string ; (not "word") at current point. If %p-doline get whole line. !if %p-gotop set $curcol 0 set $curline 1 !endif set %p-tmp "" set %p-tmp-t "" !while TRUE ; break out with newline print &cat "[Type, or Select, then Enter (^G aborts)]: " %p-tmp-t update-screen set %p-tmp >cmd !if &equ &len %p-tmp 1 ; Then it's a printable character set %p-tmp-t &cat %p-tmp-t %p-tmp !else set %p-tmp &bind %p-tmp ; translate command !if &seq %p-tmp "delete-previous-character" ; delete last character set %p-tmp-l &len %p-tmp-t !if &greater %p-tmp-l 0 set %p-tmp-t &mid %p-tmp-t 1 &sub %p-tmp-l 1 !endif !else ; print %p-tmp !if &seq %p-tmp newline ; break out with newline !break !endif !if &seq %p-tmp abort-command ; break out with ^G !break !endif !if ¬ &seq %p-tmp ERROR ; if valid command !while TRUE ; break out if recognized motion key ; first look for general motion !if ¬ &equ 0 &sindex %motion-c1 &cat &cat "!" %p-tmp "!" !force %p-tmp !break !endif !if ¬ &equ 0 &sindex %motion-c2 &cat &cat "!" %p-tmp "!" !force %p-tmp !break !endif !if &seq %p-tmp [MSleft-down] ; mouse strokes !force run MSleft-down !break !endif !if &seq %p-tmp [MSleft-up] !force run MSleft-up !break !endif !if &seq %p-tmp search-forward ; searching execute-named-command search-forward !endif !if &seq %p-tmp search-reverse execute-named-command search-reverse !endif !break ; break if we didnt get anything !endwhile ; test for motion commands !endif ; not ERROR !endif !endif update-screen !endwhile ; test for return !if &seq %p-tmp abort-command ; return nothing if aborted set %p-tmp "" !else !if &greater &len %p-tmp-t 0 set %p-tmp %p-tmp-t !else !if &and &equ $curline 1 &equ $curcol 0 set %p-tmp "" !else !if %p-doline ; copy line beginning-of-line !while &and &equ &chr $curchar " " ¬ &equ $curcol $lwidth forward-character !endwhile set-mark end-of-line !else ; copy word !while &and ¬ &seq &chr $curchar " " ¬ &equ $curcol 0 backward-character !endwhile !if &seq &chr $curchar " " forward-character !endif set-mark !while &and ¬ &seq &chr $curchar " " ¬ &equ $curcol $lwidth forward-character !endwhile !endif set %p-tmp $region !endif !endif !endif ; print %p-tmp !endm store-procedure get-help-word ; uses %h-oldfile, %h-file, %h-buffer ; display file %h-file and return a word using position-cursor ; word is returned in %p-tmp set %h-oldfile $cfname !if ¬ &exist &cat %l-file-path %h-file print &cat &cat &cat "[No file " %l-file-path %h-file "]" set %p-tmp "ERROR" !return !endif find-file &cat %l-file-path %h-file add-mode VIEW update-screen run position-cursor set %h-buffer $cbufname !force find-file %h-oldfile !force delete-buffer %h-buffer !endm store-procedure l-template ; LaTeX templates ; uses %l-tmp1, %l-tmp2, %h-file, %p-tmp set %h-file "ltemp.lh" run get-help-word !if &seq %p-tmp "ERROR" !return !endif set %l-tmp1 %p-tmp !if ¬ &equ &len %l-tmp1 0 set %l-tmp1 &cat &cat %l-file-path %l-tmp1 ".lt" !if ¬ &exist %l-tmp1 print &cat &cat &cat "[No file " %l-tmp1 "]" !else set %l-tmp2 $yankflag set $yankflag TRUE ; keep point at start of included file insert-file %l-tmp1 set $yankflag %l-tmp2 !endif !endif !endm store-procedure l-heading ; uses %h-file, %l-tmp1, %p-tmp ; create a LaTeX heading from user input set %h-file "headings.lh" run get-help-word !if &seq %p-tmp "ERROR" !return !endif set %l-tmp1 %p-tmp ; print %l-tmp1 !if ¬ &equ &len %l-tmp1 0 insert-string &cat &cat "\" %l-tmp1 "{}" backward-character !endif !endm store-procedure l-env-pair ; uses %l-tmp1, %p-tmp ; create a LaTeX environment from user input set %h-file "environ.lh" run get-help-word !if &seq %p-tmp "ERROR" !return !endif set %l-tmp1 %p-tmp !if ¬ &equ &len %l-tmp1 0 2 open-line insert-string &cat &cat "\begin{" %l-tmp1 "}" !if &seq %l-tmp1 "array" insert-string "{lrc}" !endif !if &seq %l-tmp1 "list" insert-string "{labeling}{spacing}" !endif !if &seq %l-tmp1 "minipage" insert-string "[pos]{vsize}" !endif !if &seq %l-tmp1 "picture" insert-string "(x,y)(xl,yl)" !endif !if &seq %l-tmp1 "tabular" insert-string "{lrc}" !endif !if &seq %l-tmp1 "thebibliography" insert-string "{99}" !endif 2 next-line insert-string &cat &cat "\end{" %l-tmp1 "}" previous-line !endif !endm store-procedure l-amsenv-pair ; uses %l-tmp1, %p-tmp ; create a AmSLaTeX environment from user input set %h-file "amsenv.lh" run get-help-word !if &seq %p-tmp "ERROR" !return !endif set %l-tmp1 %p-tmp !if ¬ &equ &len %l-tmp1 0 2 open-line insert-string &cat &cat "\begin{" %l-tmp1 "}" !if &seq %l-tmp1 "array" insert-string "{lrc}" !endif !if &seq %l-tmp1 "list" insert-string "{labeling}{spacing}" !endif !if &seq %l-tmp1 "minipage" insert-string "[pos]{vsize}" !endif !if &seq %l-tmp1 "picture" insert-string "(x,y)(xl,yl)" !endif !if &seq %l-tmp1 "tabular" insert-string "{lrc}" !endif !if &seq %l-tmp1 "thebibliography" insert-string "{99}" !endif 2 next-line insert-string &cat &cat "\end{" %l-tmp1 "}" previous-line !endif !endm store-procedure l-insert-word ; Insert command from file %h-file ; If it has a {, position after the first one. ; Used by many of below command, but some have to add things, so ; do similar things themselves. run get-help-word !if &seq %p-tmp "ERROR" !return !endif set %l-tmp1 %p-tmp ; print %l-tmp1 !if ¬ &equ &len %l-tmp1 0 insert-string &cat %l-tmp1 set %l-tmp2 &sindex %l-tmp1 "{" !if ¬ &equ %l-tmp2 0 set %l-tmp3 &sub &len %l-tmp1 %l-tmp2 !force %l-tmp3 backward-character !endif !endif !endm store-procedure l-taccents ; Text accents set %h-file "taccents.lh" run l-insert-word !endm store-procedure l-tspecial ; special sybols set %h-file "tspecial.lh" run l-insert-word !endm store-procedure l-tforeign ; foreign symbols set %h-file "tforeign.lh" run l-insert-word !endm store-procedure l-maccents ; math accents set %h-file "maccents.lh" run l-insert-word !endm store-procedure l-greek ; greek letters set %h-file "greek.lh" run l-insert-word !endm store-procedure l-mbinops ; math binary operators set %h-file "mbinops.lh" run l-insert-word !endm store-procedure l-mrel ; math relations set %h-file "mrel.lh" run l-insert-word !endm store-procedure l-marrow ; math arrows set %h-file "marrow.lh" run l-insert-word !endm store-procedure l-mmisc ; math miscellaneous set %h-file "mmisc.lh" run l-insert-word !endm store-procedure l-mloglike ; math loglike set %h-file "mloglike.lh" run l-insert-word !endm store-procedure l-mdelim ; math delimiters set %h-file "mdelim.lh" run l-insert-word !endm store-procedure l-mvarsym ; math variable-sized symbols set %h-file "mvarsym.lh" run l-insert-word !endm store-procedure l-mline ; math overline/underline set %h-file "mline.lh" run l-insert-word !endm store-procedure b-template ; BibTeX templates ; uses %l-tmp1, %l-tmp2, %h-file, %p-tmp set %h-file "btemp.lh" run get-help-word !if &seq %p-tmp "ERROR" !return !endif set %l-tmp1 %p-tmp !if ¬ &equ &len %l-tmp1 0 set %l-tmp1 &cat &cat %l-file-path %l-tmp1 ".bt" !if ¬ &exist %l-tmp1 print &cat &cat &cat "[No file " %l-file-path %l-tmp1 "]" !else set %l-tmp2 $yankflag set $yankflag TRUE ; keep point at start of included file insert-file %l-tmp1 set $yankflag %l-tmp2 end-of-line backward-character !endif !endif !endm macro-to-menu l-template ">&Input@5>LaTeX &Input>&Templates" macro-to-menu l-heading "&Headings" macro-to-menu l-env-pair "En&vironments" macro-to-menu l-amsenv-pair "&AmS Environments" macro-to-menu l-taccents ">&Input>LaTeX &Input>Te&xt>&Accents" macro-to-menu l-tspecial "&Special Symbols" macro-to-menu l-tforeign "&Foreign Symbols" macro-to-menu l-maccents ">&Input>LaTeX &Input>&Math>&Accents" macro-to-menu l-greek "&Greek" macro-to-menu l-mbinops "Binary &Operators" macro-to-menu l-mrel "&Relation Symbols" macro-to-menu l-marrow "Arro&ws" macro-to-menu l-mmisc "&Miscellanous" macro-to-menu l-mloglike "&Log Like" macro-to-menu l-mdelim "&Delimiters" macro-to-menu l-mvarsym "&Variable Symbols" macro-to-menu l-mline "Over/&Under Line" macro-to-menu b-template ">&Input>&BibTeX Input>&Templates" ;;;;;;;;;;;;; ; Help Menu ; ;;;;;;;;;;;;; store-procedure mewin-help help-engine &cat %default-directory %emacs-help-file !endm store-procedure latex-help help-engine &cat %default-directory %latex-help-file !endm store-procedure bibtex-help help-engine &cat %default-directory %bibtex-help-file !endm store-procedure slitex-help help-engine &cat %default-directory %slitex-help-file !endm store-procedure makeindex-help help-engine &cat %default-directory %makeindex-help-file !endm unbind-menu ">&Help>@0" macro-to-menu mewin-help ">&Help@6>&Emacs@0" macro-to-menu latex-help "L&aTeX@1" macro-to-menu slitex-help "&SliTeX@2" macro-to-menu bibtex-help "&BibTeX@3" macro-to-menu makeindex-help "&Makeindex@4" bind-to-menu nop ">&Help>-@5"