From: Michael Lampe <[EMAIL PROTECTED]> Subject: [Fonts] freetype module sometimes gets font height (descent?) wrong Date: Fri, 20 Feb 2004 17:39:58 +0100
> xlsfonts lists the font in question. > > Emacs bluntly says "No fonts match ..." and aborts. > > xfd seems to use it, but displays "unknown font" in the first line. And > contrary to what I said before you can see the overall problem with xfd > too if you increase the font size. OK. That patch was broken. I somewhat misunderstood... > I'm still wondering if you are able to reproduce what I'm talking about. > Please try > > xedit > -fn "-monotype-courier new-medium-r-normal--12-0-100-100-m-0-iso8859-1" > > Two small images of what it looks like for me are here: > > http://cox.iwr.uni-heidelberg.de/~lampe/xedit-xtt.png > http://cox.iwr.uni-heidelberg.de/~lampe/xedit-freetype.png I cannot reprodeuce them using xedit... Why? How is your "resolution" of xdpyinfo. 100x100 dots per inch? I attach "fontpropdump.c". Would you tell me the results of "freetype" and "xtt"? usage: ./fontpropdump "-monotype-courier new-medium-r-normal--12-0-100-100-m-0-iso8859-1" Here are my results: [X-TT] PIXEL_SIZE : 12 POINT_SIZE : 87 RESOLUTION_X : 100 RESOLUTION_Y : 100 AVERAGE_WIDTH : 70 RAW_AVERAGE_WIDTH : 6001 FONT_ASCENT : 11 RAW_ASCENT : (none) FONT_DESCENT : 4 RAW_DESCENT : (none) SUBSCRIPT_SIZE : 8 SUBSCRIPT_X : 0 SUBSCRIPT_Y : 2 SUPERSCRIPT_SIZE : 8 SUPERSCRIPT_X : 0 SUPERSCRIPT_Y : 5 UNDERLINE_THICKNESS : 1 UNDERLINE_POSITION : 3 RAW_PIXEL_SIZE : (none) RAW_POINT_SIZE : (none) [FreeType] PIXEL_SIZE : 12 POINT_SIZE : 87 RESOLUTION_X : 100 RESOLUTION_Y : 100 AVERAGE_WIDTH : 70 RAW_AVERAGE_WIDTH : 600 FONT_ASCENT : (none) RAW_ASCENT : 832 FONT_DESCENT : (none) RAW_DESCENT : 300 SUBSCRIPT_SIZE : (none) SUBSCRIPT_X : (none) SUBSCRIPT_Y : (none) SUPERSCRIPT_SIZE : (none) SUPERSCRIPT_X : (none) SUPERSCRIPT_Y : (none) UNDERLINE_THICKNESS : (none) UNDERLINE_POSITION : (none) RAW_PIXEL_SIZE : 1000 RAW_POINT_SIZE : 723 The resolution of Xserver is 100x100 dots per inch. ------------------------------------------------------------ Chisato Yamauchi
#include <stdio.h> #include <X11/Xlib.h> int main( int argc, char *argv[] ) { Display *dis; XFontStruct *fs; Atom atom; unsigned long val; char *name; Bool result; char *props[] = { "PIXEL_SIZE", "POINT_SIZE", "RESOLUTION_X", "RESOLUTION_Y", "AVERAGE_WIDTH", "RAW_AVERAGE_WIDTH", "FONT_ASCENT", "RAW_ASCENT", "FONT_DESCENT", "RAW_DESCENT", "SUBSCRIPT_SIZE", "SUBSCRIPT_X", "SUBSCRIPT_Y", "SUPERSCRIPT_SIZE", "SUPERSCRIPT_X", "SUPERSCRIPT_Y", "UNDERLINE_THICKNESS", "UNDERLINE_POSITION", "RAW_PIXEL_SIZE", "RAW_POINT_SIZE", NULL, }; int i; if( argc < 2 ) return -1; dis=XOpenDisplay(NULL); fs = XLoadQueryFont(dis,argv[1]); if( fs==NULL ) return -1; i=0; while ( props[i] != NULL ) { atom = XInternAtom(dis, props[i], True); result = XGetFontProperty(fs,atom,&val); if ( result ) printf("%s : %d\n",props[i],val); else printf("%s : (none)\n",props[i]); i++; } return 0; }