Skip to content
win edited this page Sep 6, 2018 · 62 revisions

Welcome to the Typography wiki!

good read:

http://www.antigrain.com/research/font_rasterization/

http://blog.typekit.com/2010/12/08/type-rendering-font-outlines-and-file-formats/

https://www.microsoft.com/typography/developers/opentype/default.htm

https://maxradi.us/documents/uniscribe/

https://blogs.msdn.microsoft.com/fontblog/2005/11/08/where-does-96-dpi-come-from-in-windows/

https://github.com/deanhume/typography

https://www.tug.org/TUGboat/tb24-3/lemberg.pdf

https://medium.com/@tiro/https-medium-com-tiro-introducing-opentype-variable-fonts-12ba6cd2369#.4q4al52ar

https://www.microsoft.com/en-us/Typography/FontVariationsAnnouncement.aspx

http://v1.jontangerine.com/log/2007/10/smoothing-out-the-creases-in-web-fonts

http://www.creativebloq.com/typography/what-is-typography-123652

http://www.creativebloq.com/graphic-design-tips/best-free-fonts-for-designers-1233380

https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/how-to-obtain-font-metrics

https://damieng.com/blog/2013/06/02/typography-on-the-microsoft-campus

http://www.unicode.org/charts/PDF/U1D100.pdf

http://milde.users.sourceforge.net/LUCR/Math/


opentype

http://www.makeuseof.com/tag/otf-vs-ttf-fonts-one-better/

http://opentypecookbook.com/index.html

https://www.iro.umontreal.ca/~boyer/typophile/doc/lookups.html

https://msdn.microsoft.com/en-us/library/windows/desktop/dd374094(v=vs.85).aspx

https://www.typotheque.com/articles/hinting

https://simoncozens.github.io/fonts-and-layout/opentype.html

How Typography Determines Readability: Serif vs. Sans Serif, and How To Combine Fonts. https://medium.freecodecamp.org/how-typography-determines-readability-serif-vs-sans-serif-and-how-to-combine-fonts-629a51ad8cce

The-anatomy-of-a-thousand-typefaces https://medium.com/@getflourish/the-anatomy-of-a-thousand-typefaces-f7b9088eed1


SVG: text

https://www.w3.org/TR/SVG2/text.html


Pomax' CFF article

https://pomax.github.io/CFF-glyphlet-fonts/


triangulation

  • https://en.wikipedia.org/wiki/Delaunay_triangulation

  • Sweep-line algorithm for constrained Delaunay triangulation Authors: V. Domiter Department of Computer Science, Faculty of Electrical Engineering and Computer Sciences, University of Maribor, SI 2000 Maribor, Slovenia B. Zalik Department of Computer Science, Faculty of Electrical Engineering and Computer Sciences, University of Maribor, SI 2000 Maribor, Slovenia


git rebase

You rebase as usual.

git fetch
git checkout -b my-rebased-branch-name` # create new branch to avoid force pushing
git rebase upstream/master # rebase, this assumes you've got upstream remote setup.

Then you can push the branch as usual. :-)


others

http://typedrawers.com

http://kanji-database.sourceforge.net/fonts/opentype.html

http://ilovetypography.com/


true type hinting

http://www.truetype-typography.com/tthints.htm

http://blog.typekit.com/2010/12/14/a-closer-look-at-truetype-hinting/

https://www.microsoft.com/typography/hinting/tutorial.htm

https://www.microsoft.com/typography/otspec/ttinst.htm


fontTools note

fonttools


text shaping

http://www.panl10n.net/Presentations/Cambodia/Pema/LocalizationofLinux(Bhutan).pdf


I18N

http://chinese-characters.net/default.asp?roomx=FAQ

https://www.hebrewsyntax.org/bbh2/bbh2_supplement.pdf

.NET's Graphics.DrawString() VS TextRenderer.DrawText()

https://stackoverflow.com/questions/8283631/graphics-drawstring-vs-textrenderer-drawtextwhich-can-deliver-better-quality


Note on Century font

test_century

pic 1: '2' glyph, Century font, Gdi+ version

test_century

pic 2: Century font, 240 pt, Notepad [1] vs Typography [2], see red rectangle, this is a characteristic of this glyph (starts with OFF-CURVE point and ends with OFF-CURVE point)


Note on Montserrat font (https://github.com/JulietaUla/Montserrat) Some glyphs (eg. 0 glyph) starts with OFF curve and ends with ON curve

montserrat_01

pic 1: Before, incorrect rendering

montserrat_02

pic 2: After


old swapping bit code static ushort SwapBytes(ushort x) { return (ushort)((ushort)((x & 0xff) << 8) | ((x >> 8) & 0xff)); }

    static uint SwapBytes(uint x)
    {
        return ((x & 0x000000ff) << 24) +
            ((x & 0x0000ff00) << 8) +
            ((x & 0x00ff0000) >> 8) +
            ((x & 0xff000000) >> 24);
    }

    static ulong SwapBytes(ulong value)
    {
        ulong uvalue = value;
        ulong swapped =
            ((0x00000000000000FF) & (uvalue >> 56)
            | (0x000000000000FF00) & (uvalue >> 40)
            | (0x0000000000FF0000) & (uvalue >> 24)
            | (0x00000000FF000000) & (uvalue >> 8)
            | (0x000000FF00000000) & (uvalue << 8)
            | (0x0000FF0000000000) & (uvalue << 24)
            | (0x00FF000000000000) & (uvalue << 40)
            | (0xFF00000000000000) & (uvalue << 56));
        return swapped;
    }

Read more...

https://kaonashi-tyc.github.io/2017/04/06/zi2zi.html


https://www.prepressure.com/pdf/basics/fonts


What happen when we post a dieresis(¨) into textbox


First, I will test it with tahoma font.

cmm_5

pic 1: Tahoma, dieresis, glyph index=142

The following gif shows step-by-step...


2018-09-06_07-41-01

pic 2: dieresis, codepoint 168 => cmap => glyph index = 142

Clone this wiki locally