summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-03 21:31:31 +0000
committerKarl Berry <karl@freefriends.org>2016-05-03 21:31:31 +0000
commit23ec1d8f81a005ed2c9f96fd3037a36a80acb6e2 (patch)
tree3e0a90863ba179580665b57346ccdcbfdd749a67
parentbe75a0741713bc316a35792a635625bb6835d960 (diff)
csplain (3may16)
git-svn-id: svn://tug.org/texlive/trunk@40870 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/tex/csplain/base/csfontsm.tex15
-rw-r--r--Master/texmf-dist/tex/csplain/base/csplain.ini2
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/ams-math.tex7
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cs-antt.tex22
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cs-heros.tex103
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cs-libertine.tex73
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cs-polta.tex37
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/ff-mac.tex56
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/kp-fonts.tex161
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/kp-math.tex161
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/lmfonts.tex12
-rw-r--r--Master/texmf-dist/tex/csplain/opmac/fontfam-catalog.tex14
-rw-r--r--Master/texmf-dist/tex/csplain/opmac/fontfam-global.tex15
-rw-r--r--Master/texmf-dist/tex/csplain/opmac/fontfam.tex6
-rw-r--r--Master/texmf-dist/tex/csplain/opmac/opmac.tex21
15 files changed, 593 insertions, 112 deletions
diff --git a/Master/texmf-dist/tex/csplain/base/csfontsm.tex b/Master/texmf-dist/tex/csplain/base/csfontsm.tex
index a0acaaac1c9..c9c822ffd1a 100644
--- a/Master/texmf-dist/tex/csplain/base/csfontsm.tex
+++ b/Master/texmf-dist/tex/csplain/base/csfontsm.tex
@@ -32,16 +32,19 @@
\def\rfskipatX #1" #2\relax{"\whichtfm{#1}"}
\def\rfskipatN #1 #2\relax{\whichtfm{#1}}
-\def\whichtfm#1{#1} % User can redefine it in order to select proper
- % dessign size of the font, see ams-math.tex for
- % example.
+\ifx\whichtfm\undefined
+ \def\whichtfm#1{#1} % User can redefine it in order to select proper
+\fi % dessign size of the font, see ams-math.tex for
+ % example.
\def\resizefont#1{\letfont#1#1\sizespec}
\ifx\resizeall\undefined \else \endinput \fi
-\font\tenbi=csbxti10 % it may be usable to have
- % the quartet \rm \it \bf \bi preloaded
-\def\bi{\tenbi} % math \fam\bifam is not preloaded now
+\ifx\tenbi\undefined
+ \font\tenbi=csbxti10 % it may be usable to have
+ % the quartet \rm \it \bf \bi preloaded
+ \def\bi{\tenbi} % math \fam\bifam is not preloaded now
+\fi
\def\regfont#1{\expandafter\def\expandafter\resizeall\expandafter{%
\resizeall \resizefont#1}}
diff --git a/Master/texmf-dist/tex/csplain/base/csplain.ini b/Master/texmf-dist/tex/csplain/base/csplain.ini
index 2f54f278bcb..2895383c7ef 100644
--- a/Master/texmf-dist/tex/csplain/base/csplain.ini
+++ b/Master/texmf-dist/tex/csplain/base/csplain.ini
@@ -248,6 +248,8 @@ file extcode.tex renamed to il2code.tex (suggested by Jan Kasprzak)
** 17 ** <Apr. 2016>
* plaina4: \recount@true for \pdfpagewidth,height added
* ff-mac.tex introduced, cs-*.tex rewritten based on ff-mac.tex
+* cs-libertine.tex, kp-fonts.tex, kp-math.tex introduced
+* csfontsm.tex: \ifx\tenbi\undefined added
COPYRIGHT
=========
diff --git a/Master/texmf-dist/tex/csplain/fonts/ams-math.tex b/Master/texmf-dist/tex/csplain/fonts/ams-math.tex
index 217b6656815..5899c7cb452 100644
--- a/Master/texmf-dist/tex/csplain/fonts/ams-math.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/ams-math.tex
@@ -62,8 +62,8 @@
\loadmathfamily 7 eufb % fractur bold
\loadmathfamily 8 bbfsans % sans serif extra bold
\loadmathfamily 9 bbisans % sans serif extra bold slanted (for vectors)
- \setmathfamily 10 \tenrm
- \setmathfamily 11 \tenit
+ \setmathfamily 10 \tenbf
+ \setmathfamily 11 \tenbi
\setmathdimens
}
\count18=11 % families declared by \newfam are 12, 13, ...
@@ -225,7 +225,7 @@
\ifx\ptmunit\undefined \csname newdimen\endcsname\ptmunit\fi \ptmunit=1\ptunit
\ifx\sizemtext\undefined \setmathsizes[10/7/5]\fi
-\ifx\tenbi\undefined \font\tenbi=ptmbi8z \relax \fi
+\ifx\tenbi\undefined \font\tenbi=cmbxti10 \relax \fi
\ifx\normalmathloading\relax\else \normalmath \fi % load families, normal shape
\mitvariables % \rm in \fam0 and avriables in math by \mit
@@ -523,3 +523,4 @@ Sep. 2013: \letfont plus \corrmsizes used in \setmathfamily
Nov. 2013 Test of \normalmathloading introduced
Jul. 2014 \bgroup -> \begingroup in \not macro
Jun 2015 \ifx\chyph\undefined added
+Apr. 2016 \tenbi=cmbxti10 corrected
diff --git a/Master/texmf-dist/tex/csplain/fonts/cs-antt.tex b/Master/texmf-dist/tex/csplain/fonts/cs-antt.tex
index 0ec9f50b1d6..52495aa65c2 100644
--- a/Master/texmf-dist/tex/csplain/fonts/cs-antt.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/cs-antt.tex
@@ -5,11 +5,13 @@
\ifx\ffdecl\undefined \input ff-mac \fi
\ffdecl [Antykwa Torunska]
- {\rm \bf \it \bi \lr \mr \li \mi} {} {\liweight} {TX} {8z 8t}
+ {\rm \bf \it \bi \lr \mr \li \mi} {\cond \cap \wlight} {} {TX} {8z 8t}
\ffvars {r}{b}{ri}{bi}
-\def\wli{\ffvars{l}{m}{li}{mi}\ffsetX}
-\def\nowli{\ffvars{r}{b}{ri}{bi}\ffsetX}
+\def\wlight{\ffvars{l}{m}{li}{mi}\ffsetX}
+\def\nowlight{\ffvars{r}{b}{ri}{bi}\ffsetX}
+\def\cond{\ffsetV{cond}{c}\ffsetX} \def\condV{}
+\def\caps{\ffsetV{cap}{cap}\ffsetX} \def\capV{}
\ismacro\fotenc{8t}\ifttrue
@@ -18,7 +20,7 @@
\font\tenit = ec-anttri \sizespec
\font\tenbi = ec-anttbi \sizespec
- \def\ffnamegen{ec-antt\ffvarV}
+ \def\ffnamegen{ec-antt\condV\ffvarV\capV}
\fi
@@ -29,17 +31,17 @@
\font\tenit = cs-anttri \sizespec
\font\tenbi = cs-anttbi \sizespec
- \def\ffnamegen{cs-antt\ffvarV}
+ \def\ffnamegen{cs-antt\condV\ffvarV\capV}
\input chars-8z
\fi
\tenrm % don't remember to initialize the family with normal font.
-\def\liweight{\wli\fam}
-\def\lr{\wli\rm}
-\def\mr{\wli\bf}
-\def\li{\wli\it}
-\def\mi{\wli\bi}
+\def\liweight{\wlight\fam}
+\def\lr{\wlight\rm}
+\def\mr{\wlight\bf}
+\def\li{\wlight\it}
+\def\mi{\wlight\bi}
\ifx\loadmathfonts\relax \endinput \fi
\ifx\mathpreloaded X\else \input tx-math \fi
diff --git a/Master/texmf-dist/tex/csplain/fonts/cs-heros.tex b/Master/texmf-dist/tex/csplain/fonts/cs-heros.tex
index c2f9b698dc6..81beeafc408 100644
--- a/Master/texmf-dist/tex/csplain/fonts/cs-heros.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/cs-heros.tex
@@ -64,35 +64,32 @@
For users
=========
-There are four basic font selectors: \rm, \bf, \it, \bi. They are ready
+There are four basic font variant selectors: \rm, \bf, \it, \bi. They are ready
to print text in Heros (like Helvetica) variants after \input cs-heros.
You can use "modifiers" of these basic variants: \cond, \caps. They can be
independently combined but must be immediately followed by \rm, \bf, \it,
-\bi or \fam. Examples:
+\bi, \one or \fam. If basic variant selector is used then given variant
+combined by modifiers is selected. If selectors are followed by \one, the
+currently selected variant is combined by modifier(s). If \fam is used then it
+works like \one but all four variant selectors are modified by the
+modifier(s).
-\cond\rm ... Normal condensed.
-\caps\cond\it ... Caps & small-caps plus condensed italics.
-\caps\fam ... Caps & small-caps, now all basic selectors.
- \rm, \bf, \it, \bi keeps this modification.
+Examples:
-All font selectors and their modifiers do setting locally inside TeX group.
+{\cond\rm text} ... Normal condensed.
+{\caps\cond\it text} ... Caps & small-caps plus condensed italics.
+{\cond\one text} ... Condensed modification of active variant.
+{\caps\fam text \bf text} ... Caps & small-caps, now all basic selectors
+ \rm, \bf, \it, \bi keeps this modification.
-Note, that \modifier\fam keeps the currently selected basic variant. This
-variant is modified by \modifier\fam and all consecutive basic variant
-selectors are modified too. So, you can select all font features
-independently to others.
-
-{\it Italics \caps\fam caps italics, \bf caps bold \it caps italic.}
-
-but \modifier\rm (or \modifier\bf etc.) sets only one individual font.
-
-{\it Italic \caps\rm caps \bf normal bold}
+All font selectors and their modifiers do setting data locally inside TeX
+group.
The TX math fonts are loaded together with this text family. If you need not
-load special fonts then you can set \let\loadmathfonts=\relax before \input
-cs-heros. Of course, you can input any different math font collection, for
-example \input ntx-math.
+load special fonts then you can set \let\loadmathfonts=\relax before
+\input cs-heros. Of course, you can input any different math font collection,
+for example \input ntx-math.
You can combine fonts from more families. Load the main family last. You can
use \ffletfont\newselector = {mod+var}{size} for keeping variants from
@@ -111,6 +108,8 @@ otfinfo -f file.otf to inspect the font features of used font. Example:
stylistic alternatives
\useff{+onum;+salt}\fam ... use given features for whole family.
+See the document kpfonts-plain.pdf for more information.
+
For font-file developers
========================
@@ -118,7 +117,7 @@ For font-file developers
Use \ifx\ffdecl\undefined \input ff-mac \fi first. The ff-mac.tex macro file
provides:
-\sizespec .. is empty or it keeps the special size specification of the font.
+\sizespec .. is empty or it keeps the size specification of the font.
\ffdecl .... prints font message and checks the font encoding.
\ffvars .... declares four basic variants (values for \ffvarV)
\setfmV, \setfm ... macros used in font modifiers
@@ -128,14 +127,15 @@ provides:
fonts are used.
\ffalias ... register alias of a font name.
\regsizes .. register optical sizes.
+\tryprotected ... makes the macro defined as "robust".
You must declare four basic variants \tenrm, \tembf, \tenit and \tenbi
-using \font primitive. These four basic variants work immediately after
-font-file is read because \rm, \bf, \it and \bi expands to \tenrm, \tenbf,
-\tenit and \tenbi.
+using \font primitive in your font-file. These four basic variants work
+immediately after font-file is read because \rm, \bf, \it and \bi expands
+to \tenrm, \tenbf, \tenit and \tenbi.
You can declare more cases for various font encondings. User can define font
-encoding by \def\fontenc{something}. Note, that ff-mac.tex keeps the \fotenc
+encoding by \def\fotenc{something}. Note, that ff-mac.tex keeps the \fotenc
macro unchanged, but if it is not defined then it does:
- \def\fotenc{8z} if CSplain is used without \input t1code nor \input ucode
@@ -170,10 +170,10 @@ variant is needed. The \ffvarV macro is used in \ffnamegen. See below.
If you need to implement font modifier (say \modfoo), then define
-\def\modfoo{\ffsetV{foo}{text}\ffsetX} \def\nomodfoo{\ffsetV{foo}{}\ffsetX}
+\def\modfoo{\ffsetV{foo}{text}\ffsetX}
-The \modfoo activate modifier and \nomodfoo deactivate it. The macro
-\ffsetV{foo}{text} define \fooV as text. So, you can use \fooV in \ffnamegen.
+The macro \ffsetV{foo}{text} define \fooV macro as text. So, you can use
+\fooV in \ffnamegen.
Next, define default value for \fooV by \def\fooV{}.
@@ -235,12 +235,12 @@ If the \ffoptV is used in \ffnamegen then you must register optical
sizes for all variants and modified variants into internal data structure.
The \regsizes macro does this. Code from cs-polta.tex looks like this:
-\regsizes {} {0 =6 7 =8 9 =10 11 =12 14 =17}
-\regsizes {\wli} {0 =6 7 =8 9 =10 11 =12 14 =17}
-\regsizes {\caps} {0 =6 7 =8 9 =10 11 =12 14 =17}
-\regsizes {\wli\caps} {0 =6 7 =8 9 =10 11 =12 14 =17}
+\regsizes {} {0 =6 7 =8 9 =10 11 =12 14 =17}
+\regsizes {\wlight} {0 =6 7 =8 9 =10 11 =12 14 =17}
+\regsizes {\caps} {0 =6 7 =8 9 =10 11 =12 14 =17}
+\regsizes {\wlight\caps} {0 =6 7 =8 9 =10 11 =12 14 =17}
-There are two independent modifiers \wli and \caps, so there are four
+There are two independent modifiers \wlight and \caps, so there are four
possible modifications. These modifications are included in the first
parameter. The second "data" parameter includes couples
"bondary =optsize boundary =optsize" etc. If the desired size is 11.5pt (for
@@ -251,4 +251,39 @@ The \regsizes is implemented by \regtfm macro, see the ams-math.tex file.
You cannot combine \ffalias together with \regsizes.
-----------------------------------------
+
+\tryprotected \def\foo
+----------------------
+
+The macro \foo is defined as \protected\def it the \protected
+primitive is available. Else it is defined normally but if \addprotect from
+OPmac is available then \addprotect\foo is used. Only if \protected
+rimitive isn't available and \addprotect from Opmac isn't available, the
+\foo macro is leaved unprotected which brings potential problem when such
+macro is used by user in a \write parameter (typically section names when
+table of contents is generated).
+
+Note that the macros \rm, \bf, \it and \bi need not to be
+\protected (and they are not protected). If user put these macro to a
+parameter of "\write" then nothig critical happens. They are expanded but
+only first level of expansion is done, because they includes only
+unexpandable primitive \fam, a constant and a font selector declared by
+\font.
+
+Do not set font modifiers as protected!. The last macro used in each font
+modifer (\ffsetX) must be expanded during \wite exapnsion. It changes to
+the internal macro \ffsetY depending on the control sequence wich is
+followed. The \ffsetV and \ffvars macros are protected in ff-mac.tex. For
+example, suppose that yu define a modifier:
+
+\def\modfoo{\ffvars{A}{B}{C}{D}\ffsetV{foo}{text}\ffsetX}
+
+and a user writes \modfoo\it in a \write parameter. The the macro is
+expanded to
+
+\ffvars{A}{B}{C}{D}\ffsetV{foo}\ffsetY2
+
+in \write file. After the data are read from file again, they do exactly
+what we need. But if the \modfoo is protected, then \modfoo\it is expanded
+into \write file like \modfoo\fam\itfam\tenit and this is bad.
+
diff --git a/Master/texmf-dist/tex/csplain/fonts/cs-libertine.tex b/Master/texmf-dist/tex/csplain/fonts/cs-libertine.tex
new file mode 100644
index 00000000000..fef2bd9c4be
--- /dev/null
+++ b/Master/texmf-dist/tex/csplain/fonts/cs-libertine.tex
@@ -0,0 +1,73 @@
+% The file cs-libertine.tex (C) Petr Olsak, 2016
+% Use "\input cs-libertine" to set the LinLibertine font family in text mode
+
+% This is an example of font file with Unicode fonts loaded
+% a) from /texmf tree and b) from operating system.
+
+% Modifiers:
+% \sans ... Sans serif variation (LinBiolinum)
+% \mono ... Monospaced set of fonts
+% \roman .. Defaul family
+% \caps ... Caps & small caps \nocaps ... deactivates \caps
+% \useff{+feature} ... use font feature
+
+\ifx\ffdecl\undefined \input ff-mac \fi
+
+\ffdecl [Linux Libertine] {\rm \bf \it \bi} {\mono \sans \caps} {} {TX} {U sU}
+
+\ismacro\fotenc{U}\iftrue %%%%%%%%%%%%%% OTF fonts from /texmf tree
+
+ \font\tenrm = "[LinLibertine_R]:\fontfeatures" \sizespec
+ \font\tenbf = "[LinLibertine_RB]:\fontfeatures" \sizespec
+ \font\tenit = "[LinLibertine_RI]:\fontfeatures" \sizespec
+ \font\tenbi = "[LinLibertine_RBI]:\fontfeatures" \sizespec
+
+ \def\singlefonts{%
+ \font\initialfont = "[LinLibertine_I]:\fontfeatures" \sizespec
+ \font\displayfont = "[LinLibertine_DR]:\fontfeatures" \sizespec
+ \font\keyboardfont = "[LinBiolinum_K]:\fontfeatures" \sizespec
+ } % you can use \show\singlefonts to remind and \singlefonts to load.
+
+ \def\ffnamegen{"[Lin\mainfamV_\ffvarV]:\capsV\fontfeatures"}
+
+ \def\roman {\ffvars{R}{RB}{RI}{RBI}\ffsetX} \def\mainfamV{Libertine}
+ \def\sans {\ffvars{R}{RB}{RI}{RBO}\ffsetV{mainfam}{Biolinum}\ffsetX}
+ \def\mono {\ffvars{M}{MB}{MO}{MBO}\ffsetX}
+ \def\caps {\ffsetV{caps}{+smcp}\ffsetX}
+ \def\nocaps {\ffsetV{caps}{}\ffsetX}
+ \roman\nocaps\relax % default
+
+\fi
+
+\ismacro\fotenc{sU}\iftrue %%%%%%%%%%%%% system OTF fonts
+
+ \font\tenrm = "Linux Libertine O:\fontfeatures" \sizespec
+ \font\tenbf = "Linux Libertine O/B:\fontfeatures" \sizespec
+ \font\tenit = "Linux Libertine O/I:\fontfeatures" \sizespec
+ \font\tenbi = "Linux Libertine O/BI:\fontfeatures" \sizespec
+
+ \def\singlefonts{%
+ \font\initialfont = "Linux Libertine Initials O:\fontfeatures" \sizespec
+ \font\displayfont = "Linux Libertine Display O:\fontfeatures" \sizespec
+ \font\keyboardfont = "Linux Biolinum Keyboard O:\fontfeatures" \sizespec
+ } % you can use \show\singlefonts to remind and \singlefonts to load.
+
+ \ffvars{}{B}{I}{BI}
+
+ \def\ffnamegen{"Linux \mainfamV\space \subfamV O/\ffvarV:\capsV\fontfeatures"}
+
+ \def\roman {\ffsetV{subfam}{}\ffsetX}
+ \def\sans {\ffsetV{mainfam}{Biolinum}\ffsetX} \def\mainfamV{Libertine}
+ \def\mono {\ffsetV{subfam}{Mono }\ffsetX}
+ \def\caps {\ffsetV{caps}{+smcp}\ffsetX}
+ \def\nocaps {\ffsetV{caps}{}\ffsetX}
+ \roman\nocaps\relax % default
+
+\fi
+\tenrm % don't remember to initialize the family with normal font.
+
+\ifx\loadmathfonts\relax \endinput \fi
+\ifx\mathpreloaded X\else \input tx-math \fi
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/csplain/fonts/cs-polta.tex b/Master/texmf-dist/tex/csplain/fonts/cs-polta.tex
index 39d08eb6736..c13f430372b 100644
--- a/Master/texmf-dist/tex/csplain/fonts/cs-polta.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/cs-polta.tex
@@ -5,11 +5,11 @@
\ifx\ffdecl\undefined \input ff-mac \fi
\ffdecl [Antykwa Poltawskiego]
- {\rm \bf \it \bi \lr \mr \li \mi} {\caps \wli} {} {TX} {8z 8t U}
+ {\rm \bf \it \bi \lr \mr \li \mi} {\caps \wlight} {} {TX} {8z 8t U}
\ffvars {r}{b}{ri}{bi}
-\def\wli{\ffvars{l}{m}{li}{mi}\ffsetX}
-\def\nowli{\ffvars{r}{b}{ri}{bi}\ffsetX}
+\def\wlight{\ffvars{l}{m}{li}{mi}\ffsetX}
+\def\nowlight{\ffvars{r}{b}{ri}{bi}\ffsetX}
\def\caps{\ffsetV{caps}{-sc}\ffsetX}
\def\nocaps{\ffsetV{caps}{}\ffsetX}
\def\capsV{}
@@ -47,34 +47,33 @@
\def\ffnamegen{"[antpolt\wliV\ffoptV-\ffvarV]:\capsV\fontfeatures"}
\ffvars {regular} {bold} {italic} {bolditalic}
- \def\wli{\ffsetV{wli}{lt}\ffsetX}
- \def\nowli{\ffsetV{wli}{}\ffsetX}
+ \def\wlight{\ffsetV{wli}{lt}\ffsetX}
+ \def\nowlight{\ffsetV{wli}{}\ffsetX}
\def\caps{\ffsetV{caps}{+smcp;}\ffsetX}
\def\nocaps{\ffsetV{caps}{}\ffsetX}
\def\wliV{}
- \regsizes {} {0 =expd 7 =semiexpd 9 ={} 11 =semicond 14 =cond}
- \regsizes {\wli} {0 =expd 7 =semiexpd 9 ={} 11 =semicond 14 =cond}
- \regsizes {\caps} {0 =expd 7 =semiexpd 9 ={} 11 =semicond 14 =cond}
- \regsizes {\wli\caps} {0 =expd 7 =semiexpd 9 ={} 11 =semicond 14 =cond}
+ \regsizes {} {0 =expd 7 =semiexpd 9 ={} 11 =semicond 14 =cond}
+ \regsizes {\wlight} {0 =expd 7 =semiexpd 9 ={} 11 =semicond 14 =cond}
+ \regsizes {\caps} {0 =expd 7 =semiexpd 9 ={} 11 =semicond 14 =cond}
+ \regsizes {\wlight\caps} {0 =expd 7 =semiexpd 9 ={} 11 =semicond 14 =cond}
\else
- \regsizes {} {0 =6 7 =8 9 =10 11 =12 14 =17}
- \regsizes {\wli} {0 =6 7 =8 9 =10 11 =12 14 =17}
- \regsizes {\caps} {0 =6 7 =8 9 =10 11 =12 14 =17}
- \regsizes {\wli\caps} {0 =6 7 =8 9 =10 11 =12 14 =17}
+ \regsizes {} {0 =6 7 =8 9 =10 11 =12 14 =17}
+ \regsizes {\wlight} {0 =6 7 =8 9 =10 11 =12 14 =17}
+ \regsizes {\caps} {0 =6 7 =8 9 =10 11 =12 14 =17}
+ \regsizes {\wlight\caps} {0 =6 7 =8 9 =10 11 =12 14 =17}
\fi
\tenrm % don't remember to initialize the family with normal font.
-
-\def\liweight{\wli\fam}
-\def\lr{\wli\rm}
-\def\mr{\wli\bf}
-\def\li{\wli\it}
-\def\mi{\wli\bi}
+\def\liweight{\wlight\fam}
+\def\lr{\wlight\rm}
+\def\mr{\wlight\bf}
+\def\li{\wlight\it}
+\def\mi{\wlight\bi}
\ifx\loadmathfonts\relax \endinput \fi
\ifx\mathpreloaded X\else \input tx-math \fi
diff --git a/Master/texmf-dist/tex/csplain/fonts/ff-mac.tex b/Master/texmf-dist/tex/csplain/fonts/ff-mac.tex
index 4d4a06d790c..8ebb89976ae 100644
--- a/Master/texmf-dist/tex/csplain/fonts/ff-mac.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/ff-mac.tex
@@ -40,47 +40,64 @@
\ifx\protected\undefined
\let\tryprotected=\relax
\ifx\addprotect\undefined \else
- \addprotect\ffvars \addprotect\ffsetV \addprotect\ffsetY
+ \def\tryprotected#1#2{\addprotect#2#1#2}
\fi
\else \let\tryprotected=\protected \fi
+\ifx\rfontskipat\undefined \input csfontsm \fi
+
\tryprotected\def\ffvars#1#2#3#4{%
\def\ffvarY##1{\ifcase##1 #1\or#2\or#3\or#4\fi}%
}
\tryprotected\def\ffsetV#1#2{\expandafter\def\csname #1V\endcsname{#2}}
-\long\def\ffsetX#1{\ifx#1\fam \ffsetY=\else
+\long\def\ffsetX#1{\ifx#1\fam \ffsetY=\else \ifx#1\one \ffsetY+\else
\ifx#1\rm \ffsetY0\else \ifx#1\bf \ffsetY1\else
\ifx#1\it \ffsetY2\else \ifx#1\bi \ffsetY3\else
- \ffsetZ#1\fi\fi\fi\fi\fi
+ \ffsetZ#1\fi\fi\fi\fi\fi\fi
}
-\def\ffsetZ#1\fi\fi\fi\fi\fi{\fi\fi\fi\fi\fi#1}
+\def\ffsetZ#1\fi\fi\fi\fi\fi\fi{\fi\fi\fi\fi\fi\fi#1}
+\ifx\one\undefined \def\one{1}\fi % Something more specific than \undefined.
+ % User can re-define it without problems.
\tryprotected\def\ffsetY#1{%
- \ifx=#1\ffsetW0\tenrm \ffsetW1\tenbf \ffsetW2\tenit \ffsetW3\tenbi
- \else \edef\ffvarV{\ffvarY{#1}}%
- \if!\ffvarV\else \ffsetF\ffmodfont\ffmodfont \fi
- \fi
-}
-\def\ffsetF#1{%
- \ifx\dgsize\undefined
- \expandafter\readsizespec\sizespec at\relax
- \font#1=\whichtfm{\ffnamegen} \sizespec\relax
- \let\dgsize=\undefined
- \else \font#1=\whichtfm{\ffnamegen} \sizezpec\relax
- \fi
+ \ifx=#1\ffsetS \ffsetW0\tenrm \ffsetW1\tenbf \ffsetW2\tenit \ffsetW3\tenbi
+ \ffsetT{\tenrm}{\tenbf}{\tenit}{\tenbi}%
+ \else \ifx+#1\ffsetS \ffsetT{\ffsetX\rm}{\ffsetX\bf}{\ffsetX\it}{\ffsetX\bi}%
+ \else \edef\ffvarV{\ffvarY{#1}}%
+ \if!\ffvarV\else \def\ffvarN{#1}\ffsetF\ffmodfont\ffmodfont \fi
+ \fi\fi
+}
+\def\ffsetF#1#2{%
+ \ffnametest\iftrue
+ \ifx\dgsize\undefined
+ \expandafter\readsizespec\sizespec at\relax
+ \font#1=\whichtfm{\ffnamegen} \sizespec\relax
+ \let\dgsize=\undefined
+ \else \font#1=\whichtfm{\ffnamegen} \sizespec\relax
+ \fi #2\fi
+}
+\let\ffnametest=\relax
+
+\def\ffsetS{\expandafter\ifx\the\font\tenrm \def\ffvarN{0}%
+ \else \expandafter\ifx\the\font\tenbf \def\ffvarN{1}%
+ \else \expandafter\ifx\the\font\tenit \def\ffvarN{2}%
+ \else \expandafter\ifx\the\font\tenbi \def\ffvarN{3}\fi\fi\fi\fi
+}
+\def\ffsetT#1#2#3#4{\ifx\ffvarN\undefined \else
+ \ifcase\ffvarN\space #1\or#2\or#3\or#4\fi\fi
}
\def\readsizespec#1at#2\relax{\ifx!#2\def\dgsize{#1}\else
\ifx\relax#2\relax \def\dgsize{10pt}\else \readsizespec#2!\relax\fi\fi
}
\def\ffsetW#1#2{\edef\ffvarV{\ffvarY{#1}}%
- \expandafter\ifx\the\font#2\ffsetF#2#2\else\ffsetF#2\fi
+ \if!\ffvarV\else \ffsetF#2\relax\fi
}
\def\ismacro#1#2#3{\def\tmp{#2}\ifx#1\tmp}
\def\ffletfont#1=#2#3{%
{\def\sizespec{#3}\let\ffsetFa=\ffsetF
- \def\ffsetF##1##2{\ffsetFa#1}\def\ffsetW##1##2{}%
+ \def\ffsetF##1##2{\ffsetFa#1\relax}\def\ffsetW##1##2{}%
\ffsetX#2\global\let\tmp=#1}\let#1=\tmp
}
\ifx\regtfm\undefined %%%%% \regtfm, \whichtfm from ams-math.tex:
@@ -132,7 +149,7 @@
\def\useff#1{} % do nothing with non U encoding
-\ismacro\fotenc{U}\iftrue\else \endinput \fi %%%%%%%%%%%%%%%%%%%
+\ismacro\fotenc{U}\iftrue\else \ismacro\fotenc{sU}\iftrue\else \endinput \fi\fi %%%%%%
\ifx\directlua\undefined \else \ifx\luafonts\undefined \input luafonts
\fi\fi % lua code to re-define \font primitive
@@ -143,6 +160,5 @@
\def\useff#1{\ffsetU{#1}\ffsetX}
\tryprotected\def\ffsetU#1{\edef\fontfeatures{\fontfeatures;#1}}
-\ifx\tryprotected\relax \ifx\addprotect\undefined \else \addprotect\ffsetU \fi\fi
\endinput
diff --git a/Master/texmf-dist/tex/csplain/fonts/kp-fonts.tex b/Master/texmf-dist/tex/csplain/fonts/kp-fonts.tex
new file mode 100644
index 00000000000..e309b9b8d1d
--- /dev/null
+++ b/Master/texmf-dist/tex/csplain/fonts/kp-fonts.tex
@@ -0,0 +1,161 @@
+% The file kp-font.tex (C) Petr Olsak, 2016
+% Use "\input kp-fonts" to set the KP Fonts font family.
+
+% See cs-heros.tex file for more information about font modifiers.
+
+% See http://petr.olsak.net/csplain.html#font for information about CSplain
+% (or OPmac) font concept and about font modifiers.
+% See kpfonts-plain.pdf article about "KP-fonts in plain TeX"
+
+\ifx\ffdecl\undefined \input ff-mac \fi
+
+\ffdecl [KP Fonts] {\rm \bf \it \bi} {\caps \slant \sans ...} {21 mods} {KP} {8t 7t}
+
+\message{See the file kp-fonts.tex and kp-math.tex for modifiers documentation.}
+
+% Modifiers:
+% \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
+% Usage: [modifiers]\rm or \bf or \it or \bi or \one or \fam
+% Of course, you cannot combine all with all.
+% \lr \rm \mr \bf ; \li \it \mi \bi ... extended variant selectors
+% See the file kp-math.tex for math modifiers documentation.
+
+\tryprotected\def\kpvars#1{%
+ \if n#1\ffvars {mn} {b\bextV n} {mit} {b\bextV it}\fi % Normal family
+ \if s#1\ffvars {mn} {b\bextV n} {msl} {b\bextV sl}\fi % Slanted family
+ \if c#1\ffvars {msc} {b\bextV sc} {mscsl} {b\bextV scsl}\fi % Caps family
+ \def\kpvarV{#1}%
+}
+\kpvars{n}
+
+\def\caps{\kpvars{c}\ffsetV{noflig}{}\ffsetX}
+\def\slant{\kpvarnoC{\kpvars{s}}\ffsetX}
+\tryprotected\def\kpvarnoC#1{\if c\kpvarV \else#1\fi}
+
+\def\sans{\slant\ffsetV{subfam}{ss}\ffsetV{wlight}{}\ffsetX}
+\def\ttset{\kpvars{n}\slant\ffsetV{subfam}{tt}%
+ \ffsetV{bext}{}\ffsetV{noflig}{}\ffsetV{wlight}{}\ffsetV{bcaps}{}\ffsetX}
+
+\def\bext{\ffsetV{bext}{x}\ffsetX}
+\def\bcaps{\caps\ffsetV{bcaps}{k}\ffsetX}
+\def\wlight{\ffsetV{wlight}{l}\ffsetX}
+\def\noflig{\ffsetV{noflig}{f}\ffsetX}
+\def\oldn{\ffsetV{old}{osn}\ffsetX}
+\def\olds{\ffsetV{old}{os}\ffsetX}
+\def\oldsv{\ffsetV{old}{vos}\ffsetX}
+\def\kpreset{\kpvars{n}\ffsetV{subfam}{}\ffsetV{wlight}{}\ffsetV{bcaps}{}%
+ \ffsetV{noflig}{}\ffsetV{old}{}\ffsetV{bext}{}\ffsetX}
+
+\def\lr{\wlight\rm} \def\li{\wlight\it} \def\mr{\wlight\bf} \def\mi{\wlight\bi}
+
+\def\subfamV{} \def\wlightV{} \def\bcapsV{} \def\nofligV{} \def\oldV{} \def\bextV{}
+
+\ismacro\fotenc{8t}\ifttrue
+
+ \font\tenrm = jkpmn8t \sizespec
+ \font\tenbf = jkpbn8t \sizespec
+ \font\tenit = jkpmit8t \sizespec
+ \font\tenbi = jkpbit8t \sizespec
+
+ \def\ffnamegen{jkp\subfamV\wlightV\bcapsV\nofligV\oldV\ffvarV 8t}
+
+\fi
+
+\ismacro\fotenc{7t}\ifttrue
+
+ \font\tenrm = jkpmn7t \sizespec
+ \font\tenbf = jkpbn7t \sizespec
+ \font\tenit = jkpmit7t \sizespec
+ \font\tenbi = jkpbit7t \sizespec
+
+ \def\ffnamegen{jkp\subfamV\wlightV\bcapsV\nofligV\oldV\ffvarV 7t}
+
+\fi
+\tenrm
+
+\def\Qtail{{\olds\one Q}}
+
+\input exchars % 7c encoding implemented by exchars.tex macro
+
+\let\euro=\exeuro
+\ifx\mubyte\undefined \else \mubyte\euro ^^e2^^82^^ac\endmubyte \fi
+
+\def\ffnametest#1{% if desired metric is not registered then print warning
+ \expandafter\ifx\csname ex:\ffnamegen/TS1\endcsname \relax
+ \message{WARNING KPfont mods: subfam="\subfamV" wlight="\wlightV"
+ bcaps="\bcapsV", noflig="\nofligV", old="\oldV", bext="\bextV" of
+ variant="\ffvarV" in encoding="\fotenc" (\ffnamegen) unavailable}%
+ \csname iffalse\expandafter\endcsname
+ \else \csname iftrue\expandafter\endcsname \fi
+}
+\def\ffaddtfm #1 {\ifx\relax#1\relax \else
+ \setexfont {jkp#1\fotenc} TS1 \kpsevenc{#1} % register the metric for exchars
+ \expandafter\ffaddtfm\fi
+}
+\def\kpsevenc#1{\kpsevencA #1;f\relax} % does mapping from *8t metric to *7c
+\def\kpsevencA#1f#2\relax{\kpsevencB #1#2k\relax} % strip off irrelevant features
+\def\kpsevencB#1k#2\relax{\kpsevencC #1#2osn\relax}
+\def\kpsevencC#1osn#2\relax{\kpsevencD #1#2vos\relax}
+\def\kpsevencD#1vos#2\relax{\kpsevencE #1#2os\relax}
+\def\kpsevencE#1os#2\relax{\kpsevencF#1#2\relax}
+\def\kpsevencF#1;#2\relax{jkp#17c}
+
+\ffaddtfm % register all metrics from "ls *8t.tfm" output:
+ bit kosbsc lkbsc losnbsc osmscsl sskbxscsl ssosnmsc
+ bn kosbscsl lkbscsl losnbscsl osmsl sskmsc ssosnmscsl
+ bsc kosbxsc lkbxsc losnbsl osnbit sskmscsl ssosnmsl
+ bscsl kosbxscsl lkbxscsl losnbxit osnbn sskosbsc ssvosbn
+ bsl kosmsc lkmsc losnbxn osnbsc sskosbscsl ssvosbsc
+ bxit kosmscsl lkmscsl losnbxsc osnbscsl sskosbxsc ssvosbsl
+ bxn kosnbsc lkosbsc losnbxscsl osnbsl sskosbxscsl ssvosbxn
+ bxsc kosnbscsl lkosbscsl losnbxsl osnbxit sskosmsc ssvosbxsc
+ bxscsl kosnbxsc lkosbxsc losnmit osnbxn sskosmscsl ssvosbxsl
+ bxsl kosnbxscsl lkosbxscsl losnmn osnbxsc sskosnbsc ssvosmn
+ fbit kosnmsc lkosmsc losnmsc osnbxscsl sskosnbscsl ssvosmsc
+ fbn kosnmscsl lkosmscsl losnmscsl osnbxsl sskosnbxsc ssvosmsl
+ fbsl lbit lkosnbsc losnmsl osnmit sskosnbxscsl ttbn
+ fbxit lbn lkosnbscsl lvosbit osnmn sskosnmsc ttbsl
+ fbxn lbsc lkosnbxsc lvosbn osnmsc sskosnmscsl ttmn
+ fbxsl lbscsl lkosnbxscsl lvosbsl osnmscsl ssmn ttmsl
+ fmit lbsl lkosnmsc lvosbxit osnmsl ssmsc ttosbn
+ fmn lbxit lkosnmscsl lvosbxn ssbn ssmscsl ttosbsl
+ fmsl lbxn lmit lvosbxsl ssbsc ssmsl ttosmn
+ fosnbit lbxsc lmn lvosmit ssbscsl ssosbn ttosmsl
+ fosnbn lbxscsl lmsc lvosmn ssbsl ssosbsc ttosnbn
+ fosnbsl lbxsl lmscsl lvosmsl ssbxn ssosbscsl ttosnbsl
+ fosnbxit lfbit lmsl mit ssbxsc ssosbsl ttosnmn
+ fosnbxn lfbn losbit mn ssbxscsl ssosbxn ttosnmsl
+ fosnbxsl lfbsl losbn msc ssbxsl ssosbxsc ttvosbn
+ fosnmit lfbxit losbsc mscsl ssfbn ssosbxscsl ttvosbsl
+ fosnmn lfbxn losbscsl msl ssfbsl ssosbxsl ttvosmn
+ fosnmsl lfbxsl losbsl osbit ssfbxn ssosmn ttvosmsl
+ fssosnbn lfmit losbxit osbn ssfbxsl ssosmsc vosbit
+ fssosnbsl lfmn losbxn osbsc ssfmn ssosmscsl vosbn
+ fssosnbxn lfmsl losbxsc osbscsl ssfmsl ssosmsl vosbsl
+ fssosnbxsl lfosnbit losbxscsl osbsl ssfosnbn ssosnbn vosbxit
+ fssosnmn lfosnbn losbxsl osbxit ssfosnbsl ssosnbsc vosbxn
+ fssosnmsl lfosnbsl losmit osbxn ssfosnbxn ssosnbscsl vosbxsl
+ kbsc lfosnbxit losmn osbxsc ssfosnbxsl ssosnbsl vosmit
+ kbscsl lfosnbxn losmsc osbxscsl ssfosnmn ssosnbxn vosmn
+ kbxsc lfosnbxsl losmscsl osbxsl ssfosnmsl ssosnbxsc vosmsl
+ kbxscsl lfosnmit losmsl osmit sskbsc ssosnbxscsl
+ kmsc lfosnmn losnbit osmn sskbscsl ssosnbxsl
+ kmscsl lfosnmsl losnbn osmsc sskbxsc ssosnmn
+ {}
+
+\ifx\loadmathfonts\relax \endinput \fi
+\ifx\mathpreloaded K\else \input kp-math \fi
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/csplain/fonts/kp-math.tex b/Master/texmf-dist/tex/csplain/fonts/kp-math.tex
new file mode 100644
index 00000000000..74bf7a3775f
--- /dev/null
+++ b/Master/texmf-dist/tex/csplain/fonts/kp-math.tex
@@ -0,0 +1,161 @@
+% This file loads KP math fonts by plainTeX macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Petr Olsak, 2016
+
+\let\normalmathloading=\relax
+ \bgroup\def\message#1{\egroup}\input tx-math % load macros + \mathchardefs
+
+\message{FONT: KP math fonts -
+ \string\mathchardef's prepared, 11 math families preloaded.}
+\let\mathpreloaded=K
+
+% Math modifiers:
+% \lightmath .... Light version of math
+% \widermath .... More amount of spaces between characters
+% \bfnmath ...... Normal \bf in math (by default is sans bf)
+% \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
+% Basic math selectors:
+% \normalmath ... Normal version
+% \boldmath ..... Bold version
+% Usage: [math-modifiers]\basic-math-selector
+% See the file kp-fonts.tex for text modifiers documentation.
+
+\def\corrmsizes{}
+\def\itvaraibales{}
+\mitvariables
+
+\def\uprightmath{\def\kpmatf{f}}
+\def\widermath{\def\kpmatw{w}}
+\def\lightmath{\def\kpmatl{l}\def\kpmatss{}}
+\def\sansmath{\def\kpmatss{ss}\def\kpmatl{}}
+\def\kpmatwnoss{\ifx\kpmatss\empty \kpmatw\fi}
+\def\bbcharss{\def\kpmatbbssx{ss}}
+\def\bfnmath{\def\kpmatssb{}}
+\def\kpmatbbss{\ifx\kpmatss\empty \kpmatbbssx \else ss\fi}
+\def\kpmathreset{%
+ \def\kpmatf{}\def\kpmatw{}\def\kpmatl{}\def\kpmatss{}\def\kpmatbbssx{}%
+ \def\kpmatssb{ss}\partialnormal \greeknormal \normaliints
+}
+
+\def\normalmath{%
+ \loadmathfamily 0 {jkp\kpmatss\kpmatl mn7t} % KP 7t
+ \loadmathfamily 1 {jkp\kpmatss\kpmatl mi\kpmatf\kpmatwnoss} % KP Math Italic
+ \loadmathfamily 2 {jkp\kpmatl sy\kpmatw} % KP Standard symbols
+ \loadmathfamily 3 {jkp\kpmatl ex} % KP extra symbols
+ \loadmathfamily 4 {jkpsya} % KP symbols from AMSTeX
+ \loadmathfamily 5 {jkp\kpmatbbss\kpmatl syb\kpmatw} % KP symbols from AMSTeX
+ \loadmathfamily 6 {jkp\kpmatl syc} % KP symbols from TX fonts
+ \loadmathfamily 7 {jkp\kpmatl exa} % KP extra symbols
+ \loadmathfamily 8 {jkp\kpmatss\kpmatl mia\kpmatwnoss} % fraktur, upright greek
+ \loadmathfamily 9 {jkp\kpmatl syd\kpmatw} % script
+ \loadmathfamily 10 {jkp\kpmatssb bn7t} % (sans serif) bold
+ \loadmathfamily 11 {jkp\kpmatssb bmi\kpmatf} % (sans serif) bold slanted
+ \setkpsumsw
+}
+\def\boldmath{%
+ \loadmathfamily 0 {jkp\kpmatss\kpmatl bn7t} % KP 7t
+ \loadmathfamily 1 {jkp\kpmatss\kpmatl bmi\kpmatf\kpmatwnoss} % KP Math Italic
+ \loadmathfamily 2 {jkp\kpmatl bsy\kpmatw} % KP Standard symbols
+ \loadmathfamily 3 {jkp\kpmatl bex} % KP extra symbols
+ \loadmathfamily 4 {jkpbsya} % KP symbols from AMSTeX
+ \loadmathfamily 5 {jkp\kpmatbbss\kpmatl bsyb\kpmatw} % KP symbols from AMSTeX
+ \loadmathfamily 6 {jkp\kpmatl bsyc} % KP symbols from TX fonts
+ \loadmathfamily 7 {jkp\kpmatl bexa} % KP extra symbols
+ \loadmathfamily 8 {jkp\kpmatss\kpmatl bmia\kpmatwnoss} % fraktur, upright greek
+ \loadmathfamily 9 {jkp\kpmatl bsyd\kpmatw} % script
+ \loadmathfamily 10 {jkp\kpmatssb bn7t} % sans serif bold
+ \loadmathfamily 11 {jkp\kpmatssb bmi\kpmatf} % sans serif bold slanted
+ \setkpsumsw
+}
+
+\def\setkpsumsw{%
+ \ismacro\kpmatss{ss}\iftrue
+ \mathchardef\sum="13B4 \mathchardef\prod="13B5 \mathchardef\coprod="13C4
+ \else
+ \mathchardef\sum="1350 \mathchardef\prod="1351 \mathchardef\coprod="1360
+ \fi
+ \ismacro\kpmatw{w}\iftrue
+ \thinmuskip=3mu \medmuskip=4mu plus 1.5mu minus 3mu \thickmuskip=5mu plus 4mu
+ \else
+ \thinmuskip=2mu \medmuskip=3mu plus 1.5mu minus 3mu \thickmuskip=4mu plus 3mu
+ \fi
+}
+\def\greekup{\let\alpha \upalpha \let\beta \upbeta \let\gamma \upgamma
+ \let\delta \updelta \let\epsilon \upepsilon \let\zeta \upzeta
+ \let\eta \upeta \let\theta \uptheta \let\iota \upiota \let\kappa \upkappa
+ \let\lambda \uplambda \let\mu \upmu \let\nu \upnu \let\xi \upxi
+ \let\pi \uppi \let\rho \uprho \let\sigma \upsigma \let\tau \uptau
+ \let\upsilon \upupsilon \let\phi \upphi \let\chi \upchi \let\psi \uppsi
+ \let\omega \upomega \let\varepsilon \upvarepsilon \let\vartheta \upvartheta
+ \let\varpi \upvarpi \let\varrho \upvarrho \let\varsigma \upvarsigma
+ \let\varphi \upvarphi
+}
+\def\greeknormal{\mathchardef\alpha="010B \mathchardef\beta="010C
+ \mathchardef\gamma="010D \mathchardef\delta="010E \mathchardef\epsilon="010F
+ \mathchardef\zeta="0110 \mathchardef\eta="0111 \mathchardef\theta="0112
+ \mathchardef\iota="0113 \mathchardef\kappa="0114 \mathchardef\lambda="0115
+ \mathchardef\mu="0116 \mathchardef\nu="0117 \mathchardef\xi="0118
+ \mathchardef\pi="0119 \mathchardef\rho="011A \mathchardef\sigma="011B
+ \mathchardef\tau="011C \mathchardef\upsilon="011D \mathchardef\phi="011E
+ \mathchardef\chi="011F \mathchardef\psi="0120 \mathchardef\omega="0121
+ \mathchardef\varepsilon="0122 \mathchardef\vartheta="0123
+ \mathchardef\varpi="0124 \mathchardef\varrho="0125
+ \mathchardef\varsigma="0126 \mathchardef\varphi="0127
+}
+\def\partialup {\mathchardef\partial="0180 }
+\def\partialnormal {\mathchardef\partial="0140 }
+
+\def\narrowiints{\ifnum\oiintop="1\txexafam 08 \narrowiintsA+\fi}
+\def\normaliints{\ifnum\oiintop="1\txexafam 08 \else \narrowiintsA-\fi}
+\def\narrowiintsA#1{\edef\tmp{\the\count0}%
+ \narrowiintsB #1\oiintop \iintop \iiintop \iiiintop \idotsintop \oiiintop \oiintctrclockwiseop
+ \varoiintclockwiseop \oiiintctrclockwiseop \varoiiintclockwiseop \oiintclockwiseop
+ \varoiintctrclockwiseop \oiiintclockwiseop \varoiiintctrclockwiseop \sqiintop \sqiiintop
+ \variintop \variiintop \variiiintop \varidotsintop \relax \count0=\tmp\relax
+}
+\def\narrowiintsB#1#2{\ifx#2\relax \else
+ \count0=#2\advance\count0 by#1100 \mathchardef#2=\count0
+ \expandafter\narrowiintsB\expandafter#1\fi
+}
+\kpmathreset\normalmath
+
+\mathchardef \varintop "1\txexafam 54
+\mathchardef \variintop "1\txexafam 56
+\mathchardef \variiintop "1\txexafam 58
+\mathchardef \variiiintop "1\txexafam 5A
+\mathchardef \varidotsintop "1\txexafam 5C
+
+\def\varint {\varintop\nolimits}
+\def\variint {\variintop\nolimits}
+\def\variiint {\variiintop\nolimits}
+\def\variiiint {\variiiintop\nolimits}
+\def\varidotsint {\varidotsintop\nolimits}
+
+\mathchardef \varemptyset "02A0
+
+\def\widearc{\mathaccent"0386 }
+\def\widearcarrow{\mathaccent"038C }
+\def\wideparen{\mathaccent"0392 }
+\def\widering#1{{\mathop{\wideparen{#1}}\limits
+ ^{\vbox to0pt{\kern-.2ex\hbox{\the\textfont0\char"17}\vss}}}%
+}
+\mathchardef\bracext "0\txexafam 20
+\def\downbracefill{$\mathsurround=0pt
+ \braceld\mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu
+ \braceru\bracelu
+ \mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu\bracerd$%
+}
+\def\upbracefill{$\mathsurround=0pt
+ \bracelu\mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu
+ \bracerd\braceld
+ \mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu\braceru$%
+}
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex b/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex
index a8ab3680259..2ea847c206b 100644
--- a/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex
@@ -8,9 +8,6 @@
\ifx\sizespec\undefined \def\sizespec{}\fi
\ifx\font\corkencoded\else \ifx\font\unicoded\else \input chars-8z \fi\fi
-\let\normalmathloading=\relax
-\ifx\mathpreloaded A\else \input ams-math \fi
-
\ifx\font\corkencoded \def\tmp{ec}\else \def\tmp{cs}\fi
\ifx\font\unicoded \def\famname{lmroman10} \input unifam
@@ -31,6 +28,13 @@
\expandafter\csname\expandafter\tenonlytext\string#1c\endcsname}
\def\tenonlytext{ten}
+\let\lmfonts=\font % macros can do test: \ifx\font\lmfonts ...
+
+\ifx\loadmathfonts\relax \endinput \fi
+
+\let\normalmathloading=\relax
+\ifx\mathpreloaded A\else \input ams-math \fi
+
\ifx\font\corkencoded \def\tmp{rm}\else \def\tmp{cs}\fi
\def\exregtfm #1*{\edef\tmpa{#1*}\expandafter\regtfm\tmpa}
@@ -66,6 +70,4 @@
\normalmath \let\normalmathloading=y
-\let\lmfonts=\font % macros can do test: \ifx\font\lmfonts ...
-
% end of lmfonts.tex
diff --git a/Master/texmf-dist/tex/csplain/opmac/fontfam-catalog.tex b/Master/texmf-dist/tex/csplain/opmac/fontfam-catalog.tex
index 56ac94e3c53..db9077c3ccf 100644
--- a/Master/texmf-dist/tex/csplain/opmac/fontfam-catalog.tex
+++ b/Master/texmf-dist/tex/csplain/opmac/fontfam-catalog.tex
@@ -26,7 +26,9 @@
{\currtt \ifx\prefix\empty \else \expandafter\string\prefix\fi
\string#1 }{\prefix#1%
\edef\tmp{\ifx\prefix\empty\else\fontname\the\font\fi}%
- \ifx\tmp\basicfont {\currtt Not available}\else \fontfamsample \fi
+ \ifx\tmp\basicfont
+ \ifx#1\rm \fontfamsample \else {\currtt Not available}\fi
+ \else \fontfamsample \fi
\par}%
\expandafter\pcatB\fi
}
@@ -46,8 +48,14 @@ size: \expandafter\ignorept\the\fontdim /\expandafter\ignorept\the\dimen0
\ifx\loadmathfonts\undefined \let\loadmathfonts=\relax \fi
\let\fontfamexec=\fontfamexecC
\ifx\fontfamsample\undefined
- \def\fontfamsample{ABCDabcd áéíóúů řžč ÁÉÍÓÚŮ ŘŽČ 0123456789}
-\fi
+ \def\fontfamsample{ABCDabcd Qsty fi fl áéíóúüů řžč ÁÉÍÓÚÜŮ ŘŽČ 0123456789}
+ \ifx\chyph\undefined \ismacro\fotenc{8t}\iftrue
+ \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}
+\fi\fi\fi
\fontfamL
\endgroup
diff --git a/Master/texmf-dist/tex/csplain/opmac/fontfam-global.tex b/Master/texmf-dist/tex/csplain/opmac/fontfam-global.tex
index 448805b6f89..c61ef74dbdb 100644
--- a/Master/texmf-dist/tex/csplain/opmac/fontfam-global.tex
+++ b/Master/texmf-dist/tex/csplain/opmac/fontfam-global.tex
@@ -1,8 +1,10 @@
+\fontfamnote {Fonts derived from Computer Modern}
\setfontfam [LM fonts] {\rm \it \bf \bi \tt} {\caps} {} {AMS} (8t 8z U) {\input lmfonts}
\famalias{latinmodern}{lmfonts} \famalias{lmfont}{lmfonts}
\famalias{latinmodernfonts}{lmfonts} \famalias{latinmodern}{lmfonts}
+\fontfamnote {Adobe 35 fonts (installed in each PostScript RIP)}
\setfontfam [Times] {\rm \it \bf \bi \tt} {} {} {TX} (8t 8z) {\input ctimes}
\famalias{timesroman}{times}
\setfontfam [Helvetica] {\rm \it \bf \bi \tt} {\cond} {} {TX} (8t 8z) {\input chelvet}
@@ -11,6 +13,7 @@
\setfontfam [Palatino] {\rm \it \bf \bi \tt} {} {} {TX} (8t 8z) {\input cpalatin}
\setfontfam [New Century] {\rm \it \bf \bi \tt} {} {} {TX} (8t 8z) {\input cncent}
+\fontfamnote {TeXGyre project, fonts derived from Adobe 35}
\setfontfam [TG Termes] {\rm \it \bf \bi} {\caps} {} {TX} (8t 8z U) {\input cs-termes}
\famalias{termes}{tgtermes} \famalias{texgyretermes}{tgtermes}
\setfontfam [TG Heros] {\rm \it \bf \bi} {\caps \cond} {} {TX} (8t 8z U) {\input cs-heros}
@@ -26,9 +29,17 @@
\setfontfam [TG Cursor] {\rm \it \bf \bi} {\caps} {} {TX} (8t 8z U) {\input cs-cursor}
\famalias{cursor}{tgcursor} \famalias{texgyrecursor}{tgcursor}
-\setfontfam [Antykwa Torunska] {\lr \li \rm \it \mr \mi \bf \bi} {} {} {TX} (8t 8z) {\input cs-antt}
-\setfontfam [Antykwa Poltawskiego] {\rm \it \bf \bi} {\caps \wli} {} {TX} (8t 8z U) {\input cs-polta}
+\fontfamnote {Polish fonts}
+\setfontfam [Antykwa Torunska] {\rm \it \bf \bi} {\caps \cond \wlight} {} {TX} (8t 8z) {\input cs-antt}
+\setfontfam [Antykwa Poltawskiego] {\rm \it \bf \bi} {\caps \wlight} {} {TX} (8t 8z U) {\input cs-polta}
+\fontfamnote {Miscelaneous}
\setfontfam [Charter] {\rm \it \bf \bi} {} {} {TX} (8t 8z) {\input cs-charter}
\setfontfam [Arev Sans] {\rm \it \bf \bi} {} {} {TX} (8t) {\input cs-arev}
\setfontfam [Bera] {\rm \it \bf \bi} {\sans} {} {TX} (8t) {\input cs-bera}
+
+\setfontfam [Linux Libertine] {\rm \it \bf \bi} {\mono \sans \caps} {} {TX} (U sU) {\input cs-libertine}
+\famalias{libertine}{linuxlibertine} \famalias{linlibertine}{linuxlibertine}
+\setfontfam [KP fonts] {\rm \it \bf \bi}
+ {\caps \bcaps \slant \sans \ttset \wlight \bext \noflig \oldn \olds \oldsv}
+ {... 22 modifiers in total} {KP} (8t 7t) {\input kp-fonts}
diff --git a/Master/texmf-dist/tex/csplain/opmac/fontfam.tex b/Master/texmf-dist/tex/csplain/opmac/fontfam.tex
index 519249fbb83..863f5051860 100644
--- a/Master/texmf-dist/tex/csplain/opmac/fontfam.tex
+++ b/Master/texmf-dist/tex/csplain/opmac/fontfam.tex
@@ -10,7 +10,7 @@
% Font Family Names if unknown. Example:
% \fontfam [Times] or \fontfam [Times Roman] ... does \input ctimes
-% See end of this file this for more details.
+% See end of this file for more details.
\ifx\OPmacversion\udefined \input opmac \fi
@@ -58,6 +58,8 @@
}
\def\famalias#1#2{\slet{fs:#1}{fs:#2}}
+\def\fontfamnote#1{\addto\fontfamL{\fontfamnoteA{#1}}}
+\def\fontfamnoteA#1{\immediate\write16{=== #1 ===}}
\input fontfam-global
@@ -119,6 +121,8 @@ And \famalias can be used:
The aliasname and origname must be lowecase and without spaces. See
fontfam-global.tex for examples.
+\fontfamnote{text} prints text to the listing of font families.
+
Note that the macro file fontfam.tex and the data fontfam-global.tex and
fontfam-local.tex are read on demand only when \fontfam macro is used in
OPmac. It is not loaded by OPmac directly because user may not need to use
diff --git a/Master/texmf-dist/tex/csplain/opmac/opmac.tex b/Master/texmf-dist/tex/csplain/opmac/opmac.tex
index 7ecc4ac5581..aef308105b8 100644
--- a/Master/texmf-dist/tex/csplain/opmac/opmac.tex
+++ b/Master/texmf-dist/tex/csplain/opmac/opmac.tex
@@ -5,7 +5,7 @@
%% The history of versions is at the end of this file, after \endpinput
\ifx\OPmacversion\undefined \else \endinput \fi
-\def\OPmacversion{Apr. 2016c}
+\def\OPmacversion{May 2016}
\immediate\write16{This is OPmac (Olsak's Plain macros), version <\OPmacversion>}
%%%%%%%%%%%%%% Basic macros, sec. 3.1 in opmac-d.pdf
@@ -66,9 +66,10 @@
\addprotect\percent \addprotect\bslash \addprotect\, \addprotect\exfont
\bgroup \catcode`!=3 \catcode`?=3
-\gdef\replacestrings#1#2{\long\def\replacestringsA##1#1##2!{%
- \ifx!##2!\addto\tmpb{##1}\else\addto\tmpb{##1#2}\replacestringsA##2!\fi}%
- \edef\tmpb{\expandafter}\expandafter\replacestringsA\tmpb?#1!%
+\gdef\replacestrings#1#2{\long\def\replacestringsA##1#1{\def\tmpb{##1}\replacestringsB}%
+ \long\def\replacestringsB##1#1{\ifx!##1\relax \else\addto\tmpb{#2##1}%
+ \expandafter\replacestringsB\fi}% improved version <May 2016> inspired
+ \expandafter\replacestringsA\tmpb?#1!#1% from pysyntax.tex by Petr Krajnik
\long\def\replacestringsA##1?{\def\tmpb{##1}}\expandafter\replacestringsA\tmpb
}
\egroup
@@ -142,7 +143,7 @@
\opwarning{No multilanguage support (csplain is recommended)}
\fi
% macros from csplain, file csfontsm.tex:
- \font\tenbi=cmbxti10 \def\bi{\tenbi}
+ \ifx\tenbi\undefined \font\tenbi=cmbxti10 \def\bi{\tenbi}\fi
\def\letfont#1#2{\ifx#2=\expandafter\letfont\expandafter#1\else
\expandafter\font\expandafter#1\expandafter\rfontskipat\fontname#2 \relax\space \fi}
\def\rfontskipat#1{\ifx#1"\expandafter\rfskipatX\else\expandafter\rfskipatN\expandafter#1\fi}
@@ -345,7 +346,7 @@
\def\chapfont{\typobase\typoscale[\magstep3/\magstep3]\bfshape}
\def\secfont{\typobase\typoscale[\magstep2/\magstep2]\bfshape}
\def\seccfont{\typobase\typoscale[\magstep1/\magstep1]\bfshape}
-\def\bfshape{\let\tenit=\tenbi \boldmath \bf}
+\def\bfshape{\let\tenit=\tenbi \everymath\expandafter{\the\everymath\boldmath}\bf}
\newcount\chapnum \newcount\secnum \newcount\seccnum \newcount\nonumnum
\newif\ifnotoc \notocfalse \def\notoc{\global\notoctrue}
@@ -1758,9 +1759,11 @@ Jan. 2016 \inspicpage introduced
Mar. 2016 \thefnote default changed: ^{num}) -> ^{num}
Apr. 2016 \frame: redundant group removed
\isnextchar improved (using \toks)
-Apr. 2016a \eoldef introduced to \tit, \chap, \sec, \secc, see OPmac trick 0121
-Apr. 2016b \input opmac-luatex.tex introduced
+ \eoldef introduced to \tit, \chap, \sec, \secc, see OPmac trick 0121
+ \input opmac-luatex.tex introduced
\slet introduced
-Apr. 2016c \fontfam introduced, \usebib as module loaded
+ \fontfam introduced, \usebib as module loaded
+May 2016 \replacestrings improved
+ \bfshape: \everymath={\boldmath} instead \boldmath directly
%%%%%%%%%%%%%% End of opmac.tex