diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/lettrine |
Initial commit
Diffstat (limited to 'macros/latex/contrib/lettrine')
-rw-r--r-- | macros/latex/contrib/lettrine/README | 34 | ||||
-rw-r--r-- | macros/latex/contrib/lettrine/contrib.dtx | 376 | ||||
-rw-r--r-- | macros/latex/contrib/lettrine/contrib.ins | 59 | ||||
-rw-r--r-- | macros/latex/contrib/lettrine/doc/demo-de.pdf | bin | 0 -> 136266 bytes | |||
-rw-r--r-- | macros/latex/contrib/lettrine/doc/demo-de.tex | 239 | ||||
-rw-r--r-- | macros/latex/contrib/lettrine/doc/demo.pdf | bin | 0 -> 144777 bytes | |||
-rw-r--r-- | macros/latex/contrib/lettrine/doc/demo.tex | 306 | ||||
-rw-r--r-- | macros/latex/contrib/lettrine/doc/lettrine.pdf | bin | 0 -> 123998 bytes | |||
-rw-r--r-- | macros/latex/contrib/lettrine/lettrine-2006-03-17.sty | 202 | ||||
-rw-r--r-- | macros/latex/contrib/lettrine/lettrine-2015-08-31.sty | 251 | ||||
-rw-r--r-- | macros/latex/contrib/lettrine/lettrine-2018-08-18.sty | 282 | ||||
-rw-r--r-- | macros/latex/contrib/lettrine/lettrine.dtx | 1169 | ||||
-rw-r--r-- | macros/latex/contrib/lettrine/lettrine.ins | 84 |
13 files changed, 3002 insertions, 0 deletions
diff --git a/macros/latex/contrib/lettrine/README b/macros/latex/contrib/lettrine/README new file mode 100644 index 0000000000..c5e5f062bd --- /dev/null +++ b/macros/latex/contrib/lettrine/README @@ -0,0 +1,34 @@ + Lettrine bundle + +This bundle contains a package that I maintain to typeset dropped +capitals in a LaTeX document. + +It is subject to the LaTeX Project Public License. +See http://www.latex-project.org/lppl.txt +for the details of that license. + +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 + lettrine.sty and lettrine.cfg +3. run luatex on contrib.dtx to produce the *.cfl files. +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 *.dtx, *.ins go to a source directory, typically +$TEXMF/source/latex/lettrine + +If you wish, you can customize lettrine.cfg according to your needs. + +Have a look at one of the PDF files, demo.pdf (in French), or +demo-de.pdf (in German) 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 or demo-de.tex. +Have a look at lettrine.pdf in the doc directory, if you are interested +in the complete documentation and code. + +-- +Daniel Flipo, <daniel.flipo@free.fr> +August, 25th, 2018. diff --git a/macros/latex/contrib/lettrine/contrib.dtx b/macros/latex/contrib/lettrine/contrib.dtx new file mode 100644 index 0000000000..15fa621740 --- /dev/null +++ b/macros/latex/contrib/lettrine/contrib.dtx @@ -0,0 +1,376 @@ +% \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 \`A +\LettrineOptionsFor{\`A}{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 new file mode 100644 index 0000000000..2070b331cf --- /dev/null +++ b/macros/latex/contrib/lettrine/contrib.ins @@ -0,0 +1,59 @@ +%% +%% Copyright (C) 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 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/doc/demo-de.pdf b/macros/latex/contrib/lettrine/doc/demo-de.pdf Binary files differnew file mode 100644 index 0000000000..069a6e8640 --- /dev/null +++ b/macros/latex/contrib/lettrine/doc/demo-de.pdf diff --git a/macros/latex/contrib/lettrine/doc/demo-de.tex b/macros/latex/contrib/lettrine/doc/demo-de.tex new file mode 100644 index 0000000000..a5fabafa06 --- /dev/null +++ b/macros/latex/contrib/lettrine/doc/demo-de.tex @@ -0,0 +1,239 @@ +%Format: pdfLaTeX + +\documentclass[12pt,a4paper]{article} + +\usepackage[a4paper,text={150mm,240mm},centering]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{palatino} % Palatino und +\renewcommand{\ttdefault}{lmtt} % Latin Modern Typewriter fonts +\usepackage{microtype} + +\usepackage{lettrine} +\usepackage{graphicx,color} +\usepackage{lettrine} + +\usepackage{german} + +\newcommand{\MF}{{\small\sffamily\scshape metafont}} +\newcommand{\MP}{{\small\sffamily\scshape metapost}} +\setlength{\parindent}{0pt} +\sloppy +\begin{document} +\thispagestyle{empty} + +\begin{center} +\large\bfseries Einige Beispiele zur Anwendung des lettrine-Pakets +\end{center} + +\vspace{\baselineskip} +\textit{Einfachste Verwendung (2 Zeilen) :}\\ +\verb+\lettrine{E}{in} erstes Beispiel...+ + +\lettrine{E}{in} erstes Beispiel zeigt das Standardverhalten von lettrine. +Es wird eine Initiale über zwei Zeilen produziert, gefolgt vom Text zwischen +den geschweiften Klammern, der als Kapitälchen gesetzt wird. Der weitere +Text umfliesst die Initiale. + +\vspace{\baselineskip} +\textit{Lettrine auf einer Zeile (option {\ttfamily\upshape lines=1}) :}\\ +\verb+\lettrine[lines=1]{E}{in} zweites Beispiel...+ + +\lettrine[lines=1]{E}{in} zweites Beispiel zeigt, wie eine Initiale auf +einer einzelnen Zeile aussieht. Auch hier ist der geklammerte Text in +Kapitälchen gesetzt. + +\vspace{\baselineskip} +\textit{Initiale über drei Zeilen (option {\ttfamily\upshape lines=3}) :}\\ +\verb+\lettrine[lines=3]{E}{in} drittes Beispiel...+ + +\lettrine[lines=3]{E}{in} drittes Beispiel in dem die Initiale über drei +Zeilen gesetzt wird. Beachten Sie die Einrückung der zweiten und dritten +Zeile. Diese kann mit dem Parameter \verb+nindent= + beeinflusst werden. Die +Einrückung der ersten Zeile wird hingegen mit dem Parameter \verb+findent= + +beeinflusst. + +\vspace{\baselineskip} +\textit{Initiale vollständig im Randbereich} :\\ +\verb+\lettrine[lhang=1, nindent=0pt, lines=3]{V}{erschieben}+ + +\lettrine[lhang=1, nindent=0pt, lines=3]{V}{erschieben} wir nun im vierten +Beispiel die Initiale in den Randbereich. Dieses Verhalten wird durch den +Parameter \verb+lhang= + gesteuert. + +\vspace{\baselineskip} +\textit{Initiale, vergrössert und teilweise im Randbereich} :\\ +\verb+\lettrine[lines=3, lhang=0.33, loversize=0.25]{A}{uch}+ + +\lettrine[lines=3, lhang=0.33, loversize=0.25]{A}{uch} +die Vergrösserung der Initiale ist möglich. Die Vergrösserung läuft +über die Variable \verb+loversize= + . Sie müssen das Ergebnis nicht +unbedingt schön finden. Es sieht nach meiner Meinung besser aus, wie das +vollständige Verschieben in den Randbereich. + +\vspace{\baselineskip} +\textit{Setzen wir nun eine %französisches + Anführungszeichen davor} :\\ +\verb+\lettrine[ante=\frqq]{M}{it} dem Parameter ...+ + +\lettrine[ante=\frqq]{M}{it} dem Parameter \verb+ante= + kann auch ein +beliebiger Text vor die Initiale gesetzt werden. In der Praxis dürften +wohl nur Anführungszeichen dafür in Frage kommen. + +\vspace{\baselineskip} +\verb+\def\lglqq{\raisebox{-\baselineskip}{\glqq}}+\\ +\verb+\lettrine[ante=\lglqq]{M}{it} dem Parameter ...+ +\def\lglqq{\raisebox{-\baselineskip}{\glqq}} + +\lettrine[ante=\lglqq]{M}{it} dem Parameter \verb+ante= + kann auch ein +beliebiger Text vor die Initiale gesetzt werden. In der Praxis dürften +wohl nur Anführungszeichen dafür in Frage kommen. + +\newpage +\textit{Wir verkleinern die Initiale nun um 10\% und heben sie +um 10\% wegen des {\glqq}Q{\grqq}} +\verb+\lettrine[lines=4, loversize=-.1, lraise=.1]{Q}{ualität}+ + +\lettrine[lines=4, loversize=-.1, lraise=.1]{Q}{ualität} hat ihren +Preis. Und wenn es nur die Zeit ist, um zu lernen wie Sie solche Spielereien +anstellen können. Bei den Ergebnissen lohnt sich aber die Mühe. Welche +Parameter diesmal was beeinflussen, lasse ich Sie nun selbst herausfinden. +Wie Sie sehen, ragt der Unterstrich des {\glqq}Q{\grqq} nicht in den Text +hinein. + +\vspace{.5\baselineskip} +\textit{Andere Möglichkeit: Nochmal das {\glqq}Q{\grqq} in normaler + Größe aber mit einer Zeile mehr darunter} +\verb+\lettrine[lines=4,depth=1]{Q}{ualität}+ + +\lettrine[lines=4,depth=1]{Q}{ualität} hat ihren Preis. Und wenn es nur die +Zeit ist, um zu lernen wie Sie solche Spielereien anstellen können. Bei den +Ergebnissen lohnt sich aber die Mühe. Welche Parameter diesmal was +beeinflussen, lasse ich Sie nun selbst herausfinden. Wie Sie sehen, ragt der +Unterstrich des {\glqq}Q{\grqq} auch nicht in den Text hinein: eine Zeile mehr +wurde darunter mit \verb+depth=1+ frei gemacht. + +\vspace{.5\baselineskip} +\textit{Verwendung der Option {\ttfamily\upshape slope}}, damit der Text +der Neigung des {\glqq}A{\grqq} folgt:\\ +\verb+\lettrine[lines=4, slope=0.6em, findent=-1em,+\\ +\verb+ nindent=0.6em]{\A}{uch}...+ + +\lettrine[lines=4, slope=0.6em, findent=-1em, nindent=0.6em]{A}{uch} eine +Neigung kann angegeben werden. Damit werden die Löcher neben geneigten +Buchstaben nicht so gross. Selbst eine negative Neigung ist möglich, damit +bietet auch das {\glqq}V{\grqq} keine Schwierigkeiten mehr. Wie das beim +{\glqq}V{\grqq} aussieht, sehen wir uns beim nächsten Beispiel an. + +\vspace{.5\baselineskip} +\textit{Verwendung der Option {\ttfamily\upshape slope}, damit der Text +der Neigung des {\ttfamily\upshape V} folgt; Das {\ttfamily\upshape V} ragt +zusätzlich halb in den Rand hinein +(Option {\ttfamily\upshape lhang=0.5} :})\\ +\verb+\lettrine[lines=4, slope=-0.5em, lhang=0.5, nindent=0pt]+\\ +\verb+ {V}{iel} ist...+ + +\lettrine[lines=4, slope=-0.5em, lhang=0.5, nindent=0pt]{V}{iel} ist hier +nicht anders. Nur die negative Neigung und das Hereinragen in den Rand. Ob +Ihnen das Ergebnis gefällt müssen Sie selber entscheiden. Sie sehen aber, +das das {\glqq}V{\grqq} wirklich keine Schwierigkeiten bietet. Der Unterschied +zum vorhergehenden Beispiel ist nicht besonders gross. + +\vspace{.5\baselineskip} +\textit{Ändern wir nun die Schriftfamilie für die Initiale +(hier AvantGarde bold italique):}\\ +\verb+\renewcommand{\LettrineFontHook}{\fontfamily{pag}%+\\ +\verb+ \fontseries{bx}\fontshape{it}}+\\ +\verb+\lettrine[findent=.3em]{A}{uch} ein Wechsel...+ + +{% (Ändern des lokalen fonts) +\renewcommand{\LettrineFontHook}{\fontfamily{pag}\fontseries{bx}\fontshape{it}} + +\lettrine[findent=.3em]{A}{uch} ein Wechsel der Schriftfamilie ist problemlos +möglich. Hier verwenden wir Avantgarde und setzen mit der Option +\verb+findent= + den horizontalen Abstand des eingerückten Texts. +\par} + +\vspace{.5\baselineskip} +\textit{Ändern wir nun die Schriftfamilie und die Farbe für die Initiale +(hier yfrak in Grau) :}\\ +\verb+\renewcommand{\LettrineFontHook}{\fontfamily{yfrak}\color[gray]{0.5}}+\\ +\verb+\lettrine[loversize=0.1]{A}{uch}...+ + +{% (Aendern des lokalen fonts) +\renewcommand{\LettrineFontHook}{\fontfamily{yfrak}\color[gray]{0.5}} + +\lettrine[loversize=0.1]{A}{uch} ein Wechsel der +Schriftfamilie ist problemlos möglich. Hier verwenden wir yfrak, +etwas vergrössert mit der Option \verb+loversize= +, und wir schreiben +die Initiale in Grau mit \verb+\color[gray]{0.5}+. +\par} + +\newpage +\begin{center} +\large\bfseries Verwendung eines PostScript-Bildes als Initiale +\end{center} + +\vspace{\baselineskip} Wenn die erwünschte Initiale nicht als Zeichen eines +Fonts, sondern als Bild im Postscript-Format vorliegt, kann ebenfalls +\verb+\lettrine+ verwendet werden. Es genügt, +die Boolsche Variable \texttt{image=true} zu benützen; z.B. so: + +\vspace{.5\baselineskip} +{% Gruppierung, um die LOKALEN Definitionen zu schützen +\fontfamily{yfrak}\selectfont\Large +\renewcommand{\LettrineTextFont}{\relax} +\lettrine[image=true, lines=3, lhang=.2, loversize=.25, % + lraise=-.05, findent=0.1em, nindent=0em] +{W}{er} reitet so spät durch Nacht und Wind?\\ +Es ist der Vater mit seinem Kind;\\ +Er hat den Knaben wohl in dem Arm,\\ +Er faßt ihn sicher, er hält ihn warm. +\par} + +\vspace{\baselineskip} Und hier der zum Beispiel gehörende \LaTeX{}--Code: +Das erste Argument von \verb+\lettrine+ war \verb+W+. Die Option \texttt{image=true} +lädt dann die Datei \verb+W.eps+. Das Suffix \verb+.eps+ kann -- dank des +Pakets \verb+graphicx.sty+ -- weggelassen werden. + +\begin{verbatim} +{\fontfamily{yfrak}\selectfont\Large +\renewcommand{\LettrineTextFont}{\relax} +\lettrine[image=true, lines=3, lhang=.2, loversize=.25, % + lraise=-.05, findent=0.1em, nindent=0em] +{W}{er} reitet so spät durch Nacht und Wind? +Es ist der Vater mit seinem Kind; +Er hat den Knaben wohl in dem Arm, +Er faßt ihn sicher, er hält ihn warm.\par} +\end{verbatim} + +Zur Darstellung dieses Beispiels müssen folgende Pakete installiert sein: +\begin{itemize} +\item \verb+graphicx.sty+, +\item die Schriften \verb+yfrak.pfb+ im type\,1-Format + von Yannis~\textsc{Haralambous}, +\item das Paket \verb+blacklettert1+ von Thorsten~\textsc{Bronger}. +\end{itemize} + +Die gothische Initiale \glqq W\grqq{} in diesem Beispiel können Sie mit dem +Programm \MP{} aus den \MF{}-Sourcen und \verb+yinitW.mf+ erzeugen. + +Falls Sie eine PDF-Datei erzeugen wollen, müssen Sie die Datei \verb+W.eps+ +in eine PDF-Datei \verb+W.pdf+ umwandeln (mit Hilfe von \verb+epstopdf+). + +\verb+\lettrine+ unterstützt die Verwendung der Formate: +\texttt{pdf}, \texttt{png}, \texttt{jpeg} oder \MP{} als Initiale. + +\vfill +\begin{flushright} + Deutsche Version Georg \textsc{Wagner}\\ + \texttt{g.wagner@datacomm.ch}\\ + Mai 2003, ergänzt September 2014 +\end{flushright} + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/macros/latex/contrib/lettrine/doc/demo.pdf b/macros/latex/contrib/lettrine/doc/demo.pdf Binary files differnew file mode 100644 index 0000000000..c0253dc0d5 --- /dev/null +++ b/macros/latex/contrib/lettrine/doc/demo.pdf diff --git a/macros/latex/contrib/lettrine/doc/demo.tex b/macros/latex/contrib/lettrine/doc/demo.tex new file mode 100644 index 0000000000..705f9272c3 --- /dev/null +++ b/macros/latex/contrib/lettrine/doc/demo.tex @@ -0,0 +1,306 @@ +%Format: pdfLaTeX + +\documentclass[12pt,german,french]{article} + +\usepackage[a4paper,text={145mm,240mm},centering]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{palatino} % Romain (sans-serif= helvetica) +\renewcommand{\ttdefault}{lmtt} % Courier chasse trop ! +\usepackage{microtype} +\usepackage{Rothdn, Typocaps} % cfr-initials (p. 3) + +\usepackage{lettrine} +\usepackage{babel} +\frenchbsetup{AutoSpacePunctuation=false,og=«,fg=»} + +\usepackage{graphicx,color} +\usepackage{hyperref,bookmark} + +\newcommand{\MF}{{\small\sffamily\scshape metafont}} +\newcommand{\MP}{{\small\sffamily\scshape metapost}} +\setlength{\parindent}{0pt} +\sloppy +\begin{document} +\thispagestyle{empty} + +\begin{center} +\large\bfseries Quelques exemples de lettrines +\end{center} + +\vspace{\baselineskip} +\textit{Usage standard (2 lignes) :}\\ +\verb+\lettrine{E}{n} plein marais...+ + +\lettrine{E}{n} plein marais de la Souteyranne, à quelques kilomètres +au nord d'Aigues-Mortes, se trouve la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody, +l'une des « abbayes de sel» dont il ne reste que quelques vestiges. + +\vspace{\baselineskip} +\textit{Lettrine sur une seule ligne (option {\ttfamily\upshape lines=1}) :}\\ +\verb+\lettrine[lines=1]{E}{n} plein marais...+ + +\lettrine[lines=1]{E}{n} plein marais de la Souteyranne, +à quelques kilomètres au nord d'Aigues-Mortes, se trouve +la Tour Carbonnière. + +\vspace{\baselineskip} +\textit{Lettrine sur trois lignes (option {\ttfamily\upshape lines=3}) :}\\ +\verb+\lettrine[lines=3]{E}{n} plein marais...+ + +\lettrine[lines=3]{E}{n} plein marais de la Souteyranne, +à juste quelques kilomètres au nord d'Aigues-Mortes, +se trouve la Tour Carbonnière. +Elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody, +l'une des « abbayes de sel» dont il ne reste que quelques vestiges. + +\vspace{\baselineskip} +\textit{Lettrine complètement dans la marge} :\\ +\verb+\lettrine[lhang=1, nindent=0pt, lines=3]{J}{ustement},...+ + +\lettrine[lhang=1, nindent=0pt, lines=3]{J}{ustement}, +à quelques kilomètres au nord d'Aigues-Mortes, +se trouve la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody, +l'une des « abbayes de sel» dont il ne reste que quelques vestiges. +L'abbaye était ravitaillée ---~dit-on ~--- par un souterrain +qui la reliait au château de Treillan. + +\vspace{\baselineskip} +\textit{Lettrine en saillie à la fois en hauteur et dans la marge} :\\ +\verb+\lettrine[lines=3, lhang=0.33, loversize=0.25]{E}{n} ...+ + +\lettrine[lines=3, lhang=0.33, loversize=0.25]{E}{n} +plein marais de la Souteyranne, +à quelques kilomètres au nord d'Aigues-Mortes la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody, +l'une des « abbayes de sel» \dots +% dont il ne reste que des vestiges. + +\vspace{\baselineskip} +\textit{On peut ajouter un guillemet devant la lettrine} :\\ +\verb+\lettrine[ante=«]{E}{n} plein marais ...+ + +\lettrine[ante=«]{E}{n} plein marais de la Souteyranne, +à quelques kilomètres au nord d'Aigues-Mortes, se trouve +la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody, +l'une des « abbayes de sel» \dots +% dont il ne reste que des vestiges. + +\newpage +Toutes Les lettrines suivantes seront en gris jusqu'à nouvel ordre : \\ +\verb+\renewcommand{\LettrineFontHook}{\color[gray]{0.5}}+ +\renewcommand{\LettrineFontHook}{\color[gray]{0.5}} + +\vspace{.5\baselineskip} +\textit{On diminue la taille de la lettrine de 10\% et on +la remonte de 10\% à cause du « Q »} +\verb+\lettrine[lines=4, loversize=-0.1, lraise=0.1]{Q}{u'en...+ + +\lettrine[lines=4, loversize=-0.1, lraise=0.1]{Q}{u'en plein marais} + de la Souteyranne, à quelques kilomètres au nord d'Aigues-Mortes, +se trouve la Tour Carbonnière, surprend les visiteurs. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody, +l'une des « abbayes de sel» dont il ne reste que quelques vestiges. +L'abbaye était ravitaillée par un souterrain qui +la reliait au château de Treillan. + +\vspace{.5\baselineskip} +\textit{Autre solution : ajout d’une ligne grâce à} \verb+depth+\\ +\verb+\lettrine[lines=4,depth=1]{Q}{u'en plein marais} de ...+ + +\lettrine[lines=4,depth=1]{Q}{u'en plein marais} de la Souteyranne, +à quelques kilomètres au nord d'Aigues-Mortes, +se trouve la Tour Carbonnière, surprend les visiteurs. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody, +l'une des « abbayes de sel» dont il ne reste que quelques vestiges. +L'abbaye était ravitaillée par un souterrain qui +la reliait au château de Treillan. + +\vspace{.5\baselineskip} +\textit{Utilisation de l'option {\ttfamily\upshape slope}} pour que le texte +suive la pente du « À » :\\ +\verb+\lettrine[lines=4, slope=0.6em, findent=-1em,+\\ +\verb+ nindent=0.6em]{À}{quelques kilomètres}...+ + +\lettrine[lines=4, slope=0.6em, findent=-1em, nindent=0.6em]{À} {quelques +kilomètres} au nord d'Aigues-Mortes, se trouve la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody, +l'une des « abbayes de sel» dont il ne reste que quelques vestiges. +L'abbaye était ravitaillée ---~dit-on~--- par un souterrain qui +la reliait au château de Treillan. + +\vspace{.5\baselineskip} +\textit{Utilisation de l'option {\ttfamily\upshape slope} pour que le texte + suive la pente du {\ttfamily\upshape V}, noter que celui-ci est à + demi-poussé dans la marge par l'option {\ttfamily\upshape lhang=0.5} :}\\ +\verb+\lettrine[lines=4, slope=-0.5em, lhang=0.5, nindent=0pt]+\\ +\verb+ {V}{oici} à...+ + +\lettrine[lines=4, slope=-0.5em, lhang=0.5, nindent=0pt]{V}{oici} +à quelques kilomètres au nord d'Aigues-Mortes la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody, +l'une des « abbayes de sel» dont il ne reste que quelques vestiges. +L'abbaye était ravitaillée ---~dit-on~--- par un souterrain qui +la reliait au château de Treillan. + +\newpage +\newgeometry{text={138mm,240mm},centering} + +\begin{center} +\large\bfseries Deux exemples d’utilisation de cfr-initials +\end{center} + +\textit{Dans le préambule :} +\verb+\usepackage{Typocaps, Rothdn}+ + +\vspace{.5\baselineskip} +\textit{Changement de police (ici Typocaps) + et de couleur pour la lettrine :}\\ +\verb+\renewcommand{\LettrineFontHook}{\Typocapsfamily\color{red}}+\\ +\verb+\lettrine[findent=.3em]{E}{n} plein marais...+ + +{% Groupe (changement local de fonte) +\renewcommand{\LettrineFontHook}{\Typocapsfamily\color{red}} + +\lettrine[findent=.3em]{E}{n} plein marais de la Souteyranne, à quelques +kilomètres au nord d'Aigues-Mortes, se trouve la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée. +\par}% Fin du groupe. + +\vspace{.5\baselineskip} +\textit{Les quatre exemples suivants font appel à la police d’initiales Rothdn}\\ +\verb+\renewcommand{\LettrineFontHook}{\Rothdnfamily}+ + +\renewcommand{\LettrineFontHook}{\Rothdnfamily} + +\vspace{.5\baselineskip} +\textit{Le calcul de la taille de la lettrine prend comme référence les + lettres EFTZ (voir {\ttfamily\upshape\boi LettrineTestString}), + dans le cas de la police Rothdn ça donne ceci pour A : +} + +\verb+\lettrine[lines=3]{A}{u} bord du marais+ + +\lettrine[lines=3]{A}{u} bord du marais de la Souteyranne, à quelques +kilomètres au nord d'Aigues-Mortes, se trouve la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody. + +\vspace{.5\baselineskip} +\textit{L’option {\ttfamily\upshape refstring} donne une taille correcte à la + lettrine (le calcul est fait sur la base du A lui-même et non de EFTZ% + \footnote{Le F de la police Rothdn a une hauteur supérieure à celles des + autres lettres.} : +} + +\verb+\lettrine[refstring, lines=3]{A}{u} bord du marais+ + +\lettrine[refstring, lines=3]{A}{u} bord du marais de la Souteyranne, +à quelques kilomètres au nord d'Aigues-Mortes, se trouve la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody. + + +\vspace{.5\baselineskip} +\textit{Il suffit maintenant de remonter un peu la lettrine + ({\ttfamily\upshape lraise=0.15}) pour compenser sa profondeur : +} + +\verb+\lettrine[refstring, lraise=0.15, lines=3]{A}{u} bord du marais+ + +\lettrine[refstring, lraise=0.15, lines=3]{A}{u} bord du marais de la +Souteyranne, à quelques kilomètres au nord d'Aigues-Mortes, se trouve +la Tour Carbonnière. +Construite au XIII\ieme~siècle, elle contrôlait l'unique voie d'accès +terrestre de la ville fortifiée, celle qui menait à Psalmody. + +\newpage +\restoregeometry +\begin{center} +\large\bfseries Utilisation d'une image comme lettrine +\end{center} + +\vspace{\baselineskip} +Si la lettrine souhaitée n'est pas un caractère d'une fonte mais une +image, \verb+\lettrine+ peut encore être utilisée, il suffit +d'utiliser le booléen \texttt{image}, exemple : + +\begin{otherlanguage}{german} +\renewcommand{\LettrineTextFont}{\relax} +\fontfamily{yfrak}\selectfont\Large +\lettrine[image=true,lhang=.2, loversize=.25, findent=0.1em] +{W}{er} reitet so spät durch Nacht und Wind?\\ +Es ist der Vater mit seinem Kind;\\ +Er hat den Knaben wohl in dem Arm,\\ +Er faßt ihn sicher, er hält ihn warm.\par +\end{otherlanguage} + +\vspace{.5\baselineskip} +Et voici le code \LaTeX{} correspondant ; +le premier argument de \verb+\lettrine+ étant \verb+W+, +\verb+\lettrine+ fait appel au fichier \verb+W.pdf+, \verb+W.jpg+, etc. en +pdfLaTeX (omission possible du suffixe \verb+.eps+, \verb+.pdf+, propriété +de \verb+graphicx.sty+). + +\begin{verbatim} +\begin{otherlanguage}{german} + \fontfamily{yfrak}\selectfont\Large + \renewcommand{\LettrineTextFont}{\relax} + \lettrine[image=true,lhang=.2, loversize=.25, findent=0.1em] + {W}{er} reitet so spät durch Nacht und Wind?\\ + Es ist der Vater mit seinem Kind;\\ + Er hat den Knaben wohl in dem Arm,\\ + Er faßt ihn sicher, er hält ihn warm.\par +\end{otherlanguage} +\end{verbatim} + +Cet exemple fait appel aux fichiers suivants : +\begin{itemize} +\item \texttt{graphicx.sty} (extension standard \LaTeXe{}), +\item \texttt{blackletter1} de Thorsten~\textsc{Bronger} (disponible sur CTAN), +\item les fontes gothiques « Fraktur » de Yannis~\textsc{Haralambous} type\,1 + \texttt{yfrak.pfb} disponibles sur CTAN). +\end{itemize} +L'initiale gothique « W » utilisée dans +cet exemple a été créée par \MP{} (fichier \texttt{W.pdf} ci-joint) +à partir du source \MF{} \texttt{yinitW.mf} de Yannis grâce aux précieuses +indications de Denis~\textsc{Roegel} que je remercie bien vivement. + +\vspace{.5\baselineskip} +Une solution plus simple s’offre aux utilisateurs de LuaLaTeX ou XeLaTeX pour +reproduire le poème ci-dessus : il suffit d’utiliser la police OpenType Yinit +pour la lettrine et par exemple une des polices OpenType UnifrakturMaguntia +pour le texte, voir \url{http://unifraktur.sourceforge.net/maguntia.html}. + +Le codage est identique à ceci près que l’option \texttt{image=true} est +supprimée et l’appel à la police \texttt{yfrak} remplacé par :\\ +\verb+\setmainfont{UnifrakturMaguntia19}\Large+\\ +\verb+\renewcommand{\LettrineFontHook}{\setmainfont{Yinit}}+ + +\vfill +\begin{flushright} + Daniel \textsc{Flipo}\\ + \texttt{daniel.flipo@free.fr}\\ + avril 2019. +\end{flushright} + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% coding: utf-8 +%%% TeX-master: t +%%% End: diff --git a/macros/latex/contrib/lettrine/doc/lettrine.pdf b/macros/latex/contrib/lettrine/doc/lettrine.pdf Binary files differnew file mode 100644 index 0000000000..9d206d0d65 --- /dev/null +++ b/macros/latex/contrib/lettrine/doc/lettrine.pdf diff --git a/macros/latex/contrib/lettrine/lettrine-2006-03-17.sty b/macros/latex/contrib/lettrine/lettrine-2006-03-17.sty new file mode 100644 index 0000000000..aa7c9af1c6 --- /dev/null +++ b/macros/latex/contrib/lettrine/lettrine-2006-03-17.sty @@ -0,0 +1,202 @@ +%% +%% This is file `lettrine.sty' v1.6. +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file `lettrine.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}[1999/12/01] +\ProvidesFile{lettrine.sty} + [2006/03/17 v1.6 (Daniel Flipo)] +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\RequirePackage{keyval} +\newcounter{DefaultLines} +\setcounter{DefaultLines}{2} +\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@} +\newif\ifLettrineImage +\newsavebox{\L@lbox} +\newsavebox{\L@tbox} +\newcounter{L@lines} +\newdimen\L@Pindent +\newdimen\L@Findent +\newdimen\L@Nindent +\newdimen\L@lraise +\newdimen\L@first +\newdimen\L@next +\newdimen\L@slope +\newdimen\L@height +\newcommand*{\L@file}{} +\newcommand*{\L@hang}{} +\newcommand*{\L@oversize}{} +\newcommand*{\L@raise}{} +\newcommand*{\L@ante}{} +\newif\ifL@image +\newcommand*{\LettrineTextFont}{\scshape} +\def\Lettrine@height{% + \@tempdima=\baselineskip + \setlength{\L@height}{\theL@lines\@tempdima}% + \ifnum\theL@lines>1 + \addtolength{\L@height}{-\@tempdima}% + \fi + \sbox{\L@tbox}{\LettrineTextFont x}% + \addtolength{\L@height}{\ht\L@tbox}% + \addtolength{\L@height}{\L@oversize\L@height}} +\newcommand*{\LettrineFontHook}{} +\newcommand*{\LettrineTestString}{X} +\newcommand*{\LettrineFont}{% + \Lettrine@height + \sbox{\L@tbox}{\LettrineFontHook\fontsize{\L@height}{\L@height}% + \selectfont \LettrineTestString}% + \@tempcntb=\ht\L@tbox + \@tempcnta=\L@height + \multiply\@tempcnta by 100 + \divide\@tempcntb by 100 + \divide\@tempcnta by \@tempcntb + \advance\@tempcnta by -9999 + \ifnum\@tempcnta>0 + \def\@tempa{1.\the\@tempcnta}% + \else + \def\@tempa{1}% + \fi + \LettrineFontHook + \fontsize{\@tempa\L@height}{\@tempa\L@height}% + \selectfont +} +\newcommand*{\LettrineFontEPS}{% + \Lettrine@height\LettrineFontHook + \includegraphics[height=\L@height]} +\define@key{L}{lines}{\setcounter{L@lines}{#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} +\newcommand*{\LettrineOptionsFor}[2]{\@namedef{l@#1-keys}{#2}} +\newdimen\LettrineWidth +\newdimen\LettrineHeight +\newdimen\LettrineDepth +\def\lettrine{\@ifnextchar[\@lettrine{\@lettrine[]}} +\def\@lettrine[#1]#2#3{% + \setcounter{L@lines}{\theDefaultLines}% + \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}% + \ifLettrineImage\L@imagetrue\else\L@imagefalse\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, + \sbox{\L@lbox}{\LettrineFont #2}% + \setlength{\LettrineWidth}{\wd\L@lbox}% + \def\KV@prefix{KV@L@}% + \let\@tempc\relax + \expandafter\KV@do\l@LOKeys,\relax, + \fi + \setkeys{L}{#1}% + \ifL@image + \sbox{\L@lbox}{\LettrineFontEPS{#2}}% + \else + \sbox{\L@lbox}{\LettrineFont #2}% + \fi + \sbox{\L@tbox}{\LettrineTextFont{#3}}% + \@tempdima=\baselineskip + \ifnum\theL@lines=1 + \setlength{\L@first}{\ht\L@lbox}% + \addtolength{\L@first}{-\ht\L@tbox}% + \setlength{\L@lraise}{\z@}% + \else + \setlength{\L@first}{-\theL@lines\@tempdima}% + \addtolength{\L@first}{\@tempdima}% + \sbox{\@tempboxa}{\LettrineTextFont x}% + \addtolength{\L@first}{-\ht\@tempboxa}% + \setlength{\L@lraise}{-\L@raise\L@first}% + \addtolength{\L@first}{\L@lraise}% + \addtolength{\L@first}{\ht\L@lbox}% + \addtolength{\L@lraise}{-\theL@lines\@tempdima}% + \addtolength{\L@lraise}{\@tempdima}% + \fi + \par + \ifdim\L@first>0.2\p@\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}{\rightmargin}% + \addtolength{\L@Nindent}{\rightmargin}% + \setlength{\LettrineWidth}{\wd\L@lbox}% + \setlength{\LettrineHeight}{\ht\L@lbox}% + \setlength{\LettrineDepth}{\dp\L@lbox}% + \addtocounter{L@lines}{1}% + \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 \rightmargin \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}% +} +\InputIfFileExists{lettrine.cfg} + {\typeout{Loading lettrine.cfg}} + {\typeout{lettrine.cfg not found, using default values}} +\endinput +%% +%% End of file `lettrine.sty'. diff --git a/macros/latex/contrib/lettrine/lettrine-2015-08-31.sty b/macros/latex/contrib/lettrine/lettrine-2015-08-31.sty new file mode 100644 index 0000000000..99d02b8105 --- /dev/null +++ b/macros/latex/contrib/lettrine/lettrine-2015-08-31.sty @@ -0,0 +1,251 @@ +%% +%% This is file `lettrine.sty' v1.9. +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file `lettrine.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}[1999/12/01] +\ProvidesFile{lettrine.sty} + [2015/08/31 v1.9 (Daniel Flipo)] +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\RequirePackage{keyval} +\newcounter{DefaultLines} +\setcounter{DefaultLines}{2} +\newcounter{DefaultDepth} +\newcommand*{\DefaultOptionsFile}{\relax} +\newcommand*{\DefaultLoversize}{0} +\newcommand*{\DefaultLraise}{0} +\newcommand*{\DefaultLhang}{0} +\newdimen\DefaultFindent +\setlength{\DefaultFindent}{\z@} +\newdimen\DefaultNindent +\setlength{\DefaultNindent}{0.5em} +\newdimen\DefaultSlope +\setlength{\DefaultSlope}{\z@} +\newdimen\DiscardVskip +\setlength{\DiscardVskip}{0.2\p@} +\newif\ifLettrineImage +\newif\ifLettrineOnGrid +\newif\ifLettrineRealHeight +\newsavebox{\L@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 +\newcommand*{\L@file}{} +\newcommand*{\L@hang}{} +\newcommand*{\L@oversize}{} +\newcommand*{\L@raise}{} +\newcommand*{\L@ante}{} +\newif\ifL@image +\newif\ifL@grid +\newif\ifL@realh +\newcommand*{\LettrineTextFont}{\scshape} +\def\Lettrine@height{% + \@tempdima=\baselineskip + \setlength{\L@height}{\value{L@lines}\@tempdima}% + \ifnum\value{L@lines}>1 + \addtolength{\L@height}{-\@tempdima}% + \fi + \ifvoid\L@tbox + \sbox{\L@tbox}{\LettrineTextFont{\LettrineSecondString}}% + \fi + \addtolength{\L@height}{\ht\L@tbox}% + \addtolength{\L@height}{\L@oversize\L@height}% +} +\newcommand*{\LettrineFontHook}{} +\newcommand*{\LettrineTestString}{ABCDEFGHIJKLMNOQPRSTUVWXYZ} +\newcommand*{\LettrineSecondString}{x} +\newcommand*{\LettrineFont}{% + \Lettrine@height + \sbox{\@tempboxa}{\LettrineFontHook\fontsize{\L@height}{\L@height}% + \selectfont \LettrineTestString}% + \@tempcntb=\ht\@tempboxa + \@tempcnta=\L@height + \multiply\@tempcnta by 100 + \divide\@tempcntb by 100 + \divide\@tempcnta by \@tempcntb + \advance\@tempcnta by -9999 + \ifnum\@tempcnta>0 + \def\@tempa{1.\the\@tempcnta}% + \else + \def\@tempa{1}% + \fi + \LettrineFontHook + \fontsize{\@tempa\L@height}{\@tempa\L@height}% + \selectfont +} +\newcommand*{\LettrineFontEPS}{% + \Lettrine@height\LettrineFontHook + \includegraphics[height=\L@height]% +} +\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}} +\newcommand*{\LettrineOptionsFor}[2]{\@namedef{l@#1-keys}{#2}} +\newdimen\LettrineWidth +\newdimen\LettrineHeight +\newdimen\LettrineDepth +\def\lettrine{\@ifnextchar[\@lettrine{\@lettrine[]}} +\def\@lettrine[#1]#2#3{% + \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, + \sbox{\L@lbox}{\LettrineFont #2}% + \setlength{\LettrineWidth}{\wd\L@lbox}% + \def\KV@prefix{KV@L@}% + \let\@tempc\relax + \expandafter\KV@do\l@LOKeys,\relax, + \setkeys{L}{#1}% + \fi + \ifL@image + \sbox{\L@lbox}{\LettrineFontEPS{#2}}% + \else + \sbox{\L@lbox}{\LettrineFont #2}% + \fi + \sbox{\L@tbox}{\LettrineTextFont{#3}}% + \@tempdima=\baselineskip + \ifnum\value{L@lines}=1 + \setlength{\L@first}{\ht\L@lbox}% + \addtolength{\L@first}{-\ht\L@tbox}% + \setlength{\L@lraise}{\z@}% + \else + \setlength{\L@first}{-\value{L@lines}\@tempdima}% + \addtolength{\L@first}{\@tempdima}% + \sbox{\@tempboxa}{\LettrineTextFont x}% + \addtolength{\L@first}{-\ht\@tempboxa}% + \setlength{\L@lraise}{-\L@raise\L@first}% + \addtolength{\L@first}{\L@lraise}% + \addtolength{\L@first}{\ht\L@lbox}% + \addtolength{\L@lraise}{-\value{L@lines}\@tempdima}% + \addtolength{\L@lraise}{\@tempdima}% + \fi + \par + \ifdim\L@first>\L@novskip + \ifL@grid + \@tempdima=\baselineskip + \@tempdimb=\@tempdima + \advance\@tempdimb by \L@novskip + \@tempcnta=1 + \loop\ifdim\L@first>\@tempdimb + \advance\@tempcnta by 1 + \advance\L@first by -\@tempdima + \repeat + \vskip\@tempcnta\baselineskip + \else + \vskip\L@first + \fi + \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}{\rightmargin}% + \addtolength{\L@Nindent}{\rightmargin}% + \setlength{\LettrineWidth}{\wd\L@lbox}% + \setlength{\LettrineHeight}{\ht\L@lbox}% + \setlength{\LettrineDepth}{\dp\L@lbox}% + \addtocounter{L@lines}{1}% + \addtocounter{L@lines}{\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 \rightmargin \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}% +} +\InputIfFileExists{lettrine.cfg} + {\typeout{Loading lettrine.cfg}} + {\typeout{lettrine.cfg not found, using default values}} +\endinput +%% +%% End of file `lettrine.sty'. diff --git a/macros/latex/contrib/lettrine/lettrine-2018-08-18.sty b/macros/latex/contrib/lettrine/lettrine-2018-08-18.sty new file mode 100644 index 0000000000..c302ce38d4 --- /dev/null +++ b/macros/latex/contrib/lettrine/lettrine-2018-08-18.sty @@ -0,0 +1,282 @@ +%% +%% This is file `lettrine.sty' v2.1. +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file `lettrine.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}[1999/12/01] +\ProvidesFile{lettrine.sty} + [2018/08/18 v2.1 (Daniel Flipo)] +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\RequirePackage{keyval,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 +\newif\ifLettrineVone +\newif\ifLettrineSelfRef +\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@vone +\newif\ifL@selfref +\newcommand*{\LettrineTextFont}{\scshape} +\newcommand*{\LettrineTestString}{EFTZ} +\newcommand*{\LettrineSecondString}{x} +\def\Lettrine@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}% + \ifL@image + \else + \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 + \@tempcntb=\L@height + \ifL@vone + \multiply\@tempcntb by 100 + \divide\@tempcnta by 100 + \divide\@tempcntb by \@tempcnta + \advance\@tempcntb by -9999 + \ifnum\@tempcntb>0 + \def\L@factor{1.\the\@tempcntb}% + \else + \def\L@factor{1}% + \fi + \else + \MFPdiv{\the\@tempcntb}{\the\@tempcnta}\L@factor + \fi + \fi +} +\newcommand*{\LettrineFontHook}{} +\newcommand*{\LettrineFont}{% + \LettrineFontHook + \fontsize{\L@factor\L@height}{\L@factor\L@height}% + \selectfont +} +\newcommand*{\LettrineFontEPS}{% + \LettrineFontHook\includegraphics[height=\L@height]% +} +\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}} +\define@key{L}{Vone}[true]{\csname L@vone#1\endcsname} +\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 + \ifLettrineVone\L@vonetrue\else\L@vonefalse\fi + \ifLettrineSelfRef\L@selfreftrue\else\L@selfreffalse\fi + \setkeys{L}{#1}% + \sbox{\L@tbox}{\LettrineTextFont{\LettrineSecondString}}% + \ifL@realh + \def\@tempa{#3} + \ifx\@tempa\@empty + \PackageWarning{lettrine.sty}% + {Empty second argument,\MessageBreak + ignoring option `realheight';}% + \else + \sbox{\L@tbox}{\LettrineTextFont{#3}}% + \fi + \fi + \if\DefaultOptionsFile\relax + \else + \begingroup + \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, + \Lettrine@height + \sbox{\L@lbox}{\LettrineFont #2}% + \setlength{\LettrineWidth}{\wd\L@lbox}% + \def\KV@prefix{KV@L@}% + \let\@tempc\relax + \expandafter\KV@do\l@LOKeys,\relax, + \setkeys{L}{#1}% + \fi + \Lettrine@height + \ifL@image + \sbox{\L@lbox}{\LettrineFontEPS{#2}}% + \else + \sbox{\L@lbox}{\LettrineFont #2}% + \fi + \setlength{\LettrineWidth}{\wd\L@lbox}% + \setlength{\LettrineHeight}{\ht\L@lbox}% + \setlength{\LettrineDepth}{\dp\L@lbox}% + \begingroup + \def\IeC##1{##1}% + \@tempdima=\L@oversize pt\relax + \PackageInfo{lettrine.sty}% + {Targeted height = \the\L@target@tht\MessageBreak + (no accent, loversize=0),\MessageBreak + Lettrine height = \the\LettrineHeight\space (#2)% + \ifdim\@tempdima=\z@\else\space loversize=\L@oversize\fi;% + \MessageBreak reported}% + \endgroup + \sbox{\L@tbox}{\LettrineTextFont{#3}}% + \setlength{\L@first}{\LettrineHeight}% + \setlength{\L@lraise}{\L@raise\L@target@tht}% + \addtolength{\L@first}{\L@lraise}% + \ifnum\value{L@lines}=1 + \addtolength{\L@first}{-\ht\L@tbox}% + \else + \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}{\rightmargin}% + \addtolength{\L@Nindent}{\rightmargin}% + \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 \rightmargin \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}% +} +\InputIfFileExists{lettrine.cfg} + {\typeout{Loading lettrine.cfg}} + {\typeout{lettrine.cfg not found, using default values}} +\endinput +%% +%% End of file `lettrine.sty'. diff --git a/macros/latex/contrib/lettrine/lettrine.dtx b/macros/latex/contrib/lettrine/lettrine.dtx new file mode 100644 index 0000000000..a522c917b2 --- /dev/null +++ b/macros/latex/contrib/lettrine/lettrine.dtx @@ -0,0 +1,1169 @@ +% \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: diff --git a/macros/latex/contrib/lettrine/lettrine.ins b/macros/latex/contrib/lettrine/lettrine.ins new file mode 100644 index 0000000000..a2fd3ac5bf --- /dev/null +++ b/macros/latex/contrib/lettrine/lettrine.ins @@ -0,0 +1,84 @@ +%% +%% Copyright (C) 1999-2019 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 |