Mercurial > hgrepos > hgweb.cgi > yatex
comparison yatexprc.el @ 11:390df0e505da
Label completion works.
author | yuuji |
---|---|
date | Mon, 20 Sep 1993 08:56:09 +0000 |
parents | 9a56acb6c287 |
children | a7f397790cdc |
comparison
equal
deleted
inserted
replaced
10:796a929a7b13 | 11:390df0e505da |
---|---|
1 ;;; -*- Emacs-Lisp -*- | 1 ;;; -*- Emacs-Lisp -*- |
2 ;;; YaTeX process handler. | 2 ;;; YaTeX process handler. |
3 ;;; yatexprc.el rev.1.42 | 3 ;;; yatexprc.el rev.1.43 |
4 ;;; (c)1993 by HIROSE Yuuji.[yuuji@ae.keio.ac.jp] | 4 ;;; (c)1993 by HIROSE Yuuji.[yuuji@ae.keio.ac.jp] |
5 ;;; Last modified Tue May 4 21:49:59 1993 on figaro | 5 ;;; Last modified Sat Sep 18 04:12:18 1993 on 98fa |
6 ;;; $Id$ | 6 ;;; $Id$ |
7 | 7 |
8 (require 'yatex) | 8 (require 'yatex) |
9 | 9 |
10 (defvar YaTeX-typeset-process nil | 10 (defvar YaTeX-typeset-process nil |
11 "Process identifier for jlatex" | 11 "Process identifier for jlatex" |
12 ) | 12 ) |
13 (defvar YaTeX-typeset-buffer "*YaTeX-typesetting*" | 13 (defvar YaTeX-typeset-buffer "*YaTeX-typesetting*" |
14 "Process buffer for jlatex") | 14 "Process buffer for jlatex") |
15 | |
16 (defvar YaTeX-typeset-buffer-syntax nil | |
17 "*Syntax table for typesetting buffer") | |
18 | |
19 (if YaTeX-typeset-buffer-syntax nil | |
20 (setq YaTeX-typeset-buffer-syntax | |
21 (make-syntax-table (standard-syntax-table))) | |
22 (modify-syntax-entry ?\{ "w" YaTeX-typeset-buffer-syntax) | |
23 (modify-syntax-entry ?\} "w" YaTeX-typeset-buffer-syntax) | |
24 (modify-syntax-entry ?\[ "w" YaTeX-typeset-buffer-syntax) | |
25 (modify-syntax-entry ?\] "w" YaTeX-typeset-buffer-syntax) | |
26 ) | |
15 | 27 |
16 (defun YaTeX-typeset (command buffer) | 28 (defun YaTeX-typeset (command buffer) |
17 "Execute jlatex (or other) to LaTeX typeset." | 29 "Execute jlatex (or other) to LaTeX typeset." |
18 (interactive) | 30 (interactive) |
19 (if (and YaTeX-typeset-process | 31 (if (and YaTeX-typeset-process |
32 (setq YaTeX-typeset-process ;if UNIX | 44 (setq YaTeX-typeset-process ;if UNIX |
33 (start-process "LaTeX" buffer shell-file-name "-c" | 45 (start-process "LaTeX" buffer shell-file-name "-c" |
34 command)) | 46 command)) |
35 (set-process-sentinel YaTeX-typeset-process 'YaTeX-typeset-sentinel))) | 47 (set-process-sentinel YaTeX-typeset-process 'YaTeX-typeset-sentinel))) |
36 (setq current-TeX-buffer (buffer-name)) | 48 (setq current-TeX-buffer (buffer-name)) |
37 (other-window 1) | 49 (let ((window (selected-window))) |
38 (use-local-map YaTeX-typesetting-mode-map) | 50 (select-window (get-buffer-window buffer)) |
39 (setq mode-name "typeset") | 51 ;;(other-window 1) |
40 (if YaTeX-typeset-process ; if process is running (maybe on UNIX) | 52 (use-local-map YaTeX-typesetting-mode-map) |
41 (cond ((boundp 'MULE) | 53 (set-syntax-table YaTeX-typeset-buffer-syntax) |
42 (set-current-process-coding-system | 54 (setq mode-name "typeset") |
43 YaTeX-latex-message-code YaTeX-coding-system)) | 55 (if YaTeX-typeset-process ; if process is running (maybe on UNIX) |
44 ((boundp 'NEMACS) | 56 (cond ((boundp 'MULE) |
45 (set-kanji-process-code YaTeX-latex-message-code)))) | 57 (set-current-process-coding-system |
46 (message "Type SPC to continue.") | 58 YaTeX-latex-message-code YaTeX-coding-system)) |
47 (goto-char (point-max)) | 59 ((boundp 'NEMACS) |
48 (if (eq system-type 'ms-dos) (message "Done.") | 60 (set-kanji-process-code YaTeX-latex-message-code)))) |
49 (while (bobp) (message "Invoking process. wait...") (sleep-for 1)) | 61 (message "Type SPC to continue.") |
50 (insert (message " "))) | 62 (goto-char (point-max)) |
51 (if (bolp) (forward-line -1)) | 63 (if (eq system-type 'ms-dos) (message "Done.") |
52 (recenter -1) | 64 (while (bobp) (message "Invoking process. wait...") (sleep-for 1)) |
53 (other-window -1) | 65 (insert (message " "))) |
66 (if (bolp) (forward-line -1)) | |
67 (recenter -1) | |
68 (select-window window) | |
69 ;;(other-window -1) | |
70 ) | |
54 ) | 71 ) |
55 | 72 |
56 (defun YaTeX-typeset-sentinel (proc mes) | 73 (defun YaTeX-typeset-sentinel (proc mes) |
57 (cond ((null (buffer-name (process-buffer proc))) | 74 (cond ((null (buffer-name (process-buffer proc))) |
58 ;; buffer killed | 75 ;; buffer killed |
59 (set-process-buffer proc nil)) | 76 (set-process-buffer proc nil)) |
60 ((memq (process-status proc) '(signal exit)) | 77 ((memq (process-status proc) '(signal exit)) |
61 (let* ((obuf (current-buffer))) | 78 (let* ((obuf (current-buffer)) (pbuf (process-buffer proc)) |
79 (owin (selected-window)) win) | |
62 ;; save-excursion isn't the right thing if | 80 ;; save-excursion isn't the right thing if |
63 ;; process-buffer is current-buffer | 81 ;; process-buffer is current-buffer |
64 (unwind-protect | 82 (unwind-protect |
65 (progn | 83 (progn |
66 ;; Write something in *typesetting* and hack its mode line | 84 ;; Write something in *typesetting* and hack its mode line |
67 (if (equal (current-buffer) (process-buffer proc)) | 85 (YaTeX-pop-to-buffer pbuf) |
68 nil | |
69 (other-window 1) | |
70 (switch-to-buffer (process-buffer proc)) | |
71 (goto-char (point-max)) | |
72 (recenter -3) | |
73 (other-window -1)) | |
74 (set-buffer (process-buffer proc)) | 86 (set-buffer (process-buffer proc)) |
75 (goto-char (point-max)) | 87 (goto-char (point-max)) |
88 (recenter -3) | |
76 (insert ?\n "latex typesetting " mes) | 89 (insert ?\n "latex typesetting " mes) |
77 (forward-char -1) | 90 (forward-char -1) |
78 (insert " at " (substring (current-time-string) 0 -5) "\n") | 91 (insert " at " (substring (current-time-string) 0 -5) "\n") |
79 (forward-char 1) | 92 (forward-char 1) |
80 (setq mode-line-process | 93 (setq mode-line-process |
88 ) | 101 ) |
89 (setq YaTeX-typesetting-process nil) | 102 (setq YaTeX-typesetting-process nil) |
90 ;; Force mode line redisplay soon | 103 ;; Force mode line redisplay soon |
91 (set-buffer-modified-p (buffer-modified-p)) | 104 (set-buffer-modified-p (buffer-modified-p)) |
92 ) | 105 ) |
106 (select-window owin) | |
93 (set-buffer obuf)))) | 107 (set-buffer obuf)))) |
94 ) | 108 ) |
95 | 109 |
96 (defvar YaTeX-texput-file "texput.tex" | 110 (defvar YaTeX-texput-file "texput.tex" |
97 "*File name for temporary file of typeset-region." | 111 "*File name for temporary file of typeset-region." |
206 )) | 220 )) |
207 (YaTeX-typeset cmd YaTeX-typeset-buffer) | 221 (YaTeX-typeset cmd YaTeX-typeset-buffer) |
208 (put 'dvi2-command 'region nil)) | 222 (put 'dvi2-command 'region nil)) |
209 ) | 223 ) |
210 | 224 |
211 (defun YaTeX-bibtex-buffer () | 225 (defun YaTeX-call-command-on-file (base-cmd buffer) |
212 "Pass the bibliography data of editing file to bibtex." | |
213 (interactive) | |
214 (YaTeX-save-buffers) | 226 (YaTeX-save-buffers) |
215 (YaTeX-typeset | 227 (YaTeX-typeset |
216 (read-string "BibTeX command: " | 228 (read-string "Call command: " |
217 (concat bibtex-command " " (YaTeX-get-preview-file-name))) | 229 (concat base-cmd " " (YaTeX-get-preview-file-name))) |
218 "*YaTeX-bibtex*" ) | 230 buffer) |
231 ) | |
232 | |
233 (defun YaTeX-bibtex-buffer (cmd) | |
234 "Pass the bibliography data of editing file to bibtex." | |
235 (interactive) | |
236 (YaTeX-save-buffers) | |
237 (YaTeX-call-command-on-file cmd "*YaTeX-bibtex*" ) | |
219 ) | 238 ) |
220 | 239 |
221 (defun YaTeX-kill-typeset-process (proc) | 240 (defun YaTeX-kill-typeset-process (proc) |
222 "Kill process PROC after sending signal to PROC. | 241 "Kill process PROC after sending signal to PROC. |
223 PROC should be process identifier." | 242 PROC should be process identifier." |
267 | 286 |
268 (defun YaTeX-prev-error () | 287 (defun YaTeX-prev-error () |
269 "Visit previous error. The reason why not NEXT-error is to | 288 "Visit previous error. The reason why not NEXT-error is to |
270 avoid make confliction of line numbers by editing." | 289 avoid make confliction of line numbers by editing." |
271 (interactive) | 290 (interactive) |
272 (let ((cur-buf (buffer-name)) | 291 (let ((cur-buf (buffer-name)) (cur-win (selected-window)) |
273 YaTeX-error-line error-buffer) | 292 YaTeX-error-line typeset-win error-buffer error-win) |
274 (if (null (get-buffer YaTeX-typeset-buffer)) | 293 (if (null (get-buffer YaTeX-typeset-buffer)) |
275 (message "There is no output buffer of typesetting.") | 294 (message "There is no output buffer of typesetting.") |
276 (pop-to-buffer YaTeX-typeset-buffer) | 295 (YaTeX-pop-to-buffer YaTeX-typeset-buffer) |
296 (setq typeset-win (selected-window)) | |
277 (if (eq system-type 'ms-dos) | 297 (if (eq system-type 'ms-dos) |
278 (if (search-backward latex-dos-emergency-message nil t) | 298 (if (search-backward latex-dos-emergency-message nil t) |
279 (progn (goto-char (point-max)) | 299 (progn (goto-char (point-max)) |
280 (setq error-regexp latex-error-regexp)) | 300 (setq error-regexp latex-error-regexp)) |
281 (beginning-of-line) | 301 (beginning-of-line) |
287 (goto-char (point-max)) | 307 (goto-char (point-max)) |
288 (setq error-regexp latex-error-regexp)) | 308 (setq error-regexp latex-error-regexp)) |
289 (beginning-of-line) | 309 (beginning-of-line) |
290 (setq error-regexp latex-warning-regexp)))) | 310 (setq error-regexp latex-warning-regexp)))) |
291 (if (re-search-backward error-regexp nil t) | 311 (if (re-search-backward error-regexp nil t) |
292 (save-restriction | 312 (setq YaTeX-error-line |
293 (set-mark-command nil) | 313 (string-to-int |
294 (end-of-line) | 314 (buffer-substring |
295 (narrow-to-region (point) (mark)) | 315 (progn (goto-char (match-beginning 0)) |
296 (goto-char (point-min)) | 316 (skip-chars-forward "^0-9") |
297 (re-search-forward "[0-9]") | 317 (point)) |
298 (forward-char -1) | 318 (progn (skip-chars-forward "0-9") (point))))) |
299 (set-mark (point)) | |
300 (skip-chars-forward "0-9") | |
301 (narrow-to-region (point) (mark)) | |
302 (goto-char (point-min)) | |
303 (setq YaTeX-error-line (read (current-buffer)))) | |
304 (message "No more error on %s" cur-buf) | 319 (message "No more error on %s" cur-buf) |
305 (ding) | 320 (ding)) |
306 ) | 321 (setq error-buffer (YaTeX-get-error-file cur-buf)); arg. is default buf. |
307 (setq error-buffer (YaTeX-get-error-file cur-buf)) | 322 (setq error-win (get-buffer-window error-buffer)) |
308 (other-window -1) | 323 (select-window cur-win) |
309 (switch-to-buffer cur-buf) | 324 (if (or (null YaTeX-error-line) (equal 0 YaTeX-error-line)) |
310 (if (null YaTeX-error-line) | |
311 nil | 325 nil |
312 ;; if warning or error found | 326 ;; if warning or error found |
313 (YaTeX-switch-to-buffer error-buffer) | 327 (if error-win (select-window error-win) |
328 (YaTeX-switch-to-buffer error-buffer) | |
329 (setq error-win (selected-window))) | |
314 (goto-line YaTeX-error-line) | 330 (goto-line YaTeX-error-line) |
315 (message "latex error or warning in '%s' at line: %d" | 331 (message "latex error or warning in '%s' at line: %d" |
316 error-buffer YaTeX-error-line) | 332 error-buffer YaTeX-error-line) |
317 (other-window 1) | 333 (select-window typeset-win) |
318 (skip-chars-backward "[0-9]") | 334 (skip-chars-backward "[0-9]") |
319 (recenter (/ (window-height) 2)) | 335 (recenter (/ (window-height) 2)) |
320 (sit-for 3) | 336 (sit-for 3) |
321 (forward-char -1) | 337 (forward-char -1) |
322 (other-window -1) | 338 (select-window error-win) |
323 ))) | 339 ))) |
324 ) | 340 ) |
325 | 341 |
326 (defun YaTeX-jump-error-line () | 342 (defun YaTeX-jump-error-line () |
327 "Jump corresponding line on latex command's error message." | 343 "Jump corresponding line on latex command's error message." |
370 | 386 |
371 (defun YaTeX-view-error () | 387 (defun YaTeX-view-error () |
372 (interactive) | 388 (interactive) |
373 (if (null (get-buffer YaTeX-typeset-buffer)) | 389 (if (null (get-buffer YaTeX-typeset-buffer)) |
374 (message "No typeset buffer found.") | 390 (message "No typeset buffer found.") |
375 (pop-to-buffer YaTeX-typeset-buffer) | 391 (let ((win (selected-window))) |
376 (goto-char (point-max)) | 392 (YaTeX-pop-to-buffer YaTeX-typeset-buffer) |
377 (recenter -1) | 393 (goto-char (point-max)) |
378 (other-window -1)) | 394 (recenter -1) |
395 (select-window win))) | |
379 ) | 396 ) |
380 | 397 |
381 (defun YaTeX-get-error-file (default) | 398 (defun YaTeX-get-error-file (default) |
382 "Get current processing file from typesetting log." | 399 "Get current processing file from typesetting log." |
383 (save-excursion | 400 (save-excursion |
589 (y-or-n-p (format "Save %s" (buffer-name buf)))) | 606 (y-or-n-p (format "Save %s" (buffer-name buf)))) |
590 (save-buffer buf))) | 607 (save-buffer buf))) |
591 (buffer-list))) | 608 (buffer-list))) |
592 ) | 609 ) |
593 | 610 |
611 (defun YaTeX-pop-to-buffer (buffer &optional win) | |
612 (if (setq win (get-buffer-window buffer)) | |
613 (select-window win) | |
614 (pop-to-buffer buffer)) | |
615 ) | |
616 | |
594 (provide 'yatexprc) | 617 (provide 'yatexprc) |