Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Computer font
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Digital description of a typographical font}} {{More footnotes needed|date=January 2014}} [[File:Comparison of printed and digital versions of Perpetua.png|thumb|Comparison between printed (top) and digital (bottom) versions of [[Perpetua (typeface)|Perpetua]]]] A '''computer font''' is implemented as a digital [[data file]] containing a set of graphically related [[glyph]]s. A computer font is designed and created using a [[font editor]]. A computer font specifically designed for the computer screen, and not for printing, is a '''screen font'''. In the terminology of [[movable type|movable metal type]], a ''[[typeface]]'' is a set of characters that share common design features across styles and sizes (for example, all the varieties of [[Gill Sans]]), while a ''[[font]]'' is a set of pieces of movable type in a specific typeface, size, width, weight, slope, etc. (for example, Gill Sans bold 12 point). In [[HTML]], [[CSS]], and related technologies, the [[Font family (HTML)|font family attribute]] refers to the digital equivalent of a typeface. Since the 1990s, many people outside the printing industry have used the word ''font'' as a [[synonym]] for ''typeface''. There are three basic kinds of computer font file data formats: * '''Bitmap''' fonts consist of a matrix of dots or [[pixel]]s representing the image of each glyph in each face and size. This technology is largely obsolete. * '''Vector''' fonts (including, and sometimes used as a synonym for, '''outline''' fonts) use [[Bézier curve]]s, drawing instructions and mathematical formulae to describe each glyph, which make the character outlines scalable to any size. * '''Stroke''' fonts use a series of specified lines and additional information to define the size and shape of the line in a specific typeface, which together determines the appearance of the glyph. Bitmap fonts are faster and easier to create in computer code than other font types, but they are not scalable: a bitmap font requires a separate font for each size.<ref name=Anti-Anti-Aliasing>{{cite web|last1=Gruber|first1=John|title=Anti-Anti-Aliasing|url=http://daringfireball.net/2003/03/anti-anti-aliasing|website=Daring Fireball|access-date=5 September 2015|archive-url=https://web.archive.org/web/20150901034604/https://daringfireball.net/2003/03/anti-anti-aliasing|archive-date=2015-09-01|url-status=live}}</ref> Outline and stroke fonts can be resized in a single font by substituting different measurements for components of each glyph, but they are more complicated to render on screen or in print than bitmap fonts because they require additional computer code to render the bitmaps to display on screen and in print. Although all font types are still in use, most fonts used on computers today are outline fonts. Fonts can be [[monospaced font|monospaced]] (i.e. every character is plotted a constant distance from the previous character that it is next to while drawing) or [[proportional font|proportional]] (each character has its own width). However, the particular font-handling application can affect the spacing, particularly when [[justification (typesetting)|justifying text]]. == Font types == === <span class="anchor" id="BITMAP"></span>Bitmap fonts === [[File:Original Mac fonts.png|thumb|An assortment of bitmap fonts from the first version of the [[classic Mac OS|Macintosh operating system]]]] [[File:AmigaOS 3.1 bitmap fonts.png|thumb|Some bitmap fonts included with [[AmigaOS]] 3]] A bitmap font is one that stores each [[glyph]] as an array of [[pixels]] (that is, a [[bitmap]]). It is less commonly known as a '''{{visible anchor|raster font}}''' or a pixel font. Bitmap fonts are simply collections of [[raster graphics|raster images]] of glyphs. For each variant of the font, there is a complete set of glyph images, with each set containing an image for each character. For example, if a font has three sizes, and any combination of bold and italic, then there must be 12 complete sets of images. Advantages of bitmap fonts include: * Extremely fast and simple to render * Easier to create than other kinds. * Unscaled bitmap fonts always give exactly the same output when displayed on the same specification display * Best for very low-quality or small-size displays where the font needs to be fine-tuned to display clearly The primary disadvantage of bitmap fonts is that the visual quality tends to be poor when scaled or otherwise transformed, compared to outline and stroke fonts, and providing many optimized and purpose-made sizes of the same font dramatically increases memory usage. The earliest bitmap fonts were only available in certain optimized sizes such as 8, 9, 10, 12, 14, 18, 24, 36, 48, 72, and 96 points (assuming a resolution of 96 [[Dots per inch|DPI]]), with custom fonts often available in only one specific size, such as a headline font at only 72 points. The limited processing power and memory of early computer systems forced the exclusive use of bitmap fonts. Improvements in hardware have allowed them to be replaced with outline or stroke fonts in cases where arbitrary scaling is desirable, but bitmap fonts are still in common use in embedded systems and other places where speed and simplicity are considered important. Bitmap fonts are used in the [[Linux]] console, the [[Microsoft Windows|Windows]] [[Recovery Console|recovery console]], and [[embedded systems]]. Older [[dot matrix printer]]s used bitmap fonts; often stored in the memory of the printer and addressed by the computer's [[print driver]]. Bitmap fonts may be used in [[cross-stitch]]. To draw a string using a bitmap font means to successively output bitmaps of each character that the string comprises, performing per-character indentation. ==== Monochrome fonts vis-à-vis fonts with shades of gray ==== [[File:AmigaColorFont.png|frame|A bitmap color font for the [[Amiga OS]]]] Digital bitmap fonts (and the [[Font rasterization|final rendering of vector fonts]]) may use [[monochrome]] or [[Grayscale|shades of gray]]. The latter is [[Spatial anti-aliasing|anti-aliased]]. When displaying a text, typically an operating system properly represents the "shades of gray" as intermediate colors between the color of the font and that of the background. However, if the text is represented as an ''image'' with [[Transparency in graphic files|transparent]] background, "shades of gray" require an image format allowing [[Alpha compositing|partial transparency]]. ==== Scaling ==== Bitmap fonts look best at their native [[pixel]] size. Some systems using bitmap fonts can create some font variants algorithmically. For example, the original [[Apple Macintosh]] computer could produce bold by widening vertical strokes and oblique by [[Shear mapping|shearing]] the image. At non-native sizes, many text rendering systems perform [[Nearest-neighbor interpolation|nearest-neighbor resampling]], introducing rough jagged edges. More advanced systems perform [[Spatial anti-aliasing|anti-aliasing]] on bitmap fonts whose size does not match the size that the application requests. This technique works well for making the font smaller but not as well for increasing the size, as it tends to blur the edges. Some graphics systems that use bitmap fonts, especially those of [[emulator]]s, apply curve-sensitive [[nonlinear resampling]] algorithms such as [[2xSaI]] or [[hq3x]] on fonts and other bitmaps, which avoids blurring the font while introducing little objectionable distortion at moderate increases in size. The difference between bitmap fonts and outline fonts is similar to the difference between bitmap and vector image file formats. Bitmap fonts are like image formats such as ''[[Windows bitmap|Windows Bitmap]]'' (.bmp), ''[[Portable Network Graphics]]'' (.png) and ''[[TIF|Tagged Image Format]]'' (.tif or .tiff), which store the image data as a grid of pixels, in some cases with compression. Outline or stroke image formats such as ''[[Windows Metafile]]'' format (.wmf) and ''[[Scalable Vector Graphics]]'' format (.svg), store instructions in the form of lines and curves of how to draw the image rather than storing the image itself. A "trace" program can follow the outline of a high-resolution bitmap font and create an initial outline that a font designer uses to create an [[outline font]] useful in systems such as [[PostScript]] or [[TrueType]]. Outline fonts scale easily without jagged edges or blurriness. === <span class="anchor" id="OUTLINE"></span>Outline fonts === ''Outline fonts'' or ''vector fonts'' are collections of [[vector graphics|vector images]], consisting of lines and curves defining the boundary of [[glyphs]]. Early vector fonts were used by [[vector monitor]]s and [[plotter|vector plotters]] using their own internal fonts, usually with thin single strokes instead of thickly outlined glyphs. The advent of desktop publishing brought the need for a common standard to integrate the [[graphical user interface]] of the first [[Macintosh]] and [[laser printer]]s. The term to describe the integration technology was [[WYSIWYG]] (What You See Is What You Get). This common standard was (and still is{{when|date=September 2021}}) Adobe [[PostScript]].{{citation needed|date=September 2021}} Examples of outline fonts include: PostScript [[Type 1 and Type 3 fonts]], [[TrueType]], [[OpenType]] and [[Compugraphic]]. The primary advantage of outline fonts is that, unlike [[bitmap fonts]], they are a set of lines and curves instead of pixels; they can be scaled without causing [[pixelation]]. Therefore, outline font characters can be scaled to any size and otherwise transformed with more attractive results than bitmap fonts, but require considerably more processing and may yield undesirable rendering, depending on the font, rendering software, and output size. Even so, outline fonts can be transformed into bitmap fonts beforehand if necessary. The converse transformation is considerably harder since bitmap fonts require a [[heuristic algorithm]] to guess and approximate the corresponding curves if the pixels do not make a straight line. Outline fonts have a major problem, in that the [[Bézier curve]]s used by them cannot be rendered accurately onto a raster display (such as most computer monitors and printers), and their rendering can change shape depending on the desired size and position.<ref>{{cite web |title = The raster tragedy at low resolution |url = http://www.microsoft.com/typography/tools/trtalr.aspx |author = Stamm, Beat |website = [[Microsoft]] |date = 1998-03-25 |access-date = 2015-08-10 |archive-url = https://web.archive.org/web/20160219231632/http://www.microsoft.com/typography/tools/trtalr.aspx |archive-date = 2016-02-19 |url-status = dead }}</ref> Measures such as [[font hinting]] have to be used to reduce the visual impact of this problem, which requires sophisticated software that is difficult to implement correctly. Many modern desktop computer systems include software to do this, but they use considerably more processing power than bitmap fonts, and there can be minor rendering defects, particularly at small font sizes. Despite this, they are frequently used because people often consider the ability to freely scale fonts, without incurring any pixelation, to be important enough to justify the defects and increased [[computational complexity]]. These issues are however mostly solved by antialiasing (as described in [[font rasterization]]) and the high display resolutions that are commonly in use today. === Stroke-based fonts === [[File:Metafont pens.png|thumb|With stroke-based fonts, the same stroke paths can be filled with different stroke profiles resulting in different visual shapes without the need to specify the vertex positions of each outline, as is the case with outline fonts.]] A glyph's outline is defined by the vertices of individual stroke paths, and the corresponding stroke profiles. The stroke paths are a kind of [[topological skeleton]] of the glyph. The advantages of stroke-based fonts over outline fonts include reducing the number of vertices needed to define a glyph, allowing the same vertices to be used to generate a font with a different weight, glyph width, or serifs using different stroke rules, and the associated size savings. For a font developer, editing a glyph by stroke is easier and less prone to error than editing outlines. A stroke-based system also allows scaling glyphs in height or width without altering stroke thickness of the base glyphs. Stroke-based fonts are heavily marketed for East Asian markets for use on embedded devices, but the technology is not limited to [[ideogram]]s. Commercial developers include [[Agfa Monotype]] ({{Proper name|iType}}) and Type Solutions, Inc. (owned by [[Bitstream Inc.]]) have independently developed stroke-based font types and font engines. Although Monotype and Bitstream have claimed tremendous space saving using stroke-based fonts on East Asian character sets, most of the space saving comes from building composite glyphs, which is part of the TrueType specification and does not require a stroke-based approach. == File formats == There multiple [[file format]]s for each file type. === Bitmap font formats === * [[Portable Compiled Format]] (PCF) * [[Glyph Bitmap Distribution Format]] (BDF) * [[Server Normal Format]] (SNF) * DECWindows Font (DWF) * Sun X11/NeWS format (BF, AFM) * Microsoft Windows bitmapped font (FON) * Amiga Font, ColorFont, AnimFont * ByteMap Font (BMF)<ref>{{cite web |title=BMF – ByteMap font format |url=https://bmf.php5.cz/?page=format |website=BMF |access-date=9 June 2019}}</ref> * [[PC Screen Font]] (PSF) * [[Scalable Screen Font]] (SFN, also supports outline fonts) * Packed bitmap font bitmap file for TeX DVI drivers (PK) * FZX a proportional bitmap font for the [[ZX Spectrum]]<ref name="FZX">{{cite web |title = FZX: a new standard format and driver for proportional fonts |author = Einar Saukas and Andrew Owen |url = http://www.worldofspectrum.org/forums/discussion/44088/fzx-a-new-standard-format-and-driver-for-proportional-fonts/p1 |date = 12 June 2013 |page = 1 }}</ref> === Outline font formats === ==== Type 1 and Type 3 fonts ==== [[Type 1 and Type 3 fonts]] were developed by [[Adobe Systems|Adobe]] for professional digital typesetting. Using [[PostScript]], the glyphs are outline fonts described with cubic [[Bézier curves]]. Type 1 fonts were restricted to a subset of the PostScript language, and used Adobe's hinting system, which used to be very expensive. Type 3 allowed unrestricted use of the PostScript language, but did not include any hint information, which could lead to visible rendering artifacts on low-resolution devices (such as computer screens and dot-matrix printers). ==== TrueType fonts ==== [[TrueType]] is a font system originally developed by [[Apple Inc]]. It was intended to replace Type 1 fonts, which many felt were too expensive. Unlike Type 1 fonts, TrueType glyphs are described with quadratic Bézier curves. It is currently very popular and implementations exist for all major operating systems. ==== OpenType fonts ==== [[OpenType]] is a smart font system designed by [[Adobe Systems|Adobe]] and [[Microsoft]]. OpenType fonts contain outlines in either the TrueType or [[Compact Font Format|CFF]] format together with a wide range of metadata. === Stroke-based font formats === [[Metafont]] uses a different sort of glyph description. Like TrueType, it is a vector font description system. It draws glyphs using strokes produced by moving a polygonal or elliptical pen approximated by a polygon along a path made from cubic [[composite Bézier curve]]s and straight line segments, or by filling such paths. Although when stroking a path the envelope of the stroke is never actually generated, the method causes no loss of accuracy or resolution. The method Metafont uses is more mathematically complex because the [[parallel curve]]s of a Bézier can be 10th order algebraic curves.<ref name="Kilgard">{{cite web |title = Vector Graphics & Path Rendering |author = Mark Kilgard |url = http://www.slideshare.net/Mark_Kilgard/22pathrender |date = 10 April 2012 |page = 28 |access-date = 2014-08-19 |archive-url = https://web.archive.org/web/20140813082730/http://www.slideshare.net/Mark_Kilgard/22pathrender |archive-date = 2014-08-13 |url-status = live }}</ref> In 2004, [[DynaComware]] developed DigiType, a stroke-based font format. In 2006, the creators of the [[Saffron Type System]] announced a representation for stroke-based fonts called [[Saffron Type System#Stylized stroke fonts|Stylized Stroke Fonts]] (SSFs) with the aim of providing the expressiveness of traditional outline-based fonts and the small [[memory footprint]] of uniform-width stroke-based fonts (USFs).<ref>{{cite conference |title = An Improved Representation for Stroke-based Fonts |conference = SIGGRAPH 2006 |first1 = Elena J. |last1 = Jakubiak |first2 = Ronald N. |last2 = Perry |first3 = Sarah F. |last3 = Frisken }}</ref> [[AutoCAD]] uses [[Shapefile|SHX/SHP]] fonts. ==Subsetting== A typical font may contain hundreds or even thousands of glyphs, often representing characters from many different languages. Oftentimes, users may only need a small subset of the glyphs that are available to them. Subsetting is the process of removing unnecessary glyphs from a font file, usually with the goal of reducing file size. This is particularly important for web fonts, since reducing file size often means reducing page load time and server load. Alternatively, fonts may be issued in different files for different regions of the world, though with the spread of the OpenType format this is now increasingly uncommon. == See also == * ''[[Adobe Systems, Inc. v. Southern Software, Inc.]]'', a United States district court case regarding copyright protection for computer fonts * [[Apple Advanced Typography]] * [[Display typeface]] * [[Kerning]] * [[Font hinting]] * [[Fontlab]] * [[FontForge]] * [[FreeType]] * [[Intellectual property protection of typefaces]] * [[List of typefaces]] * [[OpenType]] * [[Typeface]] * [[Typesetting]] * [[TeX]], [[LaTeX]], and [[MetaPost]] * [[Saffron Type System]], a high-quality anti-aliased text-rendering engine * [[Unicode typefaces]] * [[Web typography]], includes methods of font embedding into websites == References == {{Reflist}} ==Further reading == * {{Cite journal|url=https://ieeexplore.ieee.org/document/667294 | doi=10.1109/85.667294 | title=History and technology of computer fonts | year=1998 | last1=Wright | first1=T. | journal=IEEE Annals of the History of Computing | volume=20 | issue=2 | pages=30–34 | url-access=subscription }} ==External links== * [http://www.microsoft.com/typography/FontSearchFAQ.mspx Finding Fonts FAQ (Microsoft)] * [http://tldp.org/HOWTO/Font-HOWTO/fontech.html Font Technologies chapter of the LDP's Font-HOWTO] * [http://www.microsoft.com/typography/AboutFontsOverview.mspx Microsoft's font guide] * [http://dynamicstatements.com/glossary.aspx Glossary of Font Terms] Over 50 entries with helpful diagram {{Typography terms}} {{Authority control}} [[Category:Digital typography]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Authority control
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite conference
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:More footnotes needed
(
edit
)
Template:Proper name
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Typography terms
(
edit
)
Template:Visible anchor
(
edit
)
Template:When
(
edit
)