почему букву "f" часто нельзя скопировать из текста в pdf файлах?

Я не уверен, подходит ли этот вопрос сюда, но мне кажется странным, что буква «f» часто путается при копировании из текста в формате PDF.

Будучи студентом, я занимаюсь исследованиями и читаю много статей. Это происходит часто, когда я хочу скопировать название статьи, чтобы переименовать файл PDF.

Например, я открыл ссылку на статью из встроенного подключаемого модуля отображения PDF в Chrome на Макбук Про с ОС X 10.9. Попробуйте скопировать название статьи и вставить. Буква «f» в слове «жидкости» будет отсутствовать.


person warriormole    schedule 12.12.2013    source источник


Ответы (2)


Не только "f" будет отсутствовать, но и "fl".

Причиной этого являются так называемые «лигатуры. Чтобы красиво выглядеть, некоторые комбинации букв, особенно fi, объединяются в один символ. Специальный символ редко обрабатывается правильно при копировании и вставке. Вы можете увидеть это ниже. Если вы попытаетесь выбрать лигатуру, вы заметите, что это всего лишь одна «буква». Обратите внимание, что ваш компьютер может отображать две отдельные буквы с помощью лигатуры.

Далее идет лигатура «fi»: fi
Далее две буквы: f‌i

Особенно хорошо видно шрифтом фиксированной ширины:

The following is a "fi" ligature: fi
The following is two letters:     f‌i
person Jan Schejbal    schedule 12.12.2013
comment
И лигатур в английском больше, чем те... fi, fl, ff - person Kevin Brown; 12.12.2013

Я думаю, что причина, по которой @warriormol не может скопировать fl, заключается не в самом использовании лигатур, а в пренебрежении или недосмотре со стороны создателей PDF-файлов. 10-15 или более лет назад это было нормально, все были счастливы только потому, что в PDF есть какая-то «картинка», и никто не думал об извлечении контента и логическом тексте, а не о сохранении визуальной картинки в долгосрочной перспективе, а сейчас (файл создан в 2010 году) обидно.

PDF предоставляет методы для хранения Unicode-представления любого используемого глифа, и рассматриваемый файл можно относительно легко исправить.

person user2846289    schedule 12.12.2013
comment
+1; да, они сделали код 13 представляющим лигатуру fl, но не позаботились о добавлении соответствующих сопоставлений ToUnicode. Очень тщательный экстрактор текста может извлечь подсказки из самой программы шрифта (там глиф называется /fl), но это выходит за рамки того, что спецификация PDF признана адекватной в разделе 9.10 Извлечение текстового содержимого. - person mkl; 13.12.2013