¿Cómo utilizar una cadena en un archivo auxiliar para actualizar el encabezado?

¿Cómo utilizar una cadena en un archivo auxiliar para actualizar el encabezado?

Un documento (típico de muchos) tiene un encabezado que muestra una marca de tiempo en forma de cadena de texto (“25 de diciembre de 2013”). La cadena de marca de tiempo se origina en un archivo "update"cargado con \input.

Intenté construir un ejemplo funcional mínimo, pero el ejemplo (tres archivos) no funciona como esperaba.

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

Después de mucha búsqueda y lectura, todavía no entiendo qué mecanismo LaTeX (como \saveboxo \renewcommand) es apropiado para esta tarea. Además, estoy confundido con respecto a la ubicación adecuada para las definiciones de \timestampy \revision: ¿deberían definirse en el archivo de clase ( example.cls), en el archivo del documento principal ( example.tex), o en el archivo ( update) que actualiza periódicamente el archivo del documento principal? Mi inclinación es definir tanto como sea posible en el archivo de clase, porque hay más de mil archivos de documentos.

Respuesta1

Creo que esto hace lo que quieres. No necesitas un .clsarchivo nuevo.

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

ingrese la descripción de la imagen aquí

Si la línea de revisión que aparece en el encabezado del documento antes del texto ingresado necesita el nuevo valor de la marca de tiempo, tendrá que trabajar un poco más - consulte¿Cómo hacer que el texto se copie a otra parte de un documento?

información relacionada