%% This is file `dashundergaps.sty' v1.2 by Merciadri Luca.

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{dashundergaps}[2010/01/20 Dashing and underlining (phantom) text]
\PackageInfo{dashundergaps}{This is DashUnderGaps by Merciadri Luca.}

\RequirePackage{ifthen}[1994/06/01]
\PassOptionsToPackage{normalem}{ulem}
\RequirePackage{ulem}
\newboolean{dot} % false at start
\newboolean{dash} % false at start


\DeclareOption{dash}{%
\typeout{Dashing mode activated!}
\setboolean{dash}{true}
\providecommand{\dashuline}{\bgroup
\ifdim\ULdepth=\maxdimen
\settodepth\ULdepth{(j}\advance\ULdepth.4pt\fi
\markoverwith{\kern.15em
\vtop{\kern\ULdepth \hrule width .3em}%
\kern.15em}\ULon}
}


\DeclareOption{dot}{%
\typeout{Dotting mode activated!}
\setboolean{dot}{true}
\providecommand{\dotuline}{\bgroup
\ifdim\ULdepth=\maxdimen
\settodepth\ULdepth{(j}\advance\ULdepth.4pt\fi
\markoverwith{\begingroup
\advance\ULdepth0.08ex
\lower\ULdepth\hbox{\kern.15em .\kern.1em}%
\endgroup}\ULon}
}


\DeclareOption{phantomtext}{%
\typeout{Phantom mode activated! All the gaps will be filled.}
\newboolean{teachernotes} % false at start
\newcounter{nb-gaps}
\setcounter{nb-gaps}{1}
\newcounter{nth-gaps}
\setcounter{nth-gaps}{1}

\def\phantom@putbox{\ifx\UL@start\@empty \else % not inner
  \vrule\@width\z@ \LA@penalty\@M
  {\UL@skip\wd\UL@box \UL@leaders \kern-\UL@skip}%
  \hbox to\wd\UL@box{}\fi}%

\providecommand{\gap}[1]{%
\bgroup
\let\UL@putbox=\phantom@putbox
\ifthenelse{\boolean{teachernotes}}
{\textbf{#1} (\arabic{nth-gaps})}
{\ifthenelse{\boolean{dash} \AND \boolean{dot}}{\uline{#1}(\arabic{nth-gaps})}{\ifthenelse{\boolean{dash}}{\dashuline{#1} (\arabic{nth-gaps})}{%
\ifthenelse{\boolean{dot}}{\dotuline{#1} (\arabic{nth-gaps})}{\uline{#1} (\arabic{nth-gaps})}}}
}
\addtocounter{nb-gaps}{1}
\addtocounter{nth-gaps}{1}
\egroup
}}


\DeclareOption{teachernotes}{%
\typeout{Phantom mode deactivated! All the gaps will be filled with their content.}
\setboolean{teachernotes}{true}
}


\DeclareOption{displaynbgaps}{%
\typeout{Gaps counting mode activated!}
\addtocounter{nb-gaps}{-1}
\AtEndDocument{\vfill \centering \bfseries GAPS: \arabic{nb-gaps}.}
}

\ProcessOptions\relax

