![Como usar uma string em um arquivo auxiliar para atualizar o cabeçalho?](https://rvso.com/image/281466/Como%20usar%20uma%20string%20em%20um%20arquivo%20auxiliar%20para%20atualizar%20o%20cabe%C3%A7alho%3F.png)
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 \savebox
ou \renewcommand
– é apropriado para esta tarefa. Além disso, estou confuso quanto ao local adequado para as definições de \timestamp
e \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 .cls
arquivo.
\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}
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?