[Fontinst] accessing unencoded charecters
Vladimir Volovich
vvv at vsu.ru
Mon Dec 1 20:36:57 CET 2003
"WS" == Walter Schmidt writes:
WS> Assuming there is an mtx file for a re-encoded font, which says
WS> \setscalednotglyph{space}...
WS> i.e., the space charecter is present in the real font, but not in
WS> the re-encoded one.
WS> Now I'm going to use this mtx file in an \installfont command.
WS> How can I determine the width of the space charecter? Using the
WS> command
WS> \width{space}
WS> in the .etx file would result in an error:
WS> ! Missing number, treated as zero. <to be read again> \g-space
WS> Further question: The command \ifsiglyph{space} would return
WS> "false" in this case. How can I check for the existence of a
WS> character, regardles of whether or not it is present in the
WS> current encoding?
see the recent archives of fontinst list. the possible solution is to
use something like this:
\ifisglyph{space}\then
\setint{spacewidth}{\width{space}}
\Else\ifisglyph{space-not}\then
\setint{spacewidth}{\width{space-not}}
\Else
\setint{spacewidth}{500} % Fallback default
\Fi\Fi
and then use \int{spacewidth}
Another approach which i suggested but which Lars did not like was to
redefine the \glyph_parameter in a following way:
\def\glyph_parameter#1#2{
\if_defined{g-#2}\then
\expandafter\expandafter\expandafter
#1\csname g-#2\expandafter\endcsname
\else\if_defined{g-#2-not}\then
\expandafter\expandafter\expandafter
#1\csname g-#2-not\expandafter\endcsname
\else
% error: glyph not set
\fi\fi
}
then you can use \width{space} and it will extract the width of the
space regardless of whether it is encoded or not.
Best,
v.
More information about the fontinst
mailing list