summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-04-11 22:51:06 +0000
committerKarl Berry <karl@freefriends.org>2020-04-11 22:51:06 +0000
commite6a2b56351dad347e5b65b2c15f9fa810c2b8246 (patch)
tree1caa9627adaaf49fc19818ec04a6161d2499dab4 /Master/texmf-dist/doc
parentc1aac14d5d1d32826a5e68a5dfc59a05b4f1e989 (diff)
sdapscode128.tex in runtime (5apr20)
git-svn-id: svn://tug.org/texlive/trunk@54678 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/latex/sdaps/sdapscode128.tex374
1 files changed, 0 insertions, 374 deletions
diff --git a/Master/texmf-dist/doc/latex/sdaps/sdapscode128.tex b/Master/texmf-dist/doc/latex/sdaps/sdapscode128.tex
deleted file mode 100644
index 90835f517f3..00000000000
--- a/Master/texmf-dist/doc/latex/sdaps/sdapscode128.tex
+++ /dev/null
@@ -1,374 +0,0 @@
-%% Copyright 1996 Petr Olsak.
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-%
-% The work has been licensed under these terms with permission
-% by Petr Olsak for distribution with SDAPS.
-%
-% The original file follows
-% See http://math.feld.cvut.cz/olsak/
-
-% Macro for conversion of string to barcodes by Code 128 standard
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% March 1996 (C) Petr Ol\v{s}\'ak
-
-% For user information see the file test128.tex
-
-% Comments at programmer level are included in this file. First you can
-% read the end of this file: The description of Code 128 standard.
-
-\wlog{**** Macro for barcodes in "Code 128" by (C) Petr Olsak used ****}
-
-% Declarations:
-\newdimen\X % the module size X,
-\newdimen\bcorr % the bar correction (see bellow).
-\newdimen\workdimen \newdimen\barheight % internal variables
-\newtoks\inputtext \newtoks\icode
-\newcount\tempnum \newcount\chnum \newcount\chtotal
-\newif\ifnext \newif\ifchar
-\def\empty{} \def\End{@@end}
-
-% Implicit values:
-\X=.33mm % The X module width.
-\bcorr=.020mm % Bar reduction.
-\barheight=1.5cm % The code height.
-
-% First we declare some tables.
-% "\definetable<lab><num> string \relax": Each token from "string" gets a value
-% (spaces are ignored). First token gets value <num>, second <num+1>
-% and so on. It is possible to reconstruct the value by
-% "\csname<lab>\string<token>\endcsname".
-\def\definetable#1#2 {\tempnum=#2 \def\temp{#1}\let\next=\repeatdefine \next}
-\def\repeatdefine#1{\ifx#1\relax \let\next=\relax \else
- \expandafter\edef\csname\temp\string#1\endcsname{\the\tempnum}%
- \advance\tempnum by1 \fi \next}
-
-%%%%%%%%%%%%%%%%%%%%% Basic tables for Code 128: %%%%%%%%%%%%%%%%%%%%%%%%%%%
-\definetable:0 % All input characters from Code B:
- \ ! " \# \$ \% \& ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
- 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 [ \\ ] \^ \_ `
- 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 \{ | \} \~ \DEL \relax
-\definetable:64 % Other input characters from Code A:
- \NUL \SOH \STX \ETX \EOT \ENQ \ACK \BEL \BS \HT \LF \VT \FF \CR \SO \SI
- \DLE \DCone \DCtwo \DCthree \DCfour \NAK \SYN \ETB \CAN \EM \SUB \ESC
- \FS \GS \RS \US \relax
-\definetable:0 \
- \relax % the \^^M must be the same as \<space>
-\definetable:0 \SP \relax % the \SP is alternative to \<space>
-\definetable{D:}0 0123456789 \relax % Digits
-\definetable{B:}0 `abcdefghijklmnopqrstuvwxyz\{\|\}\~ \relax % Only in Code B
-\definetable{A:}0 \NUL \SOH \STX \ETX \EOT \ENQ \ACK \BEL \BS \HT \LF \VT
- \FF \CR \SO \SI \DLE \DCone \DCtwo \DCthree \DCfour \NAK \SYN \ETB \CAN
- \EM \SUB \ESC \FS \GS \RS \US \relax % only in code A.
-\def\tableofcode#1{\ifcase#1 % The output characters:
- 212222\or 222122\or 222221\or 121223\or 121322\or % 0-4
- 131222\or 122213\or 122312\or 132212\or 221213\or % 5-9
- 221312\or 231212\or 112232\or 122132\or 122231\or % 10-14
- 113222\or 123122\or 123221\or 223211\or 221132\or % 15-19
- 221231\or 213212\or 223112\or 312131\or 311222\or % 20-24
- 321122\or 321221\or 312212\or 322112\or 322211\or % 25-29
- 212123\or 212321\or 232121\or 111323\or 131123\or % 30-34
- 131321\or 112313\or 132113\or 132311\or 211313\or % 35-39
- 231113\or 231311\or 112133\or 112331\or 132131\or % 40-44
- 113123\or 113321\or 133121\or 313121\or 211331\or % 45-49
- 231131\or 213113\or 213311\or 213131\or 311123\or % 50-54
- 311321\or 331121\or 312113\or 312311\or 332111\or % 55-59
- 314111\or 221411\or 431111\or 111224\or 111422\or % 60-64
- 121124\or 121421\or 141122\or 141221\or 112214\or % 65-69
- 112412\or 122114\or 122411\or 142112\or 142211\or % 70-74
- 241211\or 221114\or 413111\or 241112\or 134111\or % 75-79
- 111242\or 121142\or 121241\or 114212\or 124112\or % 80-84
- 124211\or 411212\or 421112\or 421211\or 212141\or % 85-89
- 214121\or 412121\or 111143\or 111341\or 131141\or % 90-94
- 114113\or 114311\or 411113\or 411311\or 113141\or % 95-99
- 114131\or 311141\or 411131\else 00000\fi } % 100-102
-\def\startA{211412}
-\def\startB{211214}
-\def\startC{211232}
-\def\stop{23311120}
-
-% Implementations of tests:
-% After "\testchar <lab><token>" the "\ifchar" has following meaning:
-% true, if <token> is in digits, only in A or only in B respectively with
-% <lab> is {D:}, {A:} or {B:}.
-\def\testchar #1#2{\expandafter\ifx\csname#1\string#2\endcsname \relax
- \charfalse \else \chartrue \fi}
-
-% After "\numofdigits string\stop" is used, the \tempnum register contain
-% the number of digits from first continuosly group of digits from left in
-% "string". If "string" starts with no digit then \tempnum=0.
-\def\numofdigits{\tempnum=0 \let\next=\cyklnumber \cyklnumber}
-\def\cyklnumber#1{\testchar {D:}#1%
- \ifchar \advance\tempnum by1
- \else \ifx #1\stop\def\next{}%
- \else \def\next##1\stop{}\fi
- \fi \next}
-
-% After "\testnext<lab> string\stop" is used, the "\ifnext" has
-% the following meaning:
-% 1. <lab> is {A:}: "\ifnext" is true, if first character from "string" is
-% only in A code after skip all common characters shared in codeA and B.
-% 2. <lab> is {B:}: "\ifnext" is true, if first character from "string" is
-% only in B code after skip all common characters shared in codeA and B.
-\def\testA{A:}
-\def\testnext#1{\nextfalse
- \def\tempA{#1}%
- \ifx\tempA\testA \def\tempB{B:}\else \def\tempB{A:}\fi
- \let\next=\cyklcontrol \next}
-\def\cyklcontrol#1{%
- \ifx#1\stop \let\next=\relax
- \else \testchar \tempB #1%
- \ifchar \def\next##1\stop{}%
- \else \testchar \tempA #1%
- \ifchar \nexttrue \def\next##1\stop{}\fi \fi
- \fi \next}
-
-% "\addtok \cs" adds the "\cs," into \icode.
-% "\addtoks{string} adds the "string," into \icode. "string" is the number
-% of line in table 1, so we re-calculate the current check sum.
-% "\addchar <token> adds the numerical value of <token> (declared in
-% \definetable:) into \icode. This value is followed by comma too.
-\def\addtok#1{\edef\act{\noexpand\icode={\the\icode\noexpand#1,}}\act}
-\def\addtoks#1{\edef\act{\noexpand\icode={\the\icode#1,}}\act
- \tempnum=#1 \multiply\tempnum by\chnum
- \advance\chtotal by\tempnum \advance\chnum by 1\relax}
-\def\addchar#1{\expandafter\ifx\csname:\string#1\endcsname\relax
- \errmessage{The input token "\string#1" is not included in Code 128
- table, will ignored}%
- \else \expandafter\addtoks\expandafter{\csname:\string#1\endcsname}\fi}
-
-% \code{text} first converts the input text into internal representation in
-% \icode. The format of \icode is: "\start,num,num,num,\stop,", where
-% "\start" is one of "\startA" or "\startB" or "\startC". The <num>
-% represents the line of code table (see standard of Code 128 bellow)
-% of output characters. The amount of <num>s is not restricted. The sequence
-% is terminated by "\stop,". See to .log for example of this format.
-%
-% The choice of the start character:
-% If next 4 input characters are digits then \startC
-% else if the next uncommon char is from code A and not from B then \startA
-% else \startB
-% The "next uncommon char" is first character from left which falls
-% into code A xor code B
-\def\code#1{\inputtext={#1}\wlog{** Code 128 ** input: \the\inputtext}%
- \icode={}\chnum=1
- \numofdigits#1\stop % in \tempnum is the number of digits now
- \ifnum\tempnum>3 \addtok\startC \chtotal=2 \let\Next=\codeC \else
- \testnext{A:} #1\stop
- \ifnext \addtok\startA \chtotal=0 \let\Next=\codeA
- \else \addtok\startB \chtotal=1 \let\Next=\codeB \fi
- \fi \Next #1\End\End}
-
-% There is mode A. Test to change the mode:
-% If the next 4 input characters are digits and the number of digits are even
-% then switch to modeC using <codeC>.
-% If the next char is from Code B and not from Code A then:
-% if the next uncommnon char is from Code B and not from A then
-% switch to mode B using <codeB>.
-% else include <SHIFT> and stay in mode A.
-\def\codeA #1#2#3\End{\addchar#1%
- \numofdigits#2#3\stop
- \ifnum\tempnum>3 \ifodd\tempnum\else
- \addtoks{99}\let\Next=\codeC \fi
- \else \ifx#2\End \let\Next=\finalcode
- \else \testchar{B:} #2%
- \ifchar \testnext{B:} #3\stop
- \ifnext \addtoks{100}\let\Next=\codeB
- \else \addtoks{98}\fi \fi \fi \fi
- \Next #2#3\End}
-
-% There is mode B. Test to change the mode:
-% If the next 4 input characters are digits and the number of digits are even
-% then switch to modeC using <codeC>
-% If the next char is from Code A and not from Code B then:
-% if the next uncommnon char is from Code A and not from B then
-% switch to mode A using <codeA>.
-% else include <SHIFT> and stay in mode B.
-\def\codeB #1#2#3\End{\addchar#1%
- \numofdigits#2#3\stop
- \ifnum\tempnum>3 \ifodd\tempnum\else
- \addtoks{99}\let\Next=\codeC \fi
- \else \ifx#2\End \let\Next=\finalcode
- \else \testchar{A:} #2%
- \ifchar \testnext{A:} #3\stop
- \ifnext \addtoks{101}\let\Next=\codeA
- \else \addtoks{98}\fi \fi \fi \fi
- \Next #2#3\End}
-
-% There is mode C. Test to change the mode:
-% If not next two chars are digits switch to code A or B by following rule:
-% If the next uncommon char is from Code A and not from B then
-% switch to mode A using <codeA>
-% else switch to mode B using <codeB>
-\def\codeC #1#2#3#4\End{\addtoks{#1#2}%
- \ifx#3\End \let\Next=\finalcode
- \else \testchar{D:} #3%
- \ifchar \def\temp{#4}%
- \ifx\temp\empty \switchtoAorB #3\stop
- \else \separate #4\stop
- \edef\act{\noexpand\testchar{D:}\temp}\act
- \ifchar
- \else \switchtoAorB #3#4\stop \fi \fi
- \else \switchtoAorB #3#4\stop \fi
- \fi \Next #3#4\End}
-\def\separate#1#2\stop{\def\temp{#1}}
-\def\switchtoAorB #1\stop{\testnext{A:} #1\stop
- \ifnext \addtoks{101}\let\Next=\codeA
- \else \addtoks{100}\let\Next=\codeB \fi}
-
-\def\finalcode\End\End{\addchecksum \addtok\stop \wlog{encoded: \the\icode}%
- \expandafter\makecode\the\icode}
-
-% \addchecksum adds the check sum into \icode
-\def\addchecksum{\tempnum=\chtotal
- \divide\tempnum by 103 \multiply\tempnum by 103
- \advance\chtotal by-\tempnum \addtoks{\the\chtotal}}
-
-% The \makecode converts the \icode from format "\start,num,num,\stop,"
-% into sequence of digits. Each digit repersents the multiple of X module
-% size for bar or space if it is at odd or even position. For example
-% 21141223311120. It means bar of 2X, space 1X, bar 1X, space 4X and so on.
-% This representation of code is stored in macro \internalcode.
-\def\makecode#1,{\let\next=\cyklcode \edef\internalcode{#1}\next}
-\def\cyklcode#1,{%
- \ifx\stop#1\let\next=\finalmakecode \edef\internalcode{\internalcode\stop}%
- \else \edef\internalcode{\internalcode\tableofcode{#1}}\fi \next}
-\def\finalmakecode{\wlog{black-white: \internalcode}%
- \begcode \let\next=\makebars \expandafter\makebars\internalcode}
-
-% \makebars simply makes the \vrules and \kerns of appropriate sizes from
-% \internalcode representation. Each width of \vrule is corrected by \bcorr
-% and opposite for \kern.
-\def\makebars#1#2{\if0#2\let\next=\endcode\fi
- \workdimen=#1\X \advance\workdimen by-\bcorr \vrule width\workdimen
- \workdimen=#2\X \advance\workdimen by \bcorr \kern\workdimen
- \next}
-
-% The begin and end of completed \hbox:
-\def\begcode{\hbox\bgroup\vrule height\barheight width0pt}
-\def\endcode{\egroup}
-
-% User can use \codetext or \codeothertext instead \code:
-\def\codeothertext#1#2{\vbox{\halign{\hfil##\hfil\cr\code{#1}\cr{\tt#2}\cr}}}
-\def\codetext#1{\codeothertext{#1}{#1}}
-
-\endinput %%%%%%%%%%%%%%% End of macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
- The description of Code 128 standard
- ************************************
-
-The characters from input string are converted from left to right
-to so called "output characters" by table 1 (see below). Each output
-character has three bars and spaces. The width of bars and the dimensions
-of spaces between bars are significant. This values are expresed by
-multiples of basic dimension: so called X module size (see \X in macro).
-The multiples varies from 1 to 4. We are using the six digits expression of
-output character. It expressed dimensions of bar, space, bar, space, bar,
-space. For example 122412 means one output character drawn as: 1X bar, 2X
-space, 2X bar, 4X space, 1X bar and 2X space.
-
-The table 1:
-
-num.line code A code B codeC output character
--------------------------------------------------------
- 0 [space] [space] 00 212222
- 1 ! ! 01 222122
- 2 " " 02 222221
- 3 # # 03 121223
-... and so on ...
- 63 _ _ 63 111224
- 64 \NUL ` 64 111422
- 65 \SOH a 65 121124
- 66 \STX b 66 121421
-... and so on ...
- 93 \GS } 93 111341
- 94 \RS ~ 94 131141
- 95 \US \DEL 95 114113
- 96 <FNC3> <FNC3> 96 113311
- 97 <FNC2> <FNC2> 97 411113
- 98 <SHIFT> <SHIFT> 98 411311
- 99 <codeC> <codeC> 99 113141
-100 <codeB> <FNC4> <codeB> 114131
-101 <FNC4> <codeA> <codeA> 311141
-102 <FNC1> <FNC1> <FNC1> 411131
-
-The whole table is not presented here because you can simply reconstruct it
-from macros.
-
-The columns "code A", "code B", and "code C" inlude all possible input
-characters in input string (excluding "special commands" in lines 96--102
-written in <angle> braces). The special \TeX{} characters must be escaped
-(i.e. user have to write \# and no #). The escaped words (in capitals)
-represents so called "control characters" from ASCII. The meaning of this
-sequences depends on application. The "special commands" in lines 96--102
-written in <angle> braces are not possible in input. They are special for
-decoder. The <SHIFT> and <codeA-C> are used in our macro, but <FNC?> are
-not because they are reserved for special purposes.
-
-The Code B column is whole expressed in \definetable:0 (see in macro). The
-Code A column has the same values in lines 0--63 (capitals, digits and some
-other ASCII characters are included here). Code A differ from Code B in
-lines 64--102. The lowercase letters and another ASCII characters are
-included in "Code B", but control sequences are included in "Code A".
-The different part of "Code A" column is expressed in \definetable:64 (see
-in macro). The "code C" column includes the digits pairs and corresponds to
-number of line in table 1. Two digits in input go to one output character.
-The whole "output character" column is expressed in \tableofcode (see in
-macro).
-
-The "start character" is appended before each barcode. There are three
-types of start character depending on which column of table is used for
-next encoding (so called mode). See macros \startA, \startB and \startC.
-For examlpe: If \startC is used, next output character represents two
-digits in input (codeC mode). If \startB is used, next output character
-represents one ASCII character in input (codeB mode). If \startA is used,
-next output character represents probably the control sequence in input or
-capitals, but not lowercase ASCII (codeA mode).
-
-If some mode for encoding is currently used and next input character is not
-included in appropriate column, the "switching command" is included into
-sequence of output character. The <SHIFT> command switches from mode A to
-B or from B to A only for one next input character and the other input
-characters are coded in the same mode (A or B). The <codeA> command
-switches to codeA mode definitively unless next switch command is used.
-The commands <codeB> and <codeC> makes the same service, but to switch into
-mode B or C respectively. All these commands are expessed in table 1.
-
-It is recomended to chose the start character and switching commands by the
-way, that the resulting length of code is minimised. There are some
-recommendations of this choice. These recommendations are included into our
-macros (see the commnets and macros for \code, \codeA, \codeB and \codeC).
-
-The checksum character is added after the end of input string. Finally,
-the "stop character" is appended after the end of barcode. This character
-has exclusively four bars and not only three. See macro \stop.
-
-The checksum character is calculated from output characters used in the
-code. The number of line in table 1 of each output character is asumed. The
-start character is covered too, but checksum character itself and the
-stop character are not included into calculation. The startA or startB or
-startC characters has its number of line 103 or 104 or 105 respectively. Each
-output character (more exactly its number of line in table 1) is multiplied
-by "weight number" and the total sum is calculated. The weight number of
-start character is one. The weight number of first output characet after
-start is one too. Second character has weight number two, and so on. The
-n-th character has weight number n. The total sum modulo 103 is the line of
-the calculated checksum character.
-
-Example for checksum calculation:
-Input: 123456
-Encoded: StartC, 12, 34, 56
-Total sum of checksum: 105 + 1*12 + 2*34 + 3*56 = 535
-Modulo 103: 44
-The character from line 44 is apended as checksum.
-The whole encoded code: StartC, 12, 34, 56, 44, Stop
-
-%%% End of file.
-
-
-
-