Проблема в том, что у меня не работает synctex в Arara.
Я использую MacTeX с TeXShop 4.26. Используется специальный класс документа (надеюсь, он не повлияет). Месяцами я запускаю этот файл, помещая все вспомогательные файлы, такие как chp1.tex, в ту же папку и нажимая command+T. Синхронизация из pdf в tex и все остальное в порядке, кроме синхронизации из tex в pdf. Синхронизация из tex в pdf хорошо работает при редактировании любого другого простого файла напрямую с помощью pdflatex (а не с помощью Arara). Что-то не так?
% !TEX TS-program = Arara
% arara: pdflatex
% arara: bibtex
% arara: makeindex
% arara: nomencl
% arara: pdflatex: {synctex: yes}
% arara: pdflatex: {synctex: on}
\documentclass[cmyk]{***}
\usepackage{amsrefs}
\usepackage{imakeidx}
\usepackage{graphicx,tikz,amscd}
\usepackage[hyperindex,colorlinks,pageanchor]{hyperref}
\usepackage[capitalize]{cleveref}
\makeindex
\usepackage[refpage]{nomencl}
\makenomenclature
\begin{document}
\frontmatter
\input{front}
\tableofcontents
\include{preface}
\mainmatter
\include{chp1}
\include{chp2}
\appendix
\include{appd}
\backmatter
\bibliographystyle{amsalpha}
\bibliography{biblio}
\printindex
\printnomenclature
\pagestyle{empty}
\end{document}
решение1
Я намеренно отметил этот ответ как вики сообщества, потому что это на самом деле не прямой ответ, а скорее развернутый комментарий, который слишком длинный, чтобы быть опубликованным как таковой. Мне действительно не хочется собирать репутацию.:)
Для начала, спасибо за журнал.:)
Изучив журнал, становится ясно, что arara
успешно проходит все этапы выполнения команд, отображенных в директивах. Однако, как мне кажется, нет четких указаний на то, что инструмент виноват в проблеме, о которой сообщается в этом вопросе. Я подробнее расскажу об этом.
arara
это просто как оболочка для облегчения вызова для реальных программ, таких как pdflatex
и друзья. Фактически, если я возьму предоставленный код и запущу инструмент с --dry-run
включенным, мы увидим, что arara
на самом деле выполняется в обычном сценарии (здесь, без вызова, конечно, поскольку этот флаг отключает фактическое выполнение):
$ arara --dry-run 478314.tex
__ _ _ __ __ _ _ __ __ _
/ _` | '__/ _` | '__/ _` |
| (_| | | | (_| | | | (_| |
\__,_|_| \__,_|_| \__,_|
Processing '478314.tex' (size: 231 bytes, last modified:
03/10/2019 17:53:47), please wait.
[DR] (PDFLaTeX) PDFLaTeX engine
-----------------------------------------------------------------
Authors: Marco Daniel, Paulo Cereda
About to run: [ pdflatex, 478314.tex ]
[DR] (BibTeX) The BibTeX reference management software
-----------------------------------------------------------------
Authors: Marco Daniel, Paulo Cereda
About to run: [ bibtex, 478314 ]
[DR] (MakeIndex) The MakeIndex software
-----------------------------------------------------------------
Authors: Marco Daniel, Paulo Cereda
About to run: [ makeindex, -t, 478314.ilg, 478314.idx, -o,
478314.ind ]
[DR] (Nomencl) The Nomenclature software
-----------------------------------------------------------------
Authors: Marco Daniel, Nicola Talbot, Paulo Cereda
About to run: [ makeindex, 478314.nlo, -s, nomencl.ist, -o,
478314.nls ]
[DR] (PDFLaTeX) PDFLaTeX engine
-----------------------------------------------------------------
Authors: Marco Daniel, Paulo Cereda
About to run: [ pdflatex, --synctex=1, 478314.tex ]
[DR] (PDFLaTeX) PDFLaTeX engine
-----------------------------------------------------------------
Authors: Marco Daniel, Paulo Cereda
About to run: [ pdflatex, --synctex=1, 478314.tex ]
Total: 0.42 seconds
Последние два вызова pdflatex
имеют --synctex=1
флаг, который, как ожидается, обеспечит надлежащую поддержку SyncTeX. Вот и все.
Однако, мало что можно сделать, не вникая в глубины вашей реальной среды и кода, чтобы увидеть, что происходит. Я предлагаю запустить независимо
pdflatex --synctex=1 myfile.tex
в командной строке и посмотреть, что получится. Я могу придумать несколько сценариев:
Редактор не знает о существовании цепочки компиляции, которая сгенерировала результирующий PDF-файл, поэтому ничего не обновляется, или
У вас есть директивы в исходном коде (не показаны в этом конкретном примере), которые избавляются от
synctex.gz
файлов, чтобы навести порядок в каталоге, илиВ исходном коде могут быть конфликты, которые вызывают эту проблему.
Кстати, я заметил, что файл журнала содержит много предупреждений о перекрестных ссылках. Хотя SyncTeX напрямую не связан с ним, возможно, стоит это проверить. Со своей стороны, я попробовал пару своих документов, и они сработали, так что я действительно не могу воспроизвести эту проблему, мне очень жаль.
Попробуйте запустить его pdflatex
как автономный вызов вместо использования arara
и посмотрите, работает ли он. Также попробуйте другие похожие инструменты, например latexmk
. Если проблема не исчезнет, нам, возможно, придется перейти к минимальному рабочему примеру, который воспроизводит проблему, в противном случае я могу только предполагать.
Извините, что не смог помочь вам в этом вопросе. Пожалуйста, держите меня в курсе.
решение2
Я нашел решение: добавить % !TEX root = main.tex
в начало файла для каждой главы, например, файла chp1.tex. Эта команда назначает относительный путь, чтобы сгенерированный файл синхронизации нашел основной файл, содержащий строку \include{chp1}. Альтернативное решение — добавить абсолютный путь, например,
% !TEX root = /Users/main.tex
если /Users/main.tex
это местоположение файла main.tex на моем Mac. Проблема должна быть в редактировании книги в нескольких файлах, а не в использовании Arara.