Instalar PDF-Tools no Emacs MacOSX


8

Alvo

Gostaria de instalar o PDF Tools na minha GUI Emacs no MacOSX (versão 25.0.50 instalada via Homebrew no MacOSX 10.10.2) porque o README diz que é possível.

Configuração

Instalei popplere exportei a variável PKG_CONFIG_PATH para o meu shell, conforme recomendado pelo README.

Em seguida, instalei o PDF Tools via MELPA e ele instalou um diretório no meu .emacs.d/elpadiretório chamado~/.emacs.d/elpa/pdf-tools-20150620.1632

Problema

Quando executei o pdf-tools-installcomando, recebo os seguintes erros por não conseguir encontrar o diretório correto:

Need to build the server, do it now ? (y or n) y

pdf-tools--melpa-build-server: No such directory: /Users/m/.emacs.d/elpa/pdf-tools-20150613.414/build

O que eu tentei

  • Eu tentei reinstalar o pacote com package-reinstall

  • Eu procurei respostas específicas no EmacsWiki, este site, reddit.


11
Por um período de tempo, o melpa hospedou um pacote quebrado e isso provavelmente está causando esse problema. Você deve atualizá-lo.
politza 21/06

11
Seu diretório de instalação no MELPA é pdf-tools-20150620.1632, mas seu erro mostra outro diretório, pdf-tools-20150613.414. Algo está errado. Reinstale os pacotes para redefinir quaisquer versões mais antigas que possam estar causando isso. Os conselhos da @ politza podem corrigir isso.
Emacs usuário

Respostas:


13

Para mim, em 13 de abril de 2017, uma maneira confiável de instalar ferramentas em pdf no OS X (Mavericks / Sierra) é usar as seguintes configurações e instruções das ferramentas em pdf (nos comentários):

;;; Install epdfinfo via 'brew install pdf-tools' and then install the
;;; pdf-tools elisp via the use-package below. To upgrade the epdfinfo
;;; server, just do 'brew upgrade pdf-tools' prior to upgrading to newest
;;; pdf-tools package using Emacs package system. If things get messed
;;; up, just do 'brew uninstall pdf-tools', wipe out the elpa
;;; pdf-tools package and reinstall both as at the start.
(use-package pdf-tools
  :ensure t
  :config
  (custom-set-variables
    '(pdf-tools-handle-upgrades nil)) ; Use brew upgrade pdf-tools instead.
  (setq pdf-info-epdfinfo-program "/usr/local/bin/epdfinfo"))
(pdf-tools-install)

Obviamente, você não precisa usar o pacote de uso. Você pode apenas precisar de ferramentas pdf depois de instalá-lo através do sistema de pacotes Emacs e depois exigir, mas ainda precisa definir o caminho para epdfinfo como no código acima.


11
Embora esse método de instalação tenha funcionado para mim (+1), apenas um FYI: parece que não consigo usar (pdf-tools-handle-upgrades nil)- recebo function voidum erro. Eu não uso use-package, então tentei alterar a ordem das coisas no meu .emacs. , sem sucesso. Não é um problema importante, pois você também fornece uma resposta para a atualização :) É necessário instalar o homebrew brew install homebrew/emacs/pdf-tools. Percorrendo a saída do terminal, acho que isso ocorre porque o Mavericks não é mais suportado pelo Homebrew ou pela Apple.
N1k31t4

Esse trecho falhou para mim ao tentar fazer o download de versões datadas específicas de tablist e pdf-tools. Funcionou bem com :pin melpa-stable. Obrigado!
Dave

7
A fórmula Homebrew para pdf-toolsnão faz mais parte homebrew-core; foi migrado para dunn/emacs, então você precisa executar primeiro brew tap dunn/emacs.
Adam Liter

3
use brew install pdf-tools --HEADno caso de você obter erro de compilação combrew install pdf-tools
William

4

Funcionou!

Não tenho 100% de certeza sobre os detalhes do que o fez funcionar. Como comentadores apontam corretamente, houve um problema com os pacotes / diretórios que foram instalados / compilados, mas funcionou na próxima vez em que executeipdf-tools-install

Coisas que eu tentei / fiz

  • Eu iniciei / reiniciei meu emacs --daemonservidor (ou seja, ligue / desligue meu computador)
  • reinstalou o pacote pdf-tools novamente (eu tentei isso sim)
  • Instalado o CLISP via homebrew(suspeito que isso possa ter ajudado o script a encontrar os diretórios corretos porque, quando eu o estava executando pdf-tools-install, estava solicitando um diretório onde autogen.shestava e eu estava apontando para o elpa/pdf-toolsdiretório e tentei /usr/local/Cask/...diretórios onde o homebrew instalou o Emacs. Talvez isso tenha ajudado a encontrar os corretos?

De qualquer forma, super feliz agora, como pode ter meus PDFs dentro do Emacs e, como um bônus extra, parece tornar os buffers eww muito melhores também.

Boa sorte para outros usuários do OSX se levantando e trabalhando. Por favor, poste se você identificar o que o ajudou a configurá-lo.

Obrigado @politza!

insira a descrição da imagem aqui


2
Você certamente não precisa do CLIPS para que as ferramentas pdf funcionem.
rekado

Não, não, talvez, mas CLISP mim e @Dexter Morgan :) ajudou
m__

0

[Eu não tenho representante suficiente para comentar]

Instalar o CLISP e o poppler me ajudou - não funcionou antes.

Depois de instalá-los (e reiniciar minha máquina), consegui instalar com êxito (viva!) - no entanto, apenas com uma mistura de terminal e emacs.

De acordo com as instruções, você pode concluir os dois estágios (a compilação e a instalação) pelo terminal ou pelo Emacs ...

Eu tive que fazer especificamente a compilação no terminal (para criar o pdf-tools-${VERSION}.tararquivo), mas a instalação teve que ser feita no Emacs, ou seja, usando M-x package-install-file RET pdf-tools-${VERSION}.tar RET.

Não sei como os dois processos diferem, mas talvez isso ajude outra pessoa.


0

Eu tenho poppler e automake instalado usando homebrew, no entanto pdf-tools-installfalhou com: no such program autoreconf. Tentei novamente o pdf-tools-install do Emacs do tty / terminal e tudo construído corretamente. Eu acho que algumas configurações de ambiente não estavam sendo selecionadas no Emacs baseado em GUI.


0

Eu só quero explicar em breve como eu fiz isso enquanto usava use-packagee como provavelmente deve funcionar para qualquer pessoa. Em um terminal:

brew install poppler automake

Em seguida, no emacs, execute o seguinte:

; This goes into your emacs config file
(use-package pdf-tools
  :ensure t
  :config
  (setq pdf-info-epdfinfo-program "/usr/local/bin/epdfinfo"))

;; this only has to be executed for the installation and can be removed/commented afterwards
;; I recommend commenting it out so that it can be found easily when reinstalling
(setenv "PKG_CONFIG_PATH" "/usr/local/Cellar/zlib/1.2.8/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig")
(pdf-tools-install)

Como já foi dito, isso falhará, mas você deve obter um buffer chamado *compilation*que se parece com isso:

-*- mode: compilation; default-directory: "~/.emacs.d/elpa/pdf-tools-20191228.1005/build/server/" -*-
Comint started at Sat Jan  4 21:51:49

/PATH/TO/elpa/pdf-tools-20191228.1005/build/server/autobuild -i /usr/local/bin/
Failed to recognize this system, trying to continue.
---------------------------
 Configuring and compiling 
---------------------------
No such program: autoreconf

Comint exited abnormally with code 1 at Sat Jan  4 21:51:49

(a razão do erro parece ser que "/ usr / local / bin" não está na variável $ PATH e é meio difícil de adicioná-la, pois os subprocessos do emacs usam o padrão $PATHque geralmente perde esse diretório)

Agora tudo o que você precisa fazer é copiar a seguinte linha do buffer e executá-la em um terminal novamente (onde /usr/local/binestá o $ PATH):

/PATH/TO/elpa/pdf-tools-20191228.1005/build/server/autobuild -i /usr/local/bin/

0

Esta resposta pressupõe que o usuário tenha uma instalação de Macports com a popplerporta / pacote instalado. [Eu tenho uma pequena frota de máquinas antigas ainda executando o OSX 10.6.8 (Snow Leopard), e esse é o sistema que eu costumava instalar pdf-tools. Minha popplerversão é 0.42.0_0. Consulte o pdf-tools README.md para obter requisitos adicionais - eles provavelmente já foram instalados via Macports.]

  • Faça o download e extraia pdf-tools-master.zipou clone o repositório na máquina local.

  • Eu usei eshellno Emacs e executei a seguinte configuração:

    (progn (setenv "PATH" "/usr/bin:/bin:/usr/sbin:/sbin:/path/to/macports/bin") (setenv "CPPFLAGS" "-I/path/to/macports/include") (setenv "LDFLAGS" "-L/path/to/macports/lib") (setenv "CFLAGS" "-Wall -O0 -g3"))

Obviamente, você pode usar o terminal e definir as configurações relevantes em vez de usá-lo eshell.

  • cd para o diretório do repositório ../pdf-tools-master/server

  • ./autogen.sh

  • ./configure --prefix=/path/to/macports ou em outro lugar, se assim o desejar.

  • Depois de executar o configurena etapa acima, encontrei um erro:

    ./configure: line 4745: syntax error near unexpected token 'png,' ./configure: line 4745: 'PKG_CHECK_MODULES(png, libpng)'

  • Pesquisou e encontrou no Google: https://github.com/politza/pdf-tools/issues/142

  • Solução recomendada é executar autoreconf:

  • /path/to/macports/bin/autoreconf

  • Em seguida, execute configurenovamente - desta vez, funcionou como esperado.

  • ./configure --prefix=/path/to/macports ou em outro lugar, se assim o desejar.

  • make

  • make install

  • Verifique se você tem o recém-instalado epdfinfono local do prefixo definido; por exemplo,

    /path/to/macports/bin/epdfinfo

  • Copie os lisparquivos para o load-pathEmacs - os lisparquivos estão no repositório em../pdf-tools-master/lisp

  • Se o PATH para epdfinfonão estiver em um local onde o Emacs possa localizá-lo, ajuste-o ... além do escopo desta resposta. Ou, você pode definir o caminho absoluto, configurando a variável pdf-info-epdfinfo-program.

  • Também configurei o local exato para convert, definindo a variável pdf-util-convert-program; ou, você pode ajustar o PATH para que o Emacs saiba onde procurar o executável.

  • No Emacs, avalie (require 'pdf-tools)

  • Experimente ativando pdf-view-modeum buffer de arquivo PDF.


0

Quando alguns pacotes são atualizados, é necessário atualizar também suas dependências ou arquivos de pré-requisito. Nesse caso, o servidor precisa de alguns requisitos (para obter mais informações, acesse https://github.com/politza/pdf-tools , seção de pré-requisito). Portanto, eu apenas sigo as instruções lá:

  1. Instale ou reinstale o poppler que você pode obter com o homebrew via:
    $ brew install poppler automake
  1. Encontre algumas bibliotecas para pkg-config, definindo PKG_CONFIG_PATH:
$ export PKG_CONFIG_PATH=/usr/local/Cellar/zlib/1.2.8/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig

e a tentativa de executar novamente o emacs ou spacemacs.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.