Hi Hans, Khaled, and Idris,
If a humble opinion from an ordinary user may be issued, I agree with
Khaled that it would be extremely useful to have some basic default
settings for Arabic fonts, and even more generally for any particular
fonts used for other languages. This would not prevent those
specialist typesetters who want particular features to be turned on,
to do so through appropriate mechanisms.
As a basic user I am frustrated when using mkiv, that most declaration
of features are completely cryptic, and not being a specialist of OTF
or other font specifications, I don't know which features are
essential for writing and typesetting an article in Persian or any
language using Arabic alphabet.
While the following is quite easy to understand and to use in XeConTeXt
%%%%%%%%%
%!TEX TS-program = xecontext
\TeXXeTstate=1
% defining a font for Arabic, Persian
\font\Faarsi="Scheherazade:script=arab" at 14pt
\Faarsi
% defining a font for Roman languages
\font\romfont="Times Roman" at 12pt
\def\rom#1{{\beginL\romfont #1\endL}}
\everypar={\setbox0=\lastbox \beginR \box0 }
\starttext
\rom{goedemorgen Hans}
سلام خالد، درود بر ادریس
\stoptext
%%%%%%%%%%%
it is not so easy to figure out how to typeset the same thing in mkiv:
for instance the non specialist has to try several fonts which are
installed on his system before getting a result…
%%%%%%%%%%%
%!TEX TS-program = mkiv
\setupdirections[bidi=global]
% defining a font for Arabic, Persian
\definefontfeature
[CrypticFeatures]
[analyze=yes,
mode=node,
language=dflt,
script=arab,
aalt=yes,
init=yes,
medi=yes,
fina=yes,
isol=yes,
liga=yes,
mset=yes]
%\font\Faarsi=Scheherazade*CrypticFeatures at 14pt % this does not work
% after trying a few other fonts one finds that the following works:
\font\Faarsi=arabtype*CrypticFeatures at 14pt
% defining a font for Roman languages
\setupbodyfont[12pt]
\def\rom#1{{\start \textdir TLT #1 \stop}}
\pardir TRT \textdir TRT
\starttext
\rom{goedemorgen Hans}
\start
\Faarsi
سلام خالد، درود بر ادریس
\stop
\stoptext
%%%%%%%%%%%%
The ideal situation would be:
• in a document, when one sets a language then a certain font, with
certain standard features is set by default;
• when an adapted font for that language is defined by the user, then
certain features are set by default;
• possibly a command like \setupArabic[state=start]
[...=...,features=...] (and the analogous settings for other languages
such as \setupHanzi[state=start][...=...,features=...], and alike),
could be imagined;
• for instance, as we have now in ConTeXt, when one has a document
written in English, then without even defining a font one can write
\starttext
goedmorgen Hans! This is some maths formula: $a^2+b^2 = c^2$.
\stoptext
Therefore, in the same spirit one should have some default allowing
the user to write
\setupArabic[state=start]
\setupHanzi[state=start]
\starttext
goedmorgen Hans! This is some maths formula: $a^2+b^2 = c^2$.
And this is some Arabic text written and typeset from right to left,
in the midst of some English text:
\startArabic
سلام خالد، درود بر ادریس
\stopArabic
and analogously this is in Hanzi
\startHanzi
大家你好
stopHanzi
\stoptext
I understand that this can be done by each user upon defining his own
environment and installing fonts, etc. But
for the non specialist it is not that easy to understand the
intricacies.
With my best regards: OK
On 20 févr. 09, at 19:57, Hans Hagen wrote:
Khaled Hosny wrote:
Currently, when defining a font feature one has to enable all
features
by hand which is IMHO not very user friendly as it implies prior
knowledge about OpenType font features and the meaning of each one,
not
every Arabic user, for example, knows what does 'init', 'medi, etc.
ligatures mean yet to know that he must enable them to get proper
font
rendering. I think some font features should be on by default, so
that
\definefontfeature[script=arabic] should be enough to get an Arabic
font
rendered correctly with the default features as its designer intended
(designers assume that certain will be on while other are off by
default, like liga vs. dlig), and if some one wants to disable a
certain
default feature he can turn it off, not the reverse.
Microsoft's OpenType features list page
(http://www.microsoft.com/typography/otspec/features_ae.htm) gives
a "UI
suggestion" for each feature noting if it should be on by default, I
think those are what most OpenType enable by default (at least the
ones
I tested).
i've been thinking of a features=default option (as there is already
features=yes|no)
even then it can never be fully automatic as some usage of fonts
(think of verbatim) demands devation from defaults
now, if we implement a default list then we first need to make a
detailed list of what the supposed defaults are (and i'm not sure if
ms is the only resource for that; after all, not all machineries
support all features)
a related issue is that fonts can be used for different languages
and scripts and therefore a more dynamic feature switching might be
needed i.e. arabic might need init, but when the same font is used
for latin it not handy to have it enabled, so there might be a
matrix of features / scripts needed
if it was trivial i'd already done it -)
(implementing is trivial but i don't want to make the wrong decision
here as it will influence compatibility)
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
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an
entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________