summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/lcd
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:03:17 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:03:17 +0000
commitecf966f305f6aeff2bbdf42c82d8425921aa9eda (patch)
treedb606a57e3619610e4c35cae849d41cf4e0937d5 /Master/texmf-dist/source/latex/lcd
parentac3c55a3216b5988f0e48ba9414ddb059f19a699 (diff)
source 1
git-svn-id: svn://tug.org/texlive/trunk@105 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/lcd')
-rw-r--r--Master/texmf-dist/source/latex/lcd/lcd.dtx972
-rw-r--r--Master/texmf-dist/source/latex/lcd/lcd.ins67
2 files changed, 1039 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/lcd/lcd.dtx b/Master/texmf-dist/source/latex/lcd/lcd.dtx
new file mode 100644
index 00000000000..76d60073600
--- /dev/null
+++ b/Master/texmf-dist/source/latex/lcd/lcd.dtx
@@ -0,0 +1,972 @@
+% \iffalse meta-comment
+%
+% Package lcd
+% 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
+% \fi
+%% \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 \~}
+%%
+% \CheckSum{469}
+%
+% \iffalse meta-comment
+%
+%<*package>
+\def\fileversion{0.3}
+\def\filedate{2004/01/05}
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[latin1]{inputenc}
+% redefine µ (\mu) to get it right in source code listing
+\DeclareInputText{181}{\ensuremath{\mu}}
+\usepackage{lcd}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+%\OnlyDescription
+\begin{document}
+ \DocInput{lcd.dtx}
+\end{document}
+%</driver>
+%
+%<*package>
+% \fi
+%
+% ^^A Don't ask me why, but the first two \DoNotIndex-line don't work
+% \DoNotIndex{\",\#,\$,\%,\&,\^,\_,\~}
+% \DoNotIndex{\^^b0,\^^b5,\^^b7,\^^df,\^^e4,\^^f6,\^^fc}
+% \DoNotIndex{\@@end,\@empty,\@ifundefined}
+% \DoNotIndex{\@tempa,\@tempcnta,\@tempcntb}
+% \DoNotIndex{\AtBeginDocument,\advance,\addtocounter}
+% \DoNotIndex{\begin,\begingroup}
+% \DoNotIndex{\csname,\catcode,\color,\colorbox}
+% \DoNotIndex{\def}
+% \DoNotIndex{\else,\end,\endgroup,\endcsname,\expandafter}
+% \DoNotIndex{\fboxsep,\framebox}
+% \DoNotIndex{\global}
+% \DoNotIndex{\fi,\filedate,\fileversion}
+% \DoNotIndex{\hspace}
+% \DoNotIndex{\if,\ifnum,\ifx}
+% \DoNotIndex{\let,\line,\linethickness}
+% \DoNotIndex{\makebox,\multiply}
+% \DoNotIndex{\NeedsTeXFormat,\newcommand,\newcounter,\newlength,\newif}
+% \DoNotIndex{\obeyspaces}
+% \DoNotIndex{\ProvidesPackage,\put}
+% \DoNotIndex{\relax}
+% \DoNotIndex{\space,\setlength,\setcounter,\settoheight,\stepcounter}
+% \DoNotIndex{\the}
+% \DoNotIndex{\unitlength}
+% \DoNotIndex{\z@}
+%
+% ^^A\changes{0.3}{2004/01/04}{initial release}
+%
+% ^^A\MakeShortVerb{\+}
+% ^^A\DeleteShortVerb{\|}
+%
+% \newcommand*{\bs}{\char '134 }
+% \newcommand*{\lb}{\char '173 }
+% \newcommand*{\rb}{\char '175 }
+% \newcommand*{\param}[1]{\texttt{\textit{#1}}}
+% \newcommand*\lcd{\textLCD{3}|LCD|}
+%
+% \title{The \lcd\ Package\\alphanumerical LCDisplays with \LaTeX}
+% \author{Mike Kaufmann\\|Mike.Kaufmann@ei.fh-giessen.de|}
+% \date{\filedate~(v\fileversion)}
+% ^^A--------------------------------------------------------------------------
+% \maketitle
+% \begin{abstract}
+% The \lcd\ Package provides macros that display text which looks like on
+% alphanumerical LCDisplays.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% ^^A--------------------------------------------------------------------------
+% \newpage
+% \section{Introduction}
+% \subsection{Why this Package}\label{sec:why}
+% Without this package you can show the contents of an alphanumerical LCDisplay
+% with the typewriter font or you can take a picture and include it in your
+% document. The typewriter font doesn't provide all characters possible on an
+% LCD and perhaps a picture will need postprocessing.
+%
+% \begin{center}
+% \LCD{4}{40}+With the LCD package text appears like +
+% +on an alphanumerical LCDisplay (colors +
+% +are available) and you can easily define+
+% +your own symbols (5x7 dot matrix). +
+% \end{center}
+%
+% ^^A---------------------------------------------
+% \subsection{Making the Stylefile}
+% Because character with ASCII-codes greater then 127 are used in the
+% macro code, your TeX must be able to handle 8-bit ASCII to get a correct
+% stylefile!
+%
+% After generating the file lcd.sty search for the string ``|^^|'' (followed
+% by a hex-number). If you find it, you are in trouble.
+%
+% If you are using teTeX the command
+% \begin{verbatim}
+% tex --translate-file=cp8bit lcd.ins\end{verbatim}
+% ^^A\end{verbatim}
+% will work properly.
+%
+% Here a list of the hex-number--character pairs:\newline
+% |^^b5| $\to \mu$, |^^b0| $\to \;^\circ$, |^^b7| $\to \cdot$,
+% |^^e4| $\to$ \"a, |^^f6| $\to$ \"o, |^^fc| $\to$ \"u,
+% |^^df| $\to$ \ss.\newline
+% The list applies to Linux. There might be more trouble with other operating
+% systems. But in worst case only these characters will not work.
+%
+% ^^A---------------------------------------------
+% \subsection{Legal Stuff}
+% This program is provided under the terms of the
+% LaTeX Project Public License distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+%
+% ^^A--------------------------------------------------------------------------
+% \section{Using the Package}
+% \subsection{The main \protect\lcd\ Macros}\label{sec:mac}
+% \DescribeMacro\LCD
+% To show the contents of an alphanumerical LCDisplay the macro
+% \begin{center}
+% |\LCD{|\param{LCDlines}|}{|\param{LCDcolumns}|}|\meta{delimchar}\param{LCDtext}\meta{delimchar}\\
+% \ldots \meta{delimchar}\param{LCDtext}\meta{delimchar}
+% \end{center}
+% can be used.
+%
+% Here \param{LCDlines} is the number of lines you want to have. It has to be
+% at least one, which is tested and corrected if necessary, but without any
+% message or warning.
+%
+% The parameter \param{LCDcolumns} is the number of columns you want to have. It also
+% has to be at least one, but there is no test, message or warning jet.
+%
+% The numbers of lines and columns are not limited by the macro. But of course
+% there are limits by \TeX.
+%
+% The delimiter character \meta{delimchar} has to follow immediately after the
+% \param{LCDcolumns} parameter. It can be any character with catcode 11 or 12,
+% which means that active characters, a space and characters with a special
+% meaning to \TeX\ are not allowed. Of course \meta{delimchar} must not be part
+% of \param{LCDtext}.
+%
+% The opening \meta{delimchar} of one LCD-line can follow
+% immediately after the closing \meta{delimchar} of the line before. And there
+% can be spaces and/or newlines between these delimiters. Also text can be
+% there, but since it will be ignored it wouldn't make any sense.
+%
+% The \param{LCDtext} can consist of nearly any characters you can type, expect
+% of |\|, |{| and |}|. The braces are used to enclose so called multi-letter
+% characters, which are used to show symbols you can't type (e.g.\ |{clock}| to
+% get a clock symbol; see \ref{sec:pre} for more).
+%
+% The example in \ref{sec:why} was produced with
+% \begin{verbatim}
+% \LCD{4}{40}+With the LCD package text appears like +
+% +on an alphanumerical LCDisplay (colors +
+% +are available) and you can easily define+
+% +your own symbols (5x7 dot matrix). +\end{verbatim}
+% ^^A\end{verbatim}
+%
+% \DescribeMacro\textLCD
+% To put \param{LCDtext} in normal text the macro
+% \begin{center}
+% |\textLCD[|\param{LCDcorr}|]{|\param{LCDcolumns}|}|\meta{delimchar}\param{LCDtext}\meta{delimchar}
+% \end{center}
+% can be used.
+%
+% For \param{LCDcolumns}, \meta{delimchar} and \param{LCDtext} applies the same as
+% for these parameters in |\LCD|.
+%
+% The parameter \param{LCDcorr} is optional. It is used to reduce or enlarge
+% the space between the \param{LCDtext} and the surrounding normal text. The
+% default value ($-2$) fits for white backgrounded \param{LCDtext}. If you have
+% a background color the correct value is 0. It has to be a decimal number.
+%
+% \DescribeMacro\textLCDcorr
+% The default value is defined as the macro
+% |\textLCDcorr|. If you want to change the default value globaly, you can
+% redefine this macro in the preamble by typing
+% |\renewcommand{\textLCDcorr}{|\param{newdefault}|}| where \param{newdefault}
+% must be only a decimal number.
+%
+% ^^A---------------------------------------------
+% \subsection{Restrictions}
+% There are some restrictions you have to remember when using the \lcd\ package.
+% Ignoring them will lead to strange behavior or strange error messages.
+% And there are no package errors or package warnings jet. Here are the
+% restrictions:
+%
+% \begin{itemize}
+% \item There have to be exactly the number of LCD-lines given in the
+% \param{LCDlines}-Parameter. Lines that are too much will be printed as
+% normal text including the delimiter characters. If there are not enough
+% lines, you'll get a ``Runaway argument'' error or other strange things.
+% \item After a multi-letter character there have to be at least one other
+% charater, otherwise you'll get the word instead of the symbol
+% (e.g.\ the word ``clock'' and not the clock symbol). If a multi-letter
+% character is the last one in the line, just type a space after it.
+% \item The number of characters in a line is not tested. If there are too many
+% characters, they will be drawn over the right end.
+% \item It is not possible to place comments between the LCD-lines, the \%-sign
+% will be ignored there and in \param{LCDtext} it is a normal character.
+% \item There can't be a linebreak in \param{LCDtext} when using |\textLDC|.
+% \item You can't use the |\LCD| and |\textLCD| macro in other macros or as
+% parameter to a macro. Well, if the LCD-text only consists of letters,
+% digits and some other characters it would work. But a space, active
+% characters and characters with a special meaning to \TeX\ (all
+% characters with other catcodes than 11 or 12) wouldn't work. If you want
+% to use |\textLCD| in sectioning commands or in captions, you have to
+% |\protect| it.
+% \item You can't use the |\LCD| and |\textLCD| macro in boxes like |\parbox|,
+% |\raisebox| or |\makebox| (with the same exceptions as to the point
+% above). But you can use it in environments like |minipage| or |figure|.
+% \end{itemize}
+%
+% ^^A---------------------------------------------
+% \subsection{Size}\label{sec:size}
+% \DescribeMacro\LCDunitlength
+% To specify the absolte size of the LCD representation you have to set the length
+% |\LCDunitlength|. It represents the width of a dot plus the gap between the
+% dots. The default value is 0.5\,mm.
+%
+% For |\textLCD| the size is calculated automaticly so that the height of
+% \param{LCDtext} and the surrounding text fits. This does not affect
+% |\LCDunitlength|.
+%
+% ^^A---------------------------------------------
+% \subsection{Frames}\label{sec:frame}
+% \DescribeMacro\LCDnoframe
+% \DescribeMacro\LCDframe
+% By default a frame is drawn around the LCD representation. You can change this
+% behavior with the macro
+% |\LCDnoframe| in the preamble or befor the |\LCD| command. With
+% |\LCDframe| you can switch back to the default. Note that with |\textLCD|
+% there will never be a frame for typographical reasons.
+%
+% ^^A---------------------------------------------
+% \subsection{Using Colors}\label{sec:color}
+% \DescribeMacro\LCDcolors
+% To use colors you need the color package and you have to define foreground,
+% background and frame colors. The latter because the \lcd\ package only handles
+% named colors. After that you can set the colors with
+% \begin{center}
+% |\LCDcolors[|\param{framecolor}|]{|\param{foregroundcolor}|}{|\param{backgroundcolor}|}|.
+% \end{center}
+% This can be done in the preamble or befor the |\LCD| or |\textLCD| command.
+% The parameter \param{framecolor} is optional and the frame color will be set
+% to black if it is not given. The default colors where set with
+% |\LCDcolors{black}{white}|.
+%
+% ^^A---------------------------------------------
+% \subsection{Predefined Characters}\label{sec:pre}
+% Of course all letters (A--Z and a--z), digits (0--9) and the characters
+% ! ' ( ) * + , - . / : ; $<$ = $>$ ? [ ] ` and $\vert$ are predefined.
+% You can also type \$ \# $\mu$ $^\circ$ $\cdot$ \"a \"o \"u \ss\ " \% \&
+% \^\ and \_ dircetly. The character \~\ will be shown as a space.
+%
+% Some characters are available as multi-letter characters.
+% These are a clock symbol (|{clock}|), a right arrow (|{rarrow}|), a left arrow
+% (|{larrow}|), $\Omega$ (|{Omega}|), $\Sigma$ (|{Sigma}|), $\pi$ (|{pi}|),
+% a square root symbol (|{sqrt}|), a rectangle (|{rect}|),
+% a full cursor (|{fcur}|), \{ (|{lb}|), \} (|{rb}|) and $\alpha$ (|{alpha}|).
+%
+% ^^A---------------------------------------------
+% \subsection{Defining new Characters}\label{sec:def}
+% \DescribeMacro\DefineLCDchar
+% New characters can be defined with
+% |\DefineLCDchar{|\param{char}|}{|\param{charmatrix}|}|.
+%
+% Here \param{char} can be a single character or multiple letters. Note
+% that characters with catcodes other than 11 or 12 (characters that are
+% control sequences or have a special meaning to \TeX) will cause troubble.
+% Use mutiple letters instead.
+%
+% LCD characters are shown as a $5\times7$ dot matrix. Other matrix dimensions
+% are not possible. So in \param{charmatrix} you have to type exactly 35
+% times |0| or |1|, the ones are for visible dots. The first five ar for the
+% first dot row, the next five are for the second dot row and so on.
+%
+% As example, lets define an Euro symbol:
+%
+% \begin{figure}[htbp]
+% \centering
+% \unitlength2mm
+% \begin{picture}(54,10)
+% \put(0,8){\makebox(0,0)[bl]{
+% \texttt{\bs DefineLCDchar\lb euro\rb\lb00111010001111101000111110100000111\rb}}}
+% \put(5.5,6.5){\line(1,0){16.7}}\put(22.2,6.5){\line(0,1){1}}\put(20.2,7.5){\line(1,0){4}}
+% \put(5.5,5.5){\line(1,0){21.4}}\put(26.9,5.5){\line(0,1){2}}\put(24.9,7.5){\line(1,0){4}}
+% \put(5.5,4.5){\line(1,0){26.1}}\put(31.6,4.5){\line(0,1){3}}\put(29.5,7.5){\line(1,0){4}}
+% \put(5.5,3.5){\line(1,0){30.8}}\put(36.3,3.5){\line(0,1){4}}\put(34.3,7.5){\line(1,0){4}}
+% \put(5.5,2.5){\line(1,0){35.5}}\put(41.0,2.5){\line(0,1){5}}\put(39.0,7.5){\line(1,0){4}}
+% \put(5.5,1.5){\line(1,0){40.2}}\put(45.7,1.5){\line(0,1){6}}\put(43.7,7.5){\line(1,0){4}}
+% \put(5.5,0.5){\line(1,0){44.9}}\put(50.4,0.5){\line(0,1){7}}\put(48.4,7.5){\line(1,0){4}}
+% \multiput(0,0)(1,0){6}{\line(0,1){7}}
+% \multiput(0,0)(0,1){8}{\line(1,0){5}}
+% \linethickness{0.7\unitlength}
+% \put(2,6.35){\line(1,0){0.7}}
+% \put(3,6.35){\line(1,0){0.7}}
+% \put(4,6.35){\line(1,0){0.7}}
+% \put(1,5.35){\line(1,0){0.7}}
+% \put(0,4.35){\line(1,0){0.7}}
+% \put(1,4.35){\line(1,0){0.7}}
+% \put(2,4.35){\line(1,0){0.7}}
+% \put(3,4.35){\line(1,0){0.7}}
+% \put(4,4.35){\line(1,0){0.7}}
+% \put(1,3.35){\line(1,0){0.7}}
+% \put(0,2.35){\line(1,0){0.7}}
+% \put(1,2.35){\line(1,0){0.7}}
+% \put(2,2.35){\line(1,0){0.7}}
+% \put(3,2.35){\line(1,0){0.7}}
+% \put(4,2.35){\line(1,0){0.7}}
+% \put(1,1.35){\line(1,0){0.7}}
+% \put(2,0.35){\line(1,0){0.7}}
+% \put(3,0.35){\line(1,0){0.7}}
+% \put(4,0.35){\line(1,0){0.7}}
+% \end{picture}
+% \caption{Defining a new Character}
+% \end{figure}
+%
+% ^^A---------------------------------------------
+% \subsection{Package Options}
+% Only for completeness: there are no package options in this version.
+%
+% ^^A--------------------------------------------------------------------------
+% \StopEventually{\newpage\PrintIndex \PrintChanges}
+%
+% ^^A--------------------------------------------------------------------------
+% \newpage
+% \section{The Code}
+% \subsection{The Usual}
+% First the usual things.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[2001/06/01]
+\ProvidesPackage{lcd}[\filedate\space
+ v\fileversion\space drawing alphanumerical LCDisplays]
+% \end{macrocode}
+%
+% ^^A---------------------------------------------
+% \subsection{Defining Characters and predefined Characters}
+% \begin{macro}{\DefineLCDchar}
+% The macro |\DefineLCDchar| defines a macro |\@LCD@|\param{char} for every
+% character.
+% \begin{macrocode}
+\newcommand*\DefineLCDchar[2]{%
+ \global\expandafter\def\csname @LCD@#1\endcsname{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \noindent
+% Here are the predefined characters.
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+%
+% \noindent
+% And the predefined multi-letter characters.
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+%
+% \noindent
+% The next characters normaly can't be typed dirctly, so the catcodes are
+% changed before defining them.
+% \begin{macrocode}
+\begingroup
+\catcode`\~=11 \catcode`\$=11 \catcode`\µ=11 \catcode`\°=11
+\catcode`\·=11 \catcode`\ä=11 \catcode`\ö=11 \catcode`\ü=11
+\catcode`\ß=11 \catcode`\"=11 \catcode`\#=11 \catcode`\&=11
+\catcode`\^=11 \catcode`\_=11
+\DefineLCDchar{$}{00100011111010001110001011111000100}%$
+\DefineLCDchar{#}{01010010101111101010111110101001010}
+\DefineLCDchar{µ}{00000100011000110001100111110110000}
+\DefineLCDchar{°}{11100101001110000000000000000000000}
+\DefineLCDchar{·}{00000000000000001100011000000000000}
+\DefineLCDchar{ä}{01010000000111000001011111000101111}
+\DefineLCDchar{ö}{01010000000111010001100011000101110}
+\DefineLCDchar{ü}{01010000001000110001100011001101101}
+\DefineLCDchar{ß}{00000011101000111110100011111010000}
+\DefineLCDchar{"}{01010010100101000000000000000000000}
+\DefineLCDchar{&}{01100100101010001000101011001011101}
+\DefineLCDchar{^}{00100010101000100000000000000000000}
+\DefineLCDchar{_}{00000000000000000000000000000011111}
+\DefineLCDchar{~}{00000000000000000000000000000000000}
+\catcode`\%=11
+\DefineLCDchar{%}{11000110010001000100010001001100011}
+\endgroup
+% \end{macrocode}
+%
+% ^^A---------------------------------------------
+% \subsection{Registers needed}
+% \begin{macro}{\LCDunitlength}
+% The dimen |\LCDunitlength| is described in \ref{sec:size}.
+% \begin{macrocode}
+\newlength\LCDunitlength
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@@LCDdotx}
+% The counter |\c@@LCDdotx| is used to calculate and hold the horizontal
+% position of the actual dot.
+% \begin{macrocode}
+\newcounter{@LCDdotx}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@@LCDdoty}
+% The counter |\c@@LCDdoty| is used to calculate and hold the vertical
+% position of the actual dot.
+% \begin{macrocode}
+\newcounter{@LCDdoty}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@@LCDchrx}
+% The counter |\c@@LCDchrx| holds the number of the actual character in a line,
+% beginning with zero.
+% \begin{macrocode}
+\newcounter{@LCDchrx}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@@LCDlines}
+% The counter |\c@@LCDlines| is used to check the number of lines and after
+% that the number of lines left to do is counted down there.
+% \begin{macrocode}
+\newcounter{@LCDlines}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@@LCDlower}
+% The counter |\c@@LCDlower| is used to lower the LCD contents in normal text.
+% For |\LCD| it is set to zero, which means the contents isn't lowered. For
+% |\textLCD| it is set to two, so the baselines of LCD contents and surrounding
+% text will fit.
+% \begin{macrocode}
+\newcounter{@LCDlower}
+% \end{macrocode}
+% \end{macro}
+%
+% ^^A---------------------------------------------
+% \subsection{Setups and Defaults}
+% \begin{macro}{\LCDframe}
+% \begin{macro}{\@LCDbox}
+% The macro |\LCDframe| (see \ref{sec:frame}) sets the internal macro
+% |\@LCDbox| to |\framebox|, so frames will be drawn.
+% \begin{macrocode}
+\newcommand*\LCDframe{\let\@LCDbox\framebox}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\LCDnoframe}
+% \begin{macro}{\@LCDbox}
+% The macro |\LCDnoframe| (see \ref{sec:frame}) sets the internal macro
+% |\@LCDbox| to |\makebox|, so frames will not be drawn.
+% \begin{macrocode}
+\newcommand*\LCDnoframe{\let\@LCDbox\makebox}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\LCDcolors}
+% \begin{macro}{\@LCDfr}
+% \begin{macro}{\@LCDfg}
+% \begin{macro}{\@LCDbg}
+% The macro |\LCDcolors| (see \ref{sec:color}) defines three internal macros.
+% |\@LCDfr| will be the framecolor, |\@LCDfg| will be the foregroundcolor and
+% |\@LCDbg| will be the backgroundcolor.
+% \begin{macrocode}
+\newcommand*\LCDcolors[3][black]{%
+ \def\@LCDfr{#1}\def\@LCDfg{#2}\def\@LCDbg{#3}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \noindent
+% And now setting up the defaults.
+% \begin{macrocode}
+\setlength\LCDunitlength{0.5mm}
+\LCDframe
+\LCDcolors{black}{white}
+% \end{macrocode}
+%
+% \noindent
+% If the color package is not loaded the macros |\color| and |\colorbox| are
+% defined, because they are used in |\@LCDstart|.
+% \begin{macrocode}
+\AtBeginDocument{
+ \@ifundefined{color}{\def\color#1{}}{}
+ \@ifundefined{colorbox}{\def\colorbox#1#2{#2}}{}}
+% \end{macrocode}
+%
+% ^^A---------------------------------------------
+% \subsection{Drawing}
+% \begin{macro}{\@DrawLCDDot}
+% The macro |\@DrawLCDDot| draws a single dot of a character.
+% \begin{macrocode}
+\newcommand*\@DrawLCDDot{%
+ \put(\the\c@@LCDdotx,\the\c@@LCDdoty.35){\line(1,0){0.7}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@DrawLCDRow}
+% The macro |\@DrawLCDRow| draws one dot line of a character. The parameters
+% are five zeros or ones from the character matrix (see \ref{sec:def}).
+% \begin{macrocode}
+\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}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@DrawLCDRows}
+% The macro |\@DrawLCDRows| draws all seven dot rows of a character. It is
+% first called with the complete character matrix (see \ref{sec:def}). The
+% first five zeros or ones will be the parameters |#1| to |#5|, which are passed
+% to |\@DrawLCDRow|. The parameter |#6| takes the rest of the character matrix.
+% |\@DrawLCDRows| is called recursively until the whole matrix is processed.
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@DrawLCDchar}
+% At first in |\@DrawLCDchar| the position of the upper left dot of the
+% character is calculated. Then |\@DrawLCDRows| is called with the already
+% expanded character matrix. The parameters are the position of the character
+% in x- (|#1|) and y-direction (|#2|) and the character to draw (|#3|). Note:
+% the positions of the characters are beginning with 0,0 in the lower left
+% corner.
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@DrawLCDchars}
+% The macro |\@DrawLCDchars| draws all characters of a LCD-line. First spaces
+% are skiped. In |\c@@LCDchrx| the characters x-position is counted (beginning
+% with zero). |\@DrawLCDchars| is first called with the line positon (zero for
+% the lowest line) as parameter |#1| and the whole line text. Here the first
+% character becomes parameter |#2| and the rest parameter |#3|.
+% |\@DrawLCDchars| is called recursively with the line positon and the rest of
+% the line text until all characters are processed.
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@DrawLCDLine}
+% In |\@DrawLCDLine| |\c@@LCDchrx| is set to zero and the initial call of
+% |\@DrawLCDchars| is done, but only if |#2| is not empty. The parameters
+% are the line position (|#1|) and the
+% complete line text (|#2|).
+% \begin{macrocode}
+\newcommand*\@DrawLCDLine[2]{%
+ \def\@tempa{#2}\ifx\@tempa\@empty\else
+ \setcounter{@LCDchrx}{0}%
+ \@DrawLCDchars{#1}#2\@@end\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% ^^A---------------------------------------------
+% \subsection{Help Macros}
+% \begin{macro}{\if@textLCD}
+% \begin{macro}{\@textLCDtrue}
+% \begin{macro}{\@textLCDfalse}
+% In |\textLCD| the picture height is reduced by the height of the upper
+% border, otherwise there would be extra space over the actual line. But
+% the height of the box for colored background must not be reduced.
+% The boolean |\if@textLCD| is needed to distinguish if the background box
+% has to be corrected or not.
+% \begin{macrocode}
+\newif\if@textLCD
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@LCDstart}
+% The macro |\@LCDstart| starts the picture environment, sets the colors,
+% draws the frame if wanted and fixes the height of the bachground box
+% if necessary.
+% \begin{macrocode}
+\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}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@LCDend}
+% The macro |\@LCDend| only ends the picture environment.
+% \begin{macrocode}
+\newcommand*\@LCDend{\end{picture}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\do@LCDspecials}
+% The macro |\do@LCDspecials| sets new catcodes for the characters that
+% normaly can't be typed dirctly.
+% \begin{macrocode}
+\newcommand*\do@LCDspecials{%
+ \catcode`\~=11 \catcode`\$=11 \catcode`\µ=11 \catcode`\°=11
+ \catcode`\·=11 \catcode`\ä=11 \catcode`\ö=11 \catcode`\ü=11
+ \catcode`\ß=11 \catcode`\"=11 \catcode`\&=11 \catcode`\#=11
+ \catcode`\^=11 \catcode`\_=11 \catcode`\%=11 \obeyspaces}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\calc@LCDsize}
+% In |\calc@LCDsize| only the size of the picture environment is calculated.
+% \begin{macrocode}
+\newcommand*\calc@LCDsize[2]{\@tempcnta#1\multiply\@tempcnta10\relax
+ \@tempcntb#2\multiply\@tempcntb6\advance\@tempcntb2\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% ^^A---------------------------------------------
+% \subsection{The Main Macros}
+% \begin{macro}{\textLCDcorr}
+% The macro |\textLCDcorr| provides the ability to change the default of the
+% first parameter of |\textLCD| to the user. Here it is defined to be the value
+% needed for white background.
+% \begin{macrocode}
+\newcommand*\textLCDcorr{-2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textLCD}
+% Everything in |\textLCD| is done within a group (ended in |\@textLCD|), so
+% changes to registers, macros and catcodes are local. The parameters |#1| and
+% |#2| are described in \ref{sec:mac}. Parameter |#3| takes the first
+% \meta{delimchar}, needed to define |\@textLCD|.
+%
+% First, some setups are done here and |\LCDunitlength| is calculated so that
+% the height of \param{LCDtext} fits to the surrounding text.
+% \begin{macrocode}
+\newcommand*\textLCD[3][\textLCDcorr]{\begingroup
+ \LCDnoframe\settoheight{\LCDunitlength}{M}%
+ \setlength{\LCDunitlength}{0.146342\LCDunitlength}%
+ \setcounter{@LCDlower}{2}\setcounter{@LCDlines}{1}%
+% \end{macrocode}
+% The first |\hspace| corrects the space before \param{LCDtext}, which will
+% always be to large without it. The second and the one at the end of
+% |\@textLCD| are needed to shrink the spaces around \param{LCDtext} if the
+% background color is white.
+% \begin{macrocode}
+ \hspace{-.25em}\hspace{#1\LCDunitlength}%
+% \end{macrocode}
+% After calculating the picture size its height is reduced to prevent wrong
+% linespacing.
+% \begin{macrocode}
+ \calc@LCDsize{1}{#2}\advance\@tempcnta-2\@textLCDtrue\do@LCDspecials
+% \end{macrocode}
+% \begin{macro}{\@textLCD}
+% Now |\@textLCD| can be defined so that the \meta{delimchar} (|#3|) denotes
+% the end of its parameter which is taken as \param{LCDtext}. The macro is
+% called at the very end of |\textLCD|, so its parameter begins with the first
+% character after the leading \meta{delimchar}.
+% \begin{macrocode}
+ \def\@textLCD##1#3{\@LCDstart
+ \@DrawLCDLine{0}{##1}\@LCDend\hspace{#1\LCDunitlength}\endgroup}
+ \@textLCD}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\LCD}
+% Also in |\LCD| everything is done within a group (ended in |\@LCDlast|) to
+% keep changes to registers, macros and catcodes local, which are done for
+% setup.
+%
+% The parameters |#1| and |#2| are described in \ref{sec:mac}. Parameter |#3|
+% takes the first \meta{delimchar}, needed to define |\@LCD| and |\@LCDlast|.
+% \begin{macrocode}
+\newcommand*\LCD[3]{\begingroup
+ \setcounter{@LCDlower}{0}\setcounter{@LCDlines}{#1}%
+% \end{macrocode}
+% Here the number of lines given is tested and corrected if necessary (and
+% other setups are done).
+% \begin{macrocode}
+ \ifnum\c@@LCDlines<1\setcounter{@LCDlines}{1}\fi
+ \calc@LCDsize{\c@@LCDlines}{#2}\@textLCDfalse\do@LCDspecials
+% \end{macrocode}
+% \begin{macro}{\@LCDlast}
+% Now |\@LCDlast| is defined so that the \meta{delimchar} (|#3|) denotes the
+% end of its parameter which is taken as \param{LCDtext}. It only handles the
+% last line.
+% \begin{macrocode}
+ \def\@LCDlast##1#3{\@DrawLCDLine{0}{##1}\@LCDend\endgroup}
+% \end{macrocode}
+% \begin{macro}{\@LCD}
+% The macro |\@LCD| handles all lines expect the last. The number of lines left
+% to do are counted down here. Parameter |##1| is taken as \param{LCDtext},
+% parameter |##2| takes everything between the ending \meta{delimchar} of an
+% LCD-line and the leading one of the next. Because |##2| is not used, things
+% between two LCD-lines are ignored. Note: due to the fact that |%| is catcoded
+% to 11 when calling |\@LCD|, comments are not possible.
+% \begin{macrocode}
+ \def\@LCD##1#3##2#3{%
+ \addtocounter{@LCDlines}{-1}\@DrawLCDLine{\c@@LCDlines}{##1}
+% \end{macrocode}
+% \begin{macro}{\@LCDnext}
+% If there is more then one line to process |\@LCDnext| is set to |\@LCD|,
+% else to |\@LCDlast|.
+% \begin{macrocode}
+ \ifnum\c@@LCDlines>1\let\@LCDnext\@LCD\else
+ \let\@LCDnext\@LCDlast\fi\@LCDnext}
+% \end{macrocode}
+% \begin{macro}{\@LCDnext}
+% Here |\@LCDnext| is set the first time. It's called at the very end of |\LCD|,
+% so the (first) parameter of |\@LCD| or |\@LCDlast| begins with the first
+% character after the leading \meta{delimchar}.
+% \begin{macrocode}
+ \ifnum\c@@LCDlines>1\let\@LCDnext\@LCD\else\let\@LCDnext\@LCDlast\fi
+ \@LCDstart\@LCDnext}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \Finale\endinput
+%</package>
+% ^^A Now the source of the example
+%<*example>
+\documentclass[a4paper]{article}
+\usepackage[latin1]{inputenc}
+\usepackage{color}
+\usepackage{lcd}
+
+\parindent0pt
+\parskip1ex plus.3ex minus.2ex
+\pagestyle{empty}
+
+\newcommand\lcd{\textLCD{3}|LCD|}
+\newcommand\bs{\char '134 }
+\definecolor{lightgreen}{rgb}{0.05,0.97,0.55}
+\definecolor{darkgreen}{rgb}{0.22,0.26,0.19}
+\definecolor{lightblue}{rgb}{0.9,0.91,0.99}
+\definecolor{darkblue}{rgb}{0.14,0.2,0.66}
+\definecolor{lightred}{rgb}{1.0,0.27,0.37}
+\definecolor{darkred}{rgb}{0.37,0.14,0.18}
+
+\DefineLCDchar{euro}{00111010001111101000111110100000111}
+
+\begin{document}
+\centerline{\textbf{\LARGE Some Examples for the \lcd\ package.\footnote{The
+source of this example file is part of \texttt{lcd.dtx}.}}}
+
+As seen in the headline and here, the \lcd\ package calculates the size for
+LCD-text in normal text (\verb|\textLCD|) automaticly. It works for all
+fontsizes:
+
+\begin{center}
+{\tiny MM M \lcd\ M MM tiny}\hfill{\Huge Huge MM M \lcd\ M MM}
+
+{\scriptsize MM M \lcd\ M MM scriptsize}\hfill{\huge huge MM M \lcd\ M MM}
+
+{\footnotesize MM M \lcd\ M MM footnotesize}\hfill{\LARGE LARGE MM M \lcd\ M MM}
+
+{\small MM M \lcd\ M MM small}\hfill{\Large Large MM M \lcd\ M MM}
+
+{\normalsize MM M \lcd\ M MM normalsize}\hfill{\large large MM M \lcd\ M MM}
+\end{center}
+
+Now let's have some colored
+\LCDcolors{darkgreen}{lightgreen}\textLCD[0]{8}|LCD-text|.
+Here first the colors where set with
+\verb|\LCDcolors{darkgreen}{lightgreen}|\footnote{The color names where
+defined with \texttt{\bs definecolor} from the \textsf{color} package in the
+preamble.}
+and then the LCD-text where done with \verb+\textLCD[0]{8}|LCD-text|+.
+To invert the LCD, just exchange the
+\LCDcolors{lightgreen}{darkgreen}\textLCD[0]{6}|colors|
+(\verb|\LCDcolors{lightgreen}{darkgreen}|).
+
+\begin{minipage}[t]{.5\textwidth}
+Now some seperate LCD representations. But first let's change the colors
+to some not as ugly. The LCD was generated with
+\begin{verbatim}
+\LCD{4}{18}|LCD representation|
+ |made with the LCD |
+ |package for LaTeX |
+ |04.01.2004 {clock} 18:23|
+\end{verbatim}
+\end{minipage}
+\hspace{\fill}
+\begin{minipage}[t]{.46\textwidth}
+\mbox{}
+
+\LCDcolors{darkblue}{lightblue}%
+\LCD{4}{18}|LCD representation|
+ |made with the LCD |
+ |package for LaTeX |
+ |04.01.2004 {clock} 18:23|
+\end{minipage}
+
+The \verb|{clock}| is a so called multi-letter character. It generates the
+clock symbol.
+
+As you can see, there is a black colored frame around it. The frame color
+can be changed with the optional first argument of \verb|\LCDcolors|
+(\verb|\LCDcolors[red]|\ldots; left part of figure 1). And
+with \verb|\LCDnoframe| you can disable frames (reenabled with
+\verb|\LCDframe|; right part of figure 1).
+Of course \verb|\LCD| works within a figure environment.
+
+\begin{figure}[h]
+\LCDcolors[red]{darkblue}{lightblue}%
+\LCD{4}{18}|LCD representation|
+ |made with the LCD |
+ |package for LaTeX |
+ |04.01.2004 {clock} 18:45|
+\hspace{\fill}\LCDnoframe
+\LCD{4}{18}|LCD representation|
+ |made with the LCD |
+ |package for LaTeX |
+ |04.01.2004 {clock} 18:47|
+\caption{Example with red colored frame and without frame}
+\end{figure}
+
+\LCDcolors[lightgreen]{lightred}{darkred}\LCDframe
+\LCD{2}{36}|For more information please refer to|
+ |the documentation! |
+\end{document}
+%</example>
diff --git a/Master/texmf-dist/source/latex/lcd/lcd.ins b/Master/texmf-dist/source/latex/lcd/lcd.ins
new file mode 100644
index 00000000000..9c595c4b10a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/lcd/lcd.ins
@@ -0,0 +1,67 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% 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
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+
+\input docstrip.tex
+
+% some macros for conditional generation of example files
+\newif\ifaskforexample
+\newif\ifgenerateexample
+\generateexampletrue
+\askforexampletrue
+% \generateexample \askforexample then
+% true false generate example
+% true true ask and generate only if answer is y/yes
+% false don' care do not generate
+\def\generateExample#1{%
+ \ifgenerateexample
+ \ifaskforexample
+ \Ask\answer{^^JThere is an example file in \jobname.dtx.^^JGenerate it? [y/n]}
+ \ifx\answer\y \generate{#1}\else
+ \ifx\answer\yes \generate{#1}\fi\fi
+ \else\generate{#1}\fi\fi}
+
+\preamble
+
+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
+
+\endpreamble
+
+\generate{\file{lcd.sty}{\from{lcd.dtx}{package}}}
+\generateExample{\file{example.tex}{\from{lcd.dtx}{example}}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space lcd.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* `.dtx' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+
+
+\endbatchfile