Selecionar imagens no auctex com visualização

7

Se eu inserir uma imagem em um arquivo de látex (via \includegraphics), o auctex permite selecionar o arquivo e inserir o nome do arquivo.

No entanto, usando esse diálogo, só posso escolher o nome do arquivo e não consigo visualizar as imagens como nas caixas de diálogo do seletor de arquivos dos programas GUI comuns.

Como posso obter isso no emacs também? Ou seja, tenho pré-visualizações de miniatura de imagem ao selecionar uma imagem para o meu arquivo tex.

Editar Acabei de descobrir o iciclesmodo que gera miniaturas para find-file. No entanto, ele não parece funcionar com auctex e conclusão dentro \includegraphicsda caixa.

aluna
fonte
Se você usar helme definir LaTeX-includegraphics-read-filecomo, LaTeX-includegraphics-read-file-relativeterá visualizações. Deixe-me saber se isso satisfaz você e eu vou escrever uma resposta.
Giordano
Eu não sei como configurá-lo para que eu não tentar, mas soa como seria satisfiy minhas necessidades (se ele não é muito lento e se as miniaturas não são muito pequenas)
estudante de

Respostas:

10

Se você definir LaTeX-includegraphics-read-filecomo LaTeX-includegraphics-read-file-relative, o preenchimento automático helmfornece este recurso:

insira a descrição da imagem aqui


Configurando o AUCTeX

Você pode personalizar LaTeX-includegraphics-read-file( M-x customize-variable RET LaTeX-includegraphics-read-file RET) e selecionar a relativeopção ou adicionar o seguinte ao seu arquivo init:

(setq LaTeX-includegraphics-read-file 'LaTeX-includegraphics-read-file-relative)

Instalando e configurando helm

Você pode instalar a helmpartir do repositório Melpa, aqui estão as instruções sobre como adicioná-lo. Quando terminar, emitir M-x list-packages RET, vá para a helmentrada e pressione i x.

Agora você precisa configurar helm. Aqui está um bom tutorial inicial. Você pode escolher entre uma configuração mínima:

(require 'helm-config)
(helm-mode 1)

e uma configuração estendida:

(require 'helm)
(require 'helm-config)

;; The default "C-x c" is quite close to "C-x C-c", which quits Emacs.
;; Changed to "C-c h". Note: We must set "C-c h" globally, because we
;; cannot change `helm-command-prefix-key' once `helm-config' is loaded.
(global-set-key (kbd "C-c h") 'helm-command-prefix)
(global-unset-key (kbd "C-x c"))
(global-set-key (kbd "M-x") 'helm-M-x) ; This was not present in the suggested extended config

(define-key helm-map (kbd "<tab>") 'helm-execute-persistent-action) ; rebind tab to run persistent action
(define-key helm-map (kbd "C-i") 'helm-execute-persistent-action) ; make TAB works in terminal
(define-key helm-map (kbd "C-z")  'helm-select-action) ; list actions using C-z

(when (executable-find "curl")
  (setq helm-google-suggest-use-curl-p t))

(setq helm-split-window-in-side-p           t ; open helm buffer inside current window, not occupy whole other window
      helm-move-to-line-cycle-in-source     t ; move to end or beginning of source when reaching top or bottom of source.
      helm-ff-search-library-in-sexp        t ; search for library in `require' and `declare-function' sexp.
      helm-scroll-amount                    8 ; scroll 8 lines other window using M-<next>/M-<prior>
      helm-ff-file-name-history-use-recentf t)

(helm-mode 1)

Por favor, esteja ciente das diferenças entre a conclusão padrão do Emacs e helma primeira .


Comece a usar o novo recurso

Reinicie o Emacs e você estará pronto. Em um buffer LaTeX, emita C-c RET includegraphics RET(observe que você pode explorar o helmpreenchimento automático) e selecione a imagem que deseja incluir. Para ver a visualização, como mostrado no início, pressione duas vezes a combinação de teclas associada a helm-execute-persistent-action( C-zpor padrão ou TABna configuração estendida acima) ou mova para cima e para baixo na lista de arquivos com C-upe C-down(consulte esta resposta ).

Giordano
fonte
Ótima resposta, muito obrigado! A única coisa irritante é que você deve pressionar tab duas vezes (e depois outro atalho para voltar). Idealmente, os previews deve aparecer apenas quando o ponto é sobre o nome do arquivo correspondente na lista de arquivos (de modo que você pode simplesmente navegar para cima e para baixo na lista de arquivo e ver instantaneamente as prévias correspondentes sem pressionar nenhuma tecla adicionais)
estudante de
Eu acho que você deve fazer uma solicitação de recurso para este projeto, mas não tenho certeza de que será implementado.
Giordano
Parece ser o helm-followmodo de leme que é necessário. Basta pressionar C-c C-fquando estiver no helm-find-filemenu, para poder navegar pelos arquivos com visualização. No entanto, posso ativar o modo de acompanhamento do leme como padrão ao entrar no menu de arquivo de localização do leme? Ou seja, que eu não preciso pressionar C-c C-f?
estudante de
Eu sugiro que você perguntar isso como uma nova pergunta;-)
Giordano