Problems I and II are apparently solved in the latest update. As for III,
the following works:
\definefont[ARABICFONT][file:almfixed.otf*arabic at 28pt]
\noheaderandfooterlines
\setupwhitespace[big]
% \starttext
\startTEXpage[offset=1ex]
% \setupdirections[bidi=global,method=one]
\righttoleft
% \setupalign[r2l]
% \dontleavehmode \setupalign[r2l]
\ARABICFONT
\utfchar{"062E}\utfchar{"064E}\utfchar{"200D}
\stopTEXpage
% \stoptext
As Hans explained off-list, TEXpage interacts with hmode and vmode in ways
that may appear unpredictable in some circumstances. In this case the
circumstance is
% \setupdirections[bidi=global,method=one]
Uncommenting this line will bring the bidi issue back, but it's not needed
for the desired result.
Best wishes
Idris
On Wed, 10 Nov 2021 09:00:26 -0700, Idris Samawi Hamid ادريس سماوي حامد
via ntg-context <ntg-context@ntg.nl> wrote:
Dear Hans and gang,
Consider the following MWE:
==============
\definefont[ARABICFONT][file:Adobe_Naskh.ttf*arabic at 28pt]
% \definefont[ARABICFONT][file:Amiri-Regular_0.ttf*arabic at 28pt]
% \definefont[ARABICFONT][file:Scheherazade-Regular.ttf*arabic at 28pt]
% \definefont[ARABICFONT][file:UthmanTN1_Ver10.otf*arabic at 28pt]
% \definefont[ARABICFONT][file:almfixed.otf*arabic at 28pt]
\disabledirectives[filters.utf.reorder]
\noheaderandfooterlines
\setupwhitespace[big]
% \setupinterlinespace[line=4.2ex]
\starttext
% \startTEXpage[offset=1ex]
\setupdirections[bidi=global,method=one]
\righttoleft
\ARABICFONT
خَ % a
خَل
% \stopTEXpage
\stoptext
==============
Three bugs:
I. If we use start|stoptex and comment start|stopTeXpage, then both
lines 19 and 21 give an error:
=======
tex error > tex error on line 20 in file ./test.tex:
lua error:
callback error: [string
"C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2058: attempt to
index a number value (local 'chainstep')
stack traceback:
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2058: in
upvalue 'chainrun'
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2941: in
function <[string
"C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2514>
(...tail calls...)
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2065: in
upvalue 'chainrun'
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2941: in
local 'handler'
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:3999: in
field '?'
...eXt/tex/texmf-context/tex/context/base/mkxl/node-fnt.lmt:459: in
upvalue 'nodes_handlers_characters'
[string "local tonut = nodes.tonut..."]:23: in function <[string
"local tonut = nodes.tonut..."]:12>
(...tail calls...)
10 \setupwhitespace[big]
11 % \setupinterlinespace[line=4.2ex]
12
13 \starttext
14 % \startTEXpage[offset=1ex]
15 \setupdirections[bidi=global,method=one]
16 \righttoleft
17 \ARABICFONT
18
19 خَ
20 >>
21 خَل
22
23 % \stopTEXpage
24 \stoptext
=======
Comment line 19 and yu will get virtually the same error.
II. Using start|stopTeXpage, only line 21 gives the error:
=======
tex error > tex error on line 22 in file ./test.tex:
lua error:
callback error: [string
"C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2058: attempt to
index a number value (local 'chainstep')
stack traceback:
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2058: in
upvalue 'chainrun'
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2941: in
function <[string
"C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2514>
(...tail calls...)
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2065: in
upvalue 'chainrun'
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:2941: in
local 'handler'
[string "C:/ConTeXt/tex/texmf-context/tex/context/base..."]:3999: in
field '?'
...eXt/tex/texmf-context/tex/context/base/mkxl/node-fnt.lmt:459: in
upvalue 'nodes_handlers_characters'
[string "local tonut = nodes.tonut..."]:23: in function <[string
"local tonut = nodes.tonut..."]:12>
(...tail calls...)
12
13 % \starttext
14 \startTEXpage[offset=1ex]
15 \setupdirections[bidi=global,method=one]
16 \righttoleft
17 \ARABICFONT
18
19 خَ % a
20
21 خَل
22 >>
23 \stopTEXpage
24 % \stoptext
=======
III Let us switch to almfixed:
If you comment line 21 and use only line 19, then there is no tex error,
but the result is rendered incorrectly - see test-broken.pdf.
For the correct result, see test-correct.pdf (add a space and any letter
- uncomment the end of line 19).
Adobe Naskh is not publicly available. The four commented fonts are
publicly available and generate no tex errors.
Best wishes
Idris
--
Idris Samawi Hamid, Professor
Department of Philosophy
Colorado State University
Fort Collins, CO 80512
___________________________________________________________________________________
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://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________