Aquamacs コンパイルショートカット

Aquamacs コンパイルショートカット

ファイルをコンパイルできるショートカット キーのみを作成する方法はありますか.tex?

LaTeX コンパイルには、ショートカットを使用しています^C ^C。デフォルトでは「latex」が表示されますが、場合によっては「view」が表示されます。「latex」に設定されている場合、Enter キーを押すだけですが、「view」に設定されている場合、コンパイルするには「latex」と入力する必要があります。その後、必要に^C ^V応じて を使用して表示します。pdf

これは私が最も頻繁に使用する操作ですが、 の後に明示的に「latex」と入力するのは非常に面倒です^C ^C。私は Emacs と Aquamacs の初心者です (まだ 1 週間しか使用していません)。

答え1

ツール バーの LaTeX ボタンをクリックするだけです。:)

ここに画像の説明を入力してください

または、Command-Oを押してファイルを開き、

<HOME>/Library/Preferences/Aquamacs Emacs

開いてくださいPreferences.el(Aquamacsではファイルよりもこれが推奨されます.emacs)。一番下に追加してください

(add-hook
 'LaTeX-mode-hook
 (lambda ()
  (local-set-key
  (kbd "C-c c")
   (lambda nil
    (interactive)
    (progn
     (TeX-save-document
      (TeX-master-file)
     )
    (TeX-command "LaTeX" (quote TeX-master-file) -1))))))

アイコンをクリックすることで実行される同じ機能を にバインドします。を表示するためにC-c cにバインドされた同様のアクションを追加することもできます。C-c v

(add-hook
 'LaTeX-mode-hook
 (lambda ()
  (local-set-key
  (kbd "C-c v")
  (lambda nil (interactive)
   (TeX-command "View" (quote TeX-master-file) -1)))))

答え2

私はAquamacsを使っていて、同じ疑問を抱いていました。Sean Allredの投稿が、私が探していた答えを見つけるのに役立ちました。私が付け加えたいのは、Aquamacsだけを使う場合は、ファイルを編集した方が良いということです。

プリファレンス.el
にあります
~/ライブラリ/Preferences/Aquamacs\Emacs/
ファイルに以下のコードを追加すると、コマンドシーケンス
CcCa
デフォルトのコンパイラを実行し、出力をプレビューに送信します。このコードスニペットは、http://www.emacswiki.org/emacs/TN#toc8TEX-texify セクションの下にあります。

    ('tex-buf' が必要)
(defun TeX-command-default (名前)
  「次に使用する TeX コマンド。コードのほとんどは `TeX-command-query' から盗用されています。」
  (cond ((if (文字列が名前と等しいTeX領域)
                 (TeX チェックファイル (連結名 "." (TeX 出力拡張子))
                          (リスト名)
                          TeXファイル拡張子
               (TeX 保存文書 (TeX マスターファイル)))
             TeXコマンドのデフォルト
            ((および (memq メジャーモード '(doctex モード latex モード))
                  (TeX チェック ファイル (連結名 ".bbl")
                           (マップカー'車
                               (LaTeX 参考文献リスト)
                           BibTeX ファイル拡張子))
             ;; ここでも bst ファイルを確認する必要があります。
             TeXコマンド-BibTeX)
            ((TeXプロセス変数名を取得
                           'TeXコマンド-next
                           TeX コマンド 表示))
            (TeX コマンド 表示)))


(defcustom TeX-texify-Show t "TeX-texify の最後で view-command を開始しますか?" :type 'boolean :group 'TeX-command)
(defcustom TeX-texify-max-runs-same-command 5 "同じコマンドの最大実行回数" :type 'integer :group 'TeX-command)

(TeX-texify-sentinel を定義 (&optional proc sentinel)
  「非対話型です! 現在の LaTeX プロセスの標準センチネルを呼び出します。」
まだ何か残っている場合は、次の LaTeX コマンドを開始してください。"
  (set-buffer (process-buffer proc))
  (funcall TeX-texify-sentinel proc sentinel)
  (let ((case-fold-search nil))
    (文字列一致 "\\(finished\\|exited\\)" センチネルの場合)
      (set-buffer TeXコマンドバッファ)
      (ただし、(plist-get TeX-error-report-switches (intern (TeX-master-file)))
    (TeX-texify)))))

(TeX-texify() を宣言する)
  「すべてをやり遂げなさい。」
  (相互の作用)
  (let ((nextCmd (TeXコマンドのデフォルト (TeXマスターファイル)))
    プロセス)
    (if (and (null TeX-texify-Show)
         (等しい nextCmd TeX-command-Show))
    (when (called-interactively-p 'any)
      (メッセージ「TeX-texify: 何もできません。」))
      (TeXコマンド nextCmd 'TeXマスターファイル)
      (または (対話的に呼び出された場合)
        (null (boundp 'TeX-texify-count-same-command))
        (null (boundp 'TeX-texify-last-command))
        (null (等しい nextCmd TeX-texify-last-command)))
    (mapc 'make-local-variable '(TeX-texify-sentinel TeX-texify-count-same-command TeX-texify-last-command))
    (setq TeX-texify-count-same-command 1))
      (if (>= TeX-texify-count-same-command TeX-texify-max-runs-same-command)
      (メッセージ「TeX-texify: %S はすでに %d 回実行されました。これ以上実行しません。」TeX-texify-last-command TeX-texify-count-same-command)
    (setq TeX-texify-count-same-command (1+ TeX-texify-count-same-command))
    (setq TeX-texify-last-command nextCmd)
    (および (null (等しい nextCmd TeX-command-Show))
         (setq proc (get-buffer-process (現在のバッファ)))
         (setq TeX-texify-sentinel (process-sentinel proc))
         (set-process-sentinel proc 'TeX-texify-sentinel))))))

(add-hook 'LaTeX-mode-hook '(lambda () (local-set-key (kbd "Cc Ca") 'TeX-texify)))

答え3

特定のキーシーケンス(あるのは知っていますが、探す次のようにすれば動作します:

(add-hook
 'LaTeX-mode-hook
 (lambda ()
   (local-set-key
    (kbd "C-c c")
    (lambda (&optional arg)
      "Run the current document through LaTeX."
      (interactive "p")
      (kmacro-exec-ring-item
       (quote ([3 3 76 97 84 101 88 return] 0 "%d"))
       arg)))

これにより、キー シーケンスがC-c c実行されるキーボード マクロにバインドされますC-c C-c LaTeX RET


不思議に思われるかもしれませんが、この重要な部分は私が自分で作ったわけではありません。C-x (キーボード マクロを開始し、 と入力してC-c C-c LaTeX RETC-c )マクロを終了していました。次にC-x C-k nマクロに名前を付け、M-x insert-kbd-macro内で を実行していました.emacs(通常は で検索できますC-x C-f ~/.emacs)。

私は を使用してマクロをキーシーケンスにバインドしlocal-set-key、これをフックに追加して、LaTeX-modeを入力するたびに実行されるようにしますLaTeX-mode

答え4

あるいは、次のコードを に配置する.emacsと、TeXMaker の Quick Build のように、すべてが連続して自動的に実行されるようにすることもできます。

(require 'tex-buf)
(defun TeX-command-default (name)
  "Next TeX command to use. Most of the code is stolen from `TeX-command-query'."
  (cond ((if (string-equal name TeX-region)
                 (TeX-check-files (concat name "." (TeX-output-extension))
                          (list name)
                          TeX-file-extensions)
               (TeX-save-document (TeX-master-file)))
             TeX-command-default)
            ((and (memq major-mode '(doctex-mode latex-mode))
                  (TeX-check-files (concat name ".bbl")
                           (mapcar 'car
                               (LaTeX-bibliography-list))
                           BibTeX-file-extensions))
             ;; We should check for bst files here as well.
             TeX-command-BibTeX)
            ((TeX-process-get-variable name
                           'TeX-command-next
                           TeX-command-Show))
            (TeX-command-Show)))


(defcustom TeX-texify-Show t "Start view-command at end of TeX-texify?" :type 'boolean :group 'TeX-command)
(defcustom TeX-texify-max-runs-same-command 5 "Maximal run number of the same command" :type 'integer :group 'TeX-command)

(defun TeX-texify-sentinel (&optional proc sentinel)
  "Non-interactive! Call the standard-sentinel of the current LaTeX-process.
If there is still something left do do start the next latex-command."
  (set-buffer (process-buffer proc))
  (funcall TeX-texify-sentinel proc sentinel)
  (let ((case-fold-search nil))
    (when (string-match "\\(finished\\|exited\\)" sentinel)
      (set-buffer TeX-command-buffer)
      (unless (plist-get TeX-error-report-switches (intern (TeX-master-file)))
    (TeX-texify)))))

(defun TeX-texify ()
  "Get everything done."
  (interactive)
  (let ((nextCmd (TeX-command-default (TeX-master-file)))
    proc)
    (if (and (null TeX-texify-Show)
         (equal nextCmd TeX-command-Show))
    (when  (called-interactively-p 'any)
      (message "TeX-texify: Nothing to be done."))
      (TeX-command nextCmd 'TeX-master-file)
      (when (or (called-interactively-p 'any)
        (null (boundp 'TeX-texify-count-same-command))
        (null (boundp 'TeX-texify-last-command))
        (null (equal nextCmd TeX-texify-last-command)))
    (mapc 'make-local-variable '(TeX-texify-sentinel TeX-texify-count-same-command TeX-texify-last-command))
    (setq TeX-texify-count-same-command 1))
      (if (>= TeX-texify-count-same-command TeX-texify-max-runs-same-command)
      (message "TeX-texify: Did %S already %d times. Don't want to do it anymore." TeX-texify-last-command TeX-texify-count-same-command)
    (setq TeX-texify-count-same-command (1+ TeX-texify-count-same-command))
    (setq TeX-texify-last-command nextCmd)
    (and (null (equal nextCmd TeX-command-Show))
         (setq proc (get-buffer-process (current-buffer)))
         (setq TeX-texify-sentinel (process-sentinel proc))
         (set-process-sentinel proc 'TeX-texify-sentinel))))))

(add-hook 'LaTeX-mode-hook '(lambda () (local-set-key (kbd "C-c C-a") 'TeX-texify)))

これにより、キーシーケンスC-c C-aが にバインドされTeX-texify、現在のドキュメントを生成するために必要なすべてのコンパイル手順が実行されます。Emacs Wiki の

関連情報