texlive[67537] Master/texmf-dist: lettrine (3jul23)

commits+karl at tug.org commits+karl at tug.org
Mon Jul 3 22:12:33 CEST 2023


Revision: 67537
          http://tug.org/svn/texlive?view=revision&revision=67537
Author:   karl
Date:     2023-07-03 22:12:32 +0200 (Mon, 03 Jul 2023)
Log Message:
-----------
lettrine (3jul23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-de.pdf
    trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-fr.pdf
    trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-fr.tex
    trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-lua.pdf
    trunk/Master/texmf-dist/doc/latex/lettrine/lettrine.pdf
    trunk/Master/texmf-dist/source/latex/lettrine/lettrine.dtx
    trunk/Master/texmf-dist/tex/latex/lettrine/lettrine.cfg
    trunk/Master/texmf-dist/tex/latex/lettrine/lettrine.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/lettrine/lettrine-2023-04-18.sty

Modified: trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-de.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-fr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-fr.tex	2023-07-03 20:12:16 UTC (rev 67536)
+++ trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-fr.tex	2023-07-03 20:12:32 UTC (rev 67537)
@@ -10,6 +10,7 @@
   \renewcommand{\ttdefault}{lmtt} % Courier chasse trop !
 \fi
 \usepackage{microtype}
+\usepackage{multicol,ragged2e}
 \usepackage{Rothdn, Typocaps}   % cfr-initials (p. 3)
 
 \usepackage{graphicx,color}
@@ -230,6 +231,47 @@
 
 \newpage
 \begin{center}
+\large\bfseries Multicolonnes : Ajustement de \texttt{novskip}
+\end{center}
+
+\renewcommand{\LettrineFontHook}{}
+
+Avec \texttt{loversize=0.2} pas de problème :
+
+\vspace{\baselineskip}
+\begin{multicols}{2}\RaggedRight
+  \lettrine[loversize=0.2]{E}{n plein marais de la Souteyranne},
+à quelques kilomètres au nord d'Aigues-Mortes la Tour Carbonnière.
+Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès
+terrestre de la ville fortifiée, celle qui menait à Psalmody,
+l'une des « abbayes de sel» dont il ne reste que des vestiges.
+\end{multicols}
+
+Avec \texttt{loversize=0.6} il y a un gros décallage entre colonnes :
+
+\vspace{\baselineskip}
+\begin{multicols}{2}\RaggedRight
+  \lettrine[loversize=0.6]{E}{n plein marais de la Souteyranne},
+à quelques kilomètres au nord d'Aigues-Mortes la Tour Carbonnière.
+Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès
+terrestre de la ville fortifiée, celle qui menait à Psalmody,
+l'une des « abbayes de sel» dont il ne reste que des vestiges.
+\end{multicols}
+
+Correction : ajouter \texttt{novskip=13pt} ($>$ Top vskip = 12.16344pt lu
+dans le fichier \texttt{.log})
+
+\begin{multicols}{2}\RaggedRight
+  \lettrine[loversize=0.6,novskip=13pt]{E}{n plein marais de la Souteyranne},
+à quelques kilomètres au nord d'Aigues-Mortes la Tour Carbonnière.
+Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès
+terrestre de la ville fortifiée, celle qui menait à Psalmody,
+l'une des « abbayes de sel» dont il ne reste que des vestiges.
+\end{multicols}
+
+
+\newpage
+\begin{center}
 \large\bfseries Utilisation d'une image comme lettrine
 \end{center}
 

Modified: trunk/Master/texmf-dist/doc/latex/lettrine/lettrine-demo-lua.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/lettrine/lettrine.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/lettrine/lettrine.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/lettrine/lettrine.dtx	2023-07-03 20:12:16 UTC (rev 67536)
+++ trunk/Master/texmf-dist/source/latex/lettrine/lettrine.dtx	2023-07-03 20:12:32 UTC (rev 67537)
@@ -106,7 +106,7 @@
 \ProvidesFile{lettrine.dtx}
 %</dtx>
 %<*sty|dtx>
-             [2023-04-18 v2.40 (Daniel Flipo)]
+             [2023-07-02 v2.50 (Daniel Flipo)]
 %</sty|dtx>
 % \fi
 %
@@ -195,7 +195,7 @@
 %    number of |\baselineskip|.  This option is meant for grid
 %    typesetting.
 %  \item \lopt{novskip=}\meta{dimen} overrides |\DiscardVskip|
-%    (default=0.2pt).  In some cases (see options \lopt{lraise},
+%    (default=1pt).  In some cases (see options \lopt{lraise},
 %    \lopt{loversize} or accentuated dropped capitals,…) the top of
 %    the dropped capital will raise above the top of following text
 %    (usually in small caps), this will trigger a corresponding vertical
@@ -260,8 +260,10 @@
 %    Another possibility to colour initials globally is described
 %    below, see |\LettrineFontHook|.
 %
-%    Three dimensions, |\LettrineWidth|, |\LettrineHeight| and
-%    |\LettrineDepth|, store the final size of the initial.
+%    Three dimensions, |\LettrineHeight|, |\LettrineDepth| and
+%    |\LettrineWidth| hold the final size of the initial
+%    (\textit{height} and \textit{depth} being measured from
+%    the paragraph’s  $n$-th baseline if |lines=|$n$.
 %
 %    Have a look at files \file{lettrine-demo-fr.tex} and
 %    \file{lettrine-demo-lua.tex} and at the resulting PDFs in the
@@ -293,7 +295,7 @@
 %      \item |\setlength{\DefaultFindent}{0pt}|,
 %      \item |\setlength{\DefaultNindent}{0.5em}|,
 %      \item |\setlength{\DefaultSlope}{0pt}|.
-%      \item |\setlength{\DiscardVskip}{0.2pt}|,
+%      \item |\setlength{\DiscardVskip}{1pt}|,
 %      \item |\LettrineImagefalse|,
 %      \item |\LettrineOnGridfalse|,
 %      \item |\LettrineRealHeightfalse|.
@@ -384,7 +386,24 @@
 %    (Palatino, Times, Utopia…), or any OpenType font, they are
 %    fully scalable too!
 %
-%    \newpage{}
+%    \newpage
+%    \textbf{Breaking change in version~2.50:} in order to improve the
+%    alignment of side by side parboxes starting with a dropped cap, the
+%    internals of the |\lettrine{}| command have changed. Formerly, the
+%    initial was completely smashed (\textit{height}=0,
+%    \textit{depth}=0) and a |\vskip| was added in case the initial
+%    sticked out too much above the paragraph’s first baseline. From
+%    version~2.50 on, the initial gets a null \textit{depth} and its
+%    proper \textit{height} (measured from the paragraph’s first
+%    baseline, please note that it is different from |\LettrineHeight|).
+%    This change has the following side effect: in multicolumn
+%    typesetting, when a dropped cap starts a column and sticks out
+%    significantly above the baseline, it might be necessary to `smash’
+%    the dropped cap and eventually to add a |\vspace{}| before
+%    the multicolumn environment. See \file{lettrine-demo-fr.pdf} p.~4
+%    for an example.  Using the rollback mechanism to switch back to
+%    version~2.40 is another option: |\usepackage{lettrine}[=v2.4]|.
+%
 %    \textbf{Known issues:}
 %    \begin{itemize}
 %    \item Nothing is done to prevent page-breaking in a paragraph
@@ -425,6 +444,7 @@
 %
 % \StopEventually{}
 %
+%    \newpage
 %    \section{\TeX{}nical details}
 %
 % \iffalse
@@ -447,7 +467,8 @@
 \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}
+\DeclareRelease{v2.4}{2023-04-18}{lettrine-2023-04-18.sty}
+\DeclareCurrentRelease{}{2023-07-02}
 \RequirePackage{xfp}
 %    \end{macrocode}
 %
@@ -470,6 +491,9 @@
 %
 % \changes{v2.1}{2018/08/14}{New option `refstring’.}
 %
+% \changes{v2.50}{2023/05/30}{\cs{DiscardVskip} default value enlarged
+%   from 0.2pt to 1pt.}
+%
 %    \begin{macrocode}
 \newcounter{DefaultLines}
 \setcounter{DefaultLines}{2}
@@ -485,7 +509,7 @@
 \newdimen\DefaultSlope
 \setlength{\DefaultSlope}{\z@}
 \newdimen\DiscardVskip
-\setlength{\DiscardVskip}{0.2\p@}
+\setlength{\DiscardVskip}{1\p@}
 \newif\ifLettrineImage
 \newif\ifLettrineOnGrid
 \newif\ifLettrineRealHeight
@@ -499,6 +523,7 @@
 % \changes{v1.6}{2015/02/06}{Added newif \cs{ifL at grid}.}
 %
 %    \begin{macrocode}
+\newsavebox{\L at lettrine}
 \newsavebox{\L at lbox}
 \newsavebox{\L at tbox}
 \newcounter{L at lines}
@@ -512,6 +537,7 @@
 \newdimen\L at slope
 \newdimen\L at height
 \newdimen\L at novskip
+\newdimen\L at ruleht
 \newdimen\L at target@ht
 \newdimen\L at target@dp
 \newdimen\L at target@tht
@@ -944,23 +970,6 @@
   \setlength{\LettrineHeight}{\ht\L at lbox}%
   \setlength{\LettrineDepth}{\dp\L at lbox}%
 %    \end{macrocode}
-%
-% \changes{v2.0}{2018/07/21}{Add informations about targeted
-%    and actual height of the initial to the .log file.}
-%
-%    and print some informations about accuracy to the log file,
-%    \begin{macrocode}
-  \begingroup
-  \def\IeC##1{##1}%
-  \@tempdima=\L at oversize pt\relax
-  \PackageInfo{lettrine.sty}%
-    {Targeted height = \the\L at target@tht\MessageBreak
-     (for loversize=0, accent excluded),\MessageBreak
-     Lettrine height = \the\LettrineHeight\space (#2)%
-     \ifdim\@tempdima=\z@\else\space loversize=\L at oversize\fi;%
-     \MessageBreak reported}%
-  \endgroup
-%    \end{macrocode}
 %    and reset |\L at tbox|’s content (mandatory in case
 %    \lopt{realheight=false}):
 %
@@ -972,9 +981,9 @@
   \sbox{\L at tbox}{{\LettrineTextFont{#3}}}%
 %    \end{macrocode}
 %
-%    Start a new paragraph, skipping the necessary amount of space
-%    if the dropped capital sticks out of the top of paragraph.
-%    We use |\L at first| to compute the amount of space to be skipped.
+%    Start a new paragraph and compute in |\L at ruleht| the height of
+%    the top part of the dropped capital which raises above the
+%    paragraph’s first baseline.
 %
 % \changes{v0.9}{1998/02/23}{Calculations of length
 %    \cs{L at first} changed.  Do not `vskip’ small lengths ($<$0.2pt),
@@ -991,40 +1000,53 @@
 %    |\LettrineFont|) is |\L at target@tht|.
 %
 %    \begin{macrocode}
-  \setlength{\L at first}{\LettrineHeight}%
+  \par
+  \setlength{\L at ruleht}{\LettrineHeight}%
   \setlength{\L at lraise}{\L at raise\L at target@tht}%
-  \addtolength{\L at first}{\L at lraise}%
-  \ifnum\value{L at lines}=1
-    \addtolength{\L at first}{-\ht\L at tbox}%
-  \else
-    \addtolength{\L at first}{-\L at target@tht}%
+  \addtolength{\L at ruleht}{\L at lraise}%
+  \ifnum\value{L at lines}>\@ne
+    \@tempcnta=\value{L at lines}%
+    \advance\@tempcnta \m at ne
+    \addtolength{\L at ruleht}{-\@tempcnta\baselineskip}%
     \addtolength{\L at lraise}{-\L at target@dp}%
   \fi
-  \par
 %    \end{macrocode}
-%    |\L at first| now holds the height of the needed |\vskip|; if too
-%    small it will be discarded.
+%    When |\L at ruleht| is larger than |\baselineskip - \L at novskip| and
+%    the \lopt{grid} option is \lopt{true}, let’s skip an integer number
+%    of |\baselineskip| (and smash the dropped cap, see below).
 %    \begin{macrocode}
-  \ifdim\L at first>\L at novskip
-%    \end{macrocode}
-%    When the \lopt{grid} option is \lopt{true}, let’s round up
-%    |\L at first| to the next integer number of |\baselineskip|.
-%    \begin{macrocode}
+  \@tempdima=\L at ruleht
+  \advance\@tempdima \L at novskip
+  \@tempdimb=\baselineskip
+  \ifdim\@tempdima>\@tempdimb
     \ifL at grid
-      \@tempdima=\baselineskip
-      \@tempdimb=\@tempdima
-      \advance\@tempdimb by \L at novskip
-      \@tempcnta=1
-      \loop\ifdim\L at first>\@tempdimb
-         \advance\@tempcnta by 1
-         \advance\L at first by -\@tempdima
+      \@tempcnta=\z@
+      \loop\ifdim\@tempdima>\@tempdimb
+         \advance\@tempcnta \@ne
+         \advance\@tempdima -\@tempdimb
       \repeat
-      \L at first=\@tempcnta\baselineskip
+      \vskip\@tempcnta\baselineskip
     \fi
-    \vskip\L at first
   \fi
 %    \end{macrocode}
-%    Again, we (mis)use the length |\L at first| to compute the width of
+%
+% \changes{v2.0}{2018/07/21}{Add informations about targeted
+%    and actual height of the initial to the .log file.}
+%
+%   Print some informations about accuracy to the log file,
+%    \begin{macrocode}
+  \begingroup
+  \def\IeC##1{##1}%
+  \@tempdima=\L at oversize pt\relax
+  \PackageInfo{lettrine.sty}%
+    {Targeted height = \the\L at target@tht\MessageBreak
+     (for loversize=0, accent excluded),\MessageBreak
+     Lettrine height = \the\LettrineHeight\space (#2)%
+     \ifdim\@tempdima>\z@\space loversize=\L at oversize\fi;%
+     \MessageBreak reported}%
+  \endgroup
+%    \end{macrocode}
+%    We (mis)use the length |\L at first| to compute the width of
 %    the text eventually coming before the dropped capital.  It is
 %    reset later on to hold the first line’s length.
 %    \begin{macrocode}
@@ -1091,11 +1113,16 @@
 % \changes{v2.40}{2023/04/18}{Replace \cs{usebox} by \cs{unhcopy}
 %    for box \cs{L at tbox} to allow footnote calls and microtype action.}
 %
+% \changes{v2.50}{2023/07/02}{Remove the top \cs{vskip}, smash the
+%   dropped cap, add a \cs{rule} to mimic its height above the baseline
+%   instead.}
+%
 %    Write the dropped capital into the left margin, and wrap
 %    the rest of paragraph around it.
 %    \begin{macrocode}
-  \smash{\llap{\mbox{\L at ante}\raisebox{\L at lraise}{\usebox{\L at lbox}}%
-         \hskip \the\L at Findent}}%
+  \llap{\mbox{\L at ante}\smash{\raisebox{\L at lraise}{\usebox{\L at lbox}}}%
+        \ifL at grid\else\rule{0pt}{\L at ruleht}\fi
+        \hskip \the\L at Findent}%
   \unhcopy\L at tbox\relax
 %    \end{macrocode}
 %
@@ -1155,7 +1182,7 @@
 %%\setlength{\DefaultFindent}{0pt}
 %%\setlength{\DefaultNindent}{0.5em}
 %%\setlength{\DefaultSlope}{0mm}
-%%\setlength{\DiscardVskip}{0.2pt}
+%%\setlength{\DiscardVskip}{1pt}
 %%
 %% Theses are *flags* (value=true/false):
 %%\LettrineImagefalse

Added: trunk/Master/texmf-dist/tex/latex/lettrine/lettrine-2023-04-18.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lettrine/lettrine-2023-04-18.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lettrine/lettrine-2023-04-18.sty	2023-07-03 20:12:32 UTC (rev 67537)
@@ -0,0 +1,290 @@
+%%
+%% 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 at lbox}
+\newsavebox{\L at tbox}
+\newcounter{L at lines}
+\newcounter{L at depth}
+\newdimen\L at Pindent
+\newdimen\L at Findent
+\newdimen\L at Nindent
+\newdimen\L at lraise
+\newdimen\L at first
+\newdimen\L at next
+\newdimen\L at slope
+\newdimen\L at height
+\newdimen\L at novskip
+\newdimen\L at target@ht
+\newdimen\L at target@dp
+\newdimen\L at target@tht
+\newdimen\LettrineWidth
+\newdimen\LettrineHeight
+\newdimen\LettrineDepth
+\newcommand*{\L at file}{}
+\newcommand*{\L at hang}{}
+\newcommand*{\L at oversize}{}
+\newcommand*{\L at raise}{}
+\newcommand*{\L at ante}{}
+\newif\ifL at image
+\newif\ifL at grid
+\newif\ifL at 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 at initial                    ,
+    refstring.store   = \LettrineTestString             ,
+    optionsfile.store = \DefaultOptionsFile
+  }
+\ProcessKeyOptions[LettrineGlobal]
+\DeclareKeys[LettrineLocal]
+  {
+    lines.code        = \setcounter{L at lines}{#1}         ,
+    depth.code        = \setcounter{L at depth}{#1}         ,
+    lhang.code        = \renewcommand*{\L at hang}{#1}      ,
+    loversize.code    = \renewcommand*{\L at oversize}{#1}  ,
+    lraise.code       = \renewcommand*{\L at raise}{#1}     ,
+    ante.code         = \renewcommand*{\L at ante}{#1}      ,
+    findent.code      = \setlength{\L at Findent}{#1}       ,
+    nindent.code      = \setlength{\L at Nindent}{#1}       ,
+    slope.code        = \setlength{\L at slope}{#1}         ,
+    novskip.code      = \setlength{\L at novskip}{#1}       ,
+    image.if          = L at image                          ,
+    grid.if           = L at grid                           ,
+    realheight.if     = L at realh                          ,
+    refstring.default:n = \l at initial                     ,
+    refstring.store   = \l at refstring
+ }
+\newcommand*{\LettrineTextFont}{\scshape}
+\newcommand*{\LettrineSecondString}{x}
+\newcommand*{\LettrineFontHook}{}
+\def\computeL at height{%
+  \setlength{\L at target@ht}{\ht\L at tbox}%
+  \@tempdima=\baselineskip
+  \setlength{\L at target@dp}{\value{L at lines}\@tempdima}%
+  \ifnum\value{L at lines}>1
+    \addtolength{\L at target@dp}{-\@tempdima}%
+  \else
+    \addtolength{\L at target@ht}{\L at target@dp}%
+    \setlength{\L at target@dp}{0pt}%
+  \fi
+  \setlength{\L at target@tht}{\L at target@ht}%
+  \addtolength{\L at target@tht}{\L at target@dp}%
+  \setlength{\L at height}{\L at target@tht}%
+  \addtolength{\L at height}{\L at oversize\L at target@tht}%
+}
+\def\compute at fontsize{%
+  \ifx\l at refstring\@empty
+    \def\Lettrine at RefString{\LettrineTestString}%
+  \else
+    \def\Lettrine at RefString{\l at refstring}%
+  \fi
+  \sbox{\@tempboxa}{\LettrineFontHook
+                    \fontsize{\L at height}{\L at height}\selectfont
+                    \Lettrine at RefString}%
+  \@tempcnta=\ht\@tempboxa
+  \ifnum\@tempcnta=0
+    \PackageWarning{lettrine}{Unable to compute \protect\fontsize!%
+    \MessageBreak \protect\LettrineTestString\space empty? reported}
+    \def\L at factor{1}%
+  \else
+    \@tempcntb=\L at height
+    \def\L at factor{\fpeval{\the\@tempcntb/\the\@tempcnta}}%
+  \fi
+}
+\newcommand*{\LettrineFont}{%
+   \LettrineFontHook
+   \fontsize{\L at factor\L at height}{\L at factor\L at height}%
+   \selectfont
+}
+\newcommand*{\LettrineImage}{%
+   \LettrineFontHook\includegraphics[height=\L at height]%
+}
+\def\setupL at lbox{%
+  \computeL at height
+  \ifL at image
+    \sbox{\L at lbox}{\LettrineImage{\l at initial}}%
+  \else
+    \compute at fontsize
+    \sbox{\L at lbox}{\LettrineFont \l at initial}%
+  \fi
+}
+\newcommand*{\LettrineOptionsFor}[2]{%
+  \edef\l at tmpa{#1}%
+  \begingroup
+    \def\color##1##{\l at color{##1}}%
+    \let\l at color\@gobbletwo
+    \def\textcolor##1##{\l at textcolor{##1}}%
+    \def\l at textcolor##1##2##3{##3}%
+    \xdef\l at tmpb{\l at initial}%
+  \endgroup
+  \ifx\l at tmpa\l at tmpb \SetKeys[LettrineLocal]{#2}\fi
+  }
+\def\lettrine{\@ifnextchar[\@lettrine{\@lettrine[]}}
+\def\@lettrine[#1]#2#3{%
+  \def\l at initial{#2}\let\l at refstring\@empty
+  \setcounter{L at lines}{\value{DefaultLines}}%
+  \setcounter{L at depth}{\value{DefaultDepth}}%
+  \renewcommand*{\L at hang}{\DefaultLhang}%
+  \renewcommand*{\L at oversize}{\DefaultLoversize}%
+  \renewcommand*{\L at raise}{\DefaultLraise}%
+  \renewcommand*{\L at ante}{}%
+  \setlength{\L at Findent}{\DefaultFindent}%
+  \setlength{\L at Nindent}{\DefaultNindent}%
+  \setlength{\L at slope}{\DefaultSlope}%
+  \setlength{\L at novskip}{\DiscardVskip}%
+  \ifLettrineImage\L at imagetrue\else\L at imagefalse\fi
+  \ifLettrineOnGrid\L at gridtrue\else\L at gridfalse\fi
+  \ifLettrineRealHeight\L at realhtrue\else\L at realhfalse\fi
+  \SetKeys[LettrineLocal]{#1}%
+  \sbox{\L at tbox}{\LettrineTextFont{\LettrineSecondString}}%
+  \ifL at realh
+    \def\@tempa{#3}%
+    \ifx\@tempa\@empty
+      \PackageWarning{lettrine.sty}%
+        {Empty second argument,\MessageBreak
+         ignoring option `realheight';}%
+    \else
+      \sbox{\L at tbox}{{\LettrineTextFont{#3}}}%
+    \fi
+  \fi
+  \if\DefaultOptionsFile\relax
+  \else
+    \setupL at lbox
+    \setlength{\LettrineWidth}{\wd\L at lbox}%
+    \InputIfFileExists{\DefaultOptionsFile}%
+      {}%
+      {\PackageWarning{lettrine.sty}%
+         {File \DefaultOptionsFile\space not found}%
+      }%
+    \SetKeys[LettrineLocal]{#1}%
+  \fi
+  \setupL at lbox
+  \setlength{\LettrineWidth}{\wd\L at lbox}%
+  \setlength{\LettrineHeight}{\ht\L at lbox}%
+  \setlength{\LettrineDepth}{\dp\L at lbox}%
+  \begingroup
+  \def\IeC##1{##1}%
+  \@tempdima=\L at oversize pt\relax
+  \PackageInfo{lettrine.sty}%
+    {Targeted height = \the\L at target@tht\MessageBreak
+     (for loversize=0, accent excluded),\MessageBreak
+     Lettrine height = \the\LettrineHeight\space (#2)%
+     \ifdim\@tempdima=\z@\else\space loversize=\L at oversize\fi;%
+     \MessageBreak reported}%
+  \endgroup
+  \sbox{\L at tbox}{{\LettrineTextFont{#3}}}%
+  \setlength{\L at first}{\LettrineHeight}%
+  \setlength{\L at lraise}{\L at raise\L at target@tht}%
+  \addtolength{\L at first}{\L at lraise}%
+  \ifnum\value{L at lines}=1
+    \addtolength{\L at first}{-\ht\L at tbox}%
+  \else
+    \addtolength{\L at first}{-\L at target@tht}%
+    \addtolength{\L at lraise}{-\L at target@dp}%
+  \fi
+  \par
+  \ifdim\L at first>\L at novskip
+    \ifL at grid
+      \@tempdima=\baselineskip
+      \@tempdimb=\@tempdima
+      \advance\@tempdimb by \L at novskip
+      \@tempcnta=1
+      \loop\ifdim\L at first>\@tempdimb
+         \advance\@tempcnta by 1
+         \advance\L at first by -\@tempdima
+      \repeat
+      \L at first=\@tempcnta\baselineskip
+    \fi
+    \vskip\L at first
+  \fi
+  \setlength{\L at Pindent}{\wd\L at lbox}%
+  \addtolength{\L at Pindent}{-\L at hang\wd\L at lbox}%
+  \settowidth{\L at first}{\L at ante}%
+  \addtolength{\L at Pindent}{\L at first}%
+  \addtolength{\L at Pindent}{\L at Findent}%
+  \setlength{\L at first}{\linewidth}%
+  \addtolength{\L at first}{-\L at Pindent}%
+  \addtolength{\L at Nindent}{\L at Pindent}%
+  \setlength{\L at next}{\linewidth}%
+  \addtolength{\L at next}{-\L at Nindent}%
+  \addtolength{\L at Pindent}{\@totalleftmargin}%
+  \addtolength{\L at Nindent}{\@totalleftmargin}%
+  \addtocounter{L at lines}{1}%
+  \addtocounter{L at lines}{\value{L at depth}}%
+  \def\L at parshape{\c at L@lines \the\L at Pindent \the\L at first}%
+  \@tempcnta=\tw@
+  \@whilenum \@tempcnta<\c at L@lines\do{%
+     \edef\L at parshape{\L at parshape \the\L at Nindent \the\L at next}%
+     \addtolength{\L at Nindent}{\L at slope}%
+     \addtolength{\L at next}{-\L at slope}%
+     \advance\@tempcnta\@ne}%
+  \edef\L at parshape{\L at parshape \@totalleftmargin \the\linewidth}%
+  \noindent
+  \parshape=\L at parshape\relax
+  \smash{\llap{\mbox{\L at ante}\raisebox{\L at lraise}{\usebox{\L at lbox}}%
+         \hskip \the\L at Findent}}%
+  \unhcopy\L at tbox\relax
+  \ifnum\@listdepth>0 \Lreset at listparshape \fi
+}
+\newtoks\Llist at everypar
+\def\Lreset at listparshape{%
+  \let\Lnew at everypar\everypar
+  \Llist at everypar=\expandafter{\the\everypar}%
+  \Lnew at everypar={\the\Llist at everypar
+                  \parshape=\@ne \@totalleftmargin \linewidth \relax
+                  \let\everypar\Llist at everypar
+                 }%
+}
+%% 
+%%
+%% End of file `lettrine.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lettrine/lettrine-2023-04-18.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lettrine/lettrine.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lettrine/lettrine.cfg	2023-07-03 20:12:16 UTC (rev 67536)
+++ trunk/Master/texmf-dist/tex/latex/lettrine/lettrine.cfg	2023-07-03 20:12:32 UTC (rev 67537)
@@ -19,7 +19,7 @@
 %%\setlength{\DefaultFindent}{0pt}
 %%\setlength{\DefaultNindent}{0.5em}
 %%\setlength{\DefaultSlope}{0mm}
-%%\setlength{\DiscardVskip}{0.2pt}
+%%\setlength{\DiscardVskip}{1pt}
 %%
 %% Theses are *flags* (value=true/false):
 %%\LettrineImagefalse

Modified: trunk/Master/texmf-dist/tex/latex/lettrine/lettrine.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lettrine/lettrine.sty	2023-07-03 20:12:16 UTC (rev 67536)
+++ trunk/Master/texmf-dist/tex/latex/lettrine/lettrine.sty	2023-07-03 20:12:32 UTC (rev 67537)
@@ -11,12 +11,13 @@
 %%
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesFile{lettrine.sty}
-             [2023-04-18 v2.40 (Daniel Flipo)]
+             [2023-07-02 v2.50 (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}
+\DeclareRelease{v2.4}{2023-04-18}{lettrine-2023-04-18.sty}
+\DeclareCurrentRelease{}{2023-07-02}
 \RequirePackage{xfp}
 \newcounter{DefaultLines}
 \setcounter{DefaultLines}{2}
@@ -32,10 +33,11 @@
 \newdimen\DefaultSlope
 \setlength{\DefaultSlope}{\z@}
 \newdimen\DiscardVskip
-\setlength{\DiscardVskip}{0.2\p@}
+\setlength{\DiscardVskip}{1\p@}
 \newif\ifLettrineImage
 \newif\ifLettrineOnGrid
 \newif\ifLettrineRealHeight
+\newsavebox{\L at lettrine}
 \newsavebox{\L at lbox}
 \newsavebox{\L at tbox}
 \newcounter{L at lines}
@@ -49,6 +51,7 @@
 \newdimen\L at slope
 \newdimen\L at height
 \newdimen\L at novskip
+\newdimen\L at ruleht
 \newdimen\L at target@ht
 \newdimen\L at target@dp
 \newdimen\L at target@tht
@@ -212,6 +215,30 @@
   \setlength{\LettrineWidth}{\wd\L at lbox}%
   \setlength{\LettrineHeight}{\ht\L at lbox}%
   \setlength{\LettrineDepth}{\dp\L at lbox}%
+  \sbox{\L at tbox}{{\LettrineTextFont{#3}}}%
+  \par
+  \setlength{\L at ruleht}{\LettrineHeight}%
+  \setlength{\L at lraise}{\L at raise\L at target@tht}%
+  \addtolength{\L at ruleht}{\L at lraise}%
+  \ifnum\value{L at lines}>\@ne
+    \@tempcnta=\value{L at lines}%
+    \advance\@tempcnta \m at ne
+    \addtolength{\L at ruleht}{-\@tempcnta\baselineskip}%
+    \addtolength{\L at lraise}{-\L at target@dp}%
+  \fi
+  \@tempdima=\L at ruleht
+  \advance\@tempdima \L at novskip
+  \@tempdimb=\baselineskip
+  \ifdim\@tempdima>\@tempdimb
+    \ifL at grid
+      \@tempcnta=\z@
+      \loop\ifdim\@tempdima>\@tempdimb
+         \advance\@tempcnta \@ne
+         \advance\@tempdima -\@tempdimb
+      \repeat
+      \vskip\@tempcnta\baselineskip
+    \fi
+  \fi
   \begingroup
   \def\IeC##1{##1}%
   \@tempdima=\L at oversize pt\relax
@@ -219,34 +246,9 @@
     {Targeted height = \the\L at target@tht\MessageBreak
      (for loversize=0, accent excluded),\MessageBreak
      Lettrine height = \the\LettrineHeight\space (#2)%
-     \ifdim\@tempdima=\z@\else\space loversize=\L at oversize\fi;%
+     \ifdim\@tempdima>\z@\space loversize=\L at oversize\fi;%
      \MessageBreak reported}%
   \endgroup
-  \sbox{\L at tbox}{{\LettrineTextFont{#3}}}%
-  \setlength{\L at first}{\LettrineHeight}%
-  \setlength{\L at lraise}{\L at raise\L at target@tht}%
-  \addtolength{\L at first}{\L at lraise}%
-  \ifnum\value{L at lines}=1
-    \addtolength{\L at first}{-\ht\L at tbox}%
-  \else
-    \addtolength{\L at first}{-\L at target@tht}%
-    \addtolength{\L at lraise}{-\L at target@dp}%
-  \fi
-  \par
-  \ifdim\L at first>\L at novskip
-    \ifL at grid
-      \@tempdima=\baselineskip
-      \@tempdimb=\@tempdima
-      \advance\@tempdimb by \L at novskip
-      \@tempcnta=1
-      \loop\ifdim\L at first>\@tempdimb
-         \advance\@tempcnta by 1
-         \advance\L at first by -\@tempdima
-      \repeat
-      \L at first=\@tempcnta\baselineskip
-    \fi
-    \vskip\L at first
-  \fi
   \setlength{\L at Pindent}{\wd\L at lbox}%
   \addtolength{\L at Pindent}{-\L at hang\wd\L at lbox}%
   \settowidth{\L at first}{\L at ante}%
@@ -271,8 +273,9 @@
   \edef\L at parshape{\L at parshape \@totalleftmargin \the\linewidth}%
   \noindent
   \parshape=\L at parshape\relax
-  \smash{\llap{\mbox{\L at ante}\raisebox{\L at lraise}{\usebox{\L at lbox}}%
-         \hskip \the\L at Findent}}%
+  \llap{\mbox{\L at ante}\smash{\raisebox{\L at lraise}{\usebox{\L at lbox}}}%
+        \ifL at grid\else\rule{0pt}{\L at ruleht}\fi
+        \hskip \the\L at Findent}%
   \unhcopy\L at tbox\relax
   \ifnum\@listdepth>0 \Lreset at listparshape \fi
 }



More information about the tex-live-commits mailing list.