[XeTeX] Re: [MacTeX] Re: A Zapfish request (was Re: [] XeTeX)
William F. Adams
wadams at atlis.com
Wed Apr 14 18:10:43 CEST 2004
There's not much I can add to Jonathan's erudite commentary.
I will note that until something is worked out, we'll have to get in
the habit of replacing ' with ’ in our source (and `` with “ and ''
with ” and ` with ’ ) when using xetex.
The arbitrary nature of the glyph ordering was one reason why I made up
my weird encoding vector --- so that I could make an OTP and have it
``just work'' w/ a later version of the font.
Here's the relevant bit from a previous message to this list for those
who're curious 'bout the gory details:
> With the base character set available, next the ligatures and
> alternates needed to be provided for. Toward this end, an encoding
> scheme was worked up to allow arbitrary ligatures of up to three
> characters in length, and to accomodate up to 32 variants for any
> given (unaccented character). While that last number may seem
> overkill, the OpenType specification provides for up to 20 variations
> of a character in its \texttt{s.alt} tag. Having 16 bits available
> with Omega, the available bits were split into three sets, an initial
> set 6 bits long and two successive sets 5 bits long. The first set is
> long enough to encompass basic Latin capitals and miniscule
> (lowercase) letters as well as the numerals 0 through 9, with two bits
> left over. One of these was used as a ``swash'' bit, while the other
> remains available for use (suggestions anyone?). The second and third
> sets encompass lowercase letters.
>
>
>
> With all characters assigned to slots it was then possible to create
> an Omega Translation Process (\acro{OTP}) to replace characters with
> their appropriate ligatures:
> %
> \begin{verbatim}
> input: 1;
> output: 2;
>
> states: VERBATIM;
>
> expressions:
>
> `0'`0' => "{\zapfinoexpert " @"035A"}";
> `1'`s'`t' => "{\zapfinoexpert " @"0653"}";
> ...
> `C'`i'`e' => "{\zapfinoexpert " @"3504"}";
> `C'`o'`.' => "{\zapfinoexpert " @"35DA"}";
> `D'`r'`.' => "{\zapfinoexpert " @"3A3A"}";
> `E'`s'`q'`.' => "{\zapfinoexpert " @"3E50"}";
> ...
> `g'`g' => "{\zapfinoexpert " @"ACDA"}";
> ...
> `t'`t' => "{\zapfinoexpert " @"E27A"}";
> `t'`z' => "{\zapfinoexpert " @"E33A"}";
> `u'`z' => "{\zapfinoexpert " @"E73A"}";
> `w'`n' => "{\zapfinoexpert " @"EDBA"}";
> \end{verbatim}
> %
> The Omega documentation\footnote{CITE THE DOCS HERE!} explains
> \acro{OTP}s in detail. Each line in an \acro{OTP} to handle a
> particular case is fairly straightforward. First the characters to be
> replaced are identified, (the \verb|=>| indicates a replacement is
> being made) then a verbatim sequence of replacement commands is given
> within quotes, with a character's encoding being provided in an
> ``escaped'' fashion outside of the quotes (hence, \verb|^^^^035a| is
> \verb|" @"035A"). This was saved in a file \texttt{lat2zapf.otp} and
> processed with the command \verb|otp2ocp lat2zapf.otp lat2zapf| and
> the files moved to \url{\localtexmf\omega\otp} and
> \url{\localtexmf\omega\ocp} respectively.
Just out of curiousity Jonathan, have you considered supporting Omega
Translation Processes? Doing so would be a pretty cool way to provide a
facility to customize the usage for a given font (I'm gonna get pretty
tired of always specifying ...r{}th in Zapfino (I think the rt ligature
followed by an h (or pretty much any other letter) looks weird).
William
--
William Adams, publishing specialist
voice - 717-731-6707 | Fax - 717-731-6708
www.atlis.com
_______________________________________________
MacTeX mailing list
http://tug.org/mailman/listinfo/mactex
More information about the XeTeX
mailing list