[OS X TeX] print the latex source filename

Peter Dyballa Peter_Dyballa at Web.DE
Sat Mar 21 11:15:21 CET 2009


Am 21.03.2009 um 03:41 schrieb Alain Schremmer:

> I haven't been able to make this code work. What does it do  
> compared to:
>
> \documentclass[11pt]{book}
> 			\usepackage{calc}
> 			\newcounter{hours}\newcounter{minutes}
> 			\newcommand{\printtime}%
> 			{%begin definition
> 				\setcounter{hours}{\time/60}%
> 				\setcounter{minutes}{\time-\value{hours}*60}%
> 				\thehours:\theminutes%
> 			}%end definition
> \begin{document}
> 	This file was saved as \jobname \hspace{1mm} on \today \hspace 
> {1mm} at \printtime.
> \end{document}


This records the time when the source file was compiled. The other  
code reflects the time when the source file was saved. This does make  
a difference: some time vs. a versioning time stamp. BTW: the compile  
time is usually recorded in the PDF output, so it's not that useful  
to put it also in the text body. You can see it on the command line  
with pdfinfo (from the xpdf software), you can see it in Finder's  
inspector (quite the same with ⌘-I), and you can also check it in  
Adobe or Acrobat Readers. For example:

	pete 574 /\ pdfinfo Beispiel.pdf
	Title:          An UTF-8 LaTeX Example
	Subject:        ISO Latin-1 and ISO Latin-9 characters
	Keywords:       LaTeX, UTF8, ISO, Latin-1, Latin-2, Latin-9, ISO  
8859, LICR
	Author:         Peter Dyballa
	Creator:        LaTeX with hyperref package
	Producer:       pdfTeX-1.40.9
	CreationDate:   Fri Mar 20 17:47:41 2009
	ModDate:        Fri Mar 20 17:47:41 2009
	Tagged:         no
	Pages:          4
	Encrypted:      no
	Page size:      841.89 x 595.276 pts (A4)
	File size:      141162 bytes
	Optimized:      no
	PDF version:    1.4
	pete 575 /\ ls -l Beispiel.pdf
	-rw-r--r--   1 pete  admin  141162 21 Mär 10:48 Beispiel.pdf

Although recently re-compiled the date of the source file's last  
change is recorded. You can have both times by commenting, for  
example, the line with ``pdfcreationdate={\@SourceFileDate},%´´ in  
the \hypersetup:

	Title:          An UTF-8 LaTeX Example
	Subject:        ISO Latin-1 and ISO Latin-9 characters
	Keywords:       LaTeX, UTF8, ISO, Latin-1, Latin-2, Latin-9, ISO  
8859, LICR
	Author:         Peter Dyballa
	Creator:        LaTeX with hyperref package
	Producer:       pdfTeX-1.40.9
	CreationDate:   Sat Mar 21 11:11:22 2009
	ModDate:        Sat Mar 21 11:11:11 2009
	Tagged:         no
	Pages:          4
	Encrypted:      no
	Page size:      841.89 x 595.276 pts (A4)
	File size:      141162 bytes
	Optimized:      no
	PDF version:    1.4


To implement it, in the preamble:

\documentclass[]{<somecls>}

     \usepackage{hyperref}						% necessary
     \makeatletter
     \@ifundefined{pdffilemoddate}{%
        \PackageError{sourcetime}{%
          pdfTeX >= 1.30.0 required%
        }%
        \let\pdffilemoddate\@gobble
     }{}%
     \newcommand*{\SourceFile}[1]{%
       \edef\@SourceFileDate{\pdffilemoddate{#1}}%
       % empty in case of errors, but don't harm in next comparison
       \ifnum\pdfstrcmp{\@SourceFileDate}{\@CurrentSourceFileDate}>0 %
         \let\@CurrentSourceFileDate\@SourceFileDate
         \expandafter\@ParseDate\@SourceFileDate\@nil
         \hypersetup{%
           pdfcreationdate={\@SourceFileDate},%
           pdfmoddate={\@SourceFileDate}%
         }%
         \PackageInfo{sourcetime}{%
           Using file `#1'%
         }%
       \fi
     }
     \newcommand*{\@CurrentSourceFileDate}{}			% produces date form  
for PDF info
     \expandafter\def\expandafter\@ParseDate\detokenize{D:} 
#1#2#3#4#5#6#7#8{%
       \year=#1#2#3#4\relax
       \month=#5#6\relax
       \day=#7#8\relax
       \@ParseTime
     }
     \def\@ParseTime #1#2#3#4#5\@nil{%
       \time=\numexpr #1#2 * 60 + #3#4\relax
     }
     \makeatother
     \SourceFile{\jobname.tex}						% execution

\begin{document}
This is a text body!
\end{document}


What are the errors you get?

--
Greetings

   Pete

A common mistake that people make when trying to design something  
completely foolproof is to underestimate the ingenuity of complete  
fools.





More information about the macostex-archives mailing list