(use-package)詩の後のLaTeXのためのEmacsセットアップ


8

この構成ファイルuse-packageAucTeXRefTeXおよびに関して機能させる方法LaTeX。私は通常、純粋なtex文書よりもラテックスrahterを書きます。

現在動作しているEmacs構成

(load "auctex.el" nil t t)
(setq-default TeX-master nil) ; by each new fie AUCTEX will ask for a master fie.
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-PDF-mode t)
(setq TeX-show-compilation nil)         ; if `t`, automatically shows compilation log
;; (setq-default TeX-engine 'xetex)     ; optional
(setq TeX-save-query nil)       ; don't prompt for saving the .tex file

;; add makeglossaries to TeX-run-command-list
(eval-after-load "tex" '(add-to-list 'TeX-command-list
                     '("Makeglossaries" "makeglossaries %s" TeX-run-command nil
                       (latex-mode)
                       :help "Run makeglossaries script, which will choose xindy or makeindex") t))

;; Font-lock for AUCTeX
;; Note: '«' and '»' is by pressing 'C-x 8 <' and 'C-x 8 >', respectively
(font-lock-add-keywords 'latex-mode (list (list "\\(«\\(.+?\\|\n\\)\\)\\(+?\\)\\(»\\)" '(1 'font-latex-string-face t) '(2 'font-latex-string-face t) '(3 'font-latex-string-face t))))

;; Add standard Sweave file extensions to the list of files recognized  by AUCTeX.
(setq TeX-file-extensions
      '("Rnw" "rnw" "Snw" "snw" "tex" "sty" "cls" "ltx" "texi" "texinfo" "dtx"))

(setq LaTeX-babel-hyphen nil) ; Disable language-specific hyphen insertion.
;; `"` expands into csquotes macros (for this to work babel must be loaded after csquotes).
(setq LaTeX-csquotes-close-quote "}"
     LaTeX-csquotes-open-quote "\\enquote{")

;; RefTeX
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)
(add-hook 'LaTeX-mode-hook (function (lambda() (bind-key "C-c C-r" 'reftex-query-replace-document))))
(add-hook 'LaTeX-mode-hook (function (lambda() (bind-key "C-c C-g" 'reftex-grep-document))))
(add-hook 'TeX-mode-hook (lambda () (reftex-isearch-minor-mode))) ; for AUCTeX

;; A user-defined function to delete the current macro in AUCTeX.
;; Note: keybinds won't be added to TeX-mode-hook if not kept at the end of the AUCTeX setup!
(defun TeX-remove-macro ()
  "Remove current macro and return `t'.  If no macro at point,
    return 'nil'."
  (interactive)
  (when (TeX-current-macro)
    (let ((bounds (TeX-find-macro-boundaries))
      (brace  (save-excursion
            (goto-char (1- (TeX-find-macro-end)))
            (TeX-find-opening-brace))))
      (delete-region (1- (cdr bounds)) (cdr bounds))
      (delete-region (car bounds) (1+ brace)))
    t))
(add-hook 'LaTeX-mode-hook (lambda () (bind-key "M-DEL" 'TeX-remove-macro)))

使用パッケージを使用した試用(適切に機能しない)

(use-package reftex
  :commands turn-on-reftex
  :config (setq reftex-plug-into-AUCTeX t))

(use-package tex
  :ensure auctex
  :init
  (progn
    ;; A function to delete the current macro in AUCTeX.
    ;; Note: keybinds won't be added to TeX-mode-hook if not kept at the end of the AUCTeX setup!
    (defun TeX-remove-macro ()
      "Remove current macro and return TRUE, If no macro at point, return Nil."
      (interactive)
      (when (TeX-current-macro)
    (let ((bounds (TeX-find-macro-boundaries))
          (brace  (save-excursion
            (goto-char (1- (TeX-find-macro-end)))
            (TeX-find-opening-brace))))
      (delete-region (1- (cdr bounds)) (cdr bounds))
      (delete-region (car bounds) (1+ brace)))
    t))
    )
  :bind (:map LaTeX-mode-map
          ("M-<delete>" . TeX-remove-macro)
          ("C-c C-r" . reftex-query-replace-document)
          ("C-c C-g" . reftex-grep-document))
  :config
  (progn
    (add-to-list 'TeX-command-list
         '("Makeglossaries" "makeglossaries %s" TeX-run-command nil
           (latex-mode)
           :help "Run makeglossaries script, which will choose xindy or makeindex") t)
    (setq-default TeX-master nil) ; by each new fie AUCTEX will ask for a master fie.
    (setq TeX-auto-save t)
    (setq TeX-save-query nil)       ; don't prompt for saving the .tex file
    (setq TeX-parse-self t)
    (setq-default TeX-PDF-mode t)
    (setq TeX-show-compilation nil)         ; if `t`, automatically shows compilation log
    (setq-default TeX-engine 'xetex)     ; optional
    (setq LaTeX-babel-hyphen nil) ; Disable language-specific hyphen insertion.
    ;; `"` expands into csquotes macros (for this to work, babel pkg must be loaded after csquotes pkg).
    (setq LaTeX-csquotes-close-quote "}"
      LaTeX-csquotes-open-quote "\\enquote{")
    ;; Font-lock for AUCTeX
    ;; Note: '«' and '»' is by pressing 'C-x 8 <' and 'C-x 8 >', respectively
    (font-lock-add-keywords 'latex-mode (list (list "\\(«\\(.+?\\|\n\\)\\)\\(+?\\)\\(»\\)" '(1 'font-latex-string-face t) '(2 'font-latex-string-face t) '(3 'font-latex-string-face t))))
    ;; Add standard Sweave file extensions to the list of files recognized  by AUCTeX.
    (setq TeX-file-extensions
      '("Rnw" "rnw" "Snw" "snw" "tex" "sty" "cls" "ltx" "texi" "texinfo" "dtx"))
    (add-hook 'TeX-mode-hook (lambda () (reftex-isearch-minor-mode))) ; for AUCTeX
    )
  :mode ("\\.tex\\'" . latex-mode)
  )

問題

.texファイルを開くと、AucTeXで認識されなくなり、フォントがロックされません。

少し調べてみると、Emacsのドットファイルセットアップがいくつか見つかりましたが、さまざまなセットアップuse-packageにより、さまざまなコンポーネントとユースケース(tex、latex)の複雑さを考慮して、LaTeX構成をverseの後に調整するために何をすべきかについて無知のままになりました、auctex、reftexなど)。

上記の私の現在の現在の構成を考えると、どのようにuse-package聖句に合うように調整する必要がありますか?

注意

  • 他のパッケージはで期待どおりに機能していましたがuse-package、これまでのところ、latexでのみ問題が発生しました
  • 2017-05-06のGNU Emacs 25.2.2(x86_64-pc-linux-gnu、GTK +バージョン3.18.9)
  • use-package バージョン:20170710.1234

回答:


7

重要な部分はのlatex代わりにロードすることですtex。最初の行を参照してください。
(また、私はいくつかの小さな掃除をしました)

(use-package latex
    :mode
    ("\\.tex\\'" . latex-mode)
    :bind
    (:map LaTeX-mode-map
          ("M-<delete>" . TeX-remove-macro)
          ("C-c C-r" . reftex-query-replace-document)
          ("C-c C-g" . reftex-grep-document))
    :init
    ;; A function to delete the current macro in AUCTeX.
    ;; Note: keybinds won't be added to TeX-mode-hook if not kept at the end of the AUCTeX setup!
    (defun TeX-remove-macro ()
        "Remove current macro and return TRUE, If no macro at point, return Nil."
        (interactive)
        (when (TeX-current-macro)
            (let ((bounds (TeX-find-macro-boundaries))
                  (brace  (save-excursion
                              (goto-char (1- (TeX-find-macro-end)))
                              (TeX-find-opening-brace))))
                (delete-region (1- (cdr bounds)) (cdr bounds))
                (delete-region (car bounds) (1+ brace)))
            t))
    :config
    (add-to-list 'TeX-command-list
                 '("Makeglossaries" "makeglossaries %s" TeX-run-command nil
                   (latex-mode)
                   :help "Run makeglossaries script, which will choose xindy or makeindex") t)

    (setq-default TeX-master nil ; by each new fie AUCTEX will ask for a master fie.
                  TeX-PDF-mode t
                  TeX-engine 'xetex)     ; optional

    (setq TeX-auto-save t
          TeX-save-query nil       ; don't prompt for saving the .tex file
          TeX-parse-self t
          TeX-show-compilation nil         ; if `t`, automatically shows compilation log
          LaTeX-babel-hyphen nil ; Disable language-specific hyphen insertion.
          ;; `"` expands into csquotes macros (for this to work, babel pkg must be loaded after csquotes pkg).
          LaTeX-csquotes-close-quote "}"
          LaTeX-csquotes-open-quote "\\enquote{"
          TeX-file-extensions '("Rnw" "rnw" "Snw" "snw" "tex" "sty" "cls" "ltx" "texi" "texinfo" "dtx"))

    ;; Font-lock for AuCTeX
    ;; Note: '«' and '»' is by pressing 'C-x 8 <' and 'C-x 8 >', respectively
    (font-lock-add-keywords 'latex-mode (list (list "\\(«\\(.+?\\|\n\\)\\)\\(+?\\)\\(»\\)" '(1 'font-latex-string-face t) '(2 'font-latex-string-face t) '(3 'font-latex-string-face t))))
    ;; Add standard Sweave file extensions to the list of files recognized  by AuCTeX.
    (add-hook 'TeX-mode-hook (lambda () (reftex-isearch-minor-mode)))
    )

1
使用するにはどのユースケースprognが必要でしょうか?あなたはすでにそれを削除していることに気づきました。別の質問ですが、(defun...)マクロが:initブロックまたはブロックに置かれた場合、どのような違いがあり:prefaceますか?ここでどのキーワードを使用するかを誰かがどうやって知ることができますか?
博士号取得、

1
私はあなたが(use-package reftex...)完全に削除したことにも気づきました、あなたはあなたにアイデアを共有することができますか、なぜそれはそうでしたか?
博士号

@doctorateをprogn使用すると、複数の命令をクラスター化して、1つだけが許可されている場所にそれらを詰め込むことができます。use -packageはこれをすでに行っているため、必要ありません。(use-package reftex ...)変更しなかったので、再度書きませんでした。
JUE

@doctorate defun :initまたは:preface:私はそれで、唯一の関数が定義されているので、あなたの場合には、それは、違いはありませんだと思います。それは他のすべての前に定義され、それが必要なときにすでに定義されています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.