Como usar uma string em um arquivo auxiliar para atualizar o cabeçalho?

Como usar uma string em um arquivo auxiliar para atualizar o cabeçalho?

Um documento (típico de muitos) tem um cabeçalho que exibe um carimbo de data/hora na forma de uma string de texto (“25 de dezembro de 2013”). A string de carimbo de data/hora se origina em um arquivo "update"carregado com a extensão \input.

Tentei construir um exemplo funcional mínimo, mas o exemplo (três arquivos) não funciona como eu esperava.

% 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.

Depois de muita pesquisa e leitura, ainda não entendi qual mecanismo LaTeX – como \saveboxou \renewcommand– é apropriado para esta tarefa. Além disso, estou confuso quanto ao local adequado para as definições de \timestampe \revision- elas deveriam ser definidas no arquivo de classe ( example.cls), no arquivo do documento principal ( example.tex) ou no arquivo ( update) que atualiza periodicamente o arquivo do documento principal? Minha inclinação é definir o máximo possível no arquivo de classe, pois existem mais de mil arquivos de documentos.

Responder1

Eu acho que isso faz o que você quer. Você não precisa de um novo .clsarquivo.

\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}

insira a descrição da imagem aqui

Se a linha de revisão que aparece no cabeçalho do documento antes do texto de entrada precisar do novo valor do carimbo de data/hora você terá que trabalhar um pouco mais - vejacomo fazer com que o texto seja copiado para outra parte de um documento?

informação relacionada