bibtex-mode
フィールドを揃え、適切にインデントしたい。次の記事のbibtexエントリをEmacsにコピーしました:(記事の
ソースはこちら)
ただし、単純な貼り付けでは、Emacsで位置合わせが失われ、インデントがめちゃくちゃになります。
TABキーは、整列に仕事をしないか、エントリをインデント。この問題を解決するには?
-Q
スイッチでEmacsを起動するとどうなりますか?
-Q
スイッチで開始したときにも同じ動作が発生します
bibtex-mode
フィールドを揃え、適切にインデントしたい。次の記事のbibtexエントリをEmacsにコピーしました:(記事の
ソースはこちら)
ただし、単純な貼り付けでは、Emacsで位置合わせが失われ、インデントがめちゃくちゃになります。
TABキーは、整列に仕事をしないか、エントリをインデント。この問題を解決するには?
-Q
スイッチでEmacsを起動するとどうなりますか?
-Q
スイッチで開始したときにも同じ動作が発生します
回答:
smartparensパッケージをbibtex-modeで使用すると、挿入された場所に恥ずかしい量のスペースが挿入されたときに、同様の問題が発生しました。何らかの理由で不明ですが、bibtex-modeはfill-prefix
変数に18個のスペースを含む文字列を設定します。私の場合(setq fill-prefix nil)
はbibtex-mode-hook
修正された問題で。
@JonatanLindénが述べたように、fill-prefix
18のスペースを含む文字列に設定されます。これは、bibtex-clean-entry
がfill-prefix
等号の後に続くテキストを揃えるために使用しているためです。インデントの問題を解決できるように設定fill-prefix
し""
ます。ただし、エントリのフォーマット時に位置合わせを適切に行うために、bibtex-clean-entry
一時的に設定することをお勧めしますfill-prefix
。
(defun bibtex-mode-setup ()
(setq-local fill-prefix ""))
(add-hook 'bibtex-mode-hook #'bibtex-mode-setup)
(defun bibtex-reset-fill-prefix (orig-func &rest args)
(let ((fill-prefix (make-string (1+ bibtex-text-indentation) ? )))
(apply orig-func args)))
(advice-add 'bibtex-clean-entry :around #'bibtex-reset-fill-prefix)
bibslurp
とは関係ありません。パッケージの使用を検討してください。これにより、Emacs内のSAO / NASA天体物理データシステムからBibTeXエントリを取得できます。