%% $Id: ean13isbn.tex 341 2010-12-03 22:33:52Z zw $
\input utf8-t1 % encTeX required
\documentclass[11pt]{article}
\usepackage{zwgetfdate}
\usepackage[footskip=30pt,nopdfinfo]{zwpagelayout}
\usepackage[T1]{fontenc}
\usepackage{lmodern,array}
\usepackage[protrusion=false,expansion=true,stretch=8,shrink=24,step=4]{microtype}
\usepackage[ISBN=978-80-85955-35-4,SC0]{ean13isbn}
\extrarowheight 2pt
\def\sup#1{\ensuremath{^{\mathrm{#1}}}}
{\lccode`\!`\\
\lowercase{\gdef\Bslash{!}}}
\DeclareRobustCommand\cmd[1]{\texttt{\Bslash#1}}
\mubytein 0 % important due to bug in url.sty
\usepackage[pdftitle=ISBN\ with\ EAN13\ barcodes, pdfauthor=Zdenek\ Wagner,
            pdfkeywords={ISBN,\ EAN},bookmarks,bookmarksopenlevel=2,bookmarksopen]{hyperref}
\mubytein 1 \mubyteout 3 \mubytelog 3
\begin{document}
\title{ISBN with EAN13 barcodes}
\author{Zdeněk Wagner\\\url{http://icebearsoft.euweb.cz}}
\date{Package date: \DateOfPackage{ean13isbn}}
\maketitle

\begin{abstract}\noindent
This package is used for printing EAN13 barcodes including the ISBN according to its specification
valid after January 1\sup{st} 2007. The format of the ISBN has changed and it is now equal to the
EAN number. It seems that the font for writing ISBN is unspecified.
\end{abstract}

\tableofcontents

\section{Requirements}
Tha package is just a \LaTeX\ interface with a small hack for \texttt{ean13.tex} developed by Petr
Olšák. This file is available from CTAN and \TeX\ Live. It is hopefully included in other main
\TeX\ distributions. The package also requires \textsc{kvoptions} and \textsc{keyval} which are
standard parts of all \LaTeX\ distributions.

\section{Usage}
The package is intended to be used as an auxilliary tool for book typesetting. It therefore accepts
all information as package options. However, it may sometimes be useful to produce several ISBN bar
codes within the same file. In such a case you can supply arguments to the macros directly.

The package is loaded by:

\medskip
\verb;\usepackage[;$\langle$\textit{options}$\rangle$\verb;]{ean13isbn};

\medskip
The options and commands are described in the following text.

\subsection{Option ISBN}
This option defines the ISBN. Its format is the string ISBN followed by an equal sign and the
required ISBN in the exact form in which it should be displayed.

\subsection{Size options}
The bar code can be displayed in several sizes. The preferred size is selected by specifying its
name. The list of normalized sizes is shown in Table~\ref{size.options}. The default size is SC2.

\begin{table}[hbt]
\caption{EAN13 size options}\label{size.options}
\bigskip
\noindent
\begin{tabular}{|rrl|}\hline
\bfseries Mag. & \bfseries Module & \bfseries Option \\ \hline
0.800 & 0.264\,mm & SC0 \\
0.818 & 0.270\,mm & SC0a \\
0.850 & 0.281\,mm & SC0b \\
0.900 & 0.297\,mm & SC1 \\
0.950 & 0.313\,mm & SC1a \\
1.000 & 0.330\,mm & SC2 \\
1.050 & 0.346\,mm & SC2a \\
1.100 & 0.363\,mm & SC3 \\
1.150 & 0.379\,mm & SC3a \\
\hline
\end{tabular}\hfill
\begin{tabular}{|rrl|}\hline
\bfseries Mag. & \bfseries Module & \bfseries Option \\ \hline
1.200 & 0.396\,mm & SC4 \\
1.250 & 0.412\,mm & SC4a \\
1.300 & 0.429\,mm & SC5 \\
1.350 & 0.445\,mm & SC5a \\
1.400 & 0.462\,mm & SC5b \\
1.450 & 0.478\,mm & SC5c \\
1.500 & 0.495\,mm & SC6 \\
1.550 & 0.511\,mm & SC6a \\
1.600 & 0.528\,mm & SC7 \\
\hline
\end{tabular}\hfill
\begin{tabular}{|rrl|}\hline
\bfseries Mag. & \bfseries Module & \bfseries Option \\ \hline
1.650 & 0.544\,mm & SC7a \\
1.700 & 0.561\,mm & SC7b \\
1.750 & 0.577\,mm & SC7c \\
1.800 & 0.594\,mm & SC8 \\
1.850 & 0.610\,mm & SC8a \\
1.900 & 0.627\,mm & SC8b \\
1.950 & 0.643\,mm & SC8c \\
2.000 & 0.660\,mm & SC9 \\
2.120 & 0.700\,mm & SC10 \\
\hline
\end{tabular}
\end{table}

\subsection{Option help}
This option prints the text version of Table~\ref{size.options} in the log file.

\subsection{Command \cmd{ISBN}}
This command prints the text ISBN followed by a space and the ISBN value as specified in the option
list. The ISBN is printed in the current font. It makes no sense to use this command if ISBN was
not specified as the package option. In such a case the command will display an error.

\subsection{Command \cmd{EANisbn}}
This command produces the bar code including ISBN using information entered as the package options.
The command, however, accepts an optional argument within square brackets. These argument have the
same format as the package options. The command is then executed inside a group. The optional
arguments override those given as the package options and vanish after the command is executed.

\subsection{Command \cmd{EAN}}
This is the original plain \TeX\ macro from \texttt{ean13.tex}. Use it in case you wish to print
the bar code without an ISBN.

\subsection{Configuration file}
It is sometimes necessary to prepare a book and its cover. They are defined in separate files yet
it is not practical to write the same ISBN at two places. The package therefore reads file
\texttt{ean13isbn.cfg} from the working directory (it does not look into the standard \LaTeX\
search path). The file should set keys in the \texttt{zwean} group. Its contents may be:

\medskip
\begin{verbatim}
\ProvidesFile{ean13isbn.cfg}
\setkeys{zwean}{SC0,ISBN=978-80-86619-23-1}
\end{verbatim}

The files for both the book and its cover will then just include the package without any options.

\section{Examples}
In order to typeset this manual the package was loaded by the following command:

\medskip
\verb;\usepackage[ISBN=978-80-85955-35-4,SC0]{ean13isbn};

\medskip
We can thus print the ISBN. Issuing just the command \cmd{ISBN} yields the text:

\medskip
\centerline{\ISBN}

\medskip
The bar
code will be produced in the smallest size if we use \cmd{EANisbn} without an optional argument:

\medskip
\centerline{\EANisbn}

\medskip
We may produce a bar code for a different ISBN at a different size if the information is given in
the optional argument. Thus \verb;\EANisbn[SC5b,ISBN=978-80-7340-097-2]; will produce:

\medskip
\centerline{\EANisbn[SC5b,ISBN=978-80-7340-097-2]}

\medskip
Now we make a slightly larger barcode for the ISBN given as the package option by using
\verb;\EANisbn[SC3];:

\medskip
\centerline{\EANisbn[SC3]}

\medskip
We can also print a bar code for another ISBN at the size given as the package option using
\verb;\EANisbn[ISBN=978-80-7340-097-2];:

\medskip
\centerline{\EANisbn[ISBN=978-80-7340-097-2]}

\medskip
Finally we print just the EAN bar code. Its size is always defined by the package option. Notice
the mandatory spaces in the command syntax:

\medskip
\verb*;\EAN 978-80-7340-097-2 ;

The result is:

\medskip
\centerline{\EAN 978-80-7340-097-2 }

\section{Notice}
The plain \TeX\ file \texttt{ean13.tex} uses the following ``unprotected'' macros: \cmd{X},
\cmd{ocrb}, \cmd{ocrbsmall}, \cmd{barheight}, \cmd{bcorr}, \cmd{numlines}, \cmd{numdigit},
\cmd{A}, \cmd{B}, \cmd{EANbox} and others. Do not redefine them.

\section{History}
The version of 24 January 2021 reflects recent changes in PSNFSS.

\section{License}
The package can be used and distributed according to the LaTeX Project Public License version~1.3 or later the
text of which can be found at the \texttt{License.txt} file in the \texttt{doc} directory or at
\url{http://www.latex-project.org/lppl.txt}

\section{References}
\begin{enumerate}
\item Petr Olšák: The EAN barcodes by \TeX. TUGboat 15 (December 1994), No. 4, pp.~459--464.
\url{http://www.tug.org/TUGboat/Articles/tb15-4/tb45olsa.pdf}

\item Petr Olšák: Čárové kódy EAN v \TeX{}u. Zpravodaj Československého sdružení uživatelů \TeX{}u,
6(2), 86--96 (1996). \url{http://bulletin.cstug.cz/bul962.shtml}

\item Adriana Benadiková, Stefan Mada and Stanislav
Weinlich: \textit{Čárové kódy, automatická iden\-ti\-fi\-kace (Barcodes, the Automatic Identification)}.
Grada 1994, 272 pp., ISBN \hbox{80-85623-66-8}.
\end{enumerate}

\end{document}
