[NTG-context] How to use "fontsampler example" with Persian font

Mohammad Hossein Bateni bateni at gmail.com
Fri Oct 7 13:19:06 CEST 2016


I don't know much about fontsampler but the commands you list here are
mostly irrelevant.  My guess is you will need to set the features in the
font to get proper shaping.  A good set of features that should do the
trick is called "arabic".

When loading the font, you should do something like the following, but I
have not tried it myself.

\font\myfont=file:font.otf:language=dflt;script=arab;ccmp=yes;init=yes;medi=yes;fina=yes;rlig=yes

—MHB

On Fri, Oct 7, 2016 at 7:01 AM, Mingranina Gingranina <mingranina at gmail.com>
wrote:

> Dear All,
>  Hello,
>
>  I am trying to use "fontsampler example" with Persian fonts (please
> see below or "http://wiki.luatex.org/index.php/Fontsampler"
>  for fontsampler codes).
>  The problem is that Persian words apears as a string of separate
> glyphs, for example I get "ح‌س‌ن" instead of "حسن".
>  Do I have to use commands like the followings inside \directlua or
> tex.tprint to fix the problem? If yes, how can I do that?
>
> \installlanguage [fa][default=pe,date=\longjalalidatefmt]
> \mainlanguage[fa]
>
> \definefontfeature[tlig][tlig=yes]
> \definefontfeature[slanted][slant=.2]
> \definefontfeature[dlang][language=dflt]
> \definefontfeature[flang][language=far]
>
> Thanks
> Mingranina
>
>
> fontsampler.tex
> ============================================================
> =============================================
> \input luaotfload.sty
> \overfullrule 0pt
> \font\mono = {file:lmmono8-regular.otf} at 6pt
> \parindent 0pt
>
> \def \samplestring {Sphinx of black quartz, judge my vow. 1234567890
> äÄöÖüÜ ß !"§\$\%\&()=?}
>
> \directlua{
>   dofile("fontsampler.lua")
>   fontsampler(arg[2])
> }
>
> \bye
> ============================================================
> =============================================
> End Of fontsampler.tex
>
>
> fontsampler.lua
> ============================================================
> =============================================
> function dirtree(dir)
>   assert(dir and dir ~= "", "directory parameter is missing or empty")
>   if string.sub(dir, -1) == "/" then
>     dir=string.sub(dir, 1, -2)
>   end
>
>   local function yieldtree(dir)
>     for entry in lfs.dir(dir) do
>       if not entry:match("^%.") then
>         entry=dir.."/"..entry
>           if not lfs.isdir(entry) then
>             coroutine.yield(entry,lfs.attributes(entry))
>           end
>           if lfs.isdir(entry) then
>             yieldtree(entry)
>           end
>       end
>     end
>   end
>
>   return coroutine.wrap(function() yieldtree(dir) end)
> end
>
>
> function fontsampler( dir )
>   for entry in dirtree(dir) do
>     if entry:match(".otf","-4") then
>       tex.tprint({[[\mono ]]},{-2,entry},{[[
> (]]},{-2,fontloader.info(entry).fontname},{[[)\par\penalty
> 10000\font\sample={file:]]},{-2,entry},{[[} at
> 12pt\sample\samplestring\par\penalty 10000\vrule width \hsize height
> 0.25pt depth 0pt\par]]})
>     end
>   end
> end
> ============================================================
> =============================================
> End Of fontsampler.lua
> ____________________________________________________________
> _______________________
> If your question is of interest to others as well, please add an entry to
> the Wiki!
>
> maillist : ntg-context at ntg.nl / http://www.ntg.nl/mailman/
> listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive  : http://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
> ____________________________________________________________
> _______________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20161007/8428b677/attachment.html>


More information about the ntg-context mailing list