yatex

annotate yatexadd.el @ 8:c746646cecf5

Restrict YaTeX:framebox in picture environment.
author yuuji
date Tue, 04 May 1993 13:00:17 +0000
parents 49be9ccb0b65
children 390df0e505da
rev   line source
yuuji@6 1 ;;; -*- Emacs-Lisp -*-
yuuji@8 2 ;;; YaTeX add-in functions.
yuuji@8 3 ;;; yatexadd.el rev.3
yuuji@6 4 ;;; (c)1991-1993 by HIROSE Yuuji.[yuuji@ae.keio.ac.jp]
yuuji@8 5 ;;; Last modified Tue May 4 21:50:37 1993 on figaro
yuuji@8 6 ;;; $Id$
yuuji@6 7
yuuji@6 8 (provide 'yatexadd)
yuuji@6 9
yuuji@6 10 ;;;
yuuji@6 11 ;;Sample functions for LaTeX environment.
yuuji@6 12 ;;;
yuuji@6 13 (defvar YaTeX:tabular-default-rule
yuuji@6 14 "@{\\vrule width 1pt\\ }c|c|c@{\\ \\vrule width 1pt}"
yuuji@6 15 "*Your favorite default rule format."
yuuji@6 16 )
yuuji@6 17 (defun YaTeX:tabular ()
yuuji@8 18 "YaTeX add-in function for tabular environment."
yuuji@8 19 (let (bars (rule "") (j 0) (loc (YaTeX:read-position "tb")))
yuuji@6 20 (setq bars (string-to-int (read-string "Number of `|': ")))
yuuji@6 21 (if (> bars 0)
yuuji@6 22 (while (< j bars) (setq rule (concat rule "|")) (setq j (1+ j)))
yuuji@6 23 (setq rule YaTeX:tabular-default-rule))
yuuji@6 24 (setq rule (read-string "rule format: " rule))
yuuji@6 25
yuuji@8 26 (message "")
yuuji@8 27 (format "%s{%s}" loc rule))
yuuji@6 28 )
yuuji@6 29
yuuji@8 30 (defun YaTeX:read-position (oneof)
yuuji@8 31 (let ((pos "") loc)
yuuji@6 32 (while (not (string-match
yuuji@8 33 (setq loc (read-key-sequence
yuuji@8 34 (format "Position (`%s') [%s]: " oneof pos)))
yuuji@6 35 "\r\^g\n"))
yuuji@6 36 (cond
yuuji@8 37 ((string-match loc oneof)
yuuji@6 38 (if (not (string-match loc pos))
yuuji@6 39 (setq pos (concat pos loc))))
yuuji@6 40 ((and (string-match loc "\C-h\C-?") (> (length pos) 0))
yuuji@6 41 (setq pos (substring pos 0 (1- (length pos)))))
yuuji@6 42 (t
yuuji@6 43 (ding)
yuuji@8 44 (message "Please input one of `%s'." oneof)
yuuji@6 45 (sit-for 3))))
yuuji@8 46 (message "")
yuuji@8 47 (if (string= pos "") ""
yuuji@8 48 (concat "[" pos "]")))
yuuji@8 49 )
yuuji@8 50
yuuji@8 51 (defun YaTeX:table ()
yuuji@8 52 "YaTeX add-in function for table environment."
yuuji@8 53 (YaTeX:read-position "htbp")
yuuji@6 54 )
yuuji@6 55
yuuji@6 56 (defun YaTeX:description ()
yuuji@6 57 "Truly poor service:-)"
yuuji@6 58 (setq single-command "item[]")
yuuji@8 59 ""
yuuji@6 60 )
yuuji@6 61
yuuji@6 62 (defun YaTeX:itemize ()
yuuji@6 63 "It's also poor service."
yuuji@6 64 (setq single-command "item")
yuuji@8 65 ""
yuuji@6 66 )
yuuji@6 67
yuuji@6 68 (fset 'YaTeX:enumerate 'YaTeX:itemize)
yuuji@8 69
yuuji@8 70 ;;;
yuuji@8 71 ;;Sample functions for section-type command.
yuuji@8 72 ;;;
yuuji@8 73 (defun YaTeX:multiput ()
yuuji@8 74 (concat (YaTeX:read-coordinates "Pos")
yuuji@8 75 (YaTeX:read-coordinates "Step")
yuuji@8 76 "{" (read-string "How many times: ") "}")
yuuji@8 77 )
yuuji@8 78
yuuji@8 79 (defun YaTeX:put ()
yuuji@8 80 (YaTeX:read-coordinates "Pos")
yuuji@8 81 )
yuuji@8 82
yuuji@8 83 (defun YaTeX:makebox ()
yuuji@8 84 (concat (YaTeX:read-coordinates "Dimension")
yuuji@8 85 (YaTeX:read-position "lrtb"))
yuuji@8 86 )
yuuji@8 87
yuuji@8 88 (defun YaTeX:framebox ()
yuuji@8 89 (if (YaTeX-quick-in-environment-p "picture")
yuuji@8 90 (YaTeX:makebox))
yuuji@8 91 )
yuuji@8 92
yuuji@8 93 (defun YaTeX:dashbox ()
yuuji@8 94 (concat "{" (read-string "Dash dimension: ") "}"
yuuji@8 95 (YaTeX:read-coordinates "Dimension"))
yuuji@8 96 )
yuuji@8 97
yuuji@8 98 (defun YaTeX:read-coordinates (&optional mes varX varY)
yuuji@8 99 (concat
yuuji@8 100 "("
yuuji@8 101 (read-string (format "%s %s: " (or mes "Dimension") (or varX "X")))
yuuji@8 102 ","
yuuji@8 103 (read-string (format "%s %s: " (or mes "Dimension") (or varY "Y")))
yuuji@8 104 ")")
yuuji@8 105 )
yuuji@8 106
yuuji@8 107 ;;;
yuuji@8 108 ;;Sample functions for maketitle-type command.
yuuji@8 109 ;;;
yuuji@8 110 (defun YaTeX:sum ()
yuuji@8 111 "Read range of summation."
yuuji@8 112 (YaTeX:check-completion-type 'maketitle)
yuuji@8 113 (concat (YaTeX:read-boundary "_") (YaTeX:read-boundary "^"))
yuuji@8 114 )
yuuji@8 115
yuuji@8 116 (fset 'YaTeX:int 'YaTeX:sum)
yuuji@8 117
yuuji@8 118 (defun YaTeX:lim ()
yuuji@8 119 "Insert limit notation of \\lim."
yuuji@8 120 (YaTeX:check-completion-type 'maketitle)
yuuji@8 121 (let ((var (read-string "Variable: ")) limit)
yuuji@8 122 (if (string= "" var) ""
yuuji@8 123 (setq limit (read-string "Limit ($ means infinity): "))
yuuji@8 124 (if (string= "$" limit) (setq limit "\\infty"))
yuuji@8 125 (concat "_{" var " \\rightarrow " limit "}")))
yuuji@8 126 )
yuuji@8 127
yuuji@8 128 (defun YaTeX:gcd ()
yuuji@8 129 "Add-in function for \\gcd(m,n)."
yuuji@8 130 (YaTeX:check-completion-type 'maketitle)
yuuji@8 131 (YaTeX:read-coordinates "\\gcd" "(?,)" "(,?)")
yuuji@8 132 )
yuuji@8 133
yuuji@8 134 (defun YaTeX:read-boundary (ULchar)
yuuji@8 135 "Read boundary usage by _ or ^. _ or ^ is indicated by argument ULchar."
yuuji@8 136 (let ((bndry (read-string (concat ULchar "{...}: "))))
yuuji@8 137 (if (string= bndry "") ""
yuuji@8 138 (concat ULchar "{" bndry "}")))
yuuji@8 139 )
yuuji@8 140
yuuji@8 141 (defun YaTeX:check-completion-type (type)
yuuji@8 142 "Check valid completion type."
yuuji@8 143 (if (not (eq type YaTeX-current-completion-type))
yuuji@8 144 (error "This should be completed with %s-type completion." type))
yuuji@8 145 )