测试特定字体的(特定)可用字符

测试特定字体的(特定)可用字符

在弄清楚什么字体可以用来打印什么字符时,我想找到一种快速简便的方法来测试它们。我知道有很多非常有用的答案打印字符表字体(另请参阅 这里) 或者测试所有可用的字体,但我希望有一个解决方案,可以快速测试特定字体(我喜欢的)和特定字符(我需要的)。以下是我想出的办法:

\documentclass{article}
\usepackage{fontspec}
\newcommand{\fonttest}[1]{
\newfontfamily\myfont[Ligatures=TeX]{#1}
{\myfont
\textbf{#1} font test:
% here go all the characters that need to be tested, e.g.,
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz? \par
\textit{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz?} \par
More Characters: Åå Çç Øø
Uncommon Nasals: Ẽẽ Ĩĩ Ũũ Ỹỹ \par
IPA: ʔǝŋɲɾʧɨɔɛʃʤɸɣβɡɑɐɒʙðɕʑɻɚ\par
Greek: ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ αβγδεζηθικλμνξοπρσςτυφχψω \par
Ligatures: 
fluffier soufflé fisticuffs fb fh ffh fj ffj fk ffk ft fft tt Qu Th ch ck ct \par
\textsc{\ldots{} and testing some Small Caps}\par 
% whatever other characters you need to test for ... 
\vspace{1em}
}}

\begin{document}
Testing fonts in \LaTeX\ \par
\bigskip
% and here the fonts
\fonttest{Iowan Old Style}
\fonttest{Junicode}
\fonttest{Gentium Plus}
\fonttest{Minion Pro}
%\fonttest{Linux Libertine O}
%\fonttest{your favorite system font goes here}
\end{document}

这适用于 XeLaTeX 和 LuaLaTeX 以及操作系统上安装的字体。只需将系统字体的名称作为\fonttest宏的参数,然后将所需的任何字符添加到命令本身即可。

现在,(这就是为什么这是一个问题)也许更有经验的人可以修改它(或提出更好的解决方案),以便人们也可以测试与 LaTeX 发行版一起安装的字体。现在的情况是,它在 Lua 中适用于某些 LaTeX 字体,但并非适用于所有字体。

我可以做\fonttest{Linux Libertine O},但我做不到\fonttest{Accanthis},尽管我已经测试过,\usepackage{accanthis}在序言中将 Accanthis 设为文档字体)。我不知道为什么会这样。在 XeTeX 中它根本不起作用(因为这只是一个测试,所以这可能不那么重要)。所以我正在寻找一个让我测试的解决方案全部字体、LaTeX 和系统,理想情况下具有相同的机制(至少对于 Lua 而言,如果有人想出一种可以在引擎之间工作的解决方案,那么当然也不会被拒绝;)...)。

顺便说一句,供将来参考,一旦你发现某种字体很漂亮,但没有你需要的那个字符,你可以使用此解决方案定义后备字体。

答案1

只要你请求的字体存在,它就能正常工作。由于 Accanthis 不存在,显然这不是一个选项。我想你可能会争辩说,在这种情况下,测试应该报告字体没有提供任何请求的字符,而不是因为所有可能的字体都存在于柏拉图领域而失败。然而,我认为你还不能指望 LuaTeX 等专为排版而设计的软件能够处理所涉及的形而上学。

如果您坚持使用现有字体(例如 AccanthisADFStdNo3),只要您已将系统配置为了解相关的 TeX 字体目录,它就应该可以正常工作。例如,这些目录需要包含在fontconfig使用此字体管理的 GNU/Linux 上的配置中。

\documentclass[a4paper]{article}
\usepackage{geometry}
\usepackage{fontspec}
\newcommand{\fonttest}[1]{%
  \newfontfamily\myfont[Ligatures=TeX]{#1}%
  {\myfont
    \textbf{#1} font test:
    % here go all the characters that need to be tested, e.g.,
    AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz? \par
    \textit{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz?} \par
    More Characters: Åå Çç Øø
    Uncommon Nasals: Ẽẽ Ĩĩ Ũũ Ỹỹ \par
    IPA: ʔǝŋɲɾʧɨɔɛʃʤɸɣβɡɑɐɒʙðɕʑɻɚ\par
    Greek: ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ αβγδεζηθικλμνξοπρσςτυφχψω \par
    Ligatures:
    fluffier soufflé fisticuffs fb fh ffh fj ffj fk ffk ft fft tt Qu Th ch ck ct \par
    \textsc{\ldots{} and testing some Small Caps}\par
    % whatever other characters you need to test for ...
    \vspace{1em}%
  }%
}
\begin{document}
Testing fonts in \LaTeX\ \par
\bigskip
% and here the fonts
\fonttest{Iwona}
\fonttest{Junicode}
\fonttest{Gentium Plus}
\fonttest{Minion Pro}
\fonttest{Linux Libertine O}
\fonttest{AccanthisADFStdNo3}
\end{document}

输出

但请注意,此输出不一定能告诉您所有您想要知道的信息。例如,某些字体提供小型大写字母,但您需要配置小型大写字母才能使其工作。或者,您可能只在激活某些字体功能时才能看到某些连字。此外,不同的字体可能会激活相同的连字作为不同字体功能的一部分。

当然,这不会告诉您有关以传统方式安装的 type1 或 MetaFont 字体的任何信息。

答案2

只需更好地使用选项:

\documentclass{article}
\usepackage{fontspec}

\NewDocumentCommand{\fonttest}{O{}m}{{%
  \par\parindent=0pt
  \newfontfamily\myfont[#1]{#2}% limit the scope
  \myfont
  \textbf{#2} font test:
  % here go all the characters that need to be tested, e.g.,
  AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz? \par
  \textit{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz?} \par
  More Characters: Åå Çç Øø
  Uncommon Nasals: Ẽẽ Ĩĩ Ũũ Ỹỹ \par
  IPA: ʔǝŋɲɾʧɨɔɛʃʤɸɣβɡɑɐɒʙðɕʑɻɚ\par
  Greek: ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ αβγδεζηθικλμνξοπρσςτυφχψω \par
  Ligatures: 
    fluffier soufflé fisticuffs fb fh ffh fj ffj fk ffk ft fft tt Qu Th ch ck ct \par
  \textsc{\ldots{} and testing some Small Caps}\par 
  % whatever other characters you need to test for ... 
  \vspace{1em}
}}

\begin{document}
Testing fonts in \LaTeX\ \par
\bigskip
% and here the fonts
\fonttest{Junicode}
\fonttest[Scale=1.5]{EB Garamond}
\fonttest[Path=/opt/X11/share/fonts/OTF/,Extension=.otf]{SyrCOMJerusalemBold}

\end{document}

在此处输入图片描述

相关内容