From 03e895528bdcda911fdf41b8e1da264aef4516d5 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 29 Sep 2008 00:11:18 +0000 Subject: fontinst 1.929 (28sep08) git-svn-id: svn://tug.org/texlive/trunk@10781 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/fontinst/base/fimain.dtx | 92 +++++++++++++++++++++-- 1 file changed, 86 insertions(+), 6 deletions(-) (limited to 'Master/texmf-dist/source/fontinst/base/fimain.dtx') 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} +%\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}% +} +% +% \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 -- cgit v1.2.3