summaryrefslogtreecommitdiff
path: root/texmf-dist/doc/latex/futurans/futurans.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'texmf-dist/doc/latex/futurans/futurans.dtx')
-rw-r--r--texmf-dist/doc/latex/futurans/futurans.dtx658
1 files changed, 658 insertions, 0 deletions
diff --git a/texmf-dist/doc/latex/futurans/futurans.dtx b/texmf-dist/doc/latex/futurans/futurans.dtx
new file mode 100644
index 00000000..86ecd33a
--- /dev/null
+++ b/texmf-dist/doc/latex/futurans/futurans.dtx
@@ -0,0 +1,658 @@
+% \iffalse
+% $Id: futurans.dtx,v 1.20 2008-03-21 16:09:46 boris Exp $
+%
+% Copyright (c) 2008, Boris Veytsman
+%
+% 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{499}
+%
+%
+%% \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
+% Taken from xkeyval.dtx
+%\fi
+%\makeatletter
+%\def\DescribeOption#1{\leavevmode\@bsphack
+% \marginpar{\raggedleft\PrintDescribeOption{#1}}%
+% \SpecialOptionIndex{#1}\@esphack\ignorespaces}
+%\def\PrintDescribeOption#1{\strut\emph{option}\\\MacroFont #1\ }
+%\def\SpecialOptionIndex#1{\@bsphack
+% \index{#1\actualchar{\protect\ttfamily#1}
+% (option)\encapchar usage}%
+% \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar
+% usage}\@esphack}
+%\def\DescribeOptions#1{\leavevmode\@bsphack
+% \marginpar{\raggedleft\strut\emph{options}%
+% \@for\@tempa:=#1\do{%
+% \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa
+% }}\@esphack\ignorespaces}
+%\makeatother
+%
+%
+% \MakeShortVerb{|}
+% \GetFileInfo{futurans.dtx}
+% \title{\LaTeX{} Support For Futura Fonts From Adobe As Used By No
+% Starch Press}
+% \author{Boris Veytsman\thanks{%
+% \href{mailto:borisv@lk.net}{\texttt{borisv@lk.net}},
+% \href{mailto:boris@varphi.com}{\texttt{boris@varphi.com}}}}
+% \date{\filedate, \fileversion}
+% \maketitle
+% \begin{abstract}
+% This package provides \LaTeX{} support for the Futura fonts from
+% Adobe (the version currently used by No Starch Press). It has
+% everything you need to typeset in these fonts - except the font
+% itself, of course.
+% \end{abstract}
+% \tableofcontents
+%
+% \changes{v1.0}{2008/02/18}{First fully functional version}
+% \changes{v1.0a}{2008/02/21}{Documentation update}
+% \changes{v1.0b}{2008/02/25}{Installation update}
+% \changes{v1.1}{2008/02/26}{Added light condensed letterspaced, bold
+% compressed and heavy compressed fonts}
+% \changes{v1.3}{2008/03/20}{Documentation update}
+% \changes{v1.3}{2008/03/20}{Added medium letterspaced and heavy
+% letterspaced fonts}
+% \clearpage
+%
+%
+%\section{Introduction}
+%\label{sec:intro}
+%
+% This package provides support files for the Futura Font family from
+% Adobe. According to the Fontname scheme~\cite{fontname} it
+% corresponds to the family |pfu|. There is a package on CTAN
+% supporting these fonts~\cite{w-a-schmidt}. Unfortunately the AFM
+% files provided by it seems to be slightly different from the ones
+% used by \emph{No Starch Press,} \url{http://www.nostarch.com}. The
+% analysis of the copyright statements shows that Walter Schmidt's
+% fonts are newer than ours (the latter are dated 1987). To prevent
+% clash with his |pfu| package, I chose the name |pfv| for this
+% release.
+%
+% This package is released under BSD license to make updating the
+% fonts metrics easier.
+%
+% The support is limited to T1 and TS1 encoding. No VTeX support
+% files are included.
+%
+%
+%\section{Installation}
+%\label{sec:install}
+%
+%
+%
+% First, you need to purchase the fonts themselves: the |pfb| files
+% are \emph{not} included in the package. If you got the fonts from
+% \emph{No Starch press,} do not rename the |pfb| files. However, if
+% there are uppercase letters in your file names, downcase them. If
+% you obtained the files from another source, rename the fonts
+% according to Table~\ref{tab:PFB}. If your \TeX{} system is
+% TDS-compliant, install the files into
+% \path{$TEXMF/fonts/type1/public/futurans}. Then download
+% \url{http://ctan.tug.org/install/fonts/psfonts/adobe/futurans.tds.zip}
+% and unzip this file in \path{$TEXMF}. Add |+pfv.map| to the
+% configuration files of dvips, pdftex and your dvi previewer.
+%
+%
+% Run updmap and texhash programs to update the configuration files
+% and file names database.
+%
+%
+%
+% \begin{table}[tp]
+% \centering
+% \caption{PFB Files}
+% \label{tab:PFB}
+%
+% \begin{tabular}{lll}
+% \toprule
+% File & Font & NFSS Code\\
+% \midrule
+% |futucl13.pfb| & Futura Condensed Light & |lc|\\
+% |futurc83.pfb| & Futura Condensed Medium & |mc|\\
+% |futucb18.pfb| & Futura Condensed Bold & |bc|\\
+% |futceb44.pfb| & Futura Condensed Extra Bold & |ebc|\\
+% |futurl82.pfb| & Futura Light & |l|\\
+% |futura.pfb| & Futura Medium & |m|\\
+% |futurb37.pfb| & Futura Book & |k|\\
+% |futurb41.pfb| & Futura Bold & |b|\\
+% |futurh79.pfb| & Futura Heavy & |h|\\
+% \bottomrule
+% \end{tabular}
+%
+% \end{table}
+%
+%
+%\section{Using \LaTeX{} Style }
+%\label{sec:futurans.sty}
+%
+% The package supplies a number of fonts. The series are listed in
+% Table~\ref{tab:PFB}. Each fonts has normal, slanted (oblique) and
+% small caps version. There are additional series necessary to typeset
+% books in \emph{No Starch Press} style. They were generated using
+% Fontinst~\cite{Jeffrey04:Fontinst}. These series are available for
+% Roman fonts only and are listed in Table~\ref{tab:addseries}. To
+% select any font, issue the corresponding NFSS command, for example
+% |\fontfamily{pfv}\fontseries{ebc}\selectfont|. To use make the font
+% the default sans serif font you may add |\usepackage{futurans}| to
+% your preamble.
+%
+% \begin{table}[tp]
+% \centering
+%
+% \caption{Additional Font Series Available}
+% \label{tab:addseries}
+% \begin{tabular}{ll}
+% \toprule
+% NFSS Code & Font\\
+% \midrule
+% |lq| & Futura Light Letterspaced (10\% spread)\\
+% |mq| & Futura Medium Letterspaced (10\% spread)\\
+% |bq| & Futura Bold Letterspaced (10\% spread)\\
+% |hq| & Futura Heavy Letterspaced (10\% spread)\\
+% |bp| & Futura Bold Extra Compressed (110\% stretched Condensed)\\
+% |hp| & Futura Heavy Compressed (90\% shrunk Heavy)\\
+% \bottomrule
+% \end{tabular}
+%
+% \end{table}
+%
+%
+% \DescribeOption{scaled}
+% If you mix Futura with other fonts, you may want to scale it to get
+% better blending of Sans Serif with Roman. The package option |scaled|
+% can be used for this, for example
+% |\usepackage[scaled=0.95]{futurans}|.
+%
+%
+%
+%
+% \StopEventually{
+% \clearpage
+% \paragraph{Acknowledgement}
+% This package was written for No Starch Press,
+% \url{http://www.nostarch.com}.
+%
+% \bibliography{futurans}
+% \bibliographystyle{unsrt}}
+%
+% \clearpage
+%\section{Implementation}
+%\label{sec:impl}
+%
+%\subsection{Identification}
+%\label{sec:ident}
+%
+% We start with the declaration who we are. Most |.dtx| files put
+% driver code in a separate driver file |.drv|. We roll this code into the
+% main file, and use the pseudo-guard |<gobble>| for it.
+% \begin{macrocode}
+%<style>\NeedsTeXFormat{LaTeX2e}
+%<*gobble>
+\ProvidesFile{futurans.dtx}
+%</gobble>
+%<style>\ProvidesClass{futurans}
+%<pfv-drv>\ProvidesFile{pfv-drv.tex}
+%<pfv-map>\ProvidesFile{pfv-map.tex}
+%<*!t1q&!ts1q>
+[2008/03/20 v1.3 Using Futura Fonts in LaTeX]
+%</!t1q&!ts1q>
+% \end{macrocode}
+% And the driver code:
+% \begin{macrocode}
+%<*gobble>
+\documentclass{ltxdoc}
+\usepackage{booktabs}
+\usepackage{url}
+\usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black,
+ pagecolor=black,urlcolor=black,hyperindex=false]{hyperref}
+\PageIndex
+\CodelineIndex
+\RecordChanges
+\EnableCrossrefs
+\begin{document}
+ \DocInput{futurans.dtx}
+\end{document}
+%</gobble>
+% \end{macrocode}
+%
+%
+%\subsection{Fontinst Driver}
+%\label{sec:drv}
+%
+% This follows~\cite{fontinstallationguide}.
+%
+% First, the preamble
+% \begin{macrocode}
+%<*pfv-drv>
+\input fontinst.sty
+\setint{smallcapsscale}{750}
+\setint{slant}{167}
+\substitutesilent{bx}{b}
+% \end{macrocode}
+%
+%
+% \begin{macro}{bpscale}
+% \begin{macro}{hpscale}
+% \changes{v1.2}{2008/02/29}{Changed scaling}
+% We scale condensed bold condensed and heavy
+% fonts to get compressed fonts:
+% \begin{macrocode}
+\setint{bpscale}{1100}
+\setint{hpscale}{900}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{qspread}
+% \changes{v1.2}{2008/02/29}{Changed letterspacing}
+% We spread light to get light letterspaced:
+% \begin{macrocode}
+\setint{qspread}{50}
+% \end{macrocode}
+% \end{macro}
+%
+% Starting recording transforms:
+% \begin{macrocode}
+\recordtransforms{pfv-rec.tex}
+% \end{macrocode}
+%
+% Standard fonts:
+% \begin{macrocode}
+\transformfont{pfvl8rc}{\reencodefont{8r}{\fromafm{futucl13}}}
+\transformfont{pfvm8rc}{\reencodefont{8r}{\fromafm{futurc83}}}
+\transformfont{pfvb8rc}{\reencodefont{8r}{\fromafm{futucb18}}}
+\transformfont{pfvx8rc}{\reencodefont{8r}{\fromafm{futceb44}}}
+\transformfont{pfvl8r}{\reencodefont{8r}{\fromafm{futurl82}}}
+\transformfont{pfvm8r}{\reencodefont{8r}{\fromafm{futura}}}
+\transformfont{pfvk8r}{\reencodefont{8r}{\fromafm{futurb37}}}
+\transformfont{pfvb8r}{\reencodefont{8r}{\fromafm{futurb41}}}
+\transformfont{pfvh8r}{\reencodefont{8r}{\fromafm{futurh79}}}
+% \end{macrocode}
+%
+%
+% Oblique fonts (we do not have original Adobe Oblique fonts, so we
+% fake them):
+% \begin{macrocode}
+\transformfont{pfvlo8rc}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{futucl13}}}
+\transformfont{pfvmo8rc}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{futurc83}}}
+\transformfont{pfvbo8rc}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{futucb18}}}
+\transformfont{pfvxo8rc}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{futceb44}}}
+\transformfont{pfvlo8r}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{futurl82}}}
+\transformfont{pfvmo8r}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{futura}}}
+\transformfont{pfvko8r}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{futurb37}}}
+\transformfont{pfvbo8r}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{futurb41}}}
+\transformfont{pfvho8r}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{futurh79}}}
+% \end{macrocode}
+%
+%
+% Compressed fonts:
+% \begin{macrocode}
+\transformfont{pfvb8rp}{\xscalefont{\int{bpscale}}%
+ \reencodefont{8r}{\fromafm{futucb18}}}
+\transformfont{pfvh8rp}{\xscalefont{\int{hpscale}}%
+ \reencodefont{8r}{\fromafm{futurh79}}}
+% \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. OK, we will patch fontinst:
+% \begin{macrocode}
+\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
+ Fns@scale\string\endcsname\string\relax}
+ \out_line{\space\string\let\string\Fns@@scale\string\@empty}
+ \out_line{\string\else}
+ \out_line{\space\string\edef\string\Fns@@scale\left_brace_char
+ s*[\string\csname\space Fns@scale\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. Note the scaling code (taken
+% from PSNFSS packages). Also, we generate a lot of fake small caps
+% fonts.
+% \begin{macrocode}
+\installfonts
+\installfamily{T1}{pfv}{}
+\installfont{pfvl8tc}{pfvl8rc,newlatin}{t1}{T1}{pfv}{lc}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvm8tc}{pfvm8rc,newlatin}{t1}{T1}{pfv}{mc}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvb8tc}{pfvb8rc,newlatin}{t1}{T1}{pfv}{bc}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvx8tc}{pfvx8rc,newlatin}{t1}{T1}{pfv}{ebc}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8t}{pfvl8r,newlatin}{t1}{T1}{pfv}{l}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvm8t}{pfvm8r,newlatin}{t1}{T1}{pfv}{m}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvk8t}{pfvk8r,newlatin}{t1}{T1}{pfv}{k}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvb8t}{pfvb8r,newlatin}{t1}{T1}{pfv}{b}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvh8t}{pfvh8r,newlatin}{t1}{T1}{pfv}{h}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvb8tp}{pfvb8rp,newlatin}{t1}{T1}{pfv}{bp}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvh8tp}{pfvh8rp,newlatin}{t1}{T1}{pfv}{hp}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvlo8tc}{pfvlo8rc,newlatin}{t1}{T1}{pfv}{lc}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvmo8tc}{pfvmo8rc,newlatin}{t1}{T1}{pfv}{mc}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvbo8tc}{pfvbo8rc,newlatin}{t1}{T1}{pfv}{bc}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvxo8tc}{pfvxo8rc,newlatin}{t1}{T1}{pfv}{ebc}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvlo8t}{pfvlo8r,newlatin}{t1}{T1}{pfv}{l}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvmo8t}{pfvmo8r,newlatin}{t1}{T1}{pfv}{m}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvko8t}{pfvko8r,newlatin}{t1}{T1}{pfv}{k}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvbo8t}{pfvbo8r,newlatin}{t1}{T1}{pfv}{b}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvho8t}{pfvho8r,newlatin}{t1}{T1}{pfv}{h}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvlc8tc}{pfvl8rc,newlatin}{t1c}{T1}{pfv}{lc}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvmc8tc}{pfvm8rc,newlatin}{t1c}{T1}{pfv}{mc}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvbc8tc}{pfvb8rc,newlatin}{t1c}{T1}{pfv}{bc}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvxc8tc}{pfvx8rc,newlatin}{t1c}{T1}{pfv}{ebc}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvlc8t}{pfvl8r,newlatin}{t1c}{T1}{pfv}{l}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvmc8t}{pfvm8r,newlatin}{t1c}{T1}{pfv}{m}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvkc8t}{pfvk8r,newlatin}{t1c}{T1}{pfv}{k}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvbc8t}{pfvb8r,newlatin}{t1c}{T1}{pfv}{b}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvhc8t}{pfvh8r,newlatin}{t1c}{T1}{pfv}{h}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8tlq}{pfvl8r,newlatin}{t1q}{T1}{pfv}{lq}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8tmq}{pfvm8r,newlatin}{t1q}{T1}{pfv}{mq}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8tbq}{pfvb8r,newlatin}{t1q}{T1}{pfv}{bq}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8thq}{pfvh8r,newlatin}{t1q}{T1}{pfv}{hq}{n}{
+ <->\string\Fns@@scale}
+\endinstallfonts
+% \end{macrocode}
+%
+% And then TS1
+% \begin{macrocode}
+\installfonts
+\installfamily{TS1}{pfv}{}
+\installfont{pfvl8cc}{pfvl8rc,textcomp}{ts1}{TS1}{pfv}{lc}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvm8cc}{pfvm8rc,textcomp}{ts1}{TS1}{pfv}{mc}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvb8cc}{pfvb8rc,textcomp}{ts1}{TS1}{pfv}{bc}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvx8cc}{pfvx8rc,textcomp}{ts1}{TS1}{pfv}{ebc}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8c}{pfvl8r,textcomp}{ts1}{TS1}{pfv}{l}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvm8c}{pfvm8r,textcomp}{ts1}{TS1}{pfv}{m}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvk8c}{pfvk8r,textcomp}{ts1}{TS1}{pfv}{k}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvb8c}{pfvb8r,textcomp}{ts1}{TS1}{pfv}{b}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvh8c}{pfvh8r,textcomp}{ts1}{TS1}{pfv}{h}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvb8cp}{pfvb8rp,textcomp}{ts1}{TS1}{pfv}{bp}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvh8cp}{pfvh8rp,textcomp}{ts1}{TS1}{pfv}{hp}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvlo8cc}{pfvlo8rc,textcomp}{ts1}{TS1}{pfv}{lc}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvmo8cc}{pfvmo8rc,textcomp}{ts1}{TS1}{pfv}{mc}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvbo8cc}{pfvbo8rc,textcomp}{ts1}{TS1}{pfv}{bc}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvxo8cc}{pfvxo8rc,textcomp}{ts1}{TS1}{pfv}{ebc}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvlo8c}{pfvlo8r,textcomp}{ts1}{TS1}{pfv}{l}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvmo8c}{pfvmo8r,textcomp}{ts1}{TS1}{pfv}{m}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvko8c}{pfvko8r,textcomp}{ts1}{TS1}{pfv}{k}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvbo8c}{pfvbo8r,textcomp}{ts1}{TS1}{pfv}{b}{sl}{
+ <->\string\Fns@@scale}
+\installfont{pfvho8c}{pfvho8r,textcomp}{ts1}{TS1}{pfv}{h}{sl}{
+ <->\string\Fns@@scale}
+\installfontas{pfvl8cc}{TS1}{pfv}{lc}{sc}{
+ <->\string\Fns@@scale}
+\installfontas{pfvm8cc}{TS1}{pfv}{mc}{sc}{
+ <->\string\Fns@@scale}
+\installfontas{pfvb8cc}{TS1}{pfv}{bc}{sc}{
+ <->\string\Fns@@scale}
+\installfontas{pfvx8cc}{TS1}{pfv}{ebc}{sc}{
+ <->\string\Fns@@scale}
+\installfontas{pfvl8c}{TS1}{pfv}{l}{sc}{
+ <->\string\Fns@@scale}
+\installfontas{pfvm8c}{TS1}{pfv}{m}{sc}{
+ <->\string\Fns@@scale}
+\installfontas{pfvk8c}{TS1}{pfv}{k}{sc}{
+ <->\string\Fns@@scale}
+\installfontas{pfvb8c}{TS1}{pfv}{b}{sc}{
+ <->\string\Fns@@scale}
+\installfontas{pfvh8c}{TS1}{pfv}{h}{sc}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8clq}{pfvl8r,textcomp}{ts1q}{TS1}{pfv}{lq}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8cmq}{pfvm8r,textcomp}{ts1q}{TS1}{pfv}{mq}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8cbq}{pfvb8r,textcomp}{ts1q}{TS1}{pfv}{bq}{n}{
+ <->\string\Fns@@scale}
+\installfont{pfvl8chq}{pfvh8r,textcomp}{ts1q}{TS1}{pfv}{hq}{n}{
+ <->\string\Fns@@scale}
+\endinstallfonts
+% \end{macrocode}
+%
+% And the end:
+% \begin{macrocode}
+\endrecordtransforms
+\bye
+%</pfv-drv>
+% \end{macrocode}
+%
+%
+%\subsection{Letterspacing Driver}
+%\label{sec:letterspace}
+%
+% This follows~\cite{Hoenig98:TeXUnbound}. We need both |T1| and
+% |TS1| files:
+% \begin{macrocode}
+%<*t1q|ts1q>
+\relax
+\encoding
+\resetint{letterspacing}{\int{qspread}}
+\setcommand\gobblethree#1#2#3{}%
+\let\ligature=\gobblethree
+%<t1q>\inputetx{t1}
+%<ts1q>\inputetx{ts1}
+\endencoding
+%</t1q|ts1q>
+% \end{macrocode}
+%
+%
+%\subsection{Fontmap Generation}
+%\label{sec:fontmap}
+%
+% This is a standard procedure~\cite{fontinstallationguide}
+% \begin{macrocode}
+%<*pfv-map>
+\input finstmsc.sty
+\resetstr{PSfontsuffix}{.pfb}
+\adddriver{dvips}{pfv.map}
+\input pfv-rec.tex
+\donedrivers
+\bye
+%</pfv-map>
+% \end{macrocode}
+%
+%
+%
+%\subsection{Style File}
+%\label{sec:style}
+%
+%
+% The scaling code is from the |helvet| package:
+% \begin{macrocode}
+%<*style>
+\RequirePackage[T1]{fontenc}
+\RequirePackage{textcomp}
+\RequirePackage{keyval}
+\define@key{Futurans}{scaled}[1]{%
+ \def\Fns@scale{#1}}
+\def\ProcessOptionsWithKV#1{%
+ \let\@tempc\relax
+ \let\Fns@tempa\@empty
+ \ifx\@classoptionslist\relax\else
+ \@for\CurrentOption:=\@classoptionslist\do{%
+ \@ifundefined{KV@#1@\CurrentOption}%
+ {}%
+ {%
+ \edef\Fns@tempa{\Fns@tempa,\CurrentOption,}%
+ \@expandtwoargs\@removeelement\CurrentOption
+ \@unusedoptionlist\@unusedoptionlist
+ }%
+ }%
+ \fi
+ \edef\Fns@tempa{%
+ \noexpand\setkeys{#1}{%
+ \Fns@tempa\@ptionlist{\@currname.\@currext}%
+ }%
+ }%
+ \Fns@tempa
+ \let\CurrentOption\@empty
+}
+\ProcessOptionsWithKV{Futurans}
+\AtEndOfPackage{%
+ \let\@unprocessedoptions\relax
+}
+\renewcommand{\sfdefault}{pfv}
+%</style>
+% \end{macrocode}
+%
+%
+%\Finale
+%\clearpage
+%
+%\PrintChanges
+%\clearpage
+%\PrintIndex
+%
+\endinput