如何在 context/texlua 中制作字体书?

如何在 context/texlua 中制作字体书?

下面将列出所有字体,但我想更进一步并提供每种字体的样本。

ConTeXt 如何以各自的字体呈现每种字体?也许 LuaTeX 可以胜任这个工作?

http://wiki.contextgarden.net/Font_Switching建议另外三篇文章,但我不知道哪一篇是相关的。

% When you want list of all fonts in the database you can do this with 
% a few macros in your document which are provided for this purpose.

% nofruns=1

\setupbodyfont[10pt]

\starttext

\dolookupfontbyspec{filename=*}

\starttabulate
\dorecurse{\dolookupnoffound}
  {\expanded{\NC \dolookupgetkeyofindex{fontname}{\recurselevel} \EQ \dolookupgetkeyofindex{filename}{\recurselevel} \NC\NR}}
\stoptabulate

\stoptext

答案1

使用\definedfont[file:<filename>]。或者,\definedfont[name:<fontname>]也是可能的,但这样你只是指示字体加载器再次进行字体名称到文件名的解析,这是毫无意义的,因为你已经有了文件名。更多信息可以在»ConTeXt 字体«又名汉斯的新字体手册。

这很可能要花很长时间,而且可能无法排版,因为有些字体包含错误或不包含可打印字符。例如,在我的 TL 2016 安装中,我收到错误

! error:  (file /usr/local/texlive/2016/texmf-dist/fonts/afm/urw/avantgar/uagbi8a.afm) (cff): could not understand Type1 font: /usr/local/texlive/2016/texmf-dist/fonts/afm/urw/avantgar/uagbi8a.afm

并且没有页面输出。对于前 100 个页面,它运行正常,我在下面附上了此输出的第一页。

\setupbodyfont[10pt]

\starttext

\dolookupfontbyspec{filename=*}

\starttabulate[|l|l|l|l|]
\dorecurse{\dolookupnoffound}{
  \expanded{
    \NC \recurselevel
    \NC \dolookupgetkeyofindex{fontname}{\recurselevel}
    \EQ \dolookupgetkeyofindex{filename}{\recurselevel}
    \EQ \definedfont[file:\dolookupgetkeyofindex{filename}{\recurselevel}] My test text
    \NC\NR
  }
}
\stoptabulate

\stoptext

在此处输入图片描述

相关内容