summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/lcd/lcd.sty
blob: f80140d1a9c42adfbc0439e05f98c3aa51f7642f (plain)
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
%%
%% This is file `lcd.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% lcd.dtx  (with options: `package')
%% 
%% Copyright (c) 2004 Mike Kaufmann, all rights reserved
%% 
%% This program is provided under the terms of the
%% LaTeX Project Public License distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt.
%% 
%% Author: Mike Kaufmann
%%         Mike.Kaufmann@ei.fh-giessen.de
%% 
%% \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         \~}
%%
\def\fileversion{0.3}
\def\filedate{2004/01/05}
\NeedsTeXFormat{LaTeX2e}[2001/06/01]
\ProvidesPackage{lcd}[\filedate\space
    v\fileversion\space drawing alphanumerical LCDisplays]
\newcommand*\DefineLCDchar[2]{%
    \global\expandafter\def\csname @LCD@#1\endcsname{#2}}
\DefineLCDchar{A}{01110100011000110001111111000110001}
\DefineLCDchar{B}{11110100011000111110100011000111110}
\DefineLCDchar{C}{01110100011000010000100001000101110}
\DefineLCDchar{D}{11100100101000110001100011001011100}
\DefineLCDchar{E}{11111100001000011111100001000011111}
\DefineLCDchar{F}{11111100001000011111100001000010000}
\DefineLCDchar{G}{01110100011000010111100011000101110}
\DefineLCDchar{H}{10001100011000111111100011000110001}
\DefineLCDchar{I}{01110001000010000100001000010001110}
\DefineLCDchar{J}{00111000100001000010000101001001100}
\DefineLCDchar{K}{10001100101010011000101001001010001}
\DefineLCDchar{L}{10000100001000010000100001000011111}
\DefineLCDchar{M}{10001110111010110101100011000110001}
\DefineLCDchar{N}{10001100011100110101100111000110001}
\DefineLCDchar{O}{01110100011000110001100011000101110}
\DefineLCDchar{P}{11110100011000111110100001000010000}
\DefineLCDchar{Q}{01110100011000110001101011001001101}
\DefineLCDchar{R}{11110100011000111110101001001010001}
\DefineLCDchar{S}{01111100001000001110000010000111110}
\DefineLCDchar{T}{11111001000010000100001000010000100}
\DefineLCDchar{U}{10001100011000110001100011000101110}
\DefineLCDchar{V}{10001100011000110001100010101000100}
\DefineLCDchar{W}{10101101011010110101101011010101010}
\DefineLCDchar{X}{10001100010101000100010101000110001}
\DefineLCDchar{Y}{10001100011000101010001000010000100}
\DefineLCDchar{Z}{11111000010001000100010001000011111}
\DefineLCDchar{a}{00000000000111100001011111000101111}
\DefineLCDchar{b}{10000100001011011001100011000111110}
\DefineLCDchar{c}{00000000000111010000100001000101110}
\DefineLCDchar{d}{00001000010110110011100011000101111}
\DefineLCDchar{e}{00000000000111010001111111000001110}
\DefineLCDchar{f}{00110010010100011100010000100001000}
\DefineLCDchar{g}{00000011111000110001011110000101110}
\DefineLCDchar{h}{10000100001011011001100011000110001}
\DefineLCDchar{i}{00100000000110000100001000010001110}
\DefineLCDchar{j}{00010000000011000010000101001001100}
\DefineLCDchar{k}{10000100001001010100110001010010010}
\DefineLCDchar{l}{01100001000010000100001000010001110}
\DefineLCDchar{m}{00000000001101010101101011000110001}
\DefineLCDchar{n}{00000000001011011001100011000110001}
\DefineLCDchar{o}{00000000000111010001100011000101110}
\DefineLCDchar{p}{00000000001111010001111101000010000}
\DefineLCDchar{q}{00000000000110110011011110000100001}
\DefineLCDchar{r}{00000000001011011001100001000010000}
\DefineLCDchar{s}{00000000000111010000011100000111110}
\DefineLCDchar{t}{01000010001110001000010000100100110}
\DefineLCDchar{u}{00000000001000110001100011001101101}
\DefineLCDchar{v}{00000000001000110001100010111000100}
\DefineLCDchar{w}{00000000001010110101101011010101110}
\DefineLCDchar{x}{00000000001000101010001000101010001}
\DefineLCDchar{y}{00000000001000110001011110000101110}
\DefineLCDchar{z}{00000000001111100010001000100011111}
\DefineLCDchar{0}{01110100011001110101110011000101110}
\DefineLCDchar{1}{00100011000010000100001000010001110}
\DefineLCDchar{2}{01110100010000100010001000100011111}
\DefineLCDchar{3}{11111000100010000010000011000101110}
\DefineLCDchar{4}{00010001100101010010111110001000010}
\DefineLCDchar{5}{11111100001111000001000011000101110}
\DefineLCDchar{6}{00110010001000011110100011000101110}
\DefineLCDchar{7}{11111000010001000100010000100001000}
\DefineLCDchar{8}{01110100011000101110100011000101110}
\DefineLCDchar{9}{01110100011000101111000010001001100}
\DefineLCDchar{!}{00100001000010000100000000000000100}
\DefineLCDchar{'}{01100001000100000000000000000000000}
\DefineLCDchar{(}{00010001000100001000010000010000010}
\DefineLCDchar{)}{01000001000001000010000100010001000}
\DefineLCDchar{*}{00000001001010101110101010010000000}
\DefineLCDchar{+}{00000001000010011111001000010000000}
\DefineLCDchar{,}{00000000000000000000011000010001000}
\DefineLCDchar{-}{00000000000000011111000000000000000}
\DefineLCDchar{.}{00000000000000000000000000110001100}
\DefineLCDchar{/}{00000000010001000100010001000000000}
\DefineLCDchar{:}{00000011000110000000011000110000000}
\DefineLCDchar{;}{00000011000110000000011000010001000}
\DefineLCDchar{<}{00010001000100010000010000010000010}
\DefineLCDchar{=}{00000000001111100000111110000000000}
\DefineLCDchar{>}{10000010000010000010001000100010000}
\DefineLCDchar{?}{01110100010000100010001000000000100}
\DefineLCDchar{[}{01110010000100001000010000100001110}
\DefineLCDchar{]}{01110000100001000010000100001001110}
\DefineLCDchar{`}{01000001000001000000000000000000000}
\DefineLCDchar{|}{00100001000010000100001000010000100}
\DefineLCDchar{clock}{01110100011000111101101011010101110}
\DefineLCDchar{rarrow}{00000001000001011111000100010000000}
\DefineLCDchar{larrow}{00000001000100011111010000010000000}
\DefineLCDchar{Omega}{00000011101000110001010101101100000}
\DefineLCDchar{Sigma}{11111100000100000100010001000011111}
\DefineLCDchar{pi}{00000000001111101010010100101010011}
\DefineLCDchar{sqrt}{00000000000011100100001001010001000}
\DefineLCDchar{rect}{00000111111000110001100011000111111}
\DefineLCDchar{fcur}{11111111111111111111111111111111111}
\DefineLCDchar{lb}{00010001000010001000001000010000010}
\DefineLCDchar{rb}{01000001000010000010001000010001000}
\DefineLCDchar{alpha}{00000000000100110101100101001001101}
\begingroup
\catcode`\~=11 \catcode`\$=11 \catcode`\^^b5=11 \catcode`\^^b0=11
\catcode`\^^b7=11 \catcode`\^^e4=11 \catcode`\^^f6=11 \catcode`\^^fc=11
\catcode`\^^df=11 \catcode`\"=11 \catcode`\#=11 \catcode`\&=11
\catcode`\^=11 \catcode`\_=11
\DefineLCDchar{$}{00100011111010001110001011111000100}%$
\DefineLCDchar{#}{01010010101111101010111110101001010}
\DefineLCDchar{^^b5}{00000100011000110001100111110110000}
\DefineLCDchar{^^b0}{11100101001110000000000000000000000}
\DefineLCDchar{^^b7}{00000000000000001100011000000000000}
\DefineLCDchar{^^e4}{01010000000111000001011111000101111}
\DefineLCDchar{^^f6}{01010000000111010001100011000101110}
\DefineLCDchar{^^fc}{01010000001000110001100011001101101}
\DefineLCDchar{^^df}{00000011101000111110100011111010000}
\DefineLCDchar{"}{01010010100101000000000000000000000}
\DefineLCDchar{&}{01100100101010001000101011001011101}
\DefineLCDchar{^}{00100010101000100000000000000000000}
\DefineLCDchar{_}{00000000000000000000000000000011111}
\DefineLCDchar{~}{00000000000000000000000000000000000}
\catcode`\%=11
\DefineLCDchar{%}{11000110010001000100010001001100011}
\endgroup
\newlength\LCDunitlength
\newcounter{@LCDdotx}
\newcounter{@LCDdoty}
\newcounter{@LCDchrx}
\newcounter{@LCDlines}
\newcounter{@LCDlower}
\newcommand*\LCDframe{\let\@LCDbox\framebox}
\newcommand*\LCDnoframe{\let\@LCDbox\makebox}
\newcommand*\LCDcolors[3][black]{%
    \def\@LCDfr{#1}\def\@LCDfg{#2}\def\@LCDbg{#3}}
\setlength\LCDunitlength{0.5mm}
\LCDframe
\LCDcolors{black}{white}
\AtBeginDocument{
    \@ifundefined{color}{\def\color#1{}}{}
    \@ifundefined{colorbox}{\def\colorbox#1#2{#2}}{}}
\newcommand*\@DrawLCDDot{%
    \put(\the\c@@LCDdotx,\the\c@@LCDdoty.35){\line(1,0){0.7}}}
\newcommand*\@DrawLCDRow[5]{%
    \def\@tempa{#1}\if\@tempa0\relax\else\@DrawLCDDot\fi\stepcounter{@LCDdotx}%
    \def\@tempa{#2}\if\@tempa0\relax\else\@DrawLCDDot\fi\stepcounter{@LCDdotx}%
    \def\@tempa{#3}\if\@tempa0\relax\else\@DrawLCDDot\fi\stepcounter{@LCDdotx}%
    \def\@tempa{#4}\if\@tempa0\relax\else\@DrawLCDDot\fi\stepcounter{@LCDdotx}%
    \def\@tempa{#5}\if\@tempa0\relax\else\@DrawLCDDot\fi
    \addtocounter{@LCDdotx}{-4}}
\def\@DrawLCDRows#1#2#3#4#5#6\@@end{%
    \@DrawLCDRow#1#2#3#4#5\addtocounter{@LCDdoty}{-1}%
    \def\@tempa{#6}\ifx\@tempa\@empty\else\@DrawLCDRows#6\@@end\fi}
\newcommand*\@DrawLCDchar[3]{%
    \setcounter{@LCDdotx}{#1}\multiply\c@@LCDdotx 6\addtocounter{@LCDdotx}{2}%
    \setcounter{@LCDdoty}{#2}\multiply\c@@LCDdoty 10\addtocounter{@LCDdoty}{8}%
    \expandafter\expandafter\expandafter
    \@DrawLCDRows\csname @LCD@#3\endcsname\@@end}
\def\@DrawLCDchars#1#2#3\@@end{%
    \def\@tempa{#2}\if\@tempa\space\else\@DrawLCDchar{\the\c@@LCDchrx}{#1}{#2}\fi
    \stepcounter{@LCDchrx}%
    \def\@tempa{#3}\ifx\@tempa\@empty\else\@DrawLCDchars{#1}#3\@@end\fi}
\newcommand*\@DrawLCDLine[2]{%
    \def\@tempa{#2}\ifx\@tempa\@empty\else
        \setcounter{@LCDchrx}{0}%
        \@DrawLCDchars{#1}#2\@@end\fi}
\newif\if@textLCD
\newcommand*\@LCDstart{\unitlength\LCDunitlength
    \begin{picture}(\the\@tempcntb.7,\the\@tempcnta.7)(0,\the\c@@LCDlower)
    \color{\@LCDfr}
    \if@textLCD\advance\@tempcnta 2\fi
    \put(0,0){\fboxsep\z@\colorbox{\@LCDbg}{\@LCDbox(\the\@tempcntb.7,\the\@tempcnta.7){}}}
    \color{\@LCDfg}
    \linethickness{0.7\unitlength}}
\newcommand*\@LCDend{\end{picture}}
\newcommand*\do@LCDspecials{%
    \catcode`\~=11 \catcode`\$=11 \catcode`\^^b5=11 \catcode`\^^b0=11
    \catcode`\^^b7=11 \catcode`\^^e4=11 \catcode`\^^f6=11 \catcode`\^^fc=11
    \catcode`\^^df=11 \catcode`\"=11 \catcode`\&=11 \catcode`\#=11
    \catcode`\^=11 \catcode`\_=11 \catcode`\%=11 \obeyspaces}
\newcommand*\calc@LCDsize[2]{\@tempcnta#1\multiply\@tempcnta10\relax
    \@tempcntb#2\multiply\@tempcntb6\advance\@tempcntb2\relax}
\newcommand*\textLCDcorr{-2}
\newcommand*\textLCD[3][\textLCDcorr]{\begingroup
    \LCDnoframe\settoheight{\LCDunitlength}{M}%
    \setlength{\LCDunitlength}{0.146342\LCDunitlength}%
    \setcounter{@LCDlower}{2}\setcounter{@LCDlines}{1}%
    \hspace{-.25em}\hspace{#1\LCDunitlength}%
    \calc@LCDsize{1}{#2}\advance\@tempcnta-2\@textLCDtrue\do@LCDspecials
    \def\@textLCD##1#3{\@LCDstart
        \@DrawLCDLine{0}{##1}\@LCDend\hspace{#1\LCDunitlength}\endgroup}
    \@textLCD}
\newcommand*\LCD[3]{\begingroup
    \setcounter{@LCDlower}{0}\setcounter{@LCDlines}{#1}%
    \ifnum\c@@LCDlines<1\setcounter{@LCDlines}{1}\fi
    \calc@LCDsize{\c@@LCDlines}{#2}\@textLCDfalse\do@LCDspecials
    \def\@LCDlast##1#3{\@DrawLCDLine{0}{##1}\@LCDend\endgroup}
    \def\@LCD##1#3##2#3{%
        \addtocounter{@LCDlines}{-1}\@DrawLCDLine{\c@@LCDlines}{##1}
       \ifnum\c@@LCDlines>1\let\@LCDnext\@LCD\else
            \let\@LCDnext\@LCDlast\fi\@LCDnext}
   \ifnum\c@@LCDlines>1\let\@LCDnext\@LCD\else\let\@LCDnext\@LCDlast\fi
    \@LCDstart\@LCDnext}
\endinput
%%
%% End of file `lcd.sty'.