Lessons learnt from our successful proposal.
Caution: Use of proposed or accepted characters is at implementers' own risk; the composition and allocation of the characters may change before they are finally published in the Unicode Standard. Always check the Unicode Pipeline for the latest guidance.
The relevant characters are:
- U+23FB POWER SYMBOL (⏻ or )
- U+23FC POWER ON-OFF SYMBOL (⏼ or )
- U+23FD POWER ON SYMBOL (⏽ or )
- U+23FE POWER SLEEP SYMBOL (⏾ or )
As well as U+2B58 HEAVY CIRCLE (⭘ or ) for the power off symbol.
- Note that POWER SLEEP SYMBOL has been moved into the "Miscellaneous Technical Symbols" block in the Basic Multilingual Plane (BMP) at position U+23FE and given its proper name at last.
See the latest news here. We hope to see the new symbols in Unicode version 9.0, expected in June or July, 2016.
With sincere thanks to the Unicode Technical Committee, UTC #138, and ISO 10646 JTC1/SC2/WG2 #62!
The U+23FB ⏻∗, U+23FC ⏼, U+23FD ⏽, U+23FE ⏾, and U+2B58 ⭘† characters now appear in the Unicode Pipeline Table with the status of “Accepted”. They can be used now, and designed into fonts, and they're on their way to be in a future version of the Unicode Standard after 7.0. The symbols were approved by the ISO 10646 Working Group 2 (JTC 1/SC 2/WG 2) at the WG2 #62 meeting to go into Amendment 2 to ISO/IEC 10646:2014 for publication in 2016. Right now they are in ISO stage 5. See the latest news for details.
∗ These are the symbols: , , , , and , if you don't have the [font](#fonts) and can't see them yet. [Look here](http://call-with-current-continuation.com/unicode_font_test_page.html) [*external site*] for a test of dynamic font loading in your web browser.
† The suggestion has been made that this character be co-located with the others in the Basic Multilingual Plane.
Feel free to use our proposal and supporting information as a guide to making your own proposal a success.
Lessons learnt from a successful proposal:
-
Attestations are everything. Committee members need to see evidence that the characters are already in common use in running text before a proposal will be accepted. The more attestations you provide, the better. Attestations are usually photographs or scans showing the occurrence of the proposed characters in print. We managed to find attestations dating back to 1984; some proposals for scripts of historical interest have attestations going back centuries or millennia.‡
-
Successful proposals cover every angle and raise every anticipated objection before those objections can be raised in committee. Our proposal took the risk of pointing out disagreement and ambiguities around the usage of some of the characters, especially ⏻; this was probably one of the strengths of our argument.
-
It is possible to do this in a reasonable amount of time (around two months, from start to finish, in our case).
-
Some artistic drawing talent may be helpful. You'll need to make a new font.
-
Do provide your font along with the proposal, preferably through a clickable link in the PDF of the proposal, even though the instructions for submission don't ask for it. During the UTC meeting when your proposal is considered, it's likely that subcommittee members will need to write a quick proposal in support of your proposal (that's how it's done) and it'll help them if your font is to hand when they need it. They can't just extract the font from the PDF of your proposal, as we thought they might.§
-
Complete the ISO/IEC JTC 1/SC 2/WG 2 PROPOSAL SUMMARY FORM TO ACCOMPANY SUBMISSIONS FOR ADDITIONS TO THE REPERTOIRE OF ISO/IEC 10646 and attach it to your proposal.
-
The right tool for font design is surprisingly important. A custom font is needed early in the process because it's needed to write the proposal, but you should design the font from the beginning to employ arbitrary Unicode code points, because you won't know until late in the process what the actual code points will be. Some of our work was wasted; to avoid that, choose a range in the Unicode Private Use Area (E000 to F8FF) to serve as a placeholder until the UTC suggests real code points. This ensures that you don't get wrapped up in a font design tool that doesn't support Unicode—especially code points above FFFF—which lots of programmes still don't support correctly. See Notes on Tools for Creating Fonts below for more information on free font design tools that work.
-
Choose a font file format—SVG is good—that can handle metadata so it's possible to embed the font licence and designer's contact information in the font file. The glyphs that will be standardised, that all subsequent font designers will follow, will be defined by the final font you submit. Official font submission happens later in the process; our proposal has been formally accepted and we haven't been asked for the official font yet, so we still have an opportunity to fine-tune the glyphs before then.
-
Friends on the web are an invaluable resource; sometimes they appear out of nowhere, provide free technical reviewing services, volunteer their time, and lend a hand. We couldn't have done it without them.
-
See our successful proposal here and use it as a model for your own.
‡⏽ and ⭘ were found in the first IBM PC operating manual on page 1-11, but are believed to have been in use in the late nineteen-seventies.
§ Extracting fonts from a PDF file in the form of usable font files can be done, but it's not very easy.
Download one of the Unicode_IEC_symbol_font.ttf (TrueType), Unicode_IEC_symbol_font.otf (OpenType), Unicode_IEC_symbol_font.ps (PostScript Type 0 font—a CMap file for it will be coming soon) font files and install it on your system.
If you have the font installed, the ⏻ characters ⏼ should ⏽ appear ⏾ inline ⭘ here. (This may not work in all web browsers.) See the Web Browser Test section, especially the HTML Font Embedding Test page below for a more thorough test of your web browser's support for Unicode fonts.
Use of proposed or accepted characters is at implementers’ own risk; the composition and allocation of the characters may change before they are finally published in the Unicode Standard. Always check the Unicode Pipeline for the latest guidance.
Here are the new characters displayed without using HTML font embedding: can you see all of them?
- ⏻ POWER SYMBOL
- ⏼ POWER ON-OFF SYMBOL
- ⏽ POWER ON SYMBOL
- ⏾ POWER SLEEP SYMBOL
- ⭘ HEAVY CIRCLE (POWER OFF)
This page uses font embedding in HTML and should work on more browsers.
* Displays a small box with hexadecimal numbers in it like this: .
† Displays an empty box like this: .
‡ See http://gschoppe.com/blog/fixing-unicode-support-in-google-chrome/
for more information on Unicode support in Chrome under Windows.
§ Full support on these devices (everything works correctly) using
font embedding in CSS.
∥ Partial support (everything but BLACK WANING CRESCENT MOON
POWER SLEEP SYMBOL works) using
font embedding in CSS.
¶ Safari displays a black box for BLACK WANING CRESCENT MOON
POWER SLEEP SYMBOL, like this: .
alt="black box"/>
** iOS was the only software found to display stacked diacritics correctly.
-
Feedback on the draft repertoire for ISO/IEC 10646:2014 (4th Edition, Amendment 2) is being sought by the Unicode Technical Committee (UTC) this week. The relevant characters are:
- U+23FB POWER SYMBOL
- U+23FC POWER ON-OFF SYMBOL
- U+23FD POWER ON SYMBOL
- U+23FE POWER SLEEP SYMBOL
-
As well as U+2B58 HEAVY CIRCLE for the power off symbol.
-
Note that POWER SLEEP SYMBOL has been moved into the "Miscellaneous Technical Symbols" block in the Basic Multilingual Plane (BMP) at position U+23FE and given its proper name at last.
- For historical reasons, this was probably the original inspiration for this project (see Reference 10).
- New major revisions of Unicode are now expected to be published every year in June; look for Unicode 8.0 in June 2015, and Unicode 9.0 in June 2016.
-
Unicode 8.0 will contain Amendment 1 characters but probably not Amendment 2; these will come later in the calendar. The repertoire in which our symbols appear is ISO/IEC 10646:2014 (4th Edition, Amendment 2).
-
Feedback by others on Amendment 2 has suggested that POWER SLEEP SYMBOL ought to be encoded in the "Miscellaneous Technical Symbols" block in the Basic Multilingual Plane (BMP), perhaps at U+23FE. This would co-locate it "...with the other power related symbols in the same Unicode block."
- The new symbols 23FB POWER SYMBOL, 23FC POWER ON-OFF SYMBOL, 23FD POWER ON SYMBOL,
and
1F32D BLACK WANING CRESCENT MOON (use for POWER SLEEP SYMBOL)23FE POWER SLEEP SYMBOL, together with the new cross reference on 2B58 HEAVY CIRCLE (use for POWER OFF SYMBOL) appear in the Draft Additional Repertoire for Amendment 2 to ISO/IEC 10646:2014 (4th Edition). The draft repertoire is in the Proposed Draft Amendment (PDAM) stage. Your help is requested to discover any errors in character names, incorrect glyphs, or other problems.
- I was interviewed on the BBC Radio 5 programme Outriders by Jamillah Knowles.
- The Unicode Pipeline Table has been updated. Our new characters are in ISO stage 5 (of 8 stages) and on track for publication in 2016 as amendment 2 to ISO/IEC 10646:2014.
(25th February 2014)
- The symbols were approved by the ISO 10646 Working Group 2 (JTC 1/SC 2/WG 2) at the WG2 #62 meeting this week to go onto an ISO amendment; the document number of the proposal is N4567.
(14th February 2014)
-
The new characters appear in the Pipeline Table.
-
Starting a write-up for Hacker News (not published yet). See my advice to HN readers in progress.
(12th February 2014)
- Test page for web browsers.
(8th February 2014)
- Working on a CMap file for the Postscript Type 0 font.
(7th February 2014)
- Here is a diagram of the compass and straightedge construction.
(6th February 2014)
-
Notes on Constructing the
BLACK WANING CRESCENT MOONPOWER SLEEP SYMBOL with compass and straightedge. -
Updated proposal according to revision notes from UTC #138.
(5th February 2014)
-
New fonts with Unicode character code points: Unicode_IEC_symbol_font.ttf (TrueType) and Unicode_IEC_symbol_font.otf (OpenType).
-
See the updated proposal (in Table 6 on page 7 of the PDF file) for instructions on how to type the new characters.
-
The (POWER SLEEP SYMBOL) character now exhibits the correct phase of the moon.
-
Updated TO-DO list for wish-list items like
&power;
.
23FB;POWER SYMBOL;So;0;ON;;;;;N;;;;;
23FC;POWER ON-OFF SYMBOL;So;0;ON;;;;;N;;;;;
23FD;POWER ON SYMBOL;So;0;ON;;;;;N;;;;;
1F32D;BLACK WANING CRESCENT MOON;So;0;ON;;;;;N;;;;;
23FE;POWER SLEEP SYMBOL;So;0;ON;;;;;N;;;;;
(3rd February 2014)
- Results of the UTC meeting today.
(2nd February 2014)
- OpenType version of the old font and some more information on how the fonts were made.
Get the fonts here: TrueType or OpenType format.
(29th January 2014)
-
We made it onto the agenda for the 3–6 February 2014 meeting of the Unicode Technical Committee!
-
The proposal as submitted is here on the Unicode Consortium web site.
*(Previous updates are here.)
The following sections describe, in approximately chronological order, how the proposal was developed from start to finish. We began the project on 1st December 2013 and reached our goal the first week of February 2014.
On 1 December 2013, Terence Eden posed a question to Hacker News asking why Unicode lacks the international symbol that appears on power switches. After searching for a while, I learnt he was right — in fact, Unicode lacks all of the following symbols:1
IEC 60417-5007 | IEC 60417-5008 | IEC 60417-5009 | IEC 60417-5010 | IEEE 1621 |
“ON” (power) | “OFF” (power) | “Stand-by” | “ON”/“OFF” (push-push) | “Sleep” |
Click on any image for SVG. |
Source of the above images: Wikipedia. The first four symbols were drawn by Wikipedia users klork and DarkEvil; the moon was made specifically for this purpose from the specifications in the precise drawing.
Clearly these would be useful to anyone writing technical or user manuals. In fact, for electronically publishing documentation, it is crucial to have symbols defined in Unicode because it makes them search-able in text.
The Unicode Consortium has a procedure for submitting character proposals. None of the above symbols appear in the pipeline of proposed new symbols, so let's do it!
There are a few crescent moon symbols in Unicode already: the 🌙 CRESCENT MOON (U+1F319), ☽ FIRST QUARTER MOON (U+263D), and ☾ LAST QUARTER MOON (U+263E) symbols, but none of them are exactly like the IEEE 1621 symbol; U+1F319 is closest, but faces the opposite direction.
IEC charges 400 Swiss Francs (currently $440 USD) for their standard.2 IEEE charges $58 for the IEEE 1621 standard.3
Before submitting a proposal, I would like to verify the specifications for each symbol shown above in IEEE 1621-2004 and IEC 61417, which is also ISO 7000:2012, and then translate those into whatever form of description is required by Unicode.
The ISO standard is free.4
Alex Stapleton in this conversation on Twitter checked the introduction of IEC 60417 for copyright information and vector drawings of the symbols.
The SVG files for the symbols in the table are public domain.
You know, it's really hard to find a straight answer to the question of whether ISO standard symbols are copyrighted by ISO. Evidently, they are not, but the standard doesn't say so.
Here is what I think the law says:
-
Everyone is encouraged to make their things compliant with relevant and current ISO standards.
-
To do so, makers need a copy of the standard; they can purchase it from ISO.
-
Copyright of the standard document itself belongs to ISO, so pirating standards documents is a no-no.
-
But there is no royalty cost or anything like that on things made according to the standard.
I have been unable so far to find a clear statement anywhere that making things that are compliant with an ISO standard is allowed. It's probably buried in the ISO by-laws.
I'm not going to worry about it. The Unicode Technical Committee undoubtedly has thought about this before and probably knows the answer.
The current draft proposal is always here (PDF).
Thanks to everyone here for technical reviews, suggestions, improvements, and finding errors and omissions:
-
Terence Eden
-
Bruce Nordman
-
Adam De Witt
-
Rick McGowan
I changed the name character properties of some of the proposed characters to be more descriptive, and to remove a disallowed character, in response to a Twitter note from @yuasakusa—thanks!
In brief, the suggested character properties are now (with names and code points from UTC #138):
Char | CP | Unicode Name | GC | CC | BC | D | NT | NV | B | 1 | I | U | L | T |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
23FB | POWER SYMBOL* | So | 0 | ON | N | </td<> | ||||||||
2B58 | HEAVY CIRCLE† | So | 0 | ON | N | </td<> | ||||||||
POWER SLEEP SYMBOL | So | 0 | ON | N | </td<> | |||||||||
23FD | POWER ON SYMBOL | So | 0 | ON | N | </td<> | ||||||||
23FC | POWER ON-OFF SYMBOL | So | 0 | ON | N | </td<> |
Notes:
∗This character is cross referenced to .
†This character is aliased to POWER OFF SYMBOL and cross referenced to .
‡This character is aliased to POWER SLEEP SYMBOL and cross referenced to .
(22nd January 2014)
- Thanks to everyone who's contributed!
(21st January 2014)
- The required ISO/IEC JTC 1/SC 2/WG 2 PROPOSAL SUMMARY FORM TO ACCOMPANY SUBMISSIONS FOR ADDITIONS TO THE REPERTOIRE OF ISO/IEC 10646 is now included in the proposal.
(19th January 2014)
-
Changed the name character properties to be more descriptive.
-
Removed disallowed slash from the name of the symbol in the proposal.
(16th January 2014)
-
Changed name of the TrueType font to IECsymbol everywhere.
-
TrueType font files in Windows need to have the 'execute' permission set in UNIX (0755) or they aren't recognised as a valid font file.
(15th January 2014)
-
We have a document number! It is L2/14-009.
-
New co-author.
-
Corrected wrong usage of the IEEE 1621 “sleep” symbol everywhere.
-
In response to a reviewer's question, I added evidence of the symbols' usage in running text. I was able to find evidence dating as far back as the IBM PC/XT Guide to Operations from 1984.
-
Added further notes on copyright.
(14th January 2014) The UTC agenda for the 3—6 February 2014 meeting is now being compiled.
(13th January 2014) The proposal is ready to send to UTC in time for the February meeting.
(11th January 2014) Call for agenda items from the Unicode Technical Committee (UTC).
(7th January 2014) How you can help.
The proposal was submitted and approved by UTC #138.
The ISO/IEC JTC 1/SC 2/WG 2 PROPOSAL SUMMARY FORM TO ACCOMPANY SUBMISSIONS FOR ADDITIONS TO THE REPERTOIRE OF ISO/IEC 10646 form is appended to the proposal.
-
The call for agenda items for the UTC meeting in February is out.
-
I joined the Unicode Consortium as a student member to get on the mailing list for Unicode Technical Committee meeting announcements and to gain access to the member section of the web site.
-
I have the document submission details now (it's in the members section). It is encouraged that a representative for each proposal to the UTC should attend the meeting and present the document. The next meeting is February 3–6, 2014 at IBM in San Jose, California.
We need reviewers for the draft proposal. It's not ready yet, but starting in a few days, email me for a copy. What we are looking for is not just copy-editing, but:
-
Was there anything you tripped over?
-
Anything that felt out of place or inappropriate?
-
Is something missing?
-
Technical errors...
-
Spelling, grammar, or other problems, of course.
Any review is valuable, but the most useful of all can be things like, I got bored half-way through this section. The current draft proposal is always here (PDF). Email the author or use a GitHub issue, however you prefer.
Thanks to Adam De Witt for the idea!
-
Get the World Wide Web Consortium (W3C) to define HTML named character entities such as
&power;
for the new symbols to make them easier to type in HTML and XML. -
Improve the metadata in the fonts to include, at minimum, licence and description information. These get embedded in the font file if present in the SVG source code.
-
Update the Wikipedia page as soon as it's official; Wikipedia admins keep reverting changes made to the article pointing to this project. Thanks to daveljonez for pointing this out.
-
Write a follow-up article for HN.
-
Determine “character properties” like name, bidirectional class, upper and lowercase mapping, line-breaking behaviour, and collation order for the new symbols we're proposing.
-
Check the IEC and IEEE standards to verify that the symbols in the new font are compliant with the specifications in the standards.
-
Read guidelines and FAQ on the Unicode Consortium web site for required or recommended proposal format.
-
Check to make sure these symbols are not in any upcoming draft standard.
In the latest edition of the standard, The Unicode Standard, Version 6.3.0 5, released 27th September 2013, there are 11 occurrences of the word power in the Unicode Character Database:
Section | Code Point | Description |
---|---|---|
Telugu fractions and weights | ||
0C78 | TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR | |
0C79 | TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR | |
0C7A | TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR | |
0C7B | TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR | |
0C7C | TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR | |
0C7D | TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR | |
0C7E | TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR | |
Miscellaneous Symbols | 26EE | GEAR WITH HANDLES (= power plant, power substation) |
Kangxi Radicals | 2F12 | KANGXI RADICAL POWER |
Yijing Hexagram Symbols | 4DE1 | HEXAGRAM FOR GREAT POWER |
Mathematical Alphanumeric Symbols | 1D4AB | MATHEMATICAL SCRIPT CAPITAL P (= power set) |
...but not the IEC power symbol. There are none in BETA right now, nor in the pipeline as of 20-December-2013; therefore, it is proper to submit a proposal at this time. Hints for Submitting Successful Character and Script Proposals for submitting good proposals are being looked at.
-
Circulate the draft proposal for review.
-
Submit proposal to the UTC.
-
Put the new code points in the font.
-
Fix the axial tilt of the crescent moon POWER SLEEP SYMBOL to match the precise drawing and explanation of the drawing.6
-
Document the compass-and-straightedge construction of the Unicode POWER SLEEP SYMBOL.
-
Make a PostScript font and CMAP file.
The calendar has been updated; the next quarterly meeting of the Unicode Technical Committee (UTC) will take place 3–6 February 2014 in San Jose, California. The next meeting after that is 6–9 May 2014. I want to get our proposal submitted in time to make the agenda for the February meeting (two weeks in advance).
On the first day of their quarterly meeting, the Unicode Technical Committee (UTC) reviewed our proposal first thing. There was discussion of whether some of the symbols (POWER ON and POWER OFF) ought to be “unified” with existing symbols such as the ASCII vertical bar. An ad hoc group discussed the unification question and came back later in the day with a short document or counter-proposal listing names and code points. The UTC is expected to vote on it tomorrow.
After the proposal is submitted, I plant to submit a “Show HN” post on HN telling how it was done.
There is an excellent SVG font tutorial specifically aimed at generating icon fonts. It includes an SVG font starter file, instructions for using the SVG font editor built into Inkscape 0.48, recommendations about which on-line font converters are most reliable, and tips for editing the metadata and distributing the new font afterwards.
Following the above recommendation, the Free Online Font Converter was used to generate TrueType and OpenType fonts from the SVG source file that was made with Inkscape.
These instructions for using TrueType fonts in LaTeX are straightforward, but a better method is to use XeTeX which has built-in support for TrueType fonts already installed in the OS, and is available in MiKTeX 2.9.
Note: This section is obsolete; the new fonts have Unicode code points and should be used now.
When designing a new font of symbols where there is no pre-existing ordering to use, what is the best way to define the encoding? There are practical and aesthetic reasons for doing it thoughtfully. The practical reason is, encodings are shared across fonts, and if a string encoded in your new symbol font is accidentally changed to or displayed in a different font, it may coincidentally spell out a message that is nonsensical, confusing, or offensive. (Microsoft had this problem with the Wingdings font; it was either a coincidence or a conspiracy depending on who's telling the story.)
Years ago at Lockheed, they had a special font containing the corporate logo in a few sizes, for use in Microsoft Word before such graphics were common. It was not uncommon back then to open a Word document and see a big “L” on the page where the letterhead was supposed to be, because the font wasn't loaded. The fact suggests that the font designer thought about the encoding and put the corporate logo in the capital-L encoding slot for that reason, so it would fail gracefully if the font were unavailable.
In the absence of any well-defined convention for code pages in “sparse” symbol fonts, here is a proposed encoding for the old font:
Code Point | Symbol | Rationale | Note |
---|---|---|---|
P | “power” | 1 | |
S | “sleep” | ||
T | “toggle” | ||
0 | binary “0” | ||
1 | binary “1” |
XeTeX in the current version of MiKTeX has a bug that causes a harmless message
during compilation, ** WARNING ** Couldn't open font map file "kanjix.map"
. To
avoid it, place an empty file called kanjix.map
in the current directory.
To construct the symbol, first construct a line with a perpendicular. Call their intersection the origin. Draw a circle of radius r centred on the origin. Draw a larger circle centred on the horizontal line to the right of the origin with radius 5r/4 and passing through a point r/2 to the left of the origin. Both circles should intersect the vertical line through the origin at the same two points. The centre of the large circle should be 3r/4 to the right of the origin. The desired crescent is the area of the smaller circle outside the larger circle. Rotate the crescent about the centre of the smaller circle anti-clockwise 23.44° to match the axial tilt of Earth.
Analytically, for the purpose of drawing things with a computer, the angle of the arc of the larger circle between the horns of the crescent is nontrivial to calculate; a much more straightforward way to construct the crescent given the usual computer drawing tools is to draw two complete circles centred on a horizontal line, the smaller circle centred on the origin with radius r and the larger circle centred on the same horizontal line at 3r/4 to the right of the origin with radius 5r/4. Fill the smaller circle with black and the larger circle, atop it, with background colour. Some drawing programmes allow you to subtract the large circle from the small circle, thereby yielding immediately the desired crescent shape.
In either case, fill the crescent with black and rotate it 23.44° anti-clockwise around the centre of the smaller circle to complete the drawing.
See the last page of the current proposal (PDF) for a more up-to-date list of references.
-
“Power symbol” Wikipedia. http://en.wikipedia.org/wiki/Power_symbol#Definitions
-
International Electrotechnical Commission. Graphical symbols for use on equipment. IEC 60417, 2005.
-
The Unicode Consortium. The Unicode Standard, Version 6.3.0, (Mountain View, CA: The Unicode Consortium, 2013. ISBN 978-1-936213-08-5). http://www.unicode.org/versions/Unicode6.3.0/
-
California Energy Commission, Public Interest Energy Research Program. The Power Control User Interface Standard: Consultant Report. Report number P500-03-012F: Lawrence Berkeley National Laboratory, December 2002. http://energy.lbl.gov/controls/publications/P500-03-012F.pdf