
В настоящее время мы пытаемся подготовить для государственной библиотеки версию наших журналов, соответствующую формату PDF/A-1b.
Журнал смешанный - русско-английский, поэтому мы используем кириллицу и некоторые специфические для русского языка символы. В частности - символ "№" для нумерации выпусков и грантов российских фондов и т. д. Для набора мы используем векторные шрифты cm-super (Type 1).
Проблема в том, что этот символ (№, \No, \textnumero) генерирует следующую "ошибку" (сбой) по смыслу VeraPDF-валидатора (который, вероятно, используется библиотекой) -
Спецификация: ISO 19005-1:2005, Пункт: 6.3.6, Номер теста: 1 Для каждого шрифта, встроенного в соответствующий файл и используемого для рендеринга, информация о ширине глифов в словаре шрифтов и в программе встроенных шрифтов должна быть согласованной.
Сейчас мы рассматриваем как вариант решения изменение шрифтового символа «№» на что-то вроде этого:
\def\ourNo{N\kern-.05em-\kern-.37em\raise.75ex\hbox{\scriptsize o}\@}
Выглядит похоже, но не то же самое, что и оригинальный "№" в Type 1, и при копировании в виде текста из PDF генерирует несколько символов (No), и это нехорошо. Но это работает.
Кто-нибудь знает эту проблему и может помочь с другими решениями?
Вот простой код:
\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}
ОБНОВЛЯТЬ: Мы также попробовали использовать процедуру «Сохранить в PS - Distiller» в Acrobat Pro, но она дала тот же результат при проверке VeraPDF, хотя валидатор Adobe (Preflight) не выдает никаких ошибок.
ОБНОВЛЕНИЕ2: С помощью друзей меня перенаправили наPDF/A с Linux Libertine и Linux Biolinum с использованием pdfLaTeX и решение, которое работает хорошо:
%%% 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
этом символе он «лучше» определен, чем в fontenc
с t2aenc.dfu
.
решение1
С помощью друзей меня перенаправили наPDF/A с Linux Libertine и Linux Biolinum с использованием pdfLaTeX и нашел решение, которое работает хорошо:
%%% 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
этом символе он «лучше» определен, чем в fontenc
с t2aenc.dfu
.
решение2
Хорошо, коллеги, решение работает хорошо, но, как вы видите, это всего лишь костыль. Проблема "плохого" символа все еще существует, и в решении выше мы меняем "плохой", объявленный в T2A, на хороший, объявленный в TS1. Это, в частности, заставляет нас использовать дополнительную кодировку шрифтов, и в результате в pdf-a включается много дополнительных символов шрифтов. Это нехорошо. Итак, теперь вопрос - можно ли исправить T2A (особенно в отношении символа \No) на CTAN?