%% %% This is file `lettrine.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% lettrine.dtx (with options: `sty') %% %% IMPORTANT NOTICE: %% For the copyright see the source file `lua-typo.dtx’. %% \NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesFile{lettrine.sty} [2023-04-18 v2.40 (Daniel Flipo)] \DeclareRelease{v1.6}{1999-03-03}{lettrine-2006-03-17.sty} \DeclareRelease{v1.9}{2012-07-20}{lettrine-2015-08-31.sty} \DeclareRelease{v2.0}{2018-07-21}{lettrine-2018-08-18.sty} \DeclareRelease{v2.3}{2022-09-25}{lettrine-2022-09-25.sty} \DeclareCurrentRelease{}{2023-04-18} \RequirePackage{xfp} \newcounter{DefaultLines} \setcounter{DefaultLines}{2} \newcounter{DefaultDepth} \newcommand*{\DefaultOptionsFile}{\relax} \newcommand*{\DefaultLoversize}{0} \newcommand*{\DefaultLraise}{0} \newcommand*{\DefaultLhang}{0} \newdimen\DefaultFindent \setlength{\DefaultFindent}{\z@} \newdimen\DefaultNindent \setlength{\DefaultNindent}{0.5em} \newdimen\DefaultSlope \setlength{\DefaultSlope}{\z@} \newdimen\DiscardVskip \setlength{\DiscardVskip}{0.2\p@} \newif\ifLettrineImage \newif\ifLettrineOnGrid \newif\ifLettrineRealHeight \newsavebox{\L@lbox} \newsavebox{\L@tbox} \newcounter{L@lines} \newcounter{L@depth} \newdimen\L@Pindent \newdimen\L@Findent \newdimen\L@Nindent \newdimen\L@lraise \newdimen\L@first \newdimen\L@next \newdimen\L@slope \newdimen\L@height \newdimen\L@novskip \newdimen\L@target@ht \newdimen\L@target@dp \newdimen\L@target@tht \newdimen\LettrineWidth \newdimen\LettrineHeight \newdimen\LettrineDepth \newcommand*{\L@file}{} \newcommand*{\L@hang}{} \newcommand*{\L@oversize}{} \newcommand*{\L@raise}{} \newcommand*{\L@ante}{} \newif\ifL@image \newif\ifL@grid \newif\ifL@realh \newcommand*{\LettrineTestString}{EFTZ} \InputIfFileExists{lettrine.cfg} {\typeout{Loading lettrine.cfg}} {\typeout{lettrine.cfg not found, using default values}} \DeclareKeys[LettrineGlobal] { lines.code = \setcounter{DefaultLines}{#1} , depth.code = \setcounter{DefaultDepth}{#1} , lhang.store = \DefaultLhang , loversize.store = \DefaultLoversize , lraise.store = \DefaultLraise , findent.code = \setlength{\DefaultFindent}{#1} , nindent.code = \setlength{\DefaultNindent}{#1} , slope.code = \setlength{\DefaultSlope}{#1} , novskip.code = \setlength{\DiscardVskip}{#1} , image.if = LettrineImage , grid.if = LettrineOnGrid , realheight.if = LettrineRealHeight , refstring.default:n = \l@initial , refstring.store = \LettrineTestString , optionsfile.store = \DefaultOptionsFile } \ProcessKeyOptions[LettrineGlobal] \DeclareKeys[LettrineLocal] { lines.code = \setcounter{L@lines}{#1} , depth.code = \setcounter{L@depth}{#1} , lhang.code = \renewcommand*{\L@hang}{#1} , loversize.code = \renewcommand*{\L@oversize}{#1} , lraise.code = \renewcommand*{\L@raise}{#1} , ante.code = \renewcommand*{\L@ante}{#1} , findent.code = \setlength{\L@Findent}{#1} , nindent.code = \setlength{\L@Nindent}{#1} , slope.code = \setlength{\L@slope}{#1} , novskip.code = \setlength{\L@novskip}{#1} , image.if = L@image , grid.if = L@grid , realheight.if = L@realh , refstring.default:n = \l@initial , refstring.store = \l@refstring } \newcommand*{\LettrineTextFont}{\scshape} \newcommand*{\LettrineSecondString}{x} \newcommand*{\LettrineFontHook}{} \def\computeL@height{% \setlength{\L@target@ht}{\ht\L@tbox}% \@tempdima=\baselineskip \setlength{\L@target@dp}{\value{L@lines}\@tempdima}% \ifnum\value{L@lines}>1 \addtolength{\L@target@dp}{-\@tempdima}% \else \addtolength{\L@target@ht}{\L@target@dp}% \setlength{\L@target@dp}{0pt}% \fi \setlength{\L@target@tht}{\L@target@ht}% \addtolength{\L@target@tht}{\L@target@dp}% \setlength{\L@height}{\L@target@tht}% \addtolength{\L@height}{\L@oversize\L@target@tht}% } \def\compute@fontsize{% \ifx\l@refstring\@empty \def\Lettrine@RefString{\LettrineTestString}% \else \def\Lettrine@RefString{\l@refstring}% \fi \sbox{\@tempboxa}{\LettrineFontHook \fontsize{\L@height}{\L@height}\selectfont \Lettrine@RefString}% \@tempcnta=\ht\@tempboxa \ifnum\@tempcnta=0 \PackageWarning{lettrine}{Unable to compute \protect\fontsize!% \MessageBreak \protect\LettrineTestString\space empty? reported} \def\L@factor{1}% \else \@tempcntb=\L@height \def\L@factor{\fpeval{\the\@tempcntb/\the\@tempcnta}}% \fi } \newcommand*{\LettrineFont}{% \LettrineFontHook \fontsize{\L@factor\L@height}{\L@factor\L@height}% \selectfont } \newcommand*{\LettrineImage}{% \LettrineFontHook\includegraphics[height=\L@height]% } \def\setupL@lbox{% \computeL@height \ifL@image \sbox{\L@lbox}{\LettrineImage{\l@initial}}% \else \compute@fontsize \sbox{\L@lbox}{\LettrineFont \l@initial}% \fi } \newcommand*{\LettrineOptionsFor}[2]{% \edef\l@tmpa{#1}% \begingroup \def\color##1##{\l@color{##1}}% \let\l@color\@gobbletwo \def\textcolor##1##{\l@textcolor{##1}}% \def\l@textcolor##1##2##3{##3}% \xdef\l@tmpb{\l@initial}% \endgroup \ifx\l@tmpa\l@tmpb \SetKeys[LettrineLocal]{#2}\fi } \def\lettrine{\@ifnextchar[\@lettrine{\@lettrine[]}} \def\@lettrine[#1]#2#3{% \def\l@initial{#2}\let\l@refstring\@empty \setcounter{L@lines}{\value{DefaultLines}}% \setcounter{L@depth}{\value{DefaultDepth}}% \renewcommand*{\L@hang}{\DefaultLhang}% \renewcommand*{\L@oversize}{\DefaultLoversize}% \renewcommand*{\L@raise}{\DefaultLraise}% \renewcommand*{\L@ante}{}% \setlength{\L@Findent}{\DefaultFindent}% \setlength{\L@Nindent}{\DefaultNindent}% \setlength{\L@slope}{\DefaultSlope}% \setlength{\L@novskip}{\DiscardVskip}% \ifLettrineImage\L@imagetrue\else\L@imagefalse\fi \ifLettrineOnGrid\L@gridtrue\else\L@gridfalse\fi \ifLettrineRealHeight\L@realhtrue\else\L@realhfalse\fi \SetKeys[LettrineLocal]{#1}% \sbox{\L@tbox}{\LettrineTextFont{\LettrineSecondString}}% \ifL@realh \def\@tempa{#3}% \ifx\@tempa\@empty \PackageWarning{lettrine.sty}% {Empty second argument,\MessageBreak ignoring option `realheight';}% \else \sbox{\L@tbox}{{\LettrineTextFont{#3}}}% \fi \fi \if\DefaultOptionsFile\relax \else \setupL@lbox \setlength{\LettrineWidth}{\wd\L@lbox}% \InputIfFileExists{\DefaultOptionsFile}% {}% {\PackageWarning{lettrine.sty}% {File \DefaultOptionsFile\space not found}% }% \SetKeys[LettrineLocal]{#1}% \fi \setupL@lbox \setlength{\LettrineWidth}{\wd\L@lbox}% \setlength{\LettrineHeight}{\ht\L@lbox}% \setlength{\LettrineDepth}{\dp\L@lbox}% \begingroup \def\IeC##1{##1}% \@tempdima=\L@oversize pt\relax \PackageInfo{lettrine.sty}% {Targeted height = \the\L@target@tht\MessageBreak (for loversize=0, accent excluded),\MessageBreak Lettrine height = \the\LettrineHeight\space (#2)% \ifdim\@tempdima=\z@\else\space loversize=\L@oversize\fi;% \MessageBreak reported}% \endgroup \sbox{\L@tbox}{{\LettrineTextFont{#3}}}% \setlength{\L@first}{\LettrineHeight}% \setlength{\L@lraise}{\L@raise\L@target@tht}% \addtolength{\L@first}{\L@lraise}% \ifnum\value{L@lines}=1 \addtolength{\L@first}{-\ht\L@tbox}% \else \addtolength{\L@first}{-\L@target@tht}% \addtolength{\L@lraise}{-\L@target@dp}% \fi \par \ifdim\L@first>\L@novskip \ifL@grid \@tempdima=\baselineskip \@tempdimb=\@tempdima \advance\@tempdimb by \L@novskip \@tempcnta=1 \loop\ifdim\L@first>\@tempdimb \advance\@tempcnta by 1 \advance\L@first by -\@tempdima \repeat \L@first=\@tempcnta\baselineskip \fi \vskip\L@first \fi \setlength{\L@Pindent}{\wd\L@lbox}% \addtolength{\L@Pindent}{-\L@hang\wd\L@lbox}% \settowidth{\L@first}{\L@ante}% \addtolength{\L@Pindent}{\L@first}% \addtolength{\L@Pindent}{\L@Findent}% \setlength{\L@first}{\linewidth}% \addtolength{\L@first}{-\L@Pindent}% \addtolength{\L@Nindent}{\L@Pindent}% \setlength{\L@next}{\linewidth}% \addtolength{\L@next}{-\L@Nindent}% \addtolength{\L@Pindent}{\@totalleftmargin}% \addtolength{\L@Nindent}{\@totalleftmargin}% \addtocounter{L@lines}{1}% \addtocounter{L@lines}{\value{L@depth}}% \def\L@parshape{\c@L@lines \the\L@Pindent \the\L@first}% \@tempcnta=\tw@ \@whilenum \@tempcnta<\c@L@lines\do{% \edef\L@parshape{\L@parshape \the\L@Nindent \the\L@next}% \addtolength{\L@Nindent}{\L@slope}% \addtolength{\L@next}{-\L@slope}% \advance\@tempcnta\@ne}% \edef\L@parshape{\L@parshape \@totalleftmargin \the\linewidth}% \noindent \parshape=\L@parshape\relax \smash{\llap{\mbox{\L@ante}\raisebox{\L@lraise}{\usebox{\L@lbox}}% \hskip \the\L@Findent}}% \unhcopy\L@tbox\relax \ifnum\@listdepth>0 \Lreset@listparshape \fi } \newtoks\Llist@everypar \def\Lreset@listparshape{% \let\Lnew@everypar\everypar \Llist@everypar=\expandafter{\the\everypar}% \Lnew@everypar={\the\Llist@everypar \parshape=\@ne \@totalleftmargin \linewidth \relax \let\everypar\Llist@everypar }% } %% %% %% End of file `lettrine.sty'.