Как получить список всех доступных (TTF-) шрифтов с XeTeX?
Очень хорошо, что я могу использовать любой доступный шрифт Truetype на своем компьютере с Windows с MikTex и XeTeX.
%!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}
Есть ли способ автоматически создать тестовую страницу для каждого доступного шрифта? Чтобы мне не приходилось вручную вводить тестовую страницу для каждого доступного шрифта?
На самом деле, я даже не знаю, как добраться до длинного имени шрифта, необходимого для \setromanfont
- если не вводить его с экрана. Очевидно, что каталог Windows содержит только имена файлов. Может быть, это можно сделать в самом TeX, но я мог бы управлять этим с помощью скрипта Python или чего-то подобного.
3 ответа
Не проработанный ответ, а идея. Все, что вам нужно сделать, это перебрать все установленные семейства шрифтов, для которых существует функция API: EnumFontFamiliesEx
,
Двухэтапный подход
1. Составление списка доступных шрифтов
Для этого можно использовать
albatross
, инструмент командной строки, включенный в дистрибутивы tex, например, texlive. Он предназначен для поиска шрифтов, содержащих определенные глифы, например, если вы хотите набрать текст на английском языке, вы можете использовать что-то вроде
albatross -b 3 T h e
(заменять
T h e
с любыми глифами, которые должен уметь набирать ваш шрифт)
Это даст вам список названий шрифтов.
2. Создание тестовой страницы.
Вы можете взять список имен шрифтов, созданный на шаге 1, и позволить латексу перебирать их.
% !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}