summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/cstex/kpfonts-plain.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/cstex/kpfonts-plain.tex')
-rw-r--r--Master/texmf-dist/doc/cstex/kpfonts-plain.tex618
1 files changed, 618 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/cstex/kpfonts-plain.tex b/Master/texmf-dist/doc/cstex/kpfonts-plain.tex
new file mode 100644
index 00000000000..ef22b6e69b4
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/kpfonts-plain.tex
@@ -0,0 +1,618 @@
+% KP-fonts in plain TeX
+%%%%%%%%%%%%%%%%%%%%%%%
+% Petr Olsak, May 2016
+
+% Use "pdftex kpfonts-plain" or "pdfcsplain kpfonts-plain" to create PDF
+% Process it three times because of Table of contents generation.
+
+\parindent=24pt
+\input opmac
+\input t1code
+\input kp-fonts
+
+\hyperlinks\Blue\Blue
+
+\def\printsec#1{\par \norempenalty-400 \bigskip
+ {\secfont \noindent
+ \hbox to\parindent{\dotocnum{\thetocnum}\hfil}#1\nbpar}\insertmark{#1}%
+ \nobreak \remskip\medskipamount \firstnoindent
+}
+\def\printsecc#1{\par \norempenalty-200 \bigskip
+ {\seccfont \noindent
+ \hbox to\parindent{\dotocnum{\thetocnum}\hfil}#1\nbpar}%
+ \nobreak \remskip\medskipamount \firstnoindent
+}
+\def\printbib{\hangindent=\iindent
+ \ifx\citelinkA\empty \noindent\hskip\iindent \llap{[\the\bibnum]\quad}%
+ \else \noindent \fi
+}
+
+\def\KPfonts{{\em kpfonts}}
+
+\def\bfshape{\sans\fam \let\tenit=\tenbi \boldmath \bf}
+\def\author#1\par{\centerline{\typosize[14.4/]\bfshape#1\unskip}\bigskip}
+\activettchar"
+
+\tit KP-fonts in plain \TeX{}
+
+\author Petr Ol\char178\char225k
+
+The very large font family \KPfonts{} \cite[kp-fonts] (by Christophe
+Caignaert) is known in \LaTeX{} world because there is the NFSS support for
+these fonts. There are many independent variations and features supported by
+the \KPfonts{}. This font family can be loaded in plain \TeX{} using
+"\input kp-fonts". Macros from \csplain{}~\cite[csplain] are used in this
+case. This article describes the main concept of the macros from \csplain{}
+which gives fonts support for plain \TeX{} users. A new feature of these
+macros (font modifiers) is implemented in \csplain{} from May 2016.
+
+The section \ref[kpfonts] in this article includes a documentation of
+\KPfonts{} if the family is loaded using "\input kp-fonts". This gives an
+illustration of power of \csplain{} font support. Finally, section \ref[ffmac]
+includes a basic notes for macro programmers.
+
+Note that all features of \csplain{} macros described here can be used in
+all common plain \TeX{} formats: generated by "etex.src" or Knuth's original
+plain \TeX{} format or \csplain{}. There is no substantial differences
+between them. Of course, \csplain{} preloads a basic set of macros (for
+resizing) in its format but if this isn't done then the little set of macros
+is read (from \csplain{} package) automatically and additionally.
+
+\nonum\notoc\sec Contents
+
+\maketoc
+
+\sec Font families in \csplain{} macros
+
+\secc Basics
+
+The main principle of font macros in \csplain{} is to keep the plain \TeX{}
+philosophy. This means:
+
+\begitems
+* use straightforward macros,
+* font-files (where a font family is loaded) use directly "\font" primitive,
+* leave core font macros for users "\rm", "\bf", and "\it" almost unchanged.
+\enditems
+
+User can set chosen font family by "\input font-file". The ``font-file'' loads
+typically four fonts of one family for usage in "\rm", "\bf", "\it" and
+"\bi" macros. But the font-file can give more possibilities using ``font
+modifiers'' (see bellow).
+
+The fonts in a font family can be selected by "\rm", "\bf", "\it" and "\bi"
+macros. These macros are defined similarly like in plain TeX:
+
+\begtt
+\def\rm{\fam0\tenrm} % in plain TeX: \def\rm{\fam\z@\tenrm}
+\def\bf{\fam\bffam \tenbf} % in plain TeX: \def\bf{\fam\bffam\tenbf}
+\def\it{\fam\itfam \tenit} % in plain TeX: \def\it{\fam\itfam\tenit}
+\def\bi{\fam\bifam \tenbi} % in plain TeX: undefined
+\endtt
+
+The macros above use native font selectors "\tenrm", "\tenbf", "\tenit" and
+"\tenbi" declared by "\font" primitive in the font-file. Once these four
+selectors are declared, they can be resized to arbitrary size. For example:
+
+\begtt
+\def\sizespec{at12pt}\resizeall
+\endtt
+%
+resizes the font selectors "\tenrm", "\tenbf", "\tenit" and "\tenbi" to 12\,pt
+with the same fonts (or with their appropriate optical modifications if they
+are available and "\dgsize" is set). The name "\ten.." is here only for
+historical reasons and it has nothing to do with real font size selected. For
+more information about resizing see the
+article \cite[tb-csplain] and comments in the file "csfontsm.tex" where this
+feature is implemented.
+
+User can use
+macros "\rm", "\bf", "\it", "\bi"\fnote
+ {Note that {\tt\string\tentt} is resized too, so {\tt\string\tt} macro can
+ be used in selected size too. And more font selectors can be resized when
+ macro programmer registers a font selector for resizing using
+ {\tt\string\regfont}.}
+in a selected size. A more comfortable user environment
+for resizing with macros "\typosize", "\typoscale" and "\thefontsize" is
+prepared in OPmac macro package \cite[opmac] which is a part of \csplain{} macros too.
+The OPmac macros for font resizing set all size-dependent internal parameters and
+sizes for math typesetting too.
+See section 2 in the OPmac documentation~\cite[opmac-doc].
+
+Summary: the meaning of "\tenrm", "\tenbf", "\tenit" and "\tenbi" selectors
+depends on context: on a font family chosen by "\input font-file" and on
+selected size.
+
+Users of NFSS from \LaTeX{} may ask: why there isn't a possibility of
+independent selectors for ``weight'' and ``shape''? The answer is: We need
+not it and we want to keep the plain \TeX{} simplicity. For example OPmac
+provides the "\em" macro for emphasizing. It works like "\rm->\it"
+"\it->\rm", "\bf->\bi", "\bi->\bf" and it adds the necessary italic
+corrections. User can define analogous simple macro if it is needed.
+
+
+\label[fontfam]\secc Prepared font files
+
+The font-files ready to use are packed to the \csplain{} package. You can
+select one line from the following list:
+
+\begtt
+\input lmfotns % Latin Moder fonts
+
+\input ctimes % Times font family
+\input chelvet % Helvetica font family
+\input cavantga % AvantGarde font family
+\input cbookman % Bookman font family
+\input cncent % NewCenturySchlbk font family
+\input cpalatin % Palatino font family
+
+\input cs-termes % TeX Gyre Termes
+\input cs-adventor % TeX Gyre Adventor
+\input cs-bonum % TeX Gyre Bonum
+\input cs-heros % TeX Grye Heros
+\input cs-pagella % TeX Gyre Pagella
+\input cs-schola % TeX Gyre Schola
+\input cs-cursor % TeX Gyre Cursor
+
+\input cs-antt % Antykwa Torunska
+\input cs-polta % Antykwa Poltawskiego
+
+\input cs-charter % Charter
+\input cs-bera % Bera
+\input cs-arev % ArevSans
+\input cs-libertine % Linux Libertine
+
+\input kp-fonts % KPfonts
+\endtt
+
+You need not to remember these font-file names. If you are using OPmac
+macros then the macro "\fontfam[Family Name]" is ready to use. It does
+the necessary "\input". If you give an unknown family name or give simply
+"[?]" as a parameter then the list of possibilities is printed to the terminal
+and to the log file in the form:
+
+\begtt
+\fontfam: unknown font family [?] (8t). Choose:
+=== Fonts derived from Computer Modern ===
+ [LM fonts] {\rm \it \bf \bi \tt ; mod:\caps ; +AMS} (8t 8z U)
+=== Adobe 35 fonts (installed in each PostScript RIP) ===
+ [Times] {\rm \it \bf \bi \tt ; +TX} (8t 8z)
+ [Helvetica] {\rm \it \bf \bi \tt ; mod:\cond ; +TX} (8t 8z)
+ [Avantgarde] {\rm \it \bf \bi \tt ; +TX} (8t 8z)
+ [Bookman] {\rm \it \bf \bi \tt ; +TX} (8t 8z)
+ [Palatino] {\rm \it \bf \bi \tt ; +TX} (8t 8z)
+ [New Century] {\rm \it \bf \bi \tt ; +TX} (8t 8z)
+=== TeXGyre project, fonts derived from Adobe 35 ===
+ [TG Termes] {\rm \it \bf \bi ; mod:\caps ; +TX} (8t 8z U)
+ [TG Heros] {\rm \it \bf \bi ; mod:\caps \cond ; +TX} (8t 8z U)
+ [TG Adventor] {\rm \it \bf \bi ; mod:\caps ; +TX} (8t 8z U)
+ [TG Bonum] {\rm \it \bf \bi ; mod:\caps ; +TX} (8t 8z U)
+ [TG Pagella] {\rm \it \bf \bi ; mod:\caps ; +TX} (8t 8z U)
+ [TG Schola] {\rm \it \bf \bi ; mod:\caps ; +TX} (8t 8z U)
+ [TG Cursor] {\rm \it \bf \bi ; mod:\caps ; +TX} (8t 8z U)
+=== Polish fonts ===
+ [Antykwa Torunska] {\rm \it \bf \bi ; mod:\caps \cond \wlight ; +TX} (8t 8z)
+ [Antykwa Poltawskiego] {\rm \it \bf \bi ; mod:\caps \wlight ; +TX} (8t 8z U)
+=== Miscelaneous ===
+ [Charter] {\rm \it \bf \bi ; +TX} (8t 8z)
+ [Arev Sans] {\rm \it \bf \bi ; +TX} (8t)
+ [Bera] {\rm \it \bf \bi ; mod:\sans ; +TX} (8t)
+ [KP fonts] {\rm \it \bf \bi ; mod:\caps \bcaps \slant \sans \ttset \wlight \b
+ext \noflig \oldn \olds \oldsv ; ... 22 modifiers in total; +KP} (8t 7t)
+ [Catalog] {; print catalogue} ()
+\endtt
+
+See OPmac documentation \cite[opmac-doc] for more information about this.
+User can create own font-files and register them to the "\fontfam" listing.
+
+\secc Font modifiers
+
+You can use ``modifiers'' of the basic variants of family "\rm", "\bf",
+"\it", and "\bi". If modifiers are supported then they are listed in the
+"\fontfam" listing. For example "TG Heros" family supports two modifiers
+"\cond" and "\caps" which means ``condensed'' and ``caps\&small caps''.
+The modifiers can be independently combined but they must be immediately
+followed by "\rm", "\bf", "\it", "\bi", "\one" or "\fam" control sequences.
+
+If the modifiers are followed by "\rm", "\bf", "\it", or "\bi" then a
+modification of given basics family variant is selected as a single font. If
+they are followed by "\one" then a modification of currently selected variant
+is used. If they are followed by "\fam" then it works like "\one" but
+moreover, the basic font selectors "\tenrm", "\tenbf", "\tenit" and "\tenbi"
+are reloaded using given modifiers, so all family selected by macros "\rm",
+"\bf", "\it" and "\bi" works with given modification. Example:
+
+\begtt
+\input cs-heros
+{\cond\rm ... Normal condensed.}
+{\caps\cond\it ... Caps \& small-caps plus condensed italics.}
+{\caps\fam ... Caps \& small-caps, now all basic macros
+ \rm, \bf, \it, \bi keeps this modification.}
+\endtt
+
+All font selectors and their modifiers do setting locally inside TeX group.
+The modifiers keep their data in the \TeX{} memory (locally) and they can be
+applied afterwards:
+
+\begtt
+{\cond\fam \rm Here is {\it condensed} font family.
+ \caps\fam \rm Here is {\it Caps \& small-caps} family which is {\it condensed}.}
+\endtt
+
+This means that "\modifier\something" keeps previously selected
+modifications and only adds a new one.
+
+You can combine fonts from more families. The main principle says:
+load the main family last. You can
+use "\ffletfont\newselector = {mod+var}{size}" for keeping font selectors from
+previous loading. Example:
+
+\begtt
+\input cs-heros
+\ffletfont \titlefont = {\cond\bf}{at14pt} % Heros condensed for titles
+\input cs-termes % Termes at 10 pt for normal text
+\endtt
+
+If you are using XeTeX or LuaTeX then the U (unicode) encoding is used and
+OTF fonts are loaded. You can use "\useff{text}" in such case. This works like
+another font modifier and does modification of font-features. Use
+"otfinfo -f file.otf" to inspect the font features of used font. Example:
+
+\begtt
+\useff{+onum;+salt}\bf ... use Bold variant with oldstyle digits and
+ stylistic alternatives
+\useff{+onum;+salt}\fam ... use given features for whole family.
+\endtt
+
+\secc Font encodings
+
+The list printed by "\fontfam" macro shows (in parentheses) what encodings
+are supported by each font family. The used abbreviations means:
+
+\begtt
+8t ... 8bit T1 encoding stated in Cork
+8z ... 8bit XL2 encoding derived from ISO-8859-2, used in Czech and Slovak TeX
+7t ... 7bit encoding declared by Knuth in cmr10 font
+U ... Unicode, this means that fonts are loaded in OTF format
+\endtt
+
+\csplain{} format with pdf\TeX{} starts in "8z" encoding by default but this can be
+changed to "8t" encoding using "\input t1code". If Xe\TeX{} or LuaTeX is
+used then "U" encoding is assumed. If encoding is not set by rules mentioned
+right before (i.e. non-\csplain{} with pdf\TeX) then "8t" is set. The
+default setting can be changed by "\def\fotenc{enc}" before
+"\input font-file". The switching to more various encodings inside document
+isn't supported. User can prepare such simply macros if it is needed.
+
+The "7c" encoding (companion encoding to "8t" with more additional characters)
+is provided by "exchars.tex" macro file from \csplain. See this macro
+file for more details. The macro file "exchars.tex" is used in
+"kp-fonts.tex", thus all additional characters are simply accessible. For
+example user write "\euro" and it prints \euro{} when \KPfonts{} are selected (or
+when "8z" encoding is used because "8z" encoding includes~\euro{} directly).
+
+\csplain{} format with pdf\TeX{} provides UTF-8 input encoding unsing
+enc\TeX{} extension of pdf\TeX{}. This is documented in \cite[csplain-doc].
+So, user can use accented letters and more characters directly. User can
+write {\ttset\rm \euro} and it prints \euro{} in \csplain{} when \KPfonts{}
+are selected. Non-\csplain{} formats with
+pdf\TeX{} don't provide UTF-8 input unless user creates something for this.
+But languages with ISO-8859-1
+characters set (Spanish, French, German, \dots) can use their accented
+letters encoded in ISO-8859-1 because this encoding is a subset of "8t" font
+encoding. Xe\TeX{} and Lua\TeX{} provides UTF-8 input as native input.
+
+
+\secc Math fonts
+
+The "\fontfam" macro lists the abbreviation of math fonts collection used
+together with selected text font family. See the letters after ``plus sign'' in
+the output of "\fontfam[?]" in the section~\ref[fontfam].
+
+\begtt
+AMS ... AMSTeX font collection: Computer Modern plus a set of others
+TX .... TX fonts, they are superset of AMS and designed for Times family
+KP .... KP math fonts collection, designed for kpfonts
+\endtt
+
+Note that most of text font families are combined with TX font by default.
+The italic and roman variants from selected text font family
+is used for variables and for math texts like
+sin, lim, max. Other symbols are used from TX fonts collection.
+
+Two math font macro-selectors are provided: "\normalmath" and "\boldmath".
+If a math modifiers are available (this is the case of KP math collection
+fonts only) then these math modifiers can be used before "\normalmath" or
+"\boldmath". These selectors sets the fonts for whole formula inside math
+mode. On the other hand, you can use individual math switchers which selects
+a math alphabet inside math mode: "\cal" for simple calliraphic, "\script"
+for more calligraphic, "\frak" for fraktur and "\bbchar" for double strokes.
+Of course, "\rm" and "\it" select normal or italics. But "\bf" and "\bi"
+select {\em sans serif} bold and bold-italic, because it is more
+conventional to use sans serifed bold in math formulas (for vectors or
+matrices, for example).
+
+\csplain{} package inclues macros for math font collections in the
+following files
+
+\begtt
+ams-math.tex ... AMS fonts
+tx-math.tex ... TX fonts
+ntx-math.tex ... NTX fonts
+kp-math.tex ... KP fonts
+\endtt
+%
+These files provide simple loading of math fonts collections including
+scaling of the whole collection to desired sizes. Basic features are
+documented in these files directly.
+
+A different math font collection can be combined with text font
+family than default. It can be done by "\let\loadmathfonts=\relax" before "\input font-file".
+This suppresses the loading of math font family. Then "\input foo-math" can
+be used directly.
+
+You can copy and rename a "foo-math.tex" file and you can do various
+modifications or set a complete new math fonts collection.
+
+\label[kpfonts]\sec The \KPfonts{} manual for plain \TeX{}
+
+Use "\input kp-fonts". There are twelve modifiers of text fonts of
+\KPfonts{} family:
+
+\begtt
+\caps ..... Caps & small caps
+\bcaps .... Bigger small-caps
+\slant .... Slanted
+\sans ..... Sans serif
+\ttset .... TypeWriter set
+\wlight ... Weight Light
+\bext ..... Bold extended
+\noflig ... no f ligatures
+\oldn ..... Old style numbers
+\olds ..... Old style all
+\oldsv .... Very old style
+\kpreset .. Returns all modifications to default values
+\endtt
+
+And there are next ten math modifiers of KP math fonts collections:
+
+\begtt
+\lightmath .... Light version of math
+\widermath .... More amount of spaces between characters
+\bfnmath ...... Normal \bf in math (bf sans is default)
+\sansmath ..... Sans serif math
+\uprightmath .. Capital letters are upright
+\bbcharss ..... Blackboard characters sans serif
+\greekup ...... Lowercase Greek upright
+\partialup .... Upright partial derivations symbol
+\narowiints ... Multiplied integrals narrower
+\kpmathreset .. Returns to the default setting
+\endtt
+
+\secc Text fonts
+
+The "\fontfam[Catalog]" prints basic modifications of \KPfonts:
+
+\medskip
+
+[KP fonts]
+
+\def\fontfamsample{ABCDabcd Qsty fi fl
+ \char225\char233\char237\char243\char250\char252\char183{ }%
+ \char176\char186\char163{ }%
+ \char193\char201\char205\char211\char218\char220\char151{ }%
+ \char144\char154\char130{ }0123456789}
+
+\def\pp #1#2{\par \noindent
+ {\tt \tmp\string#2 }%
+ {#1#2\fontfamsample}}
+\def\p #1#2{\ifx.#2\edef\tmp{\ifx\relax#1\relax\else\string#1\fi}%
+ \else\def\tmp{#2}\fi
+ \pp {#1}\rm \pp {#1}\bf \pp{#1}\it \pp{#1}\bi}
+
+\p {}.
+\p \caps.
+\p \bcaps.
+\p \slant.
+\p \sans.
+\p \ttset.
+\p \wlight.
+\p \bext.
+\p \noflig.
+\p \oldn.
+\p \olds.
+\p \oldsv.
+
+\medskip
+
+Of course, you can combine more modifiers independently if this gives a
+sense:
+
+\medskip
+\p {\sans\caps}{\string\sans\string\caps}
+\p {\sans\caps\oldn}{\string\sans\string\caps\string\oldn}
+\p {\ttset\oldsv}{\string\ttset\string\oldsv}
+\medskip
+
+If the combination of modifiers gives no sense or it is not implemented in
+\KPfonts{} (for example the combination "\sans\wlight" isn't implemented)
+then font is not changed and the warning in the form
+
+\begtt
+WARNING KPfont mods: subfam="ss" wlight="l" bcaps="", noflig="", old="", bext="
+" of variant="mn" in encoding="8t" (jkpsslmn8t) unavailable
+\endtt
+%
+is printed on the terminal and in the log file.
+
+Because there are ``weight light'' variants, users can use an extended set of
+macro selectors: "\lr", "\rm", "\mr", "\bf" and "\li", "\it", "\mi", "\bi",
+which are defined by:
+
+\begtt
+\def\lr{\wlight\rm} \def\li{\wlight\it} \def\mr{\wlight\bf} \def\mi{\wlight\bi}
+\endtt
+
+\secc Quiz
+
+The ``quiz'' published in \cite[kpfonts-story] can be done in plain
+\TeX{} too:
+
+\def\quiz#1{{#1\one A.Queer} says:
+ make 29 {\bem active} characters is definitely nasty!}
+
+% \bem: \rm -> \bf, \it -> \bi
+\def\bem{\expandafter\ifx\the\font\tenrm \tenbf
+ \else \expandafter\ifx\the\font\tenit \tenbi \fi\fi}
+
+\begitems \style n
+* {\wlight\oldsv\fam\it \quiz{\rm\caps\olds}}
+* {\oldn\fam \quiz\bcaps}
+* {\olds\fam \it \quiz\caps}
+* {\wlight\noflig\fam \it \quiz{\rm\caps}}
+* {\wlight\olds\fam \quiz\caps}
+* {\quiz\caps}
+* {\noflig\fam \quiz\caps}
+* {\wlight\fam \quiz\caps}
+* {\it \quiz{\rm\bcaps}}
+* {\wlight\noflig\fam \it \quiz\bcaps}
+\enditems
+
+How this ``quiz'' is prepared (using "\begitems" from OPmac):
+
+\begtt
+\def\quiz#1{{#1\one A.Queer} says:
+ make 29 {\bem active} characters is definitely nasty!}
+% \bem: \rm -> \bf, \it -> \bi
+\def\bem{\expandafter\ifx\the\font\tenrm \tenbf
+ \else \expandafter\ifx\the\font\tenit \tenbi \fi\fi}
+
+\begitems \style n
+* {\wlight\oldsv\fam\it \quiz{\rm\caps\olds}}
+* {\oldn\fam \quiz\bcaps}
+* {\olds\fam \it \quiz\caps}
+* {\wlight\noflig\fam \it \quiz{\rm\caps}}
+* {\wlight\olds\fam \quiz\caps}
+* {\quiz\caps}
+* {\noflig\fam \quiz\caps}
+* {\wlight\fam \quiz\caps}
+* {\it \quiz{\rm\bcaps}}
+* {\wlight\noflig\fam \it \quiz\bcaps}
+\enditems
+\endtt
+
+\secc Companion set of fonts
+
+The characters from "7c" encoding is accessible via control sequences listed
+in "exchars.tex" file. It means they begin by "\ex" prefix. Only "\euro" can
+be used without this prefix:
+
+\begtt
+{The price is 29~\euro. \bf The price is 29~\euro.
+ \it The price is 29~\euro. \ttset\one The price is 29~\euro.}
+\endtt
+%
+Gives: {The price is 29~\euro. \bf The price is 29~\euro.
+\it The price is 29~\euro. \ttset\one The price is 29~\euro.}
+
+\secc Math fonts
+
+The math modifiers must be followed by "\normalmath" or "\boldmath"
+collection selectors. These modifiers and selectors does nothing in text
+fonts and vice versa: text modifiers does nothing in math typesetting.
+
+\postdisplaypenalty=10000
+\def\mathsample{\par
+\nobreak \medskip \hrule\nobreak\bigskip
+First some large operators both in text:
+$\iiint\limits_{\cal Q} f(x,y,z)\,dx\,dy\,dz$ and
+$\prod_{\gamma\in\Gamma_{\!\bar C}} \partial(\widetilde X_\gamma)$;
+and also on display:
+$$
+\eqalignno{
+ \iiiint_{\rm Q} f(w,x,y,z)\,dw\,dx\,dy\,dz &\le
+ \oint\nolimits_{\partial Q}
+ f' \left(\max\left\{ {\|w\|\over |w^2+x^2|}; {\|z\|\over |y^2+x^2|}'
+ {\|w\oplus z\|\over \|x\oplus y\|}\right\}\right) \cr
+ &\precapprox
+ \biguplus_{{\bbchar Q} \Subset \bar{\rm Q}} \left[ f^* \left(
+ {\left\lmoustache{\bbchar Q}(t)\right\rmoustache \over \sqrt{1-t^2}}
+ \right) \right]_{t=\alpha}^{t=\theta} & (1)
+}
+$$
+
+For $x$ in the open interval $\mathopen]-1\mathclose[$ the infinite sum in
+Equation~(2) is convergent; however, this does not hold throughout the closed
+interval $[-1,1]$.
+$$
+ (1-x)^{-k} = 1 + \sum_{j=1}^\infty (-1)^j {k \atopwithdelims\{\} j} x^j
+ \quad \hbox{for $k\in{\bbchar N}; k\ne 0$.} \eqno (2)
+$$
+\par\nobreak\medskip\hrule\medskip
+}
+
+As an example we give the same sample from the article \cite[kpfonts-story].
+Fist, "\normalmath" without modifiers:
+
+\mathsample
+
+Now, we declare "\lightmath\narrowiints\normalmath" and "\wlight\fam":
+
+{\lightmath\narrowiints\normalmath \wlight\fam \mathsample}
+
+Third example declares "\greekup\normalmath":
+
+{\greekup\normalmath \mathsample}
+
+Next sample si lighter by "\lighmath\partialup\normalmath" and "\wlight\fam":
+
+{\lightmath\partialup\normalmath \wlight\fam \mathsample}
+
+The example with sans serif math can be achieved by "\sansmath\normalmath":
+
+{\sansmath\normalmath \mathsample}
+
+The following sample uses "\widermath\uprightmath\normalmath":
+
+{\widermath\uprightmath\normalmath \normalmath \mathsample}
+
+The last example combines sans serif with narrow multiple integrals and
+upright caps and Greek by
+"\sansmath\uprightmath\narrowiints\greekup\partialup\normalmath" with
+"\sans\fam":
+
+{\sansmath\uprightmath\narrowiints\greekup\partialup\normalmath \sans\fam \mathsample}
+
+\filbreak
+
+\label[ffmac]\sec Notes for macro writers and developers of font-files
+
+The font-files include "ff-mac.tex" from \csplain{} package where basic
+macros for declaration of independent font modifiers are prepared.
+Macro programmers can get inspiration in the "cs-heros.tex" font-file where
+two independent font modifiers are declared ("\caps" and "\cond") and where
+the macros from the "ff-mac.tex" are documented in detail.
+
+If you are using Unicode fonts in Xe\TeX{} or Lua\TeX{} then you can
+get more inspiration in the file "cs-liberation.tex". Use
+{\tt\string"...\string"} notation for font names (i.\,e.\ no "{...}") because
+it works for both engines: Xe\TeX{} and Lua\TeX.
+
+Note, that all features of \KPfonts{} are implemented in two
+files "kp-fonts.tex" and "kp-math.tex" with 320 lines of code in total. On
+the other hand, the \KPfonts{} macro support for \LaTeX{} is implemented in the
+"kpfonts.sty" with 1680 lines of code plus next 195 "*.fd" files, which gives
+15~thousands lines in total.
+
+
+\sec References
+
+\bib [kp-fonts] \url{http://www.ctan.org/pkg/kpfonts}
+\bib [csplain] \url{http://www.ctan.org/pkg/csplain}
+\bib [tb-csplain] \url{http://petr.olsak.net/ftp/olsak/bulletin/tb106olsak-opmac.pdf}
+\bib [opmac] \url{http://petr.olsak.net/opmac-e.html}
+\bib [opmac-doc] \url{http://petr.olsak.net/ftp/olsak/opmac/opmac-u-en.pdf}
+\bib [csplain-doc] \url{http://petr.olsak.net/csplain-e.html}
+\bib [kpfonts-story] \url{http://www.tug.org/TUGboat/tb31-3/tb99caignaert.pdf}
+
+\bye