%%
%% This is file `lhelp.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% lhelp.dtx  (with options: `package')
%% 
%% File: lhelp.dtx
%% Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2003,
%%               2004 Volker Kuhlmann
%% All rights are reserved.
%%
\def\packagedate{2004/07/13}
\def\packageversion{2.1}
\def\packagesummary{collection of little helpers (VK)}
\edef\packageinfo{\packagedate\space v\packageversion\space\space\packagesummary}
\typeout{Package: lhelp \packageinfo}
\NeedsTeXFormat{LaTeX2e}[1998/06/01]
\ProvidesPackage{lhelp}
        [\packageinfo]
%%
%% \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         \~}
%%
\DeclareOption{unitxspace}{%
  \def\lhelpxspace{\xspace}%
}
\newcommand\lunitbox[1]{\mbox{\,#1}\lhelpxspace}
\newcommand\luunitbox[1]{\mbox{\muunit #1}\lhelpxspace}
\newcommand\muunit{\@ifundefined{textmu}{\kern.05em\ensuremath{\mu}}{\,\textmu}}
\let\lhelpxspace\relax
\DeclareOption{unitbasic}{%
  \newcommand\g{\,g\lhelpxspace}
  \newcommand\kg{\,kg\lhelpxspace}
  \newcommand\mm{\,mm\lhelpxspace}
  \newcommand\mum{\luunitbox{m}}% micro-metre
  \newcommand\cm{\,cm\lhelpxspace}
  \newcommand\m{\,m\lhelpxspace}
  \newcommand\ml{\mL\lhelpxspace}
  \newcommand\mL{\,mL\lhelpxspace}
  \newcommand\ns{\,ns\lhelpxspace}
  \newcommand\mus{\luunitbox{s}}% micro-seconds
  \newcommand\ms{\,ms\lhelpxspace}
  \newcommand\s{\,s\lhelpxspace}
  \newcommand\h{\,h\lhelpxspace}
}
\DeclareOption{unitBasic}{%
  %\ExecuteOptions{unitbasic}
  \renewcommand\l{\,L\lhelpxspace}
  \renewcommand\L{\,L\lhelpxspace}
  \renewcommand\min{\,min\lhelpxspace}
}
\DeclareOption{unittemp}{%
  \newcommand\degree@temperature{\ensuremath{^\circ}}
  \providecommand\degree{\degree@temperature\lhelpxspace}
  \providecommand\Degree{\degree@temperature\lhelpxspace}
  \newcommand\celsius{\mbox{\degree@temperature\kern-.05em C}\lhelpxspace}
  \newcommand\fahren{\mbox{\degree@temperature F}\lhelpxspace}
}
\DeclareOption{unitelec}{%
  \newcommand\muA{\luunitbox{A}}
  \newcommand\muH{\luunitbox{H}}
  \newcommand\muV{\luunitbox{V}}
  \newcommand\muW{\luunitbox{W}}
  \providecommand\ohm{\lunitbox{$\Omega$}}
  \newcommand\kohm{\mbox{k}\ohm}
  \newcommand\Mohm{\mbox{M}\ohm}
  \newcommand\ac{\textsubscript{ac}\lhelpxspace}
  \newcommand\dc{\textsubscript{dc}\lhelpxspace}
  \newcommand\rms{\textsubscript{rms}\lhelpxspace}
  \newcommand\Vac{\lunitbox{V\kern-.16em\ac}}
  \newcommand\Vdc{\lunitbox{V\kern-.16em\dc}}
  \newcommand\VLL{\lunitbox{V\kern-.16em\textsubscript{LL}}}
  \newcommand\kVLL{\lunitbox{V\kern-.16em\textsubscript{LL}}}
}
\DeclareOption{units}{%
  \ExecuteOptions{unitbasic,unitBasic,unittemp,unitelec}%
}
\DeclareOption{page}{%
  \ifx\setpapersize\undefined\else
    \lhelp@paper
    \setmarginsrb{30mm}{20mm}{25mm}{10mm}{0pt}{0mm}{}{10mm}
  \fi
  \lhelp@pars
}
\DeclareOption{emptypage}{%
  \ifx\setpapersize\undefined
    \pagestyle{empty}%
  \else
    \lhelp@paper
    \setmargnohfrb{30mm}{20mm}{25mm}{10mm}
  \fi
  \lhelp@pars
}
\newcommand\lhelp@paper{%
  \typeout{Package lhelp: setting paper size and margins.}
  \setpapersize{A4}
}
\newcommand\lhelp@pars{%
  \columnsep 8mm
  \parskip 2ex \@plus0.5ex \@minus0.5ex
  \parindent \z@
}
\newcommand\draftmark@select{%
  \PackageWarning{lhelp}{DRAFT mark selected}%
  \pagestyle{plain}%
}
\DeclareOption{draftmark}{%
  \newcommand\@draft@odd{\llap{\hbox{\draftfont{\today\ \ \draftname}}}}
  \newcommand\@draft@even{\rlap{\hbox{\draftfont{\draftname\ \ \today}}}}
  \newcommand\@psdraft@empty{%
    \def\@oddfoot{\reset@font\hfil\hfil\@draft@odd}%
    \def\@evenfoot{\reset@font\@draft@even\hfil\hfil}}
  \newcommand\@psdraft@plain{%
    \def\@oddfoot{\reset@font\hfil\thepage\hfil\@draft@odd}%
    \def\@evenfoot{\reset@font\@draft@even\hfil\thepage\hfil}}
  \add@toks\ps@empty\@psdraft@empty
  \add@toks\ps@plain\@psdraft@plain
  %\add@toks\ps@headings\@psdraft@plain
  %(should be odd foot of pagestyle empty, even foot of pagestyle plain)
  \let\lhelp@o@ps@headings\ps@headings
  \def\ps@headings{\lhelp@o@ps@headings\@psdraft@plain}%
  \draftmark@select
}
\newtoks\lhelp@toks
\newcommand\add@toks[2]{%
  \expandafter\lhelp@toks\expandafter{#1}%
  \expandafter\def\expandafter#1\expandafter{\the\lhelp@toks #2}}
\providecommand\draftname{DRAFT}
\newcommand\draftfont{\textsf}
\newcommand\draftmark@watermark{%
  \newcommand\putdraftmarkps{%
    \placepos{.2\textwidth}{.8\textheight}{\rotatebox{65}{%
      \fontfamily{phv}\fontsize{.2\textheight}\z@\selectfont
      \color{draftgray}\draftname}}}
  \@ifundefined{rotatebox}{\AtEndOfPackage{\RequirePackage{graphics}}}{}
  \@ifundefined{color}{\AtEndOfPackage{\RequirePackage{color}}}{}
  \AtEndOfPackage{\definecolor{draftgray}{gray}{0.9}}  %0.955, 0.93
  \def\ps@plain{\let\@mkboth\@gobbletwo
    \def\@oddhead{\putdraftmarkps\hfil}\let\@evenhead\@oddhead}
  \let\ps@empty\ps@plain
  \let\ps@h@old\ps@headings \def\ps@headings{\ps@h@old
    \def\@oddhead{\putdraftmarkps{\slshape\rightmark}\hfil\thepage}%
    \def\@evenhead{\putdraftmarkps\thepage\hfil\slshape\leftmark}}%
  \let\draftmark@watermark\empty
  \draftmark@select
}
\DeclareOption{draftmarkps}{%
  \draftmark@watermark
  \csname ds@draftmark\endcsname  % = \ExecuteOptions{draftmark}
}
\DeclareOption{draftmarkpsonly}{%
  \draftmark@watermark
}
\DeclareOption{epsdraft}{\def\EPSopt{draft}}
\DeclareOption{epspdf}{%
  \@ifundefined{pdfpagewidth}{\def\EPSfileext{.eps}}{\def\EPSfileext{.pdf}}}
\DeclareOption{refshortcuts}{%
  \newcommand\cref{chapter~\ref}
  \newcommand\Cref{Chapter~\ref}
  \newcommand\sref{section~\ref}
  \newcommand\Sref{Section~\ref}
  \newcommand\aref{appendix~\ref}
  \newcommand\Aref{Appendix~\ref}
  \newcommand\fref{figure~\ref}
  \newcommand\Fref{Figure~\ref}
  \newcommand\tref{table~\ref}
  \newcommand\Tref{Table~\ref}
  \newcommand\pgref{page~\pageref}
  \newcommand\Pgref{Page~\pageref}
  \providecommand\phref{photo~\ref}
  \providecommand\Phref{Photo~\ref}
}
\DeclareOption{printnotes}{%
  \printnotestrue
}
\newif\ifprintnotes
\DeclareOption{ddmonthyyyy}{%
  \providecommand\month@english{%
    \ifcase \month \or January\or February\or March\or
    April\or May\or June\or July\or August\or September\or
    October\or November\or December\fi}
  \newcommand\ddmonthyyyy{\number\day\space
    \month@english\space \number\year}%
  \AtBeginDocument{\let\today=\ddmonthyyyy}
}
\DeclareOption{yyyymmdd}{%
  \AtBeginDocument{\let\today=\yyyymmdd}
}
\newcommand\yyyymmdd{\number\year/\number\month/\number\day}%
\DeclareOption{hh:mm}{%
  \AtBeginDocument{\todayaddtime}%
}
\newcount\hour
\newcount\minute
\hour\time \divide\hour 60
\minute-\hour \multiply\minute 60\advance\minute\time
\edef\timehhmm{\ifnum\hour<10 0\fi\the\hour
  :\ifnum\minute<10 0\fi\the\minute}
\newcommand\todayaddtime{\edef\today{\today\,~\timehhmm}}
\DeclareOption{morefontsizes}{%
  \newcommand\HUGE    {\@setfontsize\HUGE{29.86}{36}}
  \newcommand\veryhuge{\@setfontsize\veryhuge{35.83}{43}}
  \newcommand\veryHuge{\@setfontsize\veryHuge{43}{52}}
  \newcommand\veryHUGE{\@setfontsize\veryHUGE{51.6}{62}}
}
\DeclareOption{verbose}{\lh@verbosetrue}
\newif\iflh@verbose
\DeclareOption{shorttoc}{%
  \let\old@tableofcontents=\tableofcontents
  \def\tableofcontents{{%
    \parskip \z@ \@plus 1pt \parindent \z@
    \let\old@addvspace=\addvspace
    \def\addvspace##1{\skip0=##1\relax\old@addvspace{.5\skip0}}%
    \old@tableofcontents\par
  }}%
}
\DeclareOption{countryselect}{%
  \newcommand\selectD{\lhelp@lang@sel{german}}
  \newcommand\selectNZ{\lhelp@lang@sel{UKenglish}}
  \newcommand\selectUK{\lhelp@lang@sel{UKenglish}}
  \newcommand\selectUSA{\lhelp@lang@sel{USenglish}}
}
\newcommand\lhelp@lang@sel[1]{
  \expandafter\ifx\csname date#1\endcsname\relax
    \PackageWarning{lhelp}{Language '#1' not loaded,
      selecting hyphenation only}%
    \@ifundefined{l@#1}%
      {\PackageWarning{lhelp}{Hyphenation patterns for '#1' unavailable}}%
      {\language=\csname l@#1\endcsname}%
  \else
     \selectlanguage{#1}%
  \fi
}
\DeclareOption{X}{\AtEndOfFile{\RequirePackage{lhelpx}}}
\ProcessOptions
\@ifundefined{textsubscript}{%
  \DeclareRobustCommand\textsubscript[1]{%
    \m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@\selectfont #1}}}%
  }%
}{}
\newcommand\ul{\underline}
\newcommand\ulbf[1]{\underline{\textbf{#1}}}
\newcommand\lineout[1]{{\setbox0\hbox{#1}\rlap{\raise.4ex\hbox{%
  \vrule \@height.15ex \@width\wd0 \@depth 0pt}}\box0}}
\newcommand\larr{\mbox{$\leftarrow$}} % leftarrow
\newcommand\rarr{\mbox{$\rightarrow$}} % rightarrow
\newcommand\bs{\ifdim\fontdimen3\font=0pt\char`\\% (tt font)
  \else\ensuremath{\backslash}\fi}
\newcommand\PP{\ensuremath{+}}
\newcommand\MM{\ensuremath{-}}
\newcommand\PM{\ensuremath{\pm}}
\newcommand\about{\mbox{$\approx$}}
\providecommand\eg{e.g.\ }
\providecommand\ie{i.e.\ }
\providecommand\etc{etc.\ }
\providecommand\ca{ca.\ }
\providecommand\resp{resp.\ }
\newcommand\@edtext[1]{%
  {\slshape\footnotesize\fboxrule.4mm\fboxsep.4mm\fbox{#1}}}
\newcommand\Discuss{\protect\@edtext{discuss}}
\newcommand\Edit{\protect\@edtext{edit}}
\newcommand\@showmark{\fbox{\small$\clubsuit$}}
\newcommand\Mark{\protect\@showmark}
\newcommand\diameter{\@ifundefined{varnothing}%
  {\mbox{\raise.15ex\hbox{o}\kern-.5em/}}%
  {\,\kern-0.07em\ensuremath{\varnothing}}}
\providecommand\careof{\mbox{\raise.5ex\hbox{c}\kern-.2em/\kern-.2emo~}}
\newcommand\fparbox[1][\hsize]{\@ifnextchar({\@fparbox{#1}}{\@fparbox{#1}()}}
\long\def\@fparbox#1(#2)#3{\mbox{\fbox
  {\dimen0=#1\advance\dimen0-2\fboxsep\advance\dimen0-2\fboxrule
  \parbox#2{\dimen0}{#3}}}}
\newcommand\xyfparbox[4][c]{\mbox{\fbox{%
  \dimen0=2\fboxrule\advance\dimen0 2\fboxsep
  \dimen1=#2\advance\dimen1 -\dimen0
  \dimen2=#3\advance\dimen2 -\dimen0
  \parbox[#1][\dimen2][c]{\dimen1}{#4}}}}
\newcommand\lrlap[1]{\hb@xt@\z@{\hss#1\hss}}
\newcommand\tlap[1]{\vbox to\z@{\vss#1}}
\newcommand\blap[1]{\vbox to\z@{#1\vss}}
\newcommand\tblap[1]{\vbox to\z@{\vss#1\vss}}
\newcommand\rtlap[1]{\rlap{\tlap{#1}}}
\newcommand\rblap[1]{\rlap{\blap{#1}}}
\providecommand\vnull{\vbox{}}
\providecommand\vnul{{\offinterlineskip\vnull}}
\providecommand\hrulenull{\hrule\@width\z@\@height\z@\@depth\z@}
\newcommand\notes[1]{\ifprintnotes
  \begingroup\reset@font\notesfont
  \bnotemark
  \ignorespaces #1\relax
  \enotemark
  \endgroup
  \fi
}
\newcommand\nnotes[1]{}
\newcommand\bnotemark{%
  \leavevmode
  \vadjust{\vbox to\z@{\vss\llap
    {\raise1ex\hbox{\footnotesize$\bigtriangledown$}\ \ }}}%
}
\newcommand\enotemark{%
  \leavevmode
  \vadjust{\vbox to\z@{\vss\llap
    {\hbox{\footnotesize$\bigtriangleup$}\ \ }\vss}}%
}
\newcommand\notesfont{\footnotesize\sffamily}
\newcommand\includelower[3]{\ifinclude{#1}\def\@tempa{#2}\else
  \def\@tempa{#3}\fi\@tempa}
\newcommand\ifinclude[1]{\ifnum#1<\value{excludelevel}}
\newcounter{excludelevel}
\setcounter{excludelevel}{5}
\providecommand\EPSfileext{}
\newcommand\placeEPS[4][]{%
  \begingroup
  \edef\w{#2}\ifx\w\empty\def\w{\the\z@}\fi
  \edef\h{#3}\ifx\h\empty\def\h{\the\z@}\fi
  \edef\eps@fn{#4\EPSfileext}%
  \normalsize
  \IfFileExists{\eps@fn}{%
    %\epsfig{file={\eps@fn}\@more,width=\w,height=\h}%
    %  (obsolete - hangs if \w, \h are 0pt)
    \edef\opt{\EPSopt,#1}%
    \ifdim\w=\z@\else\edef\opt{\opt,width=\w}\fi
    \ifdim\h=\z@\else\edef\opt{\opt,height=\h}\fi
    \iflh@verbose\typeout{Loading EPS file: \opt\space(\eps@fn)}\fi
    \expandafter\includegraphics\expandafter[\opt]{\eps@fn}%
  }{%
    \typeout{EPS file not found: <\eps@fn>}%
    \ifdim\w=\z@\def\w{.8\hsize}\fi\ifdim\h=\z@\def\h{40mm}\fi
    \xyfparbox[b]\w\h{\texttt{\@Sanitize{#1 }\\
      \@Sanitize{\eps@fn}}}%
  }%
  \endgroup
}
\newcommand\@Sanitize[1]{{\escapechar=-1
  \expandafter\string\csname#1\endcsname}}
\newcommand\EPSopt{}
\newcommand\addEPSopt[1]{%
  \edef\EPSopt{\EPSopt,#1}}
\newcommand\listlabelleft[4]{%
  \leftmargin #1\labelwidth #2\labelsep #3\rightmargin #4
  \advance\leftmargin\labelwidth\advance\leftmargin\labelsep
  \def\makelabel##1{##1\hfil}%
  \listparindent\z@}
\newcommand\listlabelleftindent[1]{\listlabelleft{1.5em}{#1}{1.5em}{4.5em}}
\newcommand\listshort{\topsep\z@\partopsep\z@\itemsep\z@\parsep\z@}
\newcommand\Eenumerate[1]{\ifnum \@enumdepth >\thr@@ \@toodeep\else
  \advance\@enumdepth \@ne
  \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
  \expandafter\list\csname label\@enumctr\endcsname
    {\usecounter\@enumctr
    \def\makelabel##1{\hss\llap{##1}}#1}%
  \fi}
\let\endEenumerate=\endlist
\newcommand\Eitemize[1]{\ifnum \@itemdepth >\thr@@ \@toodeep\else
  \advance\@itemdepth \@ne
  \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
  \expandafter\list\csname \@itemitem\endcsname
    {\def\makelabel##1{\hss\llap{##1}}#1}%
  \fi}
\let\endEitemize=\endlist
\newenvironment{enumerateshort}{\Eenumerate{\listshort}}{\endEenumerate}
\newenvironment{itemizeshort}{\Eitemize{\listshort}}{\endEitemize}
\newcommand\clearoddpage{\clearpage\@newodd}
\newcommand\clearevenpage{\clearpage\@neweven}
\newcommand\clearthispage{\null\clearpage}
\newcommand\newoddpage{\@ifstar{\null}{}\newpage\@newodd}
\newcommand\newevenpage{\@ifstar{\null}{}\newpage\@neweven}
\newcommand\@newodd{\ifodd\c@page\else
  \null\newpage\if@twocolumn\null\newpage\fi\fi}
\newcommand\@neweven{\ifodd\c@page
  \null\newpage\if@twocolumn\null\newpage\fi\fi}
\newcommand\ensureonecolumn{%
  \if@twocolumn
    \onecolumn
    \def\ensurecolumnend{\twocolumn\let\ensurecolumnend\relax}%
  \fi
}
\def\endensureonecolumn{\ensurecolumnend}
\newcommand\ensuretwocolumn{%
  \if@twocolumn\else
    \twocolumn
    \def\ensurecolumnend{\onecolumn\let\ensurecolumnend\relax}%
  \fi
}
\def\endensuretwocolumn{\ensurecolumnend}
\newcommand\ensurecolumnend{}
\newdimen \minlinelen
\minlinelen=\ifx\marginparwidth\Und@phined .2\hsize \else \marginparwidth \fi
\ifx \@tempdimb\Und@fyned \csname newdimen\endcsname \@tempdimb\fi
\def\absval#1{\ifnum#1<\z@ -\fi#1}
\newcommand\hanghere{\leavevmode
\ifinner\else \begingroup
 \displaywidowpenalty\widowpenalty
 \skip@\lastskip \unskip\unpenalty \penalty\@M \hskip\skip@ \null
 $$% Need a display to measure previous width
 \lineskiplimit-999\p@ % so we get a baselineskip that we can cancel with:
 \abovedisplayskip-\baselineskip \abovedisplayshortskip-\baselineskip
 \belowdisplayskip\z@skip \belowdisplayshortskip\z@skip
 \halign{##\cr\noalign{\global\dimen@i\prevdepth}% get depth of line above
   \hbox{\vrule width\z@ depth\dimen@i }\cr}% preserve its depth
 \dimen@\hsize \advance\dimen@-\minlinelen
 \ifdim\absval\predisplaysize>\dimen@
   \global\dimen@i\z@  \else
   \global\dimen@i\predisplaysize \global\advance\dimen@i-2em
 \fi
 $$\endgraf
 \ifdim\dimen@i>\z@ % then back up a line
  \@tempdimb\prevdepth
  \prevdepth-999\p@ % make sure I get an exact \baselineskip
  \parskip-999\p@   % but cancel the extra space
  \advance\parskip-\baselineskip % cancel the \baselineskip
  \advance\parskip-\@tempdimb\relax
 \else
  \parskip\z@skip
 \fi \parindent\z@ \leavevmode
%% \@tempdimb does not get past the \endgroup!,
%% \vrule has to be before \endgroup.
%% blame Volker if this is not true.
 \vrule depth\@tempdimb width\z@
 \endgroup
 \hangindent\dimen@i \hangafter\z@
%% \vrule depth\@tempdimb width\z@ % see 4 lines above.
\fi}
\newcommand\labelhangindent[1]{\setbox\@tempboxa\hbox{#1}%
  \expandafter\everypar\expandafter=\expandafter{\expandafter%
    \hangindent\the\wd\@tempboxa\hangafter 0\relax}%
  \leavevmode\box\@tempboxa\hangafter 1\ignorespaces}
\long\def\gobble#1{}
\long\def\gobbletwo#1#2{}
\newenvironment{narrowpars}[1]{%
  \everypar={\hangindent #1\hangafter 0\relax}%
  \advance\columnwidth-#1\relax
  \advance\hsize-#1\relax
}{%
  \par
}
\providecommand\thinthinspace{\kern .08em\relax}
\newcommand\setTBstruts{\def\T{\rule{\z@}{2.6ex}}%
  \def\B{\rule[-1.2ex]{\z@}{\z@}}}
\newcommand\placepos[3]{\hbox to\z@{\kern#1
  \raisebox{-#2}[\z@][\z@]{#3}\hss}\ignorespaces}
\newcommand\PSadjust{
  \tolerance 800
  \emergencystretch 2em
  \doublehyphendemerits 5000
  \hfuzz 0pt
  \leftskip 0pt \@minus1pt
  \rightskip 0pt \@minus1pt
}
\endinput
%%
%% End of file `lhelp.sty'.
