summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/lettrine
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/lettrine')
-rw-r--r--macros/latex/contrib/lettrine/README.md26
-rw-r--r--macros/latex/contrib/lettrine/contrib.dtx376
-rw-r--r--macros/latex/contrib/lettrine/contrib.ins59
-rw-r--r--macros/latex/contrib/lettrine/contrib/optfile.cfl28
-rw-r--r--macros/latex/contrib/lettrine/contrib/pacl.cfl84
-rw-r--r--macros/latex/contrib/lettrine/contrib/padl.cfl85
-rw-r--r--macros/latex/contrib/lettrine/contrib/pzc2.cfl45
-rw-r--r--macros/latex/contrib/lettrine/contrib/pzc3.cfl45
-rw-r--r--macros/latex/contrib/lettrine/doc/lettrine-demo-de.pdfbin57736 -> 128266 bytes
-rw-r--r--macros/latex/contrib/lettrine/doc/lettrine-demo-fr.pdfbin62638 -> 139142 bytes
-rw-r--r--macros/latex/contrib/lettrine/doc/lettrine-demo-lua.pdfbin73141 -> 74184 bytes
-rw-r--r--macros/latex/contrib/lettrine/doc/lettrine.pdfbin97444 -> 122711 bytes
-rw-r--r--macros/latex/contrib/lettrine/lettrine-2022-09-25.sty302
-rw-r--r--macros/latex/contrib/lettrine/lettrine.dtx494
-rw-r--r--macros/latex/contrib/lettrine/lettrine.ins84
15 files changed, 850 insertions, 778 deletions
diff --git a/macros/latex/contrib/lettrine/README.md b/macros/latex/contrib/lettrine/README.md
index f62a7c20c6..57f41e59ff 100644
--- a/macros/latex/contrib/lettrine/README.md
+++ b/macros/latex/contrib/lettrine/README.md
@@ -9,10 +9,10 @@ This package is meant for typesetting dropped capitals in LaTeX documents.
Documentation
-------------
-Have a look at one of the PDF files, demo-fr.pdf (in French),
-demo-de.pdf (in German) or demo-lua.pdf in the doc directory,
-to see how different layouts for dropped capitals can be achieved.
-You can also play with the source files demo-*.tex.
+Have a look at one of the PDF files, lettrine-demo-fr.pdf (in French),
+lettrine-demo-de.pdf (in German) or lettrine-demo-lua.pdf in the doc
+directory, to see different layouts for dropped capitals.
+You can also play with the source files lettrine-demo-*.tex.
Have a look at lettrine.pdf in the doc directory, if you are interested
in the complete documentation and code.
@@ -31,20 +31,24 @@ Installation
This bundle is included in most TeX distributions, but if you need
to install it by yourself
-1. run lualatex on lettrine.dtx to get the documentation (lettrine.pdf);
-2. run luatex on lettrine.ins to strip the comments and create
+1. run luatex on lettrine.dtx to strip the comments and create
lettrine.sty and lettrine.cfg;
-3. run luatex on contrib.dtx to produce the *.cfl files.
+2. run lualatex on lettrine.dtx to get the documentation (lettrine.pdf).
Files lettrine.sty, lettrine.cfg, lettrine-*.sty and *.cfl go to to
a directory searched by TeX, typically $TEXMF/tex/latex/lettrine.
-Files README, demo*, *.pdf go to a doc directory, typically
-$TEXMF/doc/latex/lettrine.
+Files README, lettrine-demo*, lettrine.pdf go to a doc directory,
+typically $TEXMF/doc/latex/lettrine.
-Files *.dtx, *.ins go to a source directory, typically
+Files lettrine.dtx goes to a source directory, typically
$TEXMF/source/latex/lettrine
+Changes
+-------
+
+See the included manual lettrine.pdf, section "Change History".
+
--
-Copyright 1999--2022 Daniel Flipo
+Copyright 1999--2023 Daniel Flipo
E-mail: daniel (dot) flipo (at) free (dot) fr
diff --git a/macros/latex/contrib/lettrine/contrib.dtx b/macros/latex/contrib/lettrine/contrib.dtx
deleted file mode 100644
index 63d23d094b..0000000000
--- a/macros/latex/contrib/lettrine/contrib.dtx
+++ /dev/null
@@ -1,376 +0,0 @@
-% \iffalse meta-comment
-%
-% This program 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 file has the LPPL maintenance status "maintained".
-%
-% \fi
-%
-% \iffalse
-%<*opt>
-% \fi
-% \begin{macrocode}
-%% This is an example of config file *for syntax only*.
-%%
-%% Copy it to your document's directory and add
-%% \renewcommand{\DefaultOptionsFile}{optfile.cfl}
-%% to your document's preamble to use it.
-%%
-%% The settings below are just *examples*, they are not meant to be good!
-%% Proper values heavily depend on the font used!
-%%
-%% Letters not listed below, will get either the default parameters,
-%% or those given as optional argument of \lettrine, if any.
-%%
-%% The values of the parameters set in this file can be overridden locally
-%% using the optional argument of \lettrine.
-%%
-%% A
-\LettrineOptionsFor{A}{slope=0.1\LettrineWidth, findent=-.5em, nindent=.7em}
-%% Same parameters for À (utf-8)
-\LettrineOptionsFor{À}{slope=0.1\LettrineWidth, findent=-.5em, nindent=0.7em}
-%% C'
-\LettrineOptionsFor{C'}{nindent=-0.5em}
-%% I and J hang into the margin
-\LettrineOptionsFor{I}{lhang=1, nindent=0pt}
-\LettrineOptionsFor{J}{lhang=1, nindent=0pt}
-%% Q
-\LettrineOptionsFor{Q}{loversize=-0.1, lraise=0.1}
-%% V
-\LettrineOptionsFor{V}{slope=-0.1\LettrineWidth, lhang=0.5, nindent=0pt}
-% \end{macrocode}
-% \iffalse
-%</opt>
-% \fi
-%
-% \iffalse
-%<*pzc2>
-% \fi
-% \begin{macrocode}
-%%% This is file `pzc2.cfl'.
-%%% It is provided under the LPPL. Copyright is held by Kevin M. Dunn.
-%%% If you modify this file you *MUST* change its name.
-
-%%% This file contains config values to simplify the use of the
-%%% Zapf-Chancery (aka pzc) font with the lettrine package by Daniel Flipo.
-%%% This file provides the parameters for 2 DefaultLines.
-
-%%% If you want to use this file, your document should contain
-%%% the next three lines, without the leading percent signs.
-%%% \setcounter{DefaultLines}{2}
-%%% \renewcommand\LettrineFontHook{\fontencoding{T1}\fontfamily{pzc}\selectfont}
-%%% \renewcommand{\DefaultOptionsFile}{pzc2.cfl}
-
-%%% Comments about this file can be sent to Kevin Dunn
-%%% (cavema2 at cavemanchemistry.com)
-
-\ProvidesFile{pzc2.cfl}[2006/03/19 v0.1 Kevin M. Dunn]
-
-\LettrineOptionsFor{A}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.25\LettrineWidth}
-\LettrineOptionsFor{B}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.08\LettrineWidth}
-\LettrineOptionsFor{C}{loversize= 0.35,lraise= 0.10,lhang= 0.35,findent= 0.00\LettrineWidth,nindent= 0.28\LettrineWidth}
-\LettrineOptionsFor{D}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent= 0.05\LettrineWidth}
-\LettrineOptionsFor{E}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.00\LettrineWidth,nindent= 0.28\LettrineWidth}
-\LettrineOptionsFor{F}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.00\LettrineWidth}
-\LettrineOptionsFor{G}{loversize= 0.35,lraise= 0.10,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.17\LettrineWidth}
-\LettrineOptionsFor{H}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.20\LettrineWidth}
-\LettrineOptionsFor{I}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.25\LettrineWidth}
-\LettrineOptionsFor{J}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent= 0.00\LettrineWidth}
-\LettrineOptionsFor{K}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.13\LettrineWidth}
-\LettrineOptionsFor{L}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=-0.02\LettrineWidth,nindent= 0.30\LettrineWidth}
-\LettrineOptionsFor{M}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
-\LettrineOptionsFor{N}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.10\LettrineWidth}
-\LettrineOptionsFor{O}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent= 0.08\LettrineWidth}
-\LettrineOptionsFor{P}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.25\LettrineWidth,nindent= 0.05\LettrineWidth}
-\LettrineOptionsFor{Q}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent= 0.10\LettrineWidth}
-\LettrineOptionsFor{R}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.08\LettrineWidth,nindent= 0.15\LettrineWidth}
-\LettrineOptionsFor{S}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.13\LettrineWidth}
-\LettrineOptionsFor{T}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.20\LettrineWidth}
-\LettrineOptionsFor{U}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
-\LettrineOptionsFor{V}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.18\LettrineWidth,nindent=-0.15\LettrineWidth}
-\LettrineOptionsFor{W}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent=-0.05\LettrineWidth}
-\LettrineOptionsFor{X}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.00\LettrineWidth,nindent= 0.35\LettrineWidth}
-\LettrineOptionsFor{Y}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.05\LettrineWidth}
-\LettrineOptionsFor{Z}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.00\LettrineWidth,nindent= 0.30\LettrineWidth}
-% \end{macrocode}
-% \iffalse
-%</pzc2>
-% \fi
-%
-% \iffalse
-%<*pzc3>
-% \fi
-% \begin{macrocode}
-%%% This is file `pzc3.cfl'.
-%%% It is provided under the LPPL. Copyright is held by Kevin M. Dunn.
-%%% If you modify this file you *MUST* change its name.
-
-%%% This file contains config values to simplify the use of the
-%%% Zapf-Chancery (aka pzc) font with the lettrine package by Daniel Flipo.
-%%% This file provides the parameters for 3 DefaultLines.
-
-%%% If you want to use this file, your document should contain
-%%% the next three lines, without the leading percent signs.
-%%% \setcounter{DefaultLines}{3}
-%%% \renewcommand\LettrineFontHook{\fontencoding{T1}\fontfamily{pzc}\selectfont}
-%%% \renewcommand{\DefaultOptionsFile}{pzc3.cfl}
-
-%%% Comments about this file can be sent to Kevin Dunn
-%%% (cavema2 at cavemanchemistry.com)
-
-\ProvidesFile{pzc3.cfl}[2006/03/19 v0.1 Kevin M. Dunn]
-
-\LettrineOptionsFor{A}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.25\LettrineWidth}
-\LettrineOptionsFor{B}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.08\LettrineWidth,slope=-0.08\LettrineWidth}
-\LettrineOptionsFor{C}{loversize= 0.35,lraise= 0.10,lhang= 0.35,findent=0.00\LettrineWidth,nindent= 0.28\LettrineWidth}
-\LettrineOptionsFor{D}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.15\LettrineWidth,nindent= 0.05\LettrineWidth,slope=-0.05\LettrineWidth}
-\LettrineOptionsFor{E}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.00\LettrineWidth,nindent= 0.28\LettrineWidth}
-\LettrineOptionsFor{F}{loversize= 0.35,lraise= 0.05,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.00\LettrineWidth}
-\LettrineOptionsFor{G}{loversize= 0.30,lraise= 0.30,lhang= 0.5,findent=0.10\LettrineWidth,nindent= 0.15\LettrineWidth}
-\LettrineOptionsFor{H}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.20\LettrineWidth}
-\LettrineOptionsFor{I}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.25\LettrineWidth}
-\LettrineOptionsFor{J}{loversize= 0.35,lraise= 0.05,lhang= 0.35,findent=0.15\LettrineWidth,nindent= 0.00\LettrineWidth}
-\LettrineOptionsFor{K}{loversize= 0.30,lraise= 0.20,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.13\LettrineWidth,slope= 0.20\LettrineWidth}
-\LettrineOptionsFor{L}{loversize= 0.35,lraise= 0.00,lhang=0.35,findent=-0.02\LettrineWidth,nindent= 0.30\LettrineWidth}
-\LettrineOptionsFor{M}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
-\LettrineOptionsFor{N}{loversize= 0.30,lraise= 0.20,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.10\LettrineWidth,slope= 0.20\LettrineWidth}
-\LettrineOptionsFor{O}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.15\LettrineWidth,nindent= 0.08\LettrineWidth}
-\LettrineOptionsFor{P}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.25\LettrineWidth,nindent= 0.05\LettrineWidth}
-\LettrineOptionsFor{Q}{loversize= 0.30,lraise= 0.25,lhang= 0.35,findent=0.15\LettrineWidth,nindent= 0.10\LettrineWidth,slope= 0.20\LettrineWidth}
-\LettrineOptionsFor{R}{loversize= 0.30,lraise= 0.20,lhang= 0.35,findent=0.08\LettrineWidth,nindent= 0.15\LettrineWidth,slope= 0.20\LettrineWidth}
-\LettrineOptionsFor{S}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.13\LettrineWidth}
-\LettrineOptionsFor{T}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.20\LettrineWidth}
-\LettrineOptionsFor{U}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
-\LettrineOptionsFor{V}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.18\LettrineWidth,nindent=-0.05\LettrineWidth,slope=-0.15\LettrineWidth}
-\LettrineOptionsFor{W}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.18\LettrineWidth,nindent=-0.05\LettrineWidth,slope=-0.10\LettrineWidth}
-\LettrineOptionsFor{X}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.00\LettrineWidth,nindent= 0.35\LettrineWidth}
-\LettrineOptionsFor{Y}{loversize= 0.30,lraise= 0.10,lhang= 0.40,findent=0.10\LettrineWidth,nindent= 0.00\LettrineWidth,slope=-0.10\LettrineWidth}
-\LettrineOptionsFor{Z}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.00\LettrineWidth,nindent= 0.30\LettrineWidth}
-% \end{macrocode}
-% \iffalse
-%</pzc3>
-% \fi
-%
-% \iffalse
-%<*pacl>
-% \fi
-% \begin{macrocode}
-%%% This is file `pacl.cfl'.
-%%% It is provided under the LPPL. Copyright is hold by Pascal Kockaert.
-%%% If you modify this file you *MUST* change its name.
-
-%%% This file contains config values to simplify the use of the
-%%% ACaslon-SwashItalic (aka pacri8s) font from Adobe
-%%% with the lettrine package by Daniel Flipo.
-
-%%% If you want to use this file, your document should contain
-%%% the two next lines, without the leading percent signs.
-%%% \renewcommand\LettrineFontHook{\fontencoding{T1}\fontfamily{pacl}\selectfont}
-%%% \renewcommand{\DefaultOptionsFile}{pacl.cfl}
-
-%%% The fontfamily pacl is defined through the file T1pacl.fd.
-%%% The contents of T1pacl.fd is listed at the end of this file.
-
-%%% The settings below were defined according to my visual tastes.
-%%% No mathematical rule based on the metrices was applied.
-%%% Though the result may not please you, it should be better
-%%% than the default placement. This said, comments are welcome.
-
-%%% Comments about this file can be sent to Pascal.Kockaert
-%%% at the mail server ulb.ac.be.
-
-\ProvidesFile{pacl.cfl}[2003/08/24 v0.1 Pascal Kockaert]
-
-\LettrineOptionsFor{A}{loversize= 0.15,lraise= 0.02,lhang= 0.30,findent= 0.00\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{B}{loversize= 0.15,lraise= 0.00,lhang= 0.25,findent=-0.05\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{C}{loversize=-0.10,lraise= 0.25,lhang= 0.05,findent= 0.00\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{D}{loversize= 0.15,lraise= 0.00,lhang= 0.20,findent=-0.07\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{E}{loversize= 0.15,lraise= 0.00,lhang= 0.05,findent=-0.10\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{F}{loversize=-0.10,lraise= 0.20,lhang= 0.00,findent= 0.05\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{G}{loversize=-0.10,lraise= 0.20,lhang= 0.05,findent=-0.05\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{H}{loversize= 0.05,lraise= 0.00,lhang= 0.25,findent= 0.00\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{I}{loversize= 0.15,lraise= 0.00,lhang= 0.00,findent= 0.00\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{J}{loversize=-0.10,lraise= 0.20,lhang= 0.00,findent= 0.00\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{K}{loversize=-0.10,lraise= 0.25,lhang= 0.00,findent= 0.00\LettrineWidth,nindent= 0.45\LettrineWidth}
-\LettrineOptionsFor{L}{loversize= 0.00,lraise= 0.20,lhang= 0.00,findent=-0.10\LettrineWidth,nindent= 0.40\LettrineWidth}
-\LettrineOptionsFor{M}{loversize= 0.15,lraise= 0.00,lhang= 0.24,findent=-0.05\LettrineWidth,nindent= 0.10\LettrineWidth}
-\LettrineOptionsFor{N}{loversize=-0.05,lraise= 0.25,lhang= 0.13,findent= 0.05\LettrineWidth,nindent= 0.35\LettrineWidth}
-\LettrineOptionsFor{O}{loversize= 0.15,lraise= 0.00,lhang= 0.05,findent=-0.12\LettrineWidth,nindent= 0.15\LettrineWidth}
-\LettrineOptionsFor{P}{loversize= 0.15,lraise= 0.00,lhang= 0.25,findent= 0.00\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{Q}{loversize=-0.15,lraise= 0.25,lhang= 0.10,findent=-0.05\LettrineWidth,nindent= 0.55\LettrineWidth}
-\LettrineOptionsFor{R}{loversize=-0.15,lraise= 0.25,lhang= 0.20,findent=-0.05\LettrineWidth,nindent= 0.45\LettrineWidth}
-\LettrineOptionsFor{S}{loversize=-0.10,lraise= 0.25,lhang=-0.05,findent=-0.05\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{T}{loversize= 0.15,lraise= 0.00,lhang= 0.15,findent= 0.00\LettrineWidth,nindent= 0.15\LettrineWidth}
-\LettrineOptionsFor{U}{loversize= 0.15,lraise= 0.00,lhang= 0.05,findent= 0.00\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{V}{loversize= 0.15,lraise= 0.00,lhang= 0.20,findent=-0.05\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{W}{loversize= 0.15,lraise= 0.00,lhang= 0.15,findent=-0.05\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{X}{loversize= 0.15,lraise= 0.00,lhang= 0.45,findent= 0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
-\LettrineOptionsFor{Y}{loversize= 0.15,lraise= 0.00,lhang= 0.05,findent= 0.20\LettrineWidth,nindent= 0.25\LettrineWidth}
-\LettrineOptionsFor{Z}{loversize= 0.05,lraise= 0.15,lhang= 0.15,findent= 0.00\LettrineWidth,nindent= 0.30\LettrineWidth}
-\let\EOF\endinput
-\EOF
-
-%% The installation of the pacl family can be performed using the
-%% fontinst package.
-%% You must own the font ACaslon-SwashItalic, that is an AFM and a PFB file
-%% which should be renamed as padri8w.afm and padri8w.pfb.
-
-%% You should process the file Makepacl.tex (see below) through TeX,
-%% and follow the instructions of the fontinst manual to finish the install.
-%% The file T1pacl.fd should be defined as below and put with other local
-%% FD files.
-
-%%% File Makepacl.tex
-\input fontinst.sty
-\installfonts
- \declareencoding{T1-SWASH}{T1}
- \fromafm{pacri8s} %%% File containing metrics of ACaslon-SwashItalic
- \installfont{pacri9s}{pacri8s}{T1}{T1}{pacl}{m}{n}{}
-\endinstallfonts
-\bye
-%%% End of file Makepacl.tex
-
-%%% The pacl family is defined by the file T1pacl.fd, as follows
-
-%%% File T1pacl.fd
-%%% THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY
-\ProvidesFile{t1pacl.fd}[2003/08/24 v1.0 Pascal Kockaert]
-\DeclareFontFamily{T1}{pacl}{}
-\DeclareFontShape{T1}{pacl}{m}{n}{<->pacri9s}{}
-%%% End of file T1pacl.fd
-% \end{macrocode}
-% \iffalse
-%</pacl>
-% \fi
-%
-% \iffalse
-%<*padl>
-% \fi
-% \begin{macrocode}
-%%% This is file `padl.cfl'.
-%%% It is provided under the LPPL. Copyright is hold by Pascal Kockaert.
-%%% If you modify this file you *MUST* change its name.
-
-%%% This file contains config values to simplify the use of the
-%%% AGaramondAlt-Italic (aka padri8w) font from Adobe
-%%% with the lettrine package by Daniel Flipo.
-
-%%% If you want to use this file, your document should contain
-%%% the two next lines, without the leading percent signs.
-%%% \renewcommand\LettrineFontHook{\fontencoding{T1}\fontfamily{padl}\selectfont}
-%%% \renewcommand{\DefaultOptionsFile}{padl.cfl}
-
-%%% The fontfamily padl is defined through the file T1padl.fd.
-%%% The contents of T1padl.fd is listed at the end of this file.
-
-%%% The settings below were defined according to my visual tastes.
-%%% No mathematical rule based on the metrices was applied.
-%%% Though the result may not please you, it should be better
-%%% than the default placement. This said, comments are welcome.
-
-%%% Comments about this file can be sent to Pascal.Kockaert
-%%% at the mail server ulb.ac.be.
-
-\ProvidesFile{padl.cfl}[2003/08/24 v1.0 Pascal Kockaert]
-
-\LettrineOptionsFor{A}{loversize= 0.05,lraise= 0.10,lhang= 0.40,findent= 0.000\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{B}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent= 0.025\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{C}{loversize= 0.00,lraise= 0.10,lhang= 0.15,findent= 0.175\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{D}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent=-0.025\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{E}{loversize= 0.10,lraise= 0.00,lhang= 0.10,findent= 0.100\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{F}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent= 0.100\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{G}{loversize=-0.08,lraise= 0.20,lhang= 0.10,findent= 0.000\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{H}{loversize=-0.01,lraise= 0.00,lhang= 0.00,findent= 0.040\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{I}{loversize= 0.10,lraise= 0.00,lhang= 0.00,findent= 0.050\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{J}{loversize=-0.08,lraise= 0.20,lhang= 0.00,findent=-0.025\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{K}{loversize=-0.05,lraise= 0.25,lhang= 0.00,findent=-0.050\LettrineWidth,nindent= 0.60\LettrineWidth}
-\LettrineOptionsFor{L}{loversize= 0.00,lraise= 0.20,lhang= 0.00,findent= 0.100\LettrineWidth,nindent= 0.40\LettrineWidth}
-\LettrineOptionsFor{M}{loversize= 0.10,lraise= 0.00,lhang= 0.40,findent= 0.040\LettrineWidth,nindent= 0.10\LettrineWidth}
-\LettrineOptionsFor{N}{loversize= 0.00,lraise= 0.20,lhang= 0.20,findent=-0.010\LettrineWidth,nindent= 0.40\LettrineWidth}
-\LettrineOptionsFor{O}{loversize= 0.10,lraise= 0.00,lhang= 0.20,findent=-0.010\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{P}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent= 0.050\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{Q}{loversize= 0.00,lraise= 0.20,lhang= 0.20,findent= 0.050\LettrineWidth,nindent= 0.70\LettrineWidth}
-\LettrineOptionsFor{R}{loversize=-0.05,lraise= 0.25,lhang= 0.25,nindent= 0.500\LettrineWidth,nindent= 0.50\LettrineWidth}
-\LettrineOptionsFor{S}{loversize= 0.10,lraise= 0.05,lhang= 0.00,findent= 0.000\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{T}{loversize= 0.10,lraise= 0.00,lhang= 0.35,findent= 0.100\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{U}{loversize= 0.10,lraise= 0.00,lhang= 0.20,findent= 0.050\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{V}{loversize= 0.10,lraise= 0.00,lhang= 0.40,findent= 0.050\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{W}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent= 0.040\LettrineWidth,nindent= 0.50em}
-\LettrineOptionsFor{X}{loversize= 0.10,lraise= 0.00,lhang= 0.40,findent= 0.040\LettrineWidth,nindent= 0.20\LettrineWidth}
-\LettrineOptionsFor{Y}{loversize= 0.10,lraise= 0.00,lhang= 0.20,findent= 0.100\LettrineWidth,nindent= 0.20\LettrineWidth}
-\LettrineOptionsFor{Z}{loversize=-0.05,lraise= 0.25,lhang= 0.00,findent= 0.050\LettrineWidth,nindent= 0.55\LettrineWidth}
-\let\EOF\endinput
-\EOF
-
-%% The installation of the padl family can be performed using the
-%% fontinst package.
-%% You must own the font AGaramondAlt-Italic, that is an AFM and a PFB
-%% file which should be renamed as padri8w.afm and padri8w.pfb.
-
-%% You should process the file Makepadl.tex (see below) through TeX,
-%% and follow the instructions of the fontinst manual to finish the
-%% install.
-%% The file T1padl.fd should be defined as below and put with other
-%% local FD files.
-
-%%% File Makepadl.tex
-\input fontinst.sty
-\installfonts
- \declareencoding{T1-SWASH}{T1}
- \fromafm{padri8w} %%% File containing metrics of AGaramondAlt-Italic
- \gdef\uc#1#2{#1swash}
- \installfont{padw9w}{padri8w}{T1}{T1}{padl}{m}{n}{}
-\endinstallfonts
-\bye
-%%% End of file Makepadl.tex
-
-%% The padl family is defined by the file T1padl.fd, as follows
-
-%%% File T1padl.fd
-%%% THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY
-\ProvidesFile{t1padl.fd}[2003/08/24 v0.1 Pascal Kockaert]
-\DeclareFontFamily{T1}{padl}{}
-\DeclareFontShape{T1}{padl}{m}{n}{<->padw9w}{}
-%%% End of file T1padl.fd
-% \end{macrocode}
-% \iffalse
-%</padl>
-% \fi
-%
-% \iffalse
-%<*dtx>
-% \fi
-%%
-%% \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
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
-% \iffalse
-%</dtx>
-% \fi
-%
-% \Finale
-\endinput
-
-%%% Local Variables:
-%%% fill-column: 70
-%%% coding: utf-8
-%%% End:
diff --git a/macros/latex/contrib/lettrine/contrib.ins b/macros/latex/contrib/lettrine/contrib.ins
deleted file mode 100644
index 3762e5aef2..0000000000
--- a/macros/latex/contrib/lettrine/contrib.ins
+++ /dev/null
@@ -1,59 +0,0 @@
-%%
-%% Copyright (C) 1999-2020 Daniel Flipo.
-%%
-%% This program 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 file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-\def\batchfile{contrib.ins}
-\input docstrip.tex
-
-{\ifx\generate\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.3c or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old docstrip.tex.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\keepsilent
-\askforoverwritefalse
-
-\usedir{tex/latex/lettrine}
-
-\nopreamble
-\generate{\file{optfile.cfl}{\from{contrib.dtx}{opt}}
- \usedir{tex/latex/lettrine/contrib}
- \file{pzc2.cfl}{\from{contrib.dtx}{pzc2}}
- \file{pzc3.cfl}{\from{contrib.dtx}{pzc3}}
- \nopostamble
- \file{pacl.cfl}{\from{contrib.dtx}{pacl}}
- \file{padl.cfl}{\from{contrib.dtx}{padl}}
- }
-
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* To finish the installation please move all the *.cfl}
-\Msg{* files to the contrib subdirectory of tex/latex/lettrine.}
-\Msg{*}
-\Msg{* Happy TeXing!}
-\Msg{*}
-\Msg{***********************************************************}
-
-\endbatchfile
-\endinput
diff --git a/macros/latex/contrib/lettrine/contrib/optfile.cfl b/macros/latex/contrib/lettrine/contrib/optfile.cfl
new file mode 100644
index 0000000000..407ed82c99
--- /dev/null
+++ b/macros/latex/contrib/lettrine/contrib/optfile.cfl
@@ -0,0 +1,28 @@
+%% This is an example of config file *for syntax only*.
+%% To use it, copy it to your document's directory and code
+%% \usepackage[optionsfile=optfile.cfl]{lettrine}
+%%
+%% The settings below are just *examples*, they are not meant to be good!
+%% Proper values heavily depend on the font used!
+%%
+%% Letters not listed below, will get either the default parameters,
+%% or those given as optional argument of \lettrine, if any.
+%%
+%% The values of the parameters set in this file can be overridden
+%% locally using the optional argument of \lettrine.
+
+%% A
+\LettrineOptionsFor{A}{slope=0.1\LettrineWidth, findent=-.5em, nindent=.7em}
+%% Same parameters for À (utf-8)
+\LettrineOptionsFor{À}{slope=0.1\LettrineWidth, findent=-.5em, nindent=0.7em}
+%% C'
+\LettrineOptionsFor{C'}{nindent=-0.5em}
+%% I and J hang into the margin
+\LettrineOptionsFor{I}{lhang=1, nindent=0pt}
+\LettrineOptionsFor{J}{lhang=1, nindent=0pt}
+%% Q
+\LettrineOptionsFor{Q}{loversize=0, lraise=0.1}
+%% V
+\LettrineOptionsFor{V}{slope=-0.1\LettrineWidth, lhang=0.5, nindent=0pt}
+
+\endinput
diff --git a/macros/latex/contrib/lettrine/contrib/pacl.cfl b/macros/latex/contrib/lettrine/contrib/pacl.cfl
new file mode 100644
index 0000000000..e8de17b6d6
--- /dev/null
+++ b/macros/latex/contrib/lettrine/contrib/pacl.cfl
@@ -0,0 +1,84 @@
+%%% This is file `pacl.cfl'.
+%%% It is provided under the LPPL. Copyright is hold by Pascal Kockaert.
+%%% If you modify this file you *MUST* change its name.
+%%%
+%%% This file contains config values to simplify the use of the
+%%% ACaslon-SwashItalic (aka pacri8s) font from Adobe
+%%% with the lettrine package by Daniel Flipo.
+%%%
+%%% If you want to use this file, your document should contain
+%%% the two next lines, without the leading percent signs.
+%%% \renewcommand\LettrineFontHook{\fontencoding{T1}\fontfamily{pacl}\selectfont}
+%%% \renewcommand{\DefaultOptionsFile}{pacl.cfl}
+%%%
+%%% The fontfamily pacl is defined through the file T1pacl.fd.
+%%% The contents of T1pacl.fd is listed at the end of this file.
+%%%
+%%% The settings below were defined according to my visual tastes.
+%%% No mathematical rule based on the metrices was applied.
+%%% Though the result may not please you, it should be better
+%%% than the default placement. This said, comments are welcome.
+%%%
+%%% Comments about this file can be sent to Pascal.Kockaert
+%%% at the mail server ulb.ac.be.
+
+
+\ProvidesFile{pacl.cfl}[2003/08/24 v0.1 Pascal Kockaert]
+\LettrineOptionsFor{A}{loversize= 0.15,lraise= 0.02,lhang= 0.30,findent= 0.00\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{B}{loversize= 0.15,lraise= 0.00,lhang= 0.25,findent=-0.05\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{C}{loversize=-0.10,lraise= 0.25,lhang= 0.05,findent= 0.00\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{D}{loversize= 0.15,lraise= 0.00,lhang= 0.20,findent=-0.07\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{E}{loversize= 0.15,lraise= 0.00,lhang= 0.05,findent=-0.10\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{F}{loversize=-0.10,lraise= 0.20,lhang= 0.00,findent= 0.05\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{G}{loversize=-0.10,lraise= 0.20,lhang= 0.05,findent=-0.05\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{H}{loversize= 0.05,lraise= 0.00,lhang= 0.25,findent= 0.00\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{I}{loversize= 0.15,lraise= 0.00,lhang= 0.00,findent= 0.00\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{J}{loversize=-0.10,lraise= 0.20,lhang= 0.00,findent= 0.00\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{K}{loversize=-0.10,lraise= 0.25,lhang= 0.00,findent= 0.00\LettrineWidth,nindent= 0.45\LettrineWidth}
+\LettrineOptionsFor{L}{loversize= 0.00,lraise= 0.20,lhang= 0.00,findent=-0.10\LettrineWidth,nindent= 0.40\LettrineWidth}
+\LettrineOptionsFor{M}{loversize= 0.15,lraise= 0.00,lhang= 0.24,findent=-0.05\LettrineWidth,nindent= 0.10\LettrineWidth}
+\LettrineOptionsFor{N}{loversize=-0.05,lraise= 0.25,lhang= 0.13,findent= 0.05\LettrineWidth,nindent= 0.35\LettrineWidth}
+\LettrineOptionsFor{O}{loversize= 0.15,lraise= 0.00,lhang= 0.05,findent=-0.12\LettrineWidth,nindent= 0.15\LettrineWidth}
+\LettrineOptionsFor{P}{loversize= 0.15,lraise= 0.00,lhang= 0.25,findent= 0.00\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{Q}{loversize=-0.15,lraise= 0.25,lhang= 0.10,findent=-0.05\LettrineWidth,nindent= 0.55\LettrineWidth}
+\LettrineOptionsFor{R}{loversize=-0.15,lraise= 0.25,lhang= 0.20,findent=-0.05\LettrineWidth,nindent= 0.45\LettrineWidth}
+\LettrineOptionsFor{S}{loversize=-0.10,lraise= 0.25,lhang=-0.05,findent=-0.05\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{T}{loversize= 0.15,lraise= 0.00,lhang= 0.15,findent= 0.00\LettrineWidth,nindent= 0.15\LettrineWidth}
+\LettrineOptionsFor{U}{loversize= 0.15,lraise= 0.00,lhang= 0.05,findent= 0.00\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{V}{loversize= 0.15,lraise= 0.00,lhang= 0.20,findent=-0.05\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{W}{loversize= 0.15,lraise= 0.00,lhang= 0.15,findent=-0.05\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{X}{loversize= 0.15,lraise= 0.00,lhang= 0.45,findent= 0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
+\LettrineOptionsFor{Y}{loversize= 0.15,lraise= 0.00,lhang= 0.05,findent= 0.20\LettrineWidth,nindent= 0.25\LettrineWidth}
+\LettrineOptionsFor{Z}{loversize= 0.05,lraise= 0.15,lhang= 0.15,findent= 0.00\LettrineWidth,nindent= 0.30\LettrineWidth}
+\endinput
+
+
+% The installation of the pacl family can be performed using the fontinst
+% package.
+% You must own the font ACaslon-SwashItalic, that is an AFM and a PFB file
+% which should be renamed as padri8w.afm and padri8w.pfb.
+%
+% You should process the file Makepacl.tex (see below) through TeX,
+% and follow the instructions of the fontinst manual to finish the install.
+% The file T1pacl.fd should be defined as below and put with other local FD
+% files.
+
+%%% File Makepacl.tex
+\input fontinst.sty
+\installfonts
+ \declareencoding{T1-SWASH}{T1}
+ \fromafm{pacri8s} %%% File containing metrics of ACaslon-SwashItalic
+ \installfont{pacri9s}{pacri8s}{T1}{T1}{pacl}{m}{n}{}
+\endinstallfonts
+\bye
+%%% End of file Makepacl.tex
+
+% The pacl family is defined by the file T1pacl.fd, as follows
+
+%%% File T1pacl.fd
+%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY
+\ProvidesFile{t1pacl.fd}[2003/08/24 v1.0 Pascal Kockaert]
+\DeclareFontFamily{T1}{pacl}{}
+\DeclareFontShape{T1}{pacl}{m}{n}{<->pacri9s}{}
+\endinput
+%%% End of file T1pacl.fd
diff --git a/macros/latex/contrib/lettrine/contrib/padl.cfl b/macros/latex/contrib/lettrine/contrib/padl.cfl
new file mode 100644
index 0000000000..784bebc935
--- /dev/null
+++ b/macros/latex/contrib/lettrine/contrib/padl.cfl
@@ -0,0 +1,85 @@
+%%% This is file `padl.cfl'.
+%%% It is provided under the LPPL. Copyright is hold by Pascal Kockaert.
+%%% If you modify this file you *MUST* change its name.
+%%%
+%%% This file contains config values to simplify the use of the
+%%% AGaramondAlt-Italic (aka padri8w) font from Adobe
+%%% with the lettrine package by Daniel Flipo.
+%%%
+%%% If you want to use this file, your document should contain
+%%% the two next lines, without the leading percent signs.
+%%% \renewcommand\LettrineFontHook{\fontencoding{T1}\fontfamily{padl}\selectfont}
+%%% \renewcommand{\DefaultOptionsFile}{padl.cfl}
+%%%
+%%% The fontfamily padl is defined through the file T1padl.fd.
+%%% The contents of T1padl.fd is listed at the end of this file.
+%%%
+%%% The settings below were defined according to my visual tastes.
+%%% No mathematical rule based on the metrices was applied.
+%%% Though the result may not please you, it should be better
+%%% than the default placement. This said, comments are welcome.
+%%%
+%%% Comments about this file can be sent to Pascal.Kockaert
+%%% at the mail server ulb.ac.be.
+
+
+
+\ProvidesFile{padl.cfl}[2003/08/24 v1.0 Pascal Kockaert]
+
+\LettrineOptionsFor{A}{loversize= 0.05,lraise= 0.10,lhang= 0.40,findent= 0.000\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{B}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent= 0.025\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{C}{loversize= 0.00,lraise= 0.10,lhang= 0.15,findent= 0.175\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{D}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent=-0.025\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{E}{loversize= 0.10,lraise= 0.00,lhang= 0.10,findent= 0.100\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{F}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent= 0.100\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{G}{loversize=-0.08,lraise= 0.20,lhang= 0.10,findent= 0.000\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{H}{loversize=-0.01,lraise= 0.00,lhang= 0.00,findent= 0.040\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{I}{loversize= 0.10,lraise= 0.00,lhang= 0.00,findent= 0.050\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{J}{loversize=-0.08,lraise= 0.20,lhang= 0.00,findent=-0.025\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{K}{loversize=-0.05,lraise= 0.25,lhang= 0.00,findent=-0.050\LettrineWidth,nindent= 0.60\LettrineWidth}
+\LettrineOptionsFor{L}{loversize= 0.00,lraise= 0.20,lhang= 0.00,findent= 0.100\LettrineWidth,nindent= 0.40\LettrineWidth}
+\LettrineOptionsFor{M}{loversize= 0.10,lraise= 0.00,lhang= 0.40,findent= 0.040\LettrineWidth,nindent= 0.10\LettrineWidth}
+\LettrineOptionsFor{N}{loversize= 0.00,lraise= 0.20,lhang= 0.20,findent=-0.010\LettrineWidth,nindent= 0.40\LettrineWidth}
+\LettrineOptionsFor{O}{loversize= 0.10,lraise= 0.00,lhang= 0.20,findent=-0.010\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{P}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent= 0.050\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{Q}{loversize= 0.00,lraise= 0.20,lhang= 0.20,findent= 0.050\LettrineWidth,nindent= 0.70\LettrineWidth}
+\LettrineOptionsFor{R}{loversize=-0.05,lraise= 0.25,lhang= 0.25,nindent= 0.500\LettrineWidth,nindent= 0.50\LettrineWidth}
+\LettrineOptionsFor{S}{loversize= 0.10,lraise= 0.05,lhang= 0.00,findent= 0.000\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{T}{loversize= 0.10,lraise= 0.00,lhang= 0.35,findent= 0.100\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{U}{loversize= 0.10,lraise= 0.00,lhang= 0.20,findent= 0.050\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{V}{loversize= 0.10,lraise= 0.00,lhang= 0.40,findent= 0.050\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{W}{loversize= 0.10,lraise= 0.00,lhang= 0.30,findent= 0.040\LettrineWidth,nindent= 0.50em}
+\LettrineOptionsFor{X}{loversize= 0.10,lraise= 0.00,lhang= 0.40,findent= 0.040\LettrineWidth,nindent= 0.20\LettrineWidth}
+\LettrineOptionsFor{Y}{loversize= 0.10,lraise= 0.00,lhang= 0.20,findent= 0.100\LettrineWidth,nindent= 0.20\LettrineWidth}
+\LettrineOptionsFor{Z}{loversize=-0.05,lraise= 0.25,lhang= 0.00,findent= 0.050\LettrineWidth,nindent= 0.55\LettrineWidth}
+\endinput
+
+
+% The installation of the padl family can be performed using the fontinst package.
+% You must own the font AGaramondAlt-Italic, that is an AFM and a PFB file
+% which should be renamed as padri8w.afm and padri8w.pfb.
+%
+% You should process the file Makepadl.tex (see below) through TeX,
+% and follow the instructions of the fontinst manual to finish the install.
+% The file T1padl.fd should be defined as below and put with other local FD files.
+
+%%% File Makepadl.tex
+\input fontinst.sty
+\installfonts
+ \declareencoding{T1-SWASH}{T1}
+ \fromafm{padri8w} %%% File containing metrics of AGaramondAlt-Italic
+ \gdef\uc#1#2{#1swash}
+ \installfont{padw9w}{padri8w}{T1}{T1}{padl}{m}{n}{}
+\endinstallfonts
+\bye
+%%% End of file Makepadl.tex
+
+% The padl family is defined by the file T1padl.fd, as follows
+
+%%% File T1padl.fd
+%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY
+\ProvidesFile{t1padl.fd}[2003/08/24 v0.1 Pascal Kockaert]
+\DeclareFontFamily{T1}{padl}{}
+\DeclareFontShape{T1}{padl}{m}{n}{<->padw9w}{}
+\endinput
+%%% End of file T1padl.fd
diff --git a/macros/latex/contrib/lettrine/contrib/pzc2.cfl b/macros/latex/contrib/lettrine/contrib/pzc2.cfl
new file mode 100644
index 0000000000..7779968780
--- /dev/null
+++ b/macros/latex/contrib/lettrine/contrib/pzc2.cfl
@@ -0,0 +1,45 @@
+%%% This is file `pzc2.cfl'.
+%%% It is provided under the LPPL. Copyright is held by Kevin M. Dunn.
+%%% If you modify this file you *MUST* change its name.
+%%%
+%%% This file contains config values to simplify the use of the
+%%% Zapf-Chancery (aka pzc) font with the lettrine package by Daniel Flipo.
+%%% This file provides the parameters for 2 DefaultLines.
+%%%
+%%% If you want to use this file, your document should contain
+%%% the next three lines, without the leading percent signs.
+%%% \setcounter{DefaultLines}{2}
+%%% \renewcommand\LettrineFontHook{\fontencoding{T1}\fontfamily{pzc}\selectfont}
+%%% \renewcommand{\DefaultOptionsFile}{pzc2.cfl}
+%%%
+%%% Comments about this file can be sent to Kevin Dunn
+%%% (cavema2 at cavemanchemistry.com)
+%%%
+\ProvidesFile{pzc2.cfl}[2006/03/19 v0.1 Kevin M. Dunn]
+\LettrineOptionsFor{A}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.25\LettrineWidth}
+\LettrineOptionsFor{B}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.08\LettrineWidth}
+\LettrineOptionsFor{C}{loversize= 0.35,lraise= 0.10,lhang= 0.35,findent= 0.00\LettrineWidth,nindent= 0.28\LettrineWidth}
+\LettrineOptionsFor{D}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent= 0.05\LettrineWidth}
+\LettrineOptionsFor{E}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.00\LettrineWidth,nindent= 0.28\LettrineWidth}
+\LettrineOptionsFor{F}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.00\LettrineWidth}
+\LettrineOptionsFor{G}{loversize= 0.35,lraise= 0.10,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.17\LettrineWidth}
+\LettrineOptionsFor{H}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.20\LettrineWidth}
+\LettrineOptionsFor{I}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.25\LettrineWidth}
+\LettrineOptionsFor{J}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent= 0.00\LettrineWidth}
+\LettrineOptionsFor{K}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.13\LettrineWidth}
+\LettrineOptionsFor{L}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=-0.02\LettrineWidth,nindent= 0.30\LettrineWidth}
+\LettrineOptionsFor{M}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
+\LettrineOptionsFor{N}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.10\LettrineWidth}
+\LettrineOptionsFor{O}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent= 0.08\LettrineWidth}
+\LettrineOptionsFor{P}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.25\LettrineWidth,nindent= 0.05\LettrineWidth}
+\LettrineOptionsFor{Q}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent= 0.10\LettrineWidth}
+\LettrineOptionsFor{R}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.08\LettrineWidth,nindent= 0.15\LettrineWidth}
+\LettrineOptionsFor{S}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.13\LettrineWidth}
+\LettrineOptionsFor{T}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.20\LettrineWidth}
+\LettrineOptionsFor{U}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
+\LettrineOptionsFor{V}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.18\LettrineWidth,nindent=-0.15\LettrineWidth}
+\LettrineOptionsFor{W}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.15\LettrineWidth,nindent=-0.05\LettrineWidth}
+\LettrineOptionsFor{X}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.00\LettrineWidth,nindent= 0.35\LettrineWidth}
+\LettrineOptionsFor{Y}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.10\LettrineWidth,nindent= 0.05\LettrineWidth}
+\LettrineOptionsFor{Z}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent= 0.00\LettrineWidth,nindent= 0.30\LettrineWidth}
+\endinput
diff --git a/macros/latex/contrib/lettrine/contrib/pzc3.cfl b/macros/latex/contrib/lettrine/contrib/pzc3.cfl
new file mode 100644
index 0000000000..a67ba9b5b0
--- /dev/null
+++ b/macros/latex/contrib/lettrine/contrib/pzc3.cfl
@@ -0,0 +1,45 @@
+%%% This is file `pzc2.cfl'.
+%%% It is provided under the LPPL. Copyright is held by Kevin M. Dunn.
+%%% If you modify this file you *MUST* change its name.
+%%%
+%%% This file contains config values to simplify the use of the
+%%% Zapf-Chancery (aka pzc) font with the lettrine package by Daniel Flipo.
+%%% This file provides the parameters for 3 DefaultLines.
+%%%
+%%% If you want to use this file, your document should contain
+%%% the next three lines, without the leading percent signs.
+%%% \setcounter{DefaultLines}{3}
+%%% \renewcommand\LettrineFontHook{\fontencoding{T1}\fontfamily{pzc}\selectfont}
+%%% \renewcommand{\DefaultOptionsFile}{pzc3.cfl}
+%%%
+%%% Comments about this file can be sent to Kevin Dunn
+%%% (cavema2 at cavemanchemistry.com)
+
+\ProvidesFile{pzc3.cfl}[2006/03/19 v0.1 Kevin M. Dunn]
+\LettrineOptionsFor{A}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.25\LettrineWidth}
+\LettrineOptionsFor{B}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.08\LettrineWidth,slope=-0.08\LettrineWidth}
+\LettrineOptionsFor{C}{loversize= 0.35,lraise= 0.10,lhang= 0.35,findent=0.00\LettrineWidth,nindent= 0.28\LettrineWidth}
+\LettrineOptionsFor{D}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.15\LettrineWidth,nindent= 0.05\LettrineWidth,slope=-0.05\LettrineWidth}
+\LettrineOptionsFor{E}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.00\LettrineWidth,nindent= 0.28\LettrineWidth}
+\LettrineOptionsFor{F}{loversize= 0.35,lraise= 0.05,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.00\LettrineWidth}
+\LettrineOptionsFor{G}{loversize= 0.30,lraise= 0.30,lhang= 0.5,findent=0.10\LettrineWidth,nindent= 0.15\LettrineWidth}
+\LettrineOptionsFor{H}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.20\LettrineWidth}
+\LettrineOptionsFor{I}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.25\LettrineWidth}
+\LettrineOptionsFor{J}{loversize= 0.35,lraise= 0.05,lhang= 0.35,findent=0.15\LettrineWidth,nindent= 0.00\LettrineWidth}
+\LettrineOptionsFor{K}{loversize= 0.30,lraise= 0.20,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.13\LettrineWidth,slope= 0.20\LettrineWidth}
+\LettrineOptionsFor{L}{loversize= 0.35,lraise= 0.00,lhang=0.35,findent=-0.02\LettrineWidth,nindent= 0.30\LettrineWidth}
+\LettrineOptionsFor{M}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
+\LettrineOptionsFor{N}{loversize= 0.30,lraise= 0.20,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.10\LettrineWidth,slope= 0.20\LettrineWidth}
+\LettrineOptionsFor{O}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.15\LettrineWidth,nindent= 0.08\LettrineWidth}
+\LettrineOptionsFor{P}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.25\LettrineWidth,nindent= 0.05\LettrineWidth}
+\LettrineOptionsFor{Q}{loversize= 0.30,lraise= 0.25,lhang= 0.35,findent=0.15\LettrineWidth,nindent= 0.10\LettrineWidth,slope= 0.20\LettrineWidth}
+\LettrineOptionsFor{R}{loversize= 0.30,lraise= 0.20,lhang= 0.35,findent=0.08\LettrineWidth,nindent= 0.15\LettrineWidth,slope= 0.20\LettrineWidth}
+\LettrineOptionsFor{S}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.10\LettrineWidth,nindent= 0.13\LettrineWidth}
+\LettrineOptionsFor{T}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.20\LettrineWidth}
+\LettrineOptionsFor{U}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.05\LettrineWidth,nindent= 0.15\LettrineWidth}
+\LettrineOptionsFor{V}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.18\LettrineWidth,nindent=-0.05\LettrineWidth,slope=-0.15\LettrineWidth}
+\LettrineOptionsFor{W}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.18\LettrineWidth,nindent=-0.05\LettrineWidth,slope=-0.10\LettrineWidth}
+\LettrineOptionsFor{X}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.00\LettrineWidth,nindent= 0.35\LettrineWidth}
+\LettrineOptionsFor{Y}{loversize= 0.30,lraise= 0.10,lhang= 0.40,findent=0.10\LettrineWidth,nindent= 0.00\LettrineWidth,slope=-0.10\LettrineWidth}
+\LettrineOptionsFor{Z}{loversize= 0.35,lraise= 0.00,lhang= 0.35,findent=0.00\LettrineWidth,nindent= 0.30\LettrineWidth}
+\endinput
diff --git a/macros/latex/contrib/lettrine/doc/lettrine-demo-de.pdf b/macros/latex/contrib/lettrine/doc/lettrine-demo-de.pdf
index f27982ed41..bf74f1840c 100644
--- a/macros/latex/contrib/lettrine/doc/lettrine-demo-de.pdf
+++ b/macros/latex/contrib/lettrine/doc/lettrine-demo-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/lettrine/doc/lettrine-demo-fr.pdf b/macros/latex/contrib/lettrine/doc/lettrine-demo-fr.pdf
index 0d311f197b..c14ada6737 100644
--- a/macros/latex/contrib/lettrine/doc/lettrine-demo-fr.pdf
+++ b/macros/latex/contrib/lettrine/doc/lettrine-demo-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/lettrine/doc/lettrine-demo-lua.pdf b/macros/latex/contrib/lettrine/doc/lettrine-demo-lua.pdf
index e8c19c69d4..40694cd70b 100644
--- a/macros/latex/contrib/lettrine/doc/lettrine-demo-lua.pdf
+++ b/macros/latex/contrib/lettrine/doc/lettrine-demo-lua.pdf
Binary files differ
diff --git a/macros/latex/contrib/lettrine/doc/lettrine.pdf b/macros/latex/contrib/lettrine/doc/lettrine.pdf
index 6870682712..5f4c521e91 100644
--- a/macros/latex/contrib/lettrine/doc/lettrine.pdf
+++ b/macros/latex/contrib/lettrine/doc/lettrine.pdf
Binary files differ
diff --git a/macros/latex/contrib/lettrine/lettrine-2022-09-25.sty b/macros/latex/contrib/lettrine/lettrine-2022-09-25.sty
new file mode 100644
index 0000000000..6ef4f4b070
--- /dev/null
+++ b/macros/latex/contrib/lettrine/lettrine-2022-09-25.sty
@@ -0,0 +1,302 @@
+%%
+%% This is file `lettrine.sty', v2.30.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% 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]
+\ProvidesFile{lettrine.sty}
+ [2022-09-25 v2.30 (Daniel Flipo)]
+\RequirePackage{xkeyval,minifp}
+\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
+\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}
+\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
+\newif\ifL@selfref
+\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}%
+}
+\newcommand*{\LettrineTestString}{EFTZ}
+\def\compute@fontsize{%
+ \ifL@selfref
+ \def\Lettrine@RefString{\l@refstring}%
+ \else
+ \def\Lettrine@RefString{\LettrineTestString}%
+ \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
+ \MFPdiv{\the\@tempcntb}{\the\@tempcnta}\L@factor
+ \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
+}
+\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}}
+\def\lettrine{\@ifnextchar[\@lettrine{\@lettrine[]}}
+\def\@lettrine[#1]#2#3{%
+ \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}%
+ \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{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
+ \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}%
+ \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}}%
+ \usebox{\L@tbox}%
+ \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
+ }%
+}
+\endinput
+%%
+%% End of file `lettrine.sty'.
diff --git a/macros/latex/contrib/lettrine/lettrine.dtx b/macros/latex/contrib/lettrine/lettrine.dtx
index 65f301e6af..be96ffe2f8 100644
--- a/macros/latex/contrib/lettrine/lettrine.dtx
+++ b/macros/latex/contrib/lettrine/lettrine.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright © 1999-2022 Daniel Flipo.
+% Copyright © 1999-2023 Daniel Flipo.
%
% This program can be distributed and/or modified under the terms
% of the LaTeX Project Public License either version 1.3c of this
@@ -12,31 +12,36 @@
%
% This file has the LPPL maintenance status "maintained".
%
-% \fi
-%
-% \iffalse
-%
-%<*sty>
-\NeedsTeXFormat{LaTeX2e}[2018-04-01]
-\ProvidesFile{lettrine.sty}
-%</sty>
-%<*dtx>
-\ProvidesFile{lettrine.dtx}
-%</dtx>
-%<*!cfg>
- [2022-09-25 v2.30 (Daniel Flipo)]
-%</!cfg>
-%
-% Lettrine package for LaTeX version 2e
-%
-% Copyright © 1999-2020 by Daniel Flipo
-%
-% Please report errors to: daniel (dot) flipo (at) free (dot) fr
-%
+%<*batch>
+%<*gobble>
+\ifx\jobname\relax\let\documentclass\undefined\fi
+\ifx\documentclass\undefined
+\csname fi\endcsname
+%</gobble>
+\input docstrip.tex
+\keepsilent
+\let\MetaPrefix\relax
+\preamble
+\endpreamble
+\postamble
+\endpostamble
+\let\MetaPrefix\DoubleperCent
+\askforoverwritefalse
+\generate{\file{lettrine.sty}{\from{lettrine.dtx}{sty}}
+ \nopreamble
+ \file{lettrine.cfg}{\from{lettrine.dtx}{cfg}}
+ }
+\endbatchfile
+%</batch>
+%<*gobble>
+\fi
+\expandafter\ifx\csname @currname\endcsname\empty
+\csname fi\endcsname
+%</gobble>
%<*driver>
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfstandard=A-2b, lang=en-US}
-\documentclass[a4paper]{ltxdoc}
+\DocumentMetadata{pdfstandard=A-2b, lang=en-GB}
+\documentclass[a4paper,british]{ltxdoc}
+\usepackage{babel,varioref}
\usepackage[dvipsnames]{xcolor}
\usepackage{unicode-math}
\setmainfont{erewhon}
@@ -73,7 +78,7 @@
\setlength{\parindent}{0pt}
\setlength{\parskip}{.3\baselineskip}
\begin{document}
-\GetFileInfo{lettrine.dtx}
+\GetFileInfo{lettrine.sty}
\begin{center}
\textbf{\Large Typesetting dropped capitals with LaTeX}
\\[.5\baselineskip]^^A\]
@@ -83,8 +88,27 @@
\DocInput{lettrine.dtx}
\end{document}
%</driver>
+%<*gobble>
+\fi
+%</gobble>
+% \fi
%
-%\fi
+% \iffalse
+%
+%<*sty>
+%% IMPORTANT NOTICE:
+%% For the copyright see the source file `lua-typo.dtx’.
+%%
+\NeedsTeXFormat{LaTeX2e}[2022-06-01]
+\ProvidesFile{lettrine.sty}
+%</sty>
+%<*dtx>
+\ProvidesFile{lettrine.dtx}
+%</dtx>
+%<*sty|dtx>
+ [2023-04-18 v2.40 (Daniel Flipo)]
+%</sty|dtx>
+% \fi
%
% \section{Introduction}
%
@@ -113,8 +137,7 @@
% \item ``Mise en page et impression’’ Yves~Perrousseaux,
% ISBN-2-911220-01-3.
% \end{itemize}
-% The parameters can be set using David Carlisle’s
-% \texttt{keyval.sty} syntax:
+% The parameters can be set using the \texttt{key=value} syntax:
% \begin{itemize}
% \item \lopt{lines=}\meta{integer} sets how many lines the
% dropped capital will occupy (default=2);
@@ -146,7 +169,7 @@
% like |A| or |V| to add \meta{dimen} (positive or negative) to the
% indentation of each line starting from the third one (no effect if
% \lopt{lines=2}, default=0pt);
-% \item \lopt{ante=}\meta{text} can be used to typeset \meta{text}
+% \item \lopt{ante=}\meta{string} can be used to typeset \meta{string}
% \emph{before} the dropped capital (typical use is for French
% guillemets starting the paragraph).
%
@@ -210,18 +233,17 @@
% top of the non accented letters).
% \end{description}
%
-% \item \lopt{refstring}\footnote{Unlike \lopt{grid} or
-% \lopt{realheight}, \lopt{refstring} is not a flag (\emph{do not}
-% add \lopt{=true}!); it is possible to set
-% \lopt{refstring=}\meta{string} to override \cs{LettrineTestString}
-% locally.} is meant for fancy initials with
-% irregular heights (i.e.\ taken in fonts like Yinit (OpenType),
-% \file{cfr-initials},…). \lopt{refstring} forces the
+% \item \lopt{refstring} with no value, is meant for fancy initials
+% with irregular heights (i.e.\ taken in fonts like Yinit (OpenType),
+% \file{cfr-initials},…). Option \lopt{refstring} forces the
% |\fontsize| computations to be run on the initial given as
% |\lettrine|’s first mandatory argument instead of the reference
% string |\LettrineTestString|. In most cases, this option should
% \emph{not} be used: think of accentuated initials or capitals with
-% optical correction.
+% optical correction.\par
+% \lopt{refstring}=\meta{string} can be used to override
+% |\LettrineTestString|, the default reference string
+% (option \emph{seldom useful}).
%
% \end{itemize}
%
@@ -230,7 +252,7 @@
% \mbox{}\phantom{\tt Example: lettrine}%
% |{V}{oici} un exemple |…
%
-% Coloured initials are possible in conjonction with package
+% Coloured initials are available in conjonction with package
% \file{color}, examples: \\
% |\lettrine{\textcolor{red}{A}}{n} example|\quad or\\
% |\lettrine{\textcolor[gray]{0.5}{A}}{nother} one| \\
@@ -241,26 +263,27 @@
% Three dimensions, |\LettrineWidth|, |\LettrineHeight| and
% |\LettrineDepth|, store the final size of the initial.
%
-% Have a look at files \file{demo-fr.tex} and \file{demo-lua.tex}
-% and at the resulting PDFs in the \file{doc} folder to see the
-% possible usage of these parameters.
+% Have a look at files \file{lettrine-demo-fr.tex} and
+% \file{lettrine-demo-lua.tex} and at the resulting PDFs in the
+% \file{doc} folder to see the possible usage of these parameters.
%
% \changes{v1.9}{2015/08/31}{New customisable string
% \cs{LettrineSecondString} to tune the initial’s height.}
%
-% Starting with version~2.30, the default settings can be
+% Starting with version~2.30, the default settings can easily be
% specified as options passed to the \pkg{lettrine} \emph{package}.
-% These options are the same as those of the |\lettrine| command%
-% \footnote{With one exception: \lopt{refstring} is available only
-% for the \cs{lettrine} command.}:
-% f.i. |\usepackage[lines=3]{lettrine}| will set the default to three
-% lines of text. Options passed to the \pkg{lettrine} package override
-% the defaults set in the \file{lettrine.cfg} file (see below) and will
-% be overriden by options passed to the |\lettrine| command.
-%
-% The default settings can be customized in a config file
-% \file{lettrine.cfg} for a global usage. The following list shows
-% the syntax to set them and their default values:
+% These options are the same as those of the |\lettrine| command
+% previously described%
+% \footnote{With the exception of \lopt{ante} which doesn’t make
+% sense for a global usage.}: f.i. |\usepackage[lines=3]{lettrine}|
+% will set the default to three lines of text.
+% Options passed to the \pkg{lettrine} package override the defaults
+% set in the \file{lettrine.cfg} file (see below) and will be
+% overriden by options passed to the |\lettrine| command.
+%
+% The default settings can also be customized in a config file
+% \file{lettrine.cfg} (backward compatibility). The following list
+% shows the syntax to set them and their default values:
% \begin{itemize}
% \item |\setcounter{DefaultLines}{2}|,
% \item |\setcounter{DefaultDepth}{0}|,
@@ -288,9 +311,9 @@
%
% The dimensional parameters \lopt{findent}, \lopt{nindent} and
% \lopt{slope}, can be set relative to |\LettrineWidth| if needed,
-% \emph{in \meta{filename} only}. The settings read from this file
-% will be overridden by the optional arguments eventually given to
-% |\lettrine|.
+% \emph{in an \file{optionsfile} only}. The settings read from this
+% file will be overridden by the optional arguments eventually given
+% to the |\lettrine| command.
%
% |\LettrineTextFont| sets the font used for the second argument
% of |\lettrine|, its default definition is
@@ -332,12 +355,12 @@
% \vspace{\baselineskip}
% \textbf{Important notice:}
% the sizing works fine with \emph{fully scalable} fonts (like the
-% standard PostScript fonts), but might not work well with CM/EC
-% fonts which have two limitations: only a limited number of sizes
-% is available by default (precise adjustments are impossible),
-% and the largest size (25pt or 35pt) is often too small.
-% The CM fonts are now available in PostScript type1 format for
-% free (courtesy of BlueSky/Y\&Y), to make them fully scalable,
+% standard PostScript or OpenType fonts), but might not work well
+% with CM/EC fonts which have two limitations: only a limited number
+% of sizes is available by default (precise adjustments are
+% impossible), and the largest size (25pt or 35pt) is often too
+% small. The CM fonts are available in PostScript type1 format
+% for free (courtesy of BlueSky/Y\&Y), to make them fully scalable,
% it is mandatory to add |\usepackage{type1cm}| in the preamble
% of your document.
% The EC fonts are also available in type1 format for free
@@ -411,30 +434,21 @@
% \changes{v2.2}{2018/08/25}{Rollback mechanism used for recovering
% older versions.}
%
-% The lettrine package now uses the rollback mechanism recently
-% introduced by the LaTeX Team to provide easier backward
-% compatibility. This requires a recent LaTeX kernel (at least
-% 2018-04-01), roolback is ignored with older kernels.
-% \begin{macrocode}
-\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
-% \end{macrocode}
-%
-% This package only runs with LaTeX and requires files
-% \file{xkeyval.sty} and \file{minifp.sty}.
+% \changes{v2.40}{2023/04/18}{lettrine.dtx auto-generates lettrine.sty
+% and lettrine.cfg (lettrine.ins deleted).}
%
+% The lettrine package uses the rollback mechanism
+% introduced by the LaTeX Team to provide easier backward
+% compatibility. The current release requires a LaTeX version
+% not older than 2022-06-01 (kernel packages \pkg{ltkeys} and
+% \pkg{xfp} are required).
% \begin{macrocode}
-\RequirePackage{xkeyval,minifp}
+\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}
% \end{macrocode}
%
% Default initializations: define the necessary counters, lengths,
@@ -477,42 +491,6 @@
\newif\ifLettrineRealHeight
% \end{macrocode}
%
-% Load a local config file if present in LaTeX’s search path.
-% \begin{macrocode}
-\InputIfFileExists{lettrine.cfg}
- {\typeout{Loading lettrine.cfg}}
- {\typeout{lettrine.cfg not found, using default values}}
-% \end{macrocode}
-%
-% \changes{v2.30}{2022/09/23}{Added global options to package
-% \pkg{lettrine}.}
-%
-% Global package options enable to override the default values given
-% above to generic parameters. These may be overriden again by
-% options passed to the |\lettrine[]{}{}| command.
-% \begin{macrocode}
-\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
-% \end{macrocode}
-
% Then let’s define the necessary internal counters, lengths,
% and commands.
%
@@ -548,17 +526,95 @@
\newif\ifL@image
\newif\ifL@grid
\newif\ifL@realh
-\newif\ifL@selfref
% \end{macrocode}
%
-% Provide commands for the fonts used to typeset the two
-% mandatory arguments of |\lettrine|.
+% \begin{macro}{\LettrineTestString}
+% As some font designers apply optical correction to capitals C, G,
+% O, or Q (they are slightly taller than `T’ or `Z’), they are better
+% left out of |\LettrineTestString|. |EFTZ| should be a good default
+% for most fonts.
+%
+% \changes{v1.63}{2012/07/20}{(new) it defaults to
+% `ABCDEFGHIJKLMNOQPRSTUVWXYZ’. In previous versions height
+% computations were based on letter `X’ which might not exist
+% in some (rare) fonts. Pointed out by Raphaël Pinson.}
+%
+% \changes{v2.0}{2018/07/21}{changed from `ABCDEFGHIJKLMNOQPRSTUVWXYZ’
+% to `EFTZ’ as some capitals like C, G, O, Q or X might be slightly
+% taller (possible optical correction).}
+%
+% \begin{macrocode}
+\newcommand*{\LettrineTestString}{EFTZ}
+% \end{macrocode}
+% \end{macro}
+%
+% Load a local config file if present in LaTeX’s search path.
+% \begin{macrocode}
+\InputIfFileExists{lettrine.cfg}
+ {\typeout{Loading lettrine.cfg}}
+ {\typeout{lettrine.cfg not found, using default values}}
+% \end{macrocode}
+%
+% \changes{v2.30}{2022/09/23}{Added global options to package
+% \pkg{lettrine}.}
+%
+% \changes{v2.40}{2023/04/18}{Package options and \cs{lettrine} options
+% no longer depend on \pkg{xkeyval}, they are based on ltkeys.dtx.}
+%
+% Global package options enable to override the default values given
+% above to generic parameters. These may be overriden again by
+% options passed to the |\lettrine[]{}{}| command.
+% This code is based on \pkg{ltkeys.dtx}.
+% \begin{macrocode}
+\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]
+% \end{macrocode}
+%
+% Ditto for the |\lettrine| command’s options.
+%
+% \begin{macrocode}
+\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
+ }
+% \end{macrocode}
%
% \changes{v2.21}{2018/08/28}{Code clean up, new commands
% \cs{computeL@height}, \cs{compute@fontsize}, \cs{setupL@lbox}.}
%
% \begin{macro}{\LettrineTextFont}
-% In French, small caps usually follow the dropped capital.
+% In French, small caps usually follow the initial.
% \begin{macrocode}
\newcommand*{\LettrineTextFont}{\scshape}
\newcommand*{\LettrineSecondString}{x}
@@ -657,41 +713,20 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\LettrineTestString}
+% \begin{macro}{\compute@fontsize}
% After executing |\computeL@height|, |\L@height| holds the exact
% height required for the dropped capital, nothing more is needed if
% the initial is a picture, otherwise we need to compute the matching
% |\fontsize|’s value. This is done by measuring the height of
% a ``reference’’ capital (i.e.\ either listed in
% |\LettrineTestString| or the initial itself).
-% As some font designers apply optical correction to capitals C, G,
-% O, or Q (they are slightly taller than `T’ or `Z’), they are better
-% left out of |\LettrineTestString|. |EFTZ| should be a good default
-% for most fonts.
-%
-% \changes{v1.63}{2012/07/20}{(new) it defaults to
-% `ABCDEFGHIJKLMNOQPRSTUVWXYZ’. In previous versions height
-% computations were based on letter `X’ which might not exist
-% in some (rare) fonts. Pointed out by Raphaël Pinson.}
-%
-% \changes{v2.0}{2018/07/21}{changed from `ABCDEFGHIJKLMNOQPRSTUVWXYZ’
-% to `EFTZ’ as some capitals like C, G, O, Q or X might be slightly
-% taller (possible optical correction).}
-%
-% \begin{macrocode}
-\newcommand*{\LettrineTestString}{EFTZ}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\compute@fontsize}
% This command compares the height of a ``reference’’ capital scaled
-% by |\fontsize| with argument |\L@height| to |\L@height| (the
+% by |\fontsize| with argument |\L@height|, to |\L@height| (the
% required height for the initial); both are converted into integers
-% (in sp) to compute a ratio |\L@factor|.
-% Up to v2.01, possible values for |\L@factor| were either 1 or any
-% value $\geq 1.1$ which was fine for almost every font but not
-% all (i.e.\ \file{cfr-initials}). Starting with v2.1, |\L@factor|
-% is computed more accurately by |\MFPdiv| from \file{minifp.sty}.
+% (in sp), to compute a ratio |\L@factor| (decimal number).
+% Then, the initial will be scaled by |\L@factor\L@height|.
+% Starting with v2.40, |\L@factor| is computed by |\fpeval|
+% from \file{xfp.sty}.
%
% \changes{v2.1}{2018/08/14}{Computation of \cs{L@factor} for
% \cs{fontsize} done by the minifp package.}
@@ -699,17 +734,20 @@
% \changes{v2.22}{2018/09/14}{Warn if \cs{fontsize} computation fails
% due to division by 0.}
%
-% The conditional |\ifL@selfref| is set to \lopt{true} by |\lettrine|
-% option \lopt{refstring}, then the initial itself is taken as
-% reference to compute |\fontsize|, this can be handy when working
-% with fancy fonts (i.e.\ cfr-initials, Yinit). In most cases, the
-% default is a better choice.
+% \changes{v2.40}{2023/04/18}{Computation of \cs{L@factor} for
+% \cs{fontsize} done by the xfp package.}
+%
+% If the option \lopt{refstring} is set in the |\lettrine| command
+% the initial itself is taken as reference to compute |\fontsize|,
+% this can be handy when working with fancy fonts
+% (i.e.\ cfr-initials, Yinit).
+% In most cases, the default is a better choice .
% \begin{macrocode}
\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
@@ -721,7 +759,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
}
% \end{macrocode}
@@ -746,7 +784,8 @@
%
% \begin{macro}{\LettrineImage}
% The following definition is for use with dropped capitals defined
-% as images: EPS, PDF, JPG, PNG files (see examples in demo-fr.tex).
+% as images: EPS, PDF, JPG, PNG files (see examples in
+% lettrine-demo-fr.tex).
% Its requires the |graphicx| package to be loaded in the
% preamble with |\usepackage{graphicx}|. The image’s height is
% computed just as in the standard case and passed to
@@ -778,26 +817,6 @@
% \end{macrocode}
% \end{macro}
%
-% Set up keyval initializations for the |\lettrine| command.
-%
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-%
% \changes{v1.5}{2003/08/18}{\cs{LettrineOptionsFor} and
% \cs{LettrineWidth} added.}
%
@@ -805,23 +824,33 @@
% This command is to be used in an optional config file (the name
% of which is found in |\DefaultOptionsFile|) to set the values
% of parameters on a per character basis, for instance:\\
-% |\LettrineOptionsFor{A}{slope=0.6em, findent=-1em, nindent=0.6em}|\\
-% creates an internal command (|\l@A-keys| in this example),
-% which expands to the options given as second argument of
-% |\LettrineOptionsFor| for letter `A’.
+% |\LettrineOptionsFor{A}{slope=0.6em, findent=-1em, nindent=0.6em}|
%
% \begin{macrocode}
-\newcommand*{\LettrineOptionsFor}[2]{\@namedef{l@#1-keys}{#2}}
+\newcommand*{\LettrineOptionsFor}[2]{%
+ \edef\l@tmpa{#1}%
+% \end{macrocode}
+% Gobble potential color commands for the initial.
+% \begin{macrocode}
+ \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
+ }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\lettrine}
-% Now let’s define |\lettrine|.
+% Now let’s define the |\lettrine| command.
%
% \begin{macrocode}
\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
% \end{macrocode}
%
% \changes{v1.9}{2015/08/31}{\cs{theDefaultLines} changed to
@@ -846,11 +875,11 @@
\ifLettrineRealHeight\L@realhtrue\else\L@realhfalse\fi
% \end{macrocode}
%
-% The final initial size depends on the height of |\L@tbox|; the
-% content of |\L@tbox| depends on option |realheight|, so we have
-% to read |\lettrine|’s optional argument and initialise the
-% |\L@tbox| content now\footnote{Now means before eventually
-% reading the config file.}.
+% Then take the local options passed to |\lettrine| into account.
+% The content of |\L@tbox| depends on option |realheight|, so we
+% have to initialise the |\L@tbox| content now%
+% \footnote{Now means before eventually reading the per character
+% config file.}.
%
% \changes{v1.9}{2015/08/31}{Use the second mandatory
% argument of \cs{lettrine} or \cs{LettrineSecondString} (which
@@ -858,7 +887,7 @@
% the `realheight’ flag.}
%
% \begin{macrocode}
- \setkeys{L}{#1}%
+ \SetKeys[LettrineLocal]{#1}%
\sbox{\L@tbox}{\LettrineTextFont{\LettrineSecondString}}%
\ifL@realh
\def\@tempa{#3}%
@@ -867,7 +896,7 @@
{Empty second argument,\MessageBreak
ignoring option `realheight';}%
\else
- \sbox{\L@tbox}{\LettrineTextFont{#3}}%
+ \sbox{\L@tbox}{{\LettrineTextFont{#3}}}%
\fi
\fi
% \end{macrocode}
@@ -878,74 +907,39 @@
% global command |\l@LOKeys| which will expand to the list of
% options given by |\LettrineOptionsFor| for the current initial
% (defined by |#2|)…
+%
+% \changes{v2.40}{2023/04/18}{Options from the per letter config file
+% are now handled by LaTeX command \cs{SetKeys}.}
+%
+% Take the per character config file into account if any.
% \begin{macrocode}
\if\DefaultOptionsFile\relax
\else
- \begingroup
- \InputIfFileExists{\DefaultOptionsFile}%
- {}%
- {\PackageWarning{lettrine.sty}%
- {File \DefaultOptionsFile\space not found}%
- }%
-% \end{macrocode}
-% Gobble the colour commands, just keep the letter argument.
-% \begin{macrocode}
- \def\color##1##{\l@color{##1}}%
- \let\l@color\@gobbletwo
- \def\textcolor##1##{\l@textcolor{##1}}%
- \def\l@textcolor##1##2##3{##3}%
-% \end{macrocode}
-% Save the list of options relevant to the letter in |#2|
-% in |\l@LOKeys| (list is empty eventually).
-% \begin{macrocode}
- \expandafter\ifx\csname l@#2-keys\endcsname\relax
- \gdef\l@LOKeys{}%
- \else
- \xdef\l@LOKeys{\csname l@#2-keys\endcsname}%
- \fi
- \endgroup
-% \end{macrocode}
-% Now apply these options (the following code executes
-% |\setkeys{L}{\l@LOKeys}}| where |\l@LOKeys| is expanded,
-% see \file{keyval.sty}).
-% \begin{macrocode}
- \def\KV@prefix{KV@L@}%
- \let\@tempc\relax
- \expandafter\KV@do\l@LOKeys,\relax,
% \end{macrocode}
% As some parameters’ values \lopt{findent}, \lopt{nindent} and
% \lopt{slope} ---which do not influence the initial’s size--- may
% be given relative to |\LettrineWidth|, the |\L@lbox| has to be
% set up to evaluate |\LettrineWidth|.
-%
-% \changes{v2.21}{2018/08/28}{\lopt{findent} computation
-% relative to \cs{LettrineWidth} in \lopt{.cfl} files fixed;
-% thanks to Frank Mittelbach for raising the issue.}
-%
% \begin{macrocode}
\setupL@lbox
\setlength{\LettrineWidth}{\wd\L@lbox}%
- \def\KV@prefix{KV@L@}%
- \let\@tempc\relax
- \expandafter\KV@do\l@LOKeys,\relax,
+ \InputIfFileExists{\DefaultOptionsFile}%
+ {}%
+ {\PackageWarning{lettrine.sty}%
+ {File \DefaultOptionsFile\space not found}%
+ }%
% \end{macrocode}
% As local options prevail on those held in the config file, we
-% have to read local options again:
+% have to read again the optionnal argument of |\lettrine|.
% \begin{macrocode}
- \setkeys{L}{#1}%
+ \SetKeys[LettrineLocal]{#1}%
\fi
% \end{macrocode}
-% Options and optional config file have be taken into account, we
-% can now finally save the first mandatory argument of |\lettrine|
-% properly scaled into |\L@lbox|.
-% \begin{macrocode}
- \setupL@lbox
-% \end{macrocode}
-%
% \changes{v1.65}{2014/09/04}{Measure and store the initial’s
% final dimensions.}
% Store the initial’s final dimensions,
% \begin{macrocode}
+ \setupL@lbox
\setlength{\LettrineWidth}{\wd\L@lbox}%
\setlength{\LettrineHeight}{\ht\L@lbox}%
\setlength{\LettrineDepth}{\dp\L@lbox}%
@@ -954,7 +948,7 @@
% \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,
+% and print some informations about accuracy to the log file,
% \begin{macrocode}
\begingroup
\def\IeC##1{##1}%
@@ -975,7 +969,7 @@
% \cs{LettrineTextFont}. Suggested by Philipp Lehman.}
%
% \begin{macrocode}
- \sbox{\L@tbox}{\LettrineTextFont{#3}}%
+ \sbox{\L@tbox}{{\LettrineTextFont{#3}}}%
% \end{macrocode}
%
% Start a new paragraph, skipping the necessary amount of space
@@ -1093,12 +1087,16 @@
% \changes{v1.64}{2013/03/14}{Remove \$ around \cs{smash}
% and add \cs{relax}. Bug pointed out by David Monniaux.
% Correction by Enrico Gregorio.}
+%
+% \changes{v2.40}{2023/04/18}{Replace \cs{usebox} by \cs{unhcopy}
+% for box \cs{L@tbox} to allow footnote calls and microtype action.}
+%
% Write the dropped capital into the left margin, and wrap
% the rest of paragraph around it.
% \begin{macrocode}
\smash{\llap{\mbox{\L@ante}\raisebox{\L@lraise}{\usebox{\L@lbox}}%
\hskip \the\L@Findent}}%
- \usebox{\L@tbox}%
+ \unhcopy\L@tbox\relax
% \end{macrocode}
%
%\changes{v2.22}{2019/03/30}{\cs{parshape} reset added in lists.}
@@ -1170,7 +1168,7 @@
%%
%% In case you want to set parameters for some letters
%% in file `optfile.cfl'
-%% \renewcommand{\DefaultOptionsFile}{optfile.cfl}
+%%\renewcommand{\DefaultOptionsFile}{optfile.cfl}
% \end{macrocode}
% \iffalse
%</cfg>
diff --git a/macros/latex/contrib/lettrine/lettrine.ins b/macros/latex/contrib/lettrine/lettrine.ins
deleted file mode 100644
index 4c0c40bc7b..0000000000
--- a/macros/latex/contrib/lettrine/lettrine.ins
+++ /dev/null
@@ -1,84 +0,0 @@
-%%
-%% Copyright (C) 1999-2022 Daniel Flipo.
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-%% This program 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.
-%%
-\def\batchfile{lettrine.ins}
-\input docstrip.tex
-
-{\ifx\generate\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.3c or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old docstrip.tex.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\keepsilent
-\askforoverwritefalse
-
-\usedir{tex/latex/lettrine}
-
-\preamble
-
-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>
-
-\endpreamble
-
-\generate{\file{lettrine.sty}{\from{lettrine.dtx}{sty}}
- \nopreamble
- \file{lettrine.cfg}{\from{lettrine.dtx}{cfg}}
- }
-
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move}
-\Msg{* lettrine.sty, lettrine.cfg and the *.cfl files generated}
-\Msg{* from contrib.ins into a directory searched by TeX.}
-\Msg{*}
-\Msg{* If you want to change the default settings, uncomment the}
-\Msg{* lines you want in file lettrine.cfg and customize them.}
-\Msg{*}
-\Msg{* To produce the documentation run lettrine.dtx}
-\Msg{* through LuaLaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing!}
-\Msg{*}
-\Msg{***********************************************************}
-
-\endbatchfile
-\endinput