Почему знаки становятся розовыми квадратиками и как это исправить
Если знак, или как его иначе называют глиф (glyph), отсутствует в выбранном для этого знака шрифте, то на экране на месте этого символа обычно розовый квадратик. Такая потеря происходит совершенно неожиданно. Например, в Word текст набирался шрифтом Times New Roman, в него помещались греческие буквы. И на экране всё нормально. А после импорта этот текст оформили гарнитурой Лазурского, и все греческие буквы исчезли. Но мы можем этого и не заметить, ошибки найдёт редактор, и он тоже может что-то пропустить.
И даже если редактор всё выловит, самое прескверное в этой ситуации — это удар по вашей репутации, что в вашей вёрстке такая лажа найдена. С точки зрения редактора/корректора любые ошибки форматирования текста — это косяк верстальщика. Но жаль времени и глаз, чтобы выискивать все такие случаи. Поэтому такую тупую работу поиска потерянных глифов лучше поручить скрипту.
Помочь найти такие проблемные знаки и назначить им шрифт, в котором они есть, помогут два скрипта. Одна программа в качестве шрифта, в котором предположительно есть все глифы, использует Minion Pro, вторая — Times New Roman. Любую из них легко переделать для использования другого шрифта.
Обрабатывается вся статья.
Скрипт ищет такие потерянные глифы в статье, оформляет их шрифтом, определённым в переменной rightFontName, и отмечает цветом '#colorForGlyphes'.
После обработки надо в поиске просмотреть все знаки, отмеченные цветом '#colorForGlyphes', дабы убедиться, что вместо розовых квадратиков возвращены верные символы, и приложить к этим знакам символьный стиль, чтобы не потерять оформление.
https://mega.nz/#!psY0CLpa!61SlPYz88b5K41V84Rx05ieFS7ljsC5mHMLjvVdXQd8
== Использование DoTextOK для избавления от розовых квадратиков ==
В большинстве случаев если какой-то знак стал розовым квадратиком, то это или что-то из греческих символов, или экзотическая буква других алфавитов.
Скрипт DoTextOK находит эти знаки, оформляет их символьным стилем 'mySpecialChars', (вкладка "Оформление текста", флажок "Создать символьные стили для специальных знаков и других алфавитов") но поскольку в установках этого стиля шрифт не определён, то приложение абзацного стиля будет причиной появления розовых квадратиков.
Другая ситуация — они могут появиться после приведения в порядок сносок скриптом: там тоже есть присвоение предопределенного абзацного стиля, и символ, к которому приложен символьный стиль 'mySpecialChars', может превратиться в квадратик. Но цвет и присвоенный символьный стиль останутся.
Как вариант, сразу после обработки скриптом DoTextOK можно определить в стиле 'mySpecialChars' используемый шрифт для специальных знаков и других алфавитов, если такой существует для этой задачи.
Тогда стилевая разметка текста не должна влиять на греческие буквы, они в розовые квадратики превратиться не должны.
Но если после приложения абзацного стиля появились квадратики, то просто добавление в установки 'mySpecialChars' информации об используемом шрифте на вёрстку не повлияет: после названия символьного стиля будет плюсик, но квадратик в символ не превратится. Надо переопределить все стилевое оформление всех знаков, к которым приложен этот символьный стиль. И для этого подойдет вот такой grep-запрос:
Поиск: ищем точку, оформленную символьным стилем 'mySpecialChars' (точка — это любой алфавитно-цифровой символ)
Замена: поле пустое, только определено, что результат оформлен символьным стилем 'mySpecialChars'.