Arara synctex в редактировании книги

Arara synctex в редактировании книги

Проблема в том, что у меня не работает 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

в командной строке и посмотреть, что получится. Я могу придумать несколько сценариев:

  1. Редактор не знает о существовании цепочки компиляции, которая сгенерировала результирующий PDF-файл, поэтому ничего не обновляется, или

  2. У вас есть директивы в исходном коде (не показаны в этом конкретном примере), которые избавляются от synctex.gzфайлов, чтобы навести порядок в каталоге, или

  3. В исходном коде могут быть конфликты, которые вызывают эту проблему.

Кстати, я заметил, что файл журнала содержит много предупреждений о перекрестных ссылках. Хотя 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.

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