Wie kann ich der Windows-Konsole zusätzliche Schriftarten hinzufügen?

Ich habe a-guide-online - besagt, dass müssen Sie die Registrierung Bearbeiten, um so fügen Sie der Liste der verfügbaren Schriftarten in der Eingabeaufforderung neue Schriftarten hinzu: speziell, sie müssen den Schlüssel bearbeiten:

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

Durch Hinzufügen von Zeichenfolgenwerten mit Schlüsseln 00, 000, 0000, und so weiter, mit ihren werte sind die Namen der Schriftarten. Ich habe das schon getan. Ich habe die font-Namen in die Registrierung, wie Sie im Screenshot unten können, und neu gestartet der computer:

regedit

Die Schriftarten, die ich hinzugefügt habe, werden jedoch nicht in der Liste angezeigt. Mehr insbesondere habe ich Inconsolata und Source Code Pro hinzugefügt. Aber ich sehe sie nicht in die Liste der verfügbaren Schriftarten:

Konsole-Schriften

Was fehlt mir? Ich benutze Windows 10, version 1803, build 17134.165.

Author: Steven Penny, 2018-08-09

1 answers

Wie füge ich neue Schriftarten zu deinen Powershell (Oder CMD) Konsoleneinstellungen hinzu?

Das erste, was zu wissen ist, ist, dass leider (!):

Nur Schriftarten, die bestimmte Kriterien erfüllen, können in der Konsole installiert werden!

(Siehe: hier, hier und hier.)


Die Schriftkriterien + Erklärung
(Der aktuelle Status ist unbekannt.)

Für Schriftart, die in der Konsole unterstützt wird Sie müssen:

  1. Die Schriftart muss eine feste Tonhöhe sein.
  2. Die Schriftart darf keine kursive Schriftart sein.
  3. Wenn es sich um eine TrueType-Schriftart handelt, muss dies der Fall sein FF_MODERN.
  4. Wenn es sich nicht um eine TrueType-Schriftart handelt, muss sie die OEM_CHARSET.
  5. Die Schriftart darf kein Negativ von haben A oder C Leerzeichen.

Was bedeutet das alles? Die meisten dieser Metriken sind hier definiert , was die folgende Struktur, die eine Schriftart in C++beschreibt:

typedef struct tagLOGFONTA {
  LONG lfHeight;
  LONG lfWidth;
  LONG lfEscapement;
  LONG lfOrientation;
  LONG lfWeight;
  BYTE lfItalic;
  BYTE lfUnderline;
  BYTE lfStrikeOut;
  BYTE lfCharSet;
  BYTE lfOutPrecision;
  BYTE lfClipPrecision;
  BYTE lfQuality;
  BYTE lfPitchAndFamily;
  CHAR lfFaceName[LF_FACESIZE];
} LOGFONTA, *PLOGFONTA, *NPLOGFONTA, *LPLOGFONTA;
  1. Die Schriftart muss eine feste Tonhöhe haben. Tonhöhe und Schriftfamilie werden durch das Feld lfPitchAndFamily beschrieben. Die beiden Bits niedriger Ordnung geben die Tonhöhe der Schriftart an und können einer der folgenden Werte sein:

    • DEFAULT_PITCH
    • FIXED_PITCH
    • VARIABLE_PITCH
  2. Die Schriftart kann nicht kursiv sein. Mit anderen Worten, das Feld lfItalic muss auf falsch.

  3. Wenn es eine TrueType-Schriftart ist, die lfPitchAndFamily feld muss den Code für die FF_MODERN familie, in Bits 4 bis 7. FF_MODERN beschreibt Schriftarten mit konstanter Strichbreite (z. B. Monospace-Schriftarten) mit oder ohne Serifen. Monospace Schriftarten sind in der Regel modern. Pica, Elite und CourierNew{[68]) sind Beispiele.

  4. Wenn es sich nicht um eine TrueType-Schriftart handelt, muss der Zeichensatz Folgendes enthalten OEM_CHARSET, wie durch das Feld lfCharSet in der Struktur tagLOGFONTA definiert. Das heißt, die Schriftart muss mehr als nur Monospace sein. Es muss auch alle Zeichen auf der OEM-Codepage unterstützen, die 437 "OEM" - Zeichen des Zeichensatzes IBM437 (OEM United States) wie hier beschrieben .

  5. Die Schriftart darf kein negatives Leerzeichen A oder C haben. Die Breite eines Zeichens wird durch eine ABC-Struktur beschrieben. Der Abstand B ist die Breite des Zeichens. Der Abstand A ist wie viel Platz auf dem links des Zeichens zu lassen, und der Abstand C ist, wie viel Rand auf dem rechts zu verlassen.

    Jedes Zeichen mit einem negativen Rand links oder rechts ist oder das angegebene Raster / Raster. Zum Beispiel benötigt eine Schriftart mit einem überladenen W mehr Platz als die angegebene X-Pixel-Zeichenbreite, um das Zeichen richtig zu zeichnen. Offensichtlich sind Schriftarten mit übergroßen Zeichen nicht feste Breite.


Eine bekannte Schriftart, die funktioniert, und die vorgeschlagen wurde, weil sie viele nützliche Glyphen und Mathematik unterstützt, ist DejaVu. Leider ist es nicht Teil der Windows Standardschriftauswahl und müssen manuell installiert werden.

Wenn die gewünschte Schriftart noch nicht über eine TrueType - Schriftdatei verfügt(*.ttf) oder OpenType (*.otf), sie müssen die SFD-Dateien in konvertieren TTF (oder OTF). Dazu können Sie FontForge verwenden, um importieren Sie SFD und generieren Sie dann die TTF.


Schritte zum Installieren einer TTF-Datei mit FontForge

  1. Installation FontForge (nachfolgend "FF")
  2. Führen Sie FF als Administrator aus
  3. Laden Sie die SFD-Schriftdatei(en) herunter (Zum Beispiel: DejaVuSansMono.sfd.)
  4. Öffnen Sie die Datei mit: File > Open und drücken Sie OK.
  5. Erzeugen Sie eine TTF mit: File > Generate Fonts..., dann
  6. Wählen True Type in der Dropdown-Liste, dann
  7. Un-Wählen Sie das Validate Before Saving option, und drücken Generate.
  8. Ziehen Sie die resultierende *.ttf Datei in die Windows Systemsteuerung für Schriftarten gefunden unter:
    (Control Panel\Appearance and Personalisation\Fonts) oder durch: WIN+R und geben Sie ein: %windir%\fonts.
{[46],} Fertig. Die neue Schriftart ist jetzt sofort in Ihrer Registrierung verfügbar.

Laden Sie die neuen Schriftarten in die Konsolenregistrierung

Öffnen Sie eine Powershell-Konsole als Administrator dieser.

# 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'

Jedoch Sie werden die neuen Schriftelemente nicht sehen, bis:

  1. Die Registrierung wurde in den Speicher neu geladen, so dass der einzige Weg ist, entweder:
    • starten Sie den computer neu oder
    • starten Sie Windows Explorer neu.
  2. Starten Sie Ihre Powershell-Konsole neu
  3. Datei eines Fehlerberichts an Windows Powershell Repo Console repo und bitten Sie sie:
    unterstützt richtige Schriftarten mit korrektem Unicode Glyphenbedienfeld.

Genieße die vielen neuen und korrekten Glyphen!

Versuchen Sie zum Beispiel die 5/8th box:
[char]0x2585 # (U+2585)


Nachtrag:

Strichbreite

Der Dialog Strich erweitern gibt Ihnen die Kontrolle über verschiedene Aspekte des erweiterungsprozess. Zuerst können Sie drei Arten von Schreibfedern angeben:

  • Ein runder Stift, der standardmäßig kreisförmig ist, aber in eine Ellipse umgewandelt werden kann
  • Ein rechteckiger Stift, der standardmäßig quadratisch ist, aber in traditionellere caligraphische Nib-Formen umgewandelt werden kann
  • Ein polygonaler Stift-Sie können fast jeden zeichnen konvexes polygon.

Für kreisförmige und caligraphische Stifte können Sie eine Strichbreite wählen, wie die Enden eines offenen Pfades sollten gezeichnet werden und wie der Pfad aussehen soll wenn sich zwei Splines (oder Linien) verbinden, die nicht die gleiche Neigung haben (dh. an einem Eckpunkt).

 12
Author: not2qubit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-05-10 18:13:36