commit b3a110affa33f0a3c96e06438047913f2db90c91 from: Russ Cox date: Tue Feb 17 20:53:15 2015 UTC man: document font syntaxes Change-Id: Id441d4df192c47388af6b5da306f14d90f066d18 Reviewed-on: https://plan9port-review.googlesource.com/1173 Reviewed-by: Russ Cox commit - 4eac378eba7b7376621bfb57bb282957ef714628 commit + b3a110affa33f0a3c96e06438047913f2db90c91 blob - 33a5b05bb56791fb0063ec29f25ce685a4d664ed blob + acff6fe94e4ebbec7852c11b99d8a8c2fee0b3f6 --- man/man1/9term.1 +++ man/man1/9term.1 @@ -57,6 +57,9 @@ is not given, uses the imported value of .B $font if set; otherwise it uses the graphics system default. +(See +.IR font (7) +for a full discussion of font syntaxes.) .PP .I 9term runs the given command in the window, or blob - 5d3d2939b9392dbbb0bdac422244a24c8718ffe6 blob + e914cbabf283b8037b5c064f535758be57dbee78 --- man/man1/mc.1 +++ man/man1/mc.1 @@ -44,3 +44,14 @@ is printed separately. .I lc in .IR ls (1) +.SH BUGS +On systems with high-DPI screens, +.I 9term +and +.I acme +do not have one current font. +They have a pair of current fonts, one font used when the window +on a low-DPI screen and one used when the window is on a +high-DPI screen. +.I Mc +always uses the low-DPI font for columnation decisions. blob - 43214f1f46fbf9bf2780fa27ca553f4e4ff6cd70 blob + a2b2d8480a51d5c7824259fedc0c5e27304dbe56 --- man/man3/graphics.3 +++ man/man3/graphics.3 @@ -228,30 +228,14 @@ pointer that can be used by to draw characters from the font. .I Openfont does the same, but reads the description -from the named file. +from the named font. .I Freefont frees a font. -The convention for naming font files is: -.IP -.B /lib/font/bit/\fIname\fP/\fIrange\fP.\fIsize\fP.font -.PD -.PP -where -.I size -is approximately the height in pixels of the lower case letters -(without ascenders or descenders). -.I Range -gives some indication of which characters will be available: for example -.BR ascii , -.BR latin1 , -.BR euro , -or -.BR unicode . -.B Euro -includes most European languages, punctuation marks, the International Phonetic -Alphabet, etc., but no Oriental languages. -.B Unicode -includes every character for which appropriate-sized images exist on the system. +In contrast to Plan 9, font names in Plan 9 from User Space are +a small language describing the desired font. +See +.IR font (7) +for details. .PP A .I Cursor @@ -319,6 +303,9 @@ if .B $font is not set, it imports the default (usually minimal) font from the operating system. +(See +.IR font (7) +for a full discussion of font syntaxes.) The global .I font will be set to point to the resulting blob - 1aa6bcb6222b1d286b4bc54e7cf356a98ebea139 blob + 7344cde9628b70e10e1109ce055d8869e252c80c --- man/man4/fontsrv.4 +++ man/man4/fontsrv.4 @@ -78,6 +78,9 @@ recognizes font paths beginning with and implements them by invoking .IR fontsrv ; it need not be running already. +See +.IR font (7) +for a full discussion of font name syntaxes. .SH EXAMPLES List the fonts on the system: .IP blob - 4767ea163f1e2e11204c68d45736dee77d570e77 blob + 45331d4d260eb5bc9bf4a6a37742c2202c4ba88d --- man/man7/font.7 +++ man/man7/font.7 @@ -7,7 +7,7 @@ font, subfont \- external format for fonts and subfont Fonts and subfonts are described in .IR cachechars (3). .PP -External fonts are described by a plain text file that can be read using +External bitmap fonts are described by a plain text file that can be read using .IR openfont . The format of the file is a header followed by any number of subfont range specifications. @@ -75,6 +75,109 @@ characters of zero width (see .IR draw (3)) means that fonts should have, as their zeroth character, one with non-zero width. +.SS "Font Names +.PP +Font names in Plan 9 from User Space are +a small language describing a font. +The most basic form is the name of an existing bitmap font file, +following the convention: +.IP +.B /lib/font/bit/\fIname\fP/\fIrange\fP.\fIsize\fP.font +.PD +.PP +where +.I size +is approximately the height in pixels of the lower case letters +(without ascenders or descenders). +.I Range +gives some indication of which characters will be available: for example +.BR ascii , +.BR latin1 , +.BR euro , +or +.BR unicode . +.B Euro +includes most European languages, punctuation marks, the International Phonetic +Alphabet, etc., but no Oriental languages. +.B Unicode +includes every character for which appropriate-sized images exist on the system. +.PP +In Plan 9 from User Space, the font files are rooted in +.B $PLAN9/font +instead of +.BR /lib/font/bit , +but to keep old references working, paths beginning with +.B /lib/font/bit +are interpreted as references to the actual font directory. +.PP +Fonts need not be stored on disk in the Plan 9 format. +If the font name has the form +.BR /mnt/font/\fIname\fP/\fIsize\fP/font , +.I fontsrv +is invoked to synthesize a bitmap font from the operating system's installed vector fonts. +The command +.B fontsrv +.B -p +.B . +lists the available fonts. +See +.IR fontsrv (4) +for more. +.PP +If the font name has the form +.BR \fIscale\fP*\fIfontname\fP , +where +.I scale +is a small decimal integer, the +.I fontname +is loaded and then scaled by pixel repetition. +.PP +The Plan 9 bitmap fonts were designed for screens with pixel density around 100 DPI. +When used on screens with pixel density above 200 DPI, +the bitmap fonts are automatically pixel doubled. +Similarly, fonts loaded from +.IR fontsrv (4) +are automatically doubled in size by varying the effective +.I size +path element. +In both cases, the effect is that a single font name +can be used on both low- and high-density displays (or even in a window moved between differing displays) +while keeping roughly the same effective size. +.PP +For more control over the fonts used on low- and high-density displays, +if the font name has the form +.BR \fIlowfont\fP,\fIhighfont\fP , +.I lowfont +is used on low-density displays and +.I highfont +on high-density displays. +In effect, the behavior described above is that the font name +.IP +.B /lib/font/bit/lucsans/euro.8.font +.PD +.PP +really means +.IP +.B /lib/font/bit/lucsans/euro.8.font,2*/lib/font/bit/lucsans/euro.8.font +.PD +.PP +and similarly +.IP +.B /mnt/font/LucidaGrande/15a/font +.PD +.PP +really means +.IP +.B /mnt/font/LucidaGrande/15a/font,/mnt/font/LucidaGrande/30a/font +.PD +.PP +Using an explicit comma-separated font pair allows finer control, such as +using a Plan 9 bitmap font on low-density displays but switching to +a system-installed vector font on high-density displays: +.IP +.B /lib/font/bit/lucsans/euro.8.font,/mnt/font/LucidaGrande/30a/font +.PD +.PP .SH FILES .TF \*9/font/* .TP