summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-12-22 23:34:58 +0000
committerKarl Berry <karl@freefriends.org>2008-12-22 23:34:58 +0000
commit4f3875bdc3eef51b36c5bc745af29053080a1775 (patch)
tree45e6cbe22e186ca9738062da359c67d00b92ad0b
parentc40ac1d9fff10c783a2c1b210992df2c75654f3f (diff)
new package tdclock (22dec08)
git-svn-id: svn://tug.org/texlive/trunk@11691 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/tdclock/README17
-rw-r--r--Master/texmf-dist/doc/latex/tdclock/tdclock-beamer-example.pdfbin0 -> 123136 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tdclock/tdclock-beamer-example.tex169
-rw-r--r--Master/texmf-dist/doc/latex/tdclock/tdclock-doc.pdfbin0 -> 119553 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tdclock/tdclock-doc.tex245
-rw-r--r--Master/texmf-dist/tex/latex/tdclock/tdclock.sty296
-rwxr-xr-xMaster/tlpkg/bin/ctan2tds1
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/tdclock.tlpsrc2
10 files changed, 732 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/tdclock/README b/Master/texmf-dist/doc/latex/tdclock/README
new file mode 100644
index 00000000000..614b6527437
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tdclock/README
@@ -0,0 +1,17 @@
+Package name: tdclock (The LaTeX tdclock)
+Package authors: Luis Randez, Juan I. Montijano
+Version/Release: 2.0
+
+Features:
+
+The tdclock package allows the users to insert into a
+LATEX generated pdf document a ticking digital clock showing the date and/or
+time at the moment in which the document is being read.
+
+
+Installation:
+
+Copy the package file tdclock.sty to a directory where LATEX can find it.
+
+
+December 2008 \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/tdclock/tdclock-beamer-example.pdf b/Master/texmf-dist/doc/latex/tdclock/tdclock-beamer-example.pdf
new file mode 100644
index 00000000000..249674a467b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tdclock/tdclock-beamer-example.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tdclock/tdclock-beamer-example.tex b/Master/texmf-dist/doc/latex/tdclock/tdclock-beamer-example.tex
new file mode 100644
index 00000000000..ff802f4ffef
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tdclock/tdclock-beamer-example.tex
@@ -0,0 +1,169 @@
+\documentclass[10pt]{beamer}
+%\usepackage[font=Times, timeinterval=10]{tickingclock}
+%\usepackage[font=Cour, timeinterval=10]{tickingclock}
+%\usepackage[font=Helv, timeinterval=30]{tickingclock}
+\usepackage[timeinterval=10]{tdclock}
+%\usepackage{times}
+%\usepackage{helvet}
+
+\usetheme{Madrid}
+
+
+\title{An example of using Ticking Digital Clock in Beamer}
+\author{Luis R\'{a}ndez \& Juan I. Montijano}
+\institute[IUMA]{IUMA \\ Universidad de Zaragoza }
+\date{\today}
+
+
+\begin{document}
+
+\frame{\titlepage}
+
+\begin{frame}[t]
+\frametitle{Introduction}
+
+\initclock % This must be used one time to initialize the clock
+
+We are putting here a clock with the macro \quad
+\structure{\texttt{$\backslash$tdclock}}:
+
+\bigskip
+
+\tdclock
+
+\bigskip
+
+Before that, the macro \quad \structure{\texttt{$\backslash$initclock}}
+\quad must have been used (only one time !).
+
+\end{frame}
+
+% This is an example of inserting
+% the clock at the place reserved to the date, the foot line in the
+% case of Madrid theme.
+%
+
+\date{\tddate\ \ \tdtime}
+
+\begin{frame}
+
+
+Here we have inserted the clock at the place reserved to the date, the foot line in the case of Madrid theme.
+
+\medskip
+
+To do that, we have redefined the date contents with the order
+\medskip
+
+\centerline{\structure{\texttt{$\backslash$date\{$\backslash$tddate$\backslash$ $\backslash$ $\backslash$tdtime\}}} }
+
+\medskip
+
+Note that color and font size are adjusted according to the theme.
+
+\medskip
+
+Look at the foot!, the clock must be running.
+
+\end{frame}
+
+\begin{frame}
+
+
+Next, we have inserted a button to toggle between clock and stopwatch,
+and a button to reset the stopwatch to zero.
+
+\medskip
+\toggleclock{\beamerbutton{toggle}}
+\tdtime
+\resetcrono{\beamerbutton{reset}}
+
+\medskip
+
+Click at the left button, see what happens (you must wait 10 seconds),
+then click at the right button and see the result.
+Finally, click at the left button again to recover the current time
+
+\bigskip
+
+To do that, we have used
+
+\medskip
+
+\structure{
+\texttt{$\backslash$toggleclock\{$\backslash$beamerbutton\{toggle\}\}} \\%
+\texttt{$\backslash$tdtime} \\
+\texttt{$\backslash$resetcrono\{$\backslash$beamerbutton\{reset\}\}}
+}
+
+
+\end{frame}
+
+%
+% Here we change the colors and size of the clock
+
+\begin{frame}
+
+Here we change the color and size of the clock with
+standard \LaTeX commands.
+
+\structure{\texttt{$\backslash$textcolor\{blue\}\{$\backslash$Large $\backslash$tdhours.$\backslash$tdminutes\}\}}}: %
+\textcolor{green}{\Large \tdhours.\tdminutes}
+
+\bigskip
+
+Here a huge yellow clock showing only hours and minutes, inside a red box
+
+\structure{$\backslash$hhmm $\backslash$factorclockfont\{6.0\} $\backslash$tdtime}
+
+\begin{center}
+\colorbox{red}{\color{yellow} \hhmm \factorclockfont{6.0} \tdtime}
+\end{center}
+
+\end{frame}
+
+\begin{frame}
+
+\centerline{Time-Date-Crono macros}
+\begin{tabular}{|l|l|l|}
+\hline
+ \structure{$\backslash$initclock} & & initialize clock \\ \hline
+ \structure{$\backslash$tickingclock} & \tdclock & complete clock \\ \hline
+ \structure{$\backslash$tickingtime} & \tdtime & current time \\ \hline
+ \structure{$\backslash$tickingdate} & \tddate & current date \\ \hline
+ \structure{$\backslash$tickingday} & \tdday & current day \\\hline
+ \structure{$\backslash$tickingmonth} & \tdmonth & current month \\\hline
+ \structure{$\backslash$tickingyear} & \tdyear & current year \\\hline
+ \structure{$\backslash$tickinghours} & \tdhours & current hours \\\hline
+ \structure{$\backslash$tickingminutes} & \tdminutes & current minutes \\\hline
+ \structure{$\backslash$tickingseconds} & \tdseconds & current seconds \\\hline
+ \structure{$\backslash$crono} & \crono & stopwatch \\ \hline
+ \structure{$\backslash$cronohours} & \cronohours & crono hours \\\hline
+ \structure{$\backslash$cronominutes} & \cronominutes & crono minutes \\\hline
+ \structure{$\backslash$cronoseconds} & \cronoseconds & crono seconds \\\hline
+ \structure{$\backslash$resetcrono} & \resetcrono{\beamerbutton{reset}} & sets crono time to zero \\\hline
+ \structure{$\backslash$toggleclock} & \toggleclock{\beamerbutton{toggle}} & toggle time-crono \\\hline
+\end{tabular}
+
+\end{frame}
+
+\begin{frame}
+
+\centerline{Formatting macros}
+\begin{tabular}{|l|l|l|}
+\hline
+ \structure{$\backslash$hhmm} & \hhmm\tdtime & format time \\ \hline
+ \structure{$\backslash$hhmmss} & \hhmmss\tdtime & format time \\ \hline
+ \structure{$\backslash$mmddyyyy} & \mmddyyyy\tddate & format date \\ \hline
+ \structure{$\backslash$ddmmyyyy} & \ddmmyyyy\tddate & format date \\ \hline
+ \structure{$\backslash$dateseparator} & \def\dateseparator{--}\tddate & separator for date \\ \hline
+ \structure{$\backslash$timeseparator} & \def\timeseparator{.}\tdtime & separator for time \\ \hline
+ \structure{$\backslash$pdfslash} & \pdfslash & slash in pdf font \\ \hline
+ \structure{$\backslash$pdfcolon} & \pdfcolon & colon in pdf font \\ \hline
+ \structure{$\backslash$factorclockfont\{factor\}} & \factorclockfont{2.0}\tdtime & format date \\ \hline
+\end{tabular}
+
+\end{frame}
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/latex/tdclock/tdclock-doc.pdf b/Master/texmf-dist/doc/latex/tdclock/tdclock-doc.pdf
new file mode 100644
index 00000000000..cab6dbe21a7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tdclock/tdclock-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tdclock/tdclock-doc.tex b/Master/texmf-dist/doc/latex/tdclock/tdclock-doc.tex
new file mode 100644
index 00000000000..35cc0b7041b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tdclock/tdclock-doc.tex
@@ -0,0 +1,245 @@
+\documentclass{article}
+
+\usepackage{xcolor}
+\usepackage{hyperref}
+\usepackage{xkeyval}
+\usepackage[font=Times,timeinterval=1]{tdclock}
+
+\title{The Ticking Digital Clock \texttt{tdclock} package v2.0}
+\author{Luis R\'{a}ndez \& Juan I. Montijano}
+%\affiliation[IUMA]{IUMA \\ Universidad de Zaragoza }
+\date{\today}
+
+
+
+\begin{document}
+
+\maketitle
+
+\initclock
+
+\section{The package}
+The \texttt{tdclock} package is a \LaTeX2e package that
+allows the users to insert into a \LaTeX\/ generated pdf document
+a ticking digital clock showing the date and/or time at
+the moment in which the document
+is being read, for example the one next: \quad \tdclock.
+
+\smallskip
+The package is loaded by \texttt{$\backslash$usepackage[``options'']\{tdclock\}}
+
+\medskip
+
+\noindent Options:
+
+\begin{itemize}
+\item timeinterval=$n$
+\item[]
+$n$ can be any positive integer. The clock will update its internal status every $n$ seconds. Thus, if we load
+the package with \texttt{[timeinterval=120]}, the clock will update its display every 2 minutes.
+The default time interval is set to 29 seconds.
+
+Note that for low values of $n$ the memory used by Adobe increases during the time the document remains opened and can
+become very high. Then, values of $n$ below 10 are not recommended.
+
+\item font=``adobe font''
+\item[]
+``adobe font'' is one of the following 9 adobe name fonts:\\[5pt]
+\begin{tabular}{llllll}
+Helv & HelvI & HelvBI &
+Times & TimesI & TimesBI \\
+Cour & CourI & CourBI &&&
+\end{tabular}
+
+\item[]By now no other fonts, like \TeX\ ones, can be used. This restriction comes from the fact that the
+``dynamic'' clock is based on javascript code embedded into the pdf document.
+\end{itemize}
+
+\section{Restrictions--requirements}
+The package requires hyperref, xkeyval and xcolor packages. It works with PDF\LaTeX\/ as well as with \LaTeX\/$\to$DviPs$\to$Ps2pdf sequence.
+In documents generated by Dvipdfm, the clock does not work properly.
+
+Since it uses javascript code, and not all pdf readers can interpret javascript,
+only some of them will display the documents properly. We have tested the package with
+Adobe reader and Adobe acrobat under windows and Linux.
+
+\section{Installation}
+Copy the package file tdclock.sty to a directory where \LaTeX\/ can find it.
+
+\section{Getting the package}
+
+The package can be downloaded at http://pcmap.unizar.es/numerico/software
+
+\section{Macros}
+
+The clock must be initialized with \texttt{$\backslash$initclock}, usually at the beginning of the document, after
+\texttt{$\backslash$begin\{document\}}.
+
+The following macros display dynamically the current date and/or time:
+
+\begin{center}
+\begin{tabular}{|l|l|}
+\hline
+ \bf command & \bf action \\
+\hline
+\texttt{ $\backslash$tdclock} & displays a complete clock \\ \hline
+\texttt{ $\backslash$tdtime} & displays the current time \\ \hline
+\texttt{ $\backslash$tddate} & displays the current date \\ \hline
+\texttt{ $\backslash$tdday} & displays the current day \\\hline
+\texttt{ $\backslash$tdmonth} & displays the current month \\\hline
+\texttt{ $\backslash$tdyear} & displays the current year \\\hline
+\texttt{ $\backslash$tdhours} & displays the current hour \\\hline
+\texttt{ $\backslash$tdminutes} & displays the current minute \\\hline
+\texttt{ $\backslash$tdseconds} & displays the current second \\\hline
+\end{tabular}
+\end{center}
+
+The package also provides macros to display a stopwatch. This can be done
+by means of the following macros:
+
+\begin{center}
+\begin{tabular}{|l|l|}
+\hline
+\bf command & \bf action \\
+\hline
+\texttt{ $\backslash$crono} & displays a stopwatch \\ \hline
+\texttt{ $\backslash$cronohours} & displays a crono (only hours) \\\hline
+\texttt{ $\backslash$cronominutes} & displays a crono (only minutes) \\\hline
+\texttt{ $\backslash$cronoseconds} & displays a crono (only seconds) \\\hline
+\end{tabular}
+\end{center}
+
+In addition, the package includes two macros that display buttons. With one of them, by pressing it,
+you reset the stopwatch to zero values. The form of the command is \texttt{$\backslash$resetcrono\{``button''\}}.
+For example, \texttt{$\backslash$resetcrono\{$\backslash$fbox\{reset\}\} $\backslash$crono} produces (press the button to see what happens):
+\resetcrono{\fbox{reset}} \crono
+
+The other lets you toggle from current time to stopwatch. For example,
+\texttt{$\backslash$toggleclock\{$\backslash$fbox\{toggleclock\}\} $\backslash$tdtime} produces (press the button to see what happens):
+\toggleclock{\fbox{toggle}} \tdtime.
+
+Note that \texttt{$\backslash$toggleclock} only has effect on \texttt{$\backslash$tdtime} command, and not on \texttt{$\backslash$crono}.
+
+\subsection{Formatting the output}
+
+\subsubsection{Size and color}
+The size and color of the characters forming the time or date are the \LaTeX\/
+current font size and color. Thus, for example
+
+\noindent\texttt{
+$\backslash$centerline\{$\backslash$textcolor\{blue\}\{$\backslash$Huge $\backslash$tdclock\}\}
+} gives:
+
+\centerline{\textcolor{blue}{\Huge \tdtime} }
+
+\smallskip
+
+There is another macro, \texttt{$\backslash$factorclockfont\{``factor''\}}, that increases the size of the clock
+by a desired factor. To set the size of the clock to its original size, use
+\texttt{$\backslash$factorclockfont\{1\}}
+
+\subsubsection{Formatting the display}
+There are two commands that change the effect of \texttt{$\backslash$time} and
+\texttt{$\backslash$crono}.
+\begin{itemize}
+\item \texttt{$\backslash$hhmmss} redefine the commands to show the hours,minutes and seconds (this is the default),
+\item \texttt{$\backslash$hhmm} redefine them so that they will only show hours and minutes.
+\end{itemize}
+
+Hours, minutes and seconds are separated by the character defined in the macro \texttt{$\backslash$timeseparator}.
+Therefore, the time separator can be set by redefining this macro. For example,
+
+\centerline{\texttt{$\backslash$renewcommand\{$\backslash$timeseparator\}\{;\}$\backslash$tdtime}}
+
+gives
+
+\centerline{\renewcommand{\timeseparator}{;}\tdtime}
+
+Different types of formats for time can be achieved by means of the macros \texttt{$\backslash$tdhours}, \texttt{$\backslash$tdminutes} and\texttt{$\backslash$seconds}. For example,
+
+\noindent\texttt{$\backslash$minutes}.\texttt{$\backslash$seconds}
+produces: \quad \tdminutes.\tdseconds
+
+Different types of formats for the stopwatch can be achieved by means of the macros \texttt{$\backslash$cronohours}, \texttt{$\backslash$cronominutes} and\texttt{$\backslash$cronoseconds}. For example,
+
+\noindent\texttt{$\backslash$cronominutes}.\texttt{$\backslash$cronoseconds}
+produces: \quad \cronominutes.\cronoseconds
+
+In fact, \texttt{$\backslash$tdtime} and \texttt{$\backslash$crono} are defined by default to \\
+\texttt{$\backslash$tdhours$\backslash$timeseparator$\backslash$tdminutes$\backslash$timeseparator$\backslash$tdseconds}\\ and \\
+\texttt{$\backslash$cronohours$\backslash$timeseparator$\backslash$cronominutes$\backslash$timeseparator$\backslash$cronoseconds}\\ respectively.
+
+\bigskip
+
+Regarding the date, there are two commands that change the effect of \texttt{$\backslash$tddate}.
+\begin{itemize}
+\item \texttt{$\backslash$ddmmyyyy} redefine the command to show the day,month and year (this is the default),
+\item \texttt{$\backslash$mmddyyyy} redefine it to show month, day and year.
+\end{itemize}
+
+Day, month and year are separated by the character defined in the macro \texttt{$\backslash$dateseparator}.
+Therefore, the date separator can be set by redefining this macro. For example,
+
+\centerline{\texttt{$\backslash$renewcommand\{$\backslash$dateseparator\}\{;\}$\backslash$tddate}}
+
+gives
+
+\centerline{\renewcommand{\dateseparator}{;}\tddate}
+
+Different types of formats for date can be achieved by means of the macros \texttt{$\backslash$tdday}, \texttt{$\backslash$tdmonth} and\texttt{$\backslash$tdyear}. For example,
+
+\noindent\texttt{$\backslash$day}--\texttt{$\backslash$month}
+produces: \quad \tdday--\tdmonth
+
+By default, \texttt{$\backslash$tddate} is defined by default to \\
+\texttt{$\backslash$tdday$\backslash$dateseparator$\backslash$tdmonth$\backslash$dateseparator$\backslash$tdyear}.
+
+Since the font used to display the dynamic date and time is one of the adobe fonts, we have included two commands \texttt{$\backslash$pdfslash} and \texttt{$\backslash$pdfcolon} to provide the charactrers ``slash'' and ``colon'' so that defining
+\texttt{$\backslash$renewcommand\{$\backslash$timeseparator\}\{$\backslash$pdfcolon\}}
+the command \texttt{$\backslash$tdtime} will have all their characters in the same font.
+The same for \texttt{$\backslash$tddate} if we use \texttt{$\backslash$pdfslash} as separator.
+
+\newpage
+\section{Summary of macros}
+
+\bigskip
+\centerline{Time-Date macros}
+\begin{tabular}{|l|l|l|}
+\hline
+macro & result & action \\
+\hline
+ $\backslash$initclock & & initialize clock \\ \hline
+ $\backslash$tdclock & \tdclock & complete clock \\ \hline
+ $\backslash$tdtime & \tdtime & current time \\ \hline
+ $\backslash$tddate & \tddate & current date \\ \hline
+ $\backslash$tdday & \tdday & current day \\\hline
+ $\backslash$tdmonth & \tdmonth & current month \\\hline
+ $\backslash$tdyear & \tdyear & current year \\\hline
+ $\backslash$tdhours & \tdhours & current hours \\\hline
+ $\backslash$tdminutes & \tdminutes & current minutes \\\hline
+ $\backslash$tdseconds & \tdseconds & current seconds \\\hline
+ $\backslash$crono & \crono & stopwatch \\ \hline
+ $\backslash$cronohours & \cronohours & crono hours \\\hline
+ $\backslash$cronominutes & \cronominutes & crono minutes \\\hline
+ $\backslash$cronoseconds & \cronoseconds & crono seconds \\\hline
+ $\backslash$resetcrono\{``button''\} & \resetcrono{\fbox{reset}} & sets crono time to zero \\\hline
+ $\backslash$toggleclock\{``button''\} & \toggleclock{\fbox{toggle}} & toggle time-crono \\\hline
+\end{tabular}
+
+\bigskip
+
+\centerline{Formatting macros}
+\begin{tabular}{|l|l|}
+\hline
+ \texttt{$\backslash$hhmm$\backslash$tdtime} & \hhmm\tdtime \\ \hline
+ \texttt{$\backslash$hhmmss$\backslash$tdtime} & \hhmmss\tdtime \\ \hline
+ \texttt{$\backslash$mmddyy$\backslash$tddate} & \mmddyyyy\tddate \\ \hline
+ \texttt{$\backslash$ddmmyy$\backslash$tddate} & \ddmmyyyy\tddate \\ \hline
+ \texttt{$\backslash$renewcommand\{$\backslash$dateseparator\}\{--\}$\backslash$tddate} & \renewcommand{\dateseparator}{--}\tddate \\ \hline
+ \texttt{$\backslash$renewcommand\{$\backslash$timeseparator\}\{.\}$\backslash$tdtime} & \renewcommand{\timeseparator}{.}\tdtime \\ \hline
+ \texttt{$\backslash$pdfslash} & \pdfslash \\ \hline
+ \texttt{$\backslash$pdfcolon} & \pdfcolon \\ \hline
+ \texttt{$\backslash$factorclockfont\{2.0\}$\backslash$tdtime} & \factorclockfont{2.0}\tdtime \\ \hline
+\end{tabular}
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/tdclock/tdclock.sty b/Master/texmf-dist/tex/latex/tdclock/tdclock.sty
new file mode 100644
index 00000000000..3fcf6d82065
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tdclock/tdclock.sty
@@ -0,0 +1,296 @@
+\ProvidesPackage{tdclock} [2007/10/30 v2.0 clock accessory]
+
+%
+% Luis Randez randez@unizar.es
+% Juan I. Montijano monti@unizar.es
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+
+\RequirePackage{hyperref}
+\RequirePackage{xcolor}[2004/05/09]
+\RequirePackage{xkeyval}
+
+
+\ifdefined\clock@font\else\def\clock@font{"font.Helv"}\fi
+\ifdefined\clock@interval\else\def\clock@interval{29}\fi
+%
+\ifdefined\clock@fontsize\else\newdimen\clock@fontsize\clock@fontsize=\f@size pt\fi
+\ifdefined\clock@height\else\newdimen\clock@height\fi
+%\ifdefined\clock@fontcolor\else\newcommand{\clock@fontcolor}{0 0 0}\fi
+
+
+\DeclareOptionX{font}{\def\clock@font{"font.#1"}}
+\DeclareOptionX{timeinterval}{\renewcommand{\clock@interval}{#1}}
+\ProcessOptionsX
+
+\def\a@a{1.0}
+\def\b@b{1.080}
+\def\a@one{1.1}
+\def\b@one{0.3}
+\def\a@h{0.1}
+\def\b@h{0.1}
+
+\def\@Helv{"font.Helv"}
+\def\@HelvB{"font.HelvB"}
+\def\@HelvI{"font.HelvI"}
+\def\@HelvBI{"font.HelvBI"}
+\def\@Times{"font.Times"}
+\def\@TimesB{"font.TimesB"}
+\def\@TimesI{"font.TimesI"}
+\def\@TimesBI{"font.TimesBI"}
+\def\@Cour{"font.Cour"}
+\def\@CourB{"font.CourB"}
+\def\@CourI{"font.CourI"}
+\def\@CourBI{"font.CourBI"}
+\ifx\clock@font\@Helv \def\@hfac{0.9}\def\a@a{1.1}\def\b@b{1.080}\def\a@one{1.1}\def\b@one{0.300}\def\a@h{0.10}\def\b@h{0.10}\fi
+\ifx\clock@font\@HelvB \def\@hfac{0.9}\def\a@a{1.1}\def\b@b{1.080}\def\a@one{1.1}\def\b@one{0.300}\def\a@h{0.10}\def\b@h{0.10}\fi
+\ifx\clock@font\@HelvI \def\@hfac{0.9}\def\a@a{1.1}\def\b@b{1.080}\def\a@one{1.1}\def\b@one{0.300}\def\a@h{0.10}\def\b@h{0.10}\fi
+\ifx\clock@font\@HelvBI \def\@hfac{0.9}\def\a@a{1.1}\def\b@b{1.080}\def\a@one{1.1}\def\b@one{0.300}\def\a@h{0.10}\def\b@h{0.10}\fi
+\ifx\clock@font\@Times \def\@hfac{0.9}\def\a@a{1.0}\def\b@b{1.000}\def\a@one{1.10}\def\b@one{0.280}\def\a@h{0.10}\def\b@h{0.10}\fi
+\ifx\clock@font\@TimesB \def\@hfac{0.9}\def\a@a{1.0}\def\b@b{1.000}\def\a@one{1.10}\def\b@one{0.280}\def\a@h{0.10}\def\b@h{0.10}\fi
+\ifx\clock@font\@TimesI \def\@hfac{0.9}\def\a@a{1.0}\def\b@b{1.000}\def\a@one{1.10}\def\b@one{0.280}\def\a@h{0.10}\def\b@h{0.10}\fi
+\ifx\clock@font\@TimesBI \def\@hfac{0.9}\def\a@a{1.0}\def\b@b{1.000}\def\a@one{1.10}\def\b@one{0.280}\def\a@h{0.10}\def\b@h{0.10}\fi
+\ifx\clock@font\@Cour \def\@hfac{0.8}\def\a@a{1.0}\def\b@b{1.200}\def\a@one{1.1}\def\b@one{0.590}\def\a@h{0.04}\def\b@h{0.07}\fi
+\ifx\clock@font\@CourB \def\@hfac{0.8}\def\a@a{1.0}\def\b@b{1.200}\def\a@one{1.1}\def\b@one{0.590}\def\a@h{0.04}\def\b@h{0.07}\fi
+\ifx\clock@font\@CourI \def\@hfac{0.8}\def\a@a{1.0}\def\b@b{1.200}\def\a@one{1.1}\def\b@one{0.590}\def\a@h{0.04}\def\b@h{0.07}\fi
+\ifx\clock@font\@CourBI \def\@hfac{0.8}\def\a@a{1.0}\def\b@b{1.200}\def\a@one{1.1}\def\b@one{0.590}\def\a@h{0.04}\def\b@h{0.07}\fi
+
+\def\clock@temp#1{\def\clock@tempa##1,##2,##3\@nil{##1 ##2 ##3}%
+\extractcolorspec{#1}\clock@tempb\expandafter\convertcolorspec\clock@tempb{rgb}\clock@tempb\edef\clock@tempa{\expandafter\clock@tempa\clock@tempb\@nil}}
+
+\def\fac@font{1.0}
+\def\factorclockfont#1{\def\fac@font{#1}}
+
+\def\clock@setfonsize{\clock@fontsize=\f@size pt\clock@fontsize=\fac@font\clock@fontsize}
+\def\clock@setfontcolor{\clock@temp{.}\let\clock@fontcolor=\clock@tempa}
+\def\clock@setheight{\clock@height=\@hfac\clock@fontsize}
+%
+\def\toggleclock#1{\PushButton[name=button1, onclick={\auxiliar;}]{#1}}
+\def\resetcrono#1{\PushButton[name=button2, onclick={\resetclock;}]{{#1}}}
+
+\def\dateseparator{\pdfslash}
+\def\timeseparator{\pdfcolon}
+%
+\def\tdclock{\tddate\ \ \tdtime}
+\def\tddate{\tdday\dateseparator\tdmonth\dateseparator\tdyear}
+\def\tdtime{\tdhours\timeseparator\tdminutes\timeseparator\tdseconds}
+\def\crono{\cronohours\timeseparator\cronominutes\timeseparator\cronoseconds}
+%
+\def\hhmm{%
+\def\tdtime{\tdhours\timeseparator\tdminutes}%
+\def\crono{\cronohours\timeseparator\cronominutes}%
+}
+%
+\def\hhmmss{%
+\def\tdtime{\tdhours\timeseparator\tdminutes\timeseparator\tdseconds}%
+\def\crono{\cronohours\timeseparator\cronominutes\timeseparator\cronoseconds}%
+}
+
+\def\mmddyyyy{%
+\def\tddate{\tdmonth\dateseparator\tdday\dateseparator\tdyear}%
+}
+\def\ddmmyyyy{%
+\def\tddate{\tdday\dateseparator\tdmonth\dateseparator\tdyear}%
+}
+
+\def\tdday{\clockfield{day}}
+\def\tdmonth{\clockfield{month}}
+\def\tdhours{\clockfield{hours}}
+\def\tdminutes{\clockfield{minutes}}
+\def\tdseconds{\clockfield{seconds}}
+\def\cronohours{\clockfield{cronohours}}
+\def\cronominutes{\clockfield{cronominutes}}
+\def\cronoseconds{\clockfield{crseconds}}
+
+\newbox\sizebox
+
+\def\tdyear{%
+\clock@setfonsize\clock@setheight\clock@setfontcolor%\clock@setwidth
+\setbox\sizebox=\hbox{\TextField[name=year, width=60pt, height=\clock@height, align = 0, color =\clock@fontcolor, charsize = \clock@fontsize]{}}%
+\vrule width 0pt height 2pt\kern-1pt\kern-\wd\sizebox\kern 60pt{\raisebox{-\b@h\clock@fontsize}{\raisebox{-\a@h pt}{\mbox{\TextField[name=year, width=60pt, height=\clock@height, align = 0, color =\clock@fontcolor, charsize = \clock@fontsize,readonly=true,
+value={}]{}\kern-60pt\kern \a@a pt\kern \b@b\clock@fontsize\kern \b@b\clock@fontsize\vrule width 0pt height 2pt}}}}%
+}
+
+\def\pdfslash{%
+\clock@setfonsize\clock@setheight\clock@setfontcolor%\clock@setwidth
+\setbox\sizebox=\hbox{\TextField[ width=60pt, height=\clock@height, align = 0, color =\clock@fontcolor, charsize = \clock@fontsize,value=/]{}}%
+\vrule width 0pt height 2pt\kern-0.75pt\kern-\wd\sizebox\kern 60pt{\raisebox{-\b@h\clock@fontsize}{\raisebox{-\a@h pt}{\mbox{\TextField[name=separatordate, width=60pt, height=\clock@height, align = 0, color =\clock@fontcolor, charsize = \clock@fontsize,
+readonly=true,value=/]{}\kern-60pt\kern \a@one pt\kern \b@one\clock@fontsize\vrule width 0pt height 2pt}}}}%
+}
+
+\def\pdfcolon{%
+\clock@setfonsize\clock@setheight\clock@setfontcolor%\clock@setwidth
+\setbox\sizebox=\hbox{\TextField[name=separatortime, width=60pt, height=\clock@height, align = 0, color =\clock@fontcolor, charsize = \clock@fontsize,value=:]{}}%
+\vrule width 0pt height 2pt\kern-0.75pt\kern-\wd\sizebox\kern 60pt{\raisebox{-\b@h\clock@fontsize}{\raisebox{-\a@h pt}{\mbox{\TextField[name=separatortime, width=60pt, height=\clock@height, align = 0, color =\clock@fontcolor, charsize = \clock@fontsize,
+readonly=true,value=:]{}\kern-60pt\kern \a@one pt\kern \b@one\clock@fontsize\vrule width 0pt height 2pt}}}}%
+}
+
+\def\clockfield#1{%
+\clock@setfonsize\clock@setheight\clock@setfontcolor%\clock@setwidth
+\setbox\sizebox=\hbox{\TextField[name=#1, width=1.3\clock@fontsize, height=\clock@height, align = 0, color =\clock@fontcolor, charsize = \clock@fontsize]{}}%
+\vrule width 0pt height 2pt\kern-\a@a pt\kern-\wd\sizebox\kern 1.3\clock@fontsize{\raisebox{-\b@h\clock@fontsize}{\raisebox{-\a@h pt}{\mbox{\TextField[name=#1, width=1.3\clock@fontsize, height=\clock@height, align = 0, color =\clock@fontcolor, charsize = \clock@fontsize,readonly=true,
+value={}]{}\kern-1.3\clock@fontsize\kern\a@a pt\kern \b@b\clock@fontsize\vrule width 0pt height 2pt}}}}%
+}
+
+\def\initfields{%
+\begin{Form}
+\mbox{\TextField[format=\startclock,name=resultado2, hidden=true, width=0truecm, height=0truecm, bordercolor= 1 1 1, backgroundcolor= 1 1 1,value={}]{}}
+\end{Form}%
+%\TextField[name=resultado1, hidden=true, width=0pt, height=0pt,charsize=0pt]{}
+\TextField[name=hours, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
+\TextField[name=minutes, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
+\TextField[name=seconds, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
+\TextField[name=cronohours, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
+\TextField[name=cronominutes, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
+\TextField[name=crseconds, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
+\TextField[name=day, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
+\TextField[name=month, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
+\TextField[name=year, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
+\PushButton[name=button1, onclick={\auxiliar;},hidden=true]{}%
+\PushButton[name=button2, onclick={\resetclock;},hidden=true]{}%
+\TextField[name=separatordate, hidden=true, width=0pt, height=0pt,charsize=0pt, value=/]{}%
+\TextField[name=separatortime, hidden=true, width=0pt, height=0pt,charsize=0pt, value=:]{}%
+}
+
+\def\initclock{%
+\setbox\sizebox=\hbox{\initfields}%
+\initfields%
+\kern -\wd\sizebox%
+\unskip
+}
+%
+%
+\def\resetclock{%
+fecha1 = rresett();
+}%
+%
+%
+\def\auxiliar{%
+var iop= -iop;
+}%
+%
+%
+\def\startclock{%
+%
+global.iop;
+global.fuente;
+global.interval;
+var iop=1;
+var fuente=eval(\clock@font);
+%var interval=eval(#2);
+%var fuente="clock";
+fecha1 = rresett();
+fecha1 = reloj();
+run = app.setInterval("reloj();",\clock@interval000);
+%
+function rresett()
+{
+var fObj0 = new Date();
+global.horas0 = fObj0.getHours();
+global.minutos0 = fObj0.getMinutes();
+global.segundos0 = fObj0.getSeconds();
+}
+%
+function reloj()
+{
+%
+var fObj = new Date();
+var dia = formateo(fObj.getDate());
+var mes = formateo(fObj.getMonth()+1);
+var year = fObj.getFullYear();
+var horas = fObj.getHours(); horas1 = horas;
+var minutos = fObj.getMinutes() ; minutos1 = minutos;
+var segundos = fObj.getSeconds(); segundos1= segundos;
+%
+horas = formateo(horas);
+minutos = formateo(minutos);
+segundos = formateo(segundos);
+%
+resta = (eval(horas1-global.horas0)*60+eval(minutos1-global.minutos0))*60+eval(segundos1-global.segundos0);
+h = Math.floor(resta/3600); htexto=formateo(h);
+m = Math.floor((resta-3600*h)/60); mtexto=formateo(m);
+s = resta-3600*h-60*m; stexto=formateo(s);
+%
+if (iop == 1)
+{fecha1= dia+"/"+mes+"/"+year+ " "+horas + ":"+minutos+":"+segundos;
+casio1=horas;casio2=minutos;casio3=segundos;}
+else
+{fecha1=dia+"/"+mes+"/"+year+ " "+htexto+":"+mtexto+":"+stexto;
+casio1=htexto;casio2=mtexto;casio3=stexto;}
+%this.getField("resultado1").value=fecha1;
+%this.getField("resultado1").textFont=fuente;
+%this.getField("resultado1").fillColor=["T"];
+%this.getField("resultado1").strokeColor=["T"];
+%
+this.getField("hours").value=casio1;
+this.getField("hours").textFont=fuente;
+this.getField("hours").fillColor=["T"];
+this.getField("hours").strokeColor=["T"];
+%
+this.getField("minutes").value=casio2;
+this.getField("minutes").textFont=fuente;
+this.getField("minutes").fillColor=["T"];
+this.getField("minutes").strokeColor=["T"];
+%
+this.getField("seconds").value=casio3;
+this.getField("seconds").textFont=fuente;
+this.getField("seconds").fillColor=["T"];
+this.getField("seconds").strokeColor=["T"];
+casio4=htexto;
+this.getField("cronohours").value=casio4;
+this.getField("cronohours").textFont=fuente;
+this.getField("cronohours").fillColor=["T"];
+this.getField("cronohours").strokeColor=["T"];
+casio5=mtexto;
+this.getField("cronominutes").value=casio5;
+this.getField("cronominutes").textFont=fuente;
+this.getField("cronominutes").fillColor=["T"];
+this.getField("cronominutes").strokeColor=["T"];
+casio6=stexto;
+this.getField("crseconds").value=casio6;
+this.getField("crseconds").textFont=fuente;
+this.getField("crseconds").fillColor=["T"];
+this.getField("crseconds").strokeColor=["T"];
+casio7=dia;
+this.getField("day").value=casio7;
+this.getField("day").textFont=fuente;
+this.getField("day").fillColor=["T"];
+this.getField("day").strokeColor=["T"];
+casio8=mes;
+this.getField("month").value=casio8;
+this.getField("month").textFont=fuente;
+this.getField("month").fillColor=["T"];
+this.getField("month").strokeColor=["T"];
+casio9=year;
+this.getField("year").value=casio9;
+this.getField("year").textFont=fuente;
+this.getField("year").fillColor=["T"];
+this.getField("year").strokeColor=["T"];
+this.getField("separatordate").textFont=fuente;
+this.getField("separatordate").fillColor=["T"];
+this.getField("separatordate").strokeColor=["T"];
+this.getField("separatortime").textFont=fuente;
+this.getField("separatortime").fillColor=["T"];
+this.getField("separatortime").strokeColor=["T"];
+%this.getField("button1").textFont=fuente;
+this.getField("button1").fillColor=["T"];
+this.getField("button1").strokeColor=["T"];
+%this.getField("button2").textFont=fuente;
+this.getField("button2").fillColor=["T"];
+this.getField("button2").strokeColor=["T"];
+%
+}
+%
+function formateo(uin)
+{
+if (uin <= 9) uin = "0" + uin;
+return uin;
+}
+}
+
+%\initclock
+%
+\endinput
+
diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds
index c75be177960..3bd969533be 100755
--- a/Master/tlpkg/bin/ctan2tds
+++ b/Master/tlpkg/bin/ctan2tds
@@ -59,6 +59,7 @@ chdir $startdir || die "chdir($startdir) failed: $!"; # back to raw
'alphabib', "die 'skipping, shell script, and no doc source?'",
'ams', "die 'skipping, update manually to preserve ams fonts'",
'amsldoc-vn', "&MAKEflatten",
+ 'analogclock', "die 'skipping, requires system font installation",
'antomega', "&MAKEflatten",
'antt', "&MAKEcopy",
#'antp', "&MAKEflatten", # not sure about config.antp yet
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 2e9a8f6dfe4..8665125b2ad 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -209,7 +209,7 @@ my @WorkingTLP = qw(
supertabular susy svgcolor svn svn-multi svninfo
swebib syllogism syntax synproof syntrace synttree
t-angles t2 Tabbing tableaux tablists tablor tabulary tabvar talk
- tamethebeast tdsfrmath
+ tamethebeast tdclock tdsfrmath
ted templates-fenn templates-sommer tengwarscript
tensor termcal termlist teubner tex-ewd tex-gyre texcount
texilikecover texmate
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index 79c95dfb691..15d2a021334 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -503,6 +503,7 @@ depend tabulary
depend talk
depend taupin
depend tcldoc
+depend tdclock
depend technics
depend ted
depend termcal
diff --git a/Master/tlpkg/tlpsrc/tdclock.tlpsrc b/Master/tlpkg/tlpsrc/tdclock.tlpsrc
new file mode 100644
index 00000000000..b030331d3ec
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/tdclock.tlpsrc
@@ -0,0 +1,2 @@
+name tdclock
+category Package