[Your Title Here]

Total Page:16

File Type:pdf, Size:1020Kb

[Your Title Here] Belegarbeit The L4 Font Server Henrik Malecha 25th July 2005 Technische Universität Dresden Department of Computer Science Operating Systems Group Supervising Professor: Prof. Dr. rer. nat. Hermann Härtig Supervisor: Dipl.-Inf. Norman Feske, Dipl.-Inf. Christian Helmuth Erklärung Hiermit erkläre ich, dass ich diese Arbeit selbstständig erstellt und keine anderen als die angegebenen Hilfsmittel benutzt habe. Dresden, den 25th July 2005 Henrik Malecha Contents 1 Introduction 1 1.1 Overview . 1 1.2 Layout . 2 2 State of the art 3 2.1 History of fonts . 3 2.2 Font Terminology . 3 2.2.1 Outlines and geometric aspects . 4 2.2.2 Glyph metrics . 7 2.2.3 Kerning . 8 2.3 Unicode . 9 2.4 FreeType2 . 10 2.5 Fonts in Linux . 10 2.5.1 XLFD . 11 2.5.2 Font Systems . 11 2.5.3 Xfontsel . 11 2.5.4 Fontconfig . 12 3 Design 13 3.1 Design Goals . 13 3.1.1 Library-based design . 14 3.1.2 Server-based design . 14 3.2 Design Decisions . 15 3.2.1 Internal Server Structure . 15 3.2.2 Interface . 16 3.2.3 Client Library . 17 3.2.4 Font Loading . 18 3.2.5 Font Selection . 20 3.2.6 A Session . 21 3.2.7 Unicode Support . 22 3.2.8 Example Tools . 22 3.2.9 Dfontsel . 23 3.2.10 SPet - Simple Performance Tester . 23 V Contents 4 Implementation 25 4.1 Porting Freetype2 . 25 4.2 Glyph Bitmap Transfer . 25 4.2.1 IPC vs. Dataspace . 25 4.2.2 Glyph Buffer Structure . 27 4.2.3 Larger Strings . 27 4.3 Handling Clients . 28 4.4 Supporting Font Modules . 29 4.5 Serial vs. Parallel . 30 4.5.1 Load Fonts . 31 4.6 Font Selection . 31 4.7 Kerning . 33 5 Evaluation 35 5.1 Performance . 35 5.2 Security . 36 6 Conclusion and Outlook 39 6.1 Conclusion . 39 6.2 Future Work . 39 6.2.1 Internal Challenges . 40 6.2.2 Client-Side Challenges . 41 Bibliography 43 VI List of Figures 2.1 Glyph metrics . 7 2.2 Without and with kerning . 8 3.1 Design scheme of the L4 Font Server . 15 3.2 Font family list . 20 4.1 Shared memory scheme . 26 4.2 Font selection modes . 31 4.3 Principle of get_kerning ........................... 32 VII 1 Introduction 1.1 Overview Font management and electronic typesetting is a widespread field. Different fonts for different languages, like English, Greek or more complex types like Arabic or Asian one’s with a huge amount of letters make it a big challenge for programmers that want to localize their programs to other languages. Fonts must be scalable and should always look the same, regardless of their size. Take for example the traditional X fonts used in terminals. They always have the same distance and are only fixed font sizes, and that is not desirable in a contemporary typesetting. To the humans eyes, font files with variable symbol distances are more readable and comfort- able. Furthermore, a today’s font has to be scalable to any size and modern font renderers are often required to support anti-aliasing for letter smoothing. Font formats like Adobe’s Type 1 or Apple’s True-Type present such more sophisticated ways of font handling. Nowadays, computer systems are often required to use these scalable, variable-spaced fonts, because fonts are an integral part of a computer system, as they are used to present information to the user. When reading or creating documents, like manuals or letters, surfing in the Internet or writing e-mails or even if you work with the operating system, you are always confronted with fonts. Moreover, as there are many different languages on the world, using various scripts that vary highly in their count of symbols, it is a real challenge to cope with internationalization. In the early years, computers generally supported the ASCII character set. This provides the user with Latin characters, necessary for typing in the English language. ASCII only consists of 127 characters, which means that 7 bits of a byte are used in that code. This has historical reasons, because, in the beginning of the usage of ASCII, there were computers that handled 7-bit words. Later, the eighth bit was often used as a parity bit. The problem is that just the fewest languages have such a small number of letters as English has. Perhaps, one of the most extreme example is the Chinese type with its over 70000 symbols. Alternative methods of character representation had to come up, which resulted in the Unicode Project and the ISO 10646 standard, for example. My thesis deals with the font support for the L4 environment. The L4 system has been devel- oped by the OS Group of the Departure of Computer Science at the Dresden University of Technology. It is build on top of a so-called microkernel, Fiasco by name. For more informa- tion about the system, look at [L4e01]. The goal of the thesis is to develop a server that provides clients with fonts. Concretely, this means that a client can request rendered bitmaps of characters in a font he chooses out of a font list, the server offers. Moreover, the server shall be able to handle international character sets, not only the standard ASCII sets. 1 1 Introduction 1.2 Layout Section 2 deals with related work in the field of fonts. It starts with a short overview about the history of fonts that is followed by an introduction into the font terminology, which is necessary, because there are some specific terms. Afterwards, some basic technologies and concepts, like FreeType2 and Unicode are introduced, that will be used within the L4 Font Server. The section closes with a look at font solutions under Linux. In Section 3, I describe the design alternatives and the final decisions about the concept of a font server implementation. The internal and external architecture are introduced and basic questions of how to use the server are answered. On the base of that, the Section 4 is a more in-depth description of several important aspects of the implementation. Section 5 tries to evaluate the implemented server. Questions of “what is good” and “where are the drawbacks” are considered. Finally, a conclusion in Section 6 summarizes the features already included and what has to be done in the future development. 2 2 State of the art In this chapter I give an overview of related work and state-of-the-art solutions in the field of font handling and rendering. After a short overview about the historical origins of fonts and type- setting, an introduction in the terminology and the basics of fonts follows. The concept of True- Type fonts has to be clarified, because it is necessary to understand the work of the font server. As well an explanation of FreeType2, an important core element of my implementation is given. For the internationalization task, I provide an insight into the Unicode Project. Afterwards, I describe how the Linux system deals with font management and challenges like scalable fonts and internationalization. 2.1 History of fonts Like many concepts that found their way into computer technology, fonts and typesetting have already been existing for a long time. As mentioned in [Fon05], the term font is derivated from the French word fonte (i. e., something that has been melt). The oldest verified notes about printing with movable type were found in China. In the 11th century, a Chinese called Bi Sheng invented movable letters. Later, in Europe, the German printer Johann Gutenberg also invented the movable type or foundry type and thereby revolu- tionized the printing technology. In foundry type each character was cast into a block of metal, which was an alloy of lead. Every block contains one letter, number or any other symbol. The look of the images on that blocks was called typeface, which is still used today. By combining the blocks, one could form pages that were inked and then used for fast reproduction. By that, books and information spread all over Europe and layed one of the cornerstones of renaissance. This technology was used for hundreds of years, until the middle of the 20th century. In the 1950s a new method came up by the photographic typesetting, which had the advantage to be scalable. Therefore, the fonts were saved on discs or rolls of film. But the era didn’t take that long, since, in the 1980s, the digital typography began their relentless conquest of typesetting. Thus, nowadays, digital typesetting is widespread and, in smaller dimensions, usable by everyone, who owns a computer and a printer. Nowadays, when we speak of fonts, we usually mean computer fonts saved in a file. We use them to present information on screens, to print documents and so on. Many terms in digital type-setting have their origin in the historical technologies. In the next section, the most important of them are explained. 2.2 Font Terminology On computers, fonts are an important part of the system, as they are used to display information in text-only environments as well as in systems with a graphical user interface. Furthermore, 3 2 State of the art more sophisticated use of fonts, for example WYSIWYG1 text editors or desktop publishing software, is widely spread and quasi-standard. Because of that, an efficient representation guar- anteeing high output quality is desired. Therefore, font designs are defined in files, which are used by diverse font handlers, which can read these files and use the fonts for character render- ing.
Recommended publications
  • Open Source License Report on the Product
    OPEN SOURCE LICENSE REPORT ON THE PRODUCT The software included in this product contains copyrighted software that is licensed under the GPLv2, GPLv3, gSOAP Public License, jQuery, PHP License 3.01, FTL, BSD 3-Clause License, Public Domain, MIT License, OpenSSL Combined License, Apache 2.0 License, zlib/libpng License, , . You may obtain the complete corresponding source code from us for a period of three years after our last shipment of this product by sending email to: [email protected] If you want to obtain the complete corresponding source code with a physical medium such as CD-ROM, the cost of physically performing source distribution might be charged. For more details about Open Source Software, refer to eneo website at www.eneo-security.com, the product CD and manuals. GPLv2: u-Boot 2013.07, Linux Kernel 3.10.55, busybox 1.20.2, ethtool 3.10, e2fsprogs 1.41.14, mtd-utils 1.5.2, lzo 2.05, nfs-utils 1.2.7, cryptsetup 1.6.1, udhcpd 0.9.9 GPLv3: pwstrength 2.0.4 gSOAP Public License: gSOAP 2.8.10 jQuery License: JQuery 2.1.1, JQuery UI 1.10.4 PHP: PHP 5.4.4 FTL (FreeType License): freetype 2.4.10 BSD: libtirpc 0.2.3, rpcbind 0.2.0, lighttpd 1.4.32, hdparm 9,45, hostpad 2, wpa_supplicant 2, jsbn 1.4 Public Domain: sqlite 3.7.17 zlib: zlib 1.2.5 MIT:pwstrength 2.0.4, ezxml 0.8.6, bootstrap 3.3.4, jquery-fullscreen 1.1.5, jeditable 1.7.1, jQuery jqGrid 4.6.0, fullcalendar 2.2.0, datetimepicker 4.17.42, clockpicker 0.0.7, dataTables 1.0.2, dropzone 3.8.7, iCheck 1.0.2, ionRangeSlider 2.0.13, metisMenu 2.0.2, slimscroll 1.3.6, sweetalert 2015.11, Transitionize 0.0.2 , switchery 0.0.2, toastr 2.1.0, animate 3.5.0, font-awesome 4.3.0, Modernizr 2.7.1 pace 1.0.0 OpenSSL Combined: openssl 1.0.1h Apache license 2.0: datepicker 1.4.0, mDNSResponder 379.32.1 wish), that you receive source reflect on the original authors' GNU GENERAL PUBLIC code or can get it if you want it, reputations.
    [Show full text]
  • Uniform Rendering of XML Encoded Mathematical Content with Opentype Fonts
    i \eutypon24-25" | 2011/1/21 | 8:58 | page 11 | #15 i i i Εὔτυπon, τεῦχος 24-25 — >Okt¸brioc/October 2010 11 Uniform Rendering of XML Encoded Mathematical Content with OpenType Fonts Apostolos Syropoulos 366, 28th October Str. GR-671 00 Xanthi Greece E-mail: asyropoulos at yahoo dot com The new OpenType MATH font table contains important information that can be used to correctly and uniformly render mathematical con- tent (e.g., mathematical formulae, equations, etc.). Until now, all sys- tems in order to render XML encoded mathematical content employed some standard algorithms together with some standard sets of TrueType and/or Type 1 fonts, which contained the necessary glyphs. Unfortu- nately, this approach does not produce uniform results because certain parameters (e.g., the thickness of the fraction line, the scale factor of superscripts/subscripts, etc.) are system-dependant, that is, their exact values will depend on the particular setup of a given system. Fortunately, the new OpenType MATH table can be used to remedy this situation. In particular, by extending renderers so as to be able to render mathemat- ical contents with user-specified fonts, the result will be uniform across systems and platforms. In other words, the proposed technology would allow mathematical content to be rendered the same way ordinary text is rendered across platforms and systems. 1 Introduction The OpenType font format is a new cross-platform font file format developed jointly by Adobe and Microsoft. OpenType fonts may contain glyphs with ei- ther cubic B´eziersplines (used in PostScript fonts) or with quadratic B´ezier splines (used in TrueType fonts).
    [Show full text]
  • Opentype Postscript Fonts with Unusual Units-Per-Em Values
    Luigi Scarso VOORJAAR 2010 73 OpenType PostScript fonts with unusual units-per-em values Abstract Symbola is an example of OpenType font with TrueType OpenType fonts with Postscript outline are usually defined outlines which has been designed to match the style of in a dimensionless workspace of 1000×1000 units per em Computer Modern font. (upm). Adobe Reader exhibits a strange behaviour with pdf documents that embed an OpenType PostScript font with A brief note about bitmap fonts: among others, Adobe unusual upm: this paper describes a solution implemented has published a “Glyph Bitmap Distribution Format by LuaTEX that resolves this problem. (BDF)” [2] and with fontforge it’s easy to convert a bdf font into an opentype one without outlines. A fairly Keywords complete bdf font is http://unifoundry.com/unifont-5.1 LuaTeX, ConTeXt Mark IV, OpenType, FontMatrix. .20080820.bdf.gz: this Vle can be converted to an Open- type format unifontmedium.otf with fontforge and it Introduction can inspected with showttf, a C program from [3]. Here is an example of glyph U+26A5 MALE AND FEMALE Opentype is a font format that encompasses three kinds SIGN: of widely used fonts: 1. outline fonts with cubic Bézier curves, sometimes Glyph 9887 ( uni26A5) starts at 492 length=17 referred to CFF fonts or PostScript fonts; height=12 width=8 sbX=4 sbY=10 advance=16 2. outline fonts with quadratic Bézier curve, sometimes Bit aligned referred to TrueType fonts; .....*** 3. bitmap fonts. ......** .....*.* Nowadays in digital typography an outline font is almost ..***... the only choice and no longer there is a relevant diUer- .*...*.
    [Show full text]
  • Surviving the TEX Font Encoding Mess Understanding The
    Surviving the TEX font encoding mess Understanding the world of TEX fonts and mastering the basics of fontinst Ulrik Vieth Taco Hoekwater · EuroT X ’99 Heidelberg E · FAMOUS QUOTE: English is useful because it is a mess. Since English is a mess, it maps well onto the problem space, which is also a mess, which we call reality. Similary, Perl was designed to be a mess, though in the nicests of all possible ways. | LARRY WALL COROLLARY: TEX fonts are mess, as they are a product of reality. Similary, fontinst is a mess, not necessarily by design, but because it has to cope with the mess we call reality. Contents I Overview of TEX font technology II Installation TEX fonts with fontinst III Overview of math fonts EuroT X ’99 Heidelberg 24. September 1999 3 E · · I Overview of TEX font technology What is a font? What is a virtual font? • Font file formats and conversion utilities • Font attributes and classifications • Font selection schemes • Font naming schemes • Font encodings • What’s in a standard font? What’s in an expert font? • Font installation considerations • Why the need for reencoding? • Which raw font encoding to use? • What’s needed to set up fonts for use with T X? • E EuroT X ’99 Heidelberg 24. September 1999 4 E · · What is a font? in technical terms: • – fonts have many different representations depending on the point of view – TEX typesetter: fonts metrics (TFM) and nothing else – DVI driver: virtual fonts (VF), bitmaps fonts(PK), outline fonts (PFA/PFB or TTF) – PostScript: Type 1 (outlines), Type 3 (anything), Type 42 fonts (embedded TTF) in general terms: • – fonts are collections of glyphs (characters, symbols) of a particular design – fonts are organized into families, series and individual shapes – glyphs may be accessed either by character code or by symbolic names – encoding of glyphs may be fixed or controllable by encoding vectors font information consists of: • – metric information (glyph metrics and global parameters) – some representation of glyph shapes (bitmaps or outlines) EuroT X ’99 Heidelberg 24.
    [Show full text]
  • Optimization of Fontconfig Library Optimization of Fontconfig Library
    Michal Srb OPTIMIZATION OF FONTCONFIG LIBRARY OPTIMIZATION OF FONTCONFIG LIBRARY Michal Srb Bachelor's Thesis Spring 2017 Information Technology Oulu University of Applied Sciences ABSTRACT Oulu University of Applied Sciences Degree Programme in Information Technology, Internet Services Author: Michal Srb Title of the bachelor’s thesis: Optimization of Fontconfig Library Supervisor: Teemu Korpela Term and year of completion: Spring 2017 Number of pages: 39 + 1 appendix Fontconfig is a library that manages a database of fonts on Linux systems. The aim of this Bachelor's thesis was to explore options for making it respond faster to application's queries. The library was identified as a bottleneck during the startup of graphical applications. The typical usage of the library by applications was analyzed and a set of standalone benchmarks were created. The library was profiled to identify hot spots and multiple optimizations were applied to it. It was determined that to achieve an optimal performance, a complete rewrite would be necessary. However, that could not be done while staying backward compatible. Nevertheless, the optimizations applied to the existing fontconfig yielded significant performance improvements, up to 98% speedups in benchmarks based on the real-world usage. Keywords: fontconfig, optimization, benchmarking, profiling 3 CONTENTS 1 INTRODUCTION 6 2 BACKGROUND 7 1.1 Motivation 7 1.2 Fontconfig 8 1.2.1 Function 9 1.2.2 Configuration 11 2 ANALYSIS 12 2.1 Main entry functions 12 2.1.1 FcFontMatch 12 2.1.2 FcFontSort 14 2.1.3
    [Show full text]
  • The Comicsans Pacakge
    The comicsans package∗ Scott Pakin [email protected] December 19, 2013 1 Introduction The comicsans package makes Microsoft's Comic Sans font available to LATEX 2". comicsans supports all of the following: • Roman text, boldface text, SMALL-CAPS TEXT, and—with a little extra effort—italic text • Кирилица (римский шрифт, жирный шрифт, каллиграфический шрифт) • Mathematics using Comic Sans wherever possible: ′ log 2" 1 k y (x) 3 10 3 + k=x pk1 Comic Sans is a TrueType (TTF) font. As such, it works particularly well with pdfLATEX, which natively supports TrueType fonts. Some TEX distribu- tions also support dynamic conversion of TTF to PK (a bitmapped font format long used by TEX) so TEX backends other than pdfTEX can (indirectly) utilize TrueType fonts, as well. 2 Installation The following is a brief summary of the comicsans installation procedure: 1. Acquire and install the Comic Sans TrueType (.ttf) files. 2. [Optional] Generate the italic and/or Cyrillic variants of Comic Sans 3. Install the comicsans font files and refresh the TEX filename database. ∗This document corresponds to comicsans v1.0g, dated 2013/12/19. 1 4. Point the TEX backends to the comicsans files. Details are presented in Sections 2.1–2.4. 2.1 Acquire and install the TrueType files comicsans requires the Comic Sans and Comic Sans Bold TrueType files (comic.ttf and comicbd.ttf). You may already have these installed. (On Windows, look in C:\WINDOWS\Fonts for Comic Sans MS (True- Type) and Comic Sans MS Bold (TrueType).) If not, see if a package called msttcorefonts is available for your operating system or operating-system distribution.
    [Show full text]
  • Fontographer 4.1.5 Technotes by Fontlab Ltd
    Fontographer 4.1.5 Technotes by Fontlab Ltd. Draft version 2.7. May 2005 Important: This documentation includes technical notes and FAQs collected over the last 15 years in the Fontographer knowledge base. Due to the ongoing technological changes, parts of the information provided herein, in particular weblinks and references to other resources, as well as statements about technologies, font formats, encodings etc. may be inaccurate or outdated. Due to the draft nature of this document, some formatting errors may occur. Copyright ©2005 by FontLab, Ltd. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of the publisher. Any software referred to herein is furnished under license and may only be used or copied in accordance with the terms of such license. FontLab, FontLab logo, ScanFont, TypeTool, SigMaker, AsiaFont Studio, FontAudit and VectorPaint are either registered trademarks or trademarks of FontLab, Ltd. in the United States and/or other countries. Macromedia, Fontographer and Freehand are registered trademarks of Macromedia, Inc. Apple, the Apple Logo, Mac, Mac OS, Macintosh and TrueType are trademarks of Apple Computer, Inc., registered in the United States and other countries. Adobe, PostScript, Type Manager and Illustrator are trademarks of Adobe Systems Incorporated which may be registered in certain jurisdictions. Windows, Windows 95, Windows 98, Windows XP and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. IBM is a registered trademark of International Business Machines Corporation.
    [Show full text]
  • Variable Fonts in Chrome Webengines Hackfest, Igalia, a Coruña
    Variable Fonts in Chrome Webengines Hackfest, Igalia, A Coruña Behdad Esfahbod [email protected] Dominik Röttsches [email protected] Demos ● Responsive Web Typography ● Font Playground ● Underware’s HOI Variable Fonts in CSS Level 4 Fonts font-weight, font-stretch, font-style before font-weight, font-stretch, font-style variable Ranges in @font-face @font-face { font-family: Roboto; font-weight: 700; /* or: 400, 600, 900,... */ font-style: normal; /* or: italic, oblique */ font-stretch: condensed; /* or: expanded, ultra-expanded */ } Ranges in @font-face @font-face { font-family: Roboto; font-weight: 400 700; font-style: 10deg 20deg; font-stretch: 50% 200%; } New Font Style Matching Algorithm ● https://drafts.csswg.org/css-fonts-4/#font-style-matching ● Previously, for a font request: ○ Match font-stretch, font-style, font-weight by traversing keyword values, find closest keyword ● New definition: Search for numerically nearest value ○ As defined by @font-face and ○ Within the range that the variable font allows font-optical-sizing font-variation-settings ● Similar to font-feature-settings ● Sequence of 4 character axis name plus font-variation-settings: ‘wght’ 700, ‘UPWD’ 200; Variable Fonts in Blink New CSS Font Matching Algorithm ● Implements font-stretch, font-style, font-weight matching based on numbers, not based on keywords ● FontTraits replaced with FontSelectionRequest ○ Now storing three FontSelectionValues (numerical values for stretch, style weight) ● FontSelectionCapabilities are storing what the @font-face definition provides
    [Show full text]
  • Optimal Use of Fonts on Linux
    Optimal Use of Fonts on Linux Avi Alkalay Donovan Rebbechi Hal Burgiss Copyright © 2006 Avi Alkalay, Donovan Rebbechi, Hal Burgiss 2007−04−15 Revision History Revision 2007−04−15 15 Apr 2007 Revised by: avi Included support to SUSE installation for the RPM scriptlets on template spec file, listed SUSE as a BCI−enabled distro. Revision 2007−02−08 08 Feb 2007 Revised by: avi Fixed some typos, updated Luc's page URL, added DejaVu sections, added link to FC6 Freetype RPMs, added link to Debian MS Core fonts, and added reference to the gnome−font−properties command. Revision 2006−07−02 02 Jul 2006 Revised by: avi Included link to Debian FreeType BCI package, improved the glossary with Latin1 descriptions, more clear links on the webcore fonts section, instructions on how to rebuild source RPM packages in the BCI appendix, updated the freetype recompilation appendix to cover new versions of the lib, authorship section reorganized. Revision 2006−04−02 02 Apr 2006 Revised by: avi Included link to FC5 Freetype.bci contribution by Cody DeHaan. Revision 2006−03−25 25 Mar 2006 Revised by: avi Updated link to BCI Freetype RPMs to be more distro version specific. Revision 2005−07−19 19 May 2005 Revised by: avi Renamed Microsoft Fonts to Webcore Fonts, and links updated.Added X.org Subsystems section. Revision 2005−05−25 25 May 2005 Revised by: avi Comment related to web pages in the Microsoft Fonts section Revision 2005−05−10 10 May 2005 Revised by: avi Old section−based glossary converted to real DocBook glossary.Modernized terms and explanations on the glossary.Included concepts as charsets, Unicode and UTF−8 in the glossary.
    [Show full text]
  • A Module for Using METAFONT Directly Inside the Freetype Rasterizer 138 Tugboat, Volume 39 (2018), No
    136 TUGboat, Volume 39 (2018), No. 2 FreeType MF Module: Fonts are the graphical representation of text A module for using METAFONT directly in a specific style and size. These fonts are mainly inside the FreeType rasterizer categorized in two types: outline fonts and bitmap fonts. Outline fonts are the most popular fonts for Jaeyoung Choi, Ammar Ul Hassan, producing high-quality output used in digital envi- Geunho Jeong ronments. However, to create a new font style as Abstract an outline font, font designers have to design a new font with consequent extensive cost and time. This METAFONT is a font description language which gen- recreation of font files for each variant of a font can erates bitmap fonts for the use by the T X system, E be especially painful for font designers in the case of printer drivers, and related programs. One advan- CJK fonts, which require designing of thousands in- tage of METAFONT over outline fonts is its capability dividual glyphs one by one. Compared to alphabetic for producing different font styles by changing pa- scripts, CJK scripts have both many more characters rameter values defined in its font specification file. and generally more complex shapes, expressed by Another major advantage of using METAFONT is combinations of radicals [3]. Thus it often takes more that it can produce various font styles like bold, than a year to design a CJK font set. italic, and bold-italic from one source file, unlike A programmable font language, METAFONT, outline fonts, which require development of a sepa- has been developed which does not have the above rate font file for each style in one font family.
    [Show full text]
  • Christoph Knoth PB Computed Type Design 
    COMPUTED TYPE DESIGN Christoph Knoth PB Computed Type Design A Abstract A lot of tasks in font design are interlinked and a change on one Is it possible to create a far more easy to use program to letter will maybe create hours of work on others. The idea of a design western characters by trying to analyze the strongness parametrical typeface could minimize those problems and would and weakness of other approaches? And does a programmatic allow to design an infinite number of typefaces at the same approach to type design help to create new and interesting time. curves and shapes for letterforms something that would not • I will try to understand why this way of designing a font have been imagined before? never got widely adopted. If it is possible to create a more easy to use program to design western characters. And finally if this approach to type design would help to create new and interesting curves and shapes for letterforms. C History To understand how type design works today one has to B Introduction understand the history of type design. That is why I have collected some early historical samples that show first approaches for a mathematical notation and a systematical Type design is a long and tedious process. Just to design modification and variation of fonts in a pre computer era. the basic letters takes days and it sometimes takes years for • Followed by a short chapter about the curve and another a full character set. The process has changed over time with chapter where I will try to shed some light on the changes that technology evolving giving the designer more and more the computer brought to the type design industry.
    [Show full text]
  • Creating Truetype Fonts Based on METAFONT
    The METATYPE Project: Creating TrueType Fonts Based on METAFONT Serge Vakulenko Cronyx Engineering, Moscow, Russia [email protected] http://www.vak.ru/proj/metatype Abstract The purpose of the METATYPE project is the development of freeware TrueType fonts for the general user community. The METAFONT language was chosen for creating character glyphs. Currently, glyph images are converted to cubic outlines using a bitmap tracing algorithm, and then to conic outlines. Two font families are currently under development as part of the METATYPE project: the TeX font family, based on Computer Modern fonts by Donald E. Knuth, retaining their look and feel. A rich set of typefaces is available, including Roman, Sans Serif, Monowidth and Math faces with Normal, Bold, Italic, Bold Italic, Narrow and Wide variations; and second, the Maestro font family, which is designed as a Times look-alike. It also uses Computer Modern sources, but with numerous modifications. Résumé Le but du projet METATYPE est le développement de fontes TrueType libres pour la commu- nauté générale d’utilisateurs. Le langage de programmation METAFONT est utilisé pour créer les glyphes. Actuellement, les glyphes sont convertis d’abord en contours cubiques, en utilisant un al- gorithme d’auto-traçage de bitmap, et ensuite en contours coniques. Deux familles de fontes sont actuellement en développement, dans le cadre du projet META- TYPE : la famille «TeX font», basée sur les fontes Computer Modern de Donald E. Knuth, et proposant du romain, du sans empattements, du mono-chasse, et les fontes mathématiques, dans les styles : régulier, gras, italique, gras italique, étroitisé et élargi ; la famille «Maestro», qui est un clone du Times.
    [Show full text]