<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>フォント | hgrs&#039;s Blog</title>
	<atom:link href="/archives/tag/%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>文字好きエンジニアの技術メモ</description>
	<lastBuildDate>Sat, 10 Sep 2022 22:16:38 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.1</generator>

<image>
	<url>/wp-content/uploads/2019/05/cropped-port_512-32x32.png</url>
	<title>フォント | hgrs&#039;s Blog</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Web ページに使用されているフォントを調べる方法 —Fonts Ninja—</title>
		<link>/archives/387.html</link>
					<comments>/archives/387.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Thu, 23 Jan 2020 17:30:31 +0000</pubDate>
				<category><![CDATA[エンジニアの日記]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[フォント]]></category>
		<category><![CDATA[ブラウザ]]></category>
		<guid isPermaLink="false">/?p=387</guid>

					<description><![CDATA[はじめに Web サイトに使われているフォントが気になることありませんか？僕はあります。そんな時に何...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>Web サイトに使われているフォントが気になることありませんか？僕はあります。そんな時に何のフォントが使われているか調べる方法です。</p>
<h2>Fonts Ninja</h2>
<p>今回は Chrome 拡張機能である <a href="https://chrome.google.com/webstore/detail/fonts-ninja/eljapbgkmlngdpckoiiibecpemleclhh">Fonts Ninja</a> を使用します。</p>
<p>これは今回ように Web サイトに使われている Web フォントを知りたい時に活用できます。</p>
<p>機能はフォント・タイポグラフィ情報の取得と試し打ちの2つあります。</p>
<h3>情報の取得</h3>
<p>拡張機能をインストールし、追加されたアイコンをクリックすると、そのページで使われているフォントが一覧で表示されます。</p>
<p>さらに、マウスを特定の文字列にもっていくと、その箇所で使われているフォントやサイズ、色、行間などタイポグラフィ情報が表示されます。</p>
<p><img decoding="async" src="/wp-content/uploads/2020/01/e6d78bba39f53b9e377b487651148c69.png" alt="" /></p>
<h3>試し打ち</h3>
<p>取得した Web フォントを試し打ち（試し書き）することもできます。</p>
<p>表示された、フォント一覧の部分をクリックすると、そのまま文字をタイプすることができます。</p>
<p><img decoding="async" src="/wp-content/uploads/2020/01/34ccfc0e7cf0a5c0c7a2694582ee20be.png" alt="" /></p>
<h2>欠点</h2>
<p>この Fonts Ninja を使っても、全てのフォントが正確に表示されるわけではないようです。</p>
<p>CSS 以外からも情報を取ってきているようですが、限界があります。あくまで参考程度に使うと良いのかもしれません。</p>
<h2>おわりに</h2>
<p>海外の企業のサイトとかだと、オリジナルの書体とか作っていて見るのも楽しいですね。日本でもこれぐらい自由になれば楽しいのに。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/387.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>「チーズゴシック」を作った話</title>
		<link>/archives/371.html</link>
					<comments>/archives/371.html#comments</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Thu, 02 Jan 2020 20:40:53 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[フォント]]></category>
		<guid isPermaLink="false">/?p=371</guid>

					<description><![CDATA[はじめに 新しく、フォントを作りました。かわいいやつです。 フォントについて ネズミに噛まれたチーズ...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>新しく、フォントを作りました。かわいいやつです。</p>
<h2>フォントについて</h2>
<p>ネズミに噛まれたチーズをイメージしたフォントです。子年なので。</p>
<p>元となった M+ 1p Black と重ねて使うと、より読みやすくチーズ感をますことができます。お試しください。</p>
<p>素の文字見本はこちらです。</p>
<p><img decoding="async" src="/wp-content/uploads/2020/01/af74afcb431f51619b702b8cdff08c53.png" alt="" /></p>
<h2>ライセンス</h2>
<p>ダウンロードページにも書いてありますが、以下のようになっています。</p>
<ul>
<li>M+ FONTSを使用しています</li>
<li>個人/商用ともに利用可能です</li>
<li>利用報告の必要はありません</li>
<li>再配布（Webフォントを含む）は認めておりません</li>
<li>改変は認めておりません</li>
<li>ダウンロード/使用について、いかなる保証も行いません</li>
<li>発生したいかなる損害についても、提供側は責任を負いません</li>
</ul>
<p>使用する場合は必ず守ってください。</p>
<h2>ダウンロードページ</h2>
<p><a href="https://booth.pm/ja/items/4159437">こちら</a>から。</p>
<h2>おまけ話</h2>
<p>前回の <a href="/20190806022544">カクカクゴシック</a> の時も書いたので、ちょっとだけ、与太話を書きます。</p>
<p>このチーズゴシックも「M+ FONTS」を元として作成しています。つまり、自分で字形をいちいちデザインしていません。強いて言えば穴の位置を決めたぐらいです。</p>
<p>今回もプログラムで一括でグリフに変形（穴のくり抜き）をかけて作成しています。</p>
<p>年明けて、子年だな〜って思ってからノリと勢いで2 — 3時間ほどで作ったフォントです。仕様が微妙なところがあっても多めにみてください。</p>
<h2>おわりに</h2>
<p>作り終わってから M+ 1p Black と合わせるとそれっぽいと気付いたんですが、最初からカラーフォントとかで作れたら面白かったかもしれませんね。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/371.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Adobe-Japan1 の文字情報の調べ方</title>
		<link>/archives/364.html</link>
					<comments>/archives/364.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Mon, 30 Dec 2019 15:36:16 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[フォント]]></category>
		<guid isPermaLink="false">/?p=364</guid>

					<description><![CDATA[はじめに 文字の情報を調べるための Slack アプリを作ったので、どこから情報を持ってきたか書いて...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>文字の情報を調べるための Slack アプリを作ったので、どこから情報を持ってきたか書いておこうと思います。</p>
<p>ちなみに、作ったのはこんな感じのアプリです（一般公開はしてません）。<br />
<img decoding="async" src="/wp-content/uploads/2019/12/charinfo.png" alt="" /></p>
<h2>Adobe-Japan1</h2>
<p>Adobe-Japan1 は <a href="https://github.com/adobe-type-tools/Adobe-Japan1">GitHub のリポジトリ</a> があり、そこにいろいろな情報があります。</p>
<p>わかりやすいもので言えば <a href="https://github.com/adobe-type-tools/Adobe-Japan1/blob/master/Adobe-Japan1-7_ordering.txt">Adobe-Japan1-7_ordering.txt</a> には CID、カテゴリ、サブカテゴリ、グリフ名がタブ区切りで記載されています。</p>
<p>他にも <a href="https://github.com/adobe-type-tools/Adobe-Japan1/blob/master/aj17-kanji.txt">aj17-kanji.txt</a> には漢字に関する情報がたくさん書いてあります。</p>
<h2>CMap リソース</h2>
<p>CID と Unicode を結びつける CMap リソースも <a href="https://github.com/adobe-type-tools/cmap-resources">GitHub のリポジトリ</a> で公開されています。</p>
<p>例えば Adobe-Japan1-7 と互換性のある <a href="https://github.com/adobe-type-tools/cmap-resources/blob/master/Adobe-Japan1-7/CMap/UniJIS2004-UTF32-H">UniJIS2004-UTF32-H</a> など Adobe-Japan1 に限らず様々な CMap リソースが公開されています。</p>
<p>書式が CSV や TSV のような単純な形式ではないためぱっと見ややこしそうに見えます。<a href="https://wwwimages2.adobe.com/content/dam/acom/en/devnet/font/pdfs/5014.CIDFont_Spec.pdf">ファイル仕様</a> も公開されているので読み解いてみるのも面白いかもしれません。</p>
<h2>Glyphs 関連</h2>
<p>Glyphs3 も発表され、人気も上がってるように見える Glyphs にも Adobe-Japan1 の情報が含まれています。</p>
<p><code>/Applications/Glyphs.app/Contents/PlugIns/OTF.glyphsFileFormat/Contents/Resources/MapFileAdobe-Japan1.txt</code> に CID と Glyphs 上のグリフ名（nicename）等との対応が書かれています。</p>
<p>また、それぞれのグリフの詳細は <code>/Applications/Glyphs.app/Contents/Frameworks/GlyphsCore.framework/Versions/A/Resources/GlyphData.xml</code> から辿れます。</p>
<p>ちなみに、この <code>GlyphData.xml</code> は自分でカスタマイズして、<a href="https://glyphsapp.com/tutorials/roll-your-own-glyph-data">自由な設定に変更</a> することができます。</p>
<h2>Unicode Character Name</h2>
<p>Unicode が割り当てられている文字はには名前がついています。これは <a href="https://unicode.org/charts/charindex.html">Unicode® Character Name Index</a> を使用すると調べられます。</p>
<h2>おわりに</h2>
<p>文字のことを知りたくなったら参考にしてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/364.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Glyphs と UFO の絶妙な扱いにくさ</title>
		<link>/archives/346.html</link>
					<comments>/archives/346.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Sat, 30 Nov 2019 16:35:23 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[フォント]]></category>
		<guid isPermaLink="false">/?p=346</guid>

					<description><![CDATA[はじめに 12 月 1 日に書いてますがアドベントカレンダーでもなんでもないただの記事です。 Gly...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>12 月 1 日に書いてますがアドベントカレンダーでもなんでもないただの記事です。</p>
<p>Glyphs 形式のフォントと UFO のフォントの仕様が違くて何かと扱いづらいという話です。</p>
<h2>Glyphs 形式</h2>
<p>Glyphs を使ったことがある人はわかると思いますが、新しいグリフを作る時には、フォントにグリフを追加します。</p>
<p>これだけ見ると、至極当然のように思えます。では、新しく同じ文字のボールドを作りたいときはどうすればいいでしょう？</p>
<p>フォント直下に同じ文字のレギュラーとボールドが存在していてはウエイト間の関係性が薄れてしまいます。</p>
<p>そのため Glyphs では最初に新しいグリフを追加した際にグリフという概念の元にレギュラーのレイヤーが自動で追加されます。そしてグリフ名や Unicode などの文字情報はグリフに納められ、字形はレイヤーに納められるのです。</p>
<p>ボールドを追加したい時には、このグリフの元にボールドという新しいレイヤーを追加すれば良いのです。</p>
<p>つまり、階層構造は以下のようになります。</p>
<pre><code class="language-textile">Font
┣ Glyph01
┃ ┣ Layer01
┃ ┗ Layer02
┗ Glyph02
  ┣ Layer01
  ┣ Layer02
  ┗ Layer03</code></pre>
<p>ここではあえて <code>Glyph01</code> と <code>Glyph02</code> で持っているレイヤーが異なる例を出しましたが、このようなことができてしまう仕様が Glyphs 形式です。</p>
<p>これは次に紹介する UFO との決定的な違いになるので覚えておいてください。</p>
<h2>UFO</h2>
<p>UFO は特定のアプリの形式などではなく XML を用いた仕様です。</p>
<p>UFO でフォントを 1 つのフォルダとして表現されます。そして、フォント直下に来るのはレイヤーです。このレイヤーもまたフォルダとして表現されます。ではグリフはというと、レイヤーのフォルダの中に 1 文字 1 文字がファイルとして保存されています。</p>
<p>なのでレイヤーを追加したいときはフォルダを、グリフを追加したい時には、追加したいレイヤーにファイルを追加します。</p>
<p>つまり、階層構造は以下のようになります。</p>
<pre><code class="language-textile">Font
┣ Layer01
┃ ┣ Glyph01
┃ ┗ Glyph02
┗ Layer02
  ┣ Glyph01
  ┣ Glyph02
  ┗ Glyph03</code></pre>
<p>レイヤーごとに持っているグリフ数が異なってしまいますね。UFO ではこのようなことがありえてしまいます。</p>
<h2>比較</h2>
<h3>階層構造</h3>
<p>それぞれの階層構造を見てみましょう。</p>
<pre><code class="language-textile">Glyphs          UFO

Font            Font
┣ Glyph01       ┣ Layer01
┃ ┣ Layer01     ┃ ┣ Glyph01
┃ ┗ Layer02     ┃ ┗ Glyph02
┗ Glyph02       ┗ Layer02
  ┣ Layer01       ┣ Glyph01
  ┣ Layer02       ┣ Glyph02
  ┗ Layer03       ┗ Glyph03</code></pre>
<p>形は似てますが、レイヤーとグリフの関係性が真逆です。これが原因で相互の絶妙な扱いづらさが生じてしまいます。</p>
<p>もちろん Glyphs の機能でも UFO は扱えますし Python のライブラリでも相互変化をできるものがあります。ただ、この構造の違いにより扱いやすい状態での互換は取れません。</p>
<h3>どっちがいいのか</h3>
<p>これは難しい話です。どちらにも良いところと悪いところがあります。例えば OTF などのフォントファイルは各ウエイトごとにファイルがあってそれぞれグリフがあるので UFO の階層構造は直感的な気がします。しかし UFO では共通する文字情報があっても、レイヤーごとに重複して持たなければなりません。</p>
<p>そう考えると Glyphs の形式は効率が良さそうです。ただ文字ごとに持っているレイヤーが異なったりフォントファイルと構造が違うため直感に反する気がします。</p>
<p>どっちもどっちですね。</p>
<h2>おわりに</h2>
<p>個人的には UFO の形式の方が好きなのですが Glyphs の構造の思想もすごくよくわかるので難しいところです。使ったことはないですけどバーチャルマスターとかは Glyphs の構造ならではな気がします。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/346.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>フォントエンジニア（タイプエンジニア）という謎の職種</title>
		<link>/archives/341.html</link>
					<comments>/archives/341.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Fri, 01 Nov 2019 15:10:58 +0000</pubDate>
				<category><![CDATA[エンジニアの日記]]></category>
		<category><![CDATA[フォント]]></category>
		<guid isPermaLink="false">/?p=341</guid>

					<description><![CDATA[はじめに フォント会社にはフォントエンジニアまたはタイプエンジニアという職種が存在します。ただ、この...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>フォント会社にはフォントエンジニアまたはタイプエンジニアという職種が存在します。ただ、この職種について調べても驚くぐらい情報が出てこないので、何者なのかまとめたいと思います。</p>
<h2>フォントエンジニアなのかタイプエンジニアなのか</h2>
<p>僕的にはどっちでも良いと思っています。ただなんとなく文字周りの人には「タイプエンジニア」と伝えて、そうでない人には「フォントエンジニア」といってる気がします。</p>
<p>タイプは書体周りの様々なことを指しています。なので比較的広い範囲を表現できる代わりに「タイプ」という一般の人には伝わりにくい表現となっています。</p>
<p>それに比べると、フォントエンジニアという言葉の方がなんとなく、何をやってるかはわからなくても意味はわかりそうです。</p>
<p>普通にデベロッパーというところもあります。色々ですね。</p>
<p>ちなみに、デザイナーもいろいろ呼ばれ方があります。</p>
<div>
<blockquote class="twitter-tweet">
<p lang="ja" dir="ltr">どれが分かりやすい？</p>
<p>&mdash; Taisei Yoshida (@yoshi_typo) <a href="https://twitter.com/yoshi_typo/status/1134043229303713793?ref_src=twsrc%5Etfw">May 30, 2019</a></p></blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>
<p>どれかしらに定着して欲しいですね。この記事ではこれ以降フォントエンジニアで書いていきます。</p>
<h2>結局、何者なのか</h2>
<p>とりあえずググってみましょう。普通、職種名でググると様々な情報が出てくるはずですがどうでしょうか。</p>
<h3>&quot;タイプエンジニア&quot; OR &quot;フォントエンジニア&quot;</h3>
<p><img decoding="async" src="/wp-content/uploads/2019/11/type.png" alt="" /><br />
想定した内容は何も出てきません…</p>
<p>これが悲しい現状です。</p>
<p>試しに他の職種でも検索してみましょう。</p>
<h3>&quot;サーバーサイドエンジニア&quot; OR &quot;バックエンドエンジニア&quot;</h3>
<p><img decoding="async" src="/wp-content/uploads/2019/11/server.png" alt="" /><br />
「○○とは？」「○○になるために必要な勉強」「○○の基礎知識」といろんな情報が出てきて羨ましい限りです。</p>
<p>つくづくフォントエンジニアのマイナーさを感じさせられます。</p>
<h3>実際フォントエンジニアは何をやるか</h3>
<p>みなさん、意識しないと思いますが、フォントも立派な「ソフトウェア」です。</p>
<p>しかし、デザイナーさんがデザインした「書体」はそのままでは「フォント」として使えません。</p>
<p>そこでエンジニアの登場です。この「書体」からデバイスで使える「フォント」にすることがフォントエンジニアの仕事です。</p>
<p>それだけ？と思うかもしれませんが、フォントというソフトウェアは実は奥が深いのです。僕もまだまだよくわかってません。勉強しないとですね。</p>
<h2>必要な知識</h2>
<p>僕がやっていて重要だと思う項目を4つあげます（偏見の塊です）。</p>
<ul>
<li>OpenType</li>
<li>UFO</li>
<li>ベジェ曲線</li>
<li>Python</li>
</ul>
<p>この辺がなんとなくわかると良い気がします。これらについては他の記事でちょくちょく書いていたりするので、気になったら見てみてください。</p>
<h2>フォントエンジニアになるには</h2>
<p>ググっても求人なんて全くといっていいほど出てこないので、困り物です。その割に各社エンジニアを欲しがっているイメージがあります。謎です。</p>
<p>もし、知り合いにフォント関係の会社で働いてる人がいたら聞くのが一番早いですね。いなければ、文字周りのイベントとか行けば知り合えるかもしれません。僕にいきなりDMとかでもいいと思います笑。</p>
<p>とにかく、募集もないのでなり方もわからない現状は辛いですね…</p>
<h2>おわりに</h2>
<p>情報の少ないフォントエンジニアですが、これから増えてくれれば僕的にも業界的にもいいんじゃないでしょうか。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/341.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>フォントを扱うPythonライブラリたち</title>
		<link>/archives/334.html</link>
					<comments>/archives/334.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Mon, 30 Sep 2019 14:58:58 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[フォント]]></category>
		<guid isPermaLink="false">/?p=334</guid>

					<description><![CDATA[はじめに フォントをPythonから扱うときに便利なライブラリ集です。フォントの見かけばかり気にせず...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>フォントをPythonから扱うときに便利なライブラリ集です。フォントの見かけばかり気にせず、たまにはフォントファイル自体をいじってみませんか？</p>
<h2>一覧</h2>
<h3>変換系</h3>
<h4><a href="https://github.com/googlefonts/ufo2ft">ufo2ft</a></h4>
<p>UFOからOTFを作ることのできるライブラリです。</p>
<h4><a href="https://github.com/robotools/ufo2fdk">ufo2fdk</a></h4>
<p>UFOからAFDKOへの変換ライブラリです。</p>
<h4><a href="https://github.com/robotools/extractor">UFO Extractor</a></h4>
<p>OTF、TTFとかのバイナリからUFOへの変換ライブラリです。</p>
<h4><a href="https://github.com/googlefonts/fontmake">fontmake</a></h4>
<p>Glyphs、UFOをOTF、TTFにするライブラリです。</p>
<h4><a href="https://github.com/adobe-type-tools/afdko">AFDKO</a></h4>
<p>有名なやつ。</p>
<h3>編集系</h3>
<h4><a href="https://github.com/robotools/fontParts">fontParts</a></h4>
<p>比較的新しいUFO編集ライブラリ。</p>
<h4><a href="https://github.com/robotools/defcon">defcon</a></h4>
<p>UFOのフォントオブジェクトを諸々定義してくれているライブラリです。</p>
<h4><a href="https://github.com/fonttools/fonttools">fonttools</a></h4>
<p>TrueType、OpenTypeをいじるためのライブラリです。<a href="/20190801033545">以前紹介したTTX</a>も含まれています。</p>
<h4><a href="https://github.com/googlefonts/glyphsLib">glyphsLib</a></h4>
<p>Glyphsファイルを扱うためのライブラリです。内部的にはUFOを使用します。</p>
<h4><a href="https://github.com/fonttools/ufoLib2">ufoLib2</a></h4>
<p>UFOを扱えるライブラリです。まだ実験段階。</p>
<h3>その他</h3>
<h4><a href="https://github.com/fonttools/ttfautohint-py">ttfautohint-py</a></h4>
<p>TTFの自動ヒンティングライブラリです。</p>
<h4><a href="https://github.com/googlefonts/fontbakery">fontbakery</a></h4>
<p>品質チェック用のライブラリです。</p>
<h4><a href="https://github.com/adobe-type-tools/kern-dump">kernDump</a></h4>
<p>カーニングの諸々。</p>
<h2>おわりに</h2>
<p>こうして並べてみると結構あるんですね。皆さんもフォントをいじってみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/334.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ATypI 2019東京大会で「機械学習と書体開発」というテーマで発表してきました</title>
		<link>/archives/330.html</link>
					<comments>/archives/330.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Mon, 16 Sep 2019 15:55:52 +0000</pubDate>
				<category><![CDATA[エンジニアの日記]]></category>
		<category><![CDATA[フォント]]></category>
		<category><![CDATA[機械学習]]></category>
		<guid isPermaLink="false">/?p=330</guid>

					<description><![CDATA[はじめに 文字周りの国際会議ATypIの2019年大会が日本で開かれました。そこで発表してきたので忘...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>文字周りの国際会議<a href="https://www.atypi.org/">ATypI</a>の2019年大会が日本で開かれました。そこで発表してきたので忘れないうちに感想でも書いておこうと思います。</p>
<h2>発表</h2>
<h3>動画</h3>
<p>YouTubeで晒されています。</p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/va0NnxdgrqA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<h3>資料</h3>
<p><a href="https://atypi.hgrs.me/">こちら</a> にアップロードしています。</p>
<h2>内容</h2>
<p>動画か資料を見ていただければ、わかると思いますが書体（またはフォント）を作る上でどのような場面で機械学習を活かせるかを検討しています。ここでは、大きく分けて「自動デザイン」と「品質保証」に活かせるのでは？としています。</p>
<p>自動デザインでは、ディープラーニング（特にGAN、pix2pix）の技術を用いて、「あ」の1文字をデザインすれば他の文字を作ってくれるというものを発表しました。これは僕の学部時代の研究をもとにしたものであり、卒論もこのテーマで書きました。</p>
<p>品質保証では、デザインのチェックを機械学習を使って行うということを発表しました。文字ごとにデザインのクオリティーがばらついていてはいけません。そこで、全ての文字を一定のクオリティーに保てるように機械でチェックを行えないか？という検討をしています。</p>
<p>会場にいた多くの人は（タイプ）デザイナだったため、技術的な詳細は薄めにし、嘘のない範囲でわかりやすく書体開発における機械学習の現状をお話ししたつもりです。</p>
<p>エンジニアの人には少し物足りない感じになってしまったかもしれません。そういう人は<a href="https://drive.hgrs.me/bachelor-keynote.pdf">こちら</a>の学会での発表資料はもっと詳しく書いているのでご覧ください。</p>
<h2>ATypIについて</h2>
<h3>参加の経緯</h3>
<p>国際会議で毎年世界のどこかで大会を開いているのですが、今年偶然にも日本、しかも東京ととても近いところで開催だったので、ラッキーでした。しかも今回の大会に限り、日本語と英語の2ヶ国語開催だったので発表も日本語でできます！</p>
<p>思い出すと、発表の応募をしたのは2月でインターン先の人に応募してみませんかと言われたのがきっかけです。そこから音沙汰もなく、通らなかったのかと思っていたら、なんと6月下旬に参加決定となりました（もともと4月とか言われてた気がするのでだいぶ遅れてた？）。</p>
<p>そこから、今回の大会では同時通訳がつく発表だったので事前に原稿を送る必要がありました。そのため、急いで資料と原稿を作り、翻訳をお願いしました。翻訳を担当してくれた方に感謝します。</p>
<h3>気になった発表</h3>
<p>いくつか気になった発表の感想を1行ずつ書いておこうと思います。エンジニアリングよりです。</p>
<ul>
<li>
<p><a href="https://www.youtube.com/watch?v=9YtRMNdH4Lo">源ノ角ゴシック バリアブルコンセプトフォント</a><br />
やっぱり日本語バリアブルフォントは辛いな。という話。</p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=m6viKaSvPQ4">建築のようにハングルを作る：バリアブルフォントの活用</a><br />
ハングルってこんな感じに作っていくのか。というのがわかった。</p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=wr0ti8dYpN8">Type. My Life.</a><br />
モリサワはそうめんの会社だった。（嘘）</p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=HGAoja_b4-0">ツールで語るヒラギノ開発の歴史</a><br />
自社開発ツールをこんだけ作るの大変そう。</p>
</li>
<li>
<p><a href="https://www.atypi.org/conferences/tokyo-2019/programme/activity?a=950">漸進的フォント補完技術の進捗状況</a><br />
日本語のWebフォントもっと便利になってくれーーー。</p>
</li>
</ul>
<h3>当日の様子</h3>
<p>日本人の方が外国人に比べ少なく3:7か4:6ぐらいの印象です。合わせて1日あたり300~400人ぐらいはいたと思います。</p>
<p>デザイナーの人が圧倒的に多くて8~9割ぐらいがデザイナーだったんじゃないかなと。</p>
<p>期間中、いろんな人とお話しできたり、発表後は様々な感想をいただけたので、発表してよかったなと思いました。</p>
<p>大会後には別会場でAdobe主催のパーティーがあり、写真がVJの素材にされたのも良い思い出です。あと音楽が流れてると外国の方は踊るんですね。</p>
<p>ボランティアスタッフが多いこともあってか、少し不手際な部分もあったように感じますが、総じて参加してよかったと思えました。</p>
<h2>おわりに</h2>
<p>来年はパリで開催だそうです。主催はワインを飲みながら楽しそうに参加を呼びかけていました。僕は行きませんが、お近くに用事のある人は行ってみると良いのではないでしょうか笑。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/330.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>「カクカクゴシック」を作った話</title>
		<link>/archives/325.html</link>
					<comments>/archives/325.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Mon, 05 Aug 2019 17:25:44 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[フォント]]></category>
		<guid isPermaLink="false">/?p=325</guid>

					<description><![CDATA[はじめに フォントを作ったので、試しにこのブログで配布してみようと思います。 フォントについて 4方...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>フォントを作ったので、試しにこのブログで配布してみようと思います。</p>
<h2>フォントについて</h2>
<p>4方向にそれぞれすぼまったスタイルがあるフォントです。スタイル名はそれぞれ細くなっている方向を指して「上」「下」「左」「右」の4つとなっています。</p>
<p>シュッとした感じで変な形の割には意外と使いやすいんじゃないかなって勝手に思ってます。</p>
<h2>ライセンス</h2>
<p>ダウンロードページにも書いてありますが、以下のようになっています。</p>
<ul>
<li>M+ FONTSを使用しています</li>
<li>個人/商用ともに利用可能です</li>
<li>利用報告の必要はありません</li>
<li>再配布（Webフォントを含む）は認めておりません</li>
<li>改変は認めておりません</li>
<li>ダウンロード/使用について、いかなる保証も行いません</li>
<li>発生したいかなる損害についても、提供側は責任を負いません</li>
</ul>
<p>使用する場合は必ず守ってください。</p>
<h2>ダウンロードページ</h2>
<p><a href="https://booth.pm/ja/items/4159428">こちら</a>から。</p>
<h2>おまけ話</h2>
<p>せっかくこのブログなので、どうやって作ったかなど技術的な話をしようと思います。</p>
<h3>自分でパスを引かないフォント作り</h3>
<p>今回のフォント作りは一度も自分でパスを引きませんでした。フォントの確認にGlyphsは使いましたが、そこでもパスは引いていません。</p>
<p>全てプログラムで作成しました。つまり線が描けなくてもコードが書ければフォントが作れるんです！</p>
<p>では、どうやったか順に見ていきましょう。</p>
<h3>仕様</h3>
<p>元にしている「M+ FONTS」はTTFですが、このフォントでは（PostScript 形式の）OTFに変換してからベースとして使用しています。そのため、このフォントはOpenTypeのフォントです。</p>
<p>登録されているグリフは「M+ FONTS」から足しても引いてもいないので、「M+ FONTS」と同じものです。</p>
<h3>グリフの加工</h3>
<p>グリフの加工はPythonのスクリプトを作成し、変形を行なっています。</p>
<p>フォントをPythonで扱うにはOpenTypeのままでは少し都合が悪いのでUFO形式に変換してから使用します。UFO形式にしたフォントのグリフに一括で変換をかけるのですが、今回は台形のような変換なのでちょっとややこしい変換を行っています。</p>
<p>普通、移動や回転、拡大縮小などの変形であれば、アフィン変換という計算を用います。こちらであれば、Pythonのスクリプト上でもグリフに対して簡単に計算をしてくれます。しかし、台形にしたいという変換では、アフィン変換は使えません。</p>
<p>そのため、各アンカーポイントについてアフィン変換ではなく、自分で作った行列の計算を行います。今回は台形という比較的簡単な形状に合わせた変換なので、あまり複雑にはなりませんでしたが、波打った変形などでは式がどんどん複雑になると思います。</p>
<h3>UFOからOTFに</h3>
<p>こちらもPythonから行っています。Glyphsでもできることですが、正直に言うとGlyphsよくわかってなく、どれぐらいちゃんと生成されるかわからなかったのでプログラムで出力しました。そっちの方が僕的には楽だったんです。</p>
<h3>OTFを綺麗に</h3>
<p>出力したOTFのままでもよかったのですが、フォント名の設定などが不十分な点がありました。そこでOTFから一旦TTXに変換して、TTXを手書きします。笑</p>
<p>今回はnameテーブルに日本語の表記を足しました。なので、フォント名やスタイル名などソフトが対応していれば、ちゃんと日本語で「カクカクゴシック 上」みたいな感じで表示されると思います。</p>
<h2>おわりに</h2>
<p>せっかくエンジニアなので、それっぽい話を最後に書きましたが、とりあえずフォント使ってみてください！</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/325.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>エンジニア向けフォントの中身の見方</title>
		<link>/archives/318.html</link>
					<comments>/archives/318.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Wed, 31 Jul 2019 18:35:45 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[フォント]]></category>
		<guid isPermaLink="false">/?p=318</guid>

					<description><![CDATA[はじめに フォントが好きであれば、フォントの中身も気になりますよね。今回はフォントの中身を見る方法を...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>フォントが好きであれば、フォントの中身も気になりますよね。今回はフォントの中身を見る方法を紹介します。主にエンジニアに向けて。</p>
<h2>OpenTypeとTrueType</h2>
<p>よく見るフォント形式ですね。でもこれらはバイナリなので人には読めません。そのため人が読める形式に変換する必要があります。</p>
<p>ここではTTXとUFOの2形式を紹介します。</p>
<h2><a href="https://github.com/fonttools/fonttools#ttx--from-opentype-and-truetype-to-xml-and-back">TTX</a></h2>
<h3>概要</h3>
<p>TTXはフォントを扱うライブラリであるfontToolsに含まれる、OpenTypeとTrueTypeに互換のあるファイル形式兼ツールです。</p>
<p>TTXはXML形式で書かれているので、人でも読むことができます。</p>
<h3>インストール</h3>
<p>TTXはfontToolsの一部なので、fontToolsをインストールしなければなりません。</p>
<p>fontToolsはPythonのライブラリのため<code>pip</code>経由でインストールが行えます（Python、pipをインストールしてない人は先にインストールを行ってください）。コマンドは以下の通り。</p>
<pre><code class="language-bash">pip install fonttools</code></pre>
<h3>使い方</h3>
<p>フォントファイル（OpenTypeとTrueType）からTTXへ変換を行うには以下のコマンドを実行します（○○○.otfというファイルの例）。</p>
<pre><code class="language-bash">ttx ○○○.otf</code></pre>
<p>実行が完了（少し時間がかかります）すると、<code>○○○.ttx</code>というファイルが生成されます。これをテキストエディタ等で開くと膨大な量のXMLが出てきます。</p>
<p>ここにはフォントテーブルがそれぞれ人が読める形式で書かれており、編集も行うことができます。ただあまりにも長いので、もう少し見やすいテーブルごとの書き出しを行いたいと思います。</p>
<pre><code class="language-bash">ttx -s ○○○.otf</code></pre>
<p>これでテーブルごとにTTXファイルが書き出され、それぞれがより見やすくなりました。その他のオプションについては<code>ttx -h</code>で確認することができるので、確認してみてください。</p>
<p>またTTXからOpenTypeとTrueTypeへ戻すこともでき、こちらは単純に同じコマンドで</p>
<pre><code class="language-bash">ttx ○○○.ttx</code></pre>
<p>とすることで戻せます。</p>
<h2><a href="http://unifiedfontobject.org/">UFO</a></h2>
<h3>概要</h3>
<p>Unified Font Objectです。未確認飛行物体ではありません。まだ足りない機能なども多いですが、個人的にはこの形式の方が人が読むのに向いてる気がします。</p>
<p>UFOはフォルダで構成されているので、各グリフが個別のファイルに保存されたりしています。そのため、1文字1文字をじっくりみたい時には読みやすいと思います。</p>
<h3>インストール</h3>
<p>こちらはTTXのように便利にまとまったツール群があるわけではないので主に<a href="https://github.com/robotools">RoboToolsのライブラリ</a>や<a href="https://github.com/googlefonts/ufo2ft">Googleのufo2ft</a>使用していくことになります。</p>
<p>必要に応じてライブラリをインストールしましょう。それぞれ<code>pip</code>でインストールすることができます。</p>
<p>ちなみにGlyphsの書き出し形式としてもUFOを選択することができます。</p>
<h2>おわりに</h2>
<p>フォントの見た目ではなく、中身が気になった方は是非、じっくりと中までご覧ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/318.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>源ノ角ゴシックOpenTypeフィーチャーを維持したサブセットOTF、Webフォントが作れるWebアプリを作った話</title>
		<link>/archives/272.html</link>
					<comments>/archives/272.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Wed, 22 May 2019 05:00:56 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[フォント]]></category>
		<guid isPermaLink="false">/?p=272</guid>

					<description><![CDATA[はじめに タイトルの通り、重い日本語フォントはWebフォントとして使いにくいので、必要な文字だけでサ...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>タイトルの通り、重い日本語フォントはWebフォントとして使いにくいので、必要な文字だけでサブセット化したフォントを作れるWebアプリを作ったのでご報告を。</p>
<h2>リンク</h2>
<p><a href="https://otfss.hgrs.me/"><img decoding="async" src="/wp-content/uploads/2019/05/ogp-2.png" alt="OTFSS" /></a><br />
<a href="https://otfss.hgrs.me/">https://otfss.hgrs.me/</a></p>
<h2>できること</h2>
<p>現在はAdobeの複数言語OTFの源ノ角ゴシックを元に、必要な文字だけを残して、軽量化したフォントを作ることができます。</p>
<p>作成されるフォントは「otf」「woff」「woff2」の3種類です。ダウンロードボタンを押すと数秒から数十秒でダウンロードが開始され、3つのフォントとライセンスが同梱されたzipファイルが落とせます。解凍すれば、自由にフォントが使えます。</p>
<p>作成手順は以下の流れです。</p>
<h3>フォントに収録したい文字のリストを打ち込む</h3>
<p>文章でも、単語リストでも、1文字でも1万文字でも、被ってる文字があっても大丈夫です。とにかく使われる文字を全部入れ込みましょう。</p>
<h3>維持するOpenTypeフィーチャーを選択</h3>
<p>「OpenTypeフィーチャー」のタブを開くと、レイアウトに関するOpenTypeフィーチャー一覧が表示されます。このリストから消したく無いOpenTypeフィーチャーを選択します。よくわからなければ、軽くしたいなら全てOFF、贅沢に使いたいなら全てONにすればいいと思います。</p>
<p>元のフォントに無い機能もありますが、それらは無視されます。</p>
<h3>ウエイトを選択</h3>
<p>ダウンロードボタンの隣にあるドロップダウンリストから、作りたいウエイトを選択します。細いものから順に並んでいるので、お好きなものを選択してください。</p>
<h3>ダウンロード</h3>
<p>ダウンロードボタンを<strong>1回押す</strong>とダウンロードリクエストが飛び、フォント作成がはじまります。特に画面遷移などは無いので、しばしお待ちを。何も起こらないからって何回も押さないでね。</p>
<h3>フォントの使用</h3>
<p>フォントは<a href="http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&amp;id=OFL">SIL Open Font License</a>のライセンスで配布されるので、複製、再配布Webフォントとしての使用、組み込みなどあらゆることへの使用が可能です。詳しくはライセンス本文を読んでみてください。</p>
<h2>技術的な話</h2>
<p>このWebアプリはWebアプリケーションのフレームワークからフォント作成まで全てPythonを用いて作られています。</p>
<p>Pythonにはフォント周りの様々なライブラリがあるので、フォントとエンジニアリングに興味がある人は色々と調べてみると楽しいかもしれません。僕は楽しいです。</p>
<p>ただ、このWebアプリはまだまだ開発途中でこれからどんどん機能追加や修正をしていきたいので、不具合や機能要望があればこの記事のコメントや<a href="https://hgrs.me/#contact">お問い合わせ</a>からご連絡ください。</p>
<h2>これから</h2>
<p>もともと自分が使いたくて作ったWebアプリなので気分次第でフォント/機能追加したりしなかったりするかと思いますが、とりあえず、源ノ明朝は足したいなと思ってます。</p>
<p>ただ、フォントに関してはライセンス的にSIL Open Font Licenseのフォントかもっとライセンスフリーなフォントじゃないと厳しそうですが…</p>
<h2>おわりに</h2>
<p>わざわざサブセット作る上にOpenTypeフィーチャーを指定するとかいう超マニアックな誰得Webアプリですが、ぜひ使ってみてください。</p>
<p>最後に、もう一回リンク <a href="https://otfss.hgrs.me/">OTFSS</a></p>
<p>ちなみに、この「OTFSS」という名前は「OpenType Font SubSetter」から来てます。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/272.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
