summaryrefslogtreecommitdiff
path: root/texmf-dist/source
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2017-07-13 10:49:30 +0900
committerNorbert Preining <norbert@preining.info>2017-07-13 10:59:10 +0900
commit5c84c624d279fbce363ddeb5c63c230db62e9b00 (patch)
tree54cb603b73d64f9f7800eba127435cae988dd43f /texmf-dist/source
parent75b63e7ef75565914fd00cbace2bcf1b3e826dd4 (diff)
add adobecaslon
Diffstat (limited to 'texmf-dist/source')
-rw-r--r--texmf-dist/source/latex/adobecaslon/Makefile99
-rw-r--r--texmf-dist/source/latex/adobecaslon/README57
-rw-r--r--texmf-dist/source/latex/adobecaslon/adobecaslon.bib19
-rw-r--r--texmf-dist/source/latex/adobecaslon/adobecaslon.dtx1320
-rw-r--r--texmf-dist/source/latex/adobecaslon/adobecaslon.gls12
-rw-r--r--texmf-dist/source/latex/adobecaslon/adobecaslon.ins79
-rw-r--r--texmf-dist/source/latex/adobecaslon/t1a.etx.diff46
-rw-r--r--texmf-dist/source/latex/adobecaslon/t1aa.etx.diff178
-rw-r--r--texmf-dist/source/latex/adobecaslon/t1aa8.etx.diff59
-rw-r--r--texmf-dist/source/latex/adobecaslon/t1aa8e.etx.diff49
-rw-r--r--texmf-dist/source/latex/adobecaslon/t1aae.etx.diff49
11 files changed, 1967 insertions, 0 deletions
diff --git a/texmf-dist/source/latex/adobecaslon/Makefile b/texmf-dist/source/latex/adobecaslon/Makefile
new file mode 100644
index 00000000..c40d6c2b
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/Makefile
@@ -0,0 +1,99 @@
+# Build and install package from development sources
+
+TEXMF=`kpsewhich --expand-var='$$TEXMFLOCAL'`
+
+VENDOR=adobe
+FONT=adobecaslon
+
+
+build: prepare
+ fontinst pac-drv.tex
+ $(MAKE) fonts
+ pdflatex pac-sample.tex
+
+fontinst-expert: prepare
+ cp `kpsewhich t1.etx` t1a.etx
+ patch t1a.etx t1a.etx.diff
+ cp t1a.etx t1aa.etx
+ patch t1aa.etx t1aa.etx.diff
+ cp t1aa.etx t1aa8.etx
+ patch t1aa8.etx t1aa8.etx.diff
+ fontinst pac-expert-drv.tex
+
+build-expert: expert
+
+expert: fontinst-expert
+ $(MAKE) fonts
+ cat pac-extra.map >> pac.map
+ pdflatex pac-sample-expert.tex
+
+build-extraligs: extraligs
+
+extraligs: fontinst-expert
+ cp t1aa.etx t1aae.etx
+ patch t1aae.etx t1aae.etx.diff
+ cp t1aa8.etx t1aa8e.etx
+ patch t1aa8e.etx t1aa8e.etx.diff
+ fontinst pac-extraligs-drv.tex
+ $(MAKE) fonts
+ cat pac-extra.map >> pac.map
+ pdflatex pac-sample-expert.tex
+ pdflatex pac-sample-extraligs.tex
+
+prepare:
+ latex adobecaslon.ins
+
+fonts:
+ fontinst pac-map.tex
+ for i in *.pl; do pltotf $$i; done
+ for i in *.vpl; do vptovf $$i; done
+ pdflatex adobecaslon.dtx
+ - bibtex adobecaslon
+ pdflatex adobecaslon.dtx
+ - makeindex -s gind.ist -o adobecaslon.ind adobecaslon.idx
+ - makeindex -s gglo.ist -o adobecaslon.gls adobecaslon.glo
+ pdflatex adobecaslon.dtx
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' adobecaslon.log) \
+ do pdflatex adobecaslon.dtx; done
+
+dist: build
+ mkdir -p texmf-dist/fonts/vf/$(VENDOR)/$(FONT)/
+ cp -pf *.vf texmf-dist/fonts/vf/$(VENDOR)/$(FONT)/
+ mkdir -p texmf-dist/fonts/tfm/$(VENDOR)/$(FONT)/
+ cp -pf *.tfm texmf-dist/fonts/tfm/$(VENDOR)/$(FONT)/
+ mkdir -p texmf-dist/fonts/map/dvips/$(FONT)/
+ cp -pf *.map texmf-dist/fonts/map/dvips/$(FONT)/
+ mkdir -p texmf-dist/tex/latex/$(FONT)/
+ cp -pf *.sty *.fd texmf-dist/tex/latex/$(FONT)/
+ mkdir -p texmf-dist/doc/latex/$(FONT)/
+ cp -pf README pac-sample-expert.pdf texmf-dist/doc/latex/$(FONT)/
+ cp -pfr texmf/* texmf-dist/
+ cd texmf-dist/ && zip -r ../adobecaslon.tds.zip .
+
+install: dist
+ cp -pfr texmf/* $(TEXMF)/
+
+uninstall:
+ $(RM) -r $(TEXMF)/fonts/vf/$(VENDOR)/$(FONT)
+ $(RM) -r $(TEXMF)/fonts/tfm/$(VENDOR)/$(FONT)
+ $(RM) -r $(TEXMF)/fonts/map/dvips/$(FONT)
+ $(RM) -r $(TEXMF)/tex/latex/$(FONT)
+ $(RM) -r $(TEXMF)/doc/tex/latex/$(FONT)
+
+clean:
+ $(RM) *.vpl *.pl *.aux *.log *.out *.bbl *.blg *.glo \
+ *.idx *.ind *.ilg *.hd *.toc *.fd *.mtx *.tfm *.vf \
+ *.tex pac.map \
+ adobecaslon.sty *.etx *.tgz \
+ $(RM) -r texmf-dist
+
+distclean: clean
+ $(RM) *.zip *.pdf
+
+archive: build expert dist clean
+ mv adobecaslon.tds.zip ..
+ tar -C .. -zcvf adobecaslon.tgz --exclude '*CVS*' \
+ --exclude '*.pfb' --exclude '*.afm' --exclude '*.inf' \
+ --exclude '*.pfm' --exclude '*.tgz' \
+ --exclude '.git' --exclude '.gitignore' adobecaslon adobecaslon.tds.zip
+
diff --git a/texmf-dist/source/latex/adobecaslon/README b/texmf-dist/source/latex/adobecaslon/README
new file mode 100644
index 00000000..d330e605
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/README
@@ -0,0 +1,57 @@
+adobecaslon
+===========
+
+This package provides support files for the Adobe Caslon font family
+in pdfLaTeX. (The LuaTeX and XeTeX engines support system fonts
+directly, but there are still good reasons to use pdfTeX.)
+
+Version 2.0: Added support for expert fonts (Reuben Thomas)
+
+Version 2.1: Bug fixes, TS1 encoding added for a
+ number of fonts (Reuben Thomas)
+
+Version 2.2: Documentation update (Reuben Thomas)
+
+Installation
+------------
+
+See the file adobecaslon.pdf. If you do not have this file, you
+probably have the development sources, not the distribution. Get the
+distribution from http://www.ctan.org/pkg/adobecaslon
+
+
+Building from development sources
+---------------------------------
+
+(This should only be necessary if you are a developer wanting to work
+on the package.)
+
+Before you start, you must have installed the PostScript Type 1 font
+files (.pfb) in TEXMF/fonts/type1/adobe/adobecaslon, and the Adobe
+Font Metric files (.afm) in TEXMF/fonts/afm/adobe/adobecaslon.
+
+You also need the ``make'' utility installed (many systems will have
+this already).
+
+Then, if you have just the base fonts, run:
+
+ make
+
+or, if you have the expert fonts, run:
+
+ make expert
+
+and then, assuming everything went OK,
+
+ make install
+
+to install in TEXMFLOCAL. If you want to install elsewhere, you can
+specify a different TEXMF; for example,
+
+ make install TEXMF=`kpsewhich --expand-var='$TEXMFHOME'`
+
+to install under TEXMFHOME.
+
+Finally, follow the final part of the installation instructions in the
+``Installation'' section of adobecaslon.pdf, a copy of which should now
+be in the current directory.
diff --git a/texmf-dist/source/latex/adobecaslon/adobecaslon.bib b/texmf-dist/source/latex/adobecaslon/adobecaslon.bib
new file mode 100644
index 00000000..1b25e1d0
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/adobecaslon.bib
@@ -0,0 +1,19 @@
+
+
+@manual{fontname,
+ author = {Karl Berry},
+ month = {September},
+ note = {\url{http://mirrors.ctan.org/info/fontname}},
+ title = {Fontname. Filenames For {\TeX} Fonts},
+ year = {2005},
+}
+
+@manual{fontinstallationguide,
+ author = {Philipp Lehman},
+ month = {December},
+ note =
+ {\url{http://mirrors.ctan.org/info/Type1fonts/fontinstallationguide}},
+ title = {The Font Installation Guide},
+ year = {2004},
+}
+
diff --git a/texmf-dist/source/latex/adobecaslon/adobecaslon.dtx b/texmf-dist/source/latex/adobecaslon/adobecaslon.dtx
new file mode 100644
index 00000000..082ca47b
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/adobecaslon.dtx
@@ -0,0 +1,1320 @@
+% \iffalse
+%
+% Copyright (c) 1996, Ulrik Vieth
+% Copyright (c) 2012, Boris Veytsman
+% Copyright (c) 2013-2017, Reuben Thomas
+%
+% All rights reserved.
+%
+% Redistribution and use in source and binary forms, with or without
+% modification, are permitted provided that the following conditions
+% are met:
+%
+% * Redistributions of source code must retain the above copyright
+% notice, this list of conditions and the following disclaimer.
+% * Redistributions in binary form must reproduce the above
+% copyright notice, this list of conditions and the following
+% disclaimer in the documentation and/or other materials provided
+% with the distribution.
+% * Neither the name of the original author nor the names of the
+% contributors may be used to endorse or promote products derived
+% from this software without specific prior written permission.
+%
+% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+% CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+% INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+% MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+% DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+% BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+% TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+% DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+% ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+% OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+% OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+% POSSIBILITY OF SUCH DAMAGE.
+%
+% \fi
+%
+%
+% \CheckSum{948}
+%
+%
+%% \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 \~}
+%
+%
+% \MakeShortVerb{|}
+% \GetFileInfo{adobecaslon.sty}
+% \title{\LaTeX{} Support For Adobe Caslon Fonts}
+% \author{Boris Veytsman\thanks{%
+% \href{mailto:borisv@lk.net}{\texttt{borisv@lk.net}},
+% \href{mailto:boris@varphi.com}{\texttt{boris@varphi.com}}}
+% \and
+% Reuben Thomas\thanks{%
+% \href{mailto:rrt@sc3d.org}{\texttt{rrt@sc3d.org}}}
+% \and
+% Ulrik Vieth}
+% \date{\filedate, \fileversion}
+% \maketitle
+% \begin{abstract}
+% This package provides \LaTeX{} support for the Adobe Caslon
+% Fonts. Note that it does not provide the fonts themselves.
+% \end{abstract}
+% \tableofcontents
+%
+% \clearpage
+%
+%\section{Introduction}
+%\label{sec:intro}
+%
+% This package provides support files for the Adobe Caslon font family
+% in pdf\LaTeX. (The \LuaTeX and \XeTeX engines support system fonts
+% directly, but there are still good reasons to use pdf\TeX.)
+%
+% The expert font support is based on the \textsf{acaslon} package by
+% Ulrik Vieth.
+%
+% For text symbols such as footnote marks and currencies, the TS1 encoding
+% is used, which must be activated by using the \textsf{textcomp} package.
+%
+%
+%\section{Installation}
+%\label{sec:install}
+%
+% The following instructions assume a TeX Directory Structure
+% compliant TeX system. If you don't know what that is, you probably
+% have one! Otherwise, you'll need to work out where to put the files
+% yourself.
+%
+% First, you need to purchase the fonts themselves: the |pfb| files
+% are \emph{not} included in the package. If you got the fonts from
+% Adobe, do not rename the |pfb| files. However, if
+% there are uppercase letters in your files' names, downcase them. If
+% you obtained the files from another source, rename the fonts
+% according to Table~\ref{tab:PFB} and, if you have the expert fonts,
+% Table~\ref{tab:expertPFB}. Install the files into
+% \path{$TEXMF/fonts/type1/adobe/adobecaslon}.
+%
+% Then, download
+% \url{http://ctan.tug.org/install/fonts/psfonts/adobe/adobecaslon.tds.zip}
+% and unzip this file in \path{$TEXMF}.
+%
+% Finally, add the line |Map pac.map| to your |updmap.cfg| file, and
+% run |updmap| and |texhash| to update the configuration files and
+% file names database.
+%
+%
+% \begin{table}[tp]
+% \centering
+% \caption{PFB Files}
+% \label{tab:PFB}
+%
+% \begin{tabular}{ll}
+% \toprule
+% File & Font \\
+% \midrule
+% |awrg____.pfb| & Adobe Caslon Regular\\
+% |awi_____.pfb| & Adobe Caslon Italic \\
+% |awsb____.pfb| & Adobe Caslon Semibold \\
+% |awsbi___.pfb| & Adobe Caslon Semibold Italic \\
+% |awb_____.pfb| & Adobe Caslon Bold\\
+% |awbi____.pfb| & Adobe Caslon Bold Italic\\
+% \bottomrule
+% \end{tabular}
+%
+% \end{table}
+%
+% \begin{table}[tp]
+% \centering
+% \caption{Expert PFB Files}
+% \label{tab:expertPFB}
+%
+% \begin{tabular}{ll}
+% \toprule
+% File & Font \\
+% \midrule
+% |awab____.pfb| & Adobe Caslon Bold Alternate\\
+% |awabi___.pfb| & Adobe Caslon Bold Italic Alternate\\
+% |awai____.pfb| & Adobe Caslon Italic Alternate\\
+% |awarg___.pfb| & Adobe Caslon Regular Alternate\\
+% |awasb___.pfb| & Adobe Caslon Semibold Alternate\\
+% |awasi___.pfb| & Adobe Caslon Semibold Italic Alternate\\
+% |awb_____.pfb| & Adobe Caslon Bold\\
+% |awbi____.pfb| & Adobe Caslon Bold Italic\\
+% |awi_____.pfb| & Adobe Caslon Italic\\
+% |awor____.pfb| & Adobe Caslon Ornaments\\
+% |awrg____.pfb| & Adobe Caslon Regular\\
+% |awsb____.pfb| & Adobe Caslon Semibold\\
+% |awsbi___.pfb| & Adobe Caslon Semibold Italic\\
+% |awsbs___.pfb| & Adobe Caslon SemiboldSC\\
+% |awsc____.pfb| & Adobe Caslon Regular Small Caps \& Oldstyle Figures\\
+% |awssb___.pfb| & Adobe Caslon Swash Semibold Italic\\
+% |awswb___.pfb| & Adobe Caslon Swash Bold Italic\\
+% |awswi___.pfb| & Adobe Caslon Swash Italic\\
+% |axb_____.pfb| & Adobe Caslon Bold Expert\\
+% |axbi____.pfb| & Adobe Caslon Bold Italic Expert\\
+% |axi_____.pfb| & Adobe Caslon Italic Expert\\
+% |axrg____.pfb| & Adobe Caslon Regular Expert\\
+% |axsb____.pfb| & Adobe Caslon Semibold Expert\\
+% |axsbi___.pfb| & Adobe Caslon Semibold Italic Expert\\
+% |awbio___.pfb| & Adobe Caslon Bold Italic OsF\\
+% |awbos___.pfb| & Adobe Caslon Bold OsF\\
+% |awio____.pfb| & Adobe Caslon Italic OsF\\
+% |awsis___.pfb| & Adobe Caslon Semibold Italic OsF\\
+% \bottomrule
+% \end{tabular}
+%
+% \end{table}
+%
+% The package |adobecaslon.sty| provides a number of commands for using
+% the font family (see Section~\ref{sec:adobecaslon.sty}).
+%
+%\subsection{Fonts for extra ligatures}
+%\label{sec:extraligs}
+%
+% There is a range of ligatures for the `long s' letter in the Alternate fonts,
+% but there are others it is nice to have (although the fonts do quite well
+% without them). They are quite easy to make in a font editor such as FontForge
+% (\url{http://fontforge.github.io}): for example, `|longs| |longs| |i|' can be
+% made by grafting the left-hand letter of the `|longs| |longs|' ligature on to
+% the `|longs| |i|' ligature.
+%
+% Unfortunately, distributing these ligatures would probably be illegal in many
+% countries, so if you want them you will have to make them for yourself.
+%
+% Table~\ref{tab:extraenc} lists the extra ligatures supported, along with the
+% code point at which each glyph should appear and the corresponding glyph name
+% in the standard encoding. (It would be nice to support a wider range of extra
+% ligatures if there were a way of detecting which the user had supplied.)
+% Table~\ref{tab:extraPFB} lists the required font files, one for each Alternate
+% font. The extra ligatures are used when the |extraligs| package option is
+% given.
+%
+%\begin{table}[tp]
+% \centering
+% \caption{Supported extra ligatures}
+% \label{tab:extraenc}
+%
+% \begin{tabular}{lll}
+% \toprule
+% Ligature sequence & Code point & Standard glyph at code point \\
+% \midrule
+% |longs| |longs| |i| & 0x49 & i\\
+% |longs| |longs| |l| & 0x4c & l\\
+% \bottomrule
+% \end{tabular}
+%
+% \end{table}
+%
+%\begin{table}[tp]
+% \centering
+% \caption{Extra ligature PFB Files}
+% \label{tab:extraPFB}
+%
+% \begin{tabular}{ll}
+% \toprule
+% File & Font \\
+% \midrule
+% |awabe___.pfb| & Adobe Caslon Bold Alternate Extra\\
+% |awabie__.pfb| & Adobe Caslon Bold Italic Alternate Extra\\
+% |awaie___.pfb| & Adobe Caslon Italic Alternate Extra\\
+% |awarge__.pfb| & Adobe Caslon Regular Alternate Extra\\
+% |awasbe__.pfb| & Adobe Caslon Semibold Alternate Extra\\
+% |awasie__.pfb| & Adobe Caslon Semibold Italic Alternate Extra\\
+% \bottomrule
+% \end{tabular}
+%
+% \end{table}
+%
+%
+%\section{Using \LaTeX{} Style }
+%\label{sec:adobecaslon.sty}
+%
+% To use the package, add to the preamble of your document the usual
+% incantation \cmd{\usepackage}\oarg{options}|{adobecaslon}|.
+%
+% Several options are defined; see Table~\ref{tab:options}.
+% \begin{table}[tp]
+% \centering
+% \caption{Package options}
+% \label{tab:options}
+%
+% \begin{tabular}{ll}
+% \toprule
+% Option & Meaning \\
+% \midrule
+% |expert| & Use expert fonts \\
+% |osf| & Use old-style (ranging) figures (requires expert fonts) \\
+% |swashit| & Use swash italics (requires expert fonts) \\
+% |alternate| & Use alternate old-style ligatures (requires expert fonts) \\
+% |longs| & Use long `s' (requires expert fonts) \\
+% |c18th| & Use long `s' with 18th century rules (require expert fonts) \\
+% |extraligs| & Use extra ligatures with |longs| or |c18th| (see Section~\ref{sec:extraligs}) \\
+% |swashlongs| & Use long `s' with swashes (requires expert fonts) \\
+% |normdefault| & Don't make Caslon the default roman typeface \\
+% |rmdefault| & Make Caslon the default roman typeface (default) \\
+% |scaled=N| & Scale the font by the given factor (default: $1.00$) \\
+% |bold| & Use bold faces for |\bfseries| \\
+% |semibold| & Use semibold faces for |\bfseries| (default) \\
+% \bottomrule
+% \end{tabular}
+%
+% \end{table}
+%
+% Note that the |scaled| package option does not currently apply to
+% the italic swash and ornament fonts.
+%
+% The package provides Adobe fonts in two shapes: upright and italic,
+% and in three weights: medium (|m|), semibold (|sb|) and bold (|b|).
+% The can be selected in the usual way, for example
+% \begin{verbatim}
+% \fontfamily{pac}\fontshape{it}\fontseries{sb}\selectfont
+% \end{verbatim}
+%
+% \DescribeMacro{\adobecaslonfamily}
+% \DescribeMacro{\textadobecaslon}
+% Alternatively you can use a declaration |\adobecaslonfamily| and a
+% command |\textadobecaslon| to set the family.
+%
+% \DescribeMacro{\sbseries}
+% \DescribeMacro{\textsb}
+% You can use the standard \LaTeX{} commands to select the shape and
+% weight of the font. The package also provides a new declaration
+% |\sbseries| and a command
+% |\textsb| modeled after the familiar commands |\bfseries| and
+% |\textbf|, which select semi-bold weights.
+%
+% \DescribeMacro{\adobecaslonexpert}
+% Select expert fonts.
+%
+% \DescribeMacro{\adobecaslonosf}
+% Select expert fonts with old-style (ranging) figures.
+%
+% \DescribeMacro{\adobecaslonalternate}
+% Select old-style alternate ligatures.
+%
+% \DescribeMacro{\adobecaslonlongs}
+% Select long `s'.
+%
+% \DescribeMacro{\adobecasloneighteenth}
+% Select long `s' with 18th century rules (see Section~\ref{sec:longs}).
+%
+% \DescribeMacro{\adobecaslonswashit}
+% Select swash italics.
+%
+% \DescribeMacro{\adobecaslonswashcaps}
+% Select swash caps.
+%
+% \DescribeMacro{\adobecaslonornaments}
+% Select ornaments.
+%
+% Note that currently hyphenation of long `s' does not work properly:
+% \TeX\ seems to register a word boundary before the hyphen, so the
+% `s' is shortened incorrectly. As a workaround, use |\noboundary|
+% directly before such a hyphenation. This applies to automatically
+% inserted hyphenation points as well as manual ones, so unfortunately
+% complicates proof-reading whenever hyphenation is allowed.
+%
+%\subsection{Rules for `long s'}
+%\label{sec:longs}
+%
+% The following rules are implemented automatically for the use of `long s' when
+% the |longs| package option or |\adobecaslonlongs| command is used. Some come
+% directly from the font; others are taken from
+% \url{http://babelstone.blogspot.co.uk/2006/06/rules-for-long-s.html}. See also
+% \url{http://english.stackexchange.com/questions/96408/during-what-period-of-history-did-english-use-ss-the-sharp-s-ligature}.
+%
+% \begin{itemize}
+% \item `Long s' becomes short at the end of a word.
+% \item `Long s' becomes short before apostrophe.
+% \item `Long s' becomes short before and after `f'.
+% (But see section~\ref{sec:bugs}.)
+% \item `Long s' before manual hyphen (i.e., glyph |hyphen|; line-break hyphen
+% is |hyphenchar|) becomes short.
+% \end{itemize}
+%
+% The following rules must be applied manually:
+%
+% \begin{itemize}
+% \item `Long s' is retained at the end of abbreviations before the full stop:
+% add |\noboundary| before stop.
+% \item `Long s' before line-break hyphen (glyph |hyphenchar|): this is
+% incorrectly shortened, so add |\noboundary\-| at the hyphenation point.
+% \item To shorten a `long s' that is not automatically shortened, insert some
+% sort of break after it.
+% \end{itemize}
+%
+% The following additional rules are implemented when the |c18th| package option
+% or |\adobecasloneighteenth| command is used:
+%
+% \begin{itemize}
+% \item The `eszet'-style ligature becomes a `long s'--`short s' ligature.
+% \item `Long s' is shortened before b and k.
+% \end{itemize}
+%
+%\subsection{Bugs and future work}
+%\label{sec:bugs}
+%
+% The rule that `long s' becomes short before `f' is not correctly applied
+% in the case of double `long s' followed by `f', as the double-long-s
+% ligature is not broken. This should be fixed manually, for example by
+% writing |success\/ful|.
+%
+% It might seem odd that for version~2 of this package, prepared in 2014, we are
+% still using fontinst and PostScript Type~1 fonts. The reason is that as of
+% \TeX\ Live~2012, \LuaTeX\ seems to kern Adobe Caslon Pro poorly, and the
+% |hlig| historical ligature rules don't seem to work as expected.
+%
+% The files currently supplied in binary form from Ulrik Vieth's original
+% package for the swash and ornament fonts should be generated.
+%
+% Ligatures should be broken in small caps (st, ct) for correct operation of
+% |\textls|. A workaround is to avoid using |\adobecaslonalternate| or
+% |\adobecasloneighteenth| with |\textsc|. It may be convenient to make a
+% definition such as:
+%
+% \begin{verbatim}
+% \newcommand{\smallcaps}[1]{{\adobecaslonexpert\textsc{#1}}}
+% \end{verbatim}
+%
+%
+% \StopEventually{
+% \clearpage
+%
+% \bibliography{adobecaslon}
+% \bibliographystyle{unsrt}}
+%
+% \clearpage
+%\section{Implementation}
+%\label{sec:impl}
+%
+%\subsection{Identification}
+%\label{sec:ident}
+%
+% We start by declaring who we are.
+% \begin{macrocode}
+%<style>\NeedsTeXFormat{LaTeX2e}
+%<driver>\ProvidesFile{adobecaslon.dtx}
+%<style>\ProvidesPackage{adobecaslon}
+%<style> [2017/01/22 v2.2 Using Adobe Caslon Font in LaTeX]
+% \end{macrocode}
+% And the driver code:
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{booktabs}
+\usepackage{url}
+\usepackage[tableposition=top]{caption}
+\usepackage{hypdoc}
+\usepackage[normdefault]{adobecaslon}
+\usepackage{metalogo}
+\PageIndex
+\CodelineIndex
+\RecordChanges
+\EnableCrossrefs
+\begin{document}
+ \DocInput{adobecaslon.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \changes{v2.0}{2014/04/04}{Expert fonts added (Reuben Thomas)}
+% \changes{v2.1}{2016/09/05}{Bug fixes, TS1 encoding added for a
+% number of fonts (Reuben Thomas)}
+%\subsection{Fontinst Driver}
+%\label{sec:pac-drv}
+%
+% This follows~\cite{fontinstallationguide}.
+%
+% First, the preamble
+% \begin{macrocode}
+%<*pac-drv,pac-expert-drv,pac-extraligs-drv>
+\input fontinst.sty
+\substitutesilent{bx}{b}
+% \end{macrocode}
+%
+%
+% Starting recording transforms:
+% \begin{macrocode}
+\recordtransforms{pac-rec.tex}
+%</pac-drv,pac-expert-drv,pac-extraligs-drv>
+% \end{macrocode}
+% The base fonts:
+% \begin{macrocode}
+%<*pac-drv,pac-expert-drv,pac-extraligs-drv>
+\transformfont{pacr8r}{\reencodefont{8r}{\fromafm{awrg____}}}
+\transformfont{pacri8r}{\reencodefont{8r}{\fromafm{awi_____}}}
+\transformfont{pacs8r}{\reencodefont{8r}{\fromafm{awsb____}}}
+\transformfont{pacsi8r}{\reencodefont{8r}{\fromafm{awsbi___}}}
+\transformfont{pacb8r}{\reencodefont{8r}{\fromafm{awb_____}}}
+\transformfont{pacbi8r}{\reencodefont{8r}{\fromafm{awbi____}}}
+% \end{macrocode}
+%
+% Make oblique fonts for faking italic small caps:
+% \begin{macrocode}
+\transformfont{pacro8r}{\slantfont{167}{\frommtx{pacr8r}}}
+\transformfont{pacso8r}{\slantfont{167}{\frommtx{pacs8r}}}
+%</pac-drv,pac-expert-drv,pac-extraligs-drv>
+%
+% The use of expert fonts is optional, so we have a separate driver for them:
+% \begin{macrocode}
+%<*pac-expert-drv,pac-extraligs-drv>
+\transformfont{pacb7a}{\fromafm{awab____}}
+\transformfont{pacbi7a}{\fromafm{awabi___}}
+\transformfont{pacri7a}{\fromafm{awai____}}
+\transformfont{pacr7a}{\fromafm{awarg___}}
+\transformfont{pacs7a}{\fromafm{awasb___}}
+\transformfont{pacsi7a}{\fromafm{awasi___}}
+\transformfont{pacrp}{\fromafm{awor____}}
+\transformfont{pacsc8x}{\fromafm{awsbs___}}
+\transformfont{pacrc8x}{\fromafm{awsc____}}
+\transformfont{pacsiw}{\fromafm{awssb___}}
+\transformfont{pacbiw}{\fromafm{awswb___}}
+\transformfont{pacriw}{\fromafm{awswi___}}
+\transformfont{pacb8x}{\fromafm{axb_____}}
+\transformfont{pacbi8x}{\fromafm{axbi____}}
+\transformfont{pacri8x}{\fromafm{axi_____}}
+\transformfont{pacr8x}{\fromafm{axrg____}}
+\transformfont{pacs8x}{\fromafm{axsb____}}
+\transformfont{pacsi8x}{\fromafm{axsbi___}}
+% \end{macrocode}
+%
+% Make expert oblique fonts for faking italic small caps:
+%
+% \begin{macrocode}
+\transformfont{pacro8x}{\slantfont{167}{\frommtx{pacr8x}}}
+\transformfont{pacrco8x}{\slantfont{167}{\frommtx{pacrc8x}}}
+\transformfont{pacso8x}{\slantfont{167}{\frommtx{pacs8x}}}
+\transformfont{pacsco8x}{\slantfont{167}{\frommtx{pacsc8x}}}
+%</pac-expert-drv,pac-extraligs-drv>
+% \end{macrocode}
+%
+% The ``extraligs'' fonts must be supplied by the user, so they have a separate driver:
+% \begin{macrocode}
+%<*pac-extraligs-drv>
+\transformfont{pacb7ae}{\fromafm{awabe___}}
+\transformfont{pacbi7ae}{\fromafm{awabie__}}
+\transformfont{pacri7ae}{\fromafm{awaie___}}
+\transformfont{pacr7ae}{\fromafm{awarge__}}
+\transformfont{pacs7ae}{\fromafm{awasbe__}}
+\transformfont{pacsi7ae}{\fromafm{awasie__}}
+%</pac-extraligs-drv>
+% \end{macrocode}
+%
+% There is no hook in |fontinst.sty| for writing our own preamble to
+% |.fd| file. However, we need to add scaling commands to the
+% preamble, so we patch \textsf{fontinst}:
+% \begin{macrocode}
+%<*pac-drv,pac-expert-drv,pac-extraligs-drv>
+\fontinstcc
+\def\fd_family#1#2#3{
+ \a_toks{#3}
+ \edef\lowercase_file{\lowercase{
+ \edef\noexpand\lowercase_file{#1#2.fd}}}
+ \lowercase_file
+ \open_out{\lowercase_file}
+ \out_line{\percent_char~Filename:~\lowercase_file}
+ \out_line{\percent_char~Created~by:~tex~\jobname}
+ \out_line{\percent_char~Created~using~fontinst~v\fontinstversion}
+ \out_line{}
+ \out_line{\percent_char~THIS~FILE~SHOULD~BE~PUT~IN~A~TEX~INPUTS~
+ DIRECTORY}
+ \out_line{}
+ \out_line{\string\ProvidesFile{\lowercase_file}}
+ \out_lline{[
+ \the\year/
+ \ifnum10>\month0\fi\the\month/
+ \ifnum10>\day0\fi\the\day\space
+ Fontinst~v\fontinstversion\space
+ font~definitions~for~#1/#2.
+ ]}
+ \out_line{}
+% \end{macrocode}
+% Here is our patch:
+% \begin{macrocode}
+ \out_line{\string\expandafter\string\ifx\string\csname\space
+ adobecaslon@scaled\string\endcsname\string\relax}
+ \out_line{\space\string\let\string\adobecaslon@scaled\string\@empty}
+ \out_line{\string\else}
+ \out_line{\space\string\edef\string\adobecaslon@scaled\left_brace_char
+ s*[\string\csname\space adobecaslon@scaled\string\endcsname]
+ \right_brace_char\percent_char}
+ \out_line{\string\fi\percent_char}
+ \out_line{}
+% \end{macrocode}
+% End of the patch.
+% \begin{macrocode}
+ \out_line{\string\DeclareFontFamily{#1}{#2}{\the\a_toks}}
+ {
+ \csname #1-#2\endcsname
+ \out_line{}
+ \let\do_shape=\substitute_shape
+ \csname #1-#2\endcsname
+ \let\do_shape=\remove_shape
+ \csname #1-#2\endcsname
+ }
+ \x_cs\g_let{#1-#2}\x_relax
+ \out_line{}
+ \out_line{\string\endinput}
+ \close_out{Font~definitions}
+}
+\normalcc
+% \end{macrocode}
+%
+% Now we install the fonts. First T1:
+% \begin{macrocode}
+\installfonts
+\installfont{pacr8t}{pacr8r,newlatin}{t1}{T1}{pac}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacro8t}{pacro8r,newlatin}{t1}{T1}{pac}{m}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacrc8t}{pacr8r,newlatin}{t1c}{T1}{pac}{m}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacrco8t}{pacro8r,newlatin}{t1c}{T1}{pac}{m}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacri8t}{pacri8r,newlatin}{t1}{T1}{pac}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacs8t}{pacs8r,newlatin}{t1}{T1}{pac}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacso8t}{pacso8r,newlatin}{t1}{T1}{pac}{sb}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacsc8t}{pacs8r,newlatin}{t1c}{T1}{pac}{sb}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacsco8t}{pacso8r,newlatin}{t1c}{T1}{pac}{sb}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacsi8t}{pacsi8r,newlatin}{t1}{T1}{pac}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacb8t}{pacb8r,newlatin}{t1}{T1}{pac}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbi8t}{pacbi8r,newlatin}{t1}{T1}{pac}{b}{it}{ <->\string\adobecaslon@scaled}
+% \end{macrocode}
+%
+% Then TS1:
+% \begin{macrocode}
+\installfont{pacr8c}{pacr8r,textcomp}{ts1}{TS1}{pac}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacri8c}{pacri8r,textcomp}{ts1}{TS1}{pac}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacs8c}{pacs8r,textcomp}{ts1}{TS1}{pac}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacsi8c}{pacsi8r,textcomp}{ts1}{TS1}{pac}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacb8c}{pacb8r,textcomp}{ts1}{TS1}{pac}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbi8c}{pacbi8r,textcomp}{ts1}{TS1}{pac}{b}{it}{ <->\string\adobecaslon@scaled}
+% \end{macrocode}
+%
+% And OT1:
+% \begin{macrocode}
+\installfont{pacr7t}{pacr8r,newlatin}{ot1}{OT1}{pac}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacro7t}{pacro8r,newlatin}{ot1}{OT1}{pac}{m}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacrc7t}{pacr8r,newlatin}{ot1c}{OT1}{pac}{m}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacrco7t}{pacro8r,newlatin}{ot1c}{OT1}{pac}{m}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacri7t}{pacri8r,newlatin}{ot1}{OT1}{pac}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacs7t}{pacs8r,newlatin}{ot1}{OT1}{pac}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacso7t}{pacso8r,newlatin}{ot1}{OT1}{pac}{sb}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacsc7t}{pacs8r,newlatin}{ot1c}{OT1}{pac}{sb}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacsco7t}{pacso8r,newlatin}{ot1c}{OT1}{pac}{sb}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacsi7t}{pacsi8r,newlatin}{ot1}{OT1}{pac}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacb7t}{pacb8r,newlatin}{ot1}{OT1}{pac}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbi7t}{pacbi8r,newlatin}{ot1}{OT1}{pac}{b}{it}{ <->\string\adobecaslon@scaled}
+\endinstallfonts
+% \end{macrocode}
+%
+% Now the expert and extra ligature fonts, which we make available only in T1
+% and TS1 encodings.
+%<*pac-expert-drv,pac-extraligs-drv>
+% \begin{macrocode}
+\installfonts
+%</pac-expert-drv,pac-extraligs-drv>
+% \end{macrocode}
+%
+% First, the \texttt{expert} option:
+% \begin{macrocode}
+%<*pac-expert-drv>
+\installfont{pacr9e}{pacr8r,pacr8x,newlatin}{t1}{T1}{pacx}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacro9e}{pacro8r,pacro8x,newlatin}{t1}{T1}{pacx}{m}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacrc9e}{pacrc8x,pacr8x,newlatin}{t1}{T1}{pacx}{m}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacrco9e}{pacrco8x,pacro8x,newlatin}{t1}{T1}{pacx}{m}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacri9e}{pacri8r,pacri8x,newlatin}{t1}{T1}{pacx}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacs9e}{pacs8r,pacs8x,newlatin}{t1}{T1}{pacx}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacso9e}{pacso8r,pacso8x,newlatin}{t1}{T1}{pacx}{sb}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacsc9e}{pacsc8x,pacs8x,newlatin}{t1}{T1}{pacx}{sb}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacsco9e}{pacsco8x,pacso8x,newlatin}{t1}{T1}{pacx}{sb}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacsi9e}{pacsi8r,pacsi8x,newlatin}{t1}{T1}{pacx}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacb9e}{pacb8r,pacb8x,newlatin}{t1}{T1}{pacx}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbi9e}{pacbi8r,pacbi8x,newlatin}{t1}{T1}{pacx}{b}{it}{ <->\string\adobecaslon@scaled}
+
+\installfont{pacr9c}{pacr8r,pacr8x,textcomp}{ts1}{TS1}{pacx}{m}{n}{}
+\installfont{pacro9c}{pacro8r,pacro8x,textcomp}{ts1}{TS1}{pacx}{m}{sl}{}
+\installfont{pacri9c}{pacri8r,pacri8x,textcomp}{ts1i}{TS1}{pacx}{m}{it}{}
+\installfont{pacs9c}{pacs8r,pacs8x,textcomp}{ts1}{TS1}{pacx}{sb}{n}{}
+\installfont{pacso9c}{pacso8r,pacso8x,textcomp}{ts1}{TS1}{pacx}{sb}{sl}{}
+\installfont{pacsi9c}{pacsi8r,pacsi8x,textcomp}{ts1i}{TS1}{pacx}{sb}{it}{}
+\installfont{pacb9c}{pacb8r,pacb8x,textcomp}{ts1}{TS1}{pacx}{b}{n}{}
+\installfont{pacbi9c}{pacbi8r,pacbi8x,textcomp}{ts1i}{TS1}{pacx}{b}{it}{}
+% \end{macrocode}
+%
+% The \texttt{osf} option:
+% \begin{macrocode}
+\installfont{pacr9d}{pacr8r,pacr8x,newlatin}{t1j}{T1}{pacj}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacro9d}{pacro8r,pacro8x,newlatin}{t1j}{T1}{pacj}{m}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacrc9d}{pacrc8x,pacr8x,newlatin}{t1j}{T1}{pacj}{m}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacrco9d}{pacrco8x,pacro8x,newlatin}{t1j}{T1}{pacj}{m}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacri9d}{pacri8r,pacri8x,newlatin}{t1j}{T1}{pacj}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacs9d}{pacs8r,pacs8x,newlatin}{t1j}{T1}{pacj}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacso9d}{pacso8r,pacso8x,newlatin}{t1j}{T1}{pacj}{sb}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacsc9d}{pacsc8x,pacs8x,newlatin}{t1j}{T1}{pacj}{sb}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacsco9d}{pacsco8x,pacso8x,newlatin}{t1j}{T1}{pacj}{sb}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacsi9d}{pacsi8r,pacsi8x,newlatin}{t1j}{T1}{pacj}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacb9d}{pacb8r,pacb8x,newlatin}{t1j}{T1}{pacj}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbi9d}{pacbi8r,pacbi8x,newlatin}{t1j}{T1}{pacj}{b}{it}{ <->\string\adobecaslon@scaled}
+% \end{macrocode}
+%
+% The \texttt{alternate} option:
+% \begin{macrocode}
+\installfont{pacra9d}{pacr8r,pacr7a,pacr8x,newlatina}{t1aj}{T1}{paca}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacroa9d}{pacro8r,pacro8x,newlatina}{t1aj}{T1}{paca}{m}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacrca9d}{pacrc8x,pacr8x,newlatinasc}{t1aj}{T1}{paca}{m}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacrcoa9d}{pacrco8x,pacro8x,newlatinasc}{t1aj}{T1}{paca}{m}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacria9d}{pacri8r,pacri7a,pacri8x,newlatina}{t1aj}{T1}{paca}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacsa9d}{pacs8r,pacs7a,pacs8x,newlatina}{t1aj}{T1}{paca}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacsoa9d}{pacso8r,pacso8x,newlatina}{t1aj}{T1}{paca}{sb}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacsca9d}{pacsc8x,pacs8x,newlatinasc}{t1aj}{T1}{paca}{sb}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacscoa9d}{pacsco8x,pacso8x,newlatinasc}{t1aj}{T1}{paca}{sb}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacsia9d}{pacsi8r,pacsi7a,pacsi8x,newlatina}{t1aj}{T1}{paca}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacba9d}{pacb8r,pacb7a,pacb8x,newlatina}{t1aj}{T1}{paca}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbia9d}{pacbi8r,pacbi7a,pacbi8x,newlatina}{t1aj}{T1}{paca}{b}{it}{ <->\string\adobecaslon@scaled}
+
+\installfont{pacra9c}{pacr8r,pacr8x,textcomp}{ts1}{TS1}{paca}{m}{n}{}
+\installfont{pacroa9c}{pacro8r,pacro8x,textcomp}{ts1}{TS1}{paca}{m}{sl}{}
+\installfont{pacria9c}{pacri8r,pacri8x,textcomp}{ts1i}{TS1}{paca}{m}{it}{}
+\installfont{pacsa9c}{pacs8r,pacs8x,textcomp}{ts1}{TS1}{paca}{sb}{n}{}
+\installfont{pacsoa9c}{pacso8r,pacso8x,textcomp}{ts1}{TS1}{paca}{sb}{sl}{}
+\installfont{pacsia9c}{pacsi8r,pacsi8x,textcomp}{ts1i}{TS1}{paca}{sb}{it}{}
+\installfont{pacba9c}{pacb8r,pacb8x,textcomp}{ts1}{TS1}{paca}{b}{n}{}
+\installfont{pacbia9c}{pacbi8r,pacbi8x,textcomp}{ts1i}{TS1}{paca}{b}{it}{}
+% \end{macrocode}
+%
+% The \texttt{longs} option:
+% \begin{macrocode}
+\installfont{pacraa9d}{pacr8r,pacr7a,pacr8x,newlatinaa}{t1aaj}{T1}{pacaa}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacroaa9d}{pacro8r,pacro8x,newlatinaa}{t1aaj}{T1}{pacaa}{m}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacrcaa9d}{pacrc8x,pacr8x,newlatinaasc}{t1aaj}{T1}{pacaa}{m}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacrcoaa9d}{pacrco8x,pacro8x,newlatinaasc}{t1aaj}{T1}{pacaa}{m}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacriaa9d}{pacri8r,pacri7a,pacri8x,newlatinaa}{t1aaj}{T1}{pacaa}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacsaa9d}{pacs8r,pacs7a,pacs8x,newlatinaa}{t1aaj}{T1}{pacaa}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacsoaa9d}{pacso8r,pacso8x,newlatinaa}{t1aaj}{T1}{pacaa}{sb}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacscaa9d}{pacsc8x,pacs8x,newlatinaasc}{t1aaj}{T1}{pacaa}{sb}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacscoaa9d}{pacsco8x,pacso8x,newlatinaasc}{t1aaj}{T1}{pacaa}{sb}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacsiaa9d}{pacsi8r,pacsi7a,pacsi8x,newlatinaa}{t1aaj}{T1}{pacaa}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacbaa9d}{pacb8r,pacb7a,pacb8x,newlatinaa}{t1aaj}{T1}{pacaa}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbiaa9d}{pacbi8r,pacbi7a,pacbi8x,newlatinaa}{t1aaj}{T1}{pacaa}{b}{it}{ <->\string\adobecaslon@scaled}
+
+\installfont{pacraa9c}{pacr8r,pacr8x,textcomp}{ts1}{TS1}{pacaa}{m}{n}{}
+\installfont{pacroaa9c}{pacro8r,pacro8x,textcomp}{ts1}{TS1}{pacaa}{m}{sl}{}
+\installfont{pacriaa9c}{pacri8r,pacri8x,textcomp}{ts1i}{TS1}{pacaa}{m}{it}{}
+\installfont{pacsaa9c}{pacs8r,pacs8x,textcomp}{ts1}{TS1}{pacaa}{sb}{n}{}
+\installfont{pacsoaa9c}{pacso8r,pacso8x,textcomp}{ts1}{TS1}{pacaa}{sb}{sl}{}
+\installfont{pacsiaa9c}{pacsi8r,pacsi8x,textcomp}{ts1i}{TS1}{pacaa}{sb}{it}{}
+\installfont{pacbaa9c}{pacb8r,pacb8x,textcomp}{ts1}{TS1}{pacaa}{b}{n}{}
+\installfont{pacbiaa9c}{pacbi8r,pacbi8x,textcomp}{ts1i}{TS1}{pacaa}{b}{it}{}
+% \end{macrocode}
+%
+% The \texttt{c18th} option:
+% \begin{macrocode}
+\installfont{pacraa89d}{pacr8r,pacr7a,pacr8x,newlatinaa8}{t1aa8j}{T1}{pacaa8}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacroaa89d}{pacro8r,pacro8x,newlatinaa8}{t1aa8j}{T1}{pacaa8}{m}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacrcaa89d}{pacrc8x,pacr8x,newlatinaa8sc}{t1aa8j}{T1}{pacaa8}{m}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacrcoaa89d}{pacrco8x,pacro8x,newlatinaa8sc}{t1aa8j}{T1}{pacaa8}{m}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacriaa89d}{pacri8r,pacri7a,pacri8x,newlatinaa8}{t1aa8j}{T1}{pacaa8}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacsaa89d}{pacs8r,pacs7a,pacs8x,newlatinaa8}{t1aa8j}{T1}{pacaa8}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacsoaa89d}{pacso8r,pacso8x,newlatinaa8}{t1aa8j}{T1}{pacaa8}{sb}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacscaa89d}{pacsc8x,pacs8x,newlatinaa8sc}{t1aa8j}{T1}{pacaa8}{sb}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacscoaa89d}{pacsco8x,pacso8x,newlatinaa8sc}{t1aa8j}{T1}{pacaa8}{sb}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacsiaa89d}{pacsi8r,pacsi7a,pacsi8x,newlatinaa8}{t1aa8j}{T1}{pacaa8}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacbaa89d}{pacb8r,pacb7a,pacb8x,newlatinaa8}{t1aa8j}{T1}{pacaa8}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbiaa89d}{pacbi8r,pacbi7a,pacbi8x,newlatinaa8}{t1aa8j}{T1}{pacaa8}{b}{it}{ <->\string\adobecaslon@scaled}
+
+\installfont{pacraa89c}{pacr8r,pacr8x,textcomp}{ts1}{TS1}{pacaa8}{m}{n}{}
+\installfont{pacroaa89c}{pacro8r,pacro8x,textcomp}{ts1}{TS1}{pacaa8}{m}{sl}{}
+\installfont{pacriaa89c}{pacri8r,pacri8x,textcomp}{ts1i}{TS1}{pacaa8}{m}{it}{}
+\installfont{pacsaa89c}{pacs8r,pacs8x,textcomp}{ts1}{TS1}{pacaa8}{sb}{n}{}
+\installfont{pacsoaa89c}{pacso8r,pacso8x,textcomp}{ts1}{TS1}{pacaa8}{sb}{sl}{}
+\installfont{pacsiaa89c}{pacsi8r,pacsi8x,textcomp}{ts1i}{TS1}{pacaa8}{sb}{it}{}
+\installfont{pacbaa89c}{pacb8r,pacb8x,textcomp}{ts1}{TS1}{pacaa8}{b}{n}{}
+\installfont{pacbiaa89c}{pacbi8r,pacbi8x,textcomp}{ts1i}{TS1}{pacaa8}{b}{it}{}
+%</pac-expert-drv>
+% \end{macrocode}
+%
+% Now the extra ligature fonts. First, the \texttt{longs} with
+% \texttt{extraligs} option (see Section~\ref{sec:extraligs}):
+% \begin{macrocode}
+%<*pac-extraligs-drv>
+\installfont{pacraae9d}{pacr8r,pacr7a,pacr7ae,pacr8x,newlatinaae}{t1aaje}{T1}{pacaae}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacroaae9d}{pacro8r,pacro8x,newlatinaae}{t1aaje}{T1}{pacaae}{m}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacrcaae9d}{pacrc8x,pacr8x,newlatinaaesc}{t1aaje}{T1}{pacaae}{m}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacrcoaae9d}{pacrco8x,pacro8x,newlatinaaesc}{t1aaje}{T1}{pacaae}{m}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacriaae9d}{pacri8r,pacri7a,pacri7ae,pacri8x,newlatinaae}{t1aaje}{T1}{pacaae}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacsaae9d}{pacs8r,pacs7a,pacs7ae,pacs8x,newlatinaae}{t1aaje}{T1}{pacaae}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacsoaae9d}{pacso8r,pacso8x,newlatinaae}{t1aaje}{T1}{pacaae}{sb}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacscaae9d}{pacsc8x,pacs8x,newlatinaaesc}{t1aaje}{T1}{pacaae}{sb}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacscoaae9d}{pacsco8x,pacso8x,newlatinaaesc}{t1aaje}{T1}{pacaae}{sb}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacsiaae9d}{pacsi8r,pacsi7a,pacsi7ae,pacsi8x,newlatinaae}{t1aaje}{T1}{pacaae}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacbaae9d}{pacb8r,pacb7a,pacb7ae,pacb8x,newlatinaae}{t1aaje}{T1}{pacaae}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbiaae9d}{pacbi8r,pacbi7a,pacbi7ae,pacbi8x,newlatinaae}{t1aaje}{T1}{pacaae}{b}{it}{ <->\string\adobecaslon@scaled}
+
+\installfont{pacraae9c}{pacr8r,pacr8x,textcomp}{ts1}{TS1}{pacaae}{m}{n}{}
+\installfont{pacroaae9c}{pacro8r,pacro8x,textcomp}{ts1}{TS1}{pacaae}{m}{sl}{}
+\installfont{pacriaae9c}{pacri8r,pacri8x,textcomp}{ts1i}{TS1}{pacaae}{m}{it}{}
+\installfont{pacsaae9c}{pacs8r,pacs8x,textcomp}{ts1}{TS1}{pacaae}{sb}{n}{}
+\installfont{pacsoaae9c}{pacso8r,pacso8x,textcomp}{ts1}{TS1}{pacaae}{sb}{sl}{}
+\installfont{pacsiaae9c}{pacsi8r,pacsi8x,textcomp}{ts1i}{TS1}{pacaae}{sb}{it}{}
+\installfont{pacbaae9c}{pacb8r,pacb8x,textcomp}{ts1}{TS1}{pacaae}{b}{n}{}
+\installfont{pacbiaae9c}{pacbi8r,pacbi8x,textcomp}{ts1i}{TS1}{pacaae}{b}{it}{}
+% \end{macrocode}
+%
+% Then the \texttt{c18th} with \texttt{extraligs} option:
+% \begin{macrocode}
+\installfont{pacraa8e9d}{pacr8r,pacr7a,pacr7ae,pacr8x,newlatinaa8e}{t1aa8je}{T1}{pacaa8e}{m}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacroaa8e9d}{pacro8r,pacro8x,newlatinaa8e}{t1aa8je}{T1}{pacaa8e}{m}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacrcaa8e9d}{pacrc8x,pacr8x,newlatinaa8esc}{t1aa8je}{T1}{pacaa8e}{m}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacrcoaa8e9d}{pacrco8x,pacro8x,newlatinaa8esc}{t1aa8je}{T1}{pacaa8e}{m}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacriaa8e9d}{pacri8r,pacri7a,pacri7ae,pacri8x,newlatinaa8e}{t1aa8je}{T1}{pacaa8e}{m}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacsaa8e9d}{pacs8r,pacs7a,pacs7ae,pacs8x,newlatinaa8e}{t1aa8je}{T1}{pacaa8e}{sb}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacsoaa8e9d}{pacso8r,pacso8x,newlatinaa8e}{t1aa8je}{T1}{pacaa8e}{sb}{sl}{ <->\string\adobecaslon@scaled}
+\installfont{pacscaa8e9d}{pacsc8x,pacs8x,newlatinaa8esc}{t1aa8je}{T1}{pacaa8e}{sb}{sc}{ <->\string\adobecaslon@scaled}
+\installfont{pacscoaa8e9d}{pacsco8x,pacso8x,newlatinaa8esc}{t1aa8je}{T1}{pacaa8e}{sb}{scit}{ <->\string\adobecaslon@scaled}
+\installfont{pacsiaa8e9d}{pacsi8r,pacsi7a,pacsi7ae,pacsi8x,newlatinaa8e}{t1aa8je}{T1}{pacaa8e}{sb}{it}{ <->\string\adobecaslon@scaled}
+\installfont{pacbaa8e9d}{pacb8r,pacb7a,pacb7ae,pacb8x,newlatinaa8e}{t1aa8je}{T1}{pacaa8e}{b}{n}{ <->\string\adobecaslon@scaled}
+\installfont{pacbiaa8e9d}{pacbi8r,pacbi7a,pacbi7ae,pacbi8x,newlatinaa8e}{t1aa8je}{T1}{pacaa8e}{b}{it}{ <->\string\adobecaslon@scaled}
+
+\installfont{pacraa8e9c}{pacr8r,pacr8x,textcomp}{ts1}{TS1}{pacaa8e}{m}{n}{}
+\installfont{pacroaa8e9c}{pacro8r,pacro8x,textcomp}{ts1}{TS1}{pacaa8e}{m}{sl}{}
+\installfont{pacriaa8e9c}{pacri8r,pacri8x,textcomp}{ts1i}{TS1}{pacaa8e}{m}{it}{}
+\installfont{pacsaa8e9c}{pacs8r,pacs8x,textcomp}{ts1}{TS1}{pacaa8e}{sb}{n}{}
+\installfont{pacsoaa8e9c}{pacso8r,pacso8x,textcomp}{ts1}{TS1}{pacaa8e}{sb}{sl}{}
+\installfont{pacsiaa8e9c}{pacsi8r,pacsi8x,textcomp}{ts1i}{TS1}{pacaa8e}{sb}{it}{}
+\installfont{pacbaa8e9c}{pacb8r,pacb8x,textcomp}{ts1}{TS1}{pacaa8e}{b}{n}{}
+\installfont{pacbiaa8e9c}{pacbi8r,pacbi8x,textcomp}{ts1i}{TS1}{pacaa8e}{b}{it}{}
+%</pac-extraligs-drv>
+% \end{macrocode}
+%
+% End the fonts installation:
+%<*pac-expert-drv,pac-extraligs-drv>
+% \begin{macrocode}
+\endinstallfonts
+% \end{macrocode}
+%</pac-expert-drv,pac-extraligs-drv>
+% End the driver:
+% \begin{macrocode}
+\endrecordtransforms
+\bye
+%</pac-drv,pac-expert-drv,pac-extraligs-drv>
+% \end{macrocode}
+%
+%\subsection{Fontmap Generation}
+%\label{sec:fontmap}
+%
+% This is a standard procedure~\cite{fontinstallationguide}
+% \begin{macrocode}
+%<*pac-map>
+\input finstmsc.sty
+\resetstr{PSfontsuffix}{.pfb}
+\adddriver{dvips}{pac.map}
+\input pac-rec.tex
+\donedrivers
+\bye
+%</pac-map>
+% \end{macrocode}
+%
+%\subsection{Metrics}
+%
+% Old-style ligatures on modern letters.
+%
+%<*newlatina>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatin}
+\inputmtx{oldstyle-kerning}
+
+\unfakable{st}
+\unfakable{ct}
+
+\endmetrics
+% \end{macrocode}
+%</newlatina>
+%
+% Old-style ligatures with small caps.
+%
+%<*newlatinasc>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatin}
+\inputmtx{oldstyle-kerning}
+
+\setglyph{st}
+ \glyph{s}{1000}
+ \glyph{t}{1000}
+\endsetglyph
+\setglyph{ct}
+ \glyph{c}{1000}
+ \glyph{t}{1000}
+\endsetglyph
+
+\endmetrics
+% \end{macrocode}
+%</newlatinasc>
+%
+% The `long s' variant.
+%
+%<*newlatinaa>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatina}
+\inputmtx{longs-kerning}
+
+\unfakable{longs}
+\unfakable{longsh}
+\unfakable{longsi}
+\unfakable{longsl}
+\unfakable{longst}
+\unfakable{longdbls}
+
+\endmetrics
+% \end{macrocode}
+%</newlatinaa>
+%
+% The `long s' variant for small caps.
+%
+%<*newlatinaasc>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatinasc}
+\inputmtx{longs-kerning}
+
+\setglyph{longs}
+ \glyph{s}{1000}
+\endsetglyph
+\setglyph{longsh}
+ \glyph{s}{1000}
+ \glyph{h}{1000}
+\endsetglyph
+\setglyph{longsi}
+ \glyph{s}{1000}
+ \glyph{i}{1000}
+\endsetglyph
+\setglyph{longsl}
+ \glyph{s}{1000}
+ \glyph{l}{1000}
+\endsetglyph
+\setglyph{longst}
+ \glyph{s}{1000}
+ \glyph{t}{1000}
+\endsetglyph
+\setglyph{longdbls}
+ \glyph{s}{1000}
+ \glyph{s}{1000}
+\endsetglyph
+
+\endmetrics
+% \end{macrocode}
+%</newlatinaasc>
+%
+% The `long s' variant with extra ligatures.
+%
+%<*newlatinaae>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatinaa}
+\inputmtx{longdbls-kerning}
+
+\unfakable{longdblsi}
+\unfakable{longdblsl}
+
+\endmetrics
+% \end{macrocode}
+%</newlatinaae>
+%
+% The `long s' variant with extra ligatures for small caps.
+%
+%<*newlatinaaesc>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatinaasc}
+\inputmtx{longdbls-kerning}
+
+\setglyph{longdblsi}
+ \glyph{s}{1000}
+ \glyph{s}{1000}
+ \glyph{i}{1000}
+\endsetglyph
+\setglyph{longdblsl}
+ \glyph{s}{1000}
+ \glyph{s}{1000}
+ \glyph{l}{1000}
+\endsetglyph
+
+\endmetrics
+% \end{macrocode}
+%</newlatinaaesc>
+%
+% The 18th century variant.
+%
+%<*newlatinaa8>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatinaa}
+\inputmtx{longss-kerning}
+\inputmtx{longss-glyph}
+
+\endmetrics
+% \end{macrocode}
+%</newlatinaa8>
+%
+% The 18th century variant for small caps.
+%
+%<*newlatinaa8sc>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatinaasc}
+\inputmtx{longss-kerning}
+\inputmtx{longss-glyph-sc}
+
+\endmetrics
+% \end{macrocode}
+%</newlatinaa8sc>
+%
+% The 18th century variant with extra ligatures.
+%
+%<*newlatinaa8e>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatinaae}
+\inputmtx{longss-kerning}
+\inputmtx{longss-glyph}
+
+\endmetrics
+% \end{macrocode}
+%</newlatinaa8e>
+%
+% The 18th century variant with extra ligatures for small caps.
+%
+%<*newlatinaa8esc>
+% \begin{macrocode}
+\relax
+\metrics
+
+\inputmtx{newlatinaaesc}
+\inputmtx{longss-kerning}
+\inputmtx{longss-glyph-sc}
+
+\endmetrics
+% \end{macrocode}
+%</newlatinaa8esc>
+%
+% A fragment for kerning old-style ligatures.
+%
+% \begin{macrocode}
+%<*oldstyle-kerning>
+\setleftkerning{st}{s}{1000}
+\setleftkerning{ct}{c}{1000}
+\setrightkerning{st}{t}{1000}
+\setrightkerning{ct}{t}{1000}
+% \end{macrocode}
+%</oldstyle-kerning>
+%
+% A fragment for kerning `long s' ligatures.
+%
+% \begin{macrocode}
+%<*longs-kerning>
+\setleftkerning{longsh}{longs}{1000}
+\setrightkerning{longsh}{h}{1000}
+\setleftkerning{longsi}{longs}{1000}
+\setrightkerning{longsi}{i}{1000}
+\setleftkerning{longsl}{longs}{1000}
+\setrightkerning{longsl}{l}{1000}
+\setleftkerning{longst}{longs}{1000}
+\setrightkerning{longst}{t}{1000}
+\setleftrightkerning{longdbls}{longs}{1000}
+% \end{macrocode}
+%</longs-kerning>
+%
+% A fragment for kerning `double long s' ligatures.
+%
+% \begin{macrocode}
+%<*longdbls-kerning>
+\setleftkerning{longdblsi}{longs}{1000}
+\setrightkerning{longdblsi}{i}{1000}
+\setleftkerning{longdblsl}{longs}{1000}
+\setrightkerning{longdblsl}{l}{1000}
+% \end{macrocode}
+%</longdbls-kerning>
+%
+% A fragment for kerning long `s' followed by `s'.
+%
+% \begin{macrocode}
+%<*longss-kerning>
+\setleftkerning{longss}{longs}{1000}
+\setrightkerning{longss}{s}{1000}
+% \end{macrocode}
+%</longss-kerning>
+%
+% A fragment for a long `s' followed by `s' glyph.
+%
+% \begin{macrocode}
+%<*longss-glyph>
+\setglyph{longss}
+ \glyph{longs}{1000}
+ \glyph{s}{1000}
+\endsetglyph
+% \end{macrocode}
+%</longss-glyph>
+%
+% A fragment for a long `s' followed by `s' glyph for small caps.
+%
+% \begin{macrocode}
+%<*longss-glyph-sc>
+\setglyph{longss}
+ \glyph{s}{1000}
+ \glyph{s}{1000}
+\endsetglyph
+% \end{macrocode}
+%</longss-glyph-sc>
+%
+%\subsection{Encodings}
+%
+% The variant for old-style figures:
+%
+% \begin{macrocode}
+%<*t1aj>
+\relax
+\encoding
+
+%% Define the parameters to produce a font with old-style figures
+\setcommand\digit#1{#1oldstyle}
+
+\inputetx{t1a}
+
+\endencoding
+%</t1aj>
+% \end{macrocode}
+%
+% The `long s' variant with old-style figures.
+%
+% \begin{macrocode}
+%<*t1aaj>
+\relax
+\encoding
+
+%% Define the parameters to produce a font with old-style figures
+\setcommand\digit#1{#1oldstyle}
+
+\inputetx{t1aa}
+
+\endencoding
+%</t1aaj>
+% \end{macrocode}
+%
+% The eighteenth-century variant with old-style figures.
+%
+% \begin{macrocode}
+%<*t1aa8j>
+\relax
+\encoding
+
+%% Define the parameters to produce a font with old-style figures
+\setcommand\digit#1{#1oldstyle}
+
+\inputetx{t1aa8}
+
+\endencoding
+%</t1aa8j>
+% \end{macrocode}
+%
+% The `long s' variant with old-style figures and extra ligatures.
+%
+% \begin{macrocode}
+%<*t1aaje>
+\relax
+\encoding
+
+%% Define the parameters to produce a font with old-style figures
+\setcommand\digit#1{#1oldstyle}
+
+\inputetx{t1aae}
+
+\endencoding
+%</t1aaje>
+% \end{macrocode}
+%
+% The eighteenth-century variant with old-style figures and extra ligatures.
+%
+% \begin{macrocode}
+%<*t1aa8je>
+\relax
+\encoding
+
+%% Define the parameters to produce a font with old-style figures
+\setcommand\digit#1{#1oldstyle}
+
+\inputetx{t1aa8e}
+
+\endencoding
+%</t1aa8je>
+% \end{macrocode}
+%
+%\subsection{Font definitions}
+%
+% We define the ornament and swash font encodings directly, in files
+% from Ulrik Vieth's \textsf{pacaslon} package.
+%
+%\subsection{Style File}
+%\label{sec:style}
+%
+%
+% Declare the package options:
+% \begin{macrocode}
+%<*style>
+\RequirePackage{kvoptions}
+\RequirePackage{ifthen}
+\def\adobecaslonf@ntsuffix{}
+\DeclareVoidOption{expert}{\def\adobecaslonf@ntsuffix{x}}
+\DeclareVoidOption{osf}{\def\adobecaslonf@ntsuffix{j}}
+\DeclareVoidOption{swashit}{\def\adobecaslonf@ntsuffix{w}}
+\DeclareVoidOption{alternate}{\def\adobecaslonf@ntsuffix{a}}
+\newif\ifadobecaslon@longs\adobecaslon@longsfalse
+\DeclareVoidOption{longs}{\def\adobecaslonf@ntsuffix{aa}\adobecaslon@longstrue}
+\newif\ifadobecaslon@eighteenth\adobecaslon@eighteenthfalse
+\DeclareVoidOption{c18th}{\def\adobecaslonf@ntsuffix{aa8}\adobecaslon@eighteenthtrue}
+\DeclareVoidOption{swashlongs}{\def\adobecaslonf@ntsuffix{aaw}}
+\DeclareBoolOption[false]{extraligs}
+\DeclareBoolOption[true]{rmdefault}
+\DeclareComplementaryOption{normdefault}{rmdefault}
+\DeclareStringOption[1.00]{scaled}
+\DeclareBoolOption{bold}
+\DeclareComplementaryOption{semibold}{bold}
+\ProcessKeyvalOptions*
+\def\adobecaslonf@ntextraligs{}
+\ifadobecaslon@extraligs
+ \def\adobecaslonf@ntextraligs{e}
+ \ifthenelse{\(\boolean{adobecaslon@longs}\OR\boolean{adobecaslon@eighteenth}\)}{%
+ \edef\adobecaslonf@ntsuffix{\adobecaslonf@ntsuffix e}}{}
+\fi
+\ifadobecaslon@rmdefault
+ \renewcommand{\rmdefault}{pac\adobecaslonf@ntsuffix}
+ \ifadobecaslon@bold\else
+ \def\bfdefault{sb}
+ \fi
+\fi
+% \end{macrocode}
+%
+%
+% Some new commands:
+% \begin{macrocode}
+\DeclareRobustCommand\adobecaslonfamily{\fontfamily{pac}\selectfont}
+\DeclareTextFontCommand{\textadobecaslon}{\adobecaslonfamily}
+\DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont}
+\DeclareTextFontCommand{\textsb}{\sbseries}
+\DeclareRobustCommand\adobecaslonexpert{\fontfamily{pacx}\selectfont}
+\DeclareRobustCommand\adobecaslonosf{\fontfamily{pacj}\selectfont}
+\DeclareRobustCommand\adobecaslonalternate{\fontfamily{paca}\selectfont}
+\DeclareRobustCommand\adobecaslonlongs{\fontfamily{pacaa\adobecaslonf@ntextraligs}\selectfont}
+\DeclareRobustCommand\adobecasloneighteenth{\fontfamily{pacaa8\adobecaslonf@ntextraligs}\selectfont}
+\DeclareRobustCommand\adobecaslonswashit{\usefont{T1}{pacw}{\f@series}{it}}
+\DeclareRobustCommand\adobecaslonswashcaps{\usefont{U}{pac}{\f@series}{iw}}
+\DeclareRobustCommand\adobecaslonornaments{\usefont{U}{pac}{m}{n}}
+%</style>
+% \end{macrocode}
+%
+%\subsection{Example output}
+%
+% A file with slight variants for core and expert fonts:
+%
+%<*pac-sample,pac-sample-expert,pac-sample-extraligs>
+% \begin{macrocode}
+\documentclass{article}
+
+\usepackage[T1]{fontenc}
+\usepackage{ifpdf}
+\ifpdf
+ \pdfmapfile{+pac.map}
+ \usepackage{microtype}
+\fi
+%<pac-sample>\usepackage[bold]{adobecaslon}
+%<pac-sample-expert>\usepackage[expert,bold]{adobecaslon}
+%<pac-sample-extraligs>\usepackage[extraligs,expert,bold]{adobecaslon}
+\usepackage{textcomp}
+\usepackage{lipsum}
+\usepackage{slantsc}
+
+%<pac-sample>\newcommand{\sampletext}{0123456789. fi, ffi, \textsc{small caps}.}
+%<pac-sample-expert,pac-sample-extraligs>\newcommand{\sampletext}{0123456789 {\adobecaslonosf 0123456789}. fi, ffi, \textsc{small caps}, {\adobecaslonalternate ct st}.}
+
+\begin{document}
+
+Adobe Caslon Regular: \sampletext
+
+{\itshape Adobe Caslon Italic: \sampletext}
+
+{\sbseries Adobe Caslon Semibold: \sampletext
+
+\itshape Adobe Caslon Semibold Italic: \sampletext}
+
+
+{\bfseries Adobe Caslon Bold: \sampletext
+
+\itshape Adobe Caslon Bold Italic: \sampletext}
+
+
+Package \textsf{textcomp} allows us to typeset currencies: \texteuro25.00,
+\pounds4.5, \textdollar6, \textyen4.
+
+%</pac-sample,pac-sample-expert,pac-sample-extraligs>
+%<*pac-sample-expert,pac-sample-extraligs>
+{\adobecaslonlongs Some words with long `s': dress splice slice strife finesse sift shine session tussle stints.
+
+A long line with splits-seen and a word to be hyphenated and should long: shes\-ellsseashells.
+
+A long line with splits-seen and a word to be hyphenated and should long: shes\noboundary\-ellsseashells.}
+
+{\adobecaslonswashit Some swash italics.}
+
+Swash caps: {\adobecaslonswashcaps SQT}.
+
+Ornaments: {\adobecaslonornaments 123ABCabc}.
+
+18th-century mode: {\adobecasloneighteenth dress, kasbah, shake, sforza, fsork, ska}.
+
+%</pac-sample-expert,pac-sample-extraligs>
+%<*pac-sample,pac-sample-expert,pac-sample-extraligs>
+\lipsum[1]
+
+\end{document}
+% \end{macrocode}
+%</pac-sample,pac-sample-expert,pac-sample-extraligs>
+%
+%\Finale
+%\clearpage
+%
+%\PrintChanges
+%\clearpage
+%\PrintIndex
+%
+\endinput
diff --git a/texmf-dist/source/latex/adobecaslon/adobecaslon.gls b/texmf-dist/source/latex/adobecaslon/adobecaslon.gls
new file mode 100644
index 00000000..03e75376
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/adobecaslon.gls
@@ -0,0 +1,12 @@
+
+ \begin{theglossary}
+
+ \makeatletter\scan@allowedfalse
+
+ \item v2.0\efill
+ \subitem General:\ Expert fonts added (Reuben Thomas)\pfill \hdpindex{}{7}
+ \item v2.1\efill
+ \subitem General:\ Bug fixes, TS1 encoding added for a number of fonts (Reuben Thomas)\pfill
+ \hdpindex{}{7}
+
+ \end{theglossary}
diff --git a/texmf-dist/source/latex/adobecaslon/adobecaslon.ins b/texmf-dist/source/latex/adobecaslon/adobecaslon.ins
new file mode 100644
index 00000000..e42c25cd
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/adobecaslon.ins
@@ -0,0 +1,79 @@
+%
+% Docstrip file for adobecaslon
+% This file is in the public domain
+%
+\def\batchfile{adobecaslon.ins}
+\input docstrip
+\keepsilent
+\showprogress
+\preamble
+Copyright (c) 1996, Ulrik Vieth
+Copyright (c) 2012, Boris Veytsman
+Copyright (c) 2013-2016, Reuben Thomas
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of the original author nor the names of the
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+\endpreamble
+
+\askforoverwritefalse
+
+\generate{%
+ \file{adobecaslon.sty}{\from{adobecaslon.dtx}{style}}%
+ \file{pac-drv.tex}{\from{adobecaslon.dtx}{pac-drv}}%
+ \file{pac-expert-drv.tex}{\from{adobecaslon.dtx}{pac-expert-drv}}%
+ \file{pac-extraligs-drv.tex}{\from{adobecaslon.dtx}{pac-extraligs-drv}}%
+ \file{pac-map.tex}{\from{adobecaslon.dtx}{pac-map}}
+ \file{pac-sample.tex}{\from{adobecaslon.dtx}{pac-sample}}%
+ \file{pac-sample-expert.tex}{\from{adobecaslon.dtx}{pac-sample-expert}}%
+ \file{pac-sample-extraligs.tex}{\from{adobecaslon.dtx}{pac-sample-extraligs}}%
+ \file{newlatina.mtx}{\from{adobecaslon.dtx}{newlatina}}%
+ \file{newlatinasc.mtx}{\from{adobecaslon.dtx}{newlatinasc}}%
+ \file{newlatinaa.mtx}{\from{adobecaslon.dtx}{newlatinaa}}%
+ \file{newlatinaasc.mtx}{\from{adobecaslon.dtx}{newlatinaasc}}%
+ \file{newlatinaa8.mtx}{\from{adobecaslon.dtx}{newlatinaa8}}%
+ \file{newlatinaa8sc.mtx}{\from{adobecaslon.dtx}{newlatinaa8sc}}%
+ \file{newlatinaae.mtx}{\from{adobecaslon.dtx}{newlatinaae}}%
+ \file{newlatinaaesc.mtx}{\from{adobecaslon.dtx}{newlatinaaesc}}%
+ \file{newlatinaa8e.mtx}{\from{adobecaslon.dtx}{newlatinaa8e}}%
+ \file{newlatinaa8esc.mtx}{\from{adobecaslon.dtx}{newlatinaa8esc}}%
+ \file{oldstyle-kerning.mtx}{\from{adobecaslon.dtx}{oldstyle-kerning}}%
+ \file{longs-kerning.mtx}{\from{adobecaslon.dtx}{longs-kerning}}%
+ \file{longdbls-kerning.mtx}{\from{adobecaslon.dtx}{longdbls-kerning}}%
+ \file{longss-glyph.mtx}{\from{adobecaslon.dtx}{longss-glyph}}%
+ \file{longss-glyph-sc.mtx}{\from{adobecaslon.dtx}{longss-glyph-sc}}%
+ \file{longss-kerning.mtx}{\from{adobecaslon.dtx}{longss-kerning}}%
+ \file{longss-kerning-sc.mtx}{\from{adobecaslon.dtx}{longss-kerning-sc}}%
+ \file{t1aj.etx}{\from{adobecaslon.dtx}{t1aj}}%
+ \file{t1aaj.etx}{\from{adobecaslon.dtx}{t1aaj}}%
+ \file{t1aa8j.etx}{\from{adobecaslon.dtx}{t1aa8j}}%
+ \file{t1aaje.etx}{\from{adobecaslon.dtx}{t1aaje}}%
+ \file{t1aa8je.etx}{\from{adobecaslon.dtx}{t1aa8je}}%
+}
diff --git a/texmf-dist/source/latex/adobecaslon/t1a.etx.diff b/texmf-dist/source/latex/adobecaslon/t1a.etx.diff
new file mode 100644
index 00000000..3af5faf1
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/t1a.etx.diff
@@ -0,0 +1,46 @@
+--- t1.etx 2013-08-03 22:10:21.446272380 +0100
++++ t1a.etx 2013-08-03 21:48:52.369647944 +0100
+@@ -752,6 +752,7 @@
+ \ifnumber{\int{ligaturing}}<{-1}\then \skipslots{1}\Else
+
+ \setslot{\lc{C}{c}}
++ \ligature{LIG}{\lc{T}{t}}{ct}
+ \comment{The letter `{c}'.}
+ \endsetslot
+
+@@ -833,6 +834,7 @@
+ \ifnumber{\int{ligaturing}}<{-1}\then \skipslots{1}\Else
+
+ \setslot{\lc{S}{s}}
++ \ligature{LIG}{\lc{T}{t}}{st}
+ \comment{The letter `{s}'.}
+ \endsetslot
+
+@@ -943,8 +945,11 @@
+ \comment{The letter `\v N'.}
+ \endsetslot
+
+-\setslot{\uc{Ng}{ng}}
+- \comment{The Sami letter `\NG'. It is unavailable in \plain\ \TeX.}
++% \setslot{\uc{Ng}{ng}}
++% \comment{The Sami letter `\NG'. It is unavailable in \plain\ \TeX.}
++% \endsetslot
++\setslot{ct}
++ \comment{The `old style' ligature ct}
+ \endsetslot
+
+ \setslot{\uctop{Ohungarumlaut}{ohungarumlaut}}
+@@ -1076,8 +1081,11 @@
+ \comment{The letter `\v n'.}
+ \endsetslot
+
+-\setslot{\lc{Ng}{ng}}
+- \comment{The Sami letter `\ng'. It is unavailable in \plain\ \TeX.}
++% \setslot{\lc{Ng}{ng}}
++% \comment{The Sami letter `\ng'. It is unavailable in \plain\ \TeX.}
++% \endsetslot
++\setslot{st}
++ \comment{The `old style' ligature st}
+ \endsetslot
+
+ \setslot{\lctop{Ohungarumlaut}{ohungarumlaut}}
diff --git a/texmf-dist/source/latex/adobecaslon/t1aa.etx.diff b/texmf-dist/source/latex/adobecaslon/t1aa.etx.diff
new file mode 100644
index 00000000..c2a9d413
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/t1aa.etx.diff
@@ -0,0 +1,178 @@
+--- t1a.etx 2014-03-31 00:58:21.418830227 +0100
++++ t1aa.etx 2014-03-31 01:03:10.011488658 +0100
+@@ -408,11 +408,23 @@
+ It is used to stop ligaturing in words like `shelf{}ful'.}
+ \endsetslot
+
+-\setslot{perthousandzero}
+- \comment{A glyph which is placed after `\%' to produce a
+- `per-thousand', or twice to produce `per-ten-thousand'.
+- Your guess is as good as mine as to what this glyph should look
+- like in a monowidth font.}
++% \setslot{perthousandzero}
++% \comment{A glyph which is placed after `\%' to produce a
++% `per-thousand', or twice to produce `per-ten-thousand'.
++% Your guess is as good as mine as to what this glyph should look
++% like in a monowidth font.}
++% \endsetslot
++\setslot{longdbls}
++ \ligature{LIG}{visiblespace}{germandbls}
++ \ligature{LIG/}{comma}{germandbls}
++ \ligature{LIG/}{period}{germandbls}
++ \ligature{LIG/}{colon}{germandbls}
++ \ligature{LIG/}{semicolon}{germandbls}
++ \ligature{LIG/}{question}{germandbls}
++ \ligature{LIG/}{exclam}{germandbls}
++ \ligature{LIG/}{parenright}{germandbls}
++ \ligature{LIG/}{quoteright}{germandbls}
++ \comment{The ligature `long s' `long s'.}
+ \endsetslot
+
+ \setslot{\lc{dotlessI}{dotlessi}}
+@@ -420,9 +432,12 @@
+ `\=\i'.}
+ \endsetslot
+
+-\setslot{\lc{dotlessJ}{dotlessj}}
+- \comment{A dotless j `\j', used to produce accented letters such as
+- `\=\j'. Most non-\TeX\ fonts do not have this glyph.}
++% \setslot{\lc{dotlessJ}{dotlessj}}
++% \comment{A dotless j `\j', used to produce accented letters such as
++% `\=\j'. Most non-\TeX\ fonts do not have this glyph.}
++% \endsetslot
++\setslot{longsl}
++ \comment{The ligature `long s' `{l}'.}
+ \endsetslot
+
+ \ifnumber{\int{ligaturing}}<{0}\then \skipslots{5}\Else
+@@ -459,6 +474,7 @@
+ \Fi
+
+ \setslot{visiblespace}
++ \makerightboundary{rightboundarychar}
+ \comment{A visible space glyph `\textvisiblespace'.}
+ \endsetslot
+
+@@ -467,12 +483,15 @@
+ \comment{The exclamation mark `!'.}
+ \endsetslot
+
+-\setslot{quotedbl}
+- \comment{The `neutral' double quotation mark `\,\textquotedbl\,',
+- included for use in monowidth fonts, or for setting computer
+- programs. Note that the inclusion of this glyph in this slot
+- means that \TeX\ documents which used `{\tt\char`\"}' as an
+- input character will no longer work.}
++% \setslot{quotedbl}
++% \comment{The `neutral' double quotation mark `\,\textquotedbl\,',
++% included for use in monowidth fonts, or for setting computer
++% programs. Note that the inclusion of this glyph in this slot
++% means that \TeX\ documents which used `{\tt\char`\"}' as an
++% input character will no longer work.}
++% \endsetslot
++\setslot{longsi}
++ \comment{The ligature `long s' `{i}'.}
+ \endsetslot
+
+ \setslot{numbersign}
+@@ -585,8 +604,12 @@
+ \comment{The less-than sign `\textless'.}
+ \endsetslot
+
+-\setslot{equal}
+- \comment{The equals sign `='.}
++% \setslot{equal}
++% \comment{The equals sign `='.}
++% \endsetslot
++\setslot{\lc{S}{s}}
++ \ligature{LIG}{\lc{T}{t}}{st}
++ \comment{The letter `{s}'.}
+ \endsetslot
+
+ \setslot{greater}
+@@ -723,10 +746,13 @@
+ \comment{The closing square bracket `]'.}
+ \endsetslot
+
+-\setslot{asciicircum}
+- \comment{The ASCII upward-pointing arrow head `\textasciicircum'.
+- This is included for compatibility with typewriter fonts used
+- for computer listings.}
++% \setslot{asciicircum}
++% \comment{The ASCII upward-pointing arrow head `\textasciicircum'.
++% This is included for compatibility with typewriter fonts used
++% for computer listings.}
++% \endsetslot
++\setslot{longst}
++ \comment{The ligature `long s' `{t}'.}
+ \endsetslot
+
+ \setslot{underscore}
+@@ -773,6 +799,7 @@
+ \ligature{LIG}{\lc{I}{i}}{\lclig{FI}{fi}}
+ \ligature{LIG}{\lc{F}{f}}{\lclig{FF}{ff}}
+ \ligature{LIG}{\lc{L}{l}}{\lclig{FL}{fl}}
++ \ligature{LIG/}{\lc{S}{longs}}{\lc{S}{s}}
+ \Fi
+ \comment{The letter `{f}'.}
+ \endsetslot
+@@ -831,14 +858,33 @@
+ \comment{The letter `{r}'.}
+ \endsetslot
+
+-\ifnumber{\int{ligaturing}}<{-1}\then \skipslots{1}\Else
+-
+- \setslot{\lc{S}{s}}
+- \ligature{LIG}{\lc{T}{t}}{st}
+- \comment{The letter `{s}'.}
+- \endsetslot
+-
+-\Fi
++% \ifnumber{\int{ligaturing}}<{-1}\then \skipslots{1}\Else
++%
++% \setslot{\lc{S}{s}}
++% \comment{The letter `{s}'.}
++% \endsetslot
++%
++% \Fi
++\setslot{\lc{S}{longs}}
++ \ligature{LIG}{visiblespace}{\lc{S}{s}}
++ \ligature{LIG}{\lc{S}{s}}{germandbls}
++ \ligature{LIG}{\lc{S}{longs}}{longdbls}
++ \ligature{LIG}{\lc{H}{h}}{longsh}
++ \ligature{LIG}{\lc{I}{i}}{longsi}
++ \ligature{LIG}{\lc{L}{l}}{longsl}
++ \ligature{LIG}{\lc{T}{t}}{longst}
++ \ligature{LIG/}{comma}{\lc{S}{s}}
++ \ligature{LIG/}{period}{\lc{S}{s}}
++ \ligature{LIG/}{colon}{\lc{S}{s}}
++ \ligature{LIG/}{semicolon}{\lc{S}{s}}
++ \ligature{LIG/}{question}{\lc{S}{s}}
++ \ligature{LIG/}{exclam}{\lc{S}{s}}
++ \ligature{LIG/}{parenright}{\lc{S}{s}}
++ \ligature{LIG/}{quoteright}{\lc{S}{s}}
++ \ligature{LIG/}{hyphen}{\lc{S}{s}}
++ \ligature{LIG/}{\lc{F}{f}}{\lc{S}{s}}
++ \comment{The letter `long s'.}
++\endsetslot
+
+ \setslot{\lc{T}{t}}
+ \comment{The letter `{t}'.}
+@@ -882,10 +928,13 @@
+ \comment{The closing curly brace `\textbraceright'.}
+ \endsetslot
+
+-\setslot{asciitilde}
+- \comment{The ASCII tilde `\textasciitilde'.
+- This is included for compatibility with typewriter fonts used
+- for computer listings.}
++% \setslot{asciitilde}
++% \comment{The ASCII tilde `\textasciitilde'.
++% This is included for compatibility with typewriter fonts used
++% for computer listings.}
++% \endsetslot
++\setslot{longsh}
++ \comment{The ligature `long s' `{h}'.}
+ \endsetslot
+
+ \setslot{hyphenchar}
diff --git a/texmf-dist/source/latex/adobecaslon/t1aa8.etx.diff b/texmf-dist/source/latex/adobecaslon/t1aa8.etx.diff
new file mode 100644
index 00000000..cdbe3b8b
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/t1aa8.etx.diff
@@ -0,0 +1,59 @@
+--- t1aa.etx 2014-03-31 23:14:29.232681855 +0100
++++ t1aa8.etx 2014-03-31 23:14:29.232681855 +0100
+@@ -415,15 +415,15 @@
+ % like in a monowidth font.}
+ % \endsetslot
+ \setslot{longdbls}
+- \ligature{LIG}{visiblespace}{germandbls}
+- \ligature{LIG/}{comma}{germandbls}
+- \ligature{LIG/}{period}{germandbls}
+- \ligature{LIG/}{colon}{germandbls}
+- \ligature{LIG/}{semicolon}{germandbls}
+- \ligature{LIG/}{question}{germandbls}
+- \ligature{LIG/}{exclam}{germandbls}
+- \ligature{LIG/}{parenright}{germandbls}
+- \ligature{LIG/}{quoteright}{germandbls}
++ \ligature{LIG}{visiblespace}{longss}
++ \ligature{LIG/}{comma}{longss}
++ \ligature{LIG/}{period}{longss}
++ \ligature{LIG/}{colon}{longss}
++ \ligature{LIG/}{semicolon}{longss}
++ \ligature{LIG/}{question}{longss}
++ \ligature{LIG/}{exclam}{longss}
++ \ligature{LIG/}{parenright}{longss}
++ \ligature{LIG/}{quoteright}{longss}
+ \comment{The ligature `long s' `long s'.}
+ \endsetslot
+
+@@ -867,7 +867,7 @@
+ % \Fi
+ \setslot{\lc{S}{longs}}
+ \ligature{LIG}{visiblespace}{\lc{S}{s}}
+- \ligature{LIG}{\lc{S}{s}}{germandbls}
++ \ligature{LIG}{\lc{S}{s}}{longss}
+ \ligature{LIG}{\lc{S}{longs}}{longdbls}
+ \ligature{LIG}{\lc{H}{h}}{longsh}
+ \ligature{LIG}{\lc{I}{i}}{longsi}
+@@ -883,6 +883,8 @@
+ \ligature{LIG/}{quoteright}{\lc{S}{s}}
+ \ligature{LIG/}{hyphen}{\lc{S}{s}}
+ \ligature{LIG/}{\lc{F}{f}}{\lc{S}{s}}
++ \ligature{LIG/}{\lc{B}{b}}{\lc{S}{s}}
++ \ligature{LIG/}{\lc{K}{k}}{\lc{S}{s}}
+ \comment{The letter `long s'.}
+ \endsetslot
+
+@@ -1478,8 +1480,11 @@
+ in \plain\ \TeX.}
+ \endsetslot
+
+-\setslot{\lc{SS}{germandbls}}
+- \comment{The letter `\ss'.}
++% \setslot{\lc{SS}{germandbls}}
++% \comment{The letter `\ss'.}
++% \endsetslot
++\setslot{\lclig{SS}{longss}}
++ \comment{The ligature `long s' `{s}'.}
+ \endsetslot
+
+ \endencoding
diff --git a/texmf-dist/source/latex/adobecaslon/t1aa8e.etx.diff b/texmf-dist/source/latex/adobecaslon/t1aa8e.etx.diff
new file mode 100644
index 00000000..4381bc24
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/t1aa8e.etx.diff
@@ -0,0 +1,49 @@
+--- t1aa8.etx 2014-03-31 23:14:29.232681855 +0100
++++ t1aa8e.etx 2014-03-31 01:03:15.943748856 +0100
+@@ -424,6 +424,8 @@
+ \ligature{LIG/}{exclam}{longss}
+ \ligature{LIG/}{parenright}{longss}
+ \ligature{LIG/}{quoteright}{longss}
++ \ligature{LIG}{\lc{I}{i}}{longdblsi}
++ \ligature{LIG}{\lc{l}{l}}{longdblsl}
+ \comment{The ligature `long s' `long s'.}
+ \endsetslot
+
+@@ -755,11 +757,14 @@
+ \comment{The ligature `long s' `{t}'.}
+ \endsetslot
+
+-\setslot{underscore}
+- \comment{The ASCII underline character `\textunderscore', usually
+- set on the baseline.
+- This is included for compatibility with typewriter fonts used
+- for computer listings.}
++% \setslot{underscore}
++% \comment{The ASCII underline character `\textunderscore', usually
++% set on the baseline.
++% This is included for compatibility with typewriter fonts used
++% for computer listings.}
++% \endsetslot
++\setslot{longdblsi}
++ \comment{The ligature `long s' `long s' `{i}'.}
+ \endsetslot
+
+ \setslot{quoteleft}
+@@ -920,10 +925,13 @@
+ \comment{The opening curly brace `\textbraceleft'.}
+ \endsetslot
+
+-\setslot{bar}
+- \comment{The ASCII vertical bar `\textbar'.
+- This is included for compatibility with typewriter fonts used
+- for computer listings.}
++% \setslot{bar}
++% \comment{The ASCII vertical bar `\textbar'.
++% This is included for compatibility with typewriter fonts used
++% for computer listings.}
++% \endsetslot
++\setslot{longdblsl}
++ \comment{The ligature `long s' `long s' `{l}'.}
+ \endsetslot
+
+ \setslot{braceright}
diff --git a/texmf-dist/source/latex/adobecaslon/t1aae.etx.diff b/texmf-dist/source/latex/adobecaslon/t1aae.etx.diff
new file mode 100644
index 00000000..b5a6c640
--- /dev/null
+++ b/texmf-dist/source/latex/adobecaslon/t1aae.etx.diff
@@ -0,0 +1,49 @@
+--- t1aa.etx 2014-03-31 23:14:29.232681855 +0100
++++ t1aae.etx 2014-03-31 01:03:15.939748681 +0100
+@@ -424,6 +424,8 @@
+ \ligature{LIG/}{exclam}{germandbls}
+ \ligature{LIG/}{parenright}{germandbls}
+ \ligature{LIG/}{quoteright}{germandbls}
++ \ligature{LIG}{\lc{I}{i}}{longdblsi}
++ \ligature{LIG}{\lc{l}{l}}{longdblsl}
+ \comment{The ligature `long s' `long s'.}
+ \endsetslot
+
+@@ -755,11 +757,14 @@
+ \comment{The ligature `long s' `{t}'.}
+ \endsetslot
+
+-\setslot{underscore}
+- \comment{The ASCII underline character `\textunderscore', usually
+- set on the baseline.
+- This is included for compatibility with typewriter fonts used
+- for computer listings.}
++% \setslot{underscore}
++% \comment{The ASCII underline character `\textunderscore', usually
++% set on the baseline.
++% This is included for compatibility with typewriter fonts used
++% for computer listings.}
++% \endsetslot
++\setslot{longdblsi}
++ \comment{The ligature `long s' `long s' `{i}'.}
+ \endsetslot
+
+ \setslot{quoteleft}
+@@ -918,10 +923,13 @@
+ \comment{The opening curly brace `\textbraceleft'.}
+ \endsetslot
+
+-\setslot{bar}
+- \comment{The ASCII vertical bar `\textbar'.
+- This is included for compatibility with typewriter fonts used
+- for computer listings.}
++% \setslot{bar}
++% \comment{The ASCII vertical bar `\textbar'.
++% This is included for compatibility with typewriter fonts used
++% for computer listings.}
++% \endsetslot
++\setslot{longdblsl}
++ \comment{The ligature `long s' `long s' `{l}'.}
+ \endsetslot
+
+ \setslot{braceright}