-
Notifications
You must be signed in to change notification settings - Fork 50
/
ean13isbn.sty
106 lines (88 loc) · 3.1 KB
/
ean13isbn.sty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
\ProvidesPackage{ean13isbn}[2008/06/20 EAN13 with ISBN]
\PackageInfo{ean13isbn}{$Id: ean13isbn.sty 208 2008-06-19 23:25:37Z zw $\@gobble}
%% Copyright 2008 Z. Wagner, http://icebearsoft.euweb.cz
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% 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
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Z. Wagner.
%
% This work consists of the files: ean13isbn.sty and
% the documentation files ean13isbn.tex, ean13isbn.pdf.
\def\zw@setean#1#2{\def\zw@scale{#1 }\def\zw@xm{#2mm }}
\RequirePackage{kvoptions}
\SetupKeyvalOptions{family=zwean,prefix=zwean@}
\DeclareStringOption{ISBN}
\DeclareVoidOption{help}{\typeout{\zwean@table}}
\def\zw@set #1 #2 #3 {\ifnum#2<1000 \let\zw@maybespace\space \else \def\zw@maybespace{}\fi
\edef\zwean@table{\zwean@table^^J\zw@maybespace #2 0#3mm => SC#1}%
\DeclareVoidOption{SC#1}{\zw@setean{#2}{#3}}}
\def\zw@tbline{^^J======================}
\def\zwean@table{\zw@tbline ^^J\space Mag \space Module\space \space \space \space Option\zw@tbline}
\zw@set 0 800 .264
\zw@set 0a 818 .270
\zw@set 0b 850 .281
\zw@set 1 900 .297
\zw@set 1a 950 .313
\zw@set 2 1000 .330
\zw@set 2a 1050 .346
\zw@set 3 1100 .363
\zw@set 3a 1150 .379
\zw@set 4 1200 .396
\zw@set 4a 1250 .412
\zw@set 5 1300 .429
\zw@set 5a 1350 .445
\zw@set 5b 1400 .462
\zw@set 5c 1450 .478
\zw@set 6 1500 .495
\zw@set 6a 1550 .511
\zw@set 7 1600 .528
\zw@set 7a 1650 .544
\zw@set 7b 1700 .561
\zw@set 7c 1750 .577
\zw@set 8 1800 .594
\zw@set 8a 1850 .610
\zw@set 8b 1900 .627
\zw@set 8c 1950 .643
\zw@set 9 2000 .660
\zw@set 10 2120 .700
\edef\zwean@table{\zwean@table \zw@tbline}
\setkeys{zwean}{SC2}
\InputIfFileExists{./ean13isbn.cfg}{}{}
\ProcessKeyvalOptions*
\expandafter\ifx\csname mubytein\endcsname\relax
\let\zw@mubytein\relax
\else
\edef\zw@mubytein{\noexpand\mubytein\the\mubytein}\mubytein0
\fi
\input{ean13}
\zw@mubytein
\newdimen\zw@isbnfsize
\def\zw@eansetup@params{\X\zw@xm
\font\ocrb ocrb9 scaled \zw@scale
\zw@isbnfsize 8.0pt
\ifnum\zw@scale<1000
\zw@isbnfsize .\zw@scale\zw@isbnfsize
\fi
\ifnum\zw@scale>1000
\def\zw@next##1##2##3##4.{\zw@isbnfsize ##1.##2##3##4\zw@isbnfsize}
\expandafter\zw@next\zw@scale.
\fi
\def\zw@isbnfont{\usefont{OT1}{phv}{mc}{n}\fontsize{\zw@isbnfsize}{\zw@isbnfsize}\selectfont}}
\zw@eansetup@params
\def\zw@EANisbn{\def\ISBNnum{\let\ocrbsmall\relax
\hbox to 96\X{\zw@isbnfont \kern .5\X ISBN\hss \zwean@ISBN}}\barheight=45.151515\X\relax
\expandafter\EAN \zwean@ISBN}
\def\EANisbn{\@ifnextchar[\zw@eanwitharg\zw@EANisbn}
\def\zw@eanwitharg{\begingroup \catcode`\-12 \zw@eanarg}
\def\zw@eanarg[#1]{\setkeys{zwean}{#1}\zw@eansetup@params\zw@EANisbn\endgroup}
\def\EANsetup{\begingroup \catcode`\-12 \zw@eansetup}
\def\zw@eansetup#1{\endgroup \setkeys{zwean}{#1}\zw@eansetup@params}
\def\ISBN{ISBN \zwean@ISBN}