summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/fontinst/base/fimain.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/fontinst/base/fimain.dtx')
-rw-r--r--Master/texmf-dist/source/fontinst/base/fimain.dtx77
1 files changed, 57 insertions, 20 deletions
diff --git a/Master/texmf-dist/source/fontinst/base/fimain.dtx b/Master/texmf-dist/source/fontinst/base/fimain.dtx
index 6edad395440..8fe61d23a73 100644
--- a/Master/texmf-dist/source/fontinst/base/fimain.dtx
+++ b/Master/texmf-dist/source/fontinst/base/fimain.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{4033}
+% \CheckSum{4056}
% \iffalse meta-comment
%
% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey,
@@ -2332,6 +2332,10 @@
% \end{quote}
% \changes{1.925}{2003/05/28}{Added check that the glyph used is
% defined; we get an ugly error if it isn't. (LH)}
+% \changes{1.932}{2005/06/17}{Changed error message to warning when a
+% corresponding notglyph exists. (LH) This deals with an issue
+% regarding composites in fonts which have been reencoded to
+% something not a superset of \texttt{8a}.}
%
% \begin{macrocode}
%<*pkg>
@@ -2342,12 +2346,17 @@
\moveup{#3}
\glyph{\glyph_name_modifier{#1}}{\one_thousand}
\pop
+ \else\ifisglyph{\glyph_name_modifier{#1}-not}\then
+ \fontinstwarning{\string\glyphpcc}{
+ Base~glyph~`\glyph_name_modifier{#1}'~not~appended,\messagebreak
+ because~it~is~so~far~unencoded~in~the~glyph~base
+ }
\else
\fontinsterror{\string\glyphpcc}{
- Base~glyph~not~set.\messagebreak
- This~could~be~a~sign~that~the~AFM~file~is~buggy
+ Base~glyph~not~set.\messagebreak
+ This~could~be~a~sign~that~the~AFM~file~is~buggy
}\error_help_a
- \fi
+ \fi\fi
}
%</pkg>
% \end{macrocode}
@@ -2715,7 +2724,7 @@
% is a category 12 (other) token whose character code equals the slot
% number.
%
-% In the entire space of such names, each slot sould be mensioned
+% In the entire space of such names, each slot should be mentioned
% at most once, with one exception, namely the slot which serves as
% right boundary marker, which may occur twice (once for the glyph
% which actually is assigned to the slot and once for the right boundary
@@ -4451,22 +4460,50 @@
%
% \begin{macro}{\substitutesilent}
% \begin{macro}{\substitutenoisy}
-% |\substitutesilent{TO}{FROM}|\\
-% |\substitutenoisy{TO}{FROM}|
-%
-% Specifies a default substitution for family or shape |TO|,
-% which is substituted by family or shape |FROM|.
-%
-% \begin{macrocode}
-\def\substitutesilent#1#2{
- \x_cs\def{sub-#2}{#1}
- \x_cs\def{typ-#2}{ssub}
-}
-\def\substitutenoisy#1#2{
- \x_cs\def{sub-#2}{#1}
- \x_cs\def{typ-#2}{sub}
+% These commands specify a default substitution for series or shape
+% \meta{to}, which points to the series or shape \meta{from}.
+% \begin{quote}
+% |\substitutesilent|\marg{to}\marg{from}\\
+% |\substitutenoisy|\marg{to}\marg{from}
+% \end{quote}
+% There can be at most one \meta{to} for every \meta{from}; later
+% substitutions will override previous ones. If \meta{to} and
+% \meta{from} are equal, then any existing substitution from
+% \meta{from} is disabled.
+%
+% The way this is implemented is that if a font has been installed
+% with shape or series \meta{from}, but no entry for \meta{to} has
+% been written, then write an entry also for \meta{to} consisting of
+% a substitution by \meta{from}. (After doing that, an entry has been
+% written also for \meta{to}, so the process may repeat itself with
+% the old \meta{to} as a new \meta{from}.)
+%
+% \begin{macro}{\substitute_generic}
+% This is the common part of |\substitutesilent| and
+% |\substitutenoisy|. The syntax is
+% \begin{quote}
+% |\substitute_generic|\marg{type}\marg{to}\marg{from}
+% \end{quote}
+% where \meta{type} is |ssub| or |sub| respectively.
+% \changes{1.931}{2005/05/12}{Macro added, to support explicit
+% disabling of substitutions. (LH)}
+% \begin{macrocode}
+\def\substitute_generic#1#2#3{
+ \edef\a_macro{#2}
+ \edef\b_macro{#3}
+ \ifx \a_macro \b_macro
+ \x_cs\let{sub-#3}\undefined_command
+ \else
+ \x_cs\let{sub-#3}\a_macro
+ \x_cs\def{typ-#3}{#1}
+ \fi
}
% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\def\substitutesilent{\substitute_generic{ssub}}
+\def\substitutenoisy{\substitute_generic{sub}}
+% \end{macrocode}
% \end{macro}
% \end{macro}
%
@@ -4492,7 +4529,7 @@
% \end{macrocode}
%
%
-% \subsection{The font substitution mechanism}
+% \subsection{New font substitution mechanism}
%
% \textbf{Note:} This subsection contains (part of) a new implementation
% of the font substitution mechanism, but it is uncertain whether it