{"course":{"slug":"vector-and-print","title":"Vectors, Logos and Things That Get Printed","url":"https://addaly.com/learn/vector-and-print","level":"beginner","track":"create"},"lesson":{"slug":"figures-dashes-and-missing-glyphs","title":"Figures, dashes and the characters nobody checks","url":"https://addaly.com/learn/vector-and-print/figures-dashes-and-missing-glyphs","position":25,"of":73,"minutes":8,"answer":"Quotes, the three dashes, tabular versus proportional figures, the rupee sign's patchy coverage and silent font substitution are the details that separate set type from typed text.","keyIdea":"Quotes, the three dashes, tabular versus proportional figures, the rupee sign's patchy coverage and silent font substitution are the details that separate set type from typed text, and each has a specific check you can run in seconds."},"body":{"format":"markdown","text":"## The small marks that make work look amateur\n\nType is mostly letters, and the things that give away an untrained setting are mostly not letters.\n\n## Quotes\n\n`'` and `\"` are typewriter marks. Real typography uses `'` `'` and `\"` `\"`, and in some languages `„ \"` or `« »`.\n\nTurn on smart quotes and then check the exceptions, because smart-quote logic guesses from context and guesses wrong on an elided year (`'09` needs a right single quote, not a left one) and on a measurement (`5' 6\"` needs the straight primes `′` and `″`, which are different characters again).\n\nWhere: InDesign ▸ Preferences ▸ Type ▸ Use Typographer's Quotes. Inkscape has none; type them directly or paste. On Linux and with a compose key set, `compose \" <` gives `\"`.\n\n## Dashes\n\nThree different characters for three different jobs:\n\n- **Hyphen** `-` joins words and breaks them at line ends. `well-made`.\n- **En dash** `–` (the width of an `n`) spans a range and joins equal things. `1998–2004`, `Delhi–Mumbai`. **Alt+Shift+-** in InDesign, `U+2013`.\n- **Em dash** `—` (the width of an `m`) breaks a sentence. `She paused — then agreed`. **Alt+Shift+Ctrl+-**, `U+2014`.\n\nUsing a hyphen for a date range is the single most common typographic error in print, and it is one keystroke to fix.\n\n## Figures\n\nMost OpenType text faces carry more than one set of numerals:\n\n- **Lining figures**: all the height of a capital. Correct in tables, in all-caps settings, and on a form.\n- **Oldstyle (text) figures**: with ascenders and descenders, like lowercase. Correct in running prose, where lining figures shout.\n- **Tabular**: every figure the same width, so columns line up. Essential in a price list, a timetable, any set of numbers stacked vertically.\n- **Proportional**: each figure its natural width. Better in a sentence.\n\nA price list set in proportional figures will not align, no matter how many tabs you add, because the `1` is narrower than the `8`. Switch to tabular figures and the problem disappears. InDesign: Character panel menu ▸ OpenType ▸ Tabular Lining. In CSS it is `font-variant-numeric: tabular-nums`. Inkscape exposes OpenType features in the Text and Font dialog's *Features* tab in 1.x.\n\n## Currency and the rupee sign\n\n`₹` is `U+20B9`, adopted in 2010. Fonts released before then do not have it, and fonts released after do not all have it. When it is missing you get a box, or worse, a silent fallback to a different typeface for that one character, so the price is set in Arial while the rest of the line is set in your display face.\n\nCheck before you commit to a face. Set `₹1,29,999` and look at it. Note also the Indian digit grouping: two, two, three from the right, not three-three-three. `12,34,567` not `1,234,567`. No software does this automatically; you type it.\n\n## The missing-glyph fallback, which hides itself\n\nWhen a font lacks a character, applications do one of two things and only one of them is honest.\n\n- **Show `.notdef`**: the empty or crossed box. Obvious, easy to fix.\n- **Silently substitute another font** for that character. The text looks fine at a glance and one character is in the wrong typeface.\n\nInDesign highlights substituted glyphs in pink if Preferences ▸ Composition ▸ *Highlight Substituted Glyphs* is on. Turn it on. In other applications, the check is `pdffonts` on the exported PDF: if a font you did not choose is listed, something substituted.\n\n## Ligatures, and when to switch them off\n\n`fi`, `fl`, `ffi` are drawn as single glyphs so the `f` hood does not collide with the dot of the `i`. Leave them on for body text.\n\nSwitch them off when you are tracking a word heavily (a ligature does not separate, so a tracked-out `FLAT` keeps its `fl` welded together) and check them in a script or display face, where discretionary ligatures can be applied automatically and produce something you did not intend in a client's name.\n\n## The five-second check\n\nBefore any file goes out: search the text for a straight apostrophe, search for a hyphen with spaces around it, and set one line of figures to see whether they align. Three searches, and they catch most of what an experienced eye would notice immediately."},"check":{"question":"A price list is set with tab stops, but the numbers in the column still do not line up: some rows sit slightly left, others slightly right. The tabs are correctly set to right-align. What is actually wrong?","options":[{"text":"The tab character is being typeset at the font's default space width rather than advancing to the stop.","correct":false,"tempting":"A right-aligned tab stop positions the following text at the stop regardless of the tab's own width; the space the tab occupies is not what varies here."},{"text":"The paragraph is justified, so word spacing is being stretched differently on each line.","correct":false,"tempting":"Justification stretches spaces between words within the measure; a right tab stop is an absolute position and is not affected."},{"text":"The font is using proportional figures, so each numeral has a different advance width and the digits do not stack.","correct":true},{"text":"The figures are oldstyle, so some digits carry descenders and appear to sit at slightly different heights in the column.","correct":false,"tempting":"Oldstyle figures vary in height, not in horizontal position, so they would look uneven vertically rather than misaligned across the column."}]},"prev":{"slug":"complex-scripts","title":"Devanagari, Arabic, and the scripts that break","url":"https://addaly.com/learn/vector-and-print/complex-scripts"},"next":{"slug":"variable-fonts-in-print","title":"Variable fonts, and what a press does with one","url":"https://addaly.com/learn/vector-and-print/variable-fonts-in-print"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Figures, dashes and the characters nobody checks', in Vectors, Logos and Things That Get Printed. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/vector-and-print/figures-dashes-and-missing-glyphs (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Figures, dashes and the characters nobody checks","courseTitle":"Vectors, Logos and Things That Get Printed","module":{"index":3,"slug":"type-as-shape","title":"Type, which is also vector"},"answer":null,"keyIdea":"Quotes, the three dashes, tabular versus proportional figures, the rupee sign’s patchy coverage and silent font substitution are the details that separate set type from typed text, and each has a specific check you can run in seconds.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"the-small-marks-that-make-work-look-amateur","runs":[{"text":"The small marks that make work look amateur"}]},{"t":"p","runs":[{"text":"Type is mostly letters, and the things that give away an untrained setting are mostly not letters."}]},{"t":"h2","id":"quotes","runs":[{"text":"Quotes"}]},{"t":"p","runs":[{"text":"'","code":true},{"text":" and "},{"text":"\"","code":true},{"text":" are typewriter marks. Real typography uses "},{"text":"'","code":true},{"text":" "},{"text":"'","code":true},{"text":" and "},{"text":"\"","code":true},{"text":" "},{"text":"\"","code":true},{"text":", and in some languages "},{"text":"„ \"","code":true},{"text":" or "},{"text":"« »","code":true},{"text":"."}]},{"t":"p","runs":[{"text":"Turn on smart quotes and then check the exceptions, because smart-quote logic guesses from context and guesses wrong on an elided year ("},{"text":"'09","code":true},{"text":" needs a right single quote, not a left one) and on a measurement ("},{"text":"5' 6\"","code":true},{"text":" needs the straight primes "},{"text":"′","code":true},{"text":" and "},{"text":"″","code":true},{"text":", which are different characters again)."}]},{"t":"p","runs":[{"text":"Where: InDesign ▸ Preferences ▸ Type ▸ Use Typographer’s Quotes. Inkscape has none; type them directly or paste. On Linux and with a compose key set, "},{"text":"compose \" <","code":true},{"text":" gives "},{"text":"\"","code":true},{"text":"."}]},{"t":"h2","id":"dashes","runs":[{"text":"Dashes"}]},{"t":"p","runs":[{"text":"Three different characters for three different jobs:"}]},{"t":"ul","items":[[{"text":"Hyphen","b":true},{"text":" "},{"text":"-","code":true},{"text":" joins words and breaks them at line ends. "},{"text":"well-made","code":true},{"text":"."}],[{"text":"En dash","b":true},{"text":" "},{"text":"–","code":true},{"text":" (the width of an "},{"text":"n","code":true},{"text":") spans a range and joins equal things. "},{"text":"1998–2004","code":true},{"text":", "},{"text":"Delhi–Mumbai","code":true},{"text":". "},{"text":"Alt+Shift+-","b":true},{"text":" in InDesign, "},{"text":"U+2013","code":true},{"text":"."}],[{"text":"Em dash","b":true},{"text":" "},{"text":"—","code":true},{"text":" (the width of an "},{"text":"m","code":true},{"text":") breaks a sentence. "},{"text":"She paused — then agreed","code":true},{"text":". "},{"text":"Alt+Shift+Ctrl+-","b":true},{"text":", "},{"text":"U+2014","code":true},{"text":"."}]]},{"t":"p","runs":[{"text":"Using a hyphen for a date range is the single most common typographic error in print, and it is one keystroke to fix."}]},{"t":"h2","id":"figures","runs":[{"text":"Figures"}]},{"t":"p","runs":[{"text":"Most OpenType text faces carry more than one set of numerals:"}]},{"t":"ul","items":[[{"text":"Lining figures","b":true},{"text":": all the height of a capital. Correct in tables, in all-caps settings, and on a form."}],[{"text":"Oldstyle (text) figures","b":true},{"text":": with ascenders and descenders, like lowercase. Correct in running prose, where lining figures shout."}],[{"text":"Tabular","b":true},{"text":": every figure the same width, so columns line up. Essential in a price list, a timetable, any set of numbers stacked vertically."}],[{"text":"Proportional","b":true},{"text":": each figure its natural width. Better in a sentence."}]]},{"t":"p","runs":[{"text":"A price list set in proportional figures will not align, no matter how many tabs you add, because the "},{"text":"1","code":true},{"text":" is narrower than the "},{"text":"8","code":true},{"text":". Switch to tabular figures and the problem disappears. InDesign: Character panel menu ▸ OpenType ▸ Tabular Lining. In CSS it is "},{"text":"font-variant-numeric: tabular-nums","code":true},{"text":". Inkscape exposes OpenType features in the Text and Font dialog’s "},{"text":"Features","i":true},{"text":" tab in 1.x."}]},{"t":"h2","id":"currency-and-the-rupee-sign","runs":[{"text":"Currency and the rupee sign"}]},{"t":"p","runs":[{"text":"₹","code":true},{"text":" is "},{"text":"U+20B9","code":true},{"text":", adopted in 2010. Fonts released before then do not have it, and fonts released after do not all have it. When it is missing you get a box, or worse, a silent fallback to a different typeface for that one character, so the price is set in Arial while the rest of the line is set in your display face."}]},{"t":"p","runs":[{"text":"Check before you commit to a face. Set "},{"text":"₹1,29,999","code":true},{"text":" and look at it. Note also the Indian digit grouping: two, two, three from the right, not three-three-three. "},{"text":"12,34,567","code":true},{"text":" not "},{"text":"1,234,567","code":true},{"text":". No software does this automatically; you type it."}]},{"t":"h2","id":"the-missing-glyph-fallback-which-hides-itself","runs":[{"text":"The missing-glyph fallback, which hides itself"}]},{"t":"p","runs":[{"text":"When a font lacks a character, applications do one of two things and only one of them is honest."}]},{"t":"ul","items":[[{"text":"Show ","b":true},{"text":".notdef","b":true,"code":true},{"text":": the empty or crossed box. Obvious, easy to fix."}],[{"text":"Silently substitute another font","b":true},{"text":" for that character. The text looks fine at a glance and one character is in the wrong typeface."}]]},{"t":"p","runs":[{"text":"InDesign highlights substituted glyphs in pink if Preferences ▸ Composition ▸ "},{"text":"Highlight Substituted Glyphs","i":true},{"text":" is on. Turn it on. In other applications, the check is "},{"text":"pdffonts","code":true},{"text":" on the exported PDF: if a font you did not choose is listed, something substituted."}]},{"t":"h2","id":"ligatures-and-when-to-switch-them-off","runs":[{"text":"Ligatures, and when to switch them off"}]},{"t":"p","runs":[{"text":"fi","code":true},{"text":", "},{"text":"fl","code":true},{"text":", "},{"text":"ffi","code":true},{"text":" are drawn as single glyphs so the "},{"text":"f","code":true},{"text":" hood does not collide with the dot of the "},{"text":"i","code":true},{"text":". Leave them on for body text."}]},{"t":"p","runs":[{"text":"Switch them off when you are tracking a word heavily (a ligature does not separate, so a tracked-out "},{"text":"FLAT","code":true},{"text":" keeps its "},{"text":"fl","code":true},{"text":" welded together) and check them in a script or display face, where discretionary ligatures can be applied automatically and produce something you did not intend in a client’s name."}]},{"t":"h2","id":"the-five-second-check","runs":[{"text":"The five-second check"}]},{"t":"p","runs":[{"text":"Before any file goes out: search the text for a straight apostrophe, search for a hyphen with spaces around it, and set one line of figures to see whether they align. Three searches, and they catch most of what an experienced eye would notice immediately."}]}],"check":{"question":[{"text":"A price list is set with tab stops, but the numbers in the column still do not line up: some rows sit slightly left, others slightly right. The tabs are correctly set to right-align. What is actually wrong?"}],"options":[{"text":[{"text":"The tab character is being typeset at the font’s default space width rather than advancing to the stop."}],"correct":false,"tempting":[{"text":"A right-aligned tab stop positions the following text at the stop regardless of the tab’s own width; the space the tab occupies is not what varies here."}]},{"text":[{"text":"The paragraph is justified, so word spacing is being stretched differently on each line."}],"correct":false,"tempting":[{"text":"Justification stretches spaces between words within the measure; a right tab stop is an absolute position and is not affected."}]},{"text":[{"text":"The font is using proportional figures, so each numeral has a different advance width and the digits do not stack."}],"correct":true,"tempting":null},{"text":[{"text":"The figures are oldstyle, so some digits carry descenders and appear to sit at slightly different heights in the column."}],"correct":false,"tempting":[{"text":"Oldstyle figures vary in height, not in horizontal position, so they would look uneven vertically rather than misaligned across the column."}]}],"order":[3,2,0,1],"why":null},"prev":{"slug":"complex-scripts","title":"Devanagari, Arabic, and the scripts that break","minutes":10},"next":{"slug":"variable-fonts-in-print","title":"Variable fonts, and what a press does with one","minutes":8}}}