Commit Diff


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