% \CheckSum{650}
%
% \iffalse meta-comment
%
% Copyright © 1999-2018 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 has the LPPL maintenance status "maintained".
%
% \fi
%
% \iffalse
%
%<*sty>
\NeedsTeXFormat{LaTeX2e}[2018-04-01]
\ProvidesFile{lettrine.sty}
%</sty>
%<*dtx>
\ProvidesFile{lettrine.dtx}
%</dtx>
%<*!cfg>
             [2019-04-06 v2.22 (Daniel Flipo)]
%</!cfg>
%
%    Lettrine package for LaTeX version 2e
%
%    Copyright © 1999-2019 by Daniel Flipo
%
%    Please report errors to: daniel (dot) flipo (at) free (dot) fr
%
%<*driver>
\documentclass[a4paper]{ltxdoc}
\usepackage{unicode-math}
\setmainfont{Latin Modern Roman}
\setmathfont{XITS Math}
\usepackage[expansion=true,protrusion=true]{microtype}
\usepackage{url}
\usepackage[numbered]{hypdoc}
\hypersetup{colorlinks,urlcolor=blue,unicode}
\usepackage{lettrine}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows}
%
\RecordChanges
\AtEndDocument{%
  \clearpage
  \section{Change History}%
   \GlossaryPrologue{}%
   Changes are listed in reverse order (latest first) from version~1.0
   \PrintChanges
}
%
\newcommand*\file[1]{\texttt{#1}}
\newcommand*\lopt[1]{\texttt{#1}}
\renewcommand\meta[1]{\textit{<#1>}} % no math mode (see doc.sty)
%
\setlength{\parindent}{0pt}
\setlength{\parskip}{.3\baselineskip}
\begin{document}
\GetFileInfo{lettrine.dtx}
\begin{center}
  \textbf{\Large Typesetting dropped capitals in \LaTeXe{} documents}
  \\[.2\baselineskip]^^A\]
  {\large Daniel Flipo}\\
  \texttt{daniel.flipo@free.fr}
\end{center}
\DocInput{lettrine.dtx}
\end{document}
%</driver>
%
%\fi
%
%  \section{Introduction}
%
%    The file \file{\filename}\footnote{The file described in this
%    section has version number \fileversion\ and was last revised on
%    \filedate.}, provides a command |\lettrine| which requires two
%    mandatory arguments, and an optional one.
%
%    Adding |\usepackage{lettrine}| in the preamble of a document
%    defines the command |\lettrine|, the simplest use of which is
%    |\lettrine{|\meta{letter}|}{|\meta{text}|}|.
%    It produces a dropped capital \meta{letter} (2 lines high),
%    followed by \meta{text} typeset in small caps, and the rest
%    of the paragraph is wrapped around the dropped capital.
%
%    Various parameters are provided to control the size and layout
%    of the dropped capital and match the requirements described
%    in the books
%    \begin{itemize}
%    \item ``Lexique des règles typographiques en usage à
%           l’Imprimerie nationale’’ troisième édition (1994),
%           ISBN-2-11-081075-0,
%    \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:
%    \begin{itemize}
%      \item \lopt{lines=}\meta{integer} sets how many lines the
%            dropped capital will occupy (default=2);
%
% \changes{v1.7}{2014/09/16}{New counter to add lines for
%    dropped capitals with positive depth, like Q.}
%
%      \item \lopt{depth=}\meta{integer} sets the number of lines to
%            be reserved under the baseline, this is meant for dropped
%            capital with positive depth, like Q (default=0);
%      \item \lopt{lhang=}\meta{decimal} ($0\le|lhang|\le1$) sets
%            how much of the dropped capital’s width should hang into
%            the margin (default=0);
%      \item \lopt{loversize=}\meta{decimal} ($-1<\lopt{loversize}\le1$)
%            enlarges the dropped capital’s height: with
%            \lopt{loversize=0.1} its height is enlarged by 10\% so
%            that it raises above the top paragraph’s line (default=0);
%      \item \lopt{lraise=}\meta{decimal} does not affect the dropped
%            capital’s height, but moves it up (if positive),
%            down (if negative); useful with capitals like |J| or |Q|
%            which have a positive depth, (default=0);
%      \item \lopt{findent=}\meta{dimen} (positive or negative)
%            controls the horizontal gap between the dropped capital
%            and the indented block of text (default=0pt);
%      \item \lopt{nindent=}\meta{dimen} shifts all indented lines,
%            starting from the second one, horizontally by
%            \meta{dimen} (this shift is relative to the first
%            line, default=0.5em);
%      \item \lopt{slope=}\meta{dimen} can be used with dropped
%            capitals 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}
%            \emph{before} the dropped capital (typical use is for
%            French guillemets starting the paragraph).
%
% \changes{v1.6}{2004/05/22}{Add a flag to switch to
%    images in eps or pdf format.  Suggested by Bill Jetzer.}
%
%      \item \lopt{image=true} (new to version 1.6) will force
%            |\lettrine| to replace the letter normally used as
%            dropped capital by an image in eps format (latex) or
%            in pdf, jpg, etc.\ format (pdflatex); this needs the
%            |graphicx| package to be loaded in the preamble of course.
%            |\lettrine[image=true]{A}{n exemple}| or just
%            |\lettrine[image]{A}{n exemple}| will load |A.eps|,
%            |A.jpg|, |A.png| or |A.pdf| instead of letter~A.
%            This was suggested by Bill Jetzer.\\
%            N.B.: Redefining |\LettrineFont| as |\LettrineFontEPS|
%            is no longer supported and |\LettrineFontEPS| has been
%            renamed as |\LettrineImage|.
%
% \changes{v1.8}{2015/02/06}{Added two keyval options:
%    `grid’ (true/false) and `novskip’ to override \cs{DiscardVskip}.}
%
%      \item \lopt{grid=true} (new to version 1.8) will force
%            the vertical skip added above the paragraph starting with
%            |\lettrine| to be rounded up to an integer number of
%            |\baselineskip|.
%            This option is meant for grid typesetting.
%      \item \lopt{novskip=}\meta{dimen} (new to version 1.8)
%            overrides |\DiscardVskip| (default=0.2pt).  In some cases
%            (see options \lopt{lraise}, \lopt{loversize} or
%            accentuated dropped capitals,\dots) the top of the
%            dropped capital will raise above the top of following
%            text (usually in small caps), this will trigger
%            a corresponding vertical skip above the paragraph
%            starting with |\lettrine|, \emph{only if} this skip
%            exceeds |\DiscardVskip|.
%            Consider enlarging |novskip| (or |\DiscardVskip|) to
%            prevent small vertical skips from being rounded up to
%            |\baselineskip| when using the `grid’ option.
%
% \changes{v1.9}{2015/08/31}{New keyval option: `realheight’
%     (true/false) and new global flag \cs{ifLettrineRealHeight}.}
%
%      \item \lopt{realheight=true} (new to version 1.9) will
%            compute the default height of the initial so that the
%            top of it is exactly aligned with the top of the text
%            entered as second mandatory argument of |\lettrine|
%            taking possible accents into account.
%            Otherwise, the default height is computed using a
%            customisable string |\LettrineSecondString| instead of
%            the real argument.  For backward compatibility, option
%            \lopt{realheight} defaults to \lopt{false} and
%            |\LettrineSecondString| to `x’.
%
%            You probably don’t need this option if you choose to
%            typeset the second mandatory argument of |\lettrine| in
%            small caps (the default).  If you change
%            |\LettrineTextFont| to |\relax| or |\upshape|, consider
%            these two examples:
%            \begin{description}
%              \item |\lettrine{H}{ello}| you probably would like the
%              top of the `H’ to be aligned with the top of the `ll’
%              rather than with the top of the `e’, adding option
%              |realheight| does the trick:
%              |\lettrine[realheight]{H}{ello}|.\par
%              Global variants : |\LettrineRealHeighttrue| or (without
%              |realheight| option)
%              |\renewcommand*{\LettrineSecondString}{l}|.
%              \item |\lettrine{L}{a misère}| option
%              \lopt{realheight=true} would align with the top
%              of the `L’ with the top of the grave accent, the
%              default is probably better (top of the `L’ aligned with
%              the 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.}
%            (new to version 2.1) is meant for fancy initials with
%            irregular heights (i.e.\ taken in fonts like Yinit
%            (OpenType), \file{cfr-initials},\dots).
%            \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.
%
%    \end{itemize}
%
%    Example: |\lettrine[lines=4, lraise=0.1, nindent=0em, |%
%                        |slope=-.5em]%|\\
%    \mbox{}\phantom{\tt Example: lettrine}%
%                        |{V}{oici} un exemple |\dots
%
%    Coloured initials are possible in conjonction with package
%    \file{color}, examples: |\lettrine{\textcolor{red}{A}}{n} example|
%    \quad or\\ |\lettrine{\textcolor[gray]{0.5}{A}}{nother} one| \\
%    see package \file{color} for the syntax of colour commands.
%    Another possibility to colour initials globally is described
%    below, see |\LettrineFontHook|.
%
%    Three dimensions, |\LettrineWidth|, |\LettrineHeight| and
%    |\LettrineDepth|, store the final size of the initial.
%
%    Once \file{lettrine.sty} will be installed (run \texttt{latex}
%    on \file{lettrine.ins} to extract it), compile and print
%    \file{demo.tex} 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.}
%
%    The default settings can be customized either in a config file
%    \file{lettrine.cfg} (for a global usage), or on a per document
%    basis, in the preamble of each document.  The following list
%    shows the syntax to set them and their default values:
%    \begin{itemize}
%      \item |\setcounter{DefaultLines}{2}|,
%      \item |\setcounter{DefaultDepth}{0}|,
%      \item |\renewcommand*{\DefaultLoversize}{0}|,
%      \item |\renewcommand*{\DefaultLraise}{0}|,
%      \item |\renewcommand*{\DefaultLhang}{0}|,
%      \item |\LettrineImagefalse|,
%      \item |\LettrineOnGridfalse|,
%      \item |\LettrineRealHeightfalse|,
%      \item |\LettrineSelfReffalse|,
%      \item |\setlength{\DefaultFindent}{0pt}|,
%      \item |\setlength{\DefaultNindent}{0.5em}|,
%      \item |\setlength{\DefaultSlope}{0pt}|.
%      \item |\setlength{\DiscardVskip}{0.2pt}|.
%    \end{itemize}
%
%    Instead of giving optional parameters to the |\lettrine| command,
%    it is possible, from version 1.5, to set them on a per character
%    basis in a second config file (suggested by Pascal Kockaert):
%    |\renewcommand{\DefaultOptionsFile}{|\textit{filename}|}|
%    in the preamble (or anywhere in the document) will
%    force each call to |\lettrine| to read the file \textit{filename}.
%    See examples of such config files in the subdirectory
%    \file{contrib}.
%
%    The dimensional parameters \lopt{findent}, \lopt{nindent} and
%    \lopt{slope}, can be set in \textit{filename} relative to
%    |\LettrineWidth| if needed.  The settings read from this file
%    will be overridden by the optional arguments eventually given to
%    |\lettrine|.
%
%    |\LettrineTextFont| sets the font used for the second argument
%    of |\lettrine|, its default definition is
%    |\newcommand{\LettrineTextFont}{\scshape}| (second argument in
%    small caps, this can be changed using |\renewcommand|).
%
%    |\LettrineFont| sets the font used for the dropped capital,
%    usually the current font in a (large) size, computed
%    automatically from the number of lines it will fill:
%    the font size is computed so that, a \emph{standard} dropped
%    capital (say Z, not À) when sitting on its baseline, gets
%    its top aligned with the top of the following text (provided
%    $|loversize|=0$ and $|lines|\ge 2$).  When \lopt{lines=1},
%    size is computed as if \lopt{lines} was~2.\\
%    A hook |\LettrineFontHook| is provided to change the font
%    used for the dropped capital, syntax follows \LaTeX{}’s
%    low-level font interface (see \LaTeX{} Companion, p.187--192),
%    the |\selectfont| command is issued by |\LettrineFont|:\\
%    |\renewcommand{\LettrineFontHook}{\fontfamily{ppl}|\ignorespaces
%    |\fontseries{bx}}%|\\
%    |                                 \fontshape{sl}}|,\\
%    selects Palatino bold expanded slanted for the dropped capital.\\
%    |\LettrineFontHook| can also be used to change the colour of
%    all initials in a (part of) document:
%    |\renewcommand{\LettrineFontHook}{\color[gray]{0.5}}| \\
%    will colour the initials following this command in grey.
%
% \changes{v1.3}{2002/08/23}{Correct the documentation to
%    mention the cm-super fonts and the type1ec package by
%    Vladimir Volovich.}
%
%    \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,
%    it is mandatory to add |\usepackage{type1cm}| in the preamble
%    of your document.
%    The EC fonts are also available in type1 format for free
%    (thanks to Vladimir Volovich, they are called cm-super), and
%    adding |\usepackage{type1ec}|\footnote{This package, available on
%    CTAN, was first released on 2002/07/30.}
%    in the preamble will make them fully scalable too.
%    So, if you want \file{lettrine.sty} to work properly with CM
%    or EC fonts, you will need \emph{PostScript versions} of these
%    fonts \emph{and} one of the packages |type1cm.sty| or
%    |type1ec.sty|.
%
%    The LM fonts are a good replacement for both CM and EC fonts they
%    are fully scalable, so you should use them instead of CM or EC
%    fonts.  |\usepackage{lmodern}| is the command to switch them on
%    (add |\usepackage[T1]{fontenc}| when composing in one of the
%    western languages other than English in order to get proper
%    hyphenation).
%
%    You can also consider using one of the standard PostScript fonts
%    (Palatino, Times, Utopia\dots), or any OpenType font, they are
%    fully scalable too!
%
%    \vspace{\baselineskip}
%    \textbf{Known issues:}
%    \begin{itemize}
%    \item Nothing is done to prevent page-breaking in a paragraph
%      starting with a dropped capital; when it happens to hang
%      into the footer, page-breaking has to be done manually.
%    \item |\lettrine| works within `quote’ `quotation’, `abstract’
%      environments but does not work within `center’ environments
%      except with option \texttt{[lines=1]}.
%    \item |\lettrine| does not work within lists.
%    \item If a \emph{list} has to be included in a paragraph starting
%      with |\lettrine|, it is necessary to add the command
%      |\parshape=0| just after the end of the list (starting a new
%      paragraph  just before or just after the list works too).
%      Remember that `quote’, `quotation’, `abstract’ environments
%      are implemented as \emph{lists} in \LaTeX{}.
%    \item If you are facing some slight height inaccuracy for a
%      dropped capital, you can try option \lopt{refstring};
%      this option is meant for fancy (unaccented) initials.
%      Informations about targeted and effective initial’s
%      height are available in the \file{.log} file.  Using LuaTeX
%      or XeTeX engines with OpenType fonts may be an option
%      (some TFM files for Type1 fonts are slightly inaccurate).
%    \item |\LettrineTestString|’s value has changed over the time;
%      these changes may result in slight size differences for the
%      initial.  Starting with version~2.2, the lettrine package takes
%      advantage of the rollback facilities recently introduced by
%      the LaTeX Team\footnote{A LaTeX kernel dated 2018-04-01 or
%      newer is required.}.  Three rollback versions are provided in
%      order to produce exactly the same output as with former
%      versions: you can request
%      |\usepackage{lettrine}[=v1.6]|\footnote{Don’t forget the
%      \texttt{=} sign!} for 1999-2012 documents or
%      |\usepackage{lettrine}[=v1.9]| (documents from 2012 to
%      July 2018) or |\usepackage{lettrine}[=v2.0]| (August 2018).
%      Using any date in ISO format works too:
%      |\usepackage{lettrine}[=2014-03-15]| will load v1.9.
%    \end{itemize}
%
% \StopEventually{}
%
%    \section{\TeX{}nical details}
%
% \iffalse
%<*sty>
% \fi
%
% \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{}{2019-03-30}
\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 \LaTeXe{} and requires files
%    \file{keyval.sty} and \file{minifp.sty}.
%
%    \begin{macrocode}
\RequirePackage{keyval,minifp}
%    \end{macrocode}
%
%    Default initializations: define the necessary counters, lengths,
%    and commands to hold the default settings and set these default
%    settings.  They can be overwritten in file |lettrine.cfg|.
%
% \changes{v1.2}{2002/03/13}{\cs{newlength} changed to
%    \cs{newdimen}, to correct a bug with seminar.cls (pointed out
%    by Peter Münster).}
%
% \changes{v1.6}{2004/05/22}{Added newif \cs{ifLettrineImage}.}
%
% \changes{v1.8}{2015/02/06}{Added newif \cs{ifLettrineOnGrid}
%    and new dimen \cs{DiscardVskip}, default (0.2pt) set for
%    compatibility with previous releases.}
%
% \changes{v2.1}{2018/08/14}{Newif \cs{ifLettrineVone} and
%    new option `Vone’ (removed in v2.2, rollback prefered).}
%
% \changes{v2.1}{2018/08/14}{New option `refstring’ and newif
%    \cs{ifLettrineSelfRef}.}
%
%    \begin{macrocode}
\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
\newif\ifLettrineSelfRef
%    \end{macrocode}
%
%    Then let’s define the necessary internal counters, lengths,
%    and commands.
%
% \changes{v1.6}{2004/05/22}{Added newif \cs{ifL@image}.}
%
% \changes{v1.6}{2015/02/06}{Added newif \cs{ifL@grid}.}
%
%    \begin{macrocode}
\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
%    \end{macrocode}
%
%    Provide commands for the fonts used to typeset the two
%    mandatory arguments of |\lettrine|.
%
% \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.
%    \begin{macrocode}
\newcommand*{\LettrineTextFont}{\scshape}
\newcommand*{\LettrineSecondString}{x}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\LettrineFontHook}
%    |\LettrineFontHook| enables to select another font for the
%    dropped capital.  Its default definition is empty (the current
%    text font is used).
%    \begin{macrocode}
\newcommand*{\LettrineFontHook}{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\computeL@height}
%    The default size for the dropped capital is computed so that the
%    top of it is exactly aligned with the top of the following text;
%    an extra height (positive or negative) may be added globally by
%    redefining |\Defaultloversize| or locally using optional
%    argument \lopt{loversize=}.
%    If \lopt{lines=1}, the default size for the dropped capital is
%    computed as if \lopt{lines=2}.
%    \begin{figure}[ht]
%      \centering
%      \begin{tikzpicture}[>=stealth]
%      \node[font=\fontfamily{lmr}\fontsize{160}{160}\mdseries]
%            at (3,2) {F} ;
%      \node[right, font=\fontfamily{lmr}\fontsize{20}{20}\bfseries]
%           at (4.6,3.65) {IRST};
%      \node[right, font=\fontfamily{lmr}\fontsize{28}{28}\bfseries]
%           at (5,2.63) {bla bla};
%      \node[right, font=\fontfamily{lmr}\fontsize{28}{28}\bfseries]
%            at (5,1.53) {bla bla};
%      \node[right, font=\fontfamily{lmr}\fontsize{28}{28}\bfseries]
%           at (5,0.43) {bla bla};
%      \draw[dotted] (0,3.9) -- (9,3.9);
%      \draw         (1,3.4) -- (9,3.4);
%      \draw[dashed] (1.5,2.3) -- (9,2.3);
%      \draw[dashed] (1.5,1.2) -- (9,1.2);
%      \draw[dashed] (0,0.1) -- (9,0.1);
%      \draw[<->] (0,0.1) -- (0,3.9);
%      \node[left] at (0,2.1) {tht};
%      \draw[<->] (1.3,0.1) -- (1.3,3.4);
%      \node[left] at (1.3,1.8) {dp};
%      \draw[<->] (1,3.4) -- (1,3.9);
%      \node[left] at (1,3.7) {ht};
%      \end{tikzpicture}
%      \caption{Initial’s targeted dimensions ($\mbox{\cs{lines}}=4$)}
%      \label{fig:target}
%    \end{figure}
%
%    |\computeL@height| first computes the targeted height for the
%    dropped capital and stores it into |\L@target@tht|.  This height
%    only depends on |L@lines| and on the height of |\L@tbox| (see
%    fig.~\ref{fig:target}).  So options \emph{must} be read and
%    |\L@tbox| must be  properly initialised \emph{before} executing
%    |\computeL@height| (see below in |\@lettrine| code).
%
%    |\L@height| is set to |\L@target@tht| raised by the |\L@oversize|
%    factor.
%
% \changes{v1.2}{2002/03/13}{\cs{baselineskip} may be a
%    rubber length, we convert it to a dimen.}
%
% \changes{v1.9}{2015/08/31}{\cs{theL@lines} changed
%    to \cs{value\{L@lines\}}.  Needed for babel-hebrew which
%    redefines \cs{@arabic}.}
%
% \changes{v2.0}{2018/07/21}{Store targeted dimensions of the
%    dropped capital (ht, dp, tht) for further use.}
%
% \changes{v2.1}{2018/08/01}{Height computations moved out of
%    \cs{LettrineFont}: \cs{global} settings no longer required.}
%
%    \begin{macrocode}
\def\computeL@height{%
  \setlength{\L@target@ht}{\ht\L@tbox}%
%    \end{macrocode}
%    As |\baselineskip| might be a rubber length, let’s convert it
%    into a `dimen’ using |\@tempdima|.
%    \begin{macrocode}
  \@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}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\LettrineTestString}
%    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
%    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}.
%
% \changes{v2.1}{2018/08/14}{Computation of \cs{L@factor} for
%    \cs{fontsize} done by the minifp package.}
%
% \changes{v2.22}{2018/09/14}{Warn if \cs{fontsize} computation fails
%    due to division by 0.}
%
%    When optional argument \lopt{selfref} is \lopt{true} 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
    \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
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\LettrineFont}
%    |\fontsize|’s argument providing the requested |\L@height| is
%    |\L@factor\L@height|.
%    \begin{macrocode}
\newcommand*{\LettrineFont}{%
   \LettrineFontHook
   \fontsize{\L@factor\L@height}{\L@factor\L@height}%
   \selectfont
}
%    \end{macrocode}
% \end{macro}
%
% \changes{v0.9}{1998/03/13}{\cs{LettrineFontEPS} added.}
%
% \changes{v2.21}{2018/08/28}{\cs{LettrineFontEPS} renamed as
%    \cs{LettrineImage}.}
%
% \begin{macro}{\LettrineImage}
%    The following definition is for use with dropped capitals defined
%    as images: EPS, PDF, JPG, PNG files (see examples in demo.tex).
%    Its use requires the |graphicx| package to be loaded in the
%    preamble with |\usepackage{graphicx}|.  The required size is
%    computed just as in the standard case, |\includegraphics|
%    prints the image at this size.
%
% \changes{v1.6}{2004/05/22}{Added \cs{LettrineFontHook}
%    to \cs{LettrineFontEPS}.  This is needed for color options.}
%
%    \begin{macrocode}
\newcommand*{\LettrineImage}{%
   \LettrineFontHook\includegraphics[height=\L@height]%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\setupL@lbox}
%    The next (internal) command computes the requested size for the
%    initial (letter or image) and prepares a box |\L@lbox| holding it.
%    \begin{macrocode}
\def\setupL@lbox{%
  \computeL@height
  \ifL@image
    \sbox{\L@lbox}{\LettrineImage{\l@initial}}%
  \else
    \compute@fontsize
    \sbox{\L@lbox}{\LettrineFont \l@initial}%
  \fi
}
%    \end{macrocode}
% \end{macro}
%
%    Set up keyval initializations.
%
%    \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.}
%
% \begin{macro}{\LettrineOptionsFor}
%    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’.
%
%    \begin{macrocode}
\newcommand*{\LettrineOptionsFor}[2]{\@namedef{l@#1-keys}{#2}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\lettrine}
%    Now let’s define |\lettrine|.
%
%    \begin{macrocode}
\def\lettrine{\@ifnextchar[\@lettrine{\@lettrine[]}}
\def\@lettrine[#1]#2#3{%
  \def\l@initial{#2}\let\l@refstring\l@initial
%    \end{macrocode}
%
% \changes{v1.9}{2015/08/31}{\cs{theDefaultLines} changed to
%    \cs{value\{DefaultLines\}}, same with \cs{theDefaultDepth}.
%    Needed for babel-hebrew which redefines \cs{@arabic}.
%    Thanks to Ulrike Fischer for providing the fix.}
%
%    First reset the parameters to their default values:
%    \begin{macrocode}
  \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
  \ifLettrineSelfRef\L@selfreftrue\else\L@selfreffalse\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.}.
%
% \changes{v1.9}{2015/08/31}{Use the second mandatory
%    argument of \cs{lettrine} or \cs{LettrineSecondString} (which
%    defaults to `x’) to compute \cs{L@height}.  This is controlled by
%    the `realheight’ flag.}
%
%    \begin{macrocode}
  \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
%    \end{macrocode}
% \changes{v1.5}{2003/08/18}{Added reading of an optional
%    config file \cs{DefaultOptionsFile}.}
%    Then try to read an optional file (its name is given by
%    |\DefaultOptionsFile|), do this inside a group, and define a
%    global  command |\l@LOKeys| which will expand to the list of
%    options given by |\LettrineOptionsFor| for the current initial
%    (defined by |#2|)\dots
%    \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,
%    \end{macrocode}
%    As local options prevail on those held in the config file, we
%    have to read local options again:
%    \begin{macrocode}
    \setkeys{L}{#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}
  \setlength{\LettrineWidth}{\wd\L@lbox}%
  \setlength{\LettrineHeight}{\ht\L@lbox}%
  \setlength{\LettrineDepth}{\dp\L@lbox}%
%    \end{macrocode}
%
% \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@oversize pt\relax
  \PackageInfo{lettrine.sty}%
    {Targeted height = \the\L@target@tht\MessageBreak
     (no accent, loversize=0),\MessageBreak
     Lettrine height = \the\LettrineHeight\space (#2)%
     \ifdim\@tempdima=\z@\else\space loversize=\L@oversize\fi;%
     \MessageBreak reported}%
  \endgroup
%    \end{macrocode}
%    and reset |\L@tbox|’s content (mandatory in case
%    \lopt{realheight=false}):
%
% \changes{v1.6}{2004/05/22}{Add braces around \#3 to allow
%    commands taking an argument (such as \cs{MakeLowercase}) in
%    \cs{LettrineTextFont}.  Suggested by Philipp Lehman.}
%
%    \begin{macrocode}
  \sbox{\L@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@first| to compute the amount of space to be skipped.
%
% \changes{v0.9}{1998/02/23}{Calculations of length
%    \cs{L@first} changed.  Do not `vskip’ small lengths ($<$0.2pt),
%    they are just rounding errors.}
%
% \changes{v1.8}{2015/02/06}{The 0.2pt limit for discarded
%    vskips is now customisable through \cs{DiscardVskip} and option
%    `novskip’.}
%
% \changes{v1.2}{2002/03/13}{\cs{baselineskip} may be a
%    rubber length, we convert it to a dimen.}
%
%    The basis for |\L@raise| (and |\L@oversize|, see
%    |\LettrineFont|) is |\L@target@tht|.
%
%    \begin{macrocode}
  \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
%    \end{macrocode}
%    |\L@first| now holds the height of the needed |\vskip|; if too
%    small it will be discarded.
%    \begin{macrocode}
  \ifdim\L@first>\L@novskip
%    \end{macrocode}
%    When the \lopt{grid} option is \lopt{true}, let’s round up
%    |\L@first| to the next integer number of |\baselineskip|.
%    \begin{macrocode}
    \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
%    \end{macrocode}
%    Again, we (mis)use the length |\L@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}
  \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}%
%    \end{macrocode}
%    Now let’s compute |\L@Nindent| and |\L@next| for the next lines.
%    \begin{macrocode}
  \addtolength{\L@Nindent}{\L@Pindent}%
  \setlength{\L@next}{\linewidth}%
  \addtolength{\L@next}{-\L@Nindent}%
%    \end{macrocode}
%
% \changes{v1.1}{1999/08/18}{Add \cs{rightmargin} to
%    \cs{L@Pindent} for \cs{Lettrine} to work properly in quote,
%    quotation, abstract environments\dots{} but do not change
%    \cs{linewidth} which is set by these environments.}
%
% \changes{v1.4}{2002/10/26}{\cs{lettrine} still didn’t
%    work properly in quote, quotation, abstract environments,
%    pointed out by Matthias C.\ Schmidt.  \cs{rightmargin} was added
%    too early to \cs{L@Nindent}, thus making \cs{\L@next} too short
%    by \cs{rightmargin}.}
%
% \changes{v2.22}{2019/04/04}{\cs{@totalleftmargin} is the correct
%    indentation for quote, quotation and abstract environments.}
%
%    This is for quotation, quote, abstract\dots{} environments:
%    |\linewidth| is set by these environments, all we have to do
%    is to shift our text left by |\@totalleftmargin|.
%    \begin{macrocode}
  \addtolength{\L@Pindent}{\@totalleftmargin}%
  \addtolength{\L@Nindent}{\@totalleftmargin}%
%    \end{macrocode}
%    Now, set up the shape of the new paragraph (designed by
%    |\parshape|).
%
% \changes{v1.9}{2015/08/31}{\cs{theL@depth} changed to
%    \cs{value\{L@depth\}}.}
%
%    \begin{macrocode}
  \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
%    \end{macrocode}
% \changes{v1.64}{2013/03/14}{Remove \$ around \cs{smash}
%    and add \cs{relax}.  Bug pointed out by David Monniaux.
%    Correction by Enrico Gregorio.}
%    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}%
%    \end{macrocode}
%
%\changes{v2.22}{2019/03/30}{\cs{parshape} reset added in lists.}
%
%    A |\parshape| reset is required in abstract, quote and quotation
%    environments beginning with |\lettrine| and spreading over several
%    paragraphs.  When the list ends, |\parshape| returns to~|0|.
%    \begin{macrocode}
  \ifnum\@listdepth>0 \Lreset@listparshape \fi
}
%    \end{macrocode}
% \end{macro}
%    This ends the definition of |\lettrine|; |\Lreset@listparshape|
%    adds the parshape reset to the first occurence of |\everypar|
%    following the |\lettrine| command.
%    \begin{macrocode}
\newtoks\Llist@everypar
\def\Lreset@listparshape{%
  \let\Lnew@everypar\everypar
  \Llist@everypar=\expandafter{\the\everypar}%
  \Lnew@everypar={\the\Llist@everypar
                  \parshape=\@ne \@totalleftmargin \linewidth \relax
                  \let\everypar\Llist@everypar
                 }%
}
%    \end{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}
% \iffalse
%</sty>
% \fi
% \clearpage
%  \section{Configuration file}
%
% \iffalse
%<*cfg>
% \fi
%    \begin{macrocode}
%% lettrine.cfg: configuration file for lettrine.sty
%%
%% If you want to customize lettrine, please *do not* hack into the
%% code, copy this file to your working directory and customize the
%% copy as you like.
%%
%% Uncomment any of these lines and change the parameters’ values
%% to fit your needs (see lettrine.dtx).
%%
%%\setcounter{DefaultLines}{2}
%%\setcounter{DefaultDepth}{0}
%%
%% These are *decimal* numbers:
%%\renewcommand*{\DefaultLoversize}{0}
%%\renewcommand*{\DefaultLraise}{0}
%%\renewcommand*{\DefaultLhang}{0}
%%
%% These are *lengths* (don't forget the unit):
%%\setlength{\DefaultFindent}{0pt}
%%\setlength{\DefaultNindent}{0.5em}
%%\setlength{\DefaultSlope}{0mm}
%%\setlength{\DiscardVskip}{0.2pt}
%%
%% Theses are *flags* (value=true/false):
%%\LettrineImagefalse
%%\LettrineOnGridfalse
%%\LettrineRealHeightfalse
%%\LettrineSelfReffalse
%%
%% Theses are *commands* (value=string, only height matters):
%%\renewcommand*{\LettrineTestString}{EFTZ}
%%\renewcommand*{\LettrineSecondString}{x}
%%
%% In case you want to set parameters for some letters
%% in file `optfile.cfl'
%% \renewcommand{\DefaultOptionsFile}{optfile.cfl}
%    \end{macrocode}
% \iffalse
%</cfg>
% \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: 72
%%% coding: utf-8
%%% End:
