Perché xterm non supporta i caratteri di doppia dimensione quando si usano i caratteri Xft?


1

Ogni volta che configuro xtermper utilizzare i caratteri core X11 :

*.vt100.renderFont:             False
*.vt100.locale:                 False
*.vt100.font:                   -monotype-courier new-medium-r-normal--*-120-*-*-m-*-koi8-r

rende correttamente i caratteri di dimensioni doppie :

inserisci qui la descrizione dell'immagine

Ma quando lo configuro per utilizzare i caratteri sul lato client:

*.vt100.renderFont:             True
*.vt100.faceName:               Courier New:antialias=false
*.vt100.faceSize:               12
*.vt100.utf8:                   1
*.vt100.utf8Fonts:              True
*.vt100.utf8Title:              True

non riesce a visualizzare caratteri di dimensioni doppie, che possono essere confermati tramite l' vttestutilità:

inserisci qui la descrizione dell'immagine

Entrambi PuTTY (su di Windows ) e konsole fare uso dei font lato client e ancora rendere il testo di dimensioni doppie in modo corretto.

Ho configurato in modo errato il mio xtermo si tratta di un problema noto?

Risposte:


1

È una limitazione nota. La pagina del manuale dice (nota l'omissione dei caratteri TrueType dalla discussione):

           Although xterm attempts to derive a bold font for other
           font selections, the font server may not cooperate.  Since
           X11R6, bitmap fonts have been scaled.  The font server claims
           to provide the bold font that xterm requests, but the
           result is not always readable.  XFree86 introduced a feature
           which can be used to suppress the scaling.  In the X server's
           configuration file (e.g., “/etc/X11/XFree86” or
           “/etc/X11/xorg.conf”), you can add “:unscaled” to the end of
           the directory specification for the “misc” fonts, which
           comprise the fixed-pitch fonts that are used by xterm.  For
           example

               FontPath                 "/usr/lib/X11/fonts/misc/"

           would become

               FontPath                 "/usr/lib/X11/fonts/misc/:unscaled"

           Depending on your configuration, the font server may have its
           own configuration file.  The same “:unscaled” can be added to
           its configuration file at the end of the directory
           specification for “misc”.

           The bitmap scaling feature is also used by xterm to
           implement VT102 double-width and double-height characters.

La gestione dei caratteri a doppia larghezza / doppia altezza utilizzando i caratteri TrueType potrebbe essere implementata in modo diverso, disegnando / ritagliando un carattere alla volta con un carattere a doppia dimensione. Ovviamente, con le metriche di fontconfig (che spesso ignorano il riquadro di delimitazione nominale), non ci sarebbe alcuna garanzia che il risultato sarebbe bello.

Per quello che vale, PuTTY e konsole hanno i loro problemi con questo test:

PuTTY, stesso test ma pagina successiva ...

Konsole, allo stesso modo

XTerm, stesso test

PuTTY non gestisce la parte del test del disegno a tratteggio e Konsole in genere presenta alcune dimensioni di finestre dispari. Inoltre, se osservi attentamente, ci sono piccole discrepanze nell'allineamento del testo a larghezza singola e doppia ( ymmv ).


Grazie Thomas per una risposta così dettagliata. Devo notare che i problemi del disegno al tratto PuTTY possono essere mitigati esportando NCURSES_NO_UTF8_ACS=1(per applicazioni basate su ncurses in locale UTF-8).
Bass

1
... ma questo non vale per vttest -hth
Thomas Dickey il

No, non lo è. Presumo perché vttest non usa ncurses =)
Bass

1
certo - ncurses è generale (adattandosi a diversi tipi di terminali), ma vttest è specifico: i vt100 non hanno mai usato UTF-8, poiché sono arrivati ​​~ 15 anni prima che UTF-8 fosse pensato.
Thomas Dickey,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.