davis@scr.slb.com (Paul Davis) (04/27/89)
A few misc. functions I use ALL the time in LaTeX mode:
enjoy -
Paul
--- cut here ---
;; all code Copyright (C) Schlumberger Cambridge Research, 1989
;; subject to the conditions of the GNU general public license.
;; extended copy of an idea by
;; Niall Mansfield <mansfiel%scr.slb.com@relay.cs.net> April 1988
(defun LaTeX-insert-begin-end (environment)
"Define a LaTeX environment. You are prompted for environment; the following
single character replies give the indicated types.
v verbatim
l list
d description
e enumerate
i itemize
q quote
f figure
c center
t tabular
Any other reply is used exactly as entered."
(interactive "sEnvironment: ")
(let ((environment-string ""))
(if (equal environment "q")
(setq environment-string "quote")
(if (equal environment "v")
(setq environment-string "verbatim")
(if (equal environment "e")
(setq environment-string "enumerate")
(if (equal environment "i")
(setq environment-string "itemize")
(if (equal environment "d")
(setq environment-string "description")
(if (equal environment "l")
(setq environment-string "list")
(if (equal environment "f")
(setq environment-string "figure")
(if (equal environment "t")
(setq environment-string "tabular")
(if (equal environment "c")
(setq environment-string "center")
(setq environment-string environment))))))))))
(insert "\\begin{"
environment-string
"}\n\n\\end{"
environment-string
"}\n"))
(forward-line -2))
;; new TeX-print function for the case where there is no -d filter
;; for lpr, so the command sent to *TeX-shell* needs to have
;; the filename stuck between TeX-dvi-processor-command and a pipe
;; to lpr. In addition, you can use dvi*ps options with this
;; form, which is not possible with an "lpr -d" command.
(defvar TeX-dvi-processor-command "dvi2ps"
"*Command used by \\[TeX-print] to process a .dvi
file and pass the output through a pipe to TeX-print-command.
The command sent to the shell is of the form:
TeX-dvi-processor-command <filename> | TeX-print-command &")
(defvar TeX-print-command "lpr"
"*Command used by \\[TeX-print] on the end of a pipe
from TeX-dvi-processor-command")
(defun TeX-print ()
"Print the .dvi file made by \\[TeX-region] or \\[TeX-buffer].
Uses the shell commands given by TeX-dvi-processor-command, and
TeX-print-command"
(interactive)
(TeX-recenter-output-buffer nil)
(send-string "TeX-shell"
(concat TeX-dvi-processor-command " " TeX-zap-file
" | " TeX-print-command " &\n")))
;; Stuff for previewing.
(defvar TeX-dvi-preview-command "preview"
"*Command used by \\[TeX-preview-buffer] and
\\[TeX-preview-region]. The filename is appended to this,
separated by a space")
(defun TeX-show-preview ()
"Preview the output from TeX, using TeX-dvi-preview-command"
(interactive)
(send-string "TeX-shell"
(concat TeX-dvi-preview-command " " TeX-zap-file " &\n")))
(defun TeX-preview-buffer ()
"Invoke TeX on the entire current buffer, and then preview
the output using TeX-preview-command."
(interactive)
(TeX-buffer)
(TeX-show-preview))
(defun TeX-preview-region ()
"Invoke TeX on the current region, including the buffer's header,
and then preview the output using TeX-preview-command."
(interactive)
(TeX-region (region-beginning) (region-end))
(TeX-show-preview))
;; quit without a core dump
(defun TeX-exit ()
"Exit from a TeX process running in a TeX-shell that has paused due
to a syntax error.
Equivalent to switching to the TeX-shell and typing x<RET> at the ? prompt"
(interactive)
(send-string "TeX-shell" "x\n"))
;; keybindings
(defun TeX-define-common-keys (keymap)
"Define the keys that we want defined both in TeX-mode
and in the TeX-shell."
(define-key keymap "\C-c\C-k" 'TeX-kill-job)
(define-key keymap "\C-c\C-l" 'TeX-recenter-output-buffer)
(define-key keymap "\C-c\C-q" 'TeX-show-print-queue)
(define-key keymap "\C-c\C-p" 'TeX-print)
(define-key keymap "\C-cx" 'TeX-exit)
)
(if TeX-mode-map
nil
(setq TeX-mode-map (make-sparse-keymap))
(TeX-define-common-keys TeX-mode-map)
(define-key TeX-mode-map "\"" 'TeX-insert-quote)
(define-key TeX-mode-map "\n" 'TeX-terminate-paragraph)
(define-key TeX-mode-map "\e}" 'up-list)
(define-key TeX-mode-map "\e{" 'TeX-insert-braces)
(define-key TeX-mode-map "\C-c\C-r" 'TeX-region)
(define-key TeX-mode-map "\C-c\C-b" 'TeX-buffer)
(define-key TeX-mode-map "\C-c\C-f" 'TeX-close-LaTeX-block)
(define-key TeX-mode-map "\C-c\C-v" 'TeX-preview-buffer)
(define-key TeX-mode-map "\C-c\C-e" 'TeX-preview-region)
(define-key TeX-mode-map "\C-c\C-i" 'LaTeX-insert-begin-end)
)