这个单个BASH脚本将您的TTF或OTF字体类型文件转换为Postscript Type1文件,更新字体示例文件,并为Lout排版系统填充用户字体数据库。
Basser Lout是一个出色的排版系统,不幸的是,与Latex相比,它具有阴影。我获得了乳胶和格罗夫的经验,都有他们的优点和缺点。如果我应该向排版新手推荐一个系统,我显然会建议Lout。它非常丰富,易于学习,并且在您的系统上留下了少量的占地面积。要排版漂亮的文档,人们不想坚持LOUT提供的字体,而是需要轻松且无忧的访问所有已安装的字体。毕竟,排版对于任何认真的作者或以设计为导向的人都很重要。
将自定义字体嵌入到Tex,Troff或Lout设置的文档中的过程基本上是相同的,您必须提供PostScript字体。
该脚本将您选择的字体转换为那些PS type1字体,更新ghostscripts fontmap文件,并将每个字体的条目添加到lout的个人字体数据库(默认名称:myfontdefs.ld)。第一部分对乳胶和格罗夫用户也可能有帮助。
转换是由外部程序TTF2PT1完成的,您可以切换到其他工具,例如Tex发行版也为此提供了一些工具。我的目标是实现安装过程,而无需任何手动干扰。尽管TTF2PT1是一个非常旧的工具,并且确实需要Mac OS X和Linux系统上的一些补丁,但它会产生非常不错的PS字体。它依靠Freetype2库来转换TTF和OTF字体。您也可以坚持内置的TTF转换器,但是,它不会转换OTF字体。
您可能必须根据自己的特定需求来采用脚本。我的设置是我在目录中具有所有字体(〜/.fonts)。脚本(或指向其链接)以及所有相关的PS字体文件(.afm,.pfb,fontmap)。
要安装使用Lout使用的新字体,只需在此目录中提取.ttf或.oft文件并运行
./addfonts.sh
该脚本相当交流,还将其输出(以及TTF2PF1的输出)记录到Addfonts.log。
选择合适的安装目录并下载来源:
wget http://prdownloads.sourceforge.net/ttf2pt1/ttf2pt1-3.4.4.tgz
还要获取Freetype 2库的标题文件(如果尚未安装),请使用您的软件包管理器。这是Debian系统的示例:
sudo apt-get install libfreetype6-dev
提取tarball:
tar xvzf ttf2pt1-3.4.4.tgz
将作为存储库一部分的补丁文件移至当前目录,然后在ft.patch上应用:
mv ~/my_addfonts_path/*.patch .
patch ./ttf2pt1-3.4.4/ft.c < ft.patch
现在,根据您的需要在TTF2PT1-3.4.4中采用Makefile。您可能会发现我的makefile有用,它将为您提供一个很好的起点(原始的makefile在SED表达式中具有错别字):
patch ./ttf2pt1-3.4.4/Makefile < Makefile.patch
运行并制作安装以编译并在系统上安装TTF2PT1:
cd ttf2pf1
make
sudo make install
在Lout文档中使用TTF/OTF字体非常简单。在运行AddFonts.sh后,LOUT的用户字体数据库可在同一字体目录(MyFontDefs.ld)中使用。 Lout本身仅需要.afm文件,使用Ghostscript创建PS和PDF文件也需要.pfb(binary)或.pfa(ascii)文件。在MyFontdefs.ld中查看您要使用的字体输入。 AddFonts.log还将告诉您已安装了哪些字体。在您的Lout文档中,添加数据库没有完整的路径或后缀:
@Database @FontDef{ myfontdefs }
现在,在需要的任何地方使用新字体,这是为“全球范围内”为报告类型文档设置替代字体的示例:
@InitialFont { Minion_Pro Base 12p }
用户手册非常非常有帮助且写得很好,请咨询有关字体的所有内容。如果您想深入研究,还有一本专家手册,可以尝试一下。为了与Louts命名一致,我绘制了一些常用的字体面孔:
只需确保您使用MyFontDefs.ld中编写的正确字体系列和脸部名称即可。
最后但并非最不重要的一点是,请不要忘记告诉Lout在调用时您有一个自定义的外部字体数据库:
lout -D/path/to/directory/of/database -F/path/to/directory/of/fontmetrics
请记住,在我的设置中,我在同一路径中有字体公制文件(.afm)和数据库(myfontdefs.ld)。这也是包含字体文件和.pfb文件的注册Ghostscript字体路径。检查变量$ GS_FONTPATH是否包含此路径。当前addfonts.sh粘在此环境变量上。将来的版本应省略此限制,并使任何搜索路径可按照-i,gs_lib和gs_lib_default或with -sfontpath = switch访问。另外,您可以自己修改addfonts.sh。
现在,祝您好运,并使用您喜欢的任何字体享受美丽的文档!