Schriftdimensionen falsch

02/03/2011 - 16:34 von Thomas PointedEars Lahn | Report spam
Hallo,

ich habe spàtestens seit dem letzten X.org- oder KDE-Upgrade (auf KDE 4.4.5)
ein làstiges Problem, für das ich bisher weder durch Ausprobieren noch
insgesamt sicher tagelanger Google-Suche mit Suchbegriffen wie z.B. "kde
font resolution OR dpi" eine befriedigende Lösung finden konnte. Ich bin
dankbar für alle weiterführenden Hinweise:

Obwohl die Grafikauflösung der nativen Auflösung meines Monitors entspricht,
passen die Schriftdimensionen nicht richtig. Dieses Problem betrifft
anscheinend nur KDE-Anwendungen (insbesondere konsole) und nicht z.B. GNOME-
Programme wie Iceweasel. Deswegen vermute ich ein KDE/Qt-Problem und poste
hier.

Die Schrift in KDE-Anwendungen ist entweder (im Vergleich zu vorher) zu
klein oder zu gross. Ist sie zu klein, dann werden in konsole die Zeichen
gewissermassen zusammengestaucht. Das sieht etwa so aus:

$ foob[r]

("[r]" soll der Textcursor auf dem Zeichen "r" von "foobar" sein.)

Sind die Schriftdimensionen zu gross, rutscht der Textcursor mit zunehmender
Zeichenanzahl und insbesondere wenn Leerzeichen im Text sind, zu weit nach
rechts; das entsprechende Zeichen wird zwar mitgeführt (d.h. erscheint unter
dem Cursor), aber es gibt links vom Cursor eine unschöne Lücke:

$ fooba [r]

Ich kann nur vermuten, dass das etwas mit der Berechnung der
Schriftauflösung bei Qt zu tun hat. Nach o.g. Update war die Schrift nur in
KDE-Anwendungen plötzlich zu klein, ohne dass ich die Schriftgrösse über die
KDE-Systemeinstellungen geàndert hàtte.

Mein Computer ist ein Acer TravelMate 8571G-Notebook mit einem 15.6"-Display
("16:9 HD LED LCD"). Seine native Auflösung ist 1366x768 Pixel, und ich
verwende für die eingebaute ATI Mobility Radeon HD4330-Grafikkarte den
proprietàren fglrx-Treiber von ATI/AMD in der Version 10.12 (Downgrade auf
10.11 half nicht, 11.1 stürzt ab). Wahrscheinlich da ich Debian GNU/Linux
mit einem selbst konfigurierten Kernel (Linux 2.6.35.5) verwende, kann ich
den Treiber nicht als distributionsspezifisches Paket bauen (Option `-
buildpkg Debian/unstable'); Compilieren für meine X.org-Version (1:7.6+4)
funktioniert aber. (Bisher hatte ich mit diesem Treiber, jedenfalls was die
Schriftdarstellung betrifft, keine Probleme.)

Entsprechend sind in der /etc/X11/xorg.conf u.a. folgende Abschnitte
enthalten:


Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "aticonfig-Screen[0]-0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Synaptics Touchpad" "AlwaysCore"
InputDevice "USB Mouse" "SendCoreEvents"
Option "AIGLX" "true"
EndSection

Section "Screen"
Identifier "aticonfig-Screen[0]-0"
Device "aticonfig-Device[0]-0"
Monitor "aticonfig-Monitor[0]-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1366x768" "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "Device"
Identifier "aticonfig-Device[0]-0"
Driver "fglrx"
BusID "PCI:1:0:0"
EndSection

Section "Monitor"
Identifier "aticonfig-Monitor[0]-0"
DisplaySize 345.39359940122804648347 194.18908077609307445107
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection


Fehlt nun die Angabe für `DisplaySize', sind die Schriften in KDE-
Anwendungen zu klein und die Schrift in konsole wird wie oben beschrieben
abgeschnitten. xpdyinfo liefert mir dann:

$ xdpyinfo | grep -e resolution -e dimension
dimensions: 1366x768 pixels (361x203 millimeters)
resolution: 96x96 dots per inch

`DisplaySize w h' soll die Höhe und Breite des Displays in mm angeben, was
ich basierend auf der Bildschirmdiagonale nach dem Satz des Pythagoras
berechnet habe, wie ich es in diversen Webforen empfohlen und in der
Wikipedia beschrieben fand [1]:

w = (a² / sqrt(a² + b²)) × d × 25.4
h = (b² / sqrt(a² + b²)) × d × 25.4

wobei hier a66 und bv8 (1 in = 25.4 mm).
[1] http://de.wikipedia.org/wiki/Bildsc...gonale>

Wenn ich die obige DiplaySize-Angabe ergànze, erhalte ich (nach X.org-
Neustart):

$ xdpyinfo | grep -e resolution -e dimension
dimensions: 1366x768 pixels (345x194 millimeters)
resolution: 101x101 dots per inch

Dann aber ist die Schrift wieder zu gross, und es ergibt sich in konsole der
oben beschriebenen Lücken-Effekt.

Ich verwende als Login-Manager kdm (4:4.4.5-8). Deshalb hatte ich vor der
"Lösung" mit DisplaySize einen dpi-Wert in der /etc/kde4/kdm/kdmrc
angegeben (ebenfalls ein Tipp aus dem Web):

-
[X-:*-Core]
AllowNullPasswd=true
AllowShutdown=All
NoPassEnable=false
NoPassUsersServerArgsLocal=-br -nolisten tcp -dpi 100
ServerCmd=/usr/bin/X
-

Dann erhalte ich wie erwartet:

$ xdpyinfo | grep -e resolution -e dimension
dimensions: 1366x768 pixels (346x195 millimeters)
resolution: 100x100 dots per inch

Der Lücken-Effekt in konsole ist dann weniger stark ausgepràgt, aber es gibt
ihn leider immer noch.

In den KDE-"Systemeinstellungen" ist unter Erscheinungsbild/Schriftarten die
Option "DPI für Schriftarten erzwingen" auf "Deaktiviert" gesetzt (mit dem
Wert "96 DPI" sind die Schriften viel zu klein, mit "120 DPI" viel zu
gross).

Was ist der Grund für die beobachteten Effekte? Was habe ich übersehen?
Weitere Angaben zu meinem System kann ich gern nachliefern.

Vielen Dank im Voraus.

PointedEars
 

Lesen sie die antworten

#1 Reinhard Tchorz
02/03/2011 - 17:56 | Warnen spam
Hi,


Entsprechend sind in der /etc/X11/xorg.conf u.a. folgende Abschnitte
enthalten:


Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "aticonfig-Screen[0]-0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Synaptics Touchpad" "AlwaysCore"
InputDevice "USB Mouse" "SendCoreEvents"
Option "AIGLX" "true"
EndSection

Section "Screen"
Identifier "aticonfig-Screen[0]-0"
Device "aticonfig-Device[0]-0"
Monitor "aticonfig-Monitor[0]-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1366x768" "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "Device"
Identifier "aticonfig-Device[0]-0"
Driver "fglrx"
BusID "PCI:1:0:0"
EndSection

Section "Monitor"
Identifier "aticonfig-Monitor[0]-0"
DisplaySize 345.39359940122804648347 194.18908077609307445107
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection


Fehlt nun die Angabe für `DisplaySize', sind die Schriften in KDE-
Anwendungen zu klein und die Schrift in konsole wird wie oben beschrieben
abgeschnitten. xpdyinfo liefert mir dann:

$ xdpyinfo | grep -e resolution -e dimension
dimensions: 1366x768 pixels (361x203 millimeters)
resolution: 96x96 dots per inch

`DisplaySize w h' soll die Höhe und Breite des Displays in mm angeben, was
ich basierend auf der Bildschirmdiagonale nach dem Satz des Pythagoras
berechnet habe, wie ich es in diversen Webforen empfohlen und in der
Wikipedia beschrieben fand [1]:

w = (a² / sqrt(a² + b²)) × d × 25.4
h = (b² / sqrt(a² + b²)) × d × 25.4

wobei hier a66 und bv8 (1 in = 25.4 mm).
[1] http://de.wikipedia.org/wiki/Bildsc...gonale>

Wenn ich die obige DiplaySize-Angabe ergànze, erhalte ich (nach X.org-
Neustart):



Die DisplaySize ist korrekt berechnet.


$ xdpyinfo | grep -e resolution -e dimension
dimensions: 1366x768 pixels (345x194 millimeters)
resolution: 101x101 dots per inch

Dann aber ist die Schrift wieder zu gross, und es ergibt sich in konsole der
oben beschriebenen Lücken-Effekt.

Ich verwende als Login-Manager kdm (4:4.4.5-8). Deshalb hatte ich vor der
"Lösung" mit DisplaySize einen dpi-Wert in der /etc/kde4/kdm/kdmrc
angegeben (ebenfalls ein Tipp aus dem Web):

-
[X-:*-Core]
AllowNullPasswd=true
AllowShutdown=All
NoPassEnable=false
NoPassUsers> ServerArgsLocal=-br -nolisten tcp -dpi 100
ServerCmd=/usr/bin/X
-



Diese Werte als Optionen an den X-Server übergeben und überschreiben in diesem Fall
die Einstellungen in der xorg.conf.


Dann erhalte ich wie erwartet:

$ xdpyinfo | grep -e resolution -e dimension
dimensions: 1366x768 pixels (346x195 millimeters)
resolution: 100x100 dots per inch

Der Lücken-Effekt in konsole ist dann weniger stark ausgepràgt, aber es gibt
ihn leider immer noch.

In den KDE-"Systemeinstellungen" ist unter Erscheinungsbild/Schriftarten die
Option "DPI für Schriftarten erzwingen" auf "Deaktiviert" gesetzt (mit dem
Wert "96 DPI" sind die Schriften viel zu klein, mit "120 DPI" viel zu
gross).

Was ist der Grund für die beobachteten Effekte? Was habe ich übersehen?
Weitere Angaben zu meinem System kann ich gern nachliefern.



Kopiere doch mal den unterstehenden Text in Kwrite und speichere ihn unter xxx.html.

Schnipp

<html><head>
<style type="text/css">
body {background: #efefef;}
#one { position: relative;
width: 10cm; height: 10cm;
background: #ff6;
margin-left: 40px; margin-top: 40px;
font-size: 40px;
}
</style>
</head><body>
<div id="one">100x100 mm</div>
</body></html>

Schnapp

Wenn Du diese Datei dann mit Konqueror oder mit Firefox öffnest, muss einjeweils
Quadrat mit einer Kantenlànge von genai 100mm erscheinen. Ist das der Fall, dann stimmt
schon einmal die DPI-Auflösung.

Ferner ist auch zu beachten, dass in der Konsole eine Monospace-Schriftart wie z.B.
Monospace, Andale Mono oder Bitstrem Vera Sans Mono eingestellt ist.
Vielleicht fehlen ja nur einige Schriftarten?

MfG Reinhard


Gentoo Kernel 2.6.36 X-Server 1.9.4 KDE 4.6.0
Asus M2A-VM AMD Athlon X2 4450e Nvidia 7300LE

Ähnliche fragen