Configure a pesquisa direta com Texmaker + SumatraPDF

Configure a pesquisa direta com Texmaker + SumatraPDF

Texmaker possui um visualizador de PDF integrado que suporta pesquisa sincronizada direta/inversa pronta para uso. Este visualizador integrado pode ser exibido incorporado ou em uma janela separada; os visualizadores externos sempre têm uma janela separada. Como tenho duas telas, estou usando o layout de duas janelas.

Agora eu gostaria de mudar paraSumatraPDFcomo visualizador externo, mas não consegue descobrir como configurar o Texmaker para que a pesquisa direta funcione.
Eu registrei umsolicitação de recursopara adicionar essas informações aoDocumentação do Texasmakerjá. Alguém aqui sabe como fazer isso? Provavelmente usando algumComando DDE...

Responder1

Parece que o Texmaker não permite comandos DDE, masdesde a versão 1.9 SumatraPDFsuporta pesquisa direta não apenas por meio de comandos DDE, mas também por meio de opções de linha de comando. Desde a versão 3.2.1 Texmakerpossui todas as variáveis ​​necessárias para usar a pesquisa direta. Estes são

  • %para o nome base do arquivo mestre (sem caminho e sem extensão),
  • !para obter o caminho completo para o diretório onde reside o documento mestre,
  • #para o nome base do arquivo atualmente ativo (sem caminho e sem extensão) e
  • @para o número da linha.

Geralmente o seguinte deve funcionar:

""C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe" -reuse-instance "!/%.pdf" -forward-search "!/#.tex" @

Isso falhará ao incluir de um subdiretório. Uma solução alternativa é adicionar o subDirName ao caminho manualmente:

""C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe" -reuse-instance "!/%.pdf" -forward-search "!/subDirName/#.tex" @

Mas então o subDirName deve ser idêntico em todos os projetos, então isso é mais uma solução alternativa do que uma solução real.

Aqui está uma captura de tela da minha configuração do Texmaker: insira a descrição da imagem aqui

Responder2

Acabei de fazer um documento descrevendo como configurar o Texmaker e o SumatraPDF com pesquisa direta e inversa, mas totalmente portátil, o que é um pouco complicado. Link para o tutorialhttp://goo.gl/hxDeu(sem redirecionamento:http://goo.gl/hxDeu+) ou veja abaixo:

1. Configurando o Texmaker para usar o SumatraPDF como visualizador de PDF externo com pesquisa direta Abra seu Texmaker portátil e defina o caminho para o visualizador externo da seguinte forma:

./SumatraPDF/SumatraPDF.exe %.pdf -reuse-instance -forward-search %.tex @

Observe que o caminho para SumatraPDF.exe é relativo ao executável do Texmaker e pode ser necessário editar esse caminho para corresponder à sua estrutura de pastas.

Texmaker -> Configurar Texmaker -> Comandos

2. Configurando pesquisa inversa no SumatraPDF

Por padrão, o SumatraPDF não permite configurar a pesquisa inversa via GUI. Execute uma vez o seguinte comando:

SumatraPDF.exe -inverse-search "texmaker.exe %f -line %l"

Você não deve alterar o caminho para o arquivo texmaker.exe, mesmo se tiver uma estrutura de pastas diferente da minha.

Janela de opções do SumatraPDF com configurações de pesquisa inversa não ocultas

3. Crie um arquivo em lote de inicialização

Devido a algumas limitações no SumatraPDF, temos que iniciar o Texmaker com o seguinte arquivo em lote sempre que quisermos usar o SumatraPDF como visualizador externo. Coloque os seguintes comandos em texmaker-portable.bat e salve este arquivo na mesma pasta que Texmaker.exe. Observe também que você pode passar qualquer parâmetro para texmaker-portable.bat que você poderia passar para o próprio texmaker.exe.

@echo off
set PATH=%~dp0;%PATH%
start /D "%~dp0" texmaker.exe %*

4. Execute texmaker-portable.bat e teste as configurações

Solução de problemas

  • certifique-se de usar o parâmetro -synctex=1ou -synctex=-1ao formatar um arquivo tex
  • o arquivo tex não deve conter espaço em seu nome (Texmaker e SumatraPDF lidam bem com espaços, mas o arquivo SyncTeX pode não ser criado mesmo com -synctex=1parâmetro)
  • certifique-se de iniciar o Texmaker com o arquivo em lote e o SumatraPDF via Texmaker (esta cadeia é obrigatória)

Responder3

Isto pretende ser uma resposta à resposta de Vlastimil acima. Descobri que a pesquisa inversa funciona bem sem o arquivo em lote. Acabei de usar a seguinte linha em Sumatra PDF Options (ela surgiu automaticamente como uma opção). Estou usando Sumatra 2.1.1 e Texmaker 3.5.

"C:\Program Files (x86)\Texmaker\texmaker.exe" "%f" -line %l

Como outros afirmaram, a pesquisa direta também funciona com a linha de comando nas opções do Texmaker:

"C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe" -reuse-instance %.pdf -forward-search "#.tex" @

Responder4

Esta resposta visa compreender as etapas do TeXmaker v4.5 e do TeXstudio v2.12.22 com SumatraPDF v3.2

TeX Maker

  1. No Texmaker, vá paraOptions > Configure Texmaker > Commands
  2. No External Viewercampo (caso você esteja usando SumatraPDF), digite

    "C:\Program Files\SumatraPDF\SumatraPDF.exe" -1 -s @%.tex %.pdf
    

insira a descrição da imagem aqui

  1. No SumatraPDF, vá para Settings > Optionse digiteSet inverse search command-line

    "C:\Program Files (x86)\Texmaker\texmaker.exe" "%f" -line %l
    

insira a descrição da imagem aqui

TeXstudio

Caso você esteja usando TeXstudio

  1. No TeXstudio, vá paraOptions > Configure TeXstudio > Commands
  2. No External PDF Viewercampo digite

    "C:\Program Files\SumatraPDF\SumatraPDF.exe" -reuse-instance -inverse-search "\"C:/Program Files (x86)/texstudio/texstudio.exe\" \"%%f\" -line %%l" -forward-search "?c:am.tex" @ "?am.pdf"
    

insira a descrição da imagem aqui

  1. No SumatraPDF, vá para Settings > Options, então, em Set inverse search command-line, digite

    "C:/Program Files (x86)/texstudio/texstudio.exe" "%f" -line %l
    

insira a descrição da imagem aqui

informação relacionada