[dev-context] tex-text (XeTeX) & trep, tlig (LuaTeX)

Mojca Miklavec mojca.miklavec.lists at gmail.com
Wed Dec 5 11:36:56 CET 2007


Hello Hans,

I compared tex-text and trep, tlig. Since you map features=default to
trep and tlig, and both of them further to tex-text (twice), tex-text
could be split in two parts as well, so that you can make one-to-one
mapping.

Should I make those changes and seny you the two files? (Twice 300
bytes to be added to ConTeXt + souce, which is approximately the same
as written below.)

1.) TREP

function fonts.initializers.base.otf.texquotes(tfm,value)
    tfm.characters[0x0022] = table.fastcopy(tfm.characters[0x201D])
    tfm.characters[0x0027] = table.fastcopy(tfm.characters[0x2019])
    tfm.characters[0x0060] = table.fastcopy(tfm.characters[0x2018])
end

Corresponding lines from XeTeX:

U+0022;  ;  ;   >;U+201D;  ; " -> right double quote
U+0027;  ;  ;  <>;U+2019;  ; ' -> right single quote
U+0060;  ;  ;  <>;U+2018;  ; ` -> left single quote

2.) TLIG

{ "endash", "hyphen hyphen" },
U+002D U+002D; ;  ;  <>;U+2013;  ; -- -> en dash

{ "emdash", "hyphen hyphen hyphen" },
U+002D U+002D U+002D;<>;U+2014;  ; --- -> em dash

{ "quotedblright", "quotesingle quotesingle" },
U+0027 U+0027; <>;U+201D;  ; '' -> right double quote

{ "quotedblleft", "grave grave" },
U+0060 U+0060; <>;U+201C;  ; `` -> left double quote

{ "quotedblbase", "comma comma" }
U+002C U+002C; <>;U+201E;  ; ,, -> DOUBLE LOW-9 QUOTATION MARK

missing from tex-text (not needed so far)

{ "quotedblleft", "quoteleft quoteleft" },
0x2018 0x2018 <> 0x201C ; 2x left single quote -> left double quote

{ "quotedblright", "quoteright quoteright" },
0x2019 0x2019 <> 0x201D ; 2x right single quote -> right double quote

3.) Only in XeTeX's tex-text (Do people need it?):

U+0021 U+0060; <>;U+00A1;  ; !` -> inverted exclam
U+003F U+0060; <>;U+00BF;  ; ?` -> inverted question

U+003C U+003C; <>;U+00AB;  ; << -> LEFT POINTING GUILLEMET
U+003E U+003E; <>;U+00BB;  ; >> -> RIGHT POINTING GUILLEMET



Plus, there's a little problem with this patch that I have sent you
(it's not in stable yet, so it might make sense to fix it before
releasing):

\definefontsynonym[Dummy]          [name:\typescripttwo]   [features=default]
\definefontsynonym[DummyItalic]    [name:\typescripttwo/I] [features=default]
\definefontsynonym[DummyBold]      [name:\typescripttwo/B] [features=default]
\definefontsynonym[DummyBoldItalic][name:\typescripttwo/BI][features=default]

\definefontsynonym[DummyCaps]      [name:\typescripttwo]   [features=smallcaps]


The problem is that "features=default" implies "script=latn", which is
not always desired. A copy of mapping=tex-text comes from tlig & trep
substitution.
I assume that script=latn;language=dflt;+liga;+kern; is always on by
default (were needed), so basically mapping=tex-text is the only thing
that really needs to be added.

[Iwona-Bold.otf]:script=latn;language=dflt;+liga;+kern;mapping=tex-text;mapping=tex-text;


Some (non-latin) fonts complain when one requests non-existing features.

Also, it might be handy to be able to define
    \definetypeface[basic][rm][Xserif][whatever][script=arab,language=...]
(for now forget that one, interface needs to be extended once and properly).


    \definefontsynonym[a][file:Iwona-Bold.otf][mapping=tex-text]
doesn't work, so the only way seems to be
    \definefontfeature[xetex][mapping=tex-text]
    \definefontsynonym[a][file:Iwona-Bold.otf][xetex]

I have tried to use
    \definefontfeature[xetex][mapping=tex-text]
    \definefontfeature[caps][+smcp]
    \definefontsynonym[a][file:Iwona-Bold.otf][features={xetex,caps}]
but that didn't work.

Mojca


More information about the dev-context mailing list