summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/fontinst/base/fimain.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-09-29 00:11:18 +0000
committerKarl Berry <karl@freefriends.org>2008-09-29 00:11:18 +0000
commit03e895528bdcda911fdf41b8e1da264aef4516d5 (patch)
treea9fdaa65771f5c02008b28b33b3eb861cbdcd869 /Master/texmf-dist/source/fontinst/base/fimain.dtx
parent9ab8b11d71a0b50e015a4385a7c8b9a1edebc4a4 (diff)
fontinst 1.929 (28sep08)
git-svn-id: svn://tug.org/texlive/trunk@10781 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/fontinst/base/fimain.dtx')
-rw-r--r--Master/texmf-dist/source/fontinst/base/fimain.dtx92
1 files changed, 86 insertions, 6 deletions
diff --git a/Master/texmf-dist/source/fontinst/base/fimain.dtx b/Master/texmf-dist/source/fontinst/base/fimain.dtx
index 62ae7dad6fa..6edad395440 100644
--- a/Master/texmf-dist/source/fontinst/base/fimain.dtx
+++ b/Master/texmf-dist/source/fontinst/base/fimain.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{4010}
+% \CheckSum{4033}
% \iffalse meta-comment
%
% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey,
@@ -97,9 +97,7 @@
\global\slot@number=0%
\FD@slot@known@true
\IfFileExists{\lowercase@file.etx}{%
- \def\relax{\let\relax=\x@relax\iffalse}%
- \let\encoding=\fi
- \outer\x@cs\def{endencoding}{\endinput}%
+ \FD@relax@encoding@tricks
\@@input \@filef@und
\let\relax=\x@relax
}{%
@@ -109,6 +107,23 @@
}
\endgroup
}
+% \end{macrocode}
+% \begin{macro}{\FD@relax@encoding@tricks}
+% There is a problem with |\if| \dots\ |\fi| nesting in the
+% redefinition of |\relax| and |\encoding|, which interacts badly
+% with |\IfFileExists|. To work around that, these redefinitions
+% are hidden in the |\FD@relax@encoding@tricks| macro.
+% \changes{1.928}{2004/11/24}{Macro added, to fix bug reported by
+% Peter Dyballa. (LH)}
+% \begin{macrocode}
+\def\FD@relax@encoding@tricks{%
+ \def\relax{\let\relax=\x@relax\iffalse}%
+ \let\encoding=\fi
+ \outer\x@cs\def{endencoding}{\endinput}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
\def\encoding{%
\par
\ifFD@spec@ \addvspace{\bigskipamount}\fi
@@ -586,6 +601,65 @@
% \end{macrocode}
% \end{macro}\end{macro}\end{macro}\end{macro}
%
+% \begin{macro}{\charseq}
+% Most commonly occurring glyphs correspond to one |\Unicode|
+% character, but this is not at all true in general---in fact there
+% may even be letters which cannot be encoded as single characters,
+% as they do not exist in precomposed form but have to be expressed
+% with a base letter and combining diacritical mark. Reasonable
+% compliance with the standard requires supporting character
+% sequences as well as individual characters.
+% \changes{1.928}{2004/11/27}{Command added. (LH)}
+% \changes{1.928}{2004/12/16}{Typeset form changed, from paragraph to
+% a one-item-per-line list. (LH)}
+%
+% In \package{fontinst}, the |\charseq| command is used to specify
+% such a character sequence. The syntax is
+% \begin{quote}
+% |\charseq|\marg{\cs{Unicode} commands}
+% \end{quote}
+% where the \meta{\cs{Unicode} commands} is one or several |\Unicode|
+% commands. This means the sequence of those characters. For example
+% \begin{quote}
+% |\charseq{|\\
+% | \Unicode{0066}{LATIN SMALL LETTER F}|\\
+% | \Unicode{0069}{LATIN SMALL LETTER I}|\\
+% |}|
+% \end{quote}
+% is typeset as
+% \begin{quote}
+% Unicode character sequence:\\
+% \vadjust{}\quad\texttt{U+0066} (\textsc{latin small letter f})\\
+% \vadjust{}\quad\texttt{U+0069} (\textsc{latin small letter i})
+% \end{quote}
+% This indentation is made using the \texttt{IfBranch} environment,
+% which could be considered a bit hackish.
+%
+% |\charseq| is gobbled in \Module{pkg} and \Module{misc}, but in the
+% latter case it might get redefined.
+% \begin{macrocode}
+%<pkg|misc>\let\charseq=\gobble_one
+% \end{macrocode}
+% Note how the environment group restores the definition
+% of |\Unicode|.
+% \begin{macrocode}
+%<*doc>
+\newcommand\charseq[1]{%
+ \comment{Unicode character sequence:}%
+ \begin{IfBranch}%
+ \def\Unicode##1##2{%
+ \noindent\FD@codepoint{##1}
+ \ifx\par##2\par\else(\FD@charname{##2})\fi
+ \par
+ }%
+ #1%
+ \end{IfBranch}%
+}
+%</doc>
+% \end{macrocode}
+% \end{macro}
+%
+%
% \DescribeMacro{\vartop}
% \DescribeMacro{\varmid}
% \DescribeMacro{\varbot}
@@ -4011,6 +4085,8 @@
% font metrics file.
% \changes{1.926}{2003/07/10}{Only looking for PL and VPL files when
% an encoding is specified. (LH)}
+% \changes{1.929}{2005/01/13}{Missing space in message inserted. (LH)
+% Pointed out by Peter Dyballa.}
% \begin{macrocode}
\ifx \pl_encoding\empty_command
\fromany\file_name
@@ -4021,7 +4097,7 @@
\inputmtx{\str{afm-name}}
\else
\fontinsterror{\string\install...}{
- Font/MTX~file~\file_name\space not found
+ Font/MTX~file~\file_name\space not~found
}{
You~can~insert~an~\string\inputmtx\space command~here
\messagebreak to~input~some~other~MTX~file~instead.
@@ -4045,9 +4121,13 @@
% and the generated MTX file is named
% \meta{font}\texttt{-}\meta{etx}\texttt{.mtx} to avoid that it is
% picked up by |\fromany| by mistake.
+% \changes{1.929}{2005/01/12}{The \texttt{afm-name} string usually has
+% a value at this point, so it is necessary to reset it. (LH,
+% sighing because he knows this isn't the first time this problem
+% occurred) First to be hit by this bug was Michael Zedler.}
% \begin{macrocode}
\def\metrics_given_encoding#1#2{
- \x_setstr{afm-name}{#1-#2}
+ \x_cs\edef{s-afm-name}{#1-#2}
\if_file_exists{#1.pl}\then
\generalpltomtx{#1}{#1-#2}{pl}{#2}
\else