diff options
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/bidi/lettrine-xetex-bidi.def')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/bidi/lettrine-xetex-bidi.def | 121 |
1 files changed, 73 insertions, 48 deletions
diff --git a/Master/texmf-dist/tex/xelatex/bidi/lettrine-xetex-bidi.def b/Master/texmf-dist/tex/xelatex/bidi/lettrine-xetex-bidi.def index 1d87abed465..ba25785ae73 100644 --- a/Master/texmf-dist/tex/xelatex/bidi/lettrine-xetex-bidi.def +++ b/Master/texmf-dist/tex/xelatex/bidi/lettrine-xetex-bidi.def @@ -17,7 +17,7 @@ %% by Vafa Khalighi. %% %% -%% \CheckSum{50462} +%% \CheckSum{50625} %% \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 @@ -34,10 +34,11 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %% -\ProvidesFile{lettrine-xetex-bidi.def}[2015/02/17 v0.5 bidi adaptations for lettrine package for XeTeX engine] +\ProvidesFile{lettrine-xetex-bidi.def}[2018/10/01 v0.6 bidi adaptations for lettrine package for XeTeX engine] \def\@lettrine[#1]#2#3{% - \setcounter{L@lines}{\theDefaultLines}% - \setcounter{L@depth}{\theDefaultDepth}% + \def\l@initial{#2}\let\l@refstring\l@initial + \setcounter{L@lines}{\value{DefaultLines}}% + \setcounter{L@depth}{\value{DefaultDepth}}% \renewcommand*{\L@hang}{\DefaultLhang}% \renewcommand*{\L@oversize}{\DefaultLoversize}% \renewcommand*{\L@raise}{\DefaultLraise}% @@ -48,6 +49,20 @@ \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 + \ifLettrineSelfRef\L@selfreftrue\else\L@selfreffalse\fi + \setkeys{L}{#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 \begingroup @@ -69,51 +84,52 @@ \def\KV@prefix{KV@L@}% \let\@tempc\relax \expandafter\KV@do\l@LOKeys,\relax, - \sbox{\L@lbox}{\LettrineFont #2}% + \setupL@lbox \setlength{\LettrineWidth}{\wd\L@lbox}% \def\KV@prefix{KV@L@}% \let\@tempc\relax \expandafter\KV@do\l@LOKeys,\relax, + \setkeys{L}{#1}% \fi - \setkeys{L}{#1}% - \ifL@image - \sbox{\L@lbox}{\LettrineFontEPS{#2}}% + \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 + (no accent, loversize=0),\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 - \sbox{\L@lbox}{\LettrineFont #2}% + \addtolength{\L@first}{-\L@target@tht}% + \addtolength{\L@lraise}{-\L@target@dp}% \fi - \sbox{\L@tbox}{\LettrineTextFont{#3}}% - \@tempdima=\baselineskip - \ifnum\theL@lines=1 - \setlength{\L@first}{\ht\L@lbox}% - \addtolength{\L@first}{-\ht\L@tbox}% - \setlength{\L@lraise}{\z@}% - \else - \setlength{\L@first}{-\theL@lines\@tempdima}% - \addtolength{\L@first}{\@tempdima}% - \sbox{\@tempboxa}{\LettrineTextFont x}% - \addtolength{\L@first}{-\ht\@tempboxa}% - \setlength{\L@lraise}{-\L@raise\L@first}% - \addtolength{\L@first}{\L@lraise}% - \addtolength{\L@first}{\ht\L@lbox}% - \addtolength{\L@lraise}{-\theL@lines\@tempdima}% - \addtolength{\L@lraise}{\@tempdima}% - \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 + \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 - \vskip\@tempcnta\baselineskip - \else - \vskip\L@first - \fi - \fi + \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}% @@ -126,23 +142,32 @@ \addtolength{\L@next}{-\L@Nindent}% \addtolength{\L@Pindent}{\rightmargin}% \addtolength{\L@Nindent}{\rightmargin}% - \setlength{\LettrineWidth}{\wd\L@lbox}% - \setlength{\LettrineHeight}{\ht\L@lbox}% - \setlength{\LettrineDepth}{\dp\L@lbox}% \addtocounter{L@lines}{1}% - \addtocounter{L@lines}{\the\c@L@depth}% - \if@RTL\def\L@parshape{\c@L@lines 0pt \the\L@first}\else\def\L@parshape{\c@L@lines \the\L@Pindent \the\L@first}\fi + \addtocounter{L@lines}{\value{L@depth}}% + \if@RTL + \def\L@parshape{\c@L@lines \z@ \the\L@first}% + \else + \def\L@parshape{\c@L@lines \the\L@Pindent \the\L@first}% + \fi \@tempcnta=\tw@ \@whilenum \@tempcnta<\c@L@lines\do{% - \if@RTL\edef\L@parshape{\L@parshape 0pt \the\L@next}\else\edef\L@parshape{\L@parshape \the\L@Nindent \the\L@next}\fi + \if@RTL + \edef\L@parshape{\L@parshape \z@ \the\L@next}% + \else + \edef\L@parshape{\L@parshape \the\L@Nindent \the\L@next}% + \fi \addtolength{\L@Nindent}{\L@slope}% \addtolength{\L@next}{-\L@slope}% \advance\@tempcnta\@ne}% - \if@RTL \edef\L@parshape{\L@parshape 0pt \the\linewidth}\else\edef\L@parshape{\L@parshape \rightmargin \the\linewidth}\fi + \if@RTL + \edef\L@parshape{\L@parshape \z@ \the\linewidth}% + \else + \edef\L@parshape{\L@parshape \rightmargin \the\linewidth}% + \fi \noindent \parshape=\L@parshape\relax \smash{\llap{\mbox{\L@ante}\raisebox{\L@lraise}{\usebox{\L@lbox}}% - \hskip \the\L@Findent}}% + \hskip \the\L@Findent}}% \usebox{\L@tbox}% } \endinput |