
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:
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.
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.
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=1
o-synctex=-1
al 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=1
el 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
- En Texmaker, vaya a
Options > Configure Texmaker > Commands
En
External Viewer
el campo (en caso de que esté utilizando SumatraPDF), escriba"C:\Program Files\SumatraPDF\SumatraPDF.exe" -1 -s @%.tex %.pdf
En SumatraPDF, vaya a
Settings > Options
y luego escribaSet inverse search command-line
"C:\Program Files (x86)\Texmaker\texmaker.exe" "%f" -line %l
TeXstudio
En caso de que estés usando TeXstudio
- En TeXstudio, vaya a
Options > Configure TeXstudio > Commands
En
External PDF Viewer
el 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"
En SumatraPDF, vaya a
Settings > Options
y luego enSet inverse search command-line
escriba"C:/Program Files (x86)/texstudio/texstudio.exe" "%f" -line %l