Как добавить новые шрифты в настройки консоли Powershell
(или CMD
)?
Первое, что нужно знать, это, к сожалению (!):
Только те шрифты, которые соответствуют определенным критериям, могут быть установлены в консоли!
(См .: здесь, здесь и здесь.)
Критерии шрифта + объяснение
(Текущий статус этого неизвестен.)
Для поддержки шрифта в консоли они должны:
- Шрифт должен быть шрифтом с фиксированным шагом.
- Шрифт не может быть курсивом.
- Шрифт не может иметь отрицательного
A- or C- space
.
- Если это шрифт TrueType, он должен быть
FF_MODERN
.
- Если это не шрифт TrueType, это должен быть
OEM_CHARSET
.
Что все это значит?
Большинство из них описаны здесь и здесь.
- Поле и семейство шрифта. Два младших бита задают высоту шрифта и могут принимать одно из следующих значений.
[DEFAULT_PITCH, FIXED_PITCH, VARIABLE_PITCH]
- хорошо
- Шрифт перегружает назначенную сетку / растр. Т.е. Чтобы правильно нарисовать
W
ему нужно больше места, чем обозначенная ширина символа X пикселей. Таким образом, интервал A
- это расстояние, которое нужно добавить к текущей позиции до рисования глифа символа, в то время как интервал B
- это ширина нарисованной части глифа символа.
- Биты с 4 по 7 члена указывают семейство шрифтов и могут принимать одно из следующих значений.
..,FF_MODERN,..
Шрифты с постоянной шириной штриха (моноширинные), с засечками или без них. Моноширинные шрифты, как правило, современные. Pica, Elite и CourierNew являются примерами.
- Шрифт должен быть чем-то большим, чем просто моноширинный. Он также должен поддерживать все символы в кодовой странице OEM, шрифт должен также включать 437 символов "OEM" набора символов
IBM437 (OEM United States)
, как также описано здесь.
Тем не менее, одним из известных шрифтов, который работает, и который был предложен, потому что он поддерживает много полезных глифов и математику, является DejaVu. К сожалению, он не является частью стандартного выбора шрифтов Windows и должен быть установлен вручную.
Если у необходимого вам шрифта еще нет файла шрифта TrueType (*.ttf
) или OpenType (*.otf
), вам необходимо преобразовать файлы SFD в TTF (или OTF). Для этого вы можете использовать FontForge для импорта SFD, а затем сгенерировать TTF.
Шаги для установки файла TTF с помощью FontForge
- Установите FontForge (далее "FF")
- Запустите FF от имени администратора
- Загрузите файл (ы) шрифтов SFD (например, DejaVuSansMono.sfd.)
- Откройте файл с помощью:
File > Open
и нажмите ОК.
- Создайте TTF с помощью:
File > Generate Fonts...
, затем
- Выберите
True Type
в раскрывающемся списке, затем
- Снимите флажок «
Validate Before Saving
и нажмите « Generate
.
- Перетащите получившийся файл
*.ttf
в панель управления Windows для шрифтов, расположенных по адресу:
(Control Panel\Appearance and Personalisation\Fonts
) или: WIN+R
и введите: %windir%\fonts
.
Готово. Новый шрифт теперь сразу доступен в вашем реестре.
Загрузите новые шрифты в реестр консоли.
Для этого откройте консоль Powershell от имени Administrator
.
# All your available fonts are located here:
$T1key = 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Fonts'
# But your Console fonts are located here:
$T2key = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont'
# Check the correct name:
Get-ItemProperty -Path $T1key | grep "DejaVu"
DejaVu Sans Mono (TrueType) : DejaVuSansMono.ttf
# Note the correct spacing of the name and ignore the "(TrueType)" part
# Check what's already there:
Get-ItemProperty -Path $T2key
# To add more fonts, just add the new name like this:
# - Add another 0 (zero) to the -Name parameter, for each new font
# So since there is already an item with two zeros, so we need 3 and 4 zeros...
#Set-ItemProperty -Path $key -Name '000' -Value 'Arial' # Doesn't work!
#Set-ItemProperty -Path $key -Name '0000' -Value 'Calibri' # Doesn't work!
Set-ItemProperty -Path $key -Name '00000' -Value 'DejaVu Sans Mono'
Однако вы не увидите новые элементы шрифта, пока:
- реестр был перезагружен в память, поэтому единственный способ это сделать:
- перезагрузите компьютер или
- перезапустите
Windows Explorer
.
- Перезагрузите консоль Powershell
- Отправьте отчет об ошибке в консоль
репозитория Windows Powershell repo и попросите их:
поддерживать правильные шрифты с правильными символами Unicode.
Наслаждайтесь множеством новых и правильных символов!
Например, попробуйте 5/8th box
:
[char]0x2585 # (U+2585)
Приложение:
Диалог Expand Stroke дает вам контроль над различными аспектами процесса расширения. Сначала вы можете указать три типа перьев пера:
- Круглая ручка, которая по умолчанию является круглой, но может быть преобразована в эллипс
- Прямоугольная ручка, которая по умолчанию квадратная, но может быть преобразована в более традиционные формы каллиграфического пера
- Полигональная ручка - вы можете нарисовать практически любой выпуклый многоугольник.
Для круглых и каллиграфических перьев вы можете выбрать ширину штриха, то, как должны быть нарисованы концы открытой траектории, и как должна выглядеть траектория, когда соединяются два сплайна (или линии), которые не имеют одинакового наклона (т.е.
в углу).