
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, и вам может потребоваться отредактировать этот путь в соответствии со структурой ваших папок.
2. Настройка обратного поиска в SumatraPDF
По умолчанию SumatraPDF не позволяет настраивать обратный поиск через GUI. Выполните один раз следующую команду:
SumatraPDF.exe -inverse-search "texmaker.exe %f -line %l"
Не следует менять путь к файлу texmaker.exe, даже если у вас структура папок отличается от моей.
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
- В Texmaker перейдите на
Options > Configure Texmaker > Commands
В
External Viewer
поле (если вы используете SumatraPDF) введите"C:\Program Files\SumatraPDF\SumatraPDF.exe" -1 -s @%.tex %.pdf
В SumatraPDF перейдите на страницу
Settings > Options
, затем введитеSet inverse search command-line
"C:\Program Files (x86)\Texmaker\texmaker.exe" "%f" -line %l
TeXstudio
Если вы используете TeXstudio
- В TeXstudio перейдите в
Options > Configure TeXstudio > Commands
В
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"
В SumatraPDF перейдите в
Settings > Options
, затем вSet inverse search command-line
, введите"C:/Program Files (x86)/texstudio/texstudio.exe" "%f" -line %l