cm-super 中的符号“№”导致 VeraPDF-validator 无法生成 PDF/A

cm-super 中的符号“№”导致 VeraPDF-validator 无法生成 PDF/A

目前,我们正在尝试为州立图书馆制作符合 PDF/A-1b 标准的期刊版本。

期刊是混合语言——俄语/英语,因此我们使用西里尔语和一些特定于俄语印刷标准的符号。特别是符号“№”,用于对俄罗斯基金的发行和拨款进行编号等。对于排版,我们使用 cm-super(Type 1)矢量字体。

问题是:该符号(№、\No、\textnumero)根据 VeraPDF-validator(可能由库使用)的含义生成下一个“错误”(失败)-

规范:ISO 19005-1:2005,条款:6.3.6,测试编号:1 对于嵌入在符合文件中并用于渲染的每种字体,字体字典中和嵌入字体程序中的字形宽度信息应一致。

现在我们正在考虑一种解决方案,将“№”字体符号更改为如下所示的形式:

\def\ourNo{N\kern-.05em-\kern-.37em\raise.75ex\hbox{\scriptsize o}\@}

它看起来与 Type 1 中的原始“№”相似但不完全相同,当从 PDF 复制为文本时,它会生成几个符号(否),这不太好。但它可以工作。

有人知道这个问题并且可以提供其他解决方案吗?

以下是简单的代码:

\documentclass{article}
%\usepackage{cmap} - disabling or enabling have no effect on the problem
\usepackage[a-1b]{pdfx}
%\usepackage{hyperref} - disabling or enabling have no effect on the problem
\usepackage[russian,english]{babel}
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}

\begin{document}
\end{document}

更新: 我们还尝试了 Acrobat Pro 中的“保存到 PS - Distiller”程序,但它在通过 VeraPDF 验证时导致相同的结果,然而 Adob​​e 验证器(Preflight)没有显示任何错误。

更新2: 在朋友的帮助下,我被重定向到使用 pdfLaTeX 的 Linux Libertine 和 Linux Biolinum 的 PDF/A 以及效果良好的解决方案:

%%% Solving \textnumero problem in russian pdflatex
%%% Don't know how to explain why this works
\UndeclareTextCommand{\textnumero}{T2A}
\usepackage{textcomp} %depending on previous font packages this may be second call to package

这可能意味着在 该符号中的定义比textcomp在 中的定义“更好” 。fontenct2aenc.dfu

答案1

在朋友的帮助下,我被重定向到使用 pdfLaTeX 的 Linux Libertine 和 Linux Biolinum 的 PDF/A 并找到了有效的解决方案:

%%% Solving \textnumero problem in russian pdflatex
%%% Don't know how to explain why this works
\UndeclareTextCommand{\textnumero}{T2A}
\usepackage{textcomp} %depending on previous font packages this may be second call to package

这可能意味着在 该符号中的定义比textcomp在 中的定义“更好” 。fontenct2aenc.dfu

答案2

好的,同事们,这个解决方案效果很好,但正如我们所见,它只是一个拐杖。“坏”符号的问题仍然存在,使用上述解决方案,我们将 T2A 中声明的“坏”符号更改为 TS1 中声明的好符号。这尤其使我们使用了额外的字体编码,结果将大量额外的字体符号包含在 pdf-a 中。这不好。所以,现在的问题是 - 是否有可能在 CTAN 上更正 T2A(尤其是关于 \No 符号)?

相关内容