Re: Stroke Font

Karel <[email protected]>
Newsgroups gmane.comp.tex.metapost
Message-ID <[email protected]>
Laurent Méhats napsal(a):
> Le 16/05/2015 22:25, Troy Henderson a écrit :
>>     string str,ss[];
>>     str:="Here is my sentence";
>>     for i=1 upto length str: ss[i]:=substring(i-1,i) of str;
>>     p[i]:=ss[i] infont defaultfont; s[i]:=pathpart p[i]; endfor
>>     draw pathpart glyph ss1 of defaultfont scaled .01;
>>
>>
>> Thank you very much for the advice.  I would appreciate any help in 
>> doing
>> this for the Arev Bold font included in TeXLive.
>>
>> Troy
>
> Hello,
>
> Here is an attempt that goes the way you describe.
Great, my congratulations.
Karel alias lazy dog:-)
>
> Regards,
> Laurent Méhats
>
> --%<-- test.mp
> verbatimtex%&latex
> \documentclass{article}
> \usepackage[T1]{fontenc}
> \usepackage{arev}
> \begin{document}
> etex;
>
> vardef init (suffix glp_num, pth_num, glp_pth) expr pct=
> %  pct            btex .. etex material
> %  glp_num        number of glyphs within pct
> %  pth_num[i]     number of paths defining the rank i glyph
> %                   (i ranges from 0 to glp_num-1)
> %  glp_pth[i][j]  rank j path of the rank i glyph
> %                   (j ranges from 0 pth_num[i]-1)
> string fnt_str, txt_str, sub_str;
> numeric txt_wd;
> glp_num:=0;
> for tkn within pct:
>   if textual tkn:
>     fnt_str:=fontpart tkn;
>     txt_str:=textpart tkn;
>     txt_wd:=0;
>     for glp_idx=0 upto (length txt_str-1):
>       sub_str:=substring (glp_idx, glp_idx+1) of txt_str;
>       pth_num[glp_num]:=0;
>       for sub_tkn within glyph ASCII sub_str of fnt_str
>           scaled (fontsize fnt_str/1000)
>           xscaled xxpart tkn
>           yscaled yypart tkn
>           shifted (txt_wd+xpart tkn, ypart tkn):
>         glp_pth[glp_num][pth_num[glp_num]]:=pathpart sub_tkn;
>         pth_num[glp_num]:=pth_num[glp_num]+1;
>       endfor
>       glp_num:=glp_num+1;
>       txt_wd:=txt_wd+
>         (xxpart tkn)*xpart urcorner (sub_str infont fnt_str);
>     endfor
>   fi
> endfor
> enddef;
>
> picture pct;     % btex .. etex material
> color fll_clr,     % fill color
>       bkg_clr,     % background color
>       oln_clr;     % outlines color
> numeric oln_thk; % outlines thickness
>
> pct:=btex{\textbf{The quick brown fox jumps over the lazy dog.}}etex;
> fll_clr:=green;
> bkg_clr:=white;
> oln_clr:=red;
> oln_thk:=.5;
>
> beginfig(0)
> numeric glp_num, pth_num[];
> path glp_pth[][];
> init (glp_num, pth_num, glp_pth) pct;
> for i=0 upto glp_num-1:
>   for j=0 upto pth_num[i]-1:
>     fill glp_pth[i][j] withcolor
>       if turningnumber glp_pth[i][j]=1: fll_clr else: bkg_clr fi;
>     draw glp_pth[i][j] withpen pencircle scaled oln_thk withcolor 
> oln_clr;
>   endfor
> endfor
> endfig;
>
> end
> --%<-- test.mp
>

--
http://tug.org/metapost/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.