Ich erstelle ein großes Dokument und verwende statt include/input den \subimport*
Befehl aus dem import
Paket. Dadurch kann ich relativen Pfaden ganz einfach Rechnung tragen.
Das Schöne an \include
ist jedoch, dass ich nur bestimmte Dateien einschließen kann \includeonly
, ohne dass die Referenzen beschädigt werden. Gibt es einen ähnlichen Befehl für \subimport
?
bearbeiten
Ich versuche, Code zusammenzustellen, der das Problem beheben würde, aber meine LaTeX-Kenntnisse sind wirklich sehr begrenzt. Ich habe eine Art seltsames pseudocodeähnliches Ding geschrieben, vielleicht hilft das?
\makeatletter
\AtBeginDocument{%
\let\origsubimport\subimport
\newcommand\subimportonly[1]{\let\somevar=#1}
\renewcommand\subimport[1]{\@ifstar
if #1 == letvar, use origsubimport*;
o/w just include aux?
}}
\makeatother
Antwort1
Aktualisieren Sie alle Instanzen von \subimport
auf \subincludefrom
und entfernen Sie die Erweiterung „.tex“ aus dem Pfad.
Beispielsweise diese Verwendung von \subimport
:
\begin{document}
\subimport{intro/}{intro.tex}
\subimport{chap1/}{chap1.tex}
\subimport{discussion/}{discussion.tex}
\end{document}
Würde das hier werden:
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}
Nachdem Sie mindestens einmal kompiliert haben und nun beispielsweise nur noch die Diskussion einbinden möchten, können Sie \includeonly
der Präambel ein hinzufügen, und zwar etwa so:
\includeonly{discussion}
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}
Und das Dokument enthält nur discussion.tex. Dadurch wird die Editier-Kompilierungs-Anzeigen-Schleife schneller, da Abschnitte, an denen Sie nicht arbeiten, nicht eingeschlossen werden. Gleichzeitig werden die *.aux-Dateien für die Includes intro.tex und chap1.tex verwendet, um zu verhindern, dass Verweise unterbrochen werden.
Dank des Kommentars von @touhami,diese Antwort auf „Kompilierung beschleunigen, indem Kapitel separat (vor-)kompiliert werden?“Unddiese Antwort auf „Wie führen wir hierarchische Einbindungen mit lokalen Pfaden durch?“für die Hilfe beim Zusammenfügen der Punkte.
Antwort2
Zum Zeitpunkt der Abfassung dieses Artikelsvorhandene Antwortfunktioniert weder auf Debian/TeXLive 2019 (LaTeX2e <2020-02-02> patch level 5), import 6.0
noch Windows/MiKTeX 2.9 (LaTeX2e <2019-10-01> patch level 3), import 6.1
. Beide sind vollständig aktualisiert.
Erst vor zwei Tagen, am 01.04.2020, 6.2
wurde die Version veröffentlicht und istverfügbar auf CTAN. sty
Das Problem wurde durch die manuelle Verwendung dieser Datei nicht behoben.
In der Zwischenzeit musste ich Folgendes ausstellen (um das Beispiel von @Paul-Calcraft zu verwenden):
\includeonly{discussion/discussion}
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}
Das heißt, mit dem vollständigen Pfad in includeonly
. Andernfalls gibt es eine sehr unerwartete warning (pdf backend): no pages of output.
Begrüßung, da sich der gesamte Dokumentinhalt innerhalb von subincludefrom
Befehlen befindet.