[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[AUCTeX-diffs] Changes to auctex/tex-jp.el,v
From: |
Masayuki Ataka |
Subject: |
[AUCTeX-diffs] Changes to auctex/tex-jp.el,v |
Date: |
Tue, 02 Oct 2012 04:56:34 +0000 |
CVSROOT: /sources/auctex
Module name: auctex
Changes by: Masayuki Ataka <ataka> 12/10/02 04:56:33
Index: tex-jp.el
===================================================================
RCS file: /sources/auctex/auctex/tex-jp.el,v
retrieving revision 5.101
retrieving revision 5.102
diff -u -b -r5.101 -r5.102
--- tex-jp.el 2 Oct 2012 02:38:43 -0000 5.101
+++ tex-jp.el 2 Oct 2012 04:56:33 -0000 5.102
@@ -40,14 +40,20 @@
"Japanese support in AUCTeX."
:group 'AUCTeX)
-;; TeX-format-list need to be set in tex.el, not tex-jp.el.
-;(setq TeX-format-list
-; (append '(("JLATEX" japanese-latex-mode
-;
"\\\\\\(documentstyle\\|documentclass\\)[^%\n]*{\\(j[s-]?\\|t\\)\\(article\\|report\\|book\\|slides\\)")
-; ("JTEX" japanese-plain-tex-mode
-; "-- string likely in Japanese TeX --"))
-; TeX-format-list))
+(defcustom japanese-TeX-engine-default 'ptex
+ "Default TeX engine for Japanese TeX."
+ :group 'AUCTeX-jp
+ :type '(choice (const :tag "pTeX" ptex)
+ (const :tag "jTeX" jtex)
+ (const :tag "upTeX" uptex)))
+
+(setq TeX-engine-alist-builtin
+ (append TeX-engine-alist-builtin
+ '((ptex "pTeX" "ptex %(kanjiopt)" "platex %(kanjiopt)" "eptex")
+ (jtex "jTeX" "jtex" "jlatex" nil)
+ (uptex "upTeX" "euptex" "uplatex" "euptex"))))
+;; é 調ã«è¡ãã°ä¸è¦ã«ãªãã
(defcustom japanese-TeX-command-list
;; Changed to double quotes for Windows afflicted people. I don't
;; use the %(latex) and %(tex) shorthands here because I have not
@@ -56,14 +62,15 @@
TeX-run-TeX nil (plain-tex-mode) :help "Run NTT jTeX")
("jLaTeX" "%(PDF)jlatex %`%S%(PDFout)%(mode)%' %t"
TeX-run-TeX nil (latex-mode) :help "Run NTT jLaTeX")
- ("pTeX" "%(PDF)ptex %`%S%(PDFout)%(mode)%' %t"
+ ("pTeX" "%(PDF)ptex %(kanjiopt)%`%S%(PDFout)%(mode)%' %t"
TeX-run-TeX nil (plain-tex-mode) :help "Run ASCII pTeX")
- ("pLaTeX" "%(PDF)platex %`%S%(PDFout)%(mode)%' %t"
+ ("pLaTeX" "%(PDF)platex %(kanjiopt)%`%S%(PDFout)%(mode)%' %t"
TeX-run-TeX nil (latex-mode) :help "Run ASCII pLaTeX")
- ("Mendex" "mendex %s" TeX-run-command nil t :help "Create index file with
mendex")
- ("jBibTeX" "jbibtex %s" TeX-run-BibTeX nil t :help "Run jBibTeX"))
+ ("Mendex" "mendex %(mendexkopt)%s" TeX-run-command nil t :help "Create
index file with mendex")
+ ("jBibTeX" "jbibtex %s" TeX-run-BibTeX nil t :help "Run jBibTeX")
+ ("pBibTeX" "pbibtex %(kanjiopt)%s" TeX-run-BibTeX nil t :help "Run
pBibTeX"))
"Additional list of commands, especially for Japanese.
-For detail, see `TeX-command-list', which this list is appended to."
+For detail, see `TeX-command-list', to which this list is appended."
:group 'AUCTeX-jp
:type '(repeat (group :value ("" "" TeX-run-command nil t)
(string :tag "Name")
@@ -82,6 +89,7 @@
(function-item TeX-run-silent)
(function-item TeX-run-discard-foreground)
(function-item TeX-run-function)
+ (function-item TeX-run-discard-or-function)
(function :tag "Other"))
(boolean :tag "Prompt")
(choice :tag "Modes"
@@ -94,16 +102,155 @@
(const :tag "AmSTeX" ams-tex-mode)))
(repeat :tag "Menu elements" :inline t sexp))))
+;; é 調ã«è¡ãã°ä¸è¦ã«ãªãã
(setq TeX-command-list
(append japanese-TeX-command-list
'(("-" "" ignore nil t)) ;; separator for command menu
TeX-command-list))
+;; æ«å®å¦ç½®ãtex.el ã«åãè¾¼ãã§ããããã¨ããã
+(setcar (cdr (assoc "BibTeX" TeX-command-list)) "%(bibtex) %s")
+(setcar (cdr (assoc "Index" TeX-command-list)) "%(makeindex) %s")
+
+;; æ«å®å¦ç½®ãtex.el ã«åãè¾¼ãã§ããããã¨ããã
+(setq TeX-expand-list
+ (append
+ TeX-expand-list
+ '(
+ ;; -kanji ãªãã·ã§ã³ã®æååãä½ãã
+ ("%(kanjiopt)" (lambda ()
+ (if (and
+ ;; non-mule 㪠emacsen ã¯ããããæ¥æ¬èª
+ ;; ææ¸ã typeset
ãããã¨ã¯èããªãã¦ã
+ ;; ããã
ãããã¨ã¯æããã©ä¸å¿â¦ã
+ (featurep 'mule)
+ japanese-TeX-use-kanji-opt-flag)
+ (let ((str (japanese-TeX-get-encoding-string)))
+ (if str (format " -kanji=%s " str) ""))
+ "")))
+ ;; pbibtex, jbibtex, upbibtex, bibtex
ã®ä¸ããé©åãªãã®ãé¸æããã
+ ("%(bibtex)" (lambda ()
+ (cond
+ ((eq TeX-engine 'ptex)
+ ;; pLaTeX ç¨æ¥æ¬èª BibTeX ã pbibtex ã«ãªã£ã
+ ;; ã®ã¯æ¯è¼çæè¿ãªã®ã§ãã¾ã jbibtex
ã®äººãã
+ ;; ããªãã«ããã ããã
+ (if (executable-find "pbibtex")
+ "pbibtex %(kanjiopt)" "jbibtex"))
+ ((eq TeX-engine 'jtex) "jbibtex")
+ ((eq TeX-engine 'uptex) "upbibtex")
+ (t "bibtex"))))
+ ;; mendex 㨠makeindex ã®é©åãªæ¹ãé¸æããã
+ ("%(makeindex)" (lambda ()
+ (if (memq TeX-engine '(ptex uptex))
+ "mendex %(mendexkopt)" "makeindex")))
+ ;; mendex ç¨æ¥æ¬èªã³ã¼ããªãã·ã§ã³ã
+ ("%(mendexkopt)" (lambda ()
+ (if (and (featurep 'mule)
+ japanese-TeX-use-kanji-opt-flag)
+ (let ((str (japanese-TeX-get-encoding-string)))
+ ;; ï¼æåç®ã大æåã«ã
+ (if str (format " -%c " (upcase (aref str 0)))
+ ""))
+ "")))
+ ;; pxdvi 㨠%(o?)xdvi ã®é©åãªæ¹ãé¸æããã
+ ("%(xdvi)" (lambda ()
+ ;; pxdvi 㯠ptex, jtex å
±ç¨ãªã®ã§ã
+ ;; japanese mode ãã©ããã§å¤å®ããã° OKã
+ (if (and japanese-TeX-mode (executable-find "pxdvi"))
+ "pxdvi" "%(o?)xdvi"))))))
+
+;;; Viewing (new implementation)
+
+(unless (get 'TeX-view-predicate-list 'saved-value)
+ (setq TeX-view-predicate-list
+ '((paper-a4
+ (TeX-match-style
+ "\\`\\(a4j\\|a4paper\\|a4dutch\\|a4wide\\|sem-a4\\)\\'"))
+ (paper-a5
+ (TeX-match-style
+ "\\`\\(a5j\\|a5paper\\|a5comb\\)\\'"))
+ ;; jarticle ãªã©ã 㨠b4paper, b5paper 㯠JIS B ç³»åã
+ ;; j-article ãªã©ã®æ¹ã«ã¯ a4j, b5j
ã¨ãã£ããªãã·ã§ã³ã¯ãªãã
+ (paper-b5 ; ISO B5
+ (and (TeX-match-style "\\`b5paper\\'")
+ (not (memq TeX-engine '(ptex uptex)))))
+ (paper-b5jis ; JIS B5
+ (or (TeX-match-style "\\`b5j\\'")
+ (and (TeX-match-style "\\`b5paper\\'")
+ (memq TeX-engine '(ptex uptex)))))
+ ;; article ãªã©ã«ã¯ b4paper ã¨ãããªãã·ã§ã³ã¯ãªãã
+ ;; b4paper ã¨ãããªãã·ã§ã³ããã£ãã JIS B4
ã¨è¦ãªãã
+ (paper-b4jis
+ (TeX-match-style "\\`\\(b4j\\|b4paper\\)\\'")))))
+;; jsarticle ã ã¨ä»ã«ããã£ã¨å¤åã®ãªãã·ã§ã³ããããã
+;; å
¨é¨é¢åè¦ã¦ãã¨ããªããªãã®ã§ããããããã§ããã
ããã
+;; jsarticle.el ã jsbook.el ã§è¿½å
åã®å¦çãä»è¾¼ãã°ããã®ããç¥ããªãã
+
+;; æ«å®å¦ç½®ãtex.el ã«åãè¾¼ãã§ããããã¨ããã
+(unless (get 'TeX-view-program-list 'saved-value)
+ (setq TeX-view-program-list
+ (cond
+ ;; http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?AUCTeX
+ ;; ãåèã«ãã¦ã¿ãã
+ ((eq system-type 'windows-nt)
+ '(("Dviout" ("dviout -1 "
+ ((paper-a4 paper-portrait) " -y=A4 ")
+ ((paper-a4 paper-landscape) " -y=A4L ")
+ ((paper-a5 paper-portrait) " -y=A5 ")
+ ((paper-a5 paper-landscape) " -y=A5L ")
+ ((paper-b5 paper-portrait) " -y=E5 ")
+ ((paper-b5 paper-landscape) " -y=E5L ")
+ ((paper-b4jis paper-portrait) " -y=B4 ")
+ ((paper-b4jis paper-landscape) " -y=B4L ")
+ ((paper-b5jis paper-portrait) " -y=B5 ")
+ ((paper-b5jis paper-landscape) " -y=B5L ")
+ (paper-legal " -y=Legal ")
+ (paper-letter " -y=Letter ")
+ (paper-executive " -y=Exective ")
+ "%o" (mode-io-correlate " \"# %n '%b'\"")))
+ ("TeXworks" "TeXworks %o")
+ ("SumatraPDF" "SumatraPDF -reuse-instance %o"
+ (mode-io-correlate " -forward-search \"%b\" %n"))
+ ("MuPDF" "mupdf %o")))
+ ;; ããã§ããã®ãã©ããã¯ä¸å®ã
+ ((eq system-type 'darwin)
+ '(("Preview" "open -a Preview.app %o")
+ ("TeXShop" "open -a TeXShop.app %o")
+ ("TeXworks" "open -a TeXworks.app %o")
+ ("Skim" "open -a Skim.app %o")
+ ("displayline" "displayline %n %o %b")
+ ("PictPrinter" "open -a PictPrinter.app %d")
+ ("Mxdvi" "open -a Mxdvi.app %d")
+ ("open" "open %o")))
+ (t
+ (setcar (cadr (assoc "xdvi" TeX-view-program-list-builtin))
+ "%(xdvi) -unique")
+ '(("TeXworks" "texworks %o")
+ ("zathura" "zathura %o")
+ ("MuPDF" "mupdf %o"))))))
+
+;; ãã㯠tex.el ã«åãå
¥ãã¦ãããã®ã¯é£ãããï¼
+;; tex-jp.el ãèªã¿è¾¼ã¾ããã ãã§ãdvi viewer ã®ããã©ã«ãã
dviout ã«
+;; ãªã£ã¦ãã¾ãã®ã¯æµæã大ããããã
+(unless (get 'TeX-view-program-selection 'saved-value)
+ (setq TeX-view-program-selection
+ (append
+ (cond
+ ((eq system-type 'windows-nt)
+ '((output-dvi "Dviout")
+ (output-pdf "TeXworks")))
+ ((eq system-type 'darwin)
+ '((output-pdf "Preview")))
+ (t
+ nil))
+ TeX-view-program-selection)))
+
(mapc (lambda (dir) (add-to-list 'TeX-macro-global dir t))
(or (TeX-tree-expand
'("$SYSTEXMF" "$TEXMFLOCAL" "$TEXMFMAIN" "$TEXMFDIST")
- "platex" '("/ptex/" "/jbibtex/bst/"))
- '("/usr/share/texmf/ptex/" "/usr/share/texmf/jbibtex/bst/")))
+ "platex" '("/ptex/" "/pbibtex/bst/"))
+ '("/usr/share/texmf/ptex/" "/usr/share/texmf/pbibtex/bst/")))
(mapc (lambda (dir) (add-to-list 'TeX-macro-global dir t))
(or (TeX-tree-expand
@@ -111,23 +258,14 @@
"jlatex" '("/jtex/" "/jbibtex/bst/"))
'("/usr/share/texmf/jtex/" "/usr/share/texmf/jbibtex/bst/")))
-;; Menus
-
-;; (easy-menu-define plain-TeX-mode-command-menu
-;; plain-TeX-mode-map
-;; "Command menu used in TeX mode."
-;; (TeX-mode-specific-command-menu 'plain-tex-mode))
-
-;; (easy-menu-define LaTeX-mode-command-menu
-;; LaTeX-mode-map
-;; "Command menu used in LaTeX mode."
-;; (TeX-mode-specific-command-menu 'latex-mode))
-
+;; é 調ã«è¡ãã°ä¸è¦ã«ãªãã
(setq LaTeX-command-style
- (append '(("^j-\\(article\\|report\\|book\\)$"
- "%(PDF)jlatex %S%(PDFout)")
- ("^[jt]s?\\(article\\|report\\|book\\)$"
- "%(PDF)platex %S%(PDFout)"))
+ (append '(("\\`u[jt]\\(article\\|report\\|book\\)\\'\\|\\`uplatex\\'"
+ "%(PDF)uplatex %(kanjiopt)%S%(PDFout)")
+ ("\\`[jt]s?\\(article\\|report\\|book\\)\\'"
+ "%(PDF)platex %(kanjiopt)%S%(PDFout)")
+ ("\\`j-\\(article\\|report\\|book\\)\\'"
+ "%(PDF)jlatex %(kanjiopt)%S%(PDFout)"))
LaTeX-command-style))
(defcustom japanese-TeX-error-messages t
@@ -162,12 +300,14 @@
)
+;; é 調ã«è¡ãã°ä¸è¦ã«ãªãã
(defcustom japanese-TeX-command-default "pTeX"
"*The default command for `TeX-command' in the japanese-TeX mode."
:group 'AUCTeX-jp
:type 'string)
(make-variable-buffer-local 'japanese-TeX-command-default)
+;; é 調ã«è¡ãã°ä¸è¦ã«ãªãã
(defcustom japanese-LaTeX-command-default "LaTeX"
"*The default command for `TeX-command' in the japanese-LaTeX mode."
:group 'AUCTeX-jp
@@ -211,6 +351,55 @@
TeX-japanese-process-input-coding-system)))
(setq TeX-after-start-process-function
'japanese-TeX-set-process-coding-system)
+
+(defcustom japanese-TeX-use-kanji-opt-flag t
+ "Add kanji option to Japanese pTeX family if non-nil."
+ :group 'AUCTeX-jp
+ :type 'boolean)
+
+(defun japanese-TeX-coding-ejsu (coding-system)
+ "Convert japanese CODING-SYSTEM to mnemonic string.
+euc-jp: \"euc\"
+jis: \"jis\"
+shift_jis: \"sjis\"
+utf-8: \"utf8\"
+Return nil otherwise."
+ (let ((base (coding-system-base coding-system)))
+ (cdr (assq base
+ '((japanese-iso-8bit . "euc")
+ (iso-2022-jp . "jis")
+ (japanese-shift-jis . "sjis")
+ (utf-8 . "utf8")
+
+ ;; xemacs ã ã¨ä»¥ä¸ã®ååã¯éãããâ¦ã
+ (euc-jis-2004 . "euc")
+ (iso-2022-jp-2004 . "jis")
+ (japanese-shift-jis-2004 . "sjis")
+
+ (japanese-cp932 . "sjis")
+ (eucjp-ms . "euc"))))))
+
+(defun japanese-TeX-get-encoding-string ()
+ "Return coding option string for Japanese pTeX family.
+For inappropriate encoding, nil instead."
+ (or (japanese-TeX-coding-ejsu buffer-file-coding-system)
+
+ ;; è¤æ°ãã¡ã¤ã«ã«åå²ããææ¸ã®å ´åãemacs
ã§éãããã¡ã¤ã«ãæ¥æ¬
+ ;;
èªãï¼åãå«ã¾ãªããã¨ãããããã®ããããã®ãã¡ã¤ã«ã®
+ ;; buffer-file-coding-system
ã¯æ¥æ¬èªã³ã¼ããä¸å®ã«çã¾ã£ã¦
+ ;; ãã¾ãå¯è½æ§ãããããã®ãããªå ´åãmaster file ã®
+ ;; buffer-file-coding-system ã使ãã
+ (if (stringp TeX-master) ; èªåãåãã¡ã¤ã«ã®ã¨ã
+ (let ((buf (get-file-buffer (TeX-master-file t))))
+ (if buf
+ (japanese-TeX-coding-ejsu
+ (with-current-buffer buf buffer-file-coding-system)))))
+
+ ;; ããã§ã決ããããªãå ´å㯠buffer-file-coding-system ã®
+ ;; default å¤ã使ãã
+ (japanese-TeX-coding-ejsu
+ (default-value 'buffer-file-coding-system))))
+
)
;;; Japanese TeX modes
@@ -231,7 +420,8 @@
(defun japanese-plain-tex-mode-initialization ()
"Japanese plain-TeX specific initializations."
(when japanese-TeX-mode
- (setq TeX-command-default japanese-TeX-command-default)))
+; (setq TeX-command-default japanese-TeX-command-default)
+ (TeX-engine-set japanese-TeX-engine-default)))
(add-hook 'plain-TeX-mode-hook 'japanese-plain-tex-mode-initialization)
@@ -246,9 +436,24 @@
(defun japanese-latex-mode-initialization ()
"Japanese LaTeX specific initializations."
(when japanese-TeX-mode
- (setq TeX-command-default japanese-LaTeX-command-default)
+; (setq TeX-command-default japanese-LaTeX-command-default)
+ (TeX-engine-set
+ ;; class file åã«é ¼ãã®ã¯æ£ããã®ãï¼
+ ;; jLaTeX ã«ã jarticle ã¯ä¸å¿ããããpLaTeX ã§ãèªåã§
j-article ã
+ ;; ã¤ã³ã¹ãã¼ã«ãã¦ä½¿ã£ã¦ãããªãæ³ã¯ãªãã
+ (cond
+ ((TeX-match-style
"\\`u[jt]\\(article\\|report\\|book\\)\\'\\|\\`uplatex\\'")
+ 'uptex)
+ ((TeX-match-style "\\`[jt]s?\\(article\\|report\\|book\\)\\'")
+ 'ptex)
+ ((TeX-match-style "\\`j-\\(article\\|report\\|book\\)\\'")
+ 'jtex)
+ (t japanese-TeX-engine-default)))
(setq LaTeX-default-style japanese-LaTeX-default-style)
- (setq TeX-command-BibTeX "jBibTeX")))
+; (setq TeX-command-BibTeX
+; (if (and (eq TeX-engine 'ptex) (executable-find "pbibtex"))
+; "pBibTeX" "jBibTeX"))
+))
(add-hook 'LaTeX-mode-hook 'japanese-latex-mode-initialization)