本の編集におけるアララシンクテックス

本の編集におけるアララシンクテックス

問題は、Arara の synctex が機能しないことです。

私は 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

最後の 2 つの呼び出しにはフラグ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} の行を含むメイン ファイルを見つけます。別の解決策は、Mac 上の main.tex ファイルの場所のように絶対パスを追加することです % !TEX root = /Users/main.tex/Users/main.tex問題は、Arara を使用することではなく、複数のファイルで本を編集することに関するものであるはずです。

関連情報