<<

10 TUGboat, Volume 34 (2013), No. 1

Fonts! ! Fonts! QUATTROCENTO Bob Tennent A Classic Roman dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu- Abstract lum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus et Discussion of four new packages and a revamped netus et malesuada fames ac turpis egestas. font package, with notes on the implementation of the support packages. QUATTROCENTOSANS 1 Introduction A Classic, Elegant & Sober Typeface Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu- Several new font-support packages (with fonts in- lum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehic- cluded) have been installed at CTAN recently and ula augue eu neque. Pellentesque habitant morbi tristique senectus et netus et adopted by distributions such as TEX Live and MiK- malesuada fames ac turpis egestas. T X. The primary reason for this outburst is that E rently available; for now, the quattrocento package the Google Web Fonts (GWF) site1 has provided a activates artificially slanted variants. focal for both amateur and professional font Quattrocento Sans is described as warm, read- developers to distribute liberally-licensed fonts. A able and not intrusive; it is said to be the perfect second reason is that the freely-available fontforge2 sans- companion for Quattrocento. It is the main font editing software and the lcdftypetools and body font at Impallari’s own website.3 Quattrocento autoinst packages now provide the tools necessary Sans currently has regular, bold, italic and bold-italic to provide LAT X support for new modern fonts rela- E variants. The quattrocento package activates both tively easily; this technology has also been used to of the Quattrocento families by default, but options revamp the widely-used libertine package, which allow selecting just one of them. had been abandoned by its original developer. This article will discuss the following packages: 2.1.2 Cabin and Cabin Condensed • quattrocento C a b i n • cabin A Humanist Sans with a Touch of Modernism • librebaskerville Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum • ebgaramond ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue • libertine eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada but it should be noted that there are two other impor- fames ac turpis egestas. tant GWF-derived packages: opensans (supporting Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, plac- erat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy the family, designed by of eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habi- ) and sourcesanspro (support- tant morbi tristique senectus et netus et malesuada fames ac turpis egestas. ing the Source Sans Pro family, designed by Paul D. Hunt of Adobe Systems). Impallari describes Cabin as a humanist sans inspired by Edward Johnston’s and ’s , with 2 Font packages a touch of modernism; it incorporates modern pro- portions, optical adjustments, and some elements of 2.1 Fonts by Pablo Impallari the geometric sans. Pablo Impallari is a young Argentinian typeface de- Cabin currently has four weights (regular, bold, signer and font developer. He is a professional but medium, and semibold) and designed italic variants believes in “open-doors” , and encourages of all of these; furthermore there are four condensed participation in font development. variants. All of these have designed small capitals. 2.1.1 Quattrocento and Quattrocento Sans 2.1.3 Libre Impallari describes Quattrocento as a classic, ele- Libre Baskerville is apparently based on 1941 spec- gant, sober and strong typeface; the wide and open imens produced by the letterforms, and great x-height, make it very legible Company, but has a taller x height, wider counters for at small sizes, and the tiny details that and minor contrast to allow it to work at small sizes only show up at bigger sizes make it also great for on any screen. display use. Only regular and bold variants are cur- There is a designed italic and a bold, but cur- rently there is no bold-italic variant; an artificially 1 http://www.google.com/webfonts 2 http://fontforge.org/ 3 http://www.impallari.com

Bob Tennent TUGboat, Volume 34 (2013), No. 1 11

3 Implementation notes LIBREBASKERVILLE 3.1 Introduction Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dic- tum gravida mauris. Nam arcu libero, nonummy eget, consectetuer Traditionally, font-support packages have relied on id, vulputate a, magna. Donec vehicula augue eu neque. Pellen- fontinst; this package assumes Type 1 (Postscript) tesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. font format, which commercially is increasingly con-

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, sidered to be a legacy format. It is possible to use vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. fontforge or other software to convert a TrueType Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senec- or OpenType font to Type 1 format and re-encode tus et netus et malesuada fames ac turpis egestas. it to, say, Adobe encoding, but incorporating fea- slanted version of the bold variant is substituted by tures such as old-style figures or small capitals is the librebaskerville package. a rather painful process, described in full detail in the fontinstallationguide document available 2.2 Egenolff-Berner at CTAN. The otftotfm program of the lcdftypetools egenolff-berner garamond package will convert an OpenType font to Type 1 Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, plac- erat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy format and generate font metrics, virtual fonts, and eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque encoding vectors for use with conventional LAT X - habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. E gines, including support for small capitals, old-style Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, non- figures, titling , superior figures, glyphs, ummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. and so on, when these features are provided by the font. And the autoinst script in the fontools Georg Duffner is a Viennese graduate student of package will process an entire family of fonts us- Romance philology. He has begun a project4 of ing otftotfm, producing also the fd files (in any digitizing fonts by and Robert choice of encodings) needed by LATEX. 5 Granjon on a famous type specimen issued in 1592 It is true that emerging technologies (X LE ATEX by the Egenolff-Berner foundry in Frankfurt. At and LuaLATEX) make it possible for users to access present, only regular and italic variants are available, all the features of modern fonts directly, but using but they include designed small-caps and old-style radically different font-specification mechanisms pro- figures, both tabular and proportional. Also, some vided by the fontspec package. This is not a viable swash italics and decorative are available. approach for processing legacy documents. A solution to this dilemma is to implement a 2.3 and Biolinum support package that, as much as possible, com- LINUXLIBERTINE patibly supports both traditional processing engines (LAT X, pdfLAT X) and emerging technologies based orem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu- E E lum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. on fontspec. For example, any current LATEX engine LNam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. produces the Quattrocento sample of the preceding section from the following input:

Linux Biolinum \documentclass{article} Iam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi auctor lorem \usepackage{quattrocento} non justo. Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, vitae ornare odio \begin{document} metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut massa. \thispagestyle{empty} \begin{center}\huge These families of fonts are designed by Philipp H. \,U\,A\,T\,T\,R\,O\,C\,E\,N\,T\,O 6 Poll, and include regular, italic, bold, and semibold \\ \Large variants of Linux Libertine, including small-caps and A Classic Roman Typeface old-style figures; regular, bold and italic variants \end{center} of Linux Biolinum (a compatible sans-serif family), \par\noindent also including small-caps and old-style figures; plus Lorem ipsum dolor sit amet, consectetuer a , a display font, decorative initials adipiscing elit. Ut purus elit, vestibulum and a font of keyboard glyphs. ... \end{document} 4 http://georgduffner.at/ebgaramond 5 http://image.linotype.com/files/pdf/specimen.pdf As we shall see, it is relatively straightforward to 6 http://www.linuxlibertine.org/ implement this approach.

Fonts! Fonts! Fonts! 12 TUGboat, Volume 34 (2013), No. 1

For concreteness, we give detailed instructions 3.4 Renaming the encoding files for re-constructing the quattrocento package. We The otftotfm program generates encoding files with assume a Unix-like system and that current ver- filenames of the form a_xxxxxx; to avoid possible sions of fontools, lcdftypetools and fontforge filename conflicts with other packages, the files in (or comparable font-editing software) are available. texmf/fonts/enc/dvips/quattrocento 3.2 Accessing and converting the fonts should be re-named (use a small script) to have a The “source” fonts may be downloaded from the distinctive prefix, such as qtrcnt_. Then, in the two GWF site (or others7); one should get complete fonts map files in rather than subsets. The fonts distributed for Quat- texmf/fonts/map/dvips/quattrocento trocento and its Sans counterparts are in TrueType all instances of a_ should be changed to qtrcnt_. format; to support latex → dvips processing, they The map files may then be merged into a single file, should be converted to otf format in fontforge as say, quattrocento.map. follows: 3.5 Generating Type 1 fonts File → Generate Fonts → OpenType (CFF) → Save There are “missing” variants for Quattrocento The otftotfm function called by autoinst will use (no italics); generate an artificially slanted font as a cfftot1 to create pfb files with appropriate internal substitute as follows: names and filenames, and autoinst will install these in Edit → Select → Select All texmf/fonts/type1/impallari/quattrocento/ Element → Style → Oblique → OK but if more than one font family has been processed Then change the FontName to, for example, or if cfftot1 runs into trouble with some glyphs, Quattrocento-Italic this may not happen. In that case, one must do and the “Name For Humans” to the conversion font-by-font using either cfftot1 or Quattrocento Italic fontforge, which is less sensitive than cfftot1 to as follows: bad programs. The internal names and file- names must be those specified in the corresponding Element → Font Info map file or dvips will fail. Finally, set the italic angle as follows: 3.6 Editing LAT X support files General → Italic Angle Guess → OK E Then generate the corresponding OpenType font. The autoinst script will generate a large number of Note that some discretion is advisable in gener- files with .fd extensions in the ating artificial substitutes. My attempt to produce texmf/tex/latex/quattrocento/ artificially emboldened variants for ebgaramond was directory. Recent versions of autoinst will generate (justifiably) vetoed as undesirable by the designer, “silent substitution” rules for mapping sl to it and whereas artificially slanted or emboldened variants bx to b; if not, these should be added by hand. of a monospaced font should be acceptable. The autoinst script will also have generated a file with .sty extension for each of the font fam- A 3.3 Generating LTEX support files ilies; however, these do not support direct use of To generate support files in a texmf tree for Quattro- OpenType fonts by X LE ATEX and LuaLATEX, and it cento, put the relevant otf files in a directory and is necessary to generate a style file suitable for all execute LATEX engines “by hand”. The basic idea is to use autoinst -target=./texmf \ traditional settings such as -encoding=OT1,T1,LY1,TS1 \ \renewcommand*\rmdefault{Quattrocento-TLF} -vendor=impallari -typeface=quattrocento \ \renewcommand*\sfdefault{QuattrocentoSans-TLF} -noupdmap \ for Type 1 support, and compatible fontspec set- *.otf tings such as Then create the directory \defaultfontfeatures { texmf/fonts//impallari/quattrocento/ Ligatures=TeX , and move the otf files there. Repeat as above with Extension = .otf the otf files for Quattrocento Sans. } \setmainfont[ UprightFont = * , 7 http://www.fontsquirrel.com/ ItalicFont = *-Italic ,

Bob Tennent TUGboat, Volume 34 (2013), No. 1 13

BoldFont = *-Bold , 4 Linux Libertine and Biolinum redux BoldItalicFont = *-BoldItalic ] These fonts were fully supported for both traditional {Quattrocento} and emerging processing engines for some time and \setsansfont[ Scale = \QuattrocentoSans@scale, A UprightFont = * , have been very popular; however, the LTEX and A ItalicFont = *-Italic , pdfLTEX support used fontinst, and when the orig- BoldFont = *-Bold , inal developer abandoned the project and the up- BoldItalicFont = *-BoldItalic ] stream fonts were updated, it became impractical to {QuattrocentoSans} maintain the original package. for OpenType support. It has been possible to use autoinst as de- Initially, the choice between Type 1 and Open- scribed above to create a new libertine package Type support is determined by the processing engine: which provides reasonable support for traditional engines (including the display and fonts), and \ifxetex\quattrocento@otftrue \else\ifluatex\quattrocento@otftrue fairly complete support for emerging engines (includ- \else\quattrocento@otffalse % [pdf]LaTeX ing commands to generate arbitrary glyphs). Com- \fi\fi plete details and notes on the implementation may be found in an Appendix of the package documen- however, some users of X LE ATEX or LuaLATEX may tation.9 The last version of the original prefer to avoid fontspec, so an option is provided libertine A to allow this to be changed: package (now called libertineotf, for LuaLTEX and X LE ATEX users only) is still available at CTAN. \DeclareOptionX{type1}{\quattrocento@otffalse} After all the options have been processed, the choice 5 Discussion of settings may be made as follows: To conclude, here are links on CTAN to package \ifquattrocento@otf information for the above fonts and software: ... • http://ctan.org/pkg/quattrocento \else • http://ctan.org/pkg/cabin ... • http://ctan.org/pkg/ebgaramond \fi • http://ctan.org/pkg/librebaskerville The full quattrocento.sty file may be viewed • http://ctan.org/pkg/libertine by installing quattrocento, or at CTAN;8 Here we • http://ctan.org/pkg/libertineotf briefly discuss some issues. • http://ctan.org/pkg/fontools (for autoinst) • http://ctan.org/pkg/fontspec • autoinst generates support files for “superior” • http://ctan.org/pkg/lcdf-typetools (i.e., superscript) figures, but the Quattrocento fonts provide only figures 1, 2 and 3, so the style I hope the reader will find some of the newly available file should ignore these. See ebgaramond.sty font packages of interest for their LATEX documents for an example of support of superior, old-style and may also be inspired to add to the repertoire of and proportional figures and swash italics. LATEX-ready fonts with support packages suitable for • The \...@scale commands are invoked in the both traditional and emerging processing engines. fd files or when specifying fonts with fontspec; Acknowledgements but only the scale factor for Quattrocento Sans is adjustable using an option parameter. I would like to thank Karl Berry, Georg Duffner, Silke Hofstra, Khaled Hosny, Eddie Kohler, • If the sfdefault option has been invoked, \let Marc Penninga, Michael Sharpe, and Herbert Voss is used to set \familydefault to the current for their assistance and suggestions. value of \sfdefault (without change to the value of \rmdefault).  Bob Tennent • The final step is to remove all default font fea- School of Computing tures in fontspec, in case other fonts will be Queen’s University activated by the user. Kingston, K7K3S7 Ontario, Canada rdtennent (at) gmail dot com

8 http://mirror.ctan.org/fonts/quattrocento/latex/ 9 http://mirror.ctan.org/fonts/libertine/libertine. quattrocento.sty pdf

Fonts! Fonts! Fonts!