%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%\iffalse
%
% (c) copyright 2003-2011 A Syropoulos & RWD Nickalls
% This program can be redistributed and/or modified under the terms
% of the LaTeX Project Public License Distributed from CTAN
% archives in directory macros/latex/base/lppl.txt; either
% version 1 of the License, or any later version.
%
% However, the above copyright notice does not apply in the case of
% ``Crete University Press'' as this publisher is not allowed to
% use or alter this file in any way.
%
% Please report errors or suggestions for improvement to
%    
%    Apostolos Syropoulos        and/or  Dick Nickalls
%    asyropoulos@yahoo.com               dick@nickalls.org
%
%\fi
% \CheckSum{21}
% \iffalse This is a Metacomment
%
%<decimal, >\ProvidesFile{decimal.sty}
%
%<decimal, >  [2011/06/03 v1.1 Package `decimal.sty']
%
%    \begin{macrocode}
%<*driver>
\documentclass{ltxdoc}
\usepackage{ifpdf}
\newcommand{\journal}[1]{\textit{#1}}
\newcommand{\book}[1]{\textit{#1}}
\newcommand{\vol}[1]{\underline{#1}}
\newcommand{\etal}{\textit{et al.}}
\newcommand{\syntax}[1]{\noindent\texttt{#1}}
\newcommand{\command}[1]{$\langle$\texttt{#1}$\rangle$}
\pagestyle{myheadings} 
\markright{A Syropoulos \& RWD Nickalls\hspace{2cm}\journal{The decimal package}}
\ifpdf
  \usepackage[verbose]{microtype} 
  \usepackage[a4,pdftex]{crop} 
   \pdfinfo{/Title (The `decimal' package: (version 1.1))
            /Subject (typesetting tex macro package)
            /Author (A Syropoulos and RWD Nickalls, 2011)
            /Keywords (typesetting, tex, latex, mathematics, macros, mathematics)
           }
   \usepackage[unicode]{hyperref}
   \hypersetup{debug=true,pdftoolbar=true,  pdfmenubar=true, plainpages=false,
        breaklinks=true, linktocpage=true, bookmarksopen=true, bookmarksopenlevel=2, 
        bookmarksnumbered=true, bookmarkstype=toc, pdfwindowui=true, 
        hyperindex, hyperfigures=true, hyperfootnotes,
        colorlinks, urlcolor=blue,  linkcolor=blue, 
        pdfstartview=FitH, pdfview=FitH, pdfcenterwindow=true,
        pdfnewwindow=true, pdfpagelayout=SinglePage,
        pdfpagelabels=true, pdftitle={The `decimal' package: (version 1.1)},
        pdfauthor={A Syropoulos and RWD Nickalls 2011},
        pdfsubject={typesetting tex macro package},   
        pdfkeywords={typesetting, tex},
      }
\else
\fi
\usepackage{decimal}
\newcommand{\hidot}{\ensuremath{\raise.95ex\hbox{.}}}
\newcommand{\dntop}{\ifpdf\pdfbookmark[1]{Title}{Title}\fi \vspace*{1mm}}
\GetFileInfo{decimal.drv}
\begin{document}
   \DocInput{decimal.dtx}
\end{document}
%</driver>
%    \end{macrocode}
% \fi
%\StopEventually{}
%\MakeShortVerb{\|}
%\title{\dntop The `decimal' package\\(\textit{version}~$1.1$)}
%\author{A.\ Syropoulos\,\footnote{Greek \TeX\ Friends, Xanthi, Greece. email:\,\textsf{apostolo@yahoo.com}}
% \ and R.\ W.\ D.\ Nickalls\,\footnote{(retired), c/o Department of Anaesthesia, Nottingham University Hospitals, City Hospital Campus, Nottingham, UK. \
%email:\,\textsf{dick@nickalls.org} \ \ 
%web:\,\texttt{www.nickalls.org} }}
%\date{June 1, 2011}
%\maketitle
%\begin{abstract}
% \noindent In traditional English typography the  decimal point is printed as a raised dot. 
% The \textit{decimal} package provides this functionality by making the full point, or period (\,.\,) 
% active in maths mode, and implementing the \verb!\cdot! character instead. In addition, the command 
% |\.| is redefined in such a way that that it produces a full point in math mode, but 
% retains its usual functionality in text mode.
%\end{abstract}
%
%\section{Introduction}
%
% The decimal point (decimal separator) is variously implemented as  a comma (European), a
% full point (North American), or as a raised full point (English).
% While the comma and full point have always been supported in electronic typesetting, 
% the English raised decimal point has been somewhat overlooked---until now. 
% For a nice history of the decimal fraction see the chapter on \book{The invention of decimal 
% fractions and of logarithms} in Scott\footnote{Scott JF (1960). \book{A history of mathematics} 
% (Taylor \& Francis, London), pp 266.}   (1960).
%
%\section{Typography}
%
% In Great Britain until about 1970 or so the decimal separator was typically implemented as a 
% raised dot (middle dot). For example, when currency decimalisation was introduced in the UK 
% in 1971, the recommended way of writing currency was with a raised dot, as in $\pounds\,21.34$. 
% However, since then there has been a gradual decline in the use of the raised point most probably 
% owing to the fact that this glyph was not generally available on electronic typewriters or computer 
% wordprocessors. While the raised dot does make occasional appearances in British newspapers, it is,
% unfortunately, seldom seen nowadays  even in British scientific journals.
%
% This  decline was highlighted relatively recently when the UK journal Nature  reprinted  some 
% 1953 articles as part of the $50^{th}$ anniversary of the discovery of the double helix. 
% For example, one of the reprinted articles (\textit{Nature} 2003; \underline{421}, 400--401) 
% states that Franklin and Gosling\footnote{RWD Nickalls says that he was  drawn to this particular 
% series of articles  since he spent a year as a student of Ray Gosling in the then Physics Department 
% at Guy's Hospital Medical School, London, in the 1960s.} mentioned the ``\ldots very strong 
% reflexion at $3.4$\,A \ldots''. Ironically, if this sentence were published in a journal in 
% Britain today the {\AA}ngstr\"{o}m  symbol would probably be  typeset correctly but
% the decimal point would most likely  appear  in the  American `full point'  style as  {3.4\,\AA}.
%
% The most pleasing position of the raised  decimal point is   level with
% the center of the `equals' sign, as shown by the expression $x=0.3456$,
% and this is what the \textit{decimal} package implements.
% However, in old texts the practice was to place
% the full point rather higher, as in $25{\hidot}345$.
% While this is a bit too high for visual comfort nowadays,
% the reason for the original high position lies in the name used by
% metal  type-setters  for the decimal point, namely
% a `turned' full point, as mentioned in the following extract from an $80$~year-old
% \textsl{Authors' \& Printers' Dictionary}.\footnote{Collins H (1921). Authors' \&
% Printers' Dictionary: a guide for authors, editors, printers, correctors of the press, 
% compositors, and typists. With a full list of abbreviations. An attempt to codify the best
%typographical practices of the present day. (pub: Humphrey Milford, London).}
%
%\begin{center}
%\begin{minipage}{0.7\textwidth}
%\begin{itemize}
%\item [\ ]\textbf{\hspace{-5mm}decimal fractions}, no decimal can be plural,
%or take verb in pl., however many figures it contains; (typ.) print in figures. The decimal
%point in all cases to be a full point turned.
%\end{itemize}
%\end{minipage}
%\end{center}
%
%But what is meant by a full point `turned'? The clue comes from the `turned commas'  entry 
% in the same dictionary, as follows.
%\begin{center}
%\begin{minipage}{0.7\textwidth}
%\begin{itemize}
%\item [\ ]\textbf{\hspace{-5mm}turned commas} (typ.),
%those used at the commencement of a quotation, as these~``, two
%apostrophes being  at the end.
%\end{itemize}
%\end{minipage}
%\end{center}
%
%\noindent If we  use a turned comma to  show the location  a  full
% point would occupy if `turned' in the same way,  we  can see
% that the position is somewhat high, as in the decimal fraction $2$`$6$. Swapping the turned
% comma for a similarly turned full point we
% obtain~$2{\hidot}6$, which shows the decimal point in essentially the position we observe in older texts.
% All is now clear---by  simply turning the metal block of the full point through $180\deg$ the typesetter
% had access to a practical decimal point, albeit slightly on the high side.
%
%\section{Usage}
%
% First load the \textsl{decimal} package ({\em after} the \texttt{mathpazo}  and \texttt{hyperref} 
% packages---see Bugs section) using the preamble command
% \begin{verbatim}
% \usepackage{decimal}
% \end{verbatim}
% The \textsl{decimal} package will now operate globally to
% implement the English decimal point wherever one types a fullpoint in math mode.
% For example the value $123.456$ is obtained by typing
% |$123.456$|.
% The correct positioning of the decimal is preserved even
% when the smaller mathmode fonts are used, as shown in the
% following two examples.
% \[
%     23.562^{1.23^{\,2.6}}\hspace{2cm}
%     j = \sqrt{  \underbrace{{ax^2 + bx +c }}_{-3.78} \ +\cos(3\pi/4 +\theta)}
% \]
%
% On those occasions when a true full point is
% required in math mode (e.g.~at the end of a series of equations)
% then this is implemented by typing |\.|
% For example
% \[
%    y = ax^2 + bx +c\.
% \]
% is obtained by typing |$y = ax^2 + bx +c\.$|
%
% \textbf{Note:} It is important to appreciate that there are mathmode
% commands  which include a full point as an integral
% part of the command, and in
% these cases one must, of course,  \textsl{not} use the |\.| command.
% A common situation where this arises is in the
% typesetting of unbalanced vertical braces, in which case
% a full point is used by one of the commands (|\right.|) to represent the absent brace.
% For example, the structure
% \[
% \left\{
% \begin{array}{l}
% \displaystyle   x = -b/6 \\
% \displaystyle   y = (4ac - b^2)/7
% \end{array}
% \right.
% \]
% is typeset by the following code
% \begin{verbatim}
% \[
% \left\{
%   \begin{array}{l}
%   \displaystyle   x =  -b/6 \\
%   \displaystyle   y = (4ac - b^2)/7
%   \end{array}
% \right.
% \]
% \end{verbatim}
% which uses the command |\right.| to balance the left brace
% command |\left\{| before the array. Since the full point
% is part of the command there is no need to use the |\.| command.
%
% If we now add some punctuation to the above structure, say, a
% comma terminating the first line and a full point to terminate
% the second line as follows,
% \[
%  \left\{
% \begin{array}{l}
% \displaystyle   x = -b/6, \\
% \displaystyle   y = (4ac - b^2)/3\.
% \end{array}
% \right.
% \]
% then we  add the full point using
% the command |\.|  as shown in the following code.\newpage
% \begin{verbatim}
% \[
% \left\{
%   \begin{array}{l}
%   \displaystyle   x =  -b/6, \\
%   \displaystyle   y = (4ac - b^2)/7\.
%   \end{array}
% \right.
% \]
%\end{verbatim}
%
% Outside mathmode the command |\.| performs its usual
% function of placing a dot above a character, for example
% the command |\.{a}| generates the  \.{a} character.
%
%\section{Installing the decimal package}
%
% The \textsc{decimal} package is included in the {\TeX}Live  distribution, and is likely 
% to be  already  installed  if you have a fairly complete recent {\TeX}Live installation.
% The \textsc{decimal} package consists of the following files
%\begin{verbatim}
%decimal.ins
%decimal.dtx
%decimal.pdf   (this file)
%decimal.sty
%\end{verbatim}
%
%\subsection*{Placing the files}
%\begin{itemize}
%
%\item \texttt{decimal.sty}
% {\TeX}Live typically places  \texttt{decimal.sty} in the following directory
% \newline |/usr/local/texlive/2010/texmf-dist/tex/latex/decimal/decimal.sty|
% Alternatively, one could place it in the user's \texttt{/texmf-local/} directory, for example, 
% something like \newline |/usr/local/texlive/texmf-local/tex/latex/local/decimal/decimal.sty|
% which has the merit of not being overwritten by  {\TeX}Live.
%
% \item \texttt{decimal.pdf}
%
% {\TeX}Live typically places  \texttt{decimal.pdf} in the \texttt{/doc/} directory, for example 
% \newline |/usr/local/texlive/2010/texmf-dist/doc/latex/decimal/|
% {\newline}Using this directory has the great advantage that  the \texttt{texdoc} utility 
% will then display the pdf when you type the command \command{texdoc  decimal}.
%
%\end{itemize}
%Once the files have been placed, then update the \TeX\ file database. On a Linux system this is 
%done by running the \command{texhash} command (as root).
%
%\section{Known bugs}
%
%\subsection*{Problems with the \texttt{mathpazo} and \texttt{hyperref} packages}
% We know of only two package-interaction problems as follows.
% The \texttt{mathspazo} package effectively neutralises a previously loaded  \texttt{decimal} package. 
% If the \texttt{decimal} package is loaded before the \texttt{hyperref} package, then 
% \LaTeX\ fails, throwing out  multiple maths-related  error messages  
%
% The work-around is simply to install the decimal package \textit{after} these two packages.
%
%\section{Version history}
% \begin{itemize}
%  \item May 2, 2005 --- version $1.1$
%  \item July 12, 2003 --- first release (version $1.0$)
% \end{itemize}
%
% \section{The Implementation}
%
% The code of the package is quite simple. Initially, we introduce a new
% command which has the functionality of the |\.| command. Then we redefine
% the |\.| command so that it produces a dot in math mode, while it 
% retains its original functionality in text mode.
%    \begin{macrocode}
%<*decimal>
\let\peri@d\.
\def\.{\ifmmode\mbox{.}\else\expandafter\peri@d\fi}
%    \end{macrocode}
% One thing we need to do is to define a new math command which will yield a 
% |\cdot| without any leading or trailing white space. 
%    \begin{macrocode}
\DeclareMathSymbol{\cd@t}{\mathord}{symbols}{"01}
%    \end{macrocode}
% Now, we are ready to change the mathcode of the period so that it produces
% the desired result in math mode. Note that this ``trick'' is documented
% in the \TeX{}book and in the book ``Digital Typography Using \LaTeX,''
% Springer-Verlag New York, ISBN 0-387-95217-9, 2003.   
%    \begin{macrocode}
\mathcode`\.="8000
{\catcode`\.=\active%
 \gdef.{\cd@t} }
%</decimal>
%    \end{macrocode}
%
% \Finale
