如何使用XeTeX获取所有可用(TTF-)字体的列表?

时间:2011-02-24 19:38:24

标签: latex true-type-fonts miktex xetex

非常简洁,我可以使用MikTex和 XeTeX 在我的Windows机器上使用任何可用的Truetype字体。

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[]{article}
\usepackage{xltxtra,fontspec,xunicode}
\defaultfontfeatures{Scale=MatchLowercase}
\title{Fonttest}   
\begin{document} 
  \section{Section Title} {
    \setromanfont{Palatino Linotype}
      The quick brown fox jumps over the lazy dog.
  }
  \section{Section Title} {
    \setromanfont{ProggyCleanTTSZBP}
      The quick brown fox jumps over the lazy dog.
  }
\end{document}

有没有办法为每个可用字体自动生成一个fotn测试页?这样我就不必手动为每个可用字体键入测试页了吗?

实际上,我甚至不知道如何到达\setromanfont所需的长字体名称 - 除了在屏幕上输入它之外。 Windows目录显然只列出文件名。也许这可以在TeX本身完成,但我可以使用Python脚本或类似的方式来管理它。

3 个答案:

答案 0 :(得分:5)

fc-list  | cut -d\  -f2-99 | cut -d: -f1 | sort -u

答案 1 :(得分:0)

不是一个有效的答案,而是一个想法。您所要做的就是遍历已存在API函数的所有已安装字体系列:EnumFontFamiliesEx

答案 2 :(得分:0)

两步法

1.构建可用字体列表

为此可以使用 albatross,这是 texlive 等 tex 发行版中包含的命令行工具。它旨在查找包含某些字形的字体,例如如果你想用英文排版一段文字,你可以使用类似

 albatross -b 3 T h e

(用您的字体应该能够排版的任何字形替换 T h e

这会给你一个字体名称列表

2.制作测试页

您可以获取第 1 步中生成的字体名称列表,并让 Latex 对其进行迭代

% !TeX TS-program = xelatex

\documentclass{article}

\usepackage{pgffor}
\usepackage{fontspec}
\newcommand{\testphrase}{The quick brown fox jumps over the lazy dog.}

\begin{document}

\foreach \x in {
  Adobe Caslon Pro, 
  Adobe Garamond Pro,
  % many more fonts here
  Zapfino}{
  \section{\x}
  \begingroup
    \setmainfont{\x}
    \testphrase
  \endgroup
}
\end{document}

enter image description here

相关问题