Заменить цифры в строке текста символами юникода
Попалось как-то в Телеге у одного известного экономиста: все цифры в квадратиках. Искал Яндексом, на форумах - нигде не нашёл, каким приложением можно заменить цифры красивыми символами юникода. Не нашёл ничего. Сделал сам макрос в Libre office. Результат здесь: https://disk.yandex.ru/d/_O2wjo3Fcoulqw Работает с включенными макросами А есть, вообще, похожие приложения?
Ответы (1 шт):
Для того, чтобы штатными средствами LibreOffice поместить сразу все цифры в декоративные рамки, мы можем воспользоваться тем, что:
- такие символы могут быть составными, где первая часть являтся обычной цифрой, а модифицирующий хвост одинаковый для всех
- LibreOffice предоставляет возможность поиска и замены с привлечением регулярных выражений
Есть разные варианты. Например:
20E3 ◌⃣ Combining Enclosing Keycap
20DE ◌⃞ Combining Enclosing Square
20DD ◌⃝ Combining Enclosing Circle
Обычно, между цифрой и декоративной рамкой ожидается вариативный селектор. Например, чтобы в браузере получить 1️⃣, вероятно понадобиться последовательность "1\uFE0F\u20E3" с вариативным селектором FE0F и рамкой Combining Enclosing Keycap. Но в LibreOffice можно ограничиться одной рамкой. При этом результат зависит от выбранного шрифта - не каждый шрифт предусмотрен для такого наложения, одно и то же наложение может отображаться по разному в разных шрифтах.
Чтобы при поиске и замене вставить нужный код, используем комбинацию Ctrl+Shift+u. Появится подчеркнутая буква u, после которой нужно набрать шестнадцатеричную комбинацию кода и нажать Enter. Замечу, что при вводе кода вариативного селектора после нажатия Enter он не будет отображаться, но это не значит, что его там нет - просто нужно продолжить, введя код рамки (убедиться в присутствии селектора можно сохранив файл как текст и прочитав его как двоичный файл).
Поиск и замену делаем через меню Edit > Find and Replace. В разделе Other Options окна замены отмечаем Regular Expressions. Для поиска цифры используем [0-9], для вставки найденной цифры используем &, сразу после которого добавляем код рамки, например 20E3 (помним, что ввод кода нужно завершить нажатием Enter, на скрине ниже отображена ситуация перед завершением ввода кода Combining Enclosing Keycap):
Возможный результат для двух шрифтов на LinuxMint 22 в LibreOffice 24:

