TTF görüntülemeyi xterm'de nasıl ince ayar yaparsınız?


3

Son birkaç gündür xterm'i son birkaç yıldır konsole'de kullandığım yazı tipini göstermeye çalışıyorum - nispeten küçük yüz boyutunda bile benim için gayet iyi çalışıyor. xterm yazı tipini okumam için çok daha zor bir şekilde oluşturuyor gibi görünüyor.

Karşılaştırma için birkaç ekran görüntüsü.

xterm:
xterm rendering

konsole:
konsole rendering

Söz konusu font DejaVu Sans Mono 8'dir. Her ikisi de açıkçası antialiased. Renk şemasını konsole'den xterm'e bile uyguladım, aradaki farkın nedeni olabileceğini düşündüm, ama olmadı. Ayrıca, konsole'de "Kalın yazı tipinde yoğun renkler çiz" onay kutusunu etkinleştirdim, ancak hem kalın hem de normal yazı tipinde fark açık.

Aradaki fark, her uygulamanın yazı tipini ne kadar agresif bir biçimde antialiaselediği görünmektedir. Xterm'de metin çok daha bulanık ve en azından benim için okuması oldukça zor. Bu karakter ile muhtemelen en açıktır mKalın olmayan versiyonunda, ilk “bacağın” xterm'de iki piksele yayıldığı, konsole'de ise güzel ve keskin olduğu söylenebilir.

Hem Gentoo hem de Ubuntu için aynı sonuçları alıyorum. /etc/fonts/conf.d Gentoo dizüstü bilgisayarımda ve ayrıca Ubuntu'da bulunan all-in kurulumunda.

Bonus puanları, xterm'in neden Latin olmayan karakterlerden bazılarını gösteremediğini anlayabiliyorsanız, bu kadar sakıncası olmasa da. Bu bana bir şey ifade etmiyor. Yine de bir ipucu olabilir.

İşte benim ilgili bölüm .Xresources:

XTerm*faceName: DejaVu Sans Mono
XTerm*faceSize: 8
XTerm*background: #000000
XTerm*foreground: #B2B2B2
XTerm*color0:  #000000
XTerm*color1:  #B21818
XTerm*color2:  #18B218
XTerm*color3:  #B26818
XTerm*color4:  #1818B2
XTerm*color5:  #B218B2
XTerm*color6:  #18B2B2
XTerm*color7:  #B2B2B2
XTerm*color8:  #686868
XTerm*color9:  #FF5454
XTerm*color10: #54FF54
XTerm*color11: #FFFF54
XTerm*color12: #5454FF
XTerm*color13: #FF54FF
XTerm*color14: #54FFFF
XTerm*color15: #FFFFFF
XTerm*boldColors: true

Güncelleştirme: Netleştirmek için, TTF kullanacak xterm almak önemsizdir; aradığım şey, TTF'nin xterm'de nasıl oluşturulduğunu, konsole tarafından kullanılan ayarlarla (ve bunun için herhangi bir diğer X11 uygulamasıyla) eşleştirecek şekilde ince ayar yapmanın bir yolu. Bazı nedenlerden dolayı, xterm, ayarlamaya çalıştığım TTF fontunun yüz adı ve yüz boyutunun dışındaki her şeyi görmezden geliyor gibi gözüküyor, ya Xresources'ta veya fontconfig ayarlarımda (sistemin geri kalanı tarafından doğru bir şekilde toplanmış)

Yanıtlar:


1

Xterm (1) 'de, yazı tipini CTRL tuşunu basılı tutup pencereye sağ tıklayarak değiştirebilirsiniz. Bir çeşit diyorum çünkü çok fazla seçeneğin yok. "TrueType" seçeneğini tıkladığınızda, aradığınız şeye daha yakın sonuçlar elde edersiniz. Xresources dosyasını, bildiğinizden emin olduğum gibi düzenleyerek daha fazla kontrol sahibi olabilirsiniz - Bkz: https://wiki.archlinux.org/index.php/Xterm ihtiyaçlarınızı karşılamak için bunun nasıl değiştirileceğine dair örnekler için.

xterm (1), varsayılan olarak Latin olmayan karakterlerin çoğunu göstermez. -u8 seçeneğini kullanabilir veya alt (1) sargısını kullanabilirsiniz.

Bu komutu deneyin, ihtiyacınıza göre boyutu ayarlayabilir veya yazı tipinin boyutunu değiştirmek için CTRL-rightclick tuşunu basılı tutabilirsiniz.

xterm -u8 -fn 7x13 -fa "DejaVu Sans Mono: boyut = 8: antialias = doğru"


Ekran görüntüsünde görebileceğiniz gibi, xterm zaten TTF kullanıyor ve Unicode da etkin - ekran görüntüsü bildiğim kadarıyla 8 bitlik tek bir kodlamaya uymayan bir grup Unicode karakter gösteriyor , Yunanca, Orta Avrupa aksanları ve bir sürü senaryo ne oldukları hakkında hiçbir fikrim yok). Yalnızca birkaç özel komut dosyasını görüntülemek için başarısız olur. Ayrıca, ctrl + RMB menüsü sadece kaynaklar tarafından ayarlanabilen birkaç ek font konfigürasyonunu mümkün kılar. font1 vasitasiyla font6.
koniiiik

0

Bunun nedeni, fontları yapılandırmak için çılgınca farklı yollar kullanan GTK uygulamaları ve xterm'dir. GTK font-config, xterm / Xft ise X kaynaklarını kullanır.

X kaynaklarını kullanarak Xft fontlarını yapılandırmak için bunu ~/.Xresources:

  Xft.rgba: rgb

Bu ayar antialiasing türünü değiştirir. İşte alınan xterm ekran görüntüleri xmag, herhangi bir rgba ayarı olmadan ve rgb, grb, vrgb. Hepsinde farklı canlılık, renk kalitesi ve görünür parlaklık var.

enter image description here enter image description here enter image description here enter image description here

İçin topuzlar da vardır Xft.antialias, Xft.hinting, Xft.hintstyle, Xft.lcdfilter ve diğerleri. Ayrıntılar için bkz. fontconfig belgeleri .


Teşekkürler, ama ... Bir şey için, aslında xterm'nin fontconfig kullandığına inanıyorum, çünkü xterm'i başlatırken stderr'deki fontconfig'den bazı mesajlar alıyorum. Bunun yerine Xft kaynaklarını kullanmaya gelince, xterm inatla tüm Xft kaynaklarını ve içeriye aktarılan diğer seçenekleri göz ardı eder. faceName kaynak. (İçinde faceName sadece tanır size.)
koniiiik

@koniiiik Bu farklı olabilir ./configure seçenekler kullanılıyor. Xterm'i her zaman kaynaktan derliyorum (ekran görüntüleri xterm-314'ten). Birlikte oynayabileceğiniz birkaç freetype ile ilgili yapılandırma seçenekleri vardır. Bunun için varsayılanları kullandım (yani kullanmadım) --disable-freetype ). FreeBSD 10 ve 11'deyim.
Jens

0

Konsole ve xterm arasında gördüğünüz görüntü oluşturmadaki fark fontconfig ipucu ayarlarına iniyor. İki ekran görüntüsü arasındaki gliflerin şekillerini karşılaştırırsanız ipuçlarının dahil olduğunu görebilirsiniz; sıfır, Konsole'de biraz farklı şekilde biçimlendirilir, çünkü piksel ızgarasına tutturulmuştur (bu, yazı tipi ipuçlarının yaptığı şeyler arasındadır).

Konsole, bazı ek KDE konfigürasyon katmanlarından ayarları toplarken, xterm sadece düşük seviye fontconfig ayarlarını onurlandırıyor.

Bu konuda son zamanlarda Arch sistemim üzerinde çalışıyorum ve Konsole'de gördüklerinizi en yakından çoğaltan ayarların kombinasyonu: .Xresources ):

Xft.antialias: 1
Xft.autohint: 1
Xft.hintstyle: hintslight

Bazı fontlar fontun tasarımcılarından ipucu bilgileri içerir. Bazıları yapmaz. Freetype otomatik denetleyicisi ( Xft.autohint: 1 ) yazı tipi için ipucu oluşturur ve ipucu düzeyi hintslight eğer varsa dahil edilen ipuçlarına geri dönecektir. Muhtemelen denemeye değer hintfull; tercihinize, artı kullandığınız yazı tipinde mevcut olan ipuçlarının kalitesine iner.

(Bu ekran görüntülerinde alt piksel antialiasing kullanmıyorsunuz ve başka bir yorumcu zaten isterseniz onu kullanmaya nasıl başlayacağınızı açıkladı.)

Her ipucu seviyesindeki ekran öncesi ve sonrası ekranlarım. (Bir 192dpi ekranda 7pt Anonymous Pro.)

Varsayılan:

ASCII character set with default hinting

Yukarıdaki yapılandırma:

ASCII character set with slight hinting

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.