Настройте прямой поиск с помощью Texmaker + SumatraPDF

Настройте прямой поиск с помощью Texmaker + SumatraPDF

Texmaker имеет встроенный просмотрщик PDF, который поддерживает прямой/обратный поиск synctex из коробки. Этот встроенный просмотрщик может отображаться встроенным или в отдельном окне, внешние просмотрщики всегда имеют отдельное окно. Поскольку у меня два экрана, я использую двухоконный макет.

Теперь я хотел бы перейти кСуматраPDFкак внешний просмотрщик, но не могу найти, как настроить Texmaker, чтобы заставить работать прямой поиск.
Я подалзапрос функциичтобы добавить эту информацию вДокументация Texmakerуже. Кто-нибудь здесь знает, как это сделать? Вероятно, используя некоторыеDDE-команда...

решение1

Похоже, что Texmaker не допускает DDE-команды, ноначиная с версии 1.9 SumatraPDFподдерживает прямой поиск не только с помощью команд DDE, но и с помощью ключей командной строки. Начиная с версии 3.2.1 Texmakerимеет все переменные, которые необходимы для использования прямого поиска. Это

  • %для базового имени главного файла (без пути и без расширения),
  • !для полного пути к каталогу, где находится главный документ,
  • #для базового имени текущего активного файла (без пути и без расширения) и
  • @для номера строки.

Поэтому обычно должно сработать следующее:

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

Это приведет к ошибке при включении из подкаталога. Обходной путь — вручную добавить subDirName в путь:

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

Но тогда subDirName должен быть одинаковым во всех проектах, так что это скорее обходной путь, чем реальное решение.

Вот скриншот моей конфигурации Texmaker: введите описание изображения здесь

решение2

Я только что сделал документ, описывающий, как настроить Texmaker и SumatraPDF с прямым и обратным поиском, но полностью переносимый, что немного сложно. Ссылка на инструкциюhttp://goo.gl/hxDeu(без редиректа:http://goo.gl/hxDeu+) или см. ниже:

1. Настройка Texmaker для использования SumatraPDF в качестве внешнего просмотрщика PDF-файлов с прямым поиском Откройте портативный Texmaker и укажите путь к внешнему просмотрщику следующим образом:

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

Обратите внимание, что путь к SumatraPDF.exe указан относительно исполняемого файла Texmaker, и вам может потребоваться отредактировать этот путь в соответствии со структурой ваших папок.

Texmaker -> Настроить Texmaker -> Команды

2. Настройка обратного поиска в SumatraPDF

По умолчанию SumatraPDF не позволяет настраивать обратный поиск через GUI. Выполните один раз следующую команду:

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

Не следует менять путь к файлу texmaker.exe, даже если у вас структура папок отличается от моей.

Окно параметров SumatraPDF с открытыми настройками обратного поиска

3. Создать пакетный файл запуска

Из-за некоторых ограничений в SumatraPDF нам приходится запускать Texmaker со следующим пакетным файлом каждый раз, когда мы хотим использовать SumatraPDF в качестве внешнего просмотрщика. Поместите следующие команды в texmaker-portable.bat и сохраните этот файл в той же папке, что и Texmaker.exe. Также обратите внимание, что вы можете передать любой параметр в texmaker-portable.bat, который вы могли бы передать самому texmaker.exe.

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

4. Запустите texmaker-portable.bat и проверьте настройки.

Поиск неисправностей

  • убедитесь, что вы используете параметр -synctex=1или -synctex=-1при форматировании tex-файла
  • файл tex не должен содержать пробелов в своем имени (Texmaker и SumatraPDF прекрасно обрабатывают пробелы, но файл SyncTeX может не быть создан даже с -synctex=1параметром)
  • убедитесь, что вы запустили Texmaker с пакетным файлом и SumatraPDF через Texmaker (эта цепочка обязательна)

решение3

Это должно быть ответом на ответ от Vlastimil выше. Я обнаружил, что обратный поиск отлично работает без пакетного файла. Я просто использую следующую строку в Sumatra PDF Options (она автоматически появилась как опция). Я использую Sumatra 2.1.1 и Texmaker 3.5.

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

Как уже отмечалось, прямой поиск также работает с командной строкой в ​​параметрах Texmaker:

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

решение4

Цель этого ответа — понять шаги для TeXmaker v4.5 и TeXstudio v2.12.22 с SumatraPDF v3.2.

TeXmaker

  1. В Texmaker перейдите наOptions > Configure Texmaker > Commands
  2. В External Viewerполе (если вы используете SumatraPDF) введите

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

введите описание изображения здесь

  1. В SumatraPDF перейдите на страницу Settings > Options, затем введитеSet inverse search command-line

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

введите описание изображения здесь

TeXstudio

Если вы используете TeXstudio

  1. В TeXstudio перейдите вOptions > Configure TeXstudio > Commands
  2. В External PDF Viewerполе введите

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

введите описание изображения здесь

  1. В SumatraPDF перейдите в Settings > Options, затем в Set inverse search command-line, введите

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

введите описание изображения здесь

Связанный контент