(Потерпите меня, я знаю, что наличие символов, которые не являются моноширинными в моноширинном шрифте, несколько противоречит здравому смыслу, но ниже приведен законный вариант использования.)
У меня есть приложение, которое я написал, где мне нужны шестнадцатеричные символы фиксированной ширины , чтобы мой вывод мог выглядеть следующим образом:
21 41 49 56 44 4d 2c 31
2c 31 2c 2c 41 2c 42 35
4e 62 54 66 50 30 3f 36
66 64 57 36 56 33 69 4b
Очень важно, чтобы столбцы оставались идеально выровненными, поэтому моноширинный шрифт имеет решающее значение.
Однако мне не нужно так много пробелов между символами, и на самом деле это затрудняет использование пользовательского интерфейса из-за избыточного расстояния. В результате я хотел бы найти шрифт, в котором символы без пробелов будут иметь постоянную ширину, но где я могу настроить пробелы, как в примерах, приведенных в https://jkorpela.fi/chars/spaces.html . .
Существует ли такой зверь?
Мы не знаем о технической стороне «приложения, которое вы написали» , но в некоторых дизайнерских программах есть пробелы разной ширины, кроме обычных Space.
Они работают даже для моноширинных шрифтов, однако я считаю, что они не встроены в фактический файл шрифта, а вместо этого каким-то образом эмулируются программным обеспечением (опять же, я не знаю, как это работает на уровне кодирования).
В качестве альтернативы вы можете поэкспериментировать с более сжатым моноширинным шрифтом.
Смотрите это: Какова функция пространств EM и EN?
em
и en
юникод с Courier New, но неудивительно, что все они сопоставляются с одним em
пробелом. Мое программное обеспечение просто показывает одну строку простого неформатированного текста, поэтому в этом отношении оно несколько жестко. Я не думаю, что есть какой-то безболезненный способ добиться того, чего я хочу, кроме как найти правильный шрифт.Крайне маловероятно, что шрифт с фиксированной шириной имеет такую функцию, потому что это позволит шрифтам не выравниваться под себя. Это явно не то, что задумал дизайнер. Но учтите:
Для большинства парсов даже нет необходимости в таких вещах, так как есть символ, который имеет неуказанную ширину, которую пользователь может настроить. Это символ табуляции. Таким образом, даже самые элементарные системы должны позволять вам отображать вкладку, чтобы она делала то, что вы хотите.
Почти каждая система, которую я использовал, позволяла мне делать это легко. Иногда просто позволяя мне определить ширину табуляции или позиции табуляции. Иногда рисуя с другой точки. Обычно это не так важно, как вы думаете, потому что все, что ему действительно нужно, это обертка с циклом.
Если у вас действительно должно быть специальное место. Просто возьмите шрифт с открытым исходным кодом, откройте его в fontforge и определите указанное пространство. 15 минут работы, включая загрузку fontforge.
Хотя я бы сказал, что это действительно плохой рабочий процесс.
0-9
, буквы A-F
и a-f
.double
он усекается до int
, тогда как ширина шрифта в пикселях является реальной, поэтому этот классный хак не работает в этом контексте. Я постараюсь сделать размер моего шрифта целочисленной шириной, а также отправлю отчет об ошибке в Qt.
джуджа
любопытный
Джеймсдлин