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
___________________________________________________________________________________
  • [NTG-con... Idris Samawi Hamid ادريس سماوي حامد via ntg-context
    • Re:... Idris Samawi Hamid ادريس سماوي حامد via ntg-context
    • Re:... Idris Samawi Hamid ادريس سماوي حامد via ntg-context

Reply via email to