Ich bin ganz neu bei Latex und verwende derzeit Overleaf, um meine Latex-Dateien zu verwalten. Hier ist mein Problem: Ich habe mehrere Projekte in Overleaf, jedes zu einem bestimmten Thema. Ich möchte ein weiteres Projekt erstellen, das irgendwie alle anderen Projekte liest und die Anzahl der Seiten in jedem Projekt abruft (Seiten der zugehörigen PDF-Datei). Dieses neue Projekt dient als Seitenzähler und verfolgt, wie lang alle anderen Projekte sind. Gibt es eine einfache Möglichkeit, dies zu tun?
Wenn dies in Overleaf nicht möglich ist, aber in Texstudio oder einem lokalen Texteditor einfach ist, lassen Sie es mich bitte wissen
Antwort1
Auf jedem modernen TeX-System können Sie, vorausgesetzt Sie verwenden die pdfTeX-Engine (die Standardeinstellung bei Overleaf), die Seitenzahl einer externen PDF-Datei mit einem Makro wie dem folgenden ausdrucken:
\def\numberofpages#1{\pdfximage{#1}\the\pdflastximagepages}
wobei das Argument der relative Pfad zur betreffenden PDF-Datei ist. Es gibt Versionen für andere Engines unterSeitenzahl des externen PDF abrufen. Dieser Teil ist nicht spezifisch für Overleaf, Sie können ihn bei Bedarf auch in Ihrer eigenen lokalen TeX-Distribution verwenden.
Mit Dokumenten, die über mehrere Overleaf-Projekte verteilt sind
Der Trick bei Overleaf (vollständige Offenlegung: Ich bin Supportmitarbeiter bei Overleaf.) besteht darin, innerhalb Ihres Zusammenfassungsprojekts, das die Seiten zählt (nennen wir es das Zusammenfassungsprojekt), auf die PDF-Datei aus Ihren anderen Projekten zuzugreifen. Dies kann erreicht werden, indem die Ausgabedateien der anderen Projekte als neue Dateien in Ihr Zusammenfassungsprojekt aufgenommen werden.
Ich würde dies nicht empfehlen, da hierfür unbedingt daran gedacht werden muss, alle externen Dateien auf dem neuesten Stand zu halten.Aber wenn es unbedingt nötig ist, ist es möglich.
Öffnen Sie das Übersichtsprojekt und wählen Sie dann „Neue Datei“ -> „Aus einem anderen Projekt“. Wählen Sie dann das Projekt aus, dessen Seiten Sie zählen möchten. Klicken Sie im Dropdown-Menü „Datei auswählen“ auf „Aus Ausgabedateien auswählen“ und wählen Sie dann output.pdf
.
Wählen Sie anschließend im Zusammenfassungsprojekt einen geeigneten Namen für die Ausgabe-PDF-Datei. (Dieser muss eindeutig sein, wenn Sie die Seiten mehrerer externer Seiten zählen möchten.)
Definieren Sie dann das \numberofpages
oben aufgeführte Makro irgendwo in der Präambel Ihres Zusammenfassungsprojekts. Angenommen, ich lade eine externe PDF-Datei mit dem Dateinamen ein PaperA.pdf
, dann kann ich die Seitenzahl überall im Zusammenfassungsprojekt mit
\numberofpages{PaperA.pdf}
Der Vorbehalt besteht darin, dass Sie beim Bearbeiten Ihrer anderen Projekte und bei der Rückkehr zum Übersichtsprojekt daran denken müssen, alle Ihre externen PDF-Dateien mit der Schaltfläche „Aktualisieren“ zu aktivieren, die bei jeder externen PDF-Datei angezeigt wird, die Sie zum Übersichtsprojekt hinzufügen:
Aufgrund der Architektur von Overleaf ist es nicht möglich, diese externen Dateien automatisch zu aktualisieren, wenn sich das andere Projekt ändert. Dies muss manuell mit der Schaltfläche „Aktualisieren“ erfolgen.
Mit mehreren Dokumenten innerhalb eines einzigen Overleaf-Projekts
xr
Wenn Sie mehrere Dokumente in einem einzigen Overleaf-Projekt haben, kann dies mit einer Kombination aus -ähnlichem Code und diesem \numberofpages
Makro oder wie John in einem Kommentar erwähnt hat , automatisierter erfolgen lastpage
. Aber es gibt auch andere Kompromisse bei dieser Methode auf Overleaf, je nachdem, was genau Sie in jedem dieser anderen Dokumente haben. SieheKann ich auswählen, welche Datei die Haupt-Tex-Datei in einem Projekt auf Overleaf ist?Weitere Informationen zum Kompilieren mehrerer Dokumente in einem einzigen Overleaf-Projekt.
Wenn Sie mehrere Dokumente in einem Overleaf-Projekt konsolidieren möchten, zeigt dieser Hilfeartikel, wie Sie mithilfe einer latexmkrc
Datei auf Overleaf die Kompilierung anderer Dateien in einem einzigen Overleaf-Projekt auslösen:Querverweise mit dem XR-Paket in Overleaf. In diesem Artikel wird dies im Hinblick auf die Verwendung des xr
Pakets besprochen, aber der gleiche Ansatz könnte verwendet werden, um ein aktualisiertes PDF im Ausgabedateibereich des Projekts abzurufen, um es mit dem \numberofpages
oben beschriebenen Makro zu verwenden.