diff options
author | Karl Berry <karl@freefriends.org> | 2006-10-18 20:45:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-10-18 20:45:25 +0000 |
commit | ee55a90f4497f62a8b7cf4375ebc8b677d33a882 (patch) | |
tree | 692d8a148d4f37ceccac6a6af31d91aa33ebdf22 /Master/texmf-dist/doc/latex | |
parent | 13a2c5a918f470bb66ade4498a7bde360c331bf0 (diff) |
pst-barcode needs MAKEpst
git-svn-id: svn://tug.org/texlive/trunk@2347 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex')
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-barcode/Changes | 58 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-barcode/README | 10 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-barcode/barcode.pdf | bin | 228289 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-barcode/barcode.tex | 1037 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-barcode/pst-barcode.tex | 61 |
5 files changed, 0 insertions, 1166 deletions
diff --git a/Master/texmf-dist/doc/latex/pst-barcode/Changes b/Master/texmf-dist/doc/latex/pst-barcode/Changes deleted file mode 100644 index 17ab2457dbf..00000000000 --- a/Master/texmf-dist/doc/latex/pst-barcode/Changes +++ /dev/null @@ -1,58 +0,0 @@ ------ pst-barcode.tex -0.04 2006-07-23 - adding support for the ISBN-13 code - - printing the code from the current point and - no more from the origin -0.03 2005-07-26 - Changes to the documentation and the syntax - of psbarcode (hv) -0.02 2005-07-26 - first version (hv) - - ------ pst-barcode.sty -0.01 2005-07-26 first version (hv) - - ------ pst-barcode.pro -2006-03-04 - An encoder for the Reduced Space Symbology RSS Expanded was added. - - The incorrect definition of the USPS FIM-B symbol was fixed. - - An encoder for the Reduced Space Symbology RSS Limited was added. - The efficiency of RSS-14 was improved. - - An encoder for the new OneCode symbology used by the US - Postal Service was added. - - The FIM symbols now render according to their specification. - - The Postnet, Royal Mail, AusPost and KIX encoders were amended - so that the metrics of their default symbols confirms - strongly to their respective specifications. - - The encoders now pass an array containing the widths of the - bar space succession to the renderer allowing for sub-point - horizontal precision. - - The default border positions for EAN and UPC symbols were - amended to properly enclose the human readable text. - - The colour support code was fixed to prevent overwriting of - the current colour when values are left unspecified. - - The logic to guard whitespace in EAN symbols was migrated - from the encoders to the renderer. - - The whitespace guard symbols are now drawn directly making them - independant of any font. - - The inter-guard bar height of EANs and UPCs was amended. - - The renderer was amended to support the passing of encoder - specific arguments. - - The options barcolor, textcolor, bordercolor, showbackground - and backgroundcolor were added to the renderer. - - A flaw in the derivation of the top border height was fixed. - - add support for the new ISBN-13 - - printing the code from the current point - - The performance of the renderer was improved by avoiding - unnecessary calls of setfont - - The auspost encoder was extended to support the customer - information field. -2005-10-24 - A new encoder for the bar codes used by the - Australian Postal Service was added. -2005-10-17 - adding a checksum for code 2of5 encoder -2005-10-14 - some more changes to the possible charcters -2005-09-26 - A new encoder was added to support the generation - of miscellaneous symbols. - - Support for generation of FIM symbols used on - US Postal service reply mail was added. -2005-09-15 added Kix -- Dutch mail -2005-09-17 choose the right syntax for saving the length -2005-09-08 some more tweaks to the code diff --git a/Master/texmf-dist/doc/latex/pst-barcode/README b/Master/texmf-dist/doc/latex/pst-barcode/README deleted file mode 100644 index 8e3d83f73ad..00000000000 --- a/Master/texmf-dist/doc/latex/pst-barcode/README +++ /dev/null @@ -1,10 +0,0 @@ -This version of pst-barcode uses the xkeyval package, the extended -version of keyval. - -Save the files pst-barcode.sty|.tex|.pro in a directory, which is part of your -local TeX tree. pst-barcode.pro should be saved in ../texmf/dvips/pstricks/ -Then do not forget to run texhash to update this tree. -pst-barcode needs pstricks, which should be part of your -local TeX installation, otherwise get it from a CTAN server, f.ex. -http://www.dante.de/CTAN/graphics/pstricks/ - diff --git a/Master/texmf-dist/doc/latex/pst-barcode/barcode.pdf b/Master/texmf-dist/doc/latex/pst-barcode/barcode.pdf Binary files differdeleted file mode 100644 index 8f85434f353..00000000000 --- a/Master/texmf-dist/doc/latex/pst-barcode/barcode.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/pst-barcode/barcode.tex b/Master/texmf-dist/doc/latex/pst-barcode/barcode.tex deleted file mode 100644 index fe8f3541c39..00000000000 --- a/Master/texmf-dist/doc/latex/pst-barcode/barcode.tex +++ /dev/null @@ -1,1037 +0,0 @@ -\documentclass{article} -\usepackage{pstricks,tabularx,paralist} -\usepackage{showexpl} -\lstset{wide,preset=\raggedright} -\usepackage{pst-barcode} -\let\PSTfileversion\fileversion -\usepackage[ps2pdf,colorlinks,linktocpage]{hyperref} -\usepackage{breakurl} -\def\CMD#1{\texttt{\textbackslash #1}} - -\title{Package \texttt{pst-barcode}\\ -\footnotesize v. \PSTfileversion} -\author{Terry Burton\thanks{\protect\url{tez@terryburton.co.uk}} - \and Herbert Vo\ss\thanks{\protect\url{hvoss@tug.org}}} -\date{\today} -\begin{document} -\maketitle - - -\begin{center} -\begin{tabular}{@{}>{\ttfamily}lll@{}} -\textrm{\emph{file name}} & \emph{meaning} & \emph{version}\\\hline -pst-barcode.sty & \LaTeX\ style file -- wrapper & 2006-07-23\\ -pst-barcode.tex & \TeX\ file -- PS interface & 2006-07-23\\ -pst-barcode.pro & PostScript file & 2006-07-23\\ -barcode.tex & documentation source & 2006-07-23\\ -barcode.pdf & documentation PDF & 2006-07-23\\ -\end{tabular} -\end{center} - - - -\clearpage -\tableofcontents - - -\clearpage -\section{Introduction} -To install the package put the three files in a place, where \TeX{} will search -for the files: - -\bigskip\noindent -\begin{tabular}{@{}ll@{}} -\emph{name} & \emph{target dir} \\\hline -\verb+pst-barcode.tex+ & \verb+$LOCALTEXMF/tex/generic/pstricks/+\\ -\verb+pst-barcode.sty+ & \verb+$LOCALTEXMF/tex/latex/pstricks/+\\ -\verb+pst-barcode.pro+ & \verb+$LOCALTEXMF/dvips/pstricks/+ \\ -\verb+barcode.tex+ & \verb+$LOCALTEXMF/doc/pstricks/+\\ -\verb+barcode.pdf+ & \verb+$LOCALTEXMF/doc/pstricks/+ %$ -\end{tabular} - -\bigskip -There is only one macro \verb+\psbarcode+ with the usual PSTricks syntax -\begin{verbatim} -\psbarcode[<TeX options>]{<PS options>}{<bar type>} -\end{verbatim} - -Important is the fact, that the barcode is printed in a box of zero dimension. -If you want to save some space in your text, use the \verb+pspicture+ environment -or the \verb+\makebox+ macro. - - - -\section{The options} -\subsection{The \TeX\ options} - -\begin{tabular}{@{}lll@{}} -\emph{name} & \emph{default} & \emph{remarks}\\\hline -\verb+transx+ & 0 & horizontal shift\\ -\verb+transy+ & 0 & vertical shift\\ -\verb+scalex+ & 1 & horizontal scaling\\ -\verb+scaley+ & 1 & vertical scaling\\ -\verb+rotate+ & 0 & rotating angle in degrees -\end{tabular} - -\subsection{The PostScript options} - -\begin{tabularx}{\textwidth}{@{}llX@{}} -\emph{name} & \emph{default} & \emph{remarks}\\\hline -\verb+height+ & 1 & dimension is inch\\ -\verb+textsize+ & 10 & dimension is pt\\ -\verb+textpos+ & -2 & dimension is pt; it is the shift for additional code text\\ -\verb+inkspread+ & 0.15 & dimension is pt\\ -\verb+showborder+ & - & - \\ -\verb+borderwidth+ & 0.5 & dimension in pt \\ -\verb+borderleft+ & 10 & dimension in pt\\ -\verb+borderright+ & 10 & dimension in pt\\ -\verb+bordertop+ & 1 & dimension in pt\\ -\verb+borderbottom+ & 1 & dimension in pt\\ -\verb+borderwidth+ & 0.5 & dimension in pt\\ -\verb+width+ & - & dimension in inch\\ -% -\verb+font+ & /Helvetica & must be a PostScript font\\ -\verb+includetext+ & - & enable human readable text \\ -\verb+includecheck+ & - & enable check digit \\ -\verb+includecheckintext+ & - & check digit visible in text -\end{tabularx} - -\subsection{Examples for the TeX options} - -\begin{LTXexample}[pos=t,preset=\centering] -\begin{pspicture}(3.5,1.2in) -\psbarcode{12345678}{includetext}{ean8} -\end{pspicture} -\begin{pspicture}(-2,-1.5)(0.5,0.2in) -\psbarcode[rotate=180,linecolor=red]{12345678}{includetext guardwhitespace height=0.6}{ean8} -\end{pspicture} -\begin{pspicture}(3.5,1.2in) -\psbarcode[scalex=1.5,scaley=0.5,transy=20]{12345678}{includetext inkspread=0.5}{ean8} -\end{pspicture} -\end{LTXexample} - -\newpage -\subsection{Examples for the PostScript options} - -\begin{LTXexample}[pos=t,preset=\centering] -\begin{pspicture}(3.5,1.2in) -\psbarcode{12345678}{includetext guardwhitespace height=0.6}{ean8} -\end{pspicture} -\begin{pspicture}(3.5,1.2in) -\psbarcode{12345678}{textsize=15 includetext guardwhitespace height=0.6}{ean8} -\end{pspicture} -\begin{pspicture}(3.5,1.2in) -\psbarcode{12345678}{includetext inkspread=0.5}{ean8} -\end{pspicture} -\begin{pspicture}(3.5,1.2in) -\psbarcode{12345678}{includetext textpos=0}{ean8} -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[pos=t,preset=\centering] -\begin{pspicture}(3.5,1.2in) -\psbarcode{12345678}{includetext guardwhitespace}{ean8} -\end{pspicture} -\begin{pspicture}(3.5,1.2in) -\psbarcode{12345678}{textsize=15 includetext guardwhitespace width=2}{ean8} -\end{pspicture} -\end{LTXexample} - - -\section{Usage} -By default the barcode has a width and a height of zero. Using the \CMD{parbox} -macro or the \verb+pspicture+ environment can reserve the needed space for -the barcode. The \CMD{fbox} in the following examples is used -only for demonstration. - - -\begin{LTXexample}[width=.5\linewidth] -foo -\fbox{% - \parbox[b][1in]{1.5in}{\psbarcode{241078}{includetext width=1.5 height=1}{code39}}} -bar -\end{LTXexample} - -\bigskip -\begin{LTXexample}[width=.5\linewidth] -foo -\fbox{% -\begin{pspicture}(0,-8pt)(1.5in,1in) - \psbarcode{241078}{includetext width=1.5 height=1}{code39} -\end{pspicture}} -bar -\end{LTXexample} - - -\section{Possible barcodes} - -The following section shows the symbologies that are supported by -the encoders, including the available features for each. This list -may not be up-to-date. If it does not contain any of the formats or -features that you require then check the project source code or -try the support mailing list. - -\subsection{EAN-13} - -\begin{description} -\item[Characters] \verb+0123456789+ -\item[Data] 12 or 13 digits -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\\hline - \texttt{includetext} & Enable human readable text\\ - \end{tabular} -\item[Notes] If just 12 digits are entered then the check digit is calculated automatically -\end{description} - -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(3,1.2in) -\psbarcode[scalex=0.8,scaley=0.8]{9781860742712}{includetext guardwhitespace}{ean13} -\end{pspicture} -\end{LTXexample} - -\subsection{EAN-8} - -\begin{description} -\item[Characters] \verb+0123456789+ -\item[Data] 8 digits -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ - \hline - \texttt{includetext} & Enable human readable text\\ - \end{tabular} -\end{description} - -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(-2,-1.2)(0,0.2in) -\psbarcode[rotate=180,linecolor=red]{12345678}{includetext guardwhitespace height=0.6}{ean8} -\end{pspicture} -\end{LTXexample} - - -\subsection{UPC-A} - -\begin{description} -\item[Characters] \verb+0123456789+ -\item[Data] 11 or 12 digits -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ - \hline - \texttt{includetext} & Enable human readable text\\ - \end{tabular} -\item[Notes] If just 11 digits are entered then the check digit is - calculated automatically -\end{description} - -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(3,1.2in) -\psbarcode[transx=15pt,transy=10pt]{78858101497}{includetext}{upca} -\qdisk(0,0){3pt}\rput[lb](5pt,-10pt){Origin} -\end{pspicture} -\end{LTXexample} - -\subsection{UPC-E} - -\begin{description} -\item[Characters] \verb+0123456789+ -\item[Data] 7 or 8 digits -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ - \hline - \texttt{includetext} & Enable human readable text\\ - \end{tabular} -\item[Notes] If just 7 digits are entered then the check digit is calculated automatically -\end{description} - -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(1.5,1.2in) -\psbarcode{0123456}{includetext}{upce} -\end{pspicture} -\end{LTXexample} - -\subsection{EAN-5} - -\begin{description} -\item[Characters] \verb+0123456789+ -\item[Data] 5 digits -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includetext} & Enable human readable text\\ - \end{tabular} -\end{description} - -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(2,1in) -\psbarcode{90200}{includetext guardwhitespace}{ean5} -\end{pspicture} -\end{LTXexample} - -\subsection{EAN-2} - -\begin{description} -\item[Characters] \verb+0123456789+ -\item[Data] 2 digits -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\\hline - \texttt{includetext} & Enable human readable text\\ - \end{tabular} -\end{description} - -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(1,1in) -\psbarcode{38}{includetext guardwhitespace}{ean2} -\end{pspicture} -\end{LTXexample} - -\newpage -\subsection{ISBN} -An ISBN symbol is really an EAN-13 with a particular prefix, 978 for the older ISBN-10 format, and others for the new ISBN-13 format. - -\begin{description} -\item[Characters] \verb+-0123456789+ -\item[Data] 9 or 10 digits for ISBN-10 seperated appropriately with dashes -\item[Data] 12 or 13 digits for ISBN-13 seperated appropriately with dashes -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includetext} & Enable human readable text\\ - \end{tabular} -\item[Notes] If just 9 (ISBN-10) or 12 (ISBN-13) digits are entered then the human readable, - ISBN check digit is calculated automatically -\end{description} - -\smallskip -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(3,1in) -\psbarcode{3-86541-114}{includetext guardwhitespace}{isbn} -\end{pspicture} -\end{LTXexample} - -\bigskip\enlargethispage{2ex} -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(3,1in) -\psbarcode{978-3-86541-114}{includetext guardwhitespace}{isbn} -\end{pspicture} -\end{LTXexample} - - -\subsection{Code-39} - -\begin{description} -\item[Characters] \verb+0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*+ %$ -\item[Data] Variable number of characters, digits and any of the symbols \texttt{-.\@ *\$/+\%}. -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includecheck} & Enable check digit\\ - \texttt{includetext} & Enable human readable text\\ - \texttt{includecheckintext} & Make check digit visible in text\\ - \end{tabular} -\end{description} - - -\begin{LTXexample}[width=.5\linewidth] -\begin{pspicture}(5,1in) -\psbarcode{CODE-39}{includecheck includetext}{code39} -\end{pspicture} -\end{LTXexample} - -\subsection{Code-128 and UCC/EAN-128} - -\begin{description} -\item[Characters] \verb|!"#$%&'\(\)*+,-./0...9:;<=>?@A...Z[\\]^_`a...z|\verb+{|}~+ %$ -\item[Data] Variable number of ASCII characters and special -funtion symbols, starting with the approriate start character -for the initial character set. UCC/EAN-128s must have a manditory -\texttt{FNC 1} symbol immediately following the start character. -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includetext} & Enable human readable text\\ - \texttt{includecheckintext} & Make check digit visible in text\\ - \end{tabular} -\item[Notes] Any non-printable character can be entered via its escaped - ordinal value, for example \texttt{\^{}070} for \texttt{ACK} - and \texttt{\^{}102} for \texttt{FNC 1}. Since a caret symbol - serves as an escape character it must be escaped as \texttt{\^{}062} - if used in the data. The check character is always added automatically. -\end{description} - -\begin{LTXexample}[width=.5\linewidth] -\begin{pspicture}(5,1in) -\psbarcode{^104^102Count^0991234^101!}{includetext}{code128} -\end{pspicture} -\end{LTXexample} - -\subsection{Rationalized Codabar} - -\begin{description} -\item[Characters] \verb!0123456789-$:/.+ABCD! %$ -\item[Data] Variable number of digits and any of the symbols \texttt{-\$:/.+ABCD}. -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includecheck} & Enable check digit\\ - \texttt{includetext} & Enable human readable text\\ - \texttt{includecheckintext} & Make check digit visible in text\\ - \end{tabular} -\end{description} - -\begin{LTXexample}[width=.5\linewidth] -\begin{pspicture}(4,1in) -\psbarcode{0123456789}{includetext}{rationalizedCodabar} -\end{pspicture} -\end{LTXexample} - - -\newpage -\subsection{Interleaved 2 of 5 and ITF-14} - -\begin{description} -\item[Characters] \verb!0123456789! -\item[Data] Variable number of digits. An ITF-14 is 14 characters and - does not have a check digit. -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includecheck} & Enable check digit\\ - \texttt{includetext} & Enable human readable text\\ - \texttt{includecheckintext} & Make check digit visible in text\\ - \end{tabular} -\item[Notes] The data may be automatically prefixed with 0 to make the - data, including optional check digit, of even length. -\end{description} - -\begin{LTXexample}[width=.5\linewidth] -\begin{pspicture}(5,0.7in) -\psbarcode{05012345678900}{includecheck height=0.7}{interleaved2of5} -\end{pspicture} -\end{LTXexample} - -\subsection{Code 2 of 5} - -\begin{description} -\item[Characters] \verb!0123456789! -\item[Data] Variable number of digits -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includetext} & Enable human readable text\\ - \end{tabular} -\end{description} - -\begin{LTXexample}[width=.5\linewidth] -\begin{pspicture}(5,1.2in) -\psbarcode{0123456789}{includetext textpos=75 textfont=Helvetica textsize=16}{code2of5} -\end{pspicture} -\end{LTXexample} - - -\subsection{Postnet} - -\begin{description} -\item[Characters] \verb!0123456789! -\item[Data] Variable number digits -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includetext} & Enable human readable text\\ - \texttt{includecheckintext} & Make the check digit visible in the text - \end{tabular} -\item[Notes] Check digit is always added automatically -\end{description} - -\begin{LTXexample}[width=.6\linewidth] -\begin{pspicture}(7,0.3in) -\psbarcode{01234567}{includetext textpos=-10 textfont=Arial textsize=10}{postnet} -\end{pspicture} -\end{LTXexample} - - -\subsection{Royal Mail} - -\begin{description} -\item[Characters] \verb!ZUVWXY501234B6789AHCDEFGNIJKLMTOPQRS! -\item[Data] Variable number digits and capital letters -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includetext} & Enable human readable text\\ - \texttt{includecheckintext} & Make the check digit visible in the text - \end{tabular} -\item[Notes] Check digit is always added automatically -\end{description} - -\begin{LTXexample}[width=.5\linewidth] -\begin{pspicture}(5,0.5in) -\psbarcode{LE28HS9Z}{includetext}{royalmail} -\end{pspicture} -\end{LTXexample} - -\subsection{Kix (Customer index) -- Dutch Mail} - -\begin{description} -\item[Characters] \verb!ZUVWXY501234B6789AHCDEFGNIJKLMTOPQRS! -\item[Data] Variable number digits and capital letters -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includetext} & Enable human readable text\\ -% \texttt{includecheckintext} & Make the check digit visible in the text - \end{tabular} -\item[Notes] Check digit is always added automatically -\end{description} - -\begin{LTXexample}[width=.5\linewidth] -\begin{pspicture}(5,0.3in) -\psbarcode{1203AA12}{includetext}{kix} -\end{pspicture} -\end{LTXexample} - - -\subsection{Australian postal service} - -\begin{description} -\item[Characters] \verb!ZUVWXY501234B6789AHCDEFGNIJKLMTOPQRSabc...xyz! -\item[Data] Variable number digits and letters -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includetext} & Enable human readable text\\ - \texttt{includecheckintext} & Make the check digit visible in the text - \end{tabular} -%\item[Notes] Check digit is always added automatically -\end{description} - -\begin{LTXexample}[width=.5\linewidth] -\begin{pspicture}(5,0.3in) -\psbarcode{1139549554}{includetext}{auspost} -\end{pspicture} -\end{LTXexample} - -\subsection{onecode} -United States Postal Service, replaces POSTNET and PLANET symbols. -Each barcode can be 20, 25, 29, or 31 digits long, depending on the type of ZIP code present. Each digit has four possible states, so one digit represents numbers 0-3. -\begin{description} -\item[Characters] \verb!0123456789! -\item[Data] Variable number digits -\iffalse -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\ \hline - \texttt{includetext} & Enable human readable text\\ - \end{tabular} -\fi -\end{description} - -\begin{LTXexample}[pos=t,preset=\centering] -\begin{pspicture}(5,0.3in) -\psbarcode{0123456709498765432101234567891}{includetext}{onecode} -\end{pspicture} -\end{LTXexample} - -\subsection{Symbol} -The purpose of the symbol encoder is to store the definitions of miscellaneous barcode -symbols such as the FIM symbols used by the US Postal Service on their reply mail. - - -\begin{LTXexample}[width=.4\linewidth] -\begin{pspicture}(1cm,1.5cm) -\psbarcode{fima}{}{symbol} -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=.4\linewidth] -\begin{pspicture}(1cm,1.5cm) -\psbarcode{fimb}{}{symbol} -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=.4\linewidth] -\begin{pspicture}(1cm,1.5cm) -\psbarcode{fimc}{}{symbol} -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=.4\linewidth] -\begin{pspicture}(1cm,1.5cm) -\psbarcode{fimd}{}{symbol} -\end{pspicture} -\end{LTXexample} - - -\subsection{MSI} - -\begin{description} -\item[Characters] \verb!0123456789! -\item[Data] Variable number digits -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\\hline - \texttt{includecheck} & Enable check digit\\ - \texttt{includetext} & Enable human readable text\\ - \texttt{includecheckintext} & Make check digit visible in the text - \end{tabular} -\end{description} - -\begin{LTXexample}[width=.5\linewidth] -\begin{pspicture}(6,1in) -\psbarcode{0123456789}{includecheck includetext}{msi} -\end{pspicture} -\end{LTXexample} - -\subsection{Plessey} - -\begin{description} -\item[Characters] \verb!01234B6789ABCDEF! -\item[Data] Variable number of hexadecimal characters -\item[Options]~\\ - \begin{tabular}{l|l} - Option & Feature\\\hline - \texttt{includetext} & Enable human readable text\\ - \texttt{includecheckintext} & Make the check digits visible in the text - \end{tabular} -\item[Notes] Check digits are always added automatically. -\end{description} - -\begin{LTXexample}[pos=t,preset=\centering] -\begin{pspicture}(0,-2mm)(12,1in) -\psbarcode{0123456789ABCDEF}{includetext}{plessey} -\end{pspicture} -\end{LTXexample} - -\subsection{Reduced Space Symbology (RSS)} -This is a family that includes RSS-14\textregistered, RSS Limited\textregistered, -and RSS Expanded\textregistered{} (\url{http://www.gs1.org/productssolutions/barcodes/technical/rss.html}). RSS-14 and RSS Limited encode Global Trade Item -Numbers (GTINs). RSS Expanded will encode any of the GS1 System identification -numbers as well as all other Application Identifiers. -RSS is used in the healthcare industry. - -\begin{description} -\item[Characters] \verb!0123456789! -\item[Data] Variable number digits -\end{description} - -\subsubsection{rss14} - -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(12,.3in) -\psbarcode{24012345678905}{height=0.3}{rss14} -\end{pspicture} -\end{LTXexample} - -\subsubsection{rsslimited} -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(12,.3in) -\psbarcode{00978186074271}{height=0.3}{rsslimited} -\end{pspicture} -\end{LTXexample} - -\subsubsection{rssexpanded} -\begin{LTXexample}[width=.3\linewidth] -\begin{pspicture}(12,.3in) -\psbarcode{000000010011001010100001000000010000}{height=0.3}{rssexpanded} -\end{pspicture} -\end{LTXexample} - - - -\section{Code Commentary} -This commentary assumes familiarity with the PostScript -language\footnote{The PostScript Language Tutorial and Cookbook -(a.k.a. the Blue Book), which is freely available online, serves -as both a useful tutorial and reference manual to the language.}. - -The code is split cleanly into two types of procedure: - -\begin{description} -\item[The encoders]{Each of these represents a barcode -symbology\footnote{By symbology we mean an accepted standard for -representation of data as a barcode}, -e.g. EAN-13 or Code-128. It takes a string containing the barcode -data and a string containing a list of options that modify the -output of the encoder. It generates -a structured representation of the barcode and its text for the -symbology, including the calculation of check digits where necessary.} -\item[The renderer]{This takes the output of an encoder and -generates a visual representation of the barcode.} -\end{description} - -This means that all barcodes can be generated simply in a similar -manner: - -\begin{lstlisting} -(78858101497) (includetext height=0.6) upca barcode -(0123456789) (includecheck) interleaved2of5 barcode -\end{lstlisting} - - -\subsection{The Barcode Data Structure} -\label{datastructure} -The following table describes the structured representation of a -barcode that is passed by an encoder to the renderer as a -dictionary when the PostScript is executed. - -\begin{center} - -\begin{tabular}{l|c|p{6.5cm}} -Element & Key & Value \\ -\hline -Space bar succession & \texttt{sbs} & -String containing the integer widths, in points, of each bar and -space, starting with the leftmost bar.\\ - -Bar height succession & \texttt{bhs} & -Array containing the height of each bar in inches, starting with -the leftmost bar.\\ - -Bar base succession & \texttt{bbs} & -Array containing the offset of the base of each bar in inches, -starting with the leftmost bar.\\ - -Human readable text & \texttt{txt} & -Array of arrays that contain the character, position, height, -font and scale factor (font size), in points, for each of the visible -text characters. -\end{tabular} - -\end{center} - - -\subsection{An Encoder} - -The procedure labelled code2of5 is a simple example of an encoder, -which we will now consider. Its purpose is to accept as input a string -containing the barcode contents and a string containing a list of options, -and to process these in a way -that is specific to this encoder, and finally to output an -instance of the dictionary-based data structure described in section -\ref{datastructure} that represents the barcode contents in the -Code 2 of 5 symbology. - -As with all of the encoders, the input string is assumed to be valid for -the corresponding symbology, otherwise the behaviour is undefined. - -The variables that we use in this procedure are confined to local -scope by declaring the procedure as follows: - -\begin{lstlisting} -/code2of5 { - - 0 begin - -... - - end - -} bind def -/code2of5 load 0 1 dict put -\end{lstlisting} - -We start by immediately reading the contents strings that are passed as -arguments to this procedure by the user. - -\begin{lstlisting} - /options exch def - /barcode exch def -\end{lstlisting} - -We initialise a few default variables. Those variables corresponding to -options that can be enabled with the options argument are initially -set to false. - -\begin{lstlisting} - /includetext false def - /textfont /Courier def - /textsize 10 def - /textpos -7 def - /height 1 def -\end{lstlisting} - -The options string is tokenised with each successive token defining either a -name value pair which we instantiate or a lone variable that we define as true, -allowing us to override the given default variables given above. - -\begin{lstlisting} -options { - token false eq {exit} if dup length string cvs (=) search - true eq {cvlit exch pop exch def} {cvlit true def} ifelse -} loop -\end{lstlisting} - -Since any user given options create variables that are strings we need to convert -them back to their intended types. - -\begin{lstlisting} -/textfont textfont cvlit def -/textsize textsize cvr def -/textpos textpos cvr def -/height height cvr def -\end{lstlisting} - -We then create an array of string encodings for each of the available -characters which we then declare in another string. This information -can be derived from careful reading of the relevant specification, -although this is often surprisingly difficult to obtain. - -\begin{lstlisting} - /encs - [ (1111313111) (3111111131) (1131111131) (3131111111) - (1111311131) (3111311111) (1131311111) (1111113131) - (3111113111) (1131113111) (313111) (311131) - ] def - - /barchars (0123456789) def -\end{lstlisting} - -We now store the length of the content string and calculate the -total number of bars and spaces in the resulting barcode. -We initialise a string of size dependant on this length into -which we will build the space bar succession. Similarly, we create -an array into which we will add the human readable text information. - -\begin{lstlisting} - /barlen barcode length def - /sbs barlen 10 mul 12 add string def - /txt barlen array def -\end{lstlisting} - -We now begin to populate the space bar succession by adding the -encoding of the start character to the beginning. - -\begin{lstlisting} - sbs 0 encs 10 get putinterval -\end{lstlisting} - -We now enter the main loop which iterates over the content string -from start to finish, looking up the encoding for each character, -adding this to the space bar succession. - -It is important to understand how the encoding for a given character -is derived. Firstly, given a character, we find its position in the -string of all available characters. We then use -this position to index the array of character encodings to obtain -the encoding for the given character, which is added to the space/bar -succession. Likewise, the character is added to the array of human -readable text along with positioning and font information. - -\begin{lstlisting} - 0 1 barlen 1 sub { - /i exch def - barcode i 1 getinterval barchars exch search - pop - length /indx exch def - pop pop - /enc encs indx get def - sbs i 10 mul 6 add enc putinterval - txt i [barcode i 1 getinterval i 14 mul 10 add -7 - textfont textsize] put - } for -\end{lstlisting} - -The encoding for the end character is obtained and added to -the end of the space bar succession. - -\begin{lstlisting} - sbs barlen 10 mul 6 add encs 11 get putinterval -\end{lstlisting} - -Finally we prepare to push a dictionary containing the space bar -succession (and any additional information defined in section -\ref{datastructure}) that will be passed to the renderer. - -\begin{lstlisting} - /retval 1 dict def - retval (sbs) sbs put - retval (bhs) [sbs length 1 add 2 idiv {height} repeat] put - retval (bbs) [sbs length 1 add 2 idiv {0} repeat] put - includetext { - retval (txt) txt put - } if - retval -\end{lstlisting} - - -\subsection{The Renderer} - -The procedure labelled barcode is known as the renderer, which we now -consider. Its purpose is to accept as input an instance of the -dictionary-based data structure described in section -\ref{datastructure} that represents a barcode in some arbitrary -symbology and produce a visual rendering of this at the current -point. - -The variables that we use in this procedure are confined to local -scope by declaring the procedure as follows: - -\begin{lstlisting} -/barcode { - - 0 begin - -... - - end - -} bind def -/barcode load 0 1 dict put -\end{lstlisting} - -We then immediately read the dictionary-based data structure which -is passed as a single argument to this procedure by an encoder, from -which we extract the space bar succession, bar height succession and bar -base succession. - -\begin{lstlisting} - /args exch def - /sbs args (sbs) get def - /bhs args (bhs) get def - /bbs args (bbs) get def -\end{lstlisting} - -We attempt to extract from the dictionary the array containing the -information about human readable text. However, this may not exist -in the dictionary in which case we create a default empty array. - -\begin{lstlisting} - args (txt) known - { - /txt args (txt) get def - } - { - /txt [] def - } ifelse -\end{lstlisting} - -We have extracted or derived all of the necessary information -from the input, and now use the space bar succession, bar height -succession and bar base succession in calculations that create a -single array containing elements that give coordinates for each of -the bars in the barcode. - -We start by creating a bars array that is half the length of the -space bar succession. We build this by repeatedly adding array elements -that contain the height, x-coordinate, y-coordinate and width of -single bars. The height and y-coordinates are read from the bar -height succession and the bar base succession, respectively, whilst -the x-coordinate and the width are made from a calculation of the -total indent, based on the space bar succession and a compensating -factor that accounts for ink spread. - -\begin{lstlisting} - /bars sbs length 1 add 2 idiv array def - /x 0.00 def - 0 1 sbs length 1 sub { - /i exch def - /d sbs i get 48 sub def - i 2 mod 0 eq - { - /h bhs i 2 idiv get 72 mul def - /c d 2 div x add def - /y bbs i 2 idiv get 72 mul def - /w d 0.15 sub def - bars i 2 idiv [h c y w] put - } if - /x x d add def - } for -\end{lstlisting} - -Finally, we perform the actual rendering in two phases. Firstly we -use the contents of the bars array that we just built to render each -of the bars, and secondly we use the contents of the text array -extracted from the input argument to render the -text. We make an efficiency saving here by not performing loading and -rescaling of a font if the scale factor for the font size is 0. The graphics -state is preserved across calls to this procedure to prevent -unexpected interference with the users environment. - -\begin{lstlisting} - gsave - - bars { - {} forall - setlinewidth moveto 0 exch rlineto stroke - } forall - - txt { - {} forall - dup 0 ne {exch findfont exch scalefont setfont} - {pop pop} - ifelse - moveto show - } forall - - grestore -\end{lstlisting} - -\subsection{Notes Regarding Coding Style} - -PostScript programming veterans are encouraged to remember that the -majority of people who read the code are likely to have little, -if any, prior knowledge of the language. - -To encourage development, the code has been written with these -goals in mind: - -\begin{itemize} -\item[-]{That it be easy to use and to comprehend} -\item[-]{That it be easy to modify and enhance} -\end{itemize} - -To this end the following points should be observed for all new -code submissions: - -\begin{itemize} -\item[-]{New encoders should be based on the code of a similar -existing encoder} -\item[-]{Include comments where these clarify the operations -involved, particular where something unexpected happens} -\item[-]{Prefer simplicity to efficency and clarity to -obfuscation, except where this will be a problem} -\end{itemize} - -\subsection{Installing the Barcode Generation Capability into a Printer's Virtual Machine} - -Most genuine PostScript printers allow procedures to be defined such -that they persist across different jobs through the use of the \texttt{exitserver} -command. If your printer supports this then you will be able to print -the main code containing the definitons of all the encoders and the -renderer once, e.g. soon after the device is turned on, and later omit -these definitons from each of the barcode documents that you print. - -To install the barcode generation capabilities into the -virtual machine of a PostScript printer you need to uncomment a line near the -top of the code so that it reads: - -\begin{lstlisting} -serverdict begin 0 exitserver -\end{lstlisting} - -Once this code is printed the procedural definitions for the encoders and -the renderer will remain defined across all jobs until the device is reset -either by power-cycling or with the following code: - -\begin{lstlisting} -serverdict begin 0 exitserver systemdict /quit get exec -\end{lstlisting} - - - -\clearpage -\section{Package code} -\subsection{\texttt{pst-barcode.sty}} - -\lstinputlisting[xleftmargin=-1cm,xrightmargin=-1cm]{pst-barcode.sty} - -\subsection{\texttt{pst-barcode.tex}} -\lstinputlisting[xleftmargin=-1cm,xrightmargin=-1cm]{pst-barcode.tex} - -%\subsection{\texttt{pst-barcode.pro}} -%\lstinputlisting[language={},xleftmargin=-1.5cm,xrightmargin=-1.5cm]{pst-barcode.pro} -\end{document} - diff --git a/Master/texmf-dist/doc/latex/pst-barcode/pst-barcode.tex b/Master/texmf-dist/doc/latex/pst-barcode/pst-barcode.tex deleted file mode 100644 index 98449a8430c..00000000000 --- a/Master/texmf-dist/doc/latex/pst-barcode/pst-barcode.tex +++ /dev/null @@ -1,61 +0,0 @@ -%% -%% This is file `pst-barcode.tex', -%% -%% IMPORTANT NOTICE: -%% -%% Package `pst-barcode.tex' -%% -%% Terry Burton <tez _at_ terryburton.co.uk> -%% Herbert Voss <voss _at_ perce.de> -%% -%% 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. -%% -%% DESCRIPTION: -%% `pst-barcode' is a PSTricks package to draw barcodes, whatelse ... -%% -\csname PSTBarcodeLoaded\endcsname -\let\PSTBarcodeLoaded\endinput -\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi -% -\def\fileversion{0.04} -\def\filedate{2006/07/23} -\message{`PST-barcode' v\fileversion, \filedate\space (tb,hv)} -% -\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax -\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi -\pst@addfams{pst-barcode} -\pstheader{pst-barcode.pro} -% -% -\define@key[psset]{pst-barcode}{transx}{% - \pst@getlength{#1}\psk@barcode@transx} -\define@key[psset]{pst-barcode}{transy}{% - \pst@getlength{#1}\psk@barcode@transy} -\define@key[psset]{pst-barcode}{scalex}{\def\psk@barcode@scalex{#1}} -\define@key[psset]{pst-barcode}{scaley}{\def\psk@barcode@scaley{#1}} -\define@key[psset]{pst-barcode}{rotate}{% - \pst@getangle{#1}\psk@barcode@rotate} -\psset[pst-barcode]{transx=0,transy=0,scalex=1,scaley=1,rotate=0} -% -\def\psbarcode{\pst@object{psbarcode}} -\def\psbarcode@i#1#2#3{% - \begin@SpecialObj - \addto@pscode{ - gsave - \psk@barcode@rotate\space - \psk@barcode@scalex\space \psk@barcode@scaley\space - \psk@barcode@transx\space \psk@barcode@transy\space - translate scale rotate - 0 0 moveto (#1) (#2) #3\space barcode - grestore - }% - \end@SpecialObj% - \ignorespaces% -} -% -\catcode`\@=\PstAtCode\relax -% -%% END: pst-barcode.tex -\endinput |