%%
%% This is file `logpap.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% logpap.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.6}
\def\filedate{2004/02/01}
\NeedsTeXFormat{LaTeX2e}[2001/06/01]
\ProvidesPackage{logpap}[\filedate\space
    v\fileversion\space drawing logarithmic graph paper]
\newif\iflp@ticksupright
\newif\iflp@text
\newif\iflp@dimensions
\newif\iflp@twoninex
\newif\iflp@fsnx
\newif\iflp@twoniney
\newif\iflp@fsny
\newif\iflp@tenlower
\newcommand*\lp@DeclareOS[2]{\DeclareOption{#1}{#2}
    \expandafter\def\csname lp@@set#1\endcsname{#2}}
\newcommand*\LPSet[1]{\lp@set#1,\@@end}
\def\lp@set#1,#2\@@end{\csname lp@@set#1\endcsname
    \def\@tempa{#2}\ifx\@tempa\@empty\else\lp@set#2\@@end\fi}
\lp@DeclareOS{ticksupright}{\lp@ticksuprighttrue}
\lp@DeclareOS{noticksupright}{\lp@ticksuprightfalse}
\lp@DeclareOS{twoninex}{\lp@twoninextrue}
\lp@DeclareOS{notwoninex}{\lp@twoninexfalse}
\lp@DeclareOS{twoniney}{\lp@twonineytrue}
\lp@DeclareOS{notwoniney}{\lp@twonineyfalse}
\lp@DeclareOS{fsnx}{\lp@fsnxtrue}
\lp@DeclareOS{nofsnx}{\lp@fsnxfalse}
\lp@DeclareOS{fsny}{\lp@fsnytrue}
\lp@DeclareOS{nofsny}{\lp@fsnyfalse}
\lp@DeclareOS{tenlower}{\lp@tenlowertrue}
\lp@DeclareOS{notenlower}{\lp@tenlowerfalse}
\lp@DeclareOS{text}{\lp@texttrue}
\lp@DeclareOS{notext}{\lp@textfalse}
\lp@DeclareOS{dimensions}{\lp@dimensionstrue}
\lp@DeclareOS{nodimensions}{\lp@dimensionsfalse}
\DeclareOption*{\PassOptionToPackage{\CurrentOption}{color}}
\ExecuteOptions{ticksupright,twoninex,twoniney,fsnx,fsny,notenlower,text,dimensions}
\ProcessOptions\relax
\RequirePackage{calc}
\RequirePackage{color}
\newcommand*{\deflp@logline}[2]{\expandafter\def\csname lp@log#1\endcsname{#2}}
\newcommand*{\getlp@logline}[1]{\csname lp@log#1\endcsname}
\deflp@logline{1.0}{0}
\deflp@logline{1.1}{.041393}
\deflp@logline{1.2}{.078181}
\deflp@logline{1.3}{.113943}
\deflp@logline{1.4}{.146128}
\deflp@logline{1.5}{.176091}
\deflp@logline{1.6}{.20412}
\deflp@logline{1.7}{.230449}
\deflp@logline{1.8}{.255273}
\deflp@logline{1.9}{.278754}
\deflp@logline{2.0}{.30103}
\deflp@logline{2.1}{.322219}
\deflp@logline{2.2}{.342423}
\deflp@logline{2.3}{.361728}
\deflp@logline{2.4}{.380211}
\deflp@logline{2.5}{.39794}
\deflp@logline{2.6}{.414973}
\deflp@logline{2.7}{.431364}
\deflp@logline{2.8}{.447158}
\deflp@logline{2.9}{.462398}
\deflp@logline{3.0}{.477121}
\deflp@logline{3.1}{.491362}
\deflp@logline{3.2}{.50515}
\deflp@logline{3.3}{.518514}
\deflp@logline{3.4}{.531479}
\deflp@logline{3.5}{.544068}
\deflp@logline{3.6}{.556303}
\deflp@logline{3.7}{.568202}
\deflp@logline{3.8}{.579784}
\deflp@logline{3.9}{.591065}
\deflp@logline{4.0}{.60206}
\deflp@logline{4.1}{.612784}
\deflp@logline{4.2}{.623249}
\deflp@logline{4.3}{.633468}
\deflp@logline{4.4}{.643453}
\deflp@logline{4.5}{.653213}
\deflp@logline{4.6}{.662758}
\deflp@logline{4.7}{.672098}
\deflp@logline{4.8}{.681241}
\deflp@logline{4.9}{.690196}
\deflp@logline{5.0}{.69897}
\deflp@logline{5.1}{.70757}
\deflp@logline{5.2}{.716003}
\deflp@logline{5.3}{.724276}
\deflp@logline{5.4}{.732394}
\deflp@logline{5.5}{.740363}
\deflp@logline{5.6}{.748188}
\deflp@logline{5.7}{.755875}
\deflp@logline{5.8}{.763428}
\deflp@logline{5.9}{.770852}
\deflp@logline{6.0}{.778151}
\deflp@logline{6.1}{.78533}
\deflp@logline{6.2}{.792392}
\deflp@logline{6.3}{.799341}
\deflp@logline{6.4}{.80618}
\deflp@logline{6.5}{.812913}
\deflp@logline{6.6}{.819544}
\deflp@logline{6.7}{.826075}
\deflp@logline{6.8}{.832509}
\deflp@logline{6.9}{.838849}
\deflp@logline{7.0}{.845098}
\deflp@logline{7.1}{.851258}
\deflp@logline{7.2}{.857332}
\deflp@logline{7.3}{.863323}
\deflp@logline{7.4}{.869232}
\deflp@logline{7.5}{.875061}
\deflp@logline{7.6}{.880814}
\deflp@logline{7.7}{.886491}
\deflp@logline{7.8}{.892095}
\deflp@logline{7.9}{.897627}
\deflp@logline{8.0}{.90309}
\deflp@logline{8.1}{.908485}
\deflp@logline{8.2}{.913814}
\deflp@logline{8.3}{.919078}
\deflp@logline{8.4}{.924279}
\deflp@logline{8.5}{.929419}
\deflp@logline{8.6}{.934498}
\deflp@logline{8.7}{.939519}
\deflp@logline{8.8}{.944483}
\deflp@logline{8.9}{.94939}
\deflp@logline{9.0}{.954243}
\deflp@logline{9.1}{.959041}
\deflp@logline{9.2}{.963788}
\deflp@logline{9.3}{.968483}
\deflp@logline{9.4}{.973128}
\deflp@logline{9.5}{.977724}
\deflp@logline{9.6}{.982271}
\deflp@logline{9.7}{.986772}
\deflp@logline{9.8}{.991226}
\deflp@logline{9.9}{.995635}
\deflp@logline{10.0}{1}
\newcount\lp@dcntx
\newcount\lp@dcnty
\newdimen\lpgridx
\newdimen\lpgridy
\newdimen\lp@thicklinelenx
\newdimen\lp@thicklineleny
\newdimen\lp@medlinelenx
\newdimen\lp@medlineleny
\newdimen\lp@osg
\newdimen\lp@osl
\newif\iflp@partdecx
\newif\iflp@partdecy
\newif\iflp@fulldecx
\newif\iflp@fulldecy
\newif\iflp@twonine
\newif\iflp@fsn
\newif\iflp@ten
\newif\iflp@logx
\newif\iflp@logy
\newif\iflp@preached
\newcommand*\DefineLPThickLineThickness[1]{\renewcommand*\lp@tkltkness{#1}}
\newcommand*\lp@tkltkness{0.8\p@}
\newcommand*\DefineLPMedLineThickness[1]{\renewcommand*\lp@mdltkness{#1}}
\newcommand*\lp@mdltkness{0.5\p@}
\newcommand*\DefineLPThinLineThickness[1]{\renewcommand*\lp@tnltkness{#1}}
\newcommand*\lp@tnltkness{0.2\p@}
\newcommand*\DefineLPMinLineDist[1]{\renewcommand*\lp@mindist{#1}}
\newcommand*\lp@mindist{0.9999mm}
\newcommand*\DefineLPThickTickLen[1]{\renewcommand*\lp@tol{#1}}
\newcommand*\lp@tol{2mm}
\newcommand*\DefineLPMedTickLen[1]{\renewcommand*\lp@mol{#1}}
\newcommand*\lp@mol{1mm}
\newcommand*\DefineLPLabelDist[1]{\renewcommand*\lp@lpos{#1}}
\newcommand*\lp@lpos{1mm}
\newcommand*\DefineLPLabelFont[1]{\renewcommand*\lp@font{#1}}
\newcommand*\lp@font{\scriptsize}
\newcommand*\DefineLPLineColor[1]{\renewcommand*\lp@linecolor{#1}}
\newcommand*\lp@linecolor{\color[cmyk]{1,0,0,0}}
\newcommand*\DefineLPLabelColor[1]{\renewcommand*\lp@labelcolor{#1}}
\newcommand*\lp@labelcolor{\color[cmyk]{0,0,0,1}}
\newcommand*\DefineLPmu[1]{\renewcommand*\lp@mu{#1}}
\newcommand*\lp@mu{u}
\newcommand*\DefineLPText[1]{\renewcommand*\lp@textone{#1}}
\newcommand*\lp@textone{made with \LaTeX\ and \textsf{logpap}\quad}
\def\lp@clearlists{%
    \def\lp@thicklines{,}\def\lp@medlines{,}\def\lp@thinlines{,}%
    \def\lp@lllist{,}}
\def\lp@mkthickloglist#1{%
    \@tempcnta\@ne\loop
        \advance\@tempcnta\@ne
        \edef\lp@thicklines{\getlp@logline{\the\@tempcnta.0},\lp@thicklines}%
        \edef\lp@lllist{\the\@tempcnta,\lp@lllist}%
    \ifnum\@tempcnta<#1\repeat}
\def\lp@mkmedloglist#1{%
    \edef\lp@medlines{\getlp@logline{#1},\lp@medlines}}
\def\lp@mkthinloglist#1{%
    \edef\lp@thinlines{\getlp@logline{#1},\lp@thinlines}}
\def\lp@mkthinloglisttwo#1{%
    \lp@mkthinloglist{#1.2}\lp@mkthinloglist{#1.4}%
    \lp@mkthinloglist{#1.6}\lp@mkthinloglist{#1.8}}
\def\lp@mkthinloglistone#1{\lp@mkthinloglisttwo{#1}%
    \lp@mkthinloglist{#1.1}\lp@mkthinloglist{#1.3}%
    \lp@mkthinloglist{#1.7}\lp@mkthinloglist{#1.9}}
\def\lp@getdist#1#2#3{%
    \expandafter\@tempdima\getlp@logline{#2}#1%
    \expandafter\@tempdimb\getlp@logline{#3}#1%
    \advance\@tempdima-\@tempdimb}
\def\lp@mkloglistpart#1#2#3{%
    \lp@getdist{#1}{#2.0}{#3.9}\ifdim\@tempdima<\lp@mindist
        \lp@getdist{#1}{#2.0}{#3.8}\ifdim\@tempdima<\lp@mindist
            \lp@getdist{#1}{#2.0}{#3.5}\ifdim\@tempdima<\lp@mindist
                \lp@getdist{#1}{#2.0}{#3.0}\ifdim\@tempdima<\lp@mindist
                    \PackageWarning{logpap}{%
                        lines are to close together\MessageBreak}%
                \fi
            \else
                \lp@mkmedloglist{#3.5}%
            \fi
        \else
            \lp@mkthinloglisttwo{#3}%
        \fi
    \else
        \lp@mkmedloglist{#3.5}\lp@mkthinloglistone{#3}%
    \fi}
\def\lp@mkloglist#1#2{\lp@clearlists\lp@mkthickloglist{#2}%
    \@tempcnta#2\@tempcntb\@tempcnta\advance\@tempcntb\m@ne
    \loop
        \lp@mkloglistpart{#1}{\the\@tempcnta}{\the\@tempcntb}%
        \advance\@tempcnta\m@ne\advance\@tempcntb\m@ne
    \ifnum\@tempcnta>\@ne\repeat}
\def\lp@mkthicklinlist#1{%
    \@tempdima#1\p@\relax\ifdim\@tempdima>.99\p@\def\lp@thicklines{1,}\fi}
\def\lp@mkmedlinlist#1{%
    \@tempdima#1\p@\relax\ifdim\@tempdima>.49\p@\def\lp@medlines{.5,}\fi}
\def\lp@mkthinlinlist#1{%
    \edef\lp@thinlines{#1,\lp@thinlines}}
\def\lp@mkthinlinlisttwo#1{%
    \@tempdima#1\p@\relax
    \ifdim\@tempdima>.19\p@\lp@mkthinlinlist{.2}%
    \ifdim\@tempdima>.39\p@\lp@mkthinlinlist{.4}%
    \ifdim\@tempdima>.59\p@\lp@mkthinlinlist{.6}%
    \ifdim\@tempdima>.79\p@\lp@mkthinlinlist{.8}%
    \fi\fi\fi\fi}
\def\lp@mkthinlinlistone#1{\lp@mkthinlinlisttwo{#1}%
    \@tempdima#1\p@\relax
    \ifdim\@tempdima>.09\p@\lp@mkthinlinlist{.1}%
    \ifdim\@tempdima>.29\p@\lp@mkthinlinlist{.3}%
    \ifdim\@tempdima>.69\p@\lp@mkthinlinlist{.7}%
    \ifdim\@tempdima>.89\p@\lp@mkthinlinlist{.9}%
    \fi\fi\fi\fi}
\def\lp@getlindist#1#2#3{%
    \@tempdima#2#1\@tempdimb#3#1%
    \advance\@tempdima-\@tempdimb}
\def\lp@mklinlist#1#2{\lp@clearlists\lp@mkthicklinlist{#2}%
    \lp@getlindist{#1}{1.0}{0.9}\ifdim\@tempdima<\lp@mindist
        \lp@getlindist{#1}{1.0}{0.8}\ifdim\@tempdima<\lp@mindist
            \lp@getlindist{#1}{1.0}{0.5}\ifdim\@tempdima<\lp@mindist
                \lp@getlindist{#1}{1.0}{0.0}\ifdim\@tempdima<\lp@mindist
                    \PackageWarning{logpap}{%
                        lines are to close together\MessageBreak}%
                \fi
            \else
                \lp@mkmedlinlist{#2}%
            \fi
        \else
            \lp@mkthinlinlisttwo{#2}%
        \fi
    \else
        \lp@mkmedlinlist{#2}\lp@mkthinlinlistone{#2}%
    \fi}
\def\lp@dolinesx#1#2#3#4{\linethickness#2%
    \lp@osg\lp@dcntx\lpgridx
    \expandafter\lp@dolinex#1,\@@end{#3}{#4}}
\def\lp@dolinex#1,#2,\@@end#3#4{%
    \def\@tempc{#1}\ifx\@tempc\@empty\else
    \lp@osl#1\lpgridx \advance\lp@osl\lp@osg
    \put(\lp@osl,#3){\line(0,1){#4}}%
    \def\@tempc{#2}\ifx\@tempc\@empty\else
    \lp@dolinex#2,\@@end{#3}{#4}\fi\fi}
\def\lp@dolinesy#1#2#3#4{\linethickness#2%
    \lp@osg\lp@dcnty\lpgridy
    \expandafter\lp@doliney#1,\@@end{#3}{#4}}
\def\lp@doliney#1,#2,\@@end#3#4{%
    \def\@tempc{#1}\ifx\@tempc\@empty\else
    \lp@osl#1\lpgridy \advance\lp@osl\lp@osg
    \put(#3,\lp@osl){\line(1,0){#4}}%
    \def\@tempc{#2}\ifx\@tempc\@empty\else
    \lp@doliney#2,\@@end{#3}{#4}\fi\fi}
\def\lp@setuplabel#1,#2\@@end{%
    \lp@getsign@ndparse#1\@@end
    \def\@tempa{#2}\ifx\@tempa\@empty\def\lp@lfi{1}\else
        \def\@tempb{,}\ifx\@tempa\@tempb\def\lp@lfi{1}\else
            \lp@setup@lfi#2\@@end\fi\fi}
\def\lp@setup@lfi#1,\@@end{\def\lp@lfi{#1}}
\def\lp@getsign@ndparse#1#2\@@end{%
    \if#1-\relax
        \def\lp@sign{#1}\lp@parsesll#2xxxx\@@end
    \else\if#1+\relax
        \def\lp@sign{}\lp@parsesll#2xxxx\@@end
    \else
        \def\lp@sign{}\lp@parsesll#1#2xxxx\@@end
    \fi\fi}
\def\lp@parsesll#1#2#3#4#5\@@end{%
    \if\lp@isdigit#1\relax
        \if\lp@isdigit#2\relax
            \if\lp@isdigit#3\relax
                \lp@testletter#4\iflp@preached
                    \def\lp@sll{#1#2#3}\def\lp@sllp{#4}%
                \else\if#4x\relax
                    \def\lp@sll{#1#2#3}\def\lp@sllp{}%
                \else
                    \lp@formaterr
                \fi\fi
            \else\lp@testletter#3\iflp@preached
                \def\lp@sll{#1#2}\def\lp@sllp{#3}%
            \else\if#3x\relax
                \def\lp@sll{#1#2}\def\lp@sllp{}%
            \else
                \lp@formaterr
            \fi\fi\fi
        \else\lp@testletter#2\iflp@preached
            \def\lp@sll{#1}\def\lp@sllp{#2}%
        \else\if#2x\relax
            \def\lp@sll{#1}\def\lp@sllp{}%
        \else
            \lp@formaterr
        \fi\fi\fi
    \else
        \lp@formaterr
    \fi}
\def\lp@formaterr{%
    \PackageError{logpap}{wrong format of start value}%
        {The format of the start value is:\MessageBreak
         optional + or -, followed by 1-3 digits, optionaly\MessageBreak
         followed by one of the letters [yzafpnumkMGTPEZY].\MessageBreak
         Please correct it before going on,\MessageBreak
         otherwise you might get more error messages.}}
\def\lp@isdigit#1{TT\fi\ifcat_\ifnum9<1#1 _\else A\fi}
\def\lp@testletter#1{%
    \def\@tempb{#1}\lp@preachedfalse
    \@tfor\@tempc:=yzafpnumkMGTPEZY\do{%
        \if\@tempc\@tempb\relax\relax\lp@preachedtrue\@break@tfor\fi}}
\def\lp@testrangelin{\@tempcnta\lp@lfi\relax
    \ifnum\@tempcnta=0\relax
        \PackageError{logpap}{wrong increment for linear axis}%
            {The increment value is 0, which doesn't make any sense.\MessageBreak
             Please correct it before going on.}%
    \fi}
\def\lp@testrangelog{\@tempcnta\lp@sll\relax
    \ifnum\@tempcnta=1\else\ifnum\@tempcnta=10\else\ifnum\@tempcnta=100\else
        \ifnum\@tempcnta=0\relax
            \PackageError{logpap}{wrong logarithmic start value}%
                {0 as start value for a logarithmic axis?\MessageBreak
                 This is a typo, isn't it?\MessageBreak
                 If not, you should learn more mathematics\MessageBreak
                 before using this package ;-)\MessageBreak
                 Only -100, -10, -1, 1, 10 and 100 are allowed.\MessageBreak
                 Please correct it before going on.}%
        \else
            \PackageError{logpap}{wrong logarithmic start value}%
                {Only -100, -10, -1, 1, 10 and 100 are allowed.\MessageBreak
                 Please correct it before going on.}%
        \fi
    \fi\fi\fi
    \@tempcnta\lp@lfi\relax
    \ifnum\@tempcnta<1\lp@logfacerr\else\ifnum\@tempcnta>9\lp@logfacerr\fi\fi}
\def\lp@logfacerr{\PackageError{logpap}{wrong factor for logarithmic axis}%
    {The factor has to be in the range from 1 to 9.\MessageBreak
     Please correct it before going on.}}
\def\lp@nextlinlabel#1#2#3#4#5#6{\@tempcnta#3\multiply\@tempcnta#4\relax
    \advance\@tempcnta#3\advance\@tempcnta#6#1\relax
    \def\@tempa{#2}\def\@tempb{u}\ifx\@tempa\@tempb\def\@tempa{\lp@mu}\fi
    \edef\lp@label{\the\@tempcnta\ifnum\@tempcnta=0\else\@tempa\fi}}
\def\lp@nextloglabel#1#2#3#4#5#6{%
    \@tempcnta#5\relax\ifnum\@tempcnta=10
        \lp@tentrue
        \@tempcnta#4\relax\@tempcntb#1\relax
        \advance\@tempcnta\@ne
        \ifnum\@tempcntb>1\advance\@tempcnta\@ne
            \ifnum\@tempcntb>10\advance\@tempcnta\@ne\fi\fi
        \@tempcntb\@tempcnta
        \divide\@tempcntb 3\relax
        \multiply\@tempcntb 3\relax
        \advance\@tempcnta-\@tempcntb
        \ifcase\@tempcnta
            \def\lp@label{1}\or
            \def\lp@label{10}\or
            \def\lp@label{100}\fi
        \divide\@tempcntb 3\relax
        \lp@getpot{#2}\@tempcntb
        \def\@tempb{X}\ifx\@tempa\@tempb
           \PackageWarning{logpap}{%
               log. axis value went to large\MessageBreak
               (no more letters for exponent, used X)\MessageBreak}%
        \fi
        \def\@tempb{u}\ifx\@tempa\@tempb\def\@tempa{\lp@mu}\fi
        \@tempcnta\lp@label\multiply\@tempcnta#3\relax
        \edef\lp@label{#6\the\@tempcnta\@tempa}%
    \else
        \lp@tenfalse
        \iflp@twonine
            \multiply\@tempcnta#3\relax
            \edef\lp@label{#6\the\@tempcnta}%
            \iflp@fsn\else
                \divide\@tempcnta#3\relax
                \ifnum\@tempcnta=9\def\lp@label{}\fi
                \ifnum\@tempcnta=7\def\lp@label{}\fi
                \ifnum\@tempcnta=5\def\lp@label{}\fi
            \fi
        \else
            \def\lp@label{}%
        \fi
    \fi}
\def\lp@getpot#1#2{%
    \def\@tempb{#1}\def\@tempa{X}\@tempcnta#2\relax\lp@preachedfalse
    \@tfor\@tempc:=yzafpnum{}kMGTPEZY\do{%
        \if\@tempc\@tempb\relax\relax\lp@preachedtrue\fi
        \iflp@preached\advance\@tempcnta\m@ne
            \ifnum\@tempcnta=\m@ne\edef\@tempa{\@tempc}\fi
        \fi}}
\def\lp@xlabel#1#2{\let\@tempb\lp@lpos
    \iflp@tenlower\iflp@ten\let\@tempb\lp@llpos\fi\fi
    \put(#1,-\@tempb){\makebox(\z@,\z@)[tc]{\lp@font #2}}}
\def\lp@ylabel#1#2{\put(-\lp@lpos,#1){\makebox(\z@,\z@)[cr]{\lp@font #2}}}
\def\lp@nextlllist#1,#2\@@end{%
    \def\lp@llno{#1}\def\lp@lllist{#2}}
\def\lp@dolabelsx#1#2#3#4#5#6{\lp@osg\lp@dcntx\lpgridx
    \let\lp@lllist#5\relax
    \expandafter\lp@dolabelx#1,\@@end{#2}{#3}{#4}{#6}}
\def\lp@dolabelx#1,#2,\@@end#3#4#5#6{%
    \def\@tempc{#1}\ifx\@tempc\@empty\else
    \lp@osl#1\lpgridx \advance\lp@osl\lp@osg
    \expandafter\lp@nextlllist\lp@lllist\@@end
    \lp@nextxlabel{#3}{#4}{#5}\lp@dcntx\lp@llno{#6}%
    \lp@xlabel\lp@osl\lp@label
    \def\@tempc{#2}\ifx\@tempc\@empty\else
    \lp@dolabelx#2,\@@end{#3}{#4}{#5}{#6}\fi\fi}
\def\lp@dolabelsy#1#2#3#4#5#6{\lp@osg\lp@dcnty\lpgridy
    \let\lp@lllist#5\relax
    \expandafter\lp@dolabely#1,\@@end{#2}{#3}{#4}{#6}}
\def\lp@dolabely#1,#2,\@@end#3#4#5#6{%
    \def\@tempc{#1}\ifx\@tempc\@empty\else
    \lp@osl#1\lpgridy \advance\lp@osl\lp@osg
    \expandafter\lp@nextlllist\lp@lllist\@@end
    \lp@nextylabel{#3}{#4}{#5}\lp@dcnty\lp@llno{#6}%
    \lp@ylabel\lp@osl\lp@label
    \def\@tempc{#2}\ifx\@tempc\@empty\else
    \lp@dolabely#2,\@@end{#3}{#4}{#5}{#6}\fi\fi}
\def\lp@setlinesx{\let\lp@thicklinesx\lp@thicklines
    \let\lp@medlinesx\lp@medlines \let\lp@thinlinesx\lp@thinlines
    \let\lp@lllistx\lp@lllist}
\def\lp@setlinesy{\let\lp@thicklinesy\lp@thicklines
    \let\lp@medlinesy\lp@medlines \let\lp@thinlinesy\lp@thinlines
    \let\lp@lllisty\lp@lllist}
\def\lp@setpartlinesx{\let\lp@partthicklinesx\lp@thicklines
    \let\lp@partmedlinesx\lp@medlines \let\lp@partthinlinesx\lp@thinlines
    \let\lp@partlllistx\lp@lllist}
\def\lp@setpartlinesy{\let\lp@partthicklinesy\lp@thicklines
    \let\lp@partmedlinesy\lp@medlines \let\lp@partthinlinesy\lp@thinlines
    \let\lp@partlllisty\lp@lllist}
\def\lp@ipart#1.#2\@@end{#1}
\def\lp@rpart#1.#2\@@end{#2}
\def\lp@firstdigit#1#2\@@end{#1}
\def\lp@getreal#1{%
    \edef\@tempa{\lp@ipart#1.\@@end}%
    \ifx\@tempa\@empty\def\@tempa{0}\fi
    \edef\@tempc{\lp@rpart#1.\@@end}%
    \ifx\@tempc\@empty\let\@tempb\@empty\else
        \if\@tempc.\let\@tempb\@empty\else
            \edef\@tempd{\expandafter\lp@firstdigit\@tempc\@@end}%
            \if\@tempd0\let\@tempb\@empty\else
                \let\@tempb\@tempd\fi\fi\fi}
\def\lp@decerr{%
    \PackageError{logpap}{number of decades for logaritmic axis to small}%
        {The number of decades for a logaritmic axis\MessageBreak
         has to be at least 0.2.\MessageBreak
         Please correct it before going on,\MessageBreak
         otherwise you might get more error messages.}}
\def\lp@decerri{%
    \PackageError{logpap}{wrong number of decades for logaritmic axis}%
        {For the number of decades for a logaritmic axis\MessageBreak
         values like x.1 are not alowed.\MessageBreak
         You can only use x.0 (or only x) and x.2 to x.9.\MessageBreak
         Please correct it before going on,\MessageBreak
         otherwise you might get more error messages.}}
\def\lp@checkdec{\@tempcnta\@tempa
    \ifx\@tempb\@empty\@tempcntb0\relax\else\@tempcntb\@tempb\relax\fi
    \ifnum\@tempcnta<0\relax\lp@decerr\else
        \ifnum\@tempcntb=0\relax\ifnum\@tempcnta=0\relax\lp@decerr\fi\else
            \ifnum\@tempcntb<0\relax\lp@decerri\else
                \ifnum\@tempcntb=1\relax
                    \ifnum\@tempcnta=0\relax\lp@decerr\else
                        \lp@decerri\fi\fi\fi\fi\fi}
\def\lp@diverr{%
    \PackageError{logpap}{number of divisions for linear axis to small}%
        {The number of divisions for a linear axis\MessageBreak
         has to be at least 0.1.\MessageBreak
         Please correct it before going on,\MessageBreak
         otherwise you might get more error messages.}}
\def\lp@checkdiv{\@tempcnta\@tempa
    \ifx\@tempb\@empty\@tempcntb0\relax\else\@tempcntb\@tempb\relax\fi
    \ifnum\@tempcnta<0\relax\lp@diverr\else
        \ifnum\@tempcnta=0\relax
            \ifnum\@tempcntb<1\relax\lp@diverr\fi\fi\fi}
\def\lp@logpap(#1,#2)(#3,#4)#5#6{%
    \@ifnextchar[{\lp@@logpap{#1}{#2}{#3}{#4}{#5}{#6}}%
                 {\lp@@logpap{#1}{#2}{#3}{#4}{#5}{#6}[]}}
\def\lp@@logpap#1#2#3#4#5#6[#7]{%
    \@ifnextchar[{\lp@@@logpap{#1}{#2}{#3}{#4}{#5}{#6}[#7]}%
                 {\lp@@@logpap{#1}{#2}{#3}{#4}{#5}{#6}[#7][]}}
\def\lp@@@logpap#1#2#3#4#5#6[#7][#8]{%
    \lp@getreal{#3}\iflp@logx\lp@checkdec\else\lp@checkdiv\fi
    \ifnum\@tempa=0\relax\lp@fulldecxfalse\else\lp@fulldecxtrue\fi
    \edef\lp@texttwo{\lp@texttwo\ \@tempa}%
    \ifx\@tempb\@empty
        \lp@partdecxfalse
        \let\lp@real\@tempa
        \edef\lp@texttwo{\lp@texttwo\iflp@logx\,dec\fi\ $\times$}%
    \else
        \lp@partdecxtrue
        \iflp@logx
            \edef\lp@real{\@tempa\getlp@logline{\@tempb.0}}%
            \edef\lp@part{\@tempb}%
            \edef\lp@texttwo{\lp@texttwo.\@tempb\,dec\ $\times$}%
        \else
            \edef\lp@real{\@tempa.\@tempb}%
            \edef\lp@part{.\@tempb}%
            \edef\lp@texttwo{\lp@texttwo.\@tempb\ $\times$}%
        \fi
    \fi
    \lp@dcntx\@tempa
    \setlength\lpgridx{#1/\real{\lp@real}}\global\lpgridx\lpgridx
    \iflp@logx
        \lp@mkloglist\lpgridx{10}\lp@setlinesx
        \iflp@partdecx \lp@mkloglist\lpgridx\lp@part \lp@setpartlinesx\fi
        \let\lp@testrangex\lp@testrangelog
        \let\lp@nextxlabel\lp@nextloglabel
    \else
        \lp@mklinlist\lpgridx{1}\lp@setlinesx
        \iflp@partdecx \lp@mklinlist\lpgridx\lp@part \lp@setpartlinesx\fi
        \let\lp@testrangex\lp@testrangelin
        \let\lp@nextxlabel\lp@nextlinlabel
    \fi
    \lp@getreal{#4}\iflp@logx\lp@checkdec\else\lp@checkdiv\fi
    \ifnum\@tempa=0\relax\lp@fulldecyfalse\else\lp@fulldecytrue\fi
    \edef\lp@texttwo{\lp@texttwo\ \@tempa}%
    \ifx\@tempb\@empty
        \lp@partdecyfalse
        \let\lp@real\@tempa
        \edef\lp@texttwo{\lp@texttwo\iflp@logy\,dec\fi}%
    \else
        \lp@partdecytrue
        \iflp@logy
            \edef\lp@real{\@tempa\getlp@logline{\@tempb.0}}%
            \edef\lp@part{\@tempb}%
            \edef\lp@texttwo{\lp@texttwo.\@tempb\,dec}%
        \else
            \edef\lp@real{\@tempa.\@tempb}%
            \edef\lp@part{.\@tempb}%
            \edef\lp@texttwo{\lp@texttwo.\@tempb}%
        \fi
    \fi
    \lp@dcnty\@tempa
    \setlength\lpgridy{#2/\real{\lp@real}}\global\lpgridy\lpgridy
    \iflp@logy
        \lp@mkloglist\lpgridy{10}\lp@setlinesy
        \iflp@partdecy \lp@mkloglist\lpgridy\lp@part \lp@setpartlinesy\fi
        \let\lp@testrangey\lp@testrangelog
        \let\lp@nextylabel\lp@nextloglabel
    \else
        \lp@mklinlist\lpgridy{1}\lp@setlinesy
        \iflp@partdecy \lp@mklinlist\lpgridy\lp@part \lp@setpartlinesy\fi
        \let\lp@testrangey\lp@testrangelin
        \let\lp@nextylabel\lp@nextlinlabel
    \fi
    \lp@thicklinelenx#1\advance\lp@thicklinelenx\lp@tol
    \lp@thicklineleny#2\advance\lp@thicklineleny\lp@tol
    \lp@medlinelenx#1\advance\lp@medlinelenx\lp@mol
    \lp@medlineleny#2\advance\lp@medlineleny\lp@mol
    \iflp@ticksupright
        \advance\lp@thicklinelenx\lp@tol
        \advance\lp@thicklineleny\lp@tol
        \advance\lp@medlinelenx\lp@mol
        \advance\lp@medlineleny\lp@mol
    \fi
    \lp@setuplabel#5,\@@end
    \lp@testrangex
    \let\lp@sllx\lp@sll\let\lp@sllpx\lp@sllp\let\lp@lfix\lp@lfi
    \let\lp@signx\lp@sign
    \lp@setuplabel#6,\@@end
    \lp@testrangey
    \let\lp@slly\lp@sll\let\lp@sllpy\lp@sllp\let\lp@lfiy\lp@lfi
    \let\lp@signy\lp@sign
    \begingroup
    \let\unitlength\relax
    {\lp@font\settoheight\@tempdima{M}\advance\@tempdima\lp@tol
     \advance\@tempdima\lp@lpos\advance\@tempdima\lp@lpos
     \xdef\lp@llpos{\the\@tempdima}}%
    \@tempdima\lp@lpos\advance\@tempdima\lp@tol\edef\lp@lpos{\the\@tempdima}%
    \begin{picture}(#1,#2)(\z@,\z@)
    \lp@labelcolor
    \lp@tenfalse
    \@tempcnta\lp@sllx\iflp@logx\multiply\@tempcnta\lp@lfix\fi
    \def\@tempa{u}\ifx\lp@sllpx\@tempa\def\@tempa{\lp@mu}\else
        \def\@tempa{\lp@sllpx}\fi
    \begingroup
    \ifnum\@tempcnta=0\let\lp@signx\@empty\let\@tempa\@empty\fi
    \lp@xlabel{\z@}{\lp@signx\the\@tempcnta\@tempa}
    \endgroup
    \@tempcnta\lp@slly\iflp@logy\multiply\@tempcnta\lp@lfiy\fi
    \def\@tempa{u}\ifx\lp@sllpy\@tempa\def\@tempa{\lp@mu}\else
        \def\@tempa{\lp@sllpy}\fi
    \begingroup
    \ifnum\@tempcnta=0\let\lp@signy\@empty\let\@tempa\@empty\fi
    \lp@ylabel{\z@}{\lp@signy\the\@tempcnta\@tempa}
    \endgroup
    \@tempdima#2\advance\@tempdima\lp@lpos
    \iflp@ticksupright\else\advance\@tempdima-\lp@tol\fi
    \put(\z@,\@tempdima){\makebox(\z@,\z@)[bl]{\lp@font
        \iflp@text\lp@textone\fi\iflp@dimensions\lp@texttwo\fi}}
    \put(-\lp@lpos,\@tempdima){\makebox(\z@,\z@)[br]{#8}}
    \@tempdima#1\advance\@tempdima\lp@lpos
    \iflp@ticksupright\else\advance\@tempdima-\lp@tol\fi
    \put(\@tempdima,-\lp@lpos){\makebox(\z@,\z@)[tl]{#7}}
    \lp@linecolor
    \linethickness\lp@tkltkness
    \put(-\lp@tol,\z@){\line(1,0){\lp@thicklinelenx}}
    \put(\z@,-\lp@tol){\line(0,1){\lp@thicklineleny}}
    \iflp@twoninex\lp@twoninetrue\else\lp@twoninefalse\fi
    \iflp@fsnx\lp@fsntrue\else\lp@fsnfalse\fi
    \iflp@partdecx
        \lp@dolinesx\lp@partthicklinesx\lp@tkltkness{-\lp@tol}\lp@thicklineleny
        \lp@dolinesx\lp@partmedlinesx\lp@mdltkness{-\lp@mol}\lp@medlineleny
        \lp@dolinesx\lp@partthinlinesx\lp@tnltkness\z@{#2}%
        \lp@labelcolor
        \lp@dolabelsx\lp@partthicklinesx\lp@sllx\lp@sllpx\lp@lfix\lp@partlllistx\lp@signx
        \lp@linecolor
    \fi
    \iflp@fulldecx\advance\lp@dcntx\m@ne
        \loop
            \lp@dolinesx\lp@thicklinesx\lp@tkltkness{-\lp@tol}\lp@thicklineleny
            \lp@dolinesx\lp@medlinesx\lp@mdltkness{-\lp@mol}\lp@medlineleny
            \lp@dolinesx\lp@thinlinesx\lp@tnltkness\z@{#2}%
            \lp@labelcolor
            \lp@dolabelsx\lp@thicklinesx\lp@sllx\lp@sllpx\lp@lfix\lp@lllistx\lp@signx
            \lp@linecolor
            \advance\lp@dcntx\m@ne
        \ifnum\lp@dcntx>\m@ne\repeat
    \fi
    \iflp@twoniney\lp@twoninetrue\else\lp@twoninefalse\fi
    \iflp@fsny\lp@fsntrue\else\lp@fsnfalse\fi
    \iflp@partdecy
        \lp@dolinesy\lp@partthicklinesy\lp@tkltkness{-\lp@tol}\lp@thicklinelenx
        \lp@dolinesy\lp@partmedlinesy\lp@mdltkness{-\lp@mol}\lp@medlinelenx
        \lp@dolinesy\lp@partthinlinesy\lp@tnltkness\z@{#1}%
        \lp@labelcolor
        \lp@dolabelsy\lp@partthicklinesy\lp@slly\lp@sllpy\lp@lfiy\lp@partlllisty\lp@signy
        \lp@linecolor
    \fi
    \iflp@fulldecy\advance\lp@dcnty\m@ne
        \loop
            \lp@dolinesy\lp@thicklinesy\lp@tkltkness{-\lp@tol}\lp@thicklinelenx
            \lp@dolinesy\lp@medlinesy\lp@mdltkness{-\lp@mol}\lp@medlinelenx
            \lp@dolinesy\lp@thinlinesy\lp@tnltkness\z@{#1}%
            \lp@labelcolor
            \lp@dolabelsy\lp@thicklinesy\lp@slly\lp@sllpy\lp@lfiy\lp@lllisty\lp@signy
            \lp@linecolor
            \advance\lp@dcnty\m@ne
        \ifnum\lp@dcnty>\m@ne\repeat
    \fi
    \end{picture}\endgroup}
\def\loglinpap{\lp@logxtrue\lp@logyfalse\def\lp@texttwo{log--lin:}\lp@logpap}
\def\loglogpap{\lp@logxtrue\lp@logytrue\def\lp@texttwo{log--log:}\lp@logpap}
\def\linlogpap{\lp@logxfalse\lp@logytrue\def\lp@texttwo{lin--log:}\lp@logpap}
\def\linlinpap{\lp@logxfalse\lp@logyfalse\def\lp@texttwo{lin--lin:}\lp@logpap}
\InputIfFileExists{logpap.cfg}%
    {\typeout{Package logpap Info: Local config file logpap.cfg used}}{}
\endinput
%%
%% End of file `logpap.sty'.
