Buongiorno a tutti,
stò impostando un documento e fino a quando dovrò stampare la versione definitiva voglio che in fondo alla pagina compaiano data e ora di compilazione, come fa l’opzione drafting di classicthesis. Con \today riesco a stampare la data, ma no ho trovato nulla per stampare l’ora.
Se qualcuno conoscesse il comando mi farebbe un grosso favore.
Grazie mille
Senza bisogno di scomodare un pacchetto aggiuntivo, se sai già mettere al suo posto \today, aggiungi al preambolo:
`\newcommand\now{{%
\count0=\time
\count2=\time
\divide\count2 by 60
\number\count2:%
\multiply\count2 by 60
\advance\count0 by -\count2
\ifnum\count0<10 0\fi\number\count0 }}`
e usa “Printed \today\ at \now”. Alternativamente, scrivi
`\def\NOW{\expandafter\NOWA\pdfcreationdate}
\def\NOWA#1:#2#3#4#5#6#7#8#9{%
Printed on #8#9/#6#7/#2#3#4#5 at \NOWB}
\def\NOWB#1#2#3#4#5'#6'{#1#2:#3#4}`
e con \NOW avrai “Printed on 28/04/2010 at 16:47”[/quote]
Una versione molto più generale:
`\begingroup
\catcode`\:=12
\def\timeA#1:#2#3#4#5#6#7#8#9{%
\def\noexpand\Year{#2#3#4#5}%
\def\noexpand\Month{#6#7}%
\def\noexpand\Day{#8#9}%
\timeB}
\def\timeB#1#2#3#4#5#6#7{%
\def\noexpand\Hours{#1#2}%
\def\noexpand\Minutes{#3#4}%
\def\noexpand\Seconds{#5#6}%
\def\noexpand\UTCDiff{#7}%
\timeC}
\def\timeC#1#2#3#4#5#6{%
\def\noexpand\DHours{#1#2}%
\def\noexpand\DMinutes{#4#5}}
\edef\inittime{\expandafter\timeA\pdfcreationdate}
\expandafter\endgroup\inittime`
A questo punto si hanno a disposizione \Year, \Month, \Day, \Hours, \Minutes, \Seconds, \UTCDiff, \DHours, \DMinutes. Per esempio, la data di compilazione può essere scritta
`Versione del \Day/\Month/\Year, ore \Hours:\Minutes\ (UTC~$\UTCDiff$\DHours:\DMinutes)`
Mi piace più di quello di prima perché si definiscono solo i comandi strettamente necessari e il numero di espansioni è ridotto. La macro \timeA attiva la lettura della stringa ottenuta espandendo \pdfcreationdate dentro \edef\inittime; alla fine dell’espansione dentro \edef avremo come testo di sostituzione
`\def\Year{2010}\def\Month{04}…\def\DMinutes{00}`
(ovviamente i valori cambiano leggendo l’effettiva data). Il gruppo viene chiuso subito dopo aver dato \edef\inittime, ma \inittime è effettivamente espanso prima della chiusura del gruppo; le definizioni \def\Year{2010} e successive vengono eseguite dopo la chiusura del gruppo e così \timeA, \timeB, \timeC e \inittime spariscono dalla memoria, così come l’impostazione del codice di categoria del carattere “due punti” (che è necessaria perché, per esempio, il modulo del francese di babel lo rende attivo).
Ciao
Enrico