Experiences Typesetting Opentype Math with Lualatex and Xelatex

Total Page:16

File Type:pdf, Size:1020Kb

Experiences Typesetting Opentype Math with Lualatex and Xelatex Ulrik Vieth CONTEXT MEETING 2010 1 Experiences typesetting OpenType math with LuaLaTEX and XeLaTEX Abstract When LuaTEX first provided support for OpenType math typesetting in version 0.40, high-level macro support for math typesetting was first developed for ConTEXt MkIV, while support for LuaLaTEX was initially limited to a very low-level or non-existent. In the meantime, this gap has been closed by recent developments on macro packages such as luaotfload, fontspec, and unicode-math, so LaTEX users are now provided with a unified high-level font selection interface for text and math fonts that can be used equally well with both LuaLaTEX and XeLaTEX. While a unified high-level interface greatly improves document interchange and eases transitions between systems, it does not guarantee that identical input will always produce identical output on different engines, as there are significant differences in the underlying implementations of math typesetting algorithms. While LuaTEX provides a full-featured implementation of OpenType math, XeTEX has taken a more limited approach based on a subset of OpenType parameters to provide the functionality of traditional TEX engines. Given the possibility of running exactly the same test files on both engines, it now becomes feasible to study those differences in detail and to compare the results. Hopefully, this will allow to draw conclusions how the quality of math typesetting is affected and could be improved by taking advantage of a more sophisticated, full-featured OpenType math implementation. LuaTEX math % !TeX program = lualatex \documentclass[fleqn]{article} 1 휕ƨ푬 1 휕풋 Δ푬 − = 훁휆 + 휇 , \usepackage{fontspec,unicode-math} ƨ ƨ Ʀ \setromanfont{Cambria} 푐 휕푡 휀Ʀ 휕푡 \setmathfont{Cambria Math} 1 휕ƨ푩 \begin{document} \input{luatex-fixes} Δ푩 − ƨ ƨ = −휇Ʀ rot 풋 . 푐 휕푡 \input{math-test} \end{document} XeTEX math % !TeX program = xelatex \documentclass[fleqn]{article} 1 1 휕 푬 1 휕풋 \usepackage{fontspec,unicode-math} Δ푬 − = 훁휆 + 휇 , 푐 휕푡 휀 휕푡 \setromanfont{Cambria} \setmathfont{Cambria Math} \begin{document} 1 휕푩 Δ푩 − = −휇 rot 풋 . \input{xetex-fixes} 푐 휕푡 \input{math-test} \end{document} Can you spot the difference? % !TeX program = pdflatex 1 \documentclass{article} 1 휕ƨ푬 1 휕풋 \usepackage{pdfpages} Δ푬 − ƨ ƨ = 훁휆 + 휇Ʀ , \begin{document} 푐 휕푡 휀Ʀ 휕푡 \includepdfmerge [nup=2x1,noautoscale=true,delta=-21cm 0] ƨ 1 휕 푩 {xelatex-test.pdf,1,lualatex-test.pdf,1} Δ푩 − = −휇 rot 풋 . 푐ƨ 휕푡ƨ Ʀ \end{document} 1 2 CONTEXT MEETING 2010 Ulrik Vieth Introduction On the other hand, mainstream font formats such as OpenType did not provide any support for the seman- In this paper, we will review the state of recent devel- tics of math typesetting. opments of new T X engines and corresponding macro E Ironically, the lack of a suitable math font technology packages to support math typesetting with Unicode and was only resolved when Microsoft started to develop OpenType math fonts, based on our experiences from support for MS Office 2007. Given their influence as a testing the T X Live 2010 pretest distribution [1]. E vendor controlling the OpenType font specification [6], In the first part, we will summarize the available they simply went ahead and created an extension of the choices of T X engines and macro packages, as well as E OpenType font format containing a MATH table [7] and the available choices of math fonts, which can be used commissioned the design of Cambria Math as a refer- for testing OpenType math typesetting. ence implementation of an OpenType math font [8, 9]. In the second part, we will report our experiences In addition, they also developed a simplified math input testing the various T X engines, macro packages and E language known as ‘linear math’ [10]. fonts, and we will report our findings which kind of While there are sometimes strong reservations about problems were encountered and how these problems accepting a vendor-defined file format, especially an were resolved or circumvented. unreleased one coming from Microsoft, developers of In the third part, we will analyze and compare the re- font tools such as FontForge [11] as well as developers sults of running identical documents through different of T X engines were willing to accept OpenType math T X engines using different implementations of math E E as a de facto standard, because it filled a need and also typesetting algorithms, and we will try to draw conclu- because it turned out to be well-designed. sions how the quality of math typesetting is affected Upon closer analysis, many concepts of OpenType and could be improved. math could be seen as obvious extensions or general- izations of traditional concepts of math typesetting in Reviewing the state of OpenType TEX [12]. Moreover, most OpenType math font parame- math support in T X Live 2010 ters could be identified to have a direct correspondence E to TEX math font parameters [13], which had also been In recent years, many developments related to new TEX carefully analyzed in previous studies [14, 15]. engines and corresponding macro packages and fonts have focused on providing support for Unicode and OpenType math support in TEX engines OpenType, not just for text typesetting, but also for When XeTEX first added OpenType math support in math typesetting (which is still important as one ofthe version 0.997 as of 2007 [16], it kept TEX’s traditional traditional strong-holds of TEX). math typesetting algorithms essentially unchanged and only used a small subset of OpenType font parameters Unicode and OpenType math technology to initialize the required TEX font parameters. While the pre-history of Unicode text support dates When LuaTEX also added OpenType math support back to the mid-1990s, most activities related to Unicode in version 0.40 as of 2009 [17, 18, 19], it introduced math support only became possible during the last few a number of extensions and generalizations to TEX’s years, after a suitable font technology was developed as math typesetting algorithms, aiming to provide a full- an extensions to the OpenType font format. featured implementation of OpenType math. When the efforts to bring math into Unicode were As of TEX Live 2010, both new TEX engines support- started in the late 1990s by a consortium of scientific ing Unicode and OpenType math typesetting have been publishers, the original focus was on identifying math added to the mainstream distributions and have become symbols and getting them accepted into Unicode [2, 3]. widely available for using and testing the new features. Once this was done, the focus shifted to developing a However, their acceptance also depends on providing reference font implementation, the so-called STIX fonts, adequate macro package and font support. to provide the necessary glyph shapes [4]. While the STIX project was spending nearly a decade OpenType math support in macro packages waiting for fonts to be designed, the lack of a suitable When XeTEX was first added to TEX distributions, it was font technology for math typesetting was overlooked easily accessible to LaTEX users with XeLaTEX. A high- for a long time. While traditional TEX font formats sup- level font selection interface for text fonts was devel- ported math typesetting in their own way, they suffered oped with the fontspec package [20, 21], which became from limitations and questionable design decisions [5]. widely used as a standard package for XeLaTEX. Experiences typesetting OpenType math with LuaLaTEX and XeLaTEX CONTEXT MEETING 2010 3 When XeTEX added math support, a corresponding Except for Cambria Math, all of these fonts all are high-level font selection interface for math fonts was freely available, either from CTAN (if already released) also developed with the unicode-math package [22], but or from GitHub (if still under development). unlike fontspec it wasn’t released until recently. As of TEX Live 2010, Asana Math and XITS Math are When LuaTEX added math support, high-level macro both included in the distribution, but Cambria Math support was initially developed for ConTEXt MkIV [23], and Neo Euler have to be obtained separately and need while macro support for LuaLaTEX (or Plain LuaTEX) to be installed manually in your texmf-local tree. was initially limited to the luaotfload package [24], Once installed, each of the fonts can be used in the which provided only a low-level interface. same way, but the range of symbols and math alphabets As of TEX Live 2010, LaTEX macro package support available may differ significantly between fonts. for Unicode and OpenType math typesetting has been much improved, as both the fontspec and unicode- math packages have undergone a complete rewrite, Experiences testing OpenType adding support for LuaLaTEX (based on luaotfload) to math support in TEX Live 2010 the code originally developed for XeLaTEX. Testing the functionality and quality of OpenType math As a result, LaTEX users are now provided with a typesetting implies testing a complex system, consist- unified high-level font selection interface for text and ing of typesetting engines, macro packages and fonts math fonts [25] that can be used equally well with both (with embedded intelligence), which have to interact XeLaTEX and LuaLaTEX. properly to produce the desired results. Given this interface, selecting a different math font Given the inherent complexity, there are a large (such as Cambria Math) can be as easy as this: number of problems which can occur, and most likely \usepackage{fontspec,unicode-math} will occur, so we have to consider the possibilities of \setmainfont[<options>]{Cambria} \setmathfont[<options>]{Cambria Math} engine problems, macro problems, font problems and font loading issues. Using the options of \setmathfont, a number of details of math typesetting can be easily configured, includ- Problems with T X engines ing the behavior of math alphabets (such as upright vs.
Recommended publications
  • Donald Knuth Fletcher Jones Professor of Computer Science, Emeritus Curriculum Vitae Available Online
    Donald Knuth Fletcher Jones Professor of Computer Science, Emeritus Curriculum Vitae available Online Bio BIO Donald Ervin Knuth is an American computer scientist, mathematician, and Professor Emeritus at Stanford University. He is the author of the multi-volume work The Art of Computer Programming and has been called the "father" of the analysis of algorithms. He contributed to the development of the rigorous analysis of the computational complexity of algorithms and systematized formal mathematical techniques for it. In the process he also popularized the asymptotic notation. In addition to fundamental contributions in several branches of theoretical computer science, Knuth is the creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system, and the Computer Modern family of typefaces. As a writer and scholar,[4] Knuth created the WEB and CWEB computer programming systems designed to encourage and facilitate literate programming, and designed the MIX/MMIX instruction set architectures. As a member of the academic and scientific community, Knuth is strongly opposed to the policy of granting software patents. He has expressed his disagreement directly to the patent offices of the United States and Europe. (via Wikipedia) ACADEMIC APPOINTMENTS • Professor Emeritus, Computer Science HONORS AND AWARDS • Grace Murray Hopper Award, ACM (1971) • Member, American Academy of Arts and Sciences (1973) • Turing Award, ACM (1974) • Lester R Ford Award, Mathematical Association of America (1975) • Member, National Academy of Sciences (1975) 5 OF 44 PROFESSIONAL EDUCATION • PhD, California Institute of Technology , Mathematics (1963) PATENTS • Donald Knuth, Stephen N Schiller. "United States Patent 5,305,118 Methods of controlling dot size in digital half toning with multi-cell threshold arrays", Adobe Systems, Apr 19, 1994 • Donald Knuth, LeRoy R Guck, Lawrence G Hanson.
    [Show full text]
  • X E TEX Live
    X TE EX Live Jonathan Kew SIL International Horsleys Green High Wycombe Bucks HP14 3XL, England jonathan_kew (at) sil dot org 1 X TE EX in TEX Live in the preamble are sufficient to set the typefaces through- out the document. ese fonts were installed by simply e release of TEX Live 2007 marked a milestone for the dropping the .otf or .ttf files in the computer’s Fonts X TE EX project, as the first major TEX distribution to in- folder; no .tfm, .fd, .sty, .map, or other TEX-related files clude X TE EX (version 0.996) as an integral part. Prior to had to be created or installed. this, X TE EX was a tool that could be added to a TEX setup, Release 0.996 of X T X also provides some enhance- but version and configuration differences meant that it was E E ments over earlier, pre-T X Live versions. In particular, difficult to ensure smooth integration in all cases, and it was E there are new primitives for low-level access to glyph infor- only available for users who specifically chose to seek it out mation (useful during font development and testing); some and install it. (One exception to this is the MacTEX pack- preliminary support for the use of OpenType math fonts age, which has included X TE EX for the past year or so, but (such as the Cambria Math font shipped with MS Office this was just one distribution on one platform.) Integration 2007); and a variety of bug fixes.
    [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]
  • Tlaunch: a Launcher for a TEX Live System
    TLaunch: a launcher for a TEX Live system Siep Kroonenberg June 29, 2017 This manual is for tlaunch, the TEX Live Launcher, version 0.5.3. Copyright © 2017 Siep Kroonenberg. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. Contents 1 The launcher5 1.1 Introduction............................5 1.1.1 Localization........................6 1.2 Modes...............................6 1.2.1 Normal mode.......................6 1.2.2 Initializing.........................6 1.2.3 Forgetting.........................6 1.3 Using scripts............................7 1.4 The ini file.............................7 1.4.1 Location..........................7 1.4.2 Encoding..........................7 1.4.3 Syntax...........................7 1.4.4 The Strings section....................9 1.4.5 Sections for filetype associations (FTAs)........9 1.4.6 Sections for utility scripts................ 10 1.4.7 The built-in functions.................. 10 1.4.8 Menus and buttons.................... 11 1.4.9 The General section.................... 12 1.5 Editor choice............................ 12 1.6 Launcher-based installations................... 13 1.6.1 The tlaunchmode script................. 14 1.6.2 TEX Live Manager..................... 14 2 The launcher at the RUG 15 2.1 Historical.............................. 15 2.2 RES desktops........................... 16 2.3 Components of the rug TEX installation............ 16 2.4 Directory organization...................... 17 2.5 Fixes for add-ons......................... 17 2.5.1 TeXnicCenter....................... 17 2.5.2 TeXstudio......................... 18 2.5.3 SumatraPDF........................ 18 2.5.4 LyX............................. 18 3 CONTENTS 4 2.6 Moving the XeTEX font cache.................
    [Show full text]
  • 236 Tugboat, Volume 9 (1988), No. 3 Some Typesetting Conventions
    236 TUGboat, Volume 9 (1988), No. 3 Some Typesetting Conventions suitability to contents Graeme McKinstry, Not all these factors are equal in their effect on readability University of Otago, nor are all the factors within your control but it is possible New Zealand. to use some of the above factors to make your documents more readable. One of the major advantages of T@ is that it makes it possible for authors to typeset their own work. However, Typeface and size of type this new found power has not been automatically asso- There are two broad classes of fonts: serif ("serifs" are ciated with a knowledge of typesetting and typographic the finishing strokes at the end of letters) and sans-serif design and so some very unreadable documents have en- (without serifs, e.g., fonts such as Helvetica). Of the sued. This is further exacerbated by authors believing two, serif fonts (such as Computer Modem, and Times- they do know something about typesetting ("Doesn't ev- Roman) are easier to read for large quantities of text, eryone?") and ignoring all attempts to lead them in the "because it has been shown that we read our own lan- right direction, e.g., LV@. guage not letter by letter but by recognizing the shapes Although TEX users are less prone to fall into this of words . " [31. The serifs tend to help in this "shape trap as compared to your average WYSIWYG user there are recognition". For example try to decipher the following still some fundamental typographic lessons to be learned. two lines (they don't form words): These principles are so fundamental that even a com- puting consultant, such as myself, is able to learn, and possibly even more importantly, understand why we have them.
    [Show full text]
  • The Luacode Package
    The luacode package Manuel Pégourié-Gonnard <[email protected]> v1.2a 2012/01/23 Abstract Executing Lua code from within TEX with \directlua can sometimes be tricky: there is no easy way to use the percent character, counting backslashes may be hard, and Lua comments don’t work the way you expect. This package provides the \luaexec command and the luacode(*) environments to help with these problems, as well as helper macros and a debugging mode. Contents 1 Documentation1 1.1 Lua code in LATEX...................................1 1.2 Helper macros......................................3 1.3 Debugging........................................3 2 Implementation3 2.1 Preliminaries......................................4 2.2 Internal code......................................5 2.3 Public macros and environments...........................7 3 Test file 8 1 Documentation 1.1 Lua code in LATEX For an introduction to the most important gotchas of \directlua, see lualatex-doc.pdf. Before presenting the tools in this package, let me insist that the best way to manage a non- trivial piece of Lua code is probably to use an external file and source it from Lua, as explained in the cited document. \luadirect First, the exact syntax of \directlua has changed along version of LuaTEX, so this package provides a \luadirect command which is an exact synonym of \directlua except that it doesn’t have the funny, changing parts of its syntax, and benefits from the debugging facilities described below (1.3).1 The problems with \directlua (or \luadirect) are mainly with TEX special characters. Actually, things are not that bad, since most special characters do work, namely: _, ^, &, $, {, }. Three are a bit tricky but they can be managed with \string: \, # and ~.
    [Show full text]
  • The TEX Live Guide TEX Live 2012
    The TEX Live Guide TEX Live 2012 Karl Berry, editor http://tug.org/texlive/ June 2012 Contents 1 Introduction 2 1.1 TEX Live and the TEX Collection...............................2 1.2 Operating system support...................................3 1.3 Basic installation of TEX Live.................................3 1.4 Security considerations.....................................3 1.5 Getting help...........................................3 2 Overview of TEX Live4 2.1 The TEX Collection: TEX Live, proTEXt, MacTEX.....................4 2.2 Top level TEX Live directories.................................4 2.3 Overview of the predefined texmf trees............................5 2.4 Extensions to TEX.......................................6 2.5 Other notable programs in TEX Live.............................6 2.6 Fonts in TEX Live.......................................7 3 Installation 7 3.1 Starting the installer......................................7 3.1.1 Unix...........................................7 3.1.2 MacOSX........................................8 3.1.3 Windows........................................8 3.1.4 Cygwin.........................................9 3.1.5 The text installer....................................9 3.1.6 The expert graphical installer.............................9 3.1.7 The simple wizard installer.............................. 10 3.2 Running the installer...................................... 10 3.2.1 Binary systems menu (Unix only).......................... 10 3.2.2 Selecting what is to be installed...........................
    [Show full text]
  • Typesetting Chinese in XƎTEX: Zhspacing User's Manual
    Typesetting Chinese in XƎTEX: zhspacing user’s manual∗ Yin Diany 2016/05/14 Contents I zhspacing.sty 3 1 Introduction 3 2 Getting Started 3 3 Advanced Usage 5 3.1 Fonts ............................ 5 3.2 More on Fonts ....................... 7 3.3 Skips ............................ 7 3.4 Vertical Chinese ...................... 9 3.5 Compatibility ....................... 10 3.6 Working with other Chinese package .......... 10 ∗Revision: 2016/05/14. yLab. of Network Comm. System & Control, Univ. of Sci. & Tech. of China. 1 4 Getting zhspacing 11 II zhfont.sty 12 1 Introduction 12 2 Package Options 12 3 Provided Macros 12 4 Examples 13 III zhmath.sty 13 1 Introduction 13 2 Package Options 13 3 Provided Macros 14 4 Examples 15 2 File I zhspacing.sty 1 Introduction XƎTEX is a new TEX engine by Jonathan Kew and SIL International, which combines "-TEX with pervasive Unicode support and advanced font support1. Using XƎTEX, it is possible to typeset scripts of any languages whose glyphs are contained in the font in use, without the help of any extra packages, such as CJK2. However, XƎTEX itself does not solve all the problems. Some de- tails in Chinese typesetting have not been dealt with by XƎTEX, such as the automatic font switch between Chinese and Western characters, the skip adjustment of fullwidth punctuations, the automatic skip in- sertion between Chinese and Western characters or math formulas, etc. To meet the need of easy and high quality typesetting of Chinese documents using XƎTEX, the package zhspacing is coded, utilizing the new primitive of \XeTeXinterchartoks provided in XƎTEX ver- sion 0.997.
    [Show full text]
  • Zapfcoll Minikatalog.Indd
    Largest compilation of typefaces from the designers Gudrun and Hermann Zapf. Most of the fonts include the Euro symbol. Licensed for 5 CPUs. 143 high quality typefaces in PS and/or TT format for Mac and PC. Colombine™ a Alcuin™ a Optima™ a Marconi™ a Zapf Chancery® a Aldus™ a Carmina™ a Palatino™ a Edison™ a Zapf International® a AMS Euler™ a Marcon™ a Medici Script™ a Shakespeare™ a Zapf International® a Melior™ a Aldus™ a Melior™ a a Melior™ Noris™ a Optima™ a Vario™ a Aldus™ a Aurelia™ a Zapf International® a Carmina™ a Shakespeare™ a Palatino™ a Aurelia™ a Melior™ a Zapf book® a Kompakt™ a Alcuin™ a Carmina™ a Sistina™ a Vario™ a Zapf Renaissance Antiqua® a Optima™ a AMS Euler™ a Colombine™ a Alcuin™ a Optima™ a Marconi™ a Shakespeare™ a Zapf Chancery® Aldus™ a Carmina™ a Palatino™ a Edison™ a Zapf international® a AMS Euler™ a Marconi™ a Medici Script™ a Shakespeare™ a Zapf international® a Aldus™ a Melior™ a Zapf Chancery® a Kompakt™ a Noris™ a Zapf International® a Car na™ a Zapf book® a Palatino™ a Optima™ Alcuin™ a Carmina™ a Sistina™ a Melior™ a Zapf Renaissance Antiqua® a Medici Script™ a Aldus™ a AMS Euler™ a Colombine™ a Vario™ a Alcuin™ a Marconi™ a Marconi™ a Carmina™ a Melior™ a Edison™ a Shakespeare™ a Zapf book® aZapf international® a Optima™ a Zapf International® a Carmina™ a Zapf Chancery® Noris™ a Optima™ a Zapf international® a Carmina™ a Sistina™ a Shakespeare™ a Palatino™ a a Kompakt™ a Aurelia™ a Melior™ a Zapf Renaissance Antiqua® Antiqua® a Optima™ a AMS Euler™ a Introduction Gudrun & Hermann Zapf Collection The Gudrun and Hermann Zapf Collection is a special edition for Macintosh and PC and the largest compilation of typefaces from the designers Gudrun and Hermann Zapf.
    [Show full text]
  • Development of Computer Typesetting
    Early steps in computer typesetting in the 1960s Jonathan Seybold, September 2018 1961–1964 Michael Barnett’s “Experiments in Typesetting” In 1961, Michael Barnett, an associate professor at MIT wrote a computer program that could produce punched paper tape output to drive a phototypesetting machine. He used this to produce the “Tail” from Alice in Wonderland, and a phototypeset press release. These were the first documents that were phototypeset from output generated by a computer. In 1962 Barnett received a research grant to continue this experiments. This lead to development of the PC6 system, which was used to produce a variety of reports, pamphlets and other publications in late 1963 and early 1964.1 Hardware: IBM 709/90 computer and a Photon 560 phototypesetter. Software: Written in Fortran, with a few routines written in FAP (Fortran Assembler). Written for a specific Photon 560 set-up. Typefonts were identified by disk position and row number. The TYPRINT program for text output composed text to fit a predefined page width and depth. Lines were broken after the last complete word that would fit on that line. There was no attempt at hyphenation. Pages were arbitrarily broken after the last line that would fit on the page. Special commands could be embedded in the text to tie text elements together. When it encountered these, the program would simply make the page as long as necessary to accommodate all of the text in the “no break” area. Given the scientific academic setting, the most notable feature of TYPRINT was a program written by J.M.
    [Show full text]
  • Typographic Terms Alphabet the Characters of a Given Language, Arranged in a Traditional Order; 26 Characters in English
    Typographic Terms alphabet The characters of a given language, arranged in a traditional order; 26 characters in English. ascender The part of a lowercase letter that rises above the main body of the letter (as in b, d, h). The part that extends above the x-height of a font. bad break Refers to widows or orphans in text copy, or a break that does not make sense of the phrasing of a line of copy, causing awkward reading. baseline The imaginary line upon which text rests. Descenders extend below the baseline. Also known as the "reading line." The line along which the bases of all capital letters (and most lowercase letters) are positioned. bleed An area of text or graphics that extends beyond the edge of the page. Commercial printers usually trim the paper after printing to create bleeds. body type The specific typeface that is used in the main text break The place where type is divided; may be the end of a line or paragraph, or as it reads best in display type. bullet A typeset character (a large dot or symbol) used to itemize lists or direct attention to the beginning of a line. (See dingbat.) cap height The height of the uppercase letters within a font. (See also cap line.) caps and small caps The typesetting option in which the lowercase letters are set as small capital letters; usually 75% the height of the size of the innercase. Typographic Terms character A symbol in writing. A letter, punctuation mark or figure. character count An estimation of the number of characters in a selection of type.
    [Show full text]
  • Agda User Manual Release 2.6.3
    Agda User Manual Release 2.6.3 The Agda Team Sep 23, 2021 Contents 1 Overview 3 2 Getting Started 5 2.1 What is Agda?..............................................5 2.2 Installation................................................7 2.3 ‘Hello world’ in Agda.......................................... 13 2.4 A Taste of Agda............................................. 14 2.5 A List of Tutorials............................................ 22 3 Language Reference 25 3.1 Abstract definitions............................................ 25 3.2 Built-ins................................................. 27 3.3 Coinduction............................................... 40 3.4 Copatterns................................................ 42 3.5 Core language.............................................. 45 3.6 Coverage Checking............................................ 48 3.7 Cubical.................................................. 51 3.8 Cumulativity............................................... 65 3.9 Data Types................................................ 66 3.10 Flat Modality............................................... 69 3.11 Foreign Function Interface........................................ 70 3.12 Function Definitions........................................... 75 3.13 Function Types.............................................. 78 3.14 Generalization of Declared Variables.................................. 79 3.15 Guarded Cubical............................................. 84 3.16 Implicit Arguments...........................................
    [Show full text]