\ inputでTeX-insert-macroを高速化する


10

ではlatex-mode、私が使用するときにTeX-insert-macro入力する\input{...} マクロを、Auctexは、都合素晴らしいですファイル名補完を提供しています。しかし、私の貧しい小さなラップトップでemacsがほぼ1分間ハングするため、補完リストをコンパイルするために多くの場所を検索するようです。

TeX-insert-macroダムのファイル名補完を提供する方法はありますか?
「ダム」とは、を呼び出しfind-fileたときに取得するものを意味します。ほとんどの場合、入力するファイルは1つのディレクトリだけ離れているので、それで十分です。

それが不可能な場合、スピードを上げる別の方法はありますか?マクロ
を挿入すると、\includeファイル名のリストがはるかに短くなるので、\input マクロにそのリストを使用する方法もあるかもしれません。


cdlatex-insert-filenamecdlatexパッケージに付属するものもあります。図環境にグラフィックファイルを挿入するのに役立ちます。
Vamsi 2014

回答:


6

あなたにはいくつかの解決策があります:

まず、この動作をカスタマイズする変数がありますTeX-arg-input-file-search

TeX-arg-input-fileファイルを検索する必要がある場合。値がtの場合、TeXの検索パスにあるファイルが検索され、補完されます。ファイル名は、ディレクトリと拡張子なしで挿入されます。値がnilの場合、ファイル名は手動で指定でき、現在のバッファーのファイルのディレクトリからの相対パスと拡張子が挿入されます。値がの場合、が呼び出されるaskたびに使用するメソッドを求められますTeX-arg-input-file

このドキュメントは、私見では十分に明確ではありませんが、それを設定することで十分に機能するnilようです。

(setq TeX-arg-input-file-search nil)

この変数は、およびTeX-arg-input-fileを含むinput、を呼び出すすべての関数に影響します。後者の場合、この動作は予期しないものになる可能性があります。includeusepackage

次いで、すべての機能のために働くべきであるより多くのハックソリューションがある:TeX-arg-input-file特徴local(このフラグに設定例のためのものであるこの動作のためにフラグをtするためinclude)。

どうやら、コマンドの別のエントリを追加するだけで他の設定を上書きできるので、次のようにします。

(add-hook 'LaTeX-mode-hook 
  (lambda nil 
     (TeX-add-symbols '("input" (TeX-arg-input-file "File" t)))))

最後の解決策は、もしあなたが長続きするemacsセッションを持っているなら、単にそれを手放すことです。「ファイルの検索」フェーズでは結果がキャッシュされるようです。そのため、セッションごとに1回だけ呼び出す必要があります。


驚くばかり!私は少しハックを期待していました、私がauctexを過小評価していたと思います。
マラバルバ2014

1
Hmpf、ハックは確かに進むべき道だったようです。私の編集を参照してください。ハックソリューションがあなたのニーズにより適している場合は、答えを整理できるように教えてください。
T.ヴァーロン2014

1
あなたが正しい、usepackageは望ましくないでしょう。更新していただきありがとうございます。確かに結果をキャッシュしますが、バッファごとに1回だけであっても、1分程度の遅延で十分です。
マラバルバ2014

1
内容を整理しました。もう一度コードを見ると、私は間違っていましたTeX-global-input-files(検索の結果を含む変数)はバッファーローカルではないため、検索はemacs セッションごとに1回だけ実行する必要があります。非同期で発生する可能性がある場合、これはより興味深いかもしれませんが、約1分のフリーズは実際には長すぎます。
T.ヴァーロン2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.