Отобразить символы на квадратной сетке?

Вопрос или проблема

Как я могу отобразить символы так, как будто они квадратные в vim? Сами символы не обязательно должны быть квадратными, но если провести сетку через все центральные точки символов, она должна образовать квадратную сетку.

Я хочу сделать это, потому что проектирую план крепости для Dwarf Fortress. Игра построена на квадратной/кубической сетке.

На Windows есть несколько квадратных моноширинных шрифтов в conhost.exe (который был стандартным терминалом, используемым cmd и PowerShell, в настоящее время замененным Windows Terminal) по умолчанию, таких как шрифт 8×8, но я никогда не слышал о подобном в Linux. Я провел поиск и нашел квадратный шрифт, который был создан именно для вашей цели.

Square — это TTF шрифт, предназначенный для рогаликов

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

Square был разработан, чтобы символы заполняли квадратное пространство как можно более равномерно и однородно. Он вдохновлен тем, как японские символы всегда равномерно помещаются в коробку, независимо от их дизайна. Он не имеет типичных восходящих/нисходящих символов в строчных буквах и вместо этого делает строчные буквы более легкой версией заглавных букв.

Квадратный шрифт

Дубликаты на других сайтах:

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

пример квадратных шрифтов


Однако, если ваши тексты ограничены маленьким набором символов (в частности, ASCII 21 до 7E плюс несколько восточноазиатских символов), то вы можете просто использовать полуширокую форму напрямую без необходимости в другом шрифте.

Ниже приведен небольшой шелл-скрипт для конвертации из полушироких в полные. Строка для конвертации считывается из стандартного ввода.

halfwidth="!"#$%&"\''()*+,-.\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅⦆¢£¬¯¦¥₩ '
fullwidth="!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅⦆¢£¬ ̄¦¥₩ "
sed -e "y/$halfwidth/$fullwidth/"

Пример

$ cat square.txt
0123456789
1-square 8
2####text7
3$$$$$$$$6
4@@@@@@@@5
5(SQUARE)4
6~~~TEXT 3
7>>>2
8////\\\\1
9876543210

$ cat square.txt | sh fullwidth.sh
0123456789
1-square 8
2####text7
3$$$$$$$$6
4@@@@@@@@5
5(SQUARE)4
6~~~TEXT 3
7<<<<>>>>2
8////\\\\1
9876543210

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

Создайте квадратный моноширинный шрифт из Courier, используя ваш любимый редактор шрифтов. Используйте его в вашем терминале.

Если у вас нет терпения для редактирования шрифтов и есть харизма (или что-то еще), вы можете сделать это вместо этого.

Интернет предложил это, но возможно, он не совсем квадратный.

Я искал шрифт для использования с генератором QR-кодов на python. Кажется, что эта библиотека предполагает определенное соотношение высоты и ширины символов 8:7, поэтому квадратные шрифты, упомянутые выше, фактически создали QR-код шире, чем он был высокий. На моем Mac шрифт Andale Mono в размере 14 или 28 пунктов создает идеально квадратные QR-коды. В окне iTerm, показанном ниже, например, QR-код точно 168:168.

введите описание изображения здесь

Ответ или решение

Как отобразить символы на квадратной сетке в Vim?

Если вы хотите отображать символы в Vim, чтобы они выглядели как будто находятся на квадратной сетке, вам потребуется использовать шрифт, который специально разработан для этого, поскольку большинство монопространственных шрифтов имеют неравные соотношения высоты и ширины знаков. В этом руководстве мы обсудим некоторые полезные методы для достижения этого, в том числе использование квадратных шрифтов и создание собственного шрифта при необходимости.

1. Выбор шрифта

Квадратные шрифты – это шрифты, которые созданы с целью заполнить квадратное пространство знаков, равномерно воспринимая символы. Одним из самых известных квадратных шрифтов является шрифт Square, который изначально разработан для игр-роуглайков. Он избегает типичных восходящих и нисходящих элементов букв и расписан так, чтобы символы занимали ровно квадратное пространство.

Вот несколько ресурсов, где вы можете скачать квадратный шрифт:

Установив квадратный шрифт в систему, вы сможете настроить Vim для его использования с помощью следующих команд:

set guifont=Square\ Font:h12

Замените Square Font:h12 на название шрифта, который вы хотите использовать, учитывая нужный размер.

2. Использование полного ширинного формата

Если вы работаете с ограниченным набором символов (например, только с ASCII), вы можете использовать полноширинные формы для отображения текста. Это подразумевает преобразование полушироких символов в полноширокие. Для этого можно воспользоваться небольшим скриптом на Bash, который преобразует вводимые символы.

Пример скрипта для преобразования:

halfwidth="!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
fullwidth="!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
sed -e "y/$halfwidth/$fullwidth/"

Эта программа заменяет каждого полуширочного символа соответствующим полноширочным символом, гарантируя, что они займут квадратное пространство.

3. Создание собственного шрифта

Если вы обладаете навыками работы с графическими редакторами шрифтов, вы также можете создать собственный квадратный моноширинный шрифт на основе существующего, например, Courier. Это позволит вам настроить формат так, как это вам необходимо.

В качестве альтернативы, можно использовать инструменты для редактирования шрифтов от сторонних разработчиков, если у вас нет времени или желания заниматься ручным редактированием. Например, подходы, изложенные на сайта, такие как JWZ Blog могут быть весьма полезными.

Заключение

Для отображения символов на квадратной сетке в Vim вам следует тщательно выбирать шрифты и, если необходимо, адаптировать существующие шрифты под ваши нужды. С помощью квадратных шрифтов и превращения полушироких символов в полноширокие вы сможете четко организовать текст в соответствии с требованиями квадратной структуры. Надеемся, что эта информация была вам полезна для проектирования вашей крепости в игре Dwarf Fortress.

Оцените материал
Добавить комментарий

Капча загружается...