Focalizar automaticamente o xdvi depois de executar o viewdvi no Emacs com o AUCTeX

1

Estou usando o emacs com o modo AUCTeX para editar meus documentos em látex por alguns dias, mas há algo que realmente me incomoda. Como deveria ser, sempre que eu faço C-c C-c RET ele compila o arquivo, e se repetir o comando ele vê a saída em xdvi. Ele também é ajustado para o modo mini TeX-source-specials-mode , então ao invés de abrir uma nova janela no xdvi ele recarrega a janela que já está aberta, traz para a frente e me envia para onde quer que o ponteiro estivesse no emacs (busca para frente).

Agora aqui está o problema:
Mesmo que a janela do xdvi seja trazida para a frente, ela não está focada. Em vez disso, as janelas do emacs permanecem com foco (e é aí que entra qualquer entrada de teclado). E eu continuo esquecendo disso, o que me leva a editar acidentalmente o arquivo fonte enquanto tento navegar no xdvi. Sem mencionar que sou forçado a usar alt-tab para focar xdvi e alt-tab duas vezes, se eu quiser voltar ao emacs.

Existe uma maneira de contornar este problema? Eu só quero que o xdvi seja focado sempre que eu executar o comando view do emacs.

EDIT: Descobri que posso focar a janela do xdvi com o comando wmctrl -a main (main é o título da janela do xdvi). Como posso definir o emacs para automaticamente anexar este comando ao final do comando view?

    
por Malabarba 12.05.2010 / 17:36

3 respostas

0

Depois de muita escavação, acho que encontrei um jeito. É meio desajeitado, então sinta-se à vontade para sugerir um jeito melhor.

O comando de visualização padrão é composto por "xdvi", seguido por alguns argumentos definidos por algumas variáveis, seguidos pelo nome do arquivo. O último argumento antes do nome do arquivo é definido pela variável " Tex Source Specials View Editor Flags ", e seu valor padrão é: " -editor"% cS "" ( sem as citações mais externas).

Eu adicionei a string "% d & wmctrl -a $ (echo% d | sed-e 's / .dvi // g') # " (novamente, sem citações ) ao final desta variável. Lembre-se que este é o último argumento no comando view antes do nome do arquivo.

  • % d serve para substituir o nome do arquivo dvi, necessário para o xdvi comando.
  • & & termina o xdvi (ver) comando.
  • wmctrl -a dará foco à janela intitulada: echo %d | sed -e 's/.dvi//g' (que é o nome do arquivo dvi sem o .dvi extensão).
  • finalmente, apenas diz

    bash para ignorar o que vem a seguir. No nosso caso, esse é o nome do arquivo que O emacs anexa automaticamente depois de tudo disso.

Para editar essa variável, usei o menu de personalização do emacs para látex.

    
por 20.05.2010 / 07:08
1

Aqui está uma solução alternativa para o seu problema (ou seja, se eu estiver correto: para ter uma visão imediata do seu documento recém-compilado): basta abrir seu arquivo dvi em um novo buffer e configurá-lo para auto-reversão. modo. Agora, cada vez que você compilar seu documento, este buffer deve mostrar as mudanças sem a necessidade de deixar o emacs e sua pureza. Note, você pode querer tentar isto com pdf como sua saída de compilação; pelo menos para mim, parece que a auto-reversão é muito mais responsiva com os PDFs.

    
por 24.03.2011 / 07:16
1

Isso não funcionou bem para mim já que minha janela do emacs tem o arquivo tex como nome. Isso significa que o wmctrl dá o foco do emacs ao invés do xdvi.

No entanto, uma ligeira alteração corrigiu para mim. Eu acrescentei a seguinte linha:

%d && wmctrl -a xdvik #
    
por 22.08.2010 / 02:09