Re: Stroke Font

Laurent Méhats <[email protected]>
Newsgroups gmane.comp.tex.metapost
Message-ID <[email protected]>
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.

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

-- 
Laurent Méhats
--
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.