Configurar la búsqueda directa con Texmaker + SumatraPDF

Configurar la búsqueda directa con Texmaker + SumatraPDF

Texmaker tiene un visor de PDF incorporado que admite la búsqueda directa/inversa de Synctex desde el primer momento. Este visor incorporado se puede mostrar incrustado o en una ventana separada; los visores externos siempre tienen una ventana separada. Como tengo dos pantallas, estoy usando el diseño de dos ventanas.

Ahora me gustaría cambiar aSumatraPDFcomo visor externo, pero no puedo encontrar cómo configurar Texmaker para que funcione la búsqueda directa.
he presentado unasolicitud de funciónpara agregar esa información a laDocumentación de Texmakerya. ¿Alguien aquí sabe cómo hacerlo? Probablemente usando algunoscomando DDE...

Respuesta1

Parece que Texmaker no permite comandos DDE, perodesde la versión 1.9 SumatraPDFadmite la búsqueda directa no solo mediante comandos DDE, sino también mediante conmutadores de línea de comandos. Desde la versión 3.2.1 Texmakertiene todas las variables necesarias para utilizar la búsqueda directa. Estos son

  • %para el nombre base del archivo maestro (sin ruta y sin extensión),
  • !para obtener la ruta completa al directorio donde reside el documento maestro,
  • #para el nombre base del archivo actualmente activo (sin ruta y sin extensión) y
  • @para el número de línea.

Por lo general, lo siguiente debería funcionar:

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

Esto fallará al incluir desde un subdirectorio. Una solución alternativa es agregar el subDirName a la ruta manualmente:

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

Pero entonces el subDirName debería ser idéntico en todos los proyectos, por lo que esto es más una solución alternativa que una solución real.

Aquí hay una captura de pantalla de mi configuración de Texmaker: ingrese la descripción de la imagen aquí

Respuesta2

Acabo de crear un documento que describe cómo configurar Texmaker y SumatraPDF con búsqueda directa e inversa, pero es totalmente portátil, lo cual es un poco complicado. Enlace al instructivohttp://goo.gl/hxDeu(sin redireccionamiento:http://goo.gl/hxDeu+) o ver a continuación:

1. Configurar Texmaker para usar SumatraPDF como visor de PDF externo con búsqueda directa Abra su Texmaker portátil y establezca la ruta al visor externo de la siguiente manera:

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

Tenga en cuenta que la ruta a SumatraPDF.exe es relativa al ejecutable de Texmaker y es posible que deba editar esta ruta para que coincida con su estructura de carpetas.

Texmaker -> Configurar Texmaker -> Comandos

2. Configurar la búsqueda inversa en SumatraPDF

Por defecto SumatraPDF no permite configurar la búsqueda inversa vía GUI. Ejecute una vez el siguiente comando:

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

No debe cambiar la ruta al archivo texmaker.exe, incluso si tiene una estructura de carpetas diferente a la mía.

Ventana de opciones de SumatraPDF con configuración de búsqueda inversa visible

3. Cree un archivo por lotes de inicio

Debido a algunas limitaciones en SumatraPDF, tenemos que iniciar Texmaker con el siguiente archivo por lotes cada vez que queramos usar SumatraPDF como visor externo. Coloque los siguientes comandos en texmaker-portable.bat y guarde este archivo en la misma carpeta que Texmaker.exe. También tenga en cuenta que puede pasar cualquier parámetro a texmaker-portable.bat que podría pasar al propio texmaker.exe.

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

4. Ejecute texmaker-portable.bat y pruebe la configuración.

Solución de problemas

  • asegúrese de utilizar el parámetro -synctex=1o -synctex=-1al formatear un archivo tex
  • el archivo tex no debe contener espacios en su nombre (Texmaker y SumatraPDF manejan bien los espacios, pero es posible que el archivo SyncTeX no se cree ni siquiera con -synctex=1el parámetro)
  • asegúrese de haber iniciado Texmaker con el archivo por lotes y SumatraPDF a través de Texmaker (esta cadena es obligatoria)

Respuesta3

Esto pretende ser una respuesta a la respuesta de Vlastimil anterior. Descubrí que la búsqueda inversa funciona bien sin el archivo por lotes. Simplemente uso la siguiente línea en Opciones de PDF de Sumatra (apareció automáticamente como una opción). Estoy usando Sumatra 2.1.1 y Texmaker 3.5.

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

Como han dicho otros, la búsqueda directa también funciona con la línea de comando en las opciones de Texmaker:

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

Respuesta4

Esta respuesta tiene como objetivo comprender los pasos para TeXmaker v4.5 y TeXstudio v2.12.22 con SumatraPDF v3.2.

TeXmaker

  1. En Texmaker, vaya aOptions > Configure Texmaker > Commands
  2. En External Viewerel campo (en caso de que esté utilizando SumatraPDF), escriba

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

ingrese la descripción de la imagen aquí

  1. En SumatraPDF, vaya a Settings > Optionsy luego escribaSet inverse search command-line

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

ingrese la descripción de la imagen aquí

TeXstudio

En caso de que estés usando TeXstudio

  1. En TeXstudio, vaya aOptions > Configure TeXstudio > Commands
  2. En External PDF Viewerel campo, escriba

    "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"
    

ingrese la descripción de la imagen aquí

  1. En SumatraPDF, vaya a Settings > Optionsy luego en Set inverse search command-lineescriba

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

ingrese la descripción de la imagen aquí

información relacionada