3

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

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

добавляя строковые значения с ключами 00 , 000 , 0000 и т. д., причем их значения являются именами шрифтов. Я уже сделал это. Я добавил имена шрифтов в реестр, как вы можете на скриншоте ниже, и перезагрузил компьютер:

смерзаться

Тем не менее, шрифты, которые я добавил, не отображаются в списке. Более конкретно, я добавил Inconsolata и Source Code Pro. Но я не вижу их в списке доступных шрифтов:

консольные шрифты

Что мне не хватает? Я использую Windows 10 версии 1803, сборка 17134.165.

1 ответ1

3

Как добавить новые шрифты в настройки консоли Powershell (или CMD)?

Первое, что нужно знать, это, к сожалению (!):

Только те шрифты, которые соответствуют определенным критериям, могут быть установлены в консоли!

(См .: здесь, здесь и здесь.)


Критерии шрифта + объяснение
(Текущий статус этого неизвестен.)

Для поддержки шрифта в консоли они должны:

  1. Шрифт должен быть шрифтом с фиксированным шагом.
  2. Шрифт не может быть курсивом.
  3. Шрифт не может иметь отрицательного A- or C- space.
  4. Если это шрифт TrueType, он должен быть FF_MODERN.
  5. Если это не шрифт TrueType, это должен быть OEM_CHARSET.

Что все это значит? Большинство из них описаны здесь и здесь.

  1. Поле и семейство шрифта. Два младших бита задают высоту шрифта и могут принимать одно из следующих значений.
    [DEFAULT_PITCH, FIXED_PITCH, VARIABLE_PITCH]
  2. хорошо
  3. Шрифт перегружает назначенную сетку / растр. Т.е. Чтобы правильно нарисовать W ему нужно больше места, чем обозначенная ширина символа X пикселей. Таким образом, интервал A - это расстояние, которое нужно добавить к текущей позиции до рисования глифа символа, в то время как интервал B - это ширина нарисованной части глифа символа.
  4. Биты с 4 по 7 члена указывают семейство шрифтов и могут принимать одно из следующих значений. ..,FF_MODERN,.. Шрифты с постоянной шириной штриха (моноширинные), с засечками или без них. Моноширинные шрифты, как правило, современные. Pica, Elite и CourierNew являются примерами.
  5. Шрифт должен быть чем-то большим, чем просто моноширинный. Он также должен поддерживать все символы в кодовой странице OEM, шрифт должен также включать 437 символов "OEM" набора символов IBM437 (OEM United States) , как также описано здесь.

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

Если у необходимого вам шрифта еще нет файла шрифта TrueType (*.ttf) или OpenType (*.otf), вам необходимо преобразовать файлы SFD в TTF (или OTF). Для этого вы можете использовать FontForge для импорта SFD, а затем сгенерировать TTF.


Шаги для установки файла TTF с помощью FontForge

  1. Установите FontForge (далее "FF")
  2. Запустите FF от имени администратора
  3. Загрузите файл (ы) шрифтов SFD (например, DejaVuSansMono.sfd.)
  4. Откройте файл с помощью: File > Open и нажмите ОК.
  5. Создайте TTF с помощью: File > Generate Fonts... , затем
  6. Выберите True Type в раскрывающемся списке, затем
  7. Снимите флажок « Validate Before Saving и нажмите « Generate.
  8. Перетащите получившийся файл *.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'

Однако вы не увидите новые элементы шрифта, пока:

  1. реестр был перезагружен в память, поэтому единственный способ это сделать:
    • перезагрузите компьютер или
    • перезапустите Windows Explorer .
  2. Перезагрузите консоль Powershell
  3. Отправьте отчет об ошибке в консоль репозитория Windows Powershell repo и попросите их:
    поддерживать правильные шрифты с правильными символами Unicode.

Наслаждайтесь множеством новых и правильных символов!

Например, попробуйте 5/8th box:
[char]0x2585 # (U+2585)


Приложение:

ширина хода

Диалог Expand Stroke дает вам контроль над различными аспектами процесса расширения. Сначала вы можете указать три типа перьев пера:

  • Круглая ручка, которая по умолчанию является круглой, но может быть преобразована в эллипс
  • Прямоугольная ручка, которая по умолчанию квадратная, но может быть преобразована в более традиционные формы каллиграфического пера
  • Полигональная ручка - вы можете нарисовать практически любой выпуклый многоугольник.

Для круглых и каллиграфических перьев вы можете выбрать ширину штриха, то, как должны быть нарисованы концы открытой траектории, и как должна выглядеть траектория, когда соединяются два сплайна (или линии), которые не имеют одинакового наклона (т.е. в углу).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .