有人告诉我查看一下由...生成的我的一个 PDF 中的字体是否存在未指明的问题pdflatex
。我没有发现任何明显的问题,除了无害的问题:
LaTeX Font Warning: Font shape `T1/lmr/bx/sc' undefined
(Font) using `T1/lmr/bx/n' instead on input line 103.
嗯,我想要的是将部分文本用小写字母书写,我喜欢具体化;然而,我不知道的是,这是越南语字体,它遵循 T5 编码!我直到找到并查看后才意识到这一点concretevn-test.tex
。
所以我想我试着用一个最小的例子来看一下这个问题,我认为使用这种字体时存在一些问题,替代 ACM LaTeX2e 样式文件 V2.4(2009 年 4 月 CLS)(从ACM SIG 会议论文集模板 — 计算机协会)。
article
首先,使用默认文档类(调用文件fonttest.tex
)时似乎没有任何问题:
\documentclass{article}
\usepackage[T5]{fontenc} % must have for new font selection style (11533 bytes PDF size)
% , else on \fontencoding{T5} line:
%% ! LaTeX Error: Encoding scheme `T5' unknown.
% ... not needed for old (?) font selection style;
% but if used, 11534 bytes - if not used, 17846 bytes of PDF size
%%%%% old (?) font selection style
% \newfont{\myscfont}{vncccsc10 scaled 900}
\begin{document}
This is a test of normal text... This is a test of normal text... This is a test of normal text... This is a test of normal text...
{
%%%%% old (?) font selection style
% \myscfont
%%%%% new font selection style
\fontencoding{T5}
\fontfamily{ccr}
\fontseries{m}
\fontshape{sc}
\fontsize{10}{12}
\selectfont
Trying Small Caps Out...
}
This is a test of normal text... This is a test of normal text... This is a test of normal text... This is a test of normal text...
\end{document}
旧的(?)和新的字体选择系统(NFSS)工作正常(上述文件演示了 NFSS 方法);pdflatex
没有给出任何警告或错误;evince
打开 PDF 文件正常;pdffonts
报告:
$ pdffonts fonttest.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
TVOLGQ+VNR10 Type 1 yes yes no 4 0
VNWFOD+Vncccsc10 Type 1 yes yes no 5 0
article
如果我将文档类替换为以下内容,就会出现问题\documentclass{sig-alternate}
:
...
No file fonttest.aux.
! Corrupted NFSS tables.
wrong@fontshape ...message {Corrupted NFSS tables}
error@fontshape else let f...
l.14 \begin{document}
...
如果我在这里按下 ENTER 键,pdf 实际上就会生成:
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
...
Output written on fonttest.pdf (1 page, 17702 bytes).
$ pdffonts fonttest.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
NJOBBG+CMR10 Type 1 yes yes no 4 0
VNWFOD+Vncccsc10 Type 1 yes yes no 5 0
... 奇怪的是,字体似乎嵌入得很好?!无论如何,evince
打开后显示正确的字体...
现在,令我感到惊讶的是,如果我查看 .log 文件:
...
LaTeX Font Info: Redeclaring font encoding T1 on input line 43.
)
LaTeX Font Info: Try loading font information for T1+aer on input line 100.
(/path/to/texlive/texmf-dist/tex/latex/ae/t1aer.fd
File: t1aer.fd 1997/11/16 Font definitions for T1/aer.
)))
(/path/to/texlive/texmf-dist/tex/latex/base/fontenc.sty
Package: fontenc 2005/09/27 v1.99g Standard LaTeX package
(/path/to/texlive/texmf-dist/tex/latex/vntex/t5enc.def
File: t5enc.def 2006/11/21 v1.4 Vietnamese T5 encoding
)
LaTeX Font Info: Try loading font information for T5+aer on input line 100.
LaTeX Font Info: No file T5aer.fd. on input line 100.
LaTeX Font Warning: Font shape `T5/aer/m/n' undefined
(Font) using `T5/cmr/m/n' instead on input line 100.
LaTeX Font Info: Try loading font information for T5+cmr on input line 100.
(/path/to/texlive/texmf-dist/tex/latex/vntex/t5cmr.fd
File: t5cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
))
....
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 14.
LaTeX Font Info: ... okay on input line 14.
LaTeX Font Info: Checking defaults for T5/cmr/m/n on input line 14.
LaTeX Font Info: ... okay on input line 14.
! Corrupted NFSS tables.
wrong@fontshape ...message {Corrupted NFSS tables}
error@fontshape else let f...
l.14 \begin{document}
?
LaTeX Font Warning: Font shape `T5/aer/m/n' undefined
(Font) using `OT1/cmr/m/n' instead on input line 14.
...
LaTeX Font Info: Try loading font information for T5+ccr on input line 28.
(/path/to/texlive/texmf-dist/tex/latex/vntex/t5ccr.fd
File: t5ccr.fd 2006/08/02 Fontinst v1.927 font definitions for T5/ccr.
) [1
{/path/to/texlive/texmf-var/fonts/map/pdftex/updmap/pdftex.map}
] (./fonttest.aux)
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
....
请注意,如果我使用旧的(?)字体选择样式,也会发生同样的行为(损坏的 NFSS 表sig-alternate
),但是除非\usepackage[T5]{fontenc}
使用了行“ ”!如果注释了此行,则pdflatex
不会报告任何警告,并且 evince 可以正常呈现 PDF。
现在,如果我正确读取了 .log 的话,“字体形状“T5/aer/m/n”未定义“基本上意味着某些东西请求了aer
T5 编码的字体;但我不明白是什么?!该类sig-alternate
确实使用了这种aer
字体:
$ grep -n --context=1 aer sig-alternate.cls
1458-\ProcessOptions
1459:\fontfamily{aer}
1460-\RequirePackage[T1]{fontenc}
--
1466- \renewcommand{\sfdefault}{aess}
1467: \renewcommand{\rmdefault}{aer}
1468- \renewcommand{\ttdefault}{aett}
...但在我看来——所有这些(与aer
字体相关的)难道不应该在“ ”命令执行时设置好\documentclass{...}
;然后当 .tex 文件进入“ \fontencoding{T5}
”部分时,它不应该只引用“ \fontfamily{ccr}
”字体吗?!
这就是我想更好地理解的 - 因为在我最初的问题中(我使用旧式字体选择)pdflatex
似乎在 T1 编码中寻找小写字体(并寻找错误的字体,lmr
,),我无法在上面的最小示例中重现这个问题;我也许可以尝试添加一个“ \usepackage[T5]{fontenc}
”来解决这个问题 - 但最小示例告诉我那里有麻烦?那么我该如何继续调试呢?
提前感谢任何评论,
干杯!
答案1
您不想使用 T5 编码作为默认编码。因此不要将其作为唯一(也是最后一个)编码加载。加载两种编码并通过最后加载将 T1 设置为默认值:
\documentclass{article}
\usepackage[T5,T1]{fontenc}
\begin{document}
abc
{\fontencoding{T5}
\fontfamily{ccr}
\fontseries{m}
\fontshape{sc}
\fontsize{10}{12}
\selectfont
Trying Small Caps Out...
}
\end{document}
这也适用于你的班级。
您的班级默认使用 ae 字体。如今没有人会这样做。此外,出于某种原因,将序言中的字体系列设置为 aer,这会使 latex 与 T5 编码混淆,并导致您的 NFSS 表消息损坏。
我建议撤消 aer 设置,例如
\fontfamily{cmr} %only needed it T5 is default encoding
\renewcommand{\sfdefault}{cmss}
\renewcommand{\rmdefault}{cmr}
\renewcommand{\ttdefault}{cmtt}
或者
\fontfamily{lmr} %only needed it T5 is default encoding
\usepackage{lmodern}