home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / sprint / dpubtex.zip / DPUBTEX.SPM
Text File  |  1989-03-31  |  8KB  |  249 lines

  1. ; --------------- TEX Macro Definitions ------------
  2.  
  3.  
  4. ; ---------- Forward Declarations
  5. AltGDispatch        :
  6. AltHDispatch        :
  7. AltMDispatch        :
  8. AltVDispatch        :
  9. TexFormatMenu        :
  10. TexHorizontalMenu    :
  11. TexMathMenu        :
  12. TexGreekMenu        :
  13. TexGreekVarMenu    :
  14. TexEnclose        :
  15.  
  16.  
  17. ; ---------- Forward Declarations
  18.  
  19. TexFormatMenu    :
  20.     menu "Tex Format" {
  21.         "Horizontal"        TexHorizontalMenu,
  22.         "Math"            TexMathMenu,
  23.         "Greek"            TexGreekMenu,
  24.         "Greek Variations"    TexGreekVarMenu
  25.         }
  26.  
  27. TexHorizontalMenu    :
  28.     menu "Tex Horizontal" {
  29.         "I italic"                    (set QD "{\\it ") (set QN "\\/}") TexEnclose,
  30.         "B bold"                        (set QD "{\\bf ") (set QN "}") TexEnclose,
  31.         "[ Left Bracket"                insert "\\lbrack ",
  32.         "] Right Bracket"                insert "\\rbrack ",
  33.         "1 Abstract not available"        insert "Abstract Not Available.",
  34.         "2 Abstract shortened by author"    insert "(Abstract shortened with permission of author.)",
  35.         "3 Abstract shortened by UMI"        insert "(Abstract shortened by UMI.)",
  36.         "4 Copies available USC"            insert "(Copies available exclusively from Micrographics Department, Doheny Library, USC, Los Angeles, CA 90089-0182.)"
  37.         }
  38.  
  39. TexMathMenu    :
  40.     menu "Tex Math" {
  41.         "c Degree"        insert "$\\sp\\circ$",
  42.         "p prime"            insert "$\\sp\\prime$",
  43.         "P double prime"    insert "$\\sp{\\prime\\prime}$",
  44.         "u SuperscriptRom"    (set QD "$\\sp{\\rm ") (set QN "}$") TexEnclose,
  45.         "d SubscriptRom"    (set QD "$\\sb{\\rm ") (set QN "}$") TexEnclose,
  46.         "s Sub-superscript"    (set QD "$\\sbsp{") (set QN " }{}$") TexEnclose,
  47.         "U Superscript"    (set QD "$\\sp") (set QN " $") TexEnclose,
  48.         "D Subscript"        (set QD "$\\sb") (set QN " $") TexEnclose,
  49.         "x Times"            insert "$\\times$",
  50.         "$ Dollar signs"    (set QD "$ ") (set QN " $") TexEnclose,
  51.         "f footnote"        (set QD "\\ftn$\\sp") (set QN " $") TexEnclose,
  52.         "t Right arrow"    insert "$\\to$",
  53.         "g Left arrow"        insert "$\\gets$",
  54.         "r Angle brackets"    (set QD "$\\langle ") (set QN "\\rangle$") TexEnclose,
  55.         "m Sim"            insert "$\\sim$",
  56.         "l Calligraphy"    (set QD "${\\cal ") (set QN "}$") TexEnclose,
  57.         "\\ Backslash"        insert "$\\backslash$",
  58.         "i Infinity"        insert "$\\infty$",
  59.         "& Art equation"    (set QD "<<<++$$\\eqalign{") (set QN " \\cr}$$++>>>") TexEnclose,
  60.         "+ Art table"        (set QD "<<<++$$\\vbox{") (set QN " }$$++>>>") TexEnclose,
  61.         "= Art paste"        (set QD "<<<==$$\\vbox{\\vskip") (set QN " pt}$$==>>>") TexEnclose
  62.         }
  63.  
  64. TexGreekMenu    :
  65.     menu "Tex Greek" {
  66.         "alpha"    insert "$\\alpha$",
  67.         "beta"    insert "$\\beta$",
  68.         "chi"    insert "$\\chi$",
  69.         "delta"    insert "$\\delta$",
  70.         "Delta"    insert "$\\Delta$",
  71.         "epsilon"    insert "$\\epsilon$",
  72.         "phi"    insert "$\\phi$",
  73.         "Phi"    insert "$\\Phi$",
  74.         "gamma"    insert "$\\gamma$",
  75.         "Gamma"    insert "$\\Gamma$",
  76.         "eta"    insert "$\\eta$",
  77.         "iota"    insert "$\\iota$",
  78.         "kappa"    insert "$\\kappa$",
  79.         "lambda"    insert "$\\lambda$",
  80.         "Lambda"    insert "$\\Lambda$",
  81.         "mu"        insert "$\\mu$",
  82.         "nu"        insert "$\\nu$",
  83.         "omega"    insert "$\\omega$",
  84.         "Omega"    insert "$\\Omega$",
  85.         "pi"        insert "$\\pi$",
  86.         "theta"    insert "$\\theta$",
  87.         "Theta"    insert "$\\Theta$",
  88.         "rho"    insert "$\\rho$",
  89.         "sigma"    insert "$\\sigma$",
  90.         "Sigma"    insert "$\\Sigma$",
  91.         "tau"    insert "$\\tau$",
  92.         "upsilon"    insert "$\\upsilon$",
  93.         "Upsilon"    insert "$\\Upsilon$",
  94.         "xi"        insert "$\\xi$",
  95.         "Xi"        insert "$\\Xi$",
  96.         "psi"    insert "$\\psi$",
  97.         "Psi"    insert "$\\Psi$",
  98.         "zeta"    insert "$\\zeta$"
  99.         }
  100.  
  101. TexGreekVarMenu    :
  102.     menu "Tex Greek Variations" {
  103.         "Epsilon"    insert "$\\varepsilon$",
  104.         "Phi"    insert "$\\varphi$",
  105.         "Pi"        insert "$\\varpi$",
  106.         "Theta"    insert "$\\vartheta$",
  107.         "Rho"    insert "$\\varrho$",
  108.         "Sigma"    insert "$\\varsigma$"
  109.         }
  110.  
  111. TexEnclose :
  112.     if select=0 {                    ; nothing selected
  113.         insert QD                    ; insert Tex prefix string (e.g. {\it )
  114.         insert QN                    ; insert Tex suffix string (e.g. })
  115.         if (0 subchar QN) = ' ' {
  116.             WordBack BSKey            ; delete blank space and leave cursor
  117.             }
  118.         else if ((length QD - 1) subchar QD = ' ')  {
  119.             WordBack                ; put cursor after blank space
  120.             }
  121.         }
  122.     else if select=1 {                ; text selected. surround it.
  123.         FixRegion
  124.         markregion {
  125.             f past isgray        ; skip leading spaces
  126.             if inruler (toeol c); don't start on a ruler
  127.             if !beforemark (r past isgray) ; fix bug if region is blank
  128.             if inruler return    ; empty selection, so  quit
  129.             insert QD         ; put open delimiter & Tex codes here
  130.             while ('^J' csearch && (past isgray || inruler) && beforemark)
  131.                 (insert QD)    ; put open delimiter before each line
  132.             swapmark            ; go to end
  133.             r past isgray        ; skip trailing spaces
  134.             insert QN         ; put close delimiter & Tex codes here
  135.             }
  136.         Unselect
  137.         }
  138.     else (past isclose)
  139.  
  140. AltGDispatch :
  141.     (0->x $)->x
  142.     if (!menudelay || !(menudelay wait)) (status "\nGreek: ")
  143.     GetKey case {
  144.         'a'    insert "$\\alpha$",
  145.         'b'    insert "$\\beta$",
  146.         'c'    insert "$\\chi$",
  147.         'd'    insert "$\\delta$",
  148.         'D'    insert "$\\Delta$",
  149.         'e'    insert "$\\epsilon$",
  150.         'f'    insert "$\\phi$",
  151.         'F'    insert "$\\Phi$",
  152.         'g'    insert "$\\gamma$",
  153.         'G'    insert "$\\Gamma$",
  154.         'h'    insert "$\\eta$",
  155.         'i'    insert "$\\iota$",
  156.         'k'    insert "$\\kappa$",
  157.         'l'    insert "$\\lambda$",
  158.         'L'    insert "$\\Lambda$",
  159.         'm'    insert "$\\mu$",
  160.         'n'    insert "$\\nu$",
  161.         'o'    insert "$\\omega$",
  162.         'O'    insert "$\\Omega$",
  163.         'p'    insert "$\\pi$",
  164.         'q'    insert "$\\theta$",
  165.         'Q'    insert "$\\Theta$",
  166.         'r'    insert "$\\rho$",
  167.         's'    insert "$\\sigma$",
  168.         'S'    insert "$\\Sigma$",
  169.         't'    insert "$\\tau$",
  170.         'u'    insert "$\\upsilon$",
  171.         'U'    insert "$\\Upsilon$",
  172.         'x'    insert "$\\xi$",
  173.         'X'    insert "$\\Xi$",
  174.         'y'    insert "$\\psi$",
  175.         'Y'    insert "$\\Psi$",
  176.         'z'    insert "$\\zeta$",
  177.         $    1 Bell
  178.         }
  179.  
  180.  
  181. AltHDispatch :
  182.     (0->x $)->x
  183.     if (!menudelay || !(menudelay wait)) (status "\nHorizontal/Text: ")
  184.     GetKey case {
  185.         'i'    (set QD "{\\it ") (set QN "\\/}") TexEnclose,
  186.         'b'    (set QD "{\\bf ") (set QN "}") TexEnclose,
  187.         '['    insert "\\lbrack ",
  188.         ']'    insert "\\rbrack ",
  189.         '1'    insert "Abstract Not Available.",
  190.         '2'    insert "(Abstract shortened with permission of author.)",
  191.         '3'    insert "(Abstract shortened by UMI.)",
  192.         '4'    insert "(Copies available exclusively from Micrographics Department, Doheny Library, USC, Los Angeles, CA 90089-0182.)",
  193.         $    1 Bell
  194.         }
  195.  
  196. AltMDispatch :
  197.     (0->x $)->x
  198.     if (!menudelay || !(menudelay wait)) (status "\nMath: ")
  199.     GetKey case {
  200.         'c'    insert "$\\sp\\circ$",
  201.         'p'    insert "$\\sp\\prime$",
  202.         'P'    insert "$\\sp{\\prime\\prime}$",
  203.         'u'    (set QD "$\\sp{\\rm ") (set QN "}$") TexEnclose,
  204.         'd'    (set QD "$\\sb{\\rm ") (set QN "}$") TexEnclose,
  205.         's'    (set QD "$\\sbsp{") (set QN " }{}$") TexEnclose,
  206.         'x'    insert "$\\times$",
  207.         '$'    (set QD "$ ") (set QN " $") TexEnclose,
  208.         'f'    (set QD "\\ftn$\\sp") (set QN " $") TexEnclose,
  209.         't'    insert "$\\to$",
  210.         'g'    insert "$\\gets$",
  211.         'r'    (set QD "$\\langle ") (set QN "\\rangle$") TexEnclose,
  212.         'm'    insert "$\\sim$",
  213.         'l'    (set QD "${\\cal ") (set QN "}$") TexEnclose,
  214.         '\\'    insert "$\\backslash$",
  215.         'i'    insert "$\\infty$",
  216.         '&'    (set QD "<<<++$$\\eqalign{") (set QN " \\cr}$$++>>>") TexEnclose,
  217.         '+'    (set QD "<<<++$$\\vbox{") (set QN " }$$++>>>") TexEnclose,
  218.         '='    (set QD "<<<==$$\\vbox{\\vskip") (set QN " pt}$$==>>>") TexEnclose,
  219.         '-'    insert "$\\pm$",
  220.         'U'    (set QD "$\\sp") (set QN " $") TexEnclose,
  221.         'D'    (set QD "$\\sb") (set QN " $") TexEnclose,
  222.         $    1 Bell
  223.         }
  224.  
  225.  
  226. AltVDispatch :
  227.     (0->x $)->x
  228.     if (!menudelay || !(menudelay wait)) (status "\nvar Greek: ")
  229.     GetKey CharToAlpha case {
  230.         'E'    insert "$\\varepsilon$",
  231.         'F'    insert "$\\varphi$",
  232.         'P'    insert "$\\varpi$",
  233.         'Q'    insert "$\\vartheta$",
  234.         'R'    insert "$\\varrho$",
  235.         'S'    insert "$\\varsigma$",
  236.         $    1 Bell
  237.         }
  238.  
  239.  
  240. ;-----------------------------------------------------------------
  241. ; Control and Function Keys (Suggested)
  242.  
  243. ; Alt-Letter codes
  244. ~G : AltGDispatch
  245. ~H : AltHDispatch
  246. ~M : AltMDispatch
  247. ~T : TexFormatMenu
  248. ~V : AltVDispatch
  249.