emacsでpdf-tools(pdf-view-mode)を使用するには?


23

pdf-toolsには、doc-view-modeにはないいくつかの機能を提供するpdf-view-modeが含まれています(質問の終わりを参照)。

pdf-view-modeは一般的にdoc-view-modeの代替として使用できますか、それともツールごとに「ツール」にする必要がありますか?

どちらの場合でも、gnac、eww、およびorgmodeでpdf-toolsを使用するにはemacsソースを編集する必要がありますか、それともシステム全体の設定を使用できますか?

---便宜上、pdf-toolsの機能はこちら。詳細については、githubサイトを参照してください---

  1. doc-viewよりも速いようです
  2. PNGとしてレンダリングされないため、通常は解像度が向上します。
  3. ニース検索、およびフレーズのすべての出現を検索することもできます
  4. テキスト注釈、強調表示、下線などを追加できます
  5. PDFパーツのimenuを作成できます
  6. 複数のpdfを単一の「仮想」pdfとして扱うことができます
  7. latexと統合して、latexソースとpdfを並べて表示し、同等の場所で一方から他方にジャンプできます(たとえば\section{A section}、LaTeXで選択し、pdfでそのセクションを取得しました。

参照してくださいここにおそらくあなたの質問への答えが含まれ、関連する議論のために。
-tmalsburg

Gnusは特別な場合がありますか?参照:lists.gnu.org/archive/html/help-gnu-emacs/2015-02/msg00438.html
ブライアン・Z

一部の人々は、回答が主に意見に基づいていることを意味すると考えている恐ろしい「ベストプラクティス」から離れて質問を書き直す必要があるかもしれません。gnusはここでは特別なケースであり、適切な構成を.mailcapに追加する必要があることを思い出すようです。私が家に帰る前にあなたの質問が閉じられていない場合、私はあなたのために私の設定を掘り下げます。
タイラー

1
Gnusはmailcapを使用して、添付ファイルを開くアプリケーションを見つけます。pdf-toolsでpdfファイルを開くようにEmacsを構成している場合は、に行application/pdf; emacsclient %sを追加し.mailcap、Emacs edit-serverを開始する必要があります。Emacsをasとして呼び出すemacs --daemon(server-start)、.emacsに追加します。
タイラー

ありがとう。それは機能し、その後、これはのために機能しorgます。(set 'org-file-apps '((auto-mode . emacs) ... ("\\.pdf\\'" . default)))
brittAnderson

回答:


31

への切り替えはdocviewpdf-toolsインストール時に「自動的に」行われますpdf-tools。これを実行すると、EmacsがEmacsでPDFを開こうとするたびに、が使用されますpdf-tools。ただし、一部のパッケージはオペレーティングシステムを呼び出したり、Emacs内で別の構成を使用して、pdfを開くためにEmacsまたは別のプログラムを使用するかどうかを決定します。そのため、すべてのEmacsパッケージでpdf-toolsを使用するには、「ツールごとの」構成が必要です。

Emacsの同じインスタンスでPDFを開く場合は、デーモンモードで実行する(つまり、で起動するemacs --daemon)か、または(server-start)initを呼び出して動作させる必要がありますemacsclient

組織モードのリンク

箱から出して、org-modepdfツールについては知りません。ただし、MELPAのパッケージとして利用可能なorg-pdfviewを使用して、pdfファイルへの組織リンクを開くためのサポートを追加できます。インストールしたら、次のコードを使用して有効にします.emacs

(eval-after-load 'org '(require 'org-pdfview))

(add-to-list 'org-file-apps 
             '("\\.pdf\\'" . (lambda (file link)
                                     (org-pdfview-open link))))

これをすることを経由してリンクを追加するための新たな補完対象提供しC-c C-lpdfview:特定のページにジャンプするためのサポートをし、。完全なリンクは次の形式を使用します。

[[pdfview:/path/to/myfile.pdf::42][My file Description]]

インターリーブモードとPDF注釈

インターリーブモードは、「ノートと組織モードバッファを並べてPDFを表示する」ためのサポートを提供します。これは、pdfに埋め込まれた注釈を使用する代わりに使用できます(pdf-toolsで実行できます)。代わりに、すべての注釈を含むorg-modeファイルになります。これは、注釈が関連付けられているpdf内のページにリンクします。

ヌー

コメントで述べたように、gnusmailcapを使用して添付ファイルを開きます。これを設定するには、.mailcapファイルに次のものが必要です。

application/pdf; emacsclient %s

EWW

EWWもmailcapを使用するため、.mailcap上記のGnusに従ってファイルを変更します。

AucTeX

AucTeXには、いくつかの関連オプションがあります。

  • ビューアは変数を介して指定されます。値TeX-view-program-selectionのエントリを見つけ、output-pdf「PDFツール」を選択します。
  • SyncTexを使用するには、次のことが必要です。
    • セットTeX-source-correlate-mode、どちらかの対話的にはMxを経由してその関数を呼び出すことによって、または経由して恒久的に変数を設定することによってM-x customize-variable
    • 必ずTeX-source-correlate-method含める(pdf . synctex)

これを適切に配置すると、TexソースファイルからC-c C-gpdfの対応するセクションが表示されるはずです。

ESS

変数ess-pdf-viewer-prefをにカスタマイズしますemacsclient

xdg-open

Linuxでは、一部のパッケージは外部プログラムxdg-openを呼び出してPDFファイルを開きます。これは、システム全体の設定を使用して、使用するプログラムを決定します。これはシステム全体の変更であるため、設定すると他のプログラムがpdfドキュメントをEmacsに送信します。したがって、Firefoxなどでこれを行いたくない場合は、これらの変更を行いたくないでしょう。

emacsclientを設定して、システム全体でPDFを開くにはxdg-open

  • ~/.local/share/applications/emacsclient.desktop内容を含むファイルを作成します。

[デスクトップエントリ]
Name = Emacs Client
Exec = emacsclient%u
Icon = emacs-icon
Type = Application
Terminal = false
MimeType = application / pdf;

  • コマンドラインから、次を発行します:

xdg-mime default emacsclient.desktop application/pdf

これが動作することをテストできます-Emacsでxdg-open your-document.pdf開くはずyour-document.pdfです。

w3m

w3mは最初に変数をチェックし、w3m-doc-view-content-typesそこに「application / pdf」が見つかると、doc-viewでPDFを開きます。これはカスタマイズ可能な変数なので、カスタマイズインターフェイスを使用して「application / pdf」エントリを削除します。

のエントリがない場合w3m-doc-view-content-types、w3mは次にw3m-content-type-alist「application / pdf」に一致するエントリの変数をチェックします。エントリをカスタマイズして読む

[INS] [DEL] Type: application/pdf
  Regexp: ( ) Not specified
          (*) String: \.pdf\'
  Viewer: ( ) Not specified
          (*) External viewer:
                Command: emacsclient
                Arguments:
                  [INS] [DEL] file
                  [INS]

またfind-file、への外部呼び出しではなくemacs関数(おそらくまたは同様)を使用することもemacsclientできますが、その構文はわかりませんでした。


ただし、emacsのw3mはまだdocviewを使用しています。それを修正する方法はありますか?
-brittAnderson

更新された回答を参照してください
タイラー

org-modePDFファイル内の特定の注釈からリンクできますか?
AlwaysLearning

1
@AlwaysLearningは私が知っていることではありません。インターリーブモードは、別個のリンクされた組織モードファイルに注釈を記録するためのサポートを提供します。答えを更新します
タイラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.