Mojca Miklavec wrote:
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.
there is a difference here vetween xetex and luatex
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.)
first i need to understand the problem; actually i'm even thinking of not defaulting (in luatex) the mapping other than -- and --- because they are (1) not sensible and (2) users shoul duse quotation commands and/or (3) use the proper utf codes
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
these i hate most, and personally never use them ... if i key in a char explicitly i want that char and not another
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)
actually there's even space + something becomes something else
{ "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
and then those spanish ...
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
let's get rid of it
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]
i'd like to let caps and such go away completely for mkiv so maybe we end up with xetex defs versus luatex defs; i wonder if in practice users will use both at the same time (ok, you do)
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.
we can fall back to dflt which in practice boils down to latn
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.
well, i'd prefer ... only -- and --- and make anything else up to the user, which means, redefining default in cont-sys if needed
[Iwona-Bold.otf]:script=latn;language=dflt;+liga;+kern;mapping=tex-text;mapping=tex-text;
two mappings?
Some (non-latin) fonts complain when one requests non-existing features.
in xetex you mean?
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.
indeed, handling comma separated lists is too slow there .. ok, we can do it for xetex and in luatex use lua for it ... or i could hash the commalist itself ... needs a bit of thinking but eventually we need to be able to combine features (this even more points into a separate definition file for xetex) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------