Giter Site home page Giter Site logo

xkcd-font's Introduction

xkcd-font

Fonts derived from the handwriting of @randallmunroe, the xkcd webcomic author. Yes, it really is his handwriting, and he hopes we fix the pesky kerning:

I have never been as self-conscious about my handwriting as when I was inking in the caption for this comic. [Credit to xkcd]

This repository contains two fonts, xkcd Script and xkcd, each with their own characteristics (and limitations):

Font: xkcd Script

xkcd Script is a font derived from a handwriting sample provided by Randall. It is far less uniform than xkcd, and we think it is therefore more like a true script font.

Sample of xkcd-script

You can see the font as a live preview, or for more information about the font and how it is constructed see the xkcd-script/README.

Font: xkcd

The xkcd font was originally created by Randall, and was used in xkcd "The Pace of Modern Life" (April 1st, 2013). It is considerably more uniform than xkcd Script, which can result in more legibility at the cost of being slightly less like the actual xkcd comic.

Sample of xkcd

Read more...

License

This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

Contributing

Contribution guidelines exist to simplify the review process and ensure constency in the repository. In addition, font specific contribution guidelines can be found in the README of each font (xkcd-script, xkcd).

xkcd-font's People

Contributors

daniel-mietchen avatar ellisonbg avatar minrk avatar pelson avatar rgbkrk avatar takluyver avatar tcyrus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xkcd-font's Issues

Font use

Hi there!

I'm working on some marketing materials for Randall's new book and wondered if it would be okay to use the font? Wasn't completely sure to what degree the Creative Commons licence stretched.

Have asked through official channels but wanted to make sure it was okay via this portal?

Thanks for creating it, thought it would be strange to make anything to do with him without including his handwriting!

all the best,

David

And the language geek asks for IPA...

@randallmunroe and others (@kolbylyn @rgbkrk ), I was reading the discussion on #9 and... Sooo I thought I'd ask, is it beyond all geekery sensibleness to ask for IPA characters to be added to the font? I mean we're not all astronomy and math students who read xkcd.... ;-) If we can start with some hand writing samples again, I'll look at reaching out to some font developers and adding the glyphs to the font proper... but I'd need the original hand writing samples. I guess much like what was asked for and provided in #9.

xkcd-script: has fontlint

The fontforge "fontlint" suggests there are issues with the font:

Copyright (c) 2000-2014 by George Williams. See AUTHORS for Contributors.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
 Based on sources from 22:38 UTC 29-Apr-2017-D.
 Based on source from git with hash: b8e5ff8f24955f4d7d59ac73c903cc088b21bdb6
Internal Error: Attempt to unget two characters
CHECKING     xkcd-script/font/xkcd-script.ttf
ERROR      5 Missing points at extrema
FAIL         xkcd-script/font/xkcd-script.ttf

Looks like this will involve some post-processing of the contours, or a magic function buried within fontforge (probably already exists).

Programatically creating the font from the handwriting sample

screen shot 2017-04-21 at 14 07 37


Transcribed below:

I'm opening this issue because I've done some work with the handwriting
dataset that Randall produced, and am able to programatically produce
a pleasing fontfile from it.

First and foremost, I wanted to get your feedback on the approach that
I've taken. I'd be more than happy to discuss options for bringing this
work into this repo (and the logistics/code organisation etc.).

A whole saga has been written up @ https://pelson.github.io/2017/xkcd_font/
with way more detail than is necessary for the everyday interested
party. My intention was to document the whole process so that the
font is entirely reproducible from the source document (the handwriting
sample). Because of the detail, I'm not widely advertising the article's
existence at this point, but will do in the next few weeks/months once
we have decided what is best to do with its findings.

Any input on next steps would be greatly appreciated.

Support for Tatar

It would be great to have the font support Tatar :)

Here is the alphabet:

 а ә б в г д е ё ж җ з и й к л м н ң о ө п р с т у ү ф х һ ц ч ш щ ъ ы ь э ю я
 + + -  + - -  + + -  -  + - -  + -  + + + + + - + + + + - -  + + -  -  -  -   -  -  -  -  -  -

I suppose the ones with + should be easily doable using Latin characters, the ones with - might be a bit more work.

At the moment it looks like this:
listening-tatar

Admin edits

As a follow-up activity to PR#17, I am looking to add a writeable deploy key as a secret in the .travis.yml. With this in place, we will get automatic commits of the built products that live in this repo (the fonts, and their previews).

We will also need to register a TravisCI hook for ipython/xkcd-font.

I'm happy to do both of these if I had admin privs, but equally happy to assist anybody else who may want to just get on and do it. One or the other would be great though 👍

😄

Backticks aren't XKCD style

(xkcd Script)

I'm not sure whether XKCD contains any backticks, but perhaps one could be created by an AI trying to match the style of the font (or in MS Paint)?

image

(Still a great font though.)

License question

I have a question about usage of the font (not redistribution of the font itself). Does the license allow using the font to create text inside a Power Point presentation (and then converted to an image, largely because I don't trust the presentation machines to have the font available or embedded or whatever)?

Issue #39 had the opinion that if the font is used to create content, even commercial content, it was okay "as long as the font does not represent a majority of the work which is sold". I'm not sure whether the work itself (the Power Point presentation) would need to be "for sale" (it's not), or if just the fact that I work at a company, not a non-profit, makes this a "commercial" usage under the license terms.

A larger point: the text of the license itself seems to be written with software in mind, not fonts; it's hard to really know whether "using the font" falls under "Adaptation" or "Collection" or "Distribution", or none of them. The closest I can see is "entertainment in dumb show". =)

xkcd-Script: GSUB/GPOS problem

Hello.

Latest auto-generated font files maybe have lost one's kerning & ligature information.
(Initially I thought that GSUB/GPOS tables in .sfd aren't displayed for some reason, ...)
Maybe it is caused by the method generating the .sfd file.
https://github.com/dummy-index/xkcd-font/commits/brushup

I am up to refine xkcd-script (ascend (inconsistent with em), charmap (small letter x and cross product, ...), letter spacing w/o kerning, ...)
I don't know about docker, I use python and ffpython.exe jointly. Far from pullreq.

2020/10/25
I found that this xkcd-script.sfd is in PFB format in reality!
font.generate() doesn't recognize .sfd extension.
We shuld use font.save() instead.

How to programatically install the fonts?

👋 Hi. Despite using Linux for over a decade, I know very little about fonts. Whenever I have to install something a font that I can't get through my package manager I download the files and install them by opening up the font manger GUI.

Now say that I'm working in an environment, like building a Linux container image, where I want to install the XKCD fonts in this repo. What is the recommended programatic way to install them? Is there a way that I can do so easily with a single command for all the fonts? Or would I need to manually copy them into directories like

$ mkdir -p /usr/share/fonts/opentype/xkcd
$ curl -sL https://github.com/ipython/xkcd-font/raw/master/xkcd/build/xkcd.otf -o /usr/share/fonts/opentype/xkcd/xkcd.otf
$ mkdir -p /usr/share/fonts/truetype/xkcd-script
$ curl -sL https://github.com/ipython/xkcd-font/raw/master/xkcd-script/font/xkcd-script.ttf -o /usr/share/fonts/truetype/xkcd-script/xkcd-script.ttf

?

Tweak the kerning to make it a little more usable.

As mentioned by @randallmunroe in an IPython pull request comment, the kerning is off on some of the letters.

I'd be delighted if someone wanted to tweak the kerning to make it a little more usable.

I just dug up this list of letter groups whose odd spacing particularly stood out to me as I was hand-adjusting comic #1227.

-thAT +fitNEss -TOo -TOTAllY +machiNE -examinATion -grandFAThers +graNDfathers -hAVe -AGO +agaiNSt -honesTLY +UNDerstood -loST -beATs -cLOsest -connECTion

xkcd monospace

It would be funny to see some xkcdness in terminal: 😄
image

For now it's tricky to achieve, because few terminal emulators don't allow use of fixed-size fonts. So basic work is to add a monospace style, as there are italic and bold already.

As @dummy-index recently improved xkcd-script, maybe you would be interested in this idea?

Addition of Greek alphabets

Hey, thanks a lot for this useful tool.
However, considering how many scientific people must be using this, it would be nice if greek alphabets are added as well.

Thanks

xkcd-Script: generate with FontForge official package

Hello.
I try to generate xkcd-script without installing any compiler, and it seems to almost succesful in sense of binary reproduction. But a mystery appears.

Procedure

pt1, pt2: run with Anaconda python (python 3.6)

  • install numpy, scipy, skimage by conda
  • install parse.py by pip

pt3, pt4, pt5: run with ffpython.exe in FontForgeBuilds (Windows Installer)

  • FontForgeBuilds bundle ffpython and potrace
  • install parse.py by hand (copy it into FontForgeBuilds/lib/python*.*/site-packages/)
  • I tested with FontForge-2016-10-04-Windows.exe, FontForge-2017-07-31-Windows-r2.exe, FontForge-2019-04-13-Windows.exe, FontForge-2020-03-14-Windows.exe

code fix needed: #35

Mystery

I generate fonts with 4 versions of FontForgeBuilds.
xkcd-script-withffpython.zip
Here *.otf are generated by pt5_gen_reprod_font.py with changes:

- ttf = os.path.join(base, 'xkcd-script.ttf')
+ ttf = os.path.join(base, 'xkcd-script.otf')

And I checked these fonts with ttx (fonttools), I found that most similar to the latest xkcd-script.ttf is xkcd-script-ff20161014.otf. ...Somehow the latest xkcd-script.ttf has CFF table (cubic outline), every ffpython output the ttf with glyf table (quadratic outline).
I was convinced that font.generate('foobar.ttf') always makes outline quadratic... but why?

2020/10/25
To get ttf with CFF table, I want a modify:
- font.generate(ttf)
+ otf = os.path.join(base, 'xkcd-script-ttf.otf')
+ font.generate(otf)
+ shutil.move(otf, ttf)

2020/12/5
Sorry, probably I had compared to xkcd-script.woff mistakenly.
xkcd-script.ttf has quadratic outline.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.