summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/technica/txndrop.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/technica/txndrop.sty')
-rw-r--r--macros/latex/contrib/technica/txndrop.sty179
1 files changed, 179 insertions, 0 deletions
diff --git a/macros/latex/contrib/technica/txndrop.sty b/macros/latex/contrib/technica/txndrop.sty
new file mode 100644
index 0000000000..cc2140c5a7
--- /dev/null
+++ b/macros/latex/contrib/technica/txndrop.sty
@@ -0,0 +1,179 @@
+% 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
+}