summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/csplain/fonts
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-07 22:17:55 +0000
committerKarl Berry <karl@freefriends.org>2016-05-07 22:17:55 +0000
commitb5d9cb0ff373d2eb1a99192dcef729faf6e2dd07 (patch)
tree24a13389f4c7c91e4ad7e914331e6635ef781387 /Master/texmf-dist/tex/csplain/fonts
parent3057e4132188d2e2d9423f1a88c854087d0e44e7 (diff)
csplain (7may16)
git-svn-id: svn://tug.org/texlive/trunk@40932 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/csplain/fonts')
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/ams-math.tex25
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cavantga.tex53
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cbookman.tex51
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/chelvet.tex95
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cncent.tex51
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cpalatin.tex51
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cs-heros.tex99
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/cs-polta.tex5
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/ctimes.tex48
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/ff-mac.tex42
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/kp-fonts.tex4
-rw-r--r--Master/texmf-dist/tex/csplain/fonts/lmfonts.tex253
12 files changed, 540 insertions, 237 deletions
diff --git a/Master/texmf-dist/tex/csplain/fonts/ams-math.tex b/Master/texmf-dist/tex/csplain/fonts/ams-math.tex
index 5899c7cb452..785bcc27e13 100644
--- a/Master/texmf-dist/tex/csplain/fonts/ams-math.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/ams-math.tex
@@ -98,6 +98,18 @@
\if*#2\else \expandafter\reversetfm \fi
}
+% AMS fonts
+\regtfm msam 0 msam5 5.5 msam6 6.5 msam7 7.5 msam8 8.5 msam9
+ 9.5 msam10 *
+\regtfm msbm 0 msbm5 5.5 msbm6 6.5 msbm7 7.5 msbm8 8.5 msbm9
+ 9.5 msbm10 *
+\regtfm eufm 0 eufm5 5.5 eufm6 6.5 eufm7 7.5 eufm8 8.5 eufm9
+ 9.5 eufm10 *
+\regtfm eufb 0 eufb5 5.5 eufb6 6.5 eufb7 7.5 eufb8 8.5 eufb9
+ 9.5 eufb10 *
+% other fonts
+\regtfm rsfs 0 rsfs5 6 rsfs7 8.5 rsfs10 *
+
\ifx\font\lmfonts \else % lmfonts setting has a precedence
% CM text fonts which have the CSfont alternative:
@@ -123,17 +135,7 @@
cmbsy10 *
\regtfm cmex 0 cmex7 7.5 cmex8 8.5 cmex9 9.5 cmex10 *
\regtfm cmexb 0 cmexb10 *
-% AMS fonts
-\regtfm msam 0 msam5 5.5 msam6 6.5 msam7 7.5 msam8 8.5 msam9
- 9.5 msam10 *
-\regtfm msbm 0 msbm5 5.5 msbm6 6.5 msbm7 7.5 msbm8 8.5 msbm9
- 9.5 msbm10 *
-\regtfm eufm 0 eufm5 5.5 eufm6 6.5 eufm7 7.5 eufm8 8.5 eufm9
- 9.5 eufm10 *
-\regtfm eufb 0 eufb5 5.5 eufb6 6.5 eufb7 7.5 eufb8 8.5 eufb9
- 9.5 eufb10 *
-% other fonts
-\regtfm rsfs 0 rsfs5 6 rsfs7 8.5 rsfs10 *
+
\regtfm bfsans 0 ecsx0500 5.5 ecsx0600 6.5 ecsx0700 7.5 ecsx0800
8.5 ecsx0900 9.5 ecsx1000 11.1 ecsx1200 *
\regtfm bisans 0 ecso0500 5.5 ecso0600 6.5 ecso0700 7.5 ecso0800
@@ -524,3 +526,4 @@ Nov. 2013 Test of \normalmathloading introduced
Jul. 2014 \bgroup -> \begingroup in \not macro
Jun 2015 \ifx\chyph\undefined added
Apr. 2016 \tenbi=cmbxti10 corrected
+May 2016 \regtfm msam etc. moved out of \ifx\font\lmfonts
diff --git a/Master/texmf-dist/tex/csplain/fonts/cavantga.tex b/Master/texmf-dist/tex/csplain/fonts/cavantga.tex
index fd1276c0412..52fe079cdf2 100644
--- a/Master/texmf-dist/tex/csplain/fonts/cavantga.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/cavantga.tex
@@ -1,28 +1,40 @@
-% The file cavantga.tex (C) Petr Olsak, 1996, 1999, 2012
-% Use "\input cavantga" to set the AvantGarde fonts family in text mode.
+% The file cavantga.tex (C) Petr Olsak, 1996, 1999, 2012, 2016
+% Use "\input cavantga" to set the AvantGarde fonts family
-\message{FONT: AvantGarde -
- \string\rm, \string\it, \string\bf, \string\bi, \string\tt.}
+\ifx\ffdecl\undefined \input ff-mac \fi
-\ifx\font\unicoded \message{WARNING: This font family is unavailable in UNICODE.}
- \endinput\fi
+\ffdecl [AvantGarde] {\rm \bf \it \bi} {\caps{\rm\bf}} {} {TX} {8z 8t}
-\ifx\sizespec\undefined \def\sizespec{}\fi
-\ifx\font\corkencoded
- \def\tmp{8t \sizespec}\def\tmpa{8t \sizespec}
-\else \def\tmp{8z \sizespec}\def\tmpa{8u \sizespec}
+\def\caps{\ffvars{k}{d}{!}{!}\ffsetV{caps}{c}\ffsetX}
+\def\nocaps{\ffvars{k}{d}{ko}{do}\ffsetV{caps}{}\ffsetX}
+\nocaps\relax % default
+\def\ffwarning#1{\ffmessage{FONT warning: AvantGarde - \string\caps#1 unavailable}}
+
+\ismacro\fotenc{8z}\ifttrue
+ \font\tenrm=pagk8z \sizespec
+ \font\tenbf=pagd8z \sizespec
+ \font\tenit=pagko8z \sizespec
+ \font\tenbi=pagdo8z \sizespec
+ \font\tentt=pcrr8u \sizespec
+ \let\tensl=\tenit
+
+ \def\ffnamegen{pag\ffvarV\capsV 8z}
+
+ \input chars-8z
\fi
-\font\tenrm=pagk\tmp
-\font\tenbf=pagd\tmp
-\font\tenit=pagko\tmp
-\font\tenbi=pagdo\tmp
-\font\tentt=pcrr\tmpa
-\let\tensl=\tenit
+\ismacro\fotenc{8t}\ifttrue
+ \font\tenrm=pagk8t \sizespec
+ \font\tenbf=pagd8t \sizespec
+ \font\tenit=pagko8t \sizespec
+ \font\tenbi=pagdo8t \sizespec
+ \font\tentt=pcrr8t \sizespec
+ \let\tensl=\tenit
-\tenrm
+ \def\ffnamegen{pag\ffvarV\capsV 8t}
+\fi
-\ifx\font\corkencoded \else \input chars-8z \fi
+\tenrm
\let\setsimplemath=\relax % this command is obsolete
@@ -32,6 +44,7 @@
\let\TeX=\agTeX
\ifx\loadmathfonts\relax \endinput \fi
-\ifx\mathpreloaded X\else \input tx-math \fi
+\ifx\mathpreloaded X\else \input tx-math \fi
+
+% end of ctimes.tex
-% end of cavantga.tex
diff --git a/Master/texmf-dist/tex/csplain/fonts/cbookman.tex b/Master/texmf-dist/tex/csplain/fonts/cbookman.tex
index 0cc2266d9a9..b75b2263288 100644
--- a/Master/texmf-dist/tex/csplain/fonts/cbookman.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/cbookman.tex
@@ -1,28 +1,40 @@
-% The file cbookman.tex (C) Petr Olsak, 1996, 1999, 2012
-% Use "\input cbookman" to set the Bookman fonts family in text mode
+% The file cbookman.tex (C) Petr Olsak, 1996, 1999, 2012, 2016
+% Use "\input cbookman" to set the Bookman fonts family
-\message{FONT: Bookman -
- \string\rm, \string\it, \string\bf, \string\bi, \string\tt.}
+\ifx\ffdecl\undefined \input ff-mac \fi
-\ifx\font\unicoded \message{WARNING: This font family is unavailable in UNICODE.}
- \endinput\fi
+\ffdecl [Bookman] {\rm \bf \it \bi} {\caps{\rm\bf}} {} {TX} {8z 8t}
-\ifx\sizespec\undefined \def\sizespec{}\fi
-\ifx\font\corkencoded
- \def\tmp{8t \sizespec}\def\tmpa{8t \sizespec}
-\else \def\tmp{8z \sizespec}\def\tmpa{8u \sizespec}
+\def\caps{\ffvars{l}{d}{!}{!}\ffsetV{caps}{c}\ffsetX}
+\def\nocaps{\ffvars{l}{d}{li}{di}\ffsetV{caps}{}\ffsetX}
+\nocaps\relax % default
+\def\ffwarning#1{\ffmessage{FONT warning: Bookman - \string\caps#1 unavailable}}
+
+\ismacro\fotenc{8z}\ifttrue
+ \font\tenrm=pbkl8z \sizespec
+ \font\tenbf=pbkd8z \sizespec
+ \font\tenit=pbkli8z \sizespec
+ \font\tenbi=pbkdi8z \sizespec
+ \font\tentt=pcrr8u \sizespec
+ \let\tensl=\tenit
+
+ \def\ffnamegen{pbk\ffvarV\capsV 8z}
+
+ \input chars-8z
\fi
-\font\tenrm=pbkl\tmp
-\font\tenbf=pbkd\tmp
-\font\tenit=pbkli\tmp
-\font\tenbi=pbkdi\tmp
-\font\tentt=pcrr\tmpa
-\let\tensl=\tenit
+\ismacro\fotenc{8t}\ifttrue
+ \font\tenrm=pbkl8t \sizespec
+ \font\tenbf=pbkd8t \sizespec
+ \font\tenit=pbkli8t \sizespec
+ \font\tenbi=pbkdi8t \sizespec
+ \font\tentt=pcrr8t \sizespec
+ \let\tensl=\tenit
-\tenrm
+ \def\ffnamegen{pbk\ffvarV\capsV 8t}
+\fi
-\ifx\font\corkencoded \else \input chars-8z \fi
+\tenrm
\let\setsimplemath=\relax % this command is obsolete
@@ -34,4 +46,5 @@
\ifx\loadmathfonts\relax \endinput \fi
\ifx\mathpreloaded X\else \input tx-math \fi
-% end of cbookman.tex
+% end of ctimes.tex
+
diff --git a/Master/texmf-dist/tex/csplain/fonts/chelvet.tex b/Master/texmf-dist/tex/csplain/fonts/chelvet.tex
index 85a5cb7c1e9..7e7ec27c385 100644
--- a/Master/texmf-dist/tex/csplain/fonts/chelvet.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/chelvet.tex
@@ -1,56 +1,50 @@
-% The file chelvet.tex (C) Petr Olsak, 1996, 1999, 2012
-% Use "\input chelvet" to set the Helvetica fonts family in text mode
-
-\message{FONT: Helvetica -
- \string\rm, \string\it, \string\bf, \string\bi, \string\tt,
- \string\cond\string\rm, ..., \string\cond\string\bi, \string\narrow.}
-
-\ifx\font\unicoded \message{WARNING: This font family is unavailable in UNICODE.}
- \endinput\fi
-
-\ifx\sizespec\undefined \def\sizespec{}\fi
-\ifx\font\corkencoded
- \def\tmp{8t \sizespec}\def\tmpa{8t \sizespec}
-\else \def\tmp{8z \sizespec}\def\tmpa{8u \sizespec}
+% The file chelvet.tex (C) Petr Olsak, 1996, 1999, 2012, 2016
+% Use "\input chelvet" to set the Helvetica fonts family
+
+\ifx\ffdecl\undefined \input ff-mac \fi
+
+\ffdecl [Helvetica] {\rm \bf \it \bi} {\cond \caps{\rm\bf}} {} {TX} {8z 8t}
+
+\def\caps{\ffvars{r}{b}{!}{!}\ffsetV{caps}{c}\ffsetX}
+\def\nocaps{\ffvars{r}{b}{ro}{bo}\ffsetV{caps}{}\ffsetX}
+\def\cond{\ffsetV{cond}{n}\ffsetX}
+\def\nocond{\ffsetV{cond}{}\ffsetX}
+\nocaps\nocond\relax % default
+\def\ffwarning#1{\ffmessage{FONT warning: Helvetica - \string\caps#1 unavailable}}
+
+\ismacro\fotenc{8z}\ifttrue
+ \font\tenrm=phvr8z \sizespec
+ \font\tenbf=phvb8z \sizespec
+ \font\tenit=phvro8z \sizespec
+ \font\tenbi=phvbo8z \sizespec
+ \font\tentt=pcrr8u \sizespec
+ \let\tensl=\tenit
+ \font\tenrmn=phvrn8z \sizespec
+ \font\tenbfn=phvbn8z \sizespec
+ \font\tenitn=phvron8z \sizespec
+ \font\tenbin=phvbon8z \sizespec
+
+ \def\ffnamegen{phv\ffvarV\condV\capsV 8z}
+
+ \input chars-8z
\fi
-\font\tenrm=phvr\tmp
-\font\tenbf=phvb\tmp
-\font\tenit=phvro\tmp
-\font\tenbi=phvbo\tmp
-\font\tentt=pcrr\tmpa
-\let\tensl=\tenit
-
-\tenrm
-
-\ifx\font\corkencoded % Narrow variants
- \font\tenrmn=phvr8tn
- \font\tenbfn=phvb8tn
- \font\tenitn=phvro8tn
- \font\tenbin=phvbo8tn
-\else
- \font\tenrmn=phvrn8z
- \font\tenbfn=phvbn8z
- \font\tenitn=phvron8z
- \font\tenbin=phvbon8z
+\ismacro\fotenc{8t}\ifttrue
+ \font\tenrm=phvr8t \sizespec
+ \font\tenbf=phvb8t \sizespec
+ \font\tenit=phvro8t \sizespec
+ \font\tenbi=phvbo8t \sizespec
+ \font\tentt=pcrr8t \sizespec
+ \let\tensl=\tenit
+ \font\tenrmn=phvr8tn \sizespec
+ \font\tenbfn=phvb8tn \sizespec
+ \font\tenitn=phvro8tn \sizespec
+ \font\tenbin=phvbo8tn \sizespec
+
+ \def\ffnamegen{phv\ffvarV\capsV 8t\condV}
\fi
-\ifx\regfontdefault\undefined \else
- \regfontdefault
- \regfont\tenrmn \regfont\tenitn
- \regfont\tenbfn \regfont\tenbin
-\fi
-
-\def\narrow{% Switches to Narrow variants
- \let\tenrm=\tenrmn \let\tenbf=\tenbfn
- \let\tenit=\tenitn \let\tenbi=\tenbin \tenrm}
-
-\def\cond#1{{\escapechar=-1 \expandafter}%
- \expandafter\csname\expandafter\tenonlytext\string#1n\endcsname}
-\def\tenonlytext{ten}
-
-
-\ifx\font\corkencoded \else \input chars-8z \fi
+\tenrm
\let\setsimplemath=\relax % this command is obsolete
@@ -62,4 +56,5 @@
\ifx\loadmathfonts\relax \endinput \fi
\ifx\mathpreloaded X\else \input tx-math \fi
-% end of chelvet.tex
+% end of ctimes.tex
+
diff --git a/Master/texmf-dist/tex/csplain/fonts/cncent.tex b/Master/texmf-dist/tex/csplain/fonts/cncent.tex
index dc73e350851..a98e2003985 100644
--- a/Master/texmf-dist/tex/csplain/fonts/cncent.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/cncent.tex
@@ -1,28 +1,40 @@
-% The file cncent.tex (C) Petr Olsak, 1996, 1999, 2012
-% Use "\input cncent" to set the NewCentury fonts family in text mode
+% The file cncent.tex (C) Petr Olsak, 1996, 1999, 2012, 2016
+% Use "\input cncent" to set the NewCentury fonts family
-\message{FONT: NewCentury -
- \string\rm, \string\it, \string\bf, \string\bi, \string\tt.}
+\ifx\ffdecl\undefined \input ff-mac \fi
-\ifx\font\unicoded \message{WARNING: This font family is unavailable in UNICODE.}
- \endinput\fi
+\ffdecl [NewCentury] {\rm \bf \it \bi} {\caps{\rm\bf}} {} {TX} {8z 8t}
-\ifx\sizespec\undefined \def\sizespec{}\fi
-\ifx\font\corkencoded
- \def\tmp{8t \sizespec}\def\tmpa{8t \sizespec}
-\else \def\tmp{8z \sizespec}\def\tmpa{8u \sizespec}
+\def\caps{\ffvars{r}{b}{!}{!}\ffsetV{caps}{c}\ffsetX}
+\def\nocaps{\ffvars{r}{b}{ri}{bi}\ffsetV{caps}{}\ffsetX}
+\nocaps\relax % default
+\def\ffwarning#1{\ffmessage{FONT warning: NewCentury - \string\caps#1 unavailable}}
+
+\ismacro\fotenc{8z}\ifttrue
+ \font\tenrm=pncr8z \sizespec
+ \font\tenbf=pncb8z \sizespec
+ \font\tenit=pncri8z \sizespec
+ \font\tenbi=pncbi8z \sizespec
+ \font\tentt=pcrr8u \sizespec
+ \let\tensl=\tenit
+
+ \def\ffnamegen{pnc\ffvarV\capsV 8z}
+
+ \input chars-8z
\fi
-\font\tenrm=pncr\tmp
-\font\tenbf=pncb\tmp
-\font\tenit=pncri\tmp
-\font\tenbi=pncbi\tmp
-\font\tentt=pcrr\tmpa
-\let\tensl=\tenit
+\ismacro\fotenc{8t}\ifttrue
+ \font\tenrm=pncr8t \sizespec
+ \font\tenbf=pncb8t \sizespec
+ \font\tenit=pncri8t \sizespec
+ \font\tenbi=pncbi8t \sizespec
+ \font\tentt=pncr8t \sizespec
+ \let\tensl=\tenit
-\tenrm
+ \def\ffnamegen{pnc\ffvarV\capsV 8t}
+\fi
-\ifx\font\corkencoded \else \input chars-8z \fi
+\tenrm
\let\setsimplemath=\relax % this command is obsolete
@@ -34,4 +46,5 @@
\ifx\loadmathfonts\relax \endinput \fi
\ifx\mathpreloaded X\else \input tx-math \fi
-% end of cncent.tex
+% end of ctimes.tex
+
diff --git a/Master/texmf-dist/tex/csplain/fonts/cpalatin.tex b/Master/texmf-dist/tex/csplain/fonts/cpalatin.tex
index 5a27e50558b..b2073fc79cf 100644
--- a/Master/texmf-dist/tex/csplain/fonts/cpalatin.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/cpalatin.tex
@@ -1,28 +1,40 @@
-% The file cpalatin.tex (C) Petr Olsak, 1996, 1999, 2012
-% Use "\input cpalatin" to set the Palatino fonts family in text mode
+% The file cpalatin.tex (C) Petr Olsak, 1996, 1999, 2012, 2016
+% Use "\input cpalatin" to set the Palatino fonts family
-\message{FONT: Palatino -
- \string\rm, \string\it, \string\bf, \string\bi, \string\tt.}
+\ifx\ffdecl\undefined \input ff-mac \fi
-\ifx\font\unicoded \message{WARNING: This font family is unavailable in UNICODE.}
- \endinput\fi
+\ffdecl [Palatino] {\rm \bf \it \bi} {\caps{\rm\bf}} {} {TX} {8z 8t}
-\ifx\sizespec\undefined \def\sizespec{}\fi
-\ifx\font\corkencoded
- \def\tmp{8t \sizespec}\def\tmpa{8t \sizespec}
-\else \def\tmp{8z \sizespec}\def\tmpa{8u \sizespec}
+\def\caps{\ffvars{r}{b}{!}{!}\ffsetV{caps}{c}\ffsetX}
+\def\nocaps{\ffvars{r}{b}{ri}{bi}\ffsetV{caps}{}\ffsetX}
+\nocaps\relax % default
+\def\ffwarning#1{\ffmessage{FONT warning: Palatino - \string\caps#1 unavailable}}
+
+\ismacro\fotenc{8z}\ifttrue
+ \font\tenrm=pplr8z \sizespec
+ \font\tenbf=pplb8z \sizespec
+ \font\tenit=pplri8z \sizespec
+ \font\tenbi=pplbi8z \sizespec
+ \font\tentt=pcrr8u \sizespec
+ \let\tensl=\tenit
+
+ \def\ffnamegen{ppl\ffvarV\capsV 8z}
+
+ \input chars-8z
\fi
-\font\tenrm=pplr\tmp
-\font\tenbf=pplb\tmp
-\font\tenit=pplri\tmp
-\font\tenbi=pplbi\tmp
-\font\tentt=pcrr\tmpa
-\let\tensl=\tenit
+\ismacro\fotenc{8t}\ifttrue
+ \font\tenrm=pplr8t \sizespec
+ \font\tenbf=pplb8t \sizespec
+ \font\tenit=pplri8t \sizespec
+ \font\tenbi=pplbi8t \sizespec
+ \font\tentt=pcrr8t \sizespec
+ \let\tensl=\tenit
-\tenrm
+ \def\ffnamegen{ppl\ffvarV\capsV 8t}
+\fi
-\ifx\font\corkencoded \else \input chars-8z \fi
+\tenrm
\let\setsimplemath=\relax % this command is obsolete
@@ -34,4 +46,5 @@
\ifx\loadmathfonts\relax \endinput \fi
\ifx\mathpreloaded X\else \input tx-math \fi
-% end of cpalatin.tex
+% end of ctimes.tex
+
diff --git a/Master/texmf-dist/tex/csplain/fonts/cs-heros.tex b/Master/texmf-dist/tex/csplain/fonts/cs-heros.tex
index 81beeafc408..58e1468e00b 100644
--- a/Master/texmf-dist/tex/csplain/fonts/cs-heros.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/cs-heros.tex
@@ -114,11 +114,12 @@ See the document kpfonts-plain.pdf for more information.
For font-file developers
========================
-Use \ifx\ffdecl\undefined \input ff-mac \fi first. The ff-mac.tex macro file
-provides:
+Use \ifx\ffdecl\undefined \input ff-mac \fi first. The ff-mac.tex macro
+file (means Font-File-MACros) provides:
\sizespec .. is empty or it keeps the size specification of the font.
\ffdecl .... prints font message and checks the font encoding.
+\fffam ..... expands to the family name
\ffvars .... declares four basic variants (values for \ffvarV)
\setfmV, \setfm ... macros used in font modifiers
\ismacro ... test if the macro is defined as given.
@@ -134,9 +135,22 @@ 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\fotenc{something}. Note, that ff-mac.tex keeps the \fotenc
-macro unchanged, but if it is not defined then it does:
+The font modifiers are based on the fact that font names of fonts includes
+these modifiers flags at given place in the name and they are independent
+one to another.
+
+All (modified) variants can be used in all various sizes by standard
+resizing tools given in CSplain or OPmac.
+
+
+Encodings
+---------
+
+You can declare more cases for various text font encondings. User can define
+font encoding by \def\fotenc{something}. Note \fotenc, no \fontenc. The
+sequence \fotenc means "FOnt Text ENCoding".
+
+The 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
- \def\fotenc{8t} if \input t1code or pdfTeX without CSplain is used
@@ -161,12 +175,16 @@ included in the provided encodings given in the last parameter. Else it
prints the message about font family, its selectors, modifiers and appends
the comment.
+The \fffam macro is defined by \ffdecl.
+
\ffvars {normal} {bold} {italic} {bolditalic}
---------------------------------------------
This macro gives the values to the \ffvarV macro dependent on what basic
variant is needed. The \ffvarV macro is used in \ffnamegen. See below.
+The \ffvars *must* be used for declaration variants if font modifiers are
+declared.
If you need to implement font modifier (say \modfoo), then define
@@ -177,8 +195,8 @@ The macro \ffsetV{foo}{text} define \fooV macro as text. So, you can use
Next, define default value for \fooV by \def\fooV{}.
-Finally, define the generic font name using \ffvarV and \fooV in it.
-These names are expanded to basic variant name given by \ffvars and the
+Finally, define \ffnamegen as a generic font name using \ffvarV and \fooV in
+it. These names are expanded to basic variant name given by \ffvars and the
actual value of \fooV given by \ffsetV. For example, if the metric names of
the font family are
@@ -189,18 +207,22 @@ the font family are
then declare \ffvars {RM} {BF} {!} {!} and define
- \def\modfoo{\ffsetV{foo}{FF}\ffsetX} \def\nomodfoo{\ffsetV{foo}{}\ffsetX}
+ \def\modfoo{\ffsetV{foo}{FF}\ffsetX} \def\nomodfoo{\ffsetV{foo}{}\ffsetX}
and finaly define \ffnamegen as:
- \def\ffnamegen{baa\ffvarV what\fooV}
+ \def\ffnamegen{baa\ffvarV what\fooV}
-The font modifiers are based on the fact that font names of fonts includes
-these modifiers flags at given place in the name and they are independent
-one to another.
+Note the {!} parameters in \ffars. They denote unavailable variants in used
+family. If user needs such variant (prefixed by a modifier) then
+\ffwarning#1 is executed. This macro does nothing by default, but you can
+define it for example as:
-All (modified) variants can be used in all various sizes by standard
-resizing tools given in CSplain or OPmac.
+ \def\ffwarning#1{\ffmessage{FONT warning: baa - \string\modfoo#1 unavailable}}
+
+The parameter #1 expands to the string of \rm, \bf, \it, or \bf which was
+selected by user. See an example in ctimes.tex. The macro \ffmessage writes
+text to the terminal plus log, but user can redefine it.
\ffalias {virtual-name} {real-name}
@@ -218,6 +240,10 @@ can declare:
Now, the baaRMwhatFF.tfm is used instead baaBFwhatFF.tfm.
+If a parameter of \ffalias includes macros: virtual-name is exapanded during
+declaration of the alias and real-name is expanded during real appication
+of the alias.
+
\regsizes {modifiers} {data}
----------------------------
@@ -249,18 +275,49 @@ used in the \ffoptV macro.
The \regsizes is implemented by \regtfm macro, see the ams-math.tex file.
-You cannot combine \ffalias together with \regsizes.
+The \ffalias does aliases before \ffoptV is applied, when \ffoptV is empty.
+
+The \regsizes macro is implemented by \regtfm. Roughly speaking, \regsizes
+with data shown above calls repeatedly (for all variants):
+
+\regtfm {\ffnamegen} 0 {\ffnamegenA} 7 {\ffnamegenB} 9 {\ffnamegenC} 11 ... *
+
+where \ffnamegen expands with \ffoptV empty, \ffnamegenA expands with
+\ffoptV equal to 6 (see =6 above), \ffnamegenB expands with \ffopV equal
+to 8 etc. You need not carry about them unles you implement OTF fonts.
+
+If you are using OTF fonts together with \regtfm, then
+define \ffnamegen without quotes and without \fontfeatures and
+without colon. This means that instead of defining:
+
+\def\ffnamegen{"[antpolt\wliV\ffoptV-\ffvarV]:\fontfeatures"}
+
+define only
+
+\def\ffnamegen{[antpolt\wliV\ffoptV-\ffvarV]}
+
+The \regsizes generates (in case of OTF fonts) something like this:
+
+\regtfm {\ffnamegen} 0 \ffnameotf{\ffnamegenA} 7 \ffnameotf{\ffnamegenB} 9 ... *
+
+and \ffnameotf is defined as \def#1{"#1:\fontfeatures"}, so \fontfeatures
+are added (and expanded at the time of \font processing, no at the time of
+\regtfm declaration (thi is important for users using \useff .
+
+If \regtfm is used directly then you must \let \ffnameotf=\ffnameotfA before
+\regtfm and \let \ffnameotf=\ffnameotfB after this. See lmfonts.tex for an
+inspiration.
\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
+The macro \foo is defined as \protected\def if 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
+primitive 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
+macro is used 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
@@ -271,10 +328,10 @@ 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
+modifer (\ffsetX) must be expanded during \write 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:
+example, suppose that you define a modifier:
\def\modfoo{\ffvars{A}{B}{C}{D}\ffsetV{foo}{text}\ffsetX}
diff --git a/Master/texmf-dist/tex/csplain/fonts/cs-polta.tex b/Master/texmf-dist/tex/csplain/fonts/cs-polta.tex
index c13f430372b..424aeb3d92e 100644
--- a/Master/texmf-dist/tex/csplain/fonts/cs-polta.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/cs-polta.tex
@@ -44,12 +44,13 @@
\font\tenit = "[antpolt-italic]:\fontfeatures" \sizespec
\font\tenbi = "[antpolt-bolditalic]:\fontfeatures" \sizespec
- \def\ffnamegen{"[antpolt\wliV\ffoptV-\ffvarV]:\capsV\fontfeatures"}
+ \def\ffnamegen{[antpolt\wliV\ffoptV-\ffvarV]}
\ffvars {regular} {bold} {italic} {bolditalic}
\def\wlight{\ffsetV{wli}{lt}\ffsetX}
\def\nowlight{\ffsetV{wli}{}\ffsetX}
- \def\caps{\ffsetV{caps}{+smcp;}\ffsetX}
+ \def\caps{\ffsetV{caps}{;+smcp}\ffsetX}
+ \expandafter\def\expandafter\fontfeatures\expandafter{\fontfeatures\capsV}
\def\nocaps{\ffsetV{caps}{}\ffsetX}
\def\wliV{}
diff --git a/Master/texmf-dist/tex/csplain/fonts/ctimes.tex b/Master/texmf-dist/tex/csplain/fonts/ctimes.tex
index dd769e1aeb5..3f276d7c34a 100644
--- a/Master/texmf-dist/tex/csplain/fonts/ctimes.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/ctimes.tex
@@ -1,28 +1,40 @@
-% The file ctimes.tex (C) Petr Olsak, 1996, 1999, 2012
-% Use "\input ctimes" to set the Times fonts family in text mode
+% The file ctimes.tex (C) Petr Olsak, 1996, 1999, 2012, 2016
+% Use "\input ctimes" to set the Times fonts family
-\message{FONT: Times -
- \string\rm, \string\it, \string\bf, \string\bi, \string\tt.}
+\ifx\ffdecl\undefined \input ff-mac \fi
-\ifx\font\unicoded \message{WARNING: This font family is unavailable in UNICODE.}
- \endinput\fi
+\ffdecl [Times] {\rm \bf \it \bi} {\caps{\rm\bf}} {} {TX} {8z 8t}
-\ifx\sizespec\undefined \def\sizespec{}\fi
-\ifx\font\corkencoded
- \def\tmp{8t \sizespec}\def\tmpa{8t \sizespec}
-\else \def\tmp{8z \sizespec}\def\tmpa{8u \sizespec}
+\def\caps{\ffvars{r}{b}{!}{!}\ffsetV{caps}{c}\ffsetX}
+\def\nocaps{\ffvars{r}{b}{ri}{bi}\ffsetV{caps}{}\ffsetX}
+\nocaps\relax % default
+\def\ffwarning#1{\ffmessage{FONT warning: Times - \string\caps#1 unavailable}}
+
+\ismacro\fotenc{8z}\ifttrue
+ \font\tenrm=ptmr8z \sizespec
+ \font\tenbf=ptmb8z \sizespec
+ \font\tenit=ptmri8z \sizespec
+ \font\tenbi=ptmbi8z \sizespec
+ \font\tentt=pcrr8u \sizespec
+ \let\tensl=\tenit
+
+ \def\ffnamegen{ptm\ffvarV\capsV 8z}
+
+ \input chars-8z
\fi
-\font\tenrm=ptmr\tmp
-\font\tenbf=ptmb\tmp
-\font\tenit=ptmri\tmp
-\font\tenbi=ptmbi\tmp
-\font\tentt=pcrr\tmpa
-\let\tensl=\tenit
+\ismacro\fotenc{8t}\ifttrue
+ \font\tenrm=ptmr8t \sizespec
+ \font\tenbf=ptmb8t \sizespec
+ \font\tenit=ptmri8t \sizespec
+ \font\tenbi=ptmbi8t \sizespec
+ \font\tentt=pcrr8t \sizespec
+ \let\tensl=\tenit
-\tenrm
+ \def\ffnamegen{ptm\ffvarV\capsV 8t}
+\fi
-\ifx\font\corkencoded \else \input chars-8z \fi
+\tenrm
\let\setsimplemath=\relax % this command is obsolete
diff --git a/Master/texmf-dist/tex/csplain/fonts/ff-mac.tex b/Master/texmf-dist/tex/csplain/fonts/ff-mac.tex
index 8ebb89976ae..f94ab631f59 100644
--- a/Master/texmf-dist/tex/csplain/fonts/ff-mac.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/ff-mac.tex
@@ -7,14 +7,15 @@
\def\ffdecl [#1]#2#3#4#5#6{\ffdecltest#6 {}
\iftrue
+ \def\fffam{#1}%
{\toks2={#2}\toks3={#3}\toks4={#4}%
\immediate\write16{FONT: #1 - \the\toks2
\ifx\relax#3\relax\else ; mod:\the\toks3 \fi
\ifx\relax#4\relax\else ; \the\toks4 \fi
\ifx\loadmathfonts\relax \else ; +#5\fi}}%
\else
- \message{WARNING: #1 family is not available in
- \fotenc\space encoding. Ignored.}%
+ \ffmessage {WARNING: #1 family is not available in
+ \fotenc\space encoding. Ignored.}%
\endinput
\fi
}
@@ -26,6 +27,7 @@
}
\def\ffdecltestfin\iftrue{\iffalse}
\def\ffdecltestfound#1\iftrue{\fi\fi \iftrue}
+\ifx\ffmessage\undefined \def\ffmessage{\immediate\write16 }\fi
\ifx\sizespec\undefined \def\sizespec{}\fi
@@ -50,23 +52,28 @@
\def\ffvarY##1{\ifcase##1 #1\or#2\or#3\or#4\fi}%
}
\tryprotected\def\ffsetV#1#2{\expandafter\def\csname #1V\endcsname{#2}}
+\def\ffvarZ#1{\ifcase#1 \string\rm\or\string\bf\or\string\it\or\string\bi\fi}
\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\fi
}
-\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.
+\long\def\ffsetZ#1\fi\fi\fi\fi\fi\fi{\fi\fi\fi\fi\fi\fi#1}
+\ifx\one\undefined \def\one{{}}\fi % Something more specific than \undefined.
+ % User can re-define it without problems.
\tryprotected\def\ffsetY#1{%
- \ifx=#1\ffsetS \ffsetW0\tenrm \ffsetW1\tenbf \ffsetW2\tenit \ffsetW3\tenbi
- \ffsetT{\tenrm}{\tenbf}{\tenit}{\tenbi}%
+ \ifx=#1\ffsetS % save current variant
+ \ifx\ffnamegen\undefined % \ffsetX\fam can be used for resizing only
+ \resizefont\tenrm \resizefont\tenbf \resizefont\tenit \resizefont\tenbi
+ \else \ffsetW0\tenrm \ffsetW1\tenbf \ffsetW2\tenit \ffsetW3\tenbi \fi
+ \ffsetT{\tenrm}{\tenbf}{\tenit}{\tenbi}% return to current variant
\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
+ \if!\ffvarV\relax\ffwarning{\ffvarZ{#1}}%
+ \else \def\ffvarN{#1}\ffsetF\ffmodfont\ffmodfont
+ \fi\fi\fi
}
\def\ffsetF#1#2{%
\ffnametest\iftrue
@@ -78,6 +85,7 @@
\fi #2\fi
}
\let\ffnametest=\relax
+\def\ffwarning#1{}
\def\ffsetS{\expandafter\ifx\the\font\tenrm \def\ffvarN{0}%
\else \expandafter\ifx\the\font\tenbf \def\ffvarN{1}%
@@ -91,7 +99,7 @@
\ifx\relax#2\relax \def\dgsize{10pt}\else \readsizespec#2!\relax\fi\fi
}
\def\ffsetW#1#2{\edef\ffvarV{\ffvarY{#1}}%
- \if!\ffvarV\else \ffsetF#2\relax\fi
+ \if!\ffvarV\relax\ffwarning{\ffvarZ{#1}}\else \ffsetF#2\relax\fi
}
\def\ismacro#1#2#3{\def\tmp{#2}\ifx#1\tmp}
@@ -127,11 +135,13 @@
\fi % of \ifx\regtfm %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\ffalias#1#2{\expandafter\edef\csname#1:reg\endcsname{#2 16380 \relax}}
-
+\def\ffalias#1#2{\expandafter
+ \def\csname#1:reg\endcsname{\whichtfm{#2} 16380 \relax}%
+}
\def\ffoptV{}
\def\regsizes#1#2{\bgroup \aftergroup\regsizesC #1\relax
\let\regtfm=\relax \gdef\tmp{}%
+ \ifx\ffnameotfB\undefined \def\ffnameotf##1{##1}\else \let\ffnameotf=\relax \fi
\edef\ffvarV{\ffvarY{0}}\if!\ffvarV\else \regsizesA{#2}\fi
\edef\ffvarV{\ffvarY{1}}\if!\ffvarV\else \regsizesA{#2}\fi
\edef\ffvarV{\ffvarY{2}}\if!\ffvarV\else \regsizesA{#2}\fi
@@ -142,10 +152,10 @@
\regsizesB#1 * =
}
\def\regsizesB#1 =#2 {\if*#1\xdef\tmp{\tmp\space*}%
- \else \def\ffoptV{#2}\xdef\tmp{\tmp\space #1 \ffnamegen}%
+ \else \def\ffoptV{#2}\xdef\tmp{\tmp\space #1 \ffnameotf{\ffnamegen}}%
\expandafter\regsizesB\fi
}
-\def\regsizesC{\tmp\xdef\tmp{}}
+\def\regsizesC{\let\ffnameotf=\ffnameotfA \tmp\xdef\tmp{}\let\ffnameotf=\ffnameotfB}
\def\useff#1{} % do nothing with non U encoding
@@ -161,4 +171,8 @@
\def\useff#1{\ffsetU{#1}\ffsetX}
\tryprotected\def\ffsetU#1{\edef\fontfeatures{\fontfeatures;#1}}
+\def\ffnameotfA#1{ff:no}
+\def\ffnameotfB#1{"#1:\fontfeatures"}
+\def\resizeall{\ffsetX\fam \resizefont\tentt}
+
\endinput
diff --git a/Master/texmf-dist/tex/csplain/fonts/kp-fonts.tex b/Master/texmf-dist/tex/csplain/fonts/kp-fonts.tex
index e309b9b8d1d..ad2ef2c6f04 100644
--- a/Master/texmf-dist/tex/csplain/fonts/kp-fonts.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/kp-fonts.tex
@@ -93,11 +93,11 @@
\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"
+ \ffmessage{FONT warning: KPfonts - 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
+ \else % font is loaded
}
\def\ffaddtfm #1 {\ifx\relax#1\relax \else
\setexfont {jkp#1\fotenc} TS1 \kpsevenc{#1} % register the metric for exchars
diff --git a/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex b/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex
index 2ea847c206b..c77b1772187 100644
--- a/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex
+++ b/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex
@@ -1,32 +1,210 @@
% lmfonts.tex: loads Latin Modern fonts by plainTeX macros
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Petr Olsak, 2012
+% Petr Olsak, 2012, 2016
-\message{FONT: Latin Modern fonts -
- \string\rm, \string\it, \string\bf, \string\bi, \string\caps\string\rm,... + math.}
+\ifx\ffdecl\undefined \input ff-mac \fi
-\ifx\sizespec\undefined \def\sizespec{}\fi
+\ffdecl [Latin Modern] {\rm \bf \it \bi}
+ {\caps \sans \ttset \slant \nbold \ttprop \ttlight \ttcond
+ \quotset \upital \dunhill}
+ {} {AMS} {8z 8t U}
-\ifx\font\corkencoded\else \ifx\font\unicoded\else \input chars-8z \fi\fi
-\ifx\font\corkencoded \def\tmp{ec}\else \def\tmp{cs}\fi
+% \lmreset ... implicit values (serif, bod extended, nocaps)
+% \sans ...... sans serif subfamily
+% \ttset ..... typewriter subfamily
+% \ttprop .... proportional typewriter-like subfamily
+% \ttlight ... light typewriter subfamily
+% \ttcond .... condensed typewriter subfamily
+% \quotset ... quotation sans serif subfamily (designed at 8pt for 10pt text)
+% \upital .... upright italic (only \rm)
+% \dunhill ... dunhill roman subfamily (only \rm, \it)
+% \caps ...... caps & small caps (available only at limited shapes)
+% \slant ..... slanted (default in some subfamilies)
+% \nbold ..... normal bold (no extended)
-\ifx\font\unicoded \def\famname{lmroman10} \input unifam
- \font\tentt="[lmmono10-regular]" \sizespec
-\else
- \font\tenrm=\tmp-lmr10 \sizespec
- \font\tenbf=\tmp-lmbx10 \sizespec
- \font\tenit=\tmp-lmri10 \sizespec
- \font\tenbi=\tmp-lmbxi10 \sizespec
- \font\tentt=\tmp-lmtt10 \sizespec
- \font\tenrmc=\tmp-lmcsc10 \sizespec
- \font\tenitc=\tmp-lmcsco10 \sizespec
+\ismacro\fotenc{8t}\iftrue
+ \font\tenrm = ec-lmr10 \sizespec
+ \font\tenbf = ec-lmbx10 \sizespec
+ \font\tenit = ec-lmri10 \sizespec
+ \font\tenbi = ec-lmbxi10 \sizespec
+ \font\tentt = ec-lmtt10 \sizespec
+ \font\tenrmc= ec-lmcsc10 \sizespec % for backward compatibility
+ \font\tenitc= ec-lmcsco10 \sizespec % for backward compatibility
+\fi
+\ismacro\fotenc{8z}\iftrue
+ \font\tenrm = cs-lmr10 \sizespec
+ \font\tenbf = cs-lmbx10 \sizespec
+ \font\tenit = cs-lmri10 \sizespec
+ \font\tenbi = cs-lmbxi10 \sizespec
+ \font\tentt = cs-lmtt10 \sizespec
+ \font\tenrmc= cs-lmcsc10 \sizespec % for backward compatibility
+ \font\tenitc= cs-lmcsco10 \sizespec % for backward compatibility
+\fi
+\ismacro\fotenc{U}\iftrue
+ \font\tenrm = "[lmroman10-regular]:\fontfeatures" \sizespec
+ \font\tenbf = "[lmroman10-bold]:\fontfeatures" \sizespec
+ \font\tenit = "[lmroman10-bold]:\fontfeatures" \sizespec
+ \font\tenbi = "[lmroman10-bolditalic]:\fontfeatures" \sizespec
+ \font\tentt = "[lmmono10-regular]:\fontfeatures" \sizespec
+ \font\tenrmc= "[lmromancaps10-regular]:\fontfeatures" \sizespec
+ \font\tenitc= "[lmromancaps10-oblique]:\fontfeatures" \sizespec
\fi
-
\tenrm
-\def\caps#1{{\escapechar=-1 \expandafter}%
- \expandafter\csname\expandafter\tenonlytext\string#1c\endcsname}
-\def\tenonlytext{ten}
+\ffvars{\regularV}{b\bextV}{ti\slantV}{b\bextV i\slantV}
+\def\nbold {\ffsetV{bext}{}\ffsetX}
+\def\slant {\ffsetV{slant}{sl}\ffsetX}
+\def\sans {\ffsetV{subfam}{ss}\slant}
+\def\ttset {\ffsetV{subfam}{tt}\nbold}
+\def\ttprop {\ffsetV{subfam}{tp}\slant}
+\def\ttlight {\ffsetV{subfam}{tl}\slant}
+\def\ttcond {\ffvars{}{!}{ti\slantV}{!}\ffsetV{subfam}{tc}\slant}
+\def\quotset {\ffsetV{subfam}{sq}\slant}
+\def\upital {\ffvars{}{!}{!}{!}\ffsetV{subfam}{u}\ffsetX}
+\def\dunhill {\ffvars{du}{!}{dusl}{!}\ffsetX}
+\def\caps {\ffvars{\regularV}{!}{tisl}{!}\ffsetV{caps}{csc}\slant}
+\def\lmreset {\ffsetV{subfam}{}\ffsetV{slant}{}\ffsetV{caps}{}%
+ \ffsetV{bext}{x}\ffsetX}
+\def\regularV{\ifx\subfamV\empty r\fi}
+\lmreset\relax % default values
+
+\def\ffnamegen{lm\subfamV\ffvarV\capsV\ffoptV}
+
+\def\ffnametest#1{\expandafter\ifx \csname\ffnamegen:reg\endcsname \relax
+ \ffmessage{FONT warning: LMfonts - desired shape (\ffnamegen) unavailable}%
+ \else % font is loaded
+}
+\def\LMregtfm #1 #2 #3 #4 {\edef\tmp
+ {\noexpand\regtfm #1 0 \csname regtfm#3\endcsname\ffnamepre{#2}}%
+ \lowercase\expandafter{\tmp}% OTF file names are lowercase
+}
+\def\regtfmFS#1#2{#1#25 5.5 #1#26 6.5 #1#27 7.5 #1#28 8.5
+ #1#29 9.5 #1#210 11.1 #1#212 15 #1#217 *}
+\def\regtfmFT#1#2{#1#25 5.5 #1#26 6.5 #1#27 7.5 #1#28 8.5
+ #1#29 9.5 #1#210 11.1 #1#212 *}
+\def\regtfmST#1#2{#1#27 7.5 #1#28 8.5 #1#29 9.5 #1#210 11.1 #1#212 *}
+\def\regtfmES#1#2{#1#28 8.5 #1#29 9.5 #1#210 11.1 #1#212 15 #1#217 *}
+\def\regtfmET#1#2{#1#28 8.5 #1#29 9.5 #1#210 11.1 #1#212 *}
+\def\regtfmT #1#2{#1#210 *}
+\def\regtfmE #1#2{#1#28 *}
+
+\ismacro\fotenc{8t}\iftrue \def\ffnamepre{ec-}\fi
+\ismacro\fotenc{8z}\iftrue \def\ffnamepre{cs-}\fi
+
+\ismacro\fotenc{U}\iftrue
+ \def\ffnamepre#1-#2;#3 {\noexpand\ffnameotf{[#1#3-#2]} }
+ \let\ffnameotf=\ffnameotfA
+
+ \LMregtfm lmr LMRoman-Regular; FS 5-17
+ \LMregtfm lmbx LMRoman-Bold; FT 5-12
+ \LMregtfm lmti LMRoman-Italic; ST 7-12
+ \LMregtfm lmbxi LMRoman-BoldItalic; T 10
+ \LMregtfm lmtisl LMRomanSlant-Regular; ES 8-17
+ \LMregtfm lmbxisl LMRomanSlant-Bold; T 10
+ \LMregtfm lmb LMRomanDemi-Regular; T 10
+ \LMregtfm lmbi LMRomanDemi-Oblique; T 10
+
+ \LMregtfm lmss LMSans-Regular; ES 8-17
+ \LMregtfm lmssbx LMSans-Bold; T 10
+ \LMregtfm lmsstisl LMSans-Oblique; ES 8-17
+ \LMregtfm lmssbxisl LMSans-BoldOblique; T 10
+ \LMregtfm lmssb LMSansDemiCond-Regular; T 10
+ \LMregtfm lmssbisl LMSansDemiCond-Oblique; T 10
+
+ \LMregtfm lmsq LMSansQuot-Regular; E 8
+ \LMregtfm lmsqbx LMSansQuot-Bold; E 8
+ \LMregtfm lmsqtisl LMSansQuot-Oblique; E 8
+ \LMregtfm lmsqbxisl LMSansQuot-BoldOblique; E 8
+
+ \LMregtfm lmtt LMMono-Regular; ET 8-12
+ \LMregtfm lmttb LMMonoLt-Bold; T 10
+ \LMregtfm lmttti LMMono-Italic; T 10
+ \LMregtfm lmttbi LMMonoLt-BoldOblique; T 10
+ \LMregtfm lmtttisl LMMonoSlant-Regular; T 10
+ \ffalias {lmttbisl} {lmttbi}
+
+ \LMregtfm lmtp LMMonoPropLt-Regular; T 10
+ \LMregtfm lmtpb LMMonoProp-Regular; T 10
+ \LMregtfm lmtpbx LMMonoPropLt-Bold; T 10
+ \LMregtfm lmtptisl LMMonoPropLt-Oblique; T 10
+ \LMregtfm lmtpbisl LMMonoProp-Oblique; T 10
+ \LMregtfm lmtpbxisl LMMonoPropLt-BoldOblique; T 10
+
+ \LMregtfm lmtl LMMonoLt-Regular; T 10
+ \ffalias {lmtlb} {lmtt}
+ \ffalias {lmtlbx} {lmttb}
+ \LMregtfm lmtltisl LMMonoLt-Oblique; T 10
+ \ffalias {lmtlbisl} {lmtttisl}
+ \ffalias {lmtlbxisl}{lmttbi}
+
+ \LMregtfm lmtc LMMonoLtCond-Regular; T 10
+ \LMregtfm lmtctisl LMMonoLtCond-Oblique; T 10
+
+ \LMregtfm lmrcsc LMRomanCaps-Regular; T 10
+ \LMregtfm lmtislcsc LMRomanCaps-Oblique; T 10
+ \LMregtfm lmttcsc LMMonoCaps-Regular; T 10
+ \LMregtfm lmtttislcsc LMMonoCaps-Oblique; T 10
+
+ \LMregtfm lmu LMRomanUnsl-Regular; T 10
+ \LMregtfm lmdu LMRomanDunh-Regular; T 10
+ \LMregtfm lmdusl LMRomanDunh-Oblique; T 10
+
+ \let\ffnameotf=\ffnameotfB
+\else
+ \LMregtfm lmr lmr FS 5-17
+ \LMregtfm lmbx lmbx FT 5-12
+ \LMregtfm lmti lmri ST 7-12
+ \LMregtfm lmbxi lmbxi T 10
+ \LMregtfm lmtisl lmro ES 8-17
+ \LMregtfm lmbxisl lmbxo T 10
+ \LMregtfm lmb lmb T 10
+ \LMregtfm lmbi lmbo T 10
+
+ \LMregtfm lmss lmss ES 8-17
+ \LMregtfm lmssbx lmssbx T 10
+ \LMregtfm lmsstisl lmsso ES 8-17
+ \LMregtfm lmssbxisl lmssbo T 10
+ \LMregtfm lmssb lmssdc T 10
+ \LMregtfm lmssbisl lmssdo T 10
+
+ \LMregtfm lmsq lmssq E 8
+ \LMregtfm lmsqbx lmssqbx E 8
+ \LMregtfm lmsqtisl lmssqo E 8
+ \LMregtfm lmsqbxisl lmssqbo E 8
+
+ \LMregtfm lmtt lmtt ET 8-12
+ \LMregtfm lmttb lmtk T 10
+ \LMregtfm lmttti lmtti T 10
+ \LMregtfm lmttbi lmtko T 10
+ \LMregtfm lmtttisl lmtto T 10
+ \ffalias {lmttbisl} {lmttbi}
+
+ \LMregtfm lmtp lmvtl T 10
+ \LMregtfm lmtpb lmvtt T 10
+ \LMregtfm lmtpbx lmvtk T 10
+ \LMregtfm lmtptisl lmvtlo T 10
+ \LMregtfm lmtpbisl lmvtto T 10
+ \LMregtfm lmtpbxisl lmvtko T 10
+
+ \LMregtfm lmtl lmtl T 10
+ \ffalias {lmtlb} {lmtt}
+ \ffalias {lmtlbx} {lmttb}
+ \LMregtfm lmtltisl lmtlo T 10
+ \ffalias {lmtlbisl} {lmtttisl}
+ \ffalias {lmtlbxisl}{lmttbi}
+
+ \LMregtfm lmtc lmtlc T 10
+ \LMregtfm lmtctisl lmtlco T 10
+
+ \LMregtfm lmrcsc lmcsc T 10
+ \LMregtfm lmtislcsc lmcsco T 10
+ \LMregtfm lmttcsc lmtcsc T 10
+ \LMregtfm lmtttislcsc lmtcso T 10
+
+ \LMregtfm lmu lmu T 10
+ \LMregtfm lmdu lmdunh T 10
+ \LMregtfm lmdusl lmduno T 10
+\fi
\let\lmfonts=\font % macros can do test: \ifx\font\lmfonts ...
@@ -35,25 +213,16 @@
\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}
-
-\exregtfm cmr 0 \tmp-lmr5 5.5 \tmp-lmr6 6.5 \tmp-lmr7 7.5 \tmp-lmr8 8.5
- \tmp-lmr9 9.5 \tmp-lmr10 11.1 \tmp-lmr12 15 \tmp-lmr17 *
-\exregtfm cmbx 0 \tmp-lmbx5 5.5 \tmp-lmbx6 6.5 \tmp-lmbx7 7.5 \tmp-lmbx8 8.5
- \tmp-lmbx9 9.5 \tmp-lmbx10 11.1 \tmp-lmbx12 *
-\exregtfm cmsl 0 \tmp-lmro8 8.5 \tmp-lmro9 9.5 \tmp-lmro10 11.1
- \tmp-lmro12 15 \tmp-lmro17 *
-\exregtfm cmtt 0 \tmp-lmtt8 8.5 \tmp-lmtt9 9.5 \tmp-lmtt10 11.1 \tmp-lmtt12 *
-\exregtfm cmss 0 \tmp-lmss8 8.5 \tmp-lmss9 9.5 \tmp-lmss10 11.1 \tmp-lmss12 15
- \tmp-lmss17 *
-\exregtfm cmssi 0 \tmp-lmsso8 8.5 \tmp-lmsso9 9.5 \tmp-lmsso10 11.1
- \tmp-lmsso12 15 \tmp-lmsso17 *
-\exregtfm cmti 0 \tmp-lmri7 7.5 \tmp-lmri8 8.5 \tmp-lmri9 9.5
- \tmp-lmri10 11.1 \tmp-lmri12 *
-\exregtfm cmbxti 0 \tmp-lmbxi10 *
% CM math fonts
+\ismacro\fotenc{8z}\iftrue
+ \ffalias{cmr}{lmr}
+ \ffalias{cmbx}{lmbx}
+\else
+ \regtfm cmr 0 rm-lmr5 5.5 rm-lmr6 6.5 rm-lmr7 7.5 rm-lmr8 8.5 rm-lmr9 9.5
+ rm-lmr10 11.1 rm-lmr12 15 rm-lmr17 *
+ \regtfm cmbx 0 rm-lmbx5 5.5 rm-lmbx6 6.5 rm-lmbx7 7.5 rm-lmbx8 8.5
+ rm-lmbx9 9.5 rm-lmbx10 11.1 rm-lmbx12 *
+\fi
\regtfm cmmi 0 lmmi5 5.5 lmmi6 6.5 lmmi7 7.5 lmmi8 8.5 lmmi9 9.5
lmmi10 11.1 lmmi12 *
\regtfm cmmib 0 lmmib5 6 lmmib7 8.5 lmmib10 *
@@ -63,10 +232,10 @@
\regtfm cmex 0 lmex10 *
\regtfm cmexb 0 lmex10 *
% Fonts Other
-\exregtfm bfsans 0 \tmp-lmssbx10 *
-\exregtfm bisans 0 \tmp-lmssbo10 *
-\exregtfm bbfsans 0 \tmp-lmssbx10 *
-\exregtfm bbisans 0 \tmp-lmssbo10 *
+\ffalias {bfsans} {lmssbx}
+\ffalias {bisans} {lmssbxisl}
+\ffalias {bbfsans} {lmssbx}
+\ffalias {bbisans} {lmssbxisl}
\normalmath \let\normalmathloading=y