Очистка
Удаление переносов строк
Объедините строки, разорванные колонкой PDF или почтовым клиентом, сохранив настоящие разрывы абзацев.
Почему текст из PDF вставляется разорванным
PDF не хранит абзацы. Он хранит глифы в координатах. Когда вы выделяете текст в просмотрщике PDF и копируете его, просмотрщик восстанавливает порядок чтения и вставляет разрыв строки там, где визуальная строка заканчивается — на краю колонки, а не в конце предложения. Вставьте это в документ, и каждая строка обрывается раньше.
Почтовые клиенты вызывают ту же проблему иначе. Текстовый email традиционно жёстко переносится примерно на 72 символах, поэтому пересылаемый текст приходит уже разорванным. Редакторы кода с фиксированной линейкой делают то же самое.
Исправление — различать два типа разрыва. Одиночный перенос строки внутри абзаца — это артефакт и должен стать пробелом. Пустая строка между абзацами осмыслена и должна выжить. «Сохранять разрывы абзацев» делает именно это; отключайте только когда вам действительно нужно всё в одну строку.
Порядок очистки, который работает
Когда текст приходит плохо отформатированным, порядок операций важен. Запуск в неправильной последовательности оставляет швы.
- Сначала удалите невидимые символы. Пробелы нулевой ширины и метки порядка байтов переживают большинство других операций и ломают поиск позже.
- Обрежьте каждую строку, чтобы завершающие пробелы не стали двойными при соединении.
- Удалите переносы строк, сохраняя разрывы абзацев.
- Сожмите лишние пробелы, чтобы убрать швы.
- Удалите пустые строки в последнюю очередь, когда вы видите реальную структуру.
Перенос слов — это случай, который этот инструмент намеренно не угадывает. PDF часто разрывают слово на строках с дефисом. Автоматическое склеивание «compre-» и «hension» также разрушило бы настоящие дефисы в «state-of-the-art», поэтому безопасное поведение — оставить их и позволить вам самим искать оставшиеся дефисы.
Частые вопросы
Почему текст из PDF вставляется с разрывами повсюду?
PDF хранит позиции глифов, а не абзацев. При копировании просмотрщик вставляет разрыв строки там, где визуальная строка заканчивается — на краю колонки, а не в конце предложения. Структура никогда не была в файле.
Разрушит ли это мои разрывы абзацев?
Нет, если включено «Сохранять разрывы абзацев» (по умолчанию). Одиночные переносы строк внутри абзаца становятся пробелами; пустые строки между абзацами сохраняются. Отключайте только когда намеренно хотите всё в одну строку.
Склеивает ли инструмент слова с дефисами на разных строках?
Нет, намеренно. Склеивание «compre-» и «hension» также разрушило бы настоящие дефисы в словах вроде «state-of-the-art», и нет надёжного способа отличить одно от другого без словаря. Ищите оставшиеся дефисы после очистки.