[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