我想确保我可以为每个输入文件加载相同的字体,无论是图表还是文本内容。这与我下面的陈述有关,
尽管 PSTricks 无法
pdflatex
直接使用,但这实际上并没有困扰我们,因为敏捷用户(采用最佳实践范式“关注点分离”)知道图表应该与文本内容分开。这意味着每个图表都应该放在一个单独的、独立的但可编译的输入文件中。对于 PSTricks,此图表的输入文件必须按latex-dvips-ps2pdf
顺序编译。它的产物是 PDF 格式的图表,可用于pdflatex
编译主输入文件(即包含文本文档的输入文件)。这有意义吗?
和
我们可以创建自己的包
common.sty
来加载常用设置(字体等)。然后可以从每个输入文件中加载此包,无论是用于图表还是文本文档。因此,图表中使用的字体(以及其他常用设置)与文本文档中使用的字体完全相同。
那么是否有任何字体只能为 加载pdflatex
而不能为 加载latex-dvips-ps2pdf
?如果没有这样的字体,我处于安全的位置。
答案1
大多数“标准” TeX 字体都可以通过两者加载pdflatex
,latex
因此适合任一途径。
但是,与 TeX 不同,pdfTeX 可以.ttf
直接使用 truetype ( ) 字体。因此您需要避免使用此类字体。使用这些字体的软件包并不多。两个是winfonts
和gtamacfonts
。
您可以相当轻松地检查您的软件包是否使用了此类字体。创建一个包含各种文本和数学类型的示例文档,确保包含用户可能需要的一点点内容。使用 进行编译pdflatex
,然后在 PDF 查看器或使用 中检查它使用的字体pdffonts
。
pdffonts
这是我最近制作的文档的输出:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
CCNYNY+LMRomanCaps10-Regular Type 1 Custom yes yes no 105 0
FDLWIA+LMRoman8-Regular Type 1 Custom yes yes no 106 0
CCNYNY+LMRomanCaps10-Regular Type 1 Custom yes yes no 107 0
FDLWIA+LMRoman8-Regular Type 1 Custom yes yes no 108 0
GVOTOJ+LMRoman10-Bold Type 1 Custom yes yes no 109 0
PUROLC+Webdings TrueType WinAnsi yes yes no 110 0
DictSym Type 1 Builtin yes no no 111 0
ZWSJHO+AppleSymbols TrueType WinAnsi yes yes no 112 0
UIRPQW+wasy10 Type 1 Builtin yes yes no 113 0
CPKUDH+LMMathSymbols7-Regular Type 1 Custom yes yes no 114 0
ZISKEU+LMRoman7-Regular Type 1 Custom yes yes no 115 0
ZISKEU+LMRoman7-Regular Type 1 Custom yes yes no 116 0
ZNZYUX+MarVoSym Type 1 Builtin yes yes no 117 0
XTZZTM+Archaic-Linear-B Type 1 Builtin yes yes no 118 0
ZISKEU+LMRoman7-Regular Type 1 Custom yes yes no 119 0
EEVCBJ+LMRoman10-Regular Type 1 Custom yes yes no 120 0
KUEEZQ+Dingbats Type 1 Builtin yes yes no 121 0
INSJOE+Wingdings2 TrueType WinAnsi yes yes no 122 0
QIJIVE+Wingdings TrueType WinAnsi yes yes no 123 0
NBXRIW+LMRoman5-Bold Type 1 Custom yes yes no 124 0
CSLKTL+SkakNew-Figurine Type 1 Builtin yes yes no 125 0
KSIRXI+LMRoman5-Regular Type 1 Custom yes yes no 126 0
BTAZIL+Archaic-Poor-Mans-Hieroglyphs Type 1 Builtin yes yes no 127 0
VERRCN+phaistos Type 1 Builtin yes yes no 128 0
ZFJTFV+LMMathExtension10-Regular Type 1 Custom yes yes no 129 0
EEVCBJ+LMRoman10-Regular Type 1 Custom yes yes no 130 0
IFGYIN+HoeflerText-Ornaments TrueType WinAnsi yes yes no 131 0
BHBUPA+LMRoman7-Bold Type 1 Custom yes yes no 132 0
ZISKEU+LMRoman7-Regular Type 1 Custom yes yes no 133 0
QMGXWG+LMRoman8-Italic Type 1 Custom yes yes no 134 0
GBNVNG+LMRoman10-BoldItalic Type 1 Custom yes yes no 135 0
GBNVNG+LMRoman10-BoldItalic Type 1 Custom yes yes no 136 0
NCZUCO+LMRoman12-Bold Type 1 Custom yes yes no 137 0
GENWMA+LMRoman8-Bold Type 1 Custom yes yes no 138 0
GENWMA+LMRoman8-Bold Type 1 Custom yes yes no 139 0
GENWMA+LMRoman8-Bold Type 1 Custom yes yes no 140 0
GVOTOJ+LMRoman10-Bold Type 1 Custom yes yes no 141 0
QGFRJE+MSAM7 Type 1 Builtin yes yes no 142 0
纵观整个列表,TrueType
第二列中包含的所有行都是有问题的。包含的所有行都Type 1
没有问题。[请注意,我特意选择了一个使用大量 TrueType 字体的文档用于演示。我制作的绝大多数文档都比较典型,根本不包含任何 TrueType 字体。]
另一件需要注意的事情是元字体。这些字体可以与 TeX 和 pdfTeX 一起使用,但在许多 PDF 查看器(尤其acroread
是 Adobe Reader)中渲染效果很差。如果您使用“标准”TeX 字体,确保已cm-super
安装并\usepackage[T1]{fontenc}
包含在内或使用 Latin Modern 是避免此陷阱的好方法。