% The code in this package comes from version 1.4b of the package 
% "lettrine" by Daniel Flipo, with modifications to adapt it to
% the special environment of Technica domains and to reduce
% the amount of TeX resources used.
%
% The current version of "lettrine" is available on CTAN at
% tex-archive/macros/latex/contrib/lettrine                   
%
% The package is NOT a replacement for "lettrine" and cannot be used
% indipendently of the Technica suite.
%
% Copyright  Gianfranco Boggio-Togna 2006
%
% This program may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version~1.2
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.2 or later is part of all distributions of LaTeX  
% version 1999/12/01 or later.
%
% This program consists of the file txndrop.sty
%
\NeedsTeXFormat{LaTeX2e}[1994/11/04]
\ProvidesPackage{txndrop} [2006/10/15 Technica]
\def \DropCapDefaultLines {2}
\def \DropCapDefaultLoversize {0}
\def \DropCapDefaultLraise {0}
\def \DropCapDefaultLhang {0}
\def \DropCapDefaultFindent {\z@}
\def \DropCapDefaultNindent {0.5em}
\def \DropCapDefaultSlope {\z@}
\chardef \TXNd@letter = 1\relax
\chardef \TXNd@text = 3\relax
\def \TXNd@hang     {}
\def \TXNd@oversize {}
\def \TXNd@raise    {}
\def \TXNd@ante     {}
\def \DropCapTextFont {\scshape}
\def \TXNd@DropCap@height {%
   \@tempdima = \baselineskip
   \dimen@ = \TXN@counter \@tempdima
   \ifnum \TXN@counter > \@ne
     \advance \dimen@ by -\@tempdima
   \fi
   \global \setbox \TXNd@text = \hbox {\DropCapTextFont x}%
   \advance \dimen@ by \ht\TXNd@text
   \advance \dimen@ by \TXNd@oversize\dimen@
   \edef \TXNd@height {\the\dimen@\relax}%
}
\def \DropCapFontHook {}
\def \DropCapFont {%
   \TXNd@DropCap@height 
   \global \setbox \TXNd@text = \hbox {%
     \DropCapFontHook\fontsize{\TXNd@height}{\TXNd@height}\selectfont X}%
   \@tempcntb =\ht\TXNd@text
   \dimen@ = \TXNd@height \relax
   \@tempcnta = \dimen@
   \multiply \@tempcnta by 100\relax
   \divide \@tempcntb by 100\relax
   \divide \@tempcnta by \@tempcntb
   \advance \@tempcnta by -9999\relax
   \ifnum \@tempcnta > \z@
     \def \TXN@temp {1.\the\@tempcnta}%
   \else
     \def \TXN@temp {1}%
   \fi
   \DropCapFontHook
   \dimen@ = \TXNd@height \relax
   \fontsize{\TXN@temp\dimen@}{\TXN@temp\dimen@}%
   \selectfont
}
\newcommand {\DropCapFontEPS} {%
   \TXNd@DropCap@height 
   \dimen@ = \TXNd@height \relax
   \includegraphics[height=\dimen@]%
}

\define@key{TXNd}{lines}{\TXN@counter = #1\relax}
\define@key{TXNd}{lhang}{\edef \TXNd@hang {#1}}
\define@key{TXNd}{loversize}{\edef \TXNd@oversize {#1}}
\define@key{TXNd}{lraise}{\edef \TXNd@raise {#1}}
\define@key{TXNd}{ante}{\edef \TXNd@ante {#1}}
\define@key{TXNd}{findent}{\edef \TXNd@Findent {#1}}
\define@key{TXNd}{nindent}{\edef \TXNd@Nindent {#1}}
\define@key{TXNd}{slope}{\edef \TXNd@slope {#1}}

\newcommand {\TXNd@DropCap} [3][] {%
  \begingroup
  \TXN@counter =       \DropCapDefaultLines \relax
  \edef \TXNd@hang     {\DropCapDefaultLhang}%
  \edef \TXNd@oversize {\DropCapDefaultLoversize}%
  \edef \TXNd@raise    {\DropCapDefaultLraise}%
  \edef \TXNd@ante     {}%
  \edef \TXNd@Findent  {\DropCapDefaultFindent}%
  \edef \TXNd@Nindent  {\DropCapDefaultNindent}%
  \edef \TXNd@slope    {\DropCapDefaultSlope}%
  \setkeys {TXNd} {#1}%
  \global \setbox\TXNd@letter = \hbox {\DropCapFont #2}%
  \global \setbox\TXNd@text = \hbox {\DropCapTextFont #3}%
  \@tempdima = \baselineskip
  \ifnum \TXN@counter = \@ne
    \dimen@ = \ht\TXNd@letter
    \advance \dimen@ by -\ht\TXNd@text
    \def \TXNd@lraise {\z@}%
  \else
    \dimen@ = -\TXN@counter\@tempdima
    \advance \dimen@ by \@tempdima
    \setbox \@tempboxa = \hbox {\DropCapTextFont x}%
    \advance \dimen@ by -\ht\@tempboxa
    \edef \TXNd@lraise {-\TXNd@raise\dimen@}%
    \advance \dimen@ by \TXNd@lraise \relax
    \advance \dimen@ by \ht\TXNd@letter
    \TXN@dim@a = \TXNd@lraise \relax
    \advance \TXN@dim@a by -\TXN@counter\@tempdima
    \advance \TXN@dim@a by \@tempdima
    \edef \TXNd@lraise {\the\TXN@dim@a}%
  \fi
  \ifdim \dimen@ > 0.2\p@ 
    \ifTXN@withinVersus
	\else
      \vskip \dimen@ \TXN@safe
	\fi
  \fi
  \dimen@ = \wd\TXNd@letter
  \advance \dimen@ by -\TXNd@hang\wd\TXNd@letter
  \setbox\@tempboxa = \hbox {\TXNd@ante}%
  \advance \dimen@ by \wd\@tempboxa
  \advance \dimen@ by \TXNd@Findent \relax
  \TXN@dim@b = \TXN@measure
  \advance \TXN@dim@b by -\dimen@
  \dimen@@ = \TXNd@Nindent \relax
  \advance \dimen@@ by \dimen@
  \TXN@dim@a = \TXN@measure
  \advance \TXN@dim@a by -\dimen@@
  \advance \TXN@counter by \@ne
  \edef \TXNd@Pindent {\the\dimen@}%
  \ifTXN@withinProsa
    \xdef \TXNd@parshape {%
      \the\TXN@counter\space \the\dimen@\space \the\TXN@dim@b}%
    \@tempcnta = \tw@
    \@whilenum \@tempcnta < \TXN@counter \do {%
       \xdef \TXNd@parshape {%
         \space\TXNd@parshape\space \the\dimen@@\space \the\TXN@dim@a}%
       \advance \dimen@@ by \TXNd@slope \relax
       \advance \TXN@dim@a by -\TXNd@slope \relax
       \advance \@tempcnta by \@ne
    }%
    \xdef \TXNd@parshape {\TXNd@parshape \z@ \the\TXN@measure}%
  \fi
  \ifTXN@withinVersus
    \gdef \TXN@DropCap@indent {}%
    \@tempcnta = \tw@
    \@tempcntb = \@ne
    \@whilenum \@tempcnta < \TXN@counter \do {%
      {\let \\=\relax
       \xdef \TXN@DropCap@indent {\TXN@DropCap@indent\\{\the\dimen@@}}%
      }%
      \advance \dimen@@ by \TXNd@slope \relax
      \xdef \TXN@DropCap@lines {-\the\@tempcntb}%
      \advance \@tempcnta by \@ne
      \advance \@tempcntb by \@ne
    }%
  \fi
  \global \setbox \TXNd@letter = \hbox to \TXNd@Pindent {%
    \hss \TXNd@ante \raise \TXNd@lraise \box\TXNd@letter
    \hskip \TXNd@Findent\relax}%
  \global \ht \TXNd@letter = \z@
  \global \dp \TXNd@letter = \z@
  \global \ht \TXNd@text = \z@
  \global \dp \TXNd@text = \z@
  \endgroup
  \noindent \leavevmode
  \ifTXN@withinProsa
    \parshape = \TXNd@parshape
    \kern -\wd\TXNd@letter
  \fi
  \box\TXNd@letter \box \TXNd@text
}