Hallo Michael und der ganze Rest!

Michael Höhne schrieb:
> Hallo Nicolas,
> 
>> Michael Höhne schrieb:
>> [...]
>>
>>> @Nicolas: Wie schaut es denn mit der Geometrie aus? Wenn du mit den
>>> Zeichenfunktionen ein Quadrat zeichnest (Breite und Höhe laut
>>> Objektangaben gleich) ist das Bild dann bei dir quadratisch oder
>>> sieht es rechteckig aus?
>> Ich habe in OpenOffice.org Draw ein Quadrat von 15 cm x 15 cm
>> gezeichnet und den Zoomfaktor der Anzeige auf 100 % eingestellt. Für
>> dieses Quadrat messe ich etwa 13,45 cm x 11,25 cm am Bildschirm.
> 
> Dann stimmt offenbar auch schon die Geometrie nicht... 

Ich verstehe nicht genau, was du meinst. Die Geometrie von was?


> Da einige Mails sehr spät eintrudeln: Hast du schon mal geschrieben, 
> welche Distri du nutzt? Ggf. könntest du mir per PM deine Xorg-Config 
> zukommen lassen. Ich bin zwar auch nicht der Mega-Experte, aber 
> vielleicht fällt mir was auf...

Ist nicht relevant, da die Werte automatisch erkannt werden. Hier ein
Auszug aus der Log-Datei von Xorg:
> Virtual size is 1400x1050
> *Built-in mode "1400x1050"
> *Built-in mode "1280x1024"
> Display dimensions: (330, 210) mm
> DPI set to (107, 127)

Die Angaben sind ja soweit korrekt; ich hatte ja in der ersten Nachricht
dieses Threads schon geschrieben, dass Xorg die Werte automatisch
erkennt und später hatte ich noch die Rechnungen dazu nachgeliefert.


Aber falls es dennoch jemanden interessiert ;-) , ich arbeite hier unter
einem Gentoo.


> Ich habe eine parallel installierte SUSE 10.1, die ich beliebig 
> verunstalten kann, um einiges zu testen.

Oho, dankeschön! :-)


> p.s. Nichtsdestotrotz hat Jörg recht: Openoffice richtet sich 
> "normalerweise nach den Vorgaben des Systems (bei mir sowohl unter SUSE 
> 9.3 und 10.1 auch mit x-dpi<>y-dpi). Nutzt du KDE, Gnome, XFace...? 
> Vielleicht liegt dort das Problem...

Ich nutze OpenOffice.org unter GNOME. Und ich glaube, ich bin des
Rätsels Lösung schon ein Stückchen näher gekommen. Habe nämlich nach
einigem Suchen die Seiten <URL:http://www.mozilla.org/unix/dpi.html> und
<URL:http://scanline.ca/dpi/> gefunden. Die zweite habe ich nicht so
recht verstanden, aber ich habe mal die Einstellung aus der ersten Seite
versucht, das mit den GNOME-Font-Einstellungen. Hat einigermaßen geklappt:

Nach einer Einstellung von 107 dpi in diesem
GNOME-Font-Einstellungs-Dialog da liefert 'xrdb -query grep dpi':
Xft.dpi:        107.000000

Kam mir schon ein bisschen verdächtig vor, dass es da nur /eine/
Einstellung gibt (für horizontal und vertikal, oder wie auch immer das
zu interpretieren ist).

Außerdem habe ich horizontal die korrekte Seitengröße bei einem
Zoomfaktor von 100 % in OpenOffice.org Writer. Vertikal allerdings nicht
(da muss ich auf 120 % zoomen). Na super ...


Um das Problem weiter einzukreisen, habe ich mir nochmal GIMP
angeschaut. Ich weiß, das hier ist nicht die GIMP-Liste, aber als
funktionierende Referenz nahm ich eben GIMP. Und da ja ein normaler
Verbraucher am Samstag Nachmittag nichts besseres zu tun hat, habe ich
begonnen, im Quellcode nachzulesen. (Hier wüste Verwünschungen und
Flüche einfügen. ;-) )

Ergebnisse:

GIMP verwendet GTK+ als Toolkit und zwar die GDK-Funktionen
gdk_screen_get_width, gdk_screen_get_width_mm, gdk_screen_get_height und
gdk_screen_get_height_mm (siehe
gimp-2.2.12/app/widgets/gimpwidgets-utils.c, Funktion
gimp_get_screen_resolution, ab Zeile 585).

Online-Referenz zu den Funktionen:
<URL:http://developer.gnome.org/doc/API/2.0/gdk/GdkScreen.html>.

Soweit, so gut. Nur wissen wir ja immer noch nicht, woher GTK+ die Werte
bekommt. Ich habe mir auch den Code mal angesehen:

Die Funktionen stehen in gtk+-2.8.19/gdk/x11/gdkscreen-x11.c ab Zeile
127. Sie rufen die Funktionen WidthOfScreen, HeightOfScreen,
WidthMMOfScreen bzw. HeightMMOfScreen aus der X-Bibliothek auf. Die wird
wohl den X-Server abfragen, aber das habe ich mir nicht im Detail
angeschaut.


Jedenfalls erklärt das ja, warum bei mir die Seiten und Quadrate in GIMP
in der "echten" Größe angezeigt werden.


Ab hier folgt einiges an Spekulation und Stochern im Heuhaufen ...


Auf der Webseite unter mozilla.org, die ich oben genannt habe, stand ja
was von fontconfig, xfs und Xft. Bei mir läuft kein xfs (ist das
vielleicht ein Fehler?), bei fontconfig verstehe ich quasi nichts. Aber
in den Quellcode von libXft-2.1.10 habe ich mal reingesehen. Hängt
anscheinend auch irgendwie mit fontconfig zusammen. In der Datei
libXft-2.1.10/src/xftdpy.c, Funktion XftDefaultSubstitute, wird ab Zeile
 532 irgendwas mit DPI berechnet, und zwar mit den Funktionen
DisplayHeight und DisplayHeightMM aus der X-Bibliothek. Allerdings
taucht DisplayWidth gar nicht auf!


Ich /vermute/ also, dass OpenOffice.org auf die DPI-Zahl, die von libXft
(oder fontconfig oder sowas) gemeldet wird, zugreift, und die ist
vielleicht auch nur für eine Richtung berechnet. Könnte das vielleicht sein?

Jedenfalls bin ich mit meinem Latein relativ am Ende; ich habe gerade
den OpenOffice.org-Quelltext entpackt und beginne da mal mit der Suche
(ja, so verzweifelt kann man sein ;-) ); vielleicht kann ja jemand einen
heißen Tipp beisteuern ... das Paket ist nämlich irgendwie so *groß*! ;-)


Danke und viele Grüße!
-- 
Nicolas

Attachment: signature.asc
Description: OpenPGP digital signature

Antwort per Email an