Das Problem ist, dass Synctex in Arara bei mir nicht funktioniert.
Ich verwende MacTeX mit TeXShop 4.26. Es wird eine spezielle Dokumentklasse verwendet (ich hoffe, das hat keine Auswirkungen). Seit Monaten führe ich diese Datei aus, indem ich alle unterstützenden Dateien wie chp1.tex in denselben Dateiordner lege und auf Befehl+T klicke. Die Synchronisierung von PDF nach Tex und alles andere funktioniert einwandfrei, außer die Synchronisierung von Tex nach PDF. Die Synchronisierung von Tex nach PDF funktioniert gut beim Bearbeiten anderer einfacher Dateien, indem pdflatex direkt verwendet wird (anstatt Arara zu verwenden). Ist da etwas falsch?
% !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}
Antwort1
Ich habe diese Antwort absichtlich als Community-Wiki gekennzeichnet, da es sich nicht um eine direkte Antwort handelt, sondern eher um einen ausführlichen Kommentar, der zu lang ist, um als solcher gepostet zu werden. Ich habe wirklich keine Lust, Reputation zu ernten.:)
Zunächst einmal vielen Dank für das Protokoll.:)
Aus der Überprüfung des Protokolls geht klar hervor, dass arara
alle Schritte zur Ausführung der aus den Anweisungen zugeordneten Befehle erfolgreich ausgeführt werden. Für mich gibt es jedoch keinen klaren Hinweis darauf, dass das Tool für das in dieser Frage gemeldete Problem verantwortlich ist. Ich werde näher darauf eingehen.
arara
ist wie ein Wrapper, der den Aufruf für die eigentlichen Programme wie pdflatex
und Freunde erleichtert. Wenn ich den bereitgestellten Code nehme und das Tool mit aktiviertem Code durchlaufe --dry-run
, können wir tatsächlich sehen, was arara
in einem normalen Szenario tatsächlich ausgeführt wird (hier natürlich ohne einen Aufruf, da dieses Flag die eigentliche Ausführung deaktiviert):
$ 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
Die letzten beiden Aufrufe müssen pdflatex
das --synctex=1
Flag enthalten, das für die ordnungsgemäße SyncTeX-Unterstützung sorgen soll. Das ist alles.
Allerdings kann man wenig bis gar nichts tun, ohne in die Tiefen der tatsächlichen Umgebung und des Codes einzutauchen, um zu sehen, was passiert. Mein Vorschlag ist, unabhängig auszuführen
pdflatex --synctex=1 myfile.tex
in der Befehlszeile und sehen Sie, was passiert. Ich kann mir einige Szenarien vorstellen:
Der Editor ist sich nicht bewusst, dass es eine Kompilierungskette gab, die das resultierende PDF generiert hat, daher wird nichts aktualisiert, oder
Sie haben Anweisungen in Ihrem Quellcode (in diesem Beispiel nicht gezeigt), die Dateien entfernen,
synctex.gz
um das Verzeichnis zu entrümpeln, oderEs gibt potenzielle Konflikte im Quellcode, die dieses Problem verursachen.
Apropos, mir ist aufgefallen, dass die Protokolldatei viele Warnungen zu Querverweisen enthält. Obwohl SyncTeX nicht direkt damit zusammenhängt, lohnt es sich vielleicht, das zu überprüfen. Ich habe es mit ein paar meiner Dokumente versucht und sie haben funktioniert, daher kann ich dieses Problem wirklich nicht reproduzieren, es tut mir sehr leid.
Bitte versuchen Sie, es als eigenständigen Aufruf auszuführen, pdflatex
anstatt zu verwenden arara
, und prüfen Sie, ob es funktioniert. Versuchen Sie auch andere ähnliche Tools wie latexmk
. Wenn das Problem weiterhin besteht, müssen wir möglicherweise zu einem minimalen funktionierenden Beispiel übergehen, das das Problem reproduziert, andernfalls kann ich nur Vermutungen anstellen.
Es tut mir leid, dass ich Ihnen bei diesem Problem nicht helfen kann. Bitte halten Sie mich auf dem Laufenden.
Antwort2
Ich habe eine Lösung gefunden: Fügen Sie % !TEX root = main.tex
am Anfang der Datei für jedes Kapitel beispielsweise chp1.tex hinzu. Dieser Befehl weist einen relativen Pfad zu, sodass die generierte Synchronisierungsdatei die Hauptdatei findet, die eine Zeile \include{chp1} enthält. Eine alternative Lösung besteht darin, einen absoluten Pfad hinzuzufügen, beispielsweise „
% !TEX root = /Users/main.tex
if /Users/main.tex
is the location of the file main.tex“ auf meinem Mac. Das Problem sollte eher darin bestehen, ein Buch in mehreren Dateien zu bearbeiten, als Arara zu verwenden.