Wie verwende ich eine Zeichenfolge in einer Hilfsdatei, um den Header zu aktualisieren?

Wie verwende ich eine Zeichenfolge in einer Hilfsdatei, um den Header zu aktualisieren?

Ein Dokument (typischerweise für viele) hat eine Kopfzeile, die einen Zeitstempel in Form einer Textzeichenfolge anzeigt („25. Dezember 2013“). Die Zeitstempelzeichenfolge stammt aus einer Datei, "update"die mit geladen wird \input.

Ich habe versucht, ein minimales funktionierendes Beispiel zu erstellen, aber das Beispiel (drei Dateien) funktioniert nicht wie erwartet.

% this is a listing of example.cls
\ProvidesPackage{example}
\LoadClassWithOptions{book}
\newcommand{\timestamp}[1]{#1}
\newcommand{\revision}{ \timestamp}
% this is a listing of example.tex
\documentclass[letterpaper]{example}
\begin{document}
This line represents the document header: \revision
\input{update} % update data from external file
Now the header should reflect the update: \revision
\end{document}
% this is a listing of "update"
% the date string should update the document header:
\timestamp{25 December 2013}
This line represents update text, which typically consists of dozens of lines.

Nach langem Suchen und Lesen verstehe ich immer noch nicht, welcher LaTeX-Mechanismus – wie \saveboxoder \renewcommand– für diese Aufgabe geeignet ist. Außerdem bin ich verwirrt, was den richtigen Speicherort für die Definitionen von \timestampund betrifft \revision– sollten sie in der Klassendatei ( example.cls), in der Hauptdokumentdatei ( example.tex) oder in der Datei ( update) definiert werden, die die Hauptdokumentdatei regelmäßig aktualisiert? Ich neige dazu, so viel wie möglich in der Klassendatei zu definieren, da es über tausend Dokumentdateien gibt.

Antwort1

Ich denke, das macht, was Sie wollen. Sie brauchen keine neue .clsDatei.

\documentclass{book}

\newcommand{\revision}{dummy value}

\newcommand{\timestamp}[1]{%
\renewcommand{\revision}{#1}
}

\begin{document}
This line represents the document header: \revision

\input{update} % update data from external file, type .tex

Now the header should reflect the update: \revision

\end{document}

Bildbeschreibung hier eingeben

Wenn die Revisionszeile, die im Dokumentkopf vor dem Eingabetext erscheint, den neuen Wert des Zeitstempels benötigt, müssen Sie etwas mehr arbeiten - siehewie kann man Text in einen anderen Teil eines Dokuments kopieren?

verwandte Informationen