数式でフォント作ってみた(ついでにbannerコマンドみたいなのをrubyで書いた)

[Okinawa.rb Advent Calendar 2016](http://qiita.com/advent-calendar/2016/okinawarb) 7日目

# 事の発端
twitterでLOVEになる数式を見かけて、ちょっともうちょい綺麗にできそうじゃん、と思った
https://www.google.co.jp/search?q=all+you+need+is+love+math&tbm=isch
<img width="554" alt="スクリーンショット 2016-12-07 21.44.40.png" src="https://qiita-image-store.s3.amazonaws.com/0/16596/f0d643d6-8719-1371-09ec-8679df0068ce.png">

結果
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">数式で伝える画像できた <a href="https://t.co/sPNQRK29PA">pic.twitter.com/sPNQRK29PA</a></p>&mdash; ぺんさん！ (@tompng) <a href="https://twitter.com/tompng/status/801082606527746049">2016年11月22日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

よし、じゃあアルファベット記号全部作ろう、と思ってやっているのがこちら(小文字はまだない)
https://github.com/tompng/mathfont

# 数式フォントの作り方
基本は円の式

<img width="349" alt="スクリーンショット 2016-12-07 21.58.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/16596/dea5cd69-be76-10e0-874a-94099056562b.png">

2乗の部分をちょっと変えるとなんか四角くなって
<img width="350" alt="スクリーンショット 2016-12-07 21.58.54.png" src="https://qiita-image-store.s3.amazonaws.com/0/16596/5587fd80-9f81-bd82-2d87-9c6162f440e4.png">


あとは重ねたり
<img width="349" alt="スクリーンショット 2016-12-07 22.00.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/16596/50fc781d-aa1a-4a31-c094-5e2cb9422de2.png">

滑らかにつなげたりしていくと
<img width="349" alt="スクリーンショット 2016-12-07 21.59.03.png" src="https://qiita-image-store.s3.amazonaws.com/0/16596/fbe329e6-9c09-d22c-e53e-0778110bb7c6.png">

最終的にこうなります
![rb.png](https://qiita-image-store.s3.amazonaws.com/0/16596/8c825f56-8889-e747-a5e4-fd0c3d6228f0.png)

`@` `$` `R` `&` あたりが難しかった

# bannerコマンド風のプログラムを作ったので、遊んでみる
https://github.com/tompng/mathfont

```
$ ruby mathfont.rb --size 16 ruby
|   ,ggggg,.                                                     
|   rMM#TTTMQ.      ug      ,p.     !MMpppppg,     :p,      .ua  
|   QM0    ^Mr      MM      rMr     rMTTTTTTMMg     ?Mg.   ,Q#   
|   #MM,  .pM<      MM      rMr     MM,.   ,pMT      ^TM,.pM*    
|   rMM#MMMM?       MM      rMr     MMMMMMMMM<         ?MM#      
|   rM0  0Mp        rM.     aM      MMT*???TMQ,         MMr      
|   rMr   MM,       ?MQ.   uM#      0M,,,,,,pMM         MMr      
|   rMr   <Mr        ?#MMMMMT       rMMMMMMM#T          MMr      
|   ^T^    *?           ??^          ??                 <M       
```

mathfontの出力をmathfontにつなげてみたらどうなるか

`$ ruby mathfont.rb --size 14 ruby | ruby mathfont.rb --size 12`

![rbrb.png](https://qiita-image-store.s3.amazonaws.com/0/16596/7264b398-5e46-e4a7-0c88-1f20a35170c0.png)

さらにつなげてみる
`$ ruby mathfont.rb --size 12 ruby | ruby mathfont.rb --size 5| ruby mathfont.rb --size 5`

![rbrbrb.png](https://qiita-image-store.s3.amazonaws.com/0/16596/35c209fc-bfd2-ac43-8d35-61673a17a302.png)


それでは良い年末をー

```
ruby mathfont.rb --size 40 end
|                                                                                                                        
|                                                                                           .,,.                         
|       .g,.                                                                             .gQMMMMMppg,                    
|      .MMMMMMMMMMMMMMMMMMMMMMMpg,.                 ..               .,,                 MMMMMMMMMMMMMQ,.                
|      aMMMMMMMMMMMMMMMMMMMMMMMMMMV               ,QMMpu             QMM                !MMMMMMMMMMMMMMMMQg              
|      MMMMMTTTTTTTTTTTTTTTT*??^                  rMMMMMM,          rMMM                rMMMMMMT?  ^*T#MMMMMg.           
|      MMMM?                                      rMMMMMMM,         rMMM                MMMMMM^        ^*MMMMQu          
|     ,MMMM                                       rMMMMMMMMa        rMMM                MMMMM?            *MMMMp         
|     rMMMM                                       rMMMMMMMMMa       MMMM                MMMMM               #MMMQ.       
|     rMMMMa                                      rMMMMMMMMMMg      MMMM                MMMMM                #MMMr       
|     rMMMMMMMpppppppppppppppggg,,.               rMMMM^ VMMMMu     MMMM                MMMM0                rMMMM.      
|     rMMMMMMMMMMMMMMMMMMMMMMMMMMMMp              rMMM0   *MMMMu    MMMM                MMMMr                 MMMMr      
|     rMMMMMMMMMMMMMMMMMMMMMMM##TT*               rMMMr    ?MMMMp  rMMMM                MMMMr                !MMMM?      
|     rMMMM#??                                    rMMMr     <MMMMQgMMMMM                MMMMM                aMMM0       
|     rMMMM^                                      rMMMr      ?MMMMMMMMMM                MMMMM               uMMMM?       
|     <MMMM                                       rMMM^       *MMMMMMMMM                MMMMM.            .pMMMM^        
|      MMMM.                                      rMMM         *MMMMMMMM                MMMMMp          .gMMMM#^         
|      MMMMp,,,,,,,,,,,,,,,,.                     rMMM          ?MMMMMMM                0MMMMMp,    .,gQMMMMM?           
|      #MMMMMMMMMMMMMMMMMMMMMMMQpg,               rMM0           ^*MMMMM                rMMMMMMMMppQMMMMMM#?             
|      ?MMMMMMMMMMMMMMMMMMMMMMMMMT*               ?TT               ^T?                  MMMMMMMMMMMMMMT*^               
|       *#T*???????????????????                                                          *MMMMMMMMMMT?^                  
|                                                                                          ^*TT*?                        
|                                                                                                                        
```