diff options
Diffstat (limited to 'Master/texmf-dist/doc/cstex/kpfonts-plain.tex')
-rw-r--r-- | Master/texmf-dist/doc/cstex/kpfonts-plain.tex | 618 |
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 |