LaTeX 文章で手書き文字を書く ～tegakiパッケージ～

>   これは「[TeX ＆ LaTeX Advent Caleandar 2020](https://adventar.org/calendars/5111)」の22日目の記事です。21日目は [mattskalaさん](https://ansuz.sooke.bc.ca/entry/367) ，23日は目は[munepi](https://qiita.com/munepi/items/7ff9d00505735bd80790)さんです。

「[TeX&LaTeX アドベントカレンダーが埋まらない](https://twitter.com/zr_tex8r/status/1332488734059556864)」という状況に，少しでも力になればと拙いながら記事を書かせていただきました[^hajimete](全日程 埋まっているので :upside_down: )

[^hajimete]: 実は Qiita 初投稿

## 数式でも手書きフォントが使いたい！

手書きフォントには一定の需要があります[^juyou]。世の中にはいくつかの手書きフォントが存在します。欧文も和文も検索すればたくさん出てきます。和文も用いることができる有名なフォントは[たぬき油性マジック](https://tanukifont.com/tanuki-permanent-marker/)や[みかんちゃんフォント](http://www001.upp.so-net.ne.jp/mikachan/)でしょう。
このようなニーズに応えるべくみかんちゃんフォントを LaTeX に対応させた [PXmika パッケージ](http://zrbabbler.sp.land.to/pxmika.html)などがあります。しかし，**数式に対応した手書き和文フォント**はあるだろうか[^shiranai]？
この疑問を解決すべく， [ceo.sty](http://hocsom.com/links.html) でおなじみの安田亨先生と一緒に制作したのが [tegaki.sty](http://hocsom.com/links.html) です！

[^juyou]: 私が生きている限りは需要があります。
[^shiranai]: 私が知らないだけかもしれません。

## tegaki.sty ができること

まだまだ開発段階ですが [Hocsom](http://hocsom.com/links.html) で公開しています。公開しているものは欧文書体と数式記号のみです。使うには`\usepackage{tegaki}`としてパッケージを読み込むだけです。

* 欧文も和文も使える(和文は製作中)
*  **数式対応**
*  多段根号，多段括弧，合成括弧にも対応
*  いろんな記号がついてくる

### 欧文も和文も使える
欧文はOT1エンコーディングで作成しています。またセリフとサンセリフがあります。デフォルトではセリフです。サンセリフへの切り替えはオプションに`sans`を加えるだけです[^serifsans]。
リガチャ，カーニング，太字に対応しています。サンセリフのほうが手書きっぽい？
ただしギリシャ文字は変わりません。
![eng-serifORsans.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945547/9e7f00f5-1840-7be8-1905-0639308652f7.png)

和文は小学生で習う漢字までは完全に対応しています。(うらを返せばまだまだ)
![jp-ex.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945547/d1ff5dfe-6aeb-e8df-2270-a7ed9a41e88e.png)


[^serifsans]: フォントの初期案はサンセリフだったが，印刷してみるとのっぺりしており見ずらい(と言われた)ためセリフを作成した。手書きじゃない？

### 数式対応
手書きフォントで数式に対応しています。`\vec{}`や`\sum`等の記号コマンドにもしっかり対応しています。
![math-example.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945547/0f85e6d0-c4b6-597c-2a6b-4fdda309e532.png)

### 多段根号，多段括弧，合成括弧にも対応
多段根号は普通に`\sqrt{}`で使うことが出来ます。
多段括弧を用いるには，パーレンは`\p{}`，ブレースは`\B{}`，ブラケットは`\G{}`で使うことができる。合成括弧には`\lbrac`,`\lbra`,`\lparen`等を`\left\right`で囲むことで使うことができる。

```TeX
多段括弧・合成括弧と大きなラジカル
\[
	\G{\B{\p{2+\dfrac{\sqrt{2+\dfrac{2}{2+\dfrac{2}{x}}}}{2+\dfrac{2}{2+\dfrac{2}{2+\dfrac{2}{x}}}}}}}
\]
\[
	\left\lbrac\left\lbra\left\lparen
	2+\dfrac{\sqrt{2+\dfrac{2}{2+\dfrac{2}{2+\dfrac{2}{2+\dfrac{2}{2+\dfrac{2}{x}}}}}}}{2+\dfrac{2}{2+\dfrac{2}{2+\dfrac{2}{2+\dfrac{2}{2+\dfrac{2}{x}}}}}}
	\right\rparen\right\rbra\right\rbrac
\]
```

![radicalANDparens.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945547/531f904e-0cdb-9b15-9ec4-787734a4150e.png)

### いろんな記号がついてくる
実は，tegaki.sty は ceo.sty のコードをベースとして作成されている。そのため各機能(例えば`\vabs{}`や`\bd{}`)を ceo.sty から引き継いでいる。
さらに記号も引き継いでいる．≒の`\yaku`や▭の`\chouhoukei`などの使用頻度の高いものから，集合論に使える`\marubatu`のようなニッチなものまで使える。

## まだ，未完成 (´・ω・｀)
しかし，まだまだ開発段階です。現状で以下の課題が挙げられます。
<dl>
  <dt>☃ が出せない！！！！</dt>
  <dd>⛄️ や 🍣, 🦆 などの絵文字に対応していない。絵文字云々より雪だるまが出せないのは大問題！！！</dd>
  <dt>漢字対応がイマイチ</dt>
  <dd>現状では中学生で習う漢字半ばである。高校生で習う範囲程度は対応予定である。</dd>
  <dt>欧文が OT1 エンコーディング</dt>
  <dd>トレンドは T1 エンコーディングである(と勝手に思っている)。使用用途が限定されないように対応したほうが良いだろう。</dd>
  <dt>｢①...｣ や ｢（ 1 ）｣ などのコマンドに対応していない</dt>
  <dd>丸囲み数字等の制作が出来ていない。式番号が振れないのは致命的。</dd>
  <dt>TFM の調整が完璧でない</dt>
  <dd>カーニングのおかしなところがいくつかある。</dd>
  <dt>サンセリフの調整が完璧でない</dt>
  <dd>サンセリフの字形がおかしい。現状セリフを完成させてから対応予定。</dd>
  <dt>OpenType の埋め込み</dt>
  <dd>フォントの埋め込みを special 命令に頼っている。kanji-config-updmap から使えるようにしたい。</dd>
</dl>
 

## 制作で見えてきたこと
**とにかく情報が少ない！**
正確には日本語の情報が少ないと感じた。例えば，数式用の TFM の fontdimen の情報は，ほとんど TeX Book から情報を得た。[ASCIIの記事](https://asciidwango.github.io/ptex/)にはいくつかの情報が乗っているが完璧ではない。おそらく情報が乗っているであろう本の多くは(TeX Book も含めて)絶版しており**情報源が乏しい**。
TeX に関する正しい知識を誰か残してください！(他力本願)
自身を持って言えるようになったら，私も記事に残していきたいです。

## 終わりに
TeX･LaTeX はむつかしい:sob:　だから面白い:upside_down:(沼)