ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* How to use "fontsampler example" with Persian font
@ 2016-10-07 11:01 Mingranina Gingranina
  2016-10-07 11:19 ` Mohammad Hossein Bateni
  0 siblings, 1 reply; 9+ messages in thread
From: Mingranina Gingranina @ 2016-10-07 11:01 UTC (permalink / raw)
  To: ntg-context

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@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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-10-12 14:07 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-07 11:01 How to use "fontsampler example" with Persian font Mingranina Gingranina
2016-10-07 11:19 ` Mohammad Hossein Bateni
2016-10-07 11:24   ` Mohammad Hossein Bateni
2016-10-07 15:41     ` Mingranina Gingranina
2016-10-07 15:48       ` Mohammad Hossein Bateni
2016-10-10  9:38       ` Wolfgang Schuster
2016-10-11  3:44         ` Mingranina Gingranina
2016-10-11 10:44           ` Mohammad Hossein Bateni
2016-10-12 14:07             ` Mingranina Gingranina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).