\importonly, um nur einen einzigen Import zu verarbeiten?

\importonly, um nur einen einzigen Import zu verarbeiten?

Ich erstelle ein großes Dokument und verwende statt include/input den \subimport*Befehl aus dem importPaket. Dadurch kann ich relativen Pfaden ganz einfach Rechnung tragen.

Das Schöne an \includeist 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 \subimportauf \subincludefromund 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 \includeonlyder 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.0noch 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.2wurde die Version veröffentlicht und istverfügbar auf CTAN. styDas 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 subincludefromBefehlen befindet.

verwandte Informationen