summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/lettrine/lettrine.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-04-18 19:45:16 +0000
committerKarl Berry <karl@freefriends.org>2023-04-18 19:45:16 +0000
commit2bf6b273bae93038ad97a10f60be274ab8a63648 (patch)
tree35d2b78dc004accbb1f676d6be9fb13e386caf89 /Master/texmf-dist/tex/latex/lettrine/lettrine.sty
parentf60813ebc3d6007c61d26e2558acd597dce4ff7a (diff)
lettrine (18apr23)
git-svn-id: svn://tug.org/texlive/trunk@66888 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/lettrine/lettrine.sty')
-rw-r--r--Master/texmf-dist/tex/latex/lettrine/lettrine.sty182
1 files changed, 76 insertions, 106 deletions
diff --git a/Master/texmf-dist/tex/latex/lettrine/lettrine.sty b/Master/texmf-dist/tex/latex/lettrine/lettrine.sty
index ab3e863b28d..58ca5035c50 100644
--- a/Master/texmf-dist/tex/latex/lettrine/lettrine.sty
+++ b/Master/texmf-dist/tex/latex/lettrine/lettrine.sty
@@ -6,41 +6,18 @@
%%
%% lettrine.dtx (with options: `sty')
%%
-%% This file is a generated file part of the lettrine package.
-%% -----------------------------------------------------------
-%%
-%% For the copyright see the source file `lettine.dtx'.
-%%
-%% This file can be distributed and/or modified under the terms
-%% of the LaTeX Project Public License either version 1.3c 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.3c or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is Daniel Flipo.
-%%
-%% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
-%%
-\NeedsTeXFormat{LaTeX2e}[2018-04-01]
+%% IMPORTANT NOTICE:
+%% For the copyright see the source file `lua-typo.dtx’.
+%%
+\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesFile{lettrine.sty}
- [2022-09-25 v2.30 (Daniel Flipo)]
-\ifdefined\DeclareRelease
- \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}
- \DeclareCurrentRelease{}{2020-03-14}
-\else
- \PackageWarning{lettrine}{Your LaTeX kernel is too old to provide
- access\MessageBreak to former versions of the lettrine package.%
- \MessageBreak If you need rollback, please upgrade%
- \MessageBreak your LaTeX kernel (2018-04-01 or newer),%
- \MessageBreak otherwise you are fine; reported}
-\fi
-\RequirePackage{xkeyval,minifp}
+ [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}
@@ -59,30 +36,6 @@
\newif\ifLettrineImage
\newif\ifLettrineOnGrid
\newif\ifLettrineRealHeight
-\InputIfFileExists{lettrine.cfg}
- {\typeout{Loading lettrine.cfg}}
- {\typeout{lettrine.cfg not found, using default values}}
-\DeclareOptionX{lines}[\value{DefaultLines}]{\setcounter{DefaultLines}{#1}}
-\DeclareOptionX{depth}[\value{DefaultDepth}]{\setcounter{DefaultDepth}{#1}}
-\DeclareOptionX{lhang}[]{\ifx#1\@empty\else
- \renewcommand*{\DefaultLhang}{#1}\fi}
-\DeclareOptionX{loversize}[]{\ifx#1\@empty\else
- \renewcommand*{\DefaultLoversize}{#1}\fi}
-\DeclareOptionX{lraise}[]{\ifx#1\@empty\else
- \renewcommand*{\DefaultLraise}{#1}}
-\DeclareOptionX{findent}[\the\DefaultFindent]{%
- \setlength{\DefaultFindent}{#1}}
-\DeclareOptionX{nindent}[\the\DefaultNindent]{%
- \setlength{\DefaultNindent}{#1}}
-\DeclareOptionX{slope}[\the\DefaultSlope]{\setlength{\DefaultSlope}{#1}}
-\DeclareOptionX{image}[true]{\csname LettrineImage#1\endcsname}
-\DeclareOptionX{grid}[true]{\csname LettrineOnGrid#1\endcsname}
-\DeclareOptionX{novskip}[\the\DiscardVskip]{\setlength{\DiscardVskip}{#1}}
-\DeclareOptionX{realheight}[true]{\csname LettrineRealHeight#1\endcsname}
-\DeclareOptionX{optionsfile}[]{\ifx#1\@empty\else
- \renewcommand*{\DefaultOptionsFile}{#1}\fi}
-\ProcessOptionsX
-
\newsavebox{\L@lbox}
\newsavebox{\L@tbox}
\newcounter{L@lines}
@@ -110,7 +63,47 @@
\newif\ifL@image
\newif\ifL@grid
\newif\ifL@realh
-\newif\ifL@selfref
+\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}{}
@@ -129,12 +122,11 @@
\setlength{\L@height}{\L@target@tht}%
\addtolength{\L@height}{\L@oversize\L@target@tht}%
}
-\newcommand*{\LettrineTestString}{EFTZ}
\def\compute@fontsize{%
- \ifL@selfref
- \def\Lettrine@RefString{\l@refstring}%
- \else
+ \ifx\l@refstring\@empty
\def\Lettrine@RefString{\LettrineTestString}%
+ \else
+ \def\Lettrine@RefString{\l@refstring}%
\fi
\sbox{\@tempboxa}{\LettrineFontHook
\fontsize{\L@height}{\L@height}\selectfont
@@ -146,7 +138,7 @@
\def\L@factor{1}%
\else
\@tempcntb=\L@height
- \MFPdiv{\the\@tempcntb}{\the\@tempcnta}\L@factor
+ \def\L@factor{\fpeval{\the\@tempcntb/\the\@tempcnta}}%
\fi
}
\newcommand*{\LettrineFont}{%
@@ -166,25 +158,20 @@
\sbox{\L@lbox}{\LettrineFont \l@initial}%
\fi
}
-\define@key{L}{lines}{\setcounter{L@lines}{#1}}
-\define@key{L}{depth}{\setcounter{L@depth}{#1}}
-\define@key{L}{lhang}{\renewcommand*{\L@hang}{#1}}
-\define@key{L}{loversize}{\renewcommand*{\L@oversize}{#1}}
-\define@key{L}{lraise}{\renewcommand*{\L@raise}{#1}}
-\define@key{L}{ante}{\renewcommand*{\L@ante}{#1}}
-\define@key{L}{findent}{\setlength{\L@Findent}{#1}}
-\define@key{L}{nindent}{\setlength{\L@Nindent}{#1}}
-\define@key{L}{slope}{\setlength{\L@slope}{#1}}
-\define@key{L}{image}[true]{\csname L@image#1\endcsname}
-\define@key{L}{grid}[true]{\csname L@grid#1\endcsname}
-\define@key{L}{realheight}[true]{\csname L@realh#1\endcsname}
-\define@key{L}{novskip}{\setlength{\L@novskip}{#1}}
-\define@key{L}{refstring}[\l@initial]{\L@selfreftrue
- \def\l@refstring{#1}}
-\newcommand*{\LettrineOptionsFor}[2]{\@namedef{l@#1-keys}{#2}}
+\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\l@initial
+ \def\l@initial{#2}\let\l@refstring\@empty
\setcounter{L@lines}{\value{DefaultLines}}%
\setcounter{L@depth}{\value{DefaultDepth}}%
\renewcommand*{\L@hang}{\DefaultLhang}%
@@ -198,7 +185,7 @@
\ifLettrineImage\L@imagetrue\else\L@imagefalse\fi
\ifLettrineOnGrid\L@gridtrue\else\L@gridfalse\fi
\ifLettrineRealHeight\L@realhtrue\else\L@realhfalse\fi
- \setkeys{L}{#1}%
+ \SetKeys[LettrineLocal]{#1}%
\sbox{\L@tbox}{\LettrineTextFont{\LettrineSecondString}}%
\ifL@realh
\def\@tempa{#3}%
@@ -207,36 +194,19 @@
{Empty second argument,\MessageBreak
ignoring option `realheight';}%
\else
- \sbox{\L@tbox}{\LettrineTextFont{#3}}%
+ \sbox{\L@tbox}{{\LettrineTextFont{#3}}}%
\fi
\fi
\if\DefaultOptionsFile\relax
\else
- \begingroup
+ \setupL@lbox
+ \setlength{\LettrineWidth}{\wd\L@lbox}%
\InputIfFileExists{\DefaultOptionsFile}%
{}%
{\PackageWarning{lettrine.sty}%
{File \DefaultOptionsFile\space not found}%
}%
- \def\color##1##{\l@color{##1}}%
- \let\l@color\@gobbletwo
- \def\textcolor##1##{\l@textcolor{##1}}%
- \def\l@textcolor##1##2##3{##3}%
- \expandafter\ifx\csname l@#2-keys\endcsname\relax
- \gdef\l@LOKeys{}%
- \else
- \xdef\l@LOKeys{\csname l@#2-keys\endcsname}%
- \fi
- \endgroup
- \def\KV@prefix{KV@L@}%
- \let\@tempc\relax
- \expandafter\KV@do\l@LOKeys,\relax,
- \setupL@lbox
- \setlength{\LettrineWidth}{\wd\L@lbox}%
- \def\KV@prefix{KV@L@}%
- \let\@tempc\relax
- \expandafter\KV@do\l@LOKeys,\relax,
- \setkeys{L}{#1}%
+ \SetKeys[LettrineLocal]{#1}%
\fi
\setupL@lbox
\setlength{\LettrineWidth}{\wd\L@lbox}%
@@ -252,7 +222,7 @@
\ifdim\@tempdima=\z@\else\space loversize=\L@oversize\fi;%
\MessageBreak reported}%
\endgroup
- \sbox{\L@tbox}{\LettrineTextFont{#3}}%
+ \sbox{\L@tbox}{{\LettrineTextFont{#3}}}%
\setlength{\L@first}{\LettrineHeight}%
\setlength{\L@lraise}{\L@raise\L@target@tht}%
\addtolength{\L@first}{\L@lraise}%
@@ -303,7 +273,7 @@
\parshape=\L@parshape\relax
\smash{\llap{\mbox{\L@ante}\raisebox{\L@lraise}{\usebox{\L@lbox}}%
\hskip \the\L@Findent}}%
- \usebox{\L@tbox}%
+ \unhcopy\L@tbox\relax
\ifnum\@listdepth>0 \Lreset@listparshape \fi
}
\newtoks\Llist@everypar
@@ -315,6 +285,6 @@
\let\everypar\Llist@everypar
}%
}
-\endinput
+%%
%%
%% End of file `lettrine.sty'.